Code/UI/Spatial/GraphExecutor.cs
namespace Nodebox.UI.Spatial;
[Title("Nodebox Spatial Graph Executor")]
[Category("Nodebox")]
public class GraphExecutor : Component {
[RequireComponent] public Graph Graph { get; set; }
private ExecutionContext _executionContext;
[JsonIgnore]
public ExecutionContext ExecutionContext => _executionContext;
public GraphExecutor() {
_executionContext = new();
}
protected override void OnFixedUpdate() {
ExecutionContext.Graph = Graph.Inner;
if (!ExecutionContext.Graph.IsValid()) { return; }
var result = ExecutionContext.Evaluate();
foreach (var exception in result.Exceptions) {
Log.Warning(exception);
}
}
}