Exemple #1
0
        public static Node_Process CreateNode(LGSPGraph graph)
        {
            Node_Process node = new Node_Process();

            graph.AddNode(node);
            return(node);
        }
        public LGSPNode Retype(LGSPGraph graph, LGSPNode oldNode)
        {
            Node_Process newNode = new Node_Process();

            graph.AddNodeWithoutEvents(newNode, (int)NodeTypes.@Process);
            switch (oldNode.Type.TypeID)
            {
            case (int)NodeTypes.@Process:
            {
                Node_Process old = (Node_Process)oldNode;
                newNode.val  = old.val;
                newNode.name = old.name;
                break;
            }

            case (int)NodeTypes.@Node:
            {
                break;
            }
            }

            // Reassign all outgoing edges
            LGSPEdge outHead = oldNode.outhead;

            if (outHead != null)
            {
                LGSPEdge outCur = outHead;
                do
                {
                    outCur.source = newNode;
                    outCur        = outCur.outNext;
                }while(outCur != outHead);
            }
            newNode.outhead = outHead;

            // Reassign all incoming edges
            LGSPEdge inHead = oldNode.outhead;

            if (inHead != null)
            {
                LGSPEdge inCur = inHead;
                do
                {
                    inCur.target = newNode;
                    inCur        = inCur.inNext;
                }while(inCur != inHead);
            }
            newNode.inhead = inHead;

            return(newNode);
        }
Exemple #3
0
 public static Node_Process CreateNode(LGSPGraph graph)
 {
     Node_Process node = new Node_Process();
     graph.AddNode(node);
     return node;
 }
        public LGSPNode Retype(LGSPGraph graph, LGSPNode oldNode)
        {
            Node_Process newNode = new Node_Process();
            graph.AddNodeWithoutEvents(newNode, (int) NodeTypes.@Process);
            switch(oldNode.Type.TypeID)
            {
                case (int) NodeTypes.@Process:
                {
                    Node_Process old = (Node_Process) oldNode;
                    newNode.val = old.val;
                    newNode.name = old.name;
                    break;
                }
                case (int) NodeTypes.@Node:
                {
                    break;
                }
            }

            // Reassign all outgoing edges
            LGSPEdge outHead = oldNode.outhead;
            if(outHead != null)
            {
                LGSPEdge outCur = outHead;
                do
                {
                    outCur.source = newNode;
                    outCur = outCur.outNext;
                }
                while(outCur != outHead);
            }
            newNode.outhead = outHead;

            // Reassign all incoming edges
            LGSPEdge inHead = oldNode.outhead;
            if(inHead != null)
            {
                LGSPEdge inCur = inHead;
                do
                {
                    inCur.target = newNode;
                    inCur = inCur.inNext;
                }
                while(inCur != inHead);
            }
            newNode.inhead = inHead;

            return newNode;
        }