public FsmGraphView(FsmGraphObject fsmGraphObject) { VisualElementExtensions.AddManipulator(this, new ContentDragger()); VisualElementExtensions.AddManipulator(this, new SelectionDragger()); style.flexGrow = 1f; foreach (StateInstanceNode node in fsmGraphObject.GetNodes()) { StateInstanceNodeView nodeView = new StateInstanceNodeView(node); nodeView.SetPosition(FindPosition(nodeView)); nodeViews.Add(node.stateInstance.name, nodeView); AddElement(nodeView); } foreach (TransitionInstanceEdge transitionEdge in fsmGraphObject.edges) { TransitionEdgeView transitionView = new TransitionEdgeView(transitionEdge) { input = nodeViews[transitionEdge.transitionInstance.originState].inputPort, output = nodeViews[transitionEdge.transitionInstance.targetState].outputPort }; AddElement(transitionView); } }
private void CreateGraph() { if (graphObject != null) { Destroy(graphObject); } graphObject = CreateInstance <FsmGraphObject>(); graphObject.Initialize(finiteStateMachine); rootVisualElement.Add(new FsmGraphView(graphObject)); }
public StateInstanceNode(FsmGraphObject owner, FiniteStateMachine.StateInstance instance) { graph = owner; stateInstance = instance; }
public TransitionInstanceEdge(FsmGraphObject owner, FiniteStateMachine.TransitionInstance transition) { graph = owner; transitionInstance = transition; }
public EdgeConnectorListener(FsmGraphObject graph) { this.graph = graph; }