Example #1
0
        public virtual void SignalOutput(int slotId)
        {
            bool executionCheckRequired = false;

            if ((slotId > 0))
            {
                global::core.slot.Slot slot = ((global::core.slot.Slot)((((global::haxe.ds.IntMap <object>)(global::haxe.ds.IntMap <object> .__hx_cast <object>(((global::haxe.ds.IntMap)(((global::haxe.IMap <int, object>)(this._slots))))))).@get(slotId)).@value));
                if ((slot != null))
                {
                    global::graph.EndPoint curEndpoint = new global::graph.EndPoint(new global::haxe.lang.Null <int>(this.nodeId, true), new global::haxe.lang.Null <int>(slotId, true));
                    global::Array <object> endpoints   = this.owner.GetConnectedEndpoints(curEndpoint);
                    {
                        int _g = 0;
                        while ((_g < endpoints.length))
                        {
                            global::graph.EndPoint endpoint = ((global::graph.EndPoint)(endpoints[_g]));
                            ++_g;
                            global::core.node.Node nextNode = this.owner.FindNode(endpoint.nodeId);
                            if ((nextNode != null))
                            {
                                this.owner.AddToExecutionStack(endpoint);
                                executionCheckRequired = true;
                            }
                        }
                    }
                }
            }

            if (executionCheckRequired)
            {
                this.owner.Execute();
            }
        }
Example #2
0
        public override void DeserializeFromJson(string json)
        {
            object obj = new global::haxe.format.JsonParser(((string)(json))).parseRec();

            this.graphId = global::haxe.lang.Runtime.toString(global::haxe.lang.Runtime.getField(obj, "graphId", 1946631881, true));
            global::Array <object> nodes = ((global::Array <object>)(global::Array <object> .__hx_cast <object>(((global::Array)(global::haxe.lang.Runtime.getField(obj, "nodes", 532592689, true))))));
            {
                int _g = 0;
                while ((_g < nodes.length))
                {
                    string item = global::haxe.lang.Runtime.toString(nodes[_g]);
                    ++_g;
                    global::core.node.Node node = new global::core.node.Node();
                    node.DeserializeFromJson(item);
                    node.owner = this;
                    ((global::haxe.ds.IntMap <object>)(global::haxe.ds.IntMap <object> .__hx_cast <object>(((global::haxe.ds.IntMap)(((global::haxe.IMap <int, object>)(this._nodes))))))).@set(node.nodeId, node);
                }
            }

            global::Array <object> relations = ((global::Array <object>)(global::Array <object> .__hx_cast <object>(((global::Array)(global::haxe.lang.Runtime.getField(obj, "relations", 1682648631, true))))));
            {
                int _g1 = 0;
                while ((_g1 < relations.length))
                {
                    string item1 = global::haxe.lang.Runtime.toString(relations[_g1]);
                    ++_g1;
                    object relationPairObj          = new global::haxe.format.JsonParser(((string)(item1))).parseRec();
                    global::graph.EndPoint endPoint = new global::graph.EndPoint(default(global::haxe.lang.Null <int>), default(global::haxe.lang.Null <int>));
                    endPoint.DeserializeFromJson(global::haxe.lang.Runtime.toString(global::haxe.lang.Runtime.getField(relationPairObj, "cur", 4949376, true)));
                    global::Array <object> endPoints = new global::Array <object>();
                    {
                        int _g11 = 0;
                        global::Array <object> _g2 = ((global::Array <object>)(global::Array <object> .__hx_cast <object>(((global::Array)(global::haxe.lang.Runtime.getField(relationPairObj, "next", 1224901875, true))))));
                        while ((_g11 < _g2.length))
                        {
                            string ep = global::haxe.lang.Runtime.toString(_g2[_g11]);
                            ++_g11;
                            global::graph.EndPoint point = new global::graph.EndPoint(default(global::haxe.lang.Null <int>), default(global::haxe.lang.Null <int>));
                            point.DeserializeFromJson(ep);
                            endPoints.push(point);
                        }
                    }

                    ((global::haxe.ds.ObjectMap <object, object>)(global::haxe.ds.ObjectMap <object, object> .__hx_cast <object, object>(((global::haxe.ds.ObjectMap)(((global::haxe.IMap <object, object>)(this._relations))))))).@set(endPoint, endPoints);
                }
            }
        }
Example #3
0
 public static void main()
 {
     unchecked {
         global::core.slot.Slot dataSlotIn = new global::core.slot.Slot();
         dataSlotIn.Initialize(1, global::core.slot.SlotType.DataIn);
         global::core.slot.Slot actionSlotIn = new global::core.slot.Slot();
         actionSlotIn.Initialize(2, global::core.slot.SlotType.ExecutionIn);
         global::core.slot.Slot dataSlotOut = new global::core.slot.Slot();
         dataSlotOut.Initialize(3, global::core.slot.SlotType.DataOut);
         global::core.slot.Slot actionSlotOut = new global::core.slot.Slot();
         actionSlotOut.Initialize(4, global::core.slot.SlotType.ExecutionOut);
         global::core.node.Node actionNode = new global::core.node.Node();
         actionNode.Initialize(new global::haxe.lang.Null <int>(1, true), "First Node", "Action Node");
         actionNode.AddSlot(actionSlotOut);
         actionNode.AddSlot(dataSlotIn);
         actionNode.AddSlot(actionSlotIn);
         global::core.node.Node dataNode = new global::core.node.Node();
         dataNode.Initialize(new global::haxe.lang.Null <int>(2, true), "Second Node", "Data Node");
         dataNode.AddSlot(dataSlotOut);
         global::core.node.Node node3 = new global::core.node.Node();
         node3.Initialize(new global::haxe.lang.Null <int>(3, true), "Third Node", "Action Node");
         node3.AddSlot(dataSlotIn);
         node3.AddSlot(actionSlotOut);
         node3.AddSlot(actionSlotIn);
         global::core.node.Node node4 = new global::core.node.Node();
         node4.Initialize(new global::haxe.lang.Null <int>(4, true), "Forth Node", "Action Node");
         node4.AddSlot(actionSlotIn);
         global::graph.Graph graph1 = new global::graph.Graph(((string)("testGraphData")));
         graph1.AddNode(actionNode);
         graph1.AddNode(dataNode);
         graph1.AddNode(node3);
         graph1.AddNode(node4);
         global::graph.EndPoint ep1 = new global::graph.EndPoint(new global::haxe.lang.Null <int>(actionNode.nodeId, true), new global::haxe.lang.Null <int>(actionSlotOut.slotId, true));
         global::graph.EndPoint ep2 = new global::graph.EndPoint(new global::haxe.lang.Null <int>(dataNode.nodeId, true), new global::haxe.lang.Null <int>(dataSlotOut.slotId, true));
         global::graph.EndPoint ep3 = new global::graph.EndPoint(new global::haxe.lang.Null <int>(node3.nodeId, true), new global::haxe.lang.Null <int>(actionSlotIn.slotId, true));
         global::graph.EndPoint ep4 = new global::graph.EndPoint(new global::haxe.lang.Null <int>(node3.nodeId, true), new global::haxe.lang.Null <int>(dataSlotIn.slotId, true));
         global::graph.EndPoint ep5 = new global::graph.EndPoint(new global::haxe.lang.Null <int>(node3.nodeId, true), new global::haxe.lang.Null <int>(actionSlotOut.slotId, true));
         global::graph.EndPoint ep6 = new global::graph.EndPoint(new global::haxe.lang.Null <int>(node4.nodeId, true), new global::haxe.lang.Null <int>(actionSlotIn.slotId, true));
         graph1.AddRelation(ep1, new global::Array <object>(new object[] { ep3 }));
         graph1.AddRelation(ep2, new global::Array <object>(new object[] { ep4 }));
         graph1.AddRelation(ep5, new global::Array <object>(new object[] { ep6 }));
         string str = graph1.SerializeToJson();
         global::haxe.Log.trace.__hx_invoke2_o(default(double), str, default(double), new global::haxe.lang.DynamicObject(new int[] { 302979532, 1547539107, 1648581351 }, new object[] { "main", "Entry", "Entry.hx" }, new int[] { 1981972957 }, new double[] { ((double)(151)) }));
     }
 }
Example #4
0
        public virtual void Execute()
        {
            while ((this._stack.head != null))
            {
                global::haxe.ds.GenericStack <object> _this = this._stack;
                global::haxe.ds.GenericCell <object>  k     = _this.head;
                global::graph.EndPoint endpoint             = null;
                if ((k == null))
                {
                    endpoint = null;
                }
                else
                {
                    _this.head = k.next;
                    endpoint   = ((global::graph.EndPoint)(k.elt));
                }

                global::core.node.Node node = this.FindNode(endpoint.nodeId);
                if ((node != null))
                {
                    node.SignalInput(endpoint.slotId);
                }
            }
        }
Example #5
0
 public virtual void AddNode(global::core.node.Node node)
 {
     ((global::haxe.ds.IntMap <object>)(global::haxe.ds.IntMap <object> .__hx_cast <object>(((global::haxe.ds.IntMap)(((global::haxe.IMap <int, object>)(this._nodes))))))).@set(node.nodeId, node);
 }
Example #6
0
 public virtual void SetInput(global::core.node.Node node, global::core.Datum data, int slotId)
 {
     node.SetSlotData(slotId, data);
 }
Example #7
0
 public virtual global::core.Datum GetInput(global::core.node.Node node, int slotId)
 {
     return(node.GetSlotData(slotId));
 }
Example #8
0
 public static void __hx_ctor_core_node_Node(global::core.node.Node __hx_this)
 {
     __hx_this.Initialize(default(global::haxe.lang.Null <int>), null, null);
 }