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); }
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; }