public void Merge(Graph iMergeGraph)
{
foreach (Node n in iMergeGraph.nodes)
{
Node mergeNode = new Node(m_nextNodeId.ToString(), n.Data);
AddNode(mergeNode);
m_nextNodeId++;
mergeNode.Data.origID=n.ID;
}
foreach (Edge e in iMergeGraph.edges)
{
Node fromNode = nodes.Find(delegate(Node n)
{
if (e.Source.ID == n.Data.origID)
{
return true;
}
return false;
});
Node toNode = nodes.Find(delegate(Node n)
{
if (e.Target.ID == n.Data.origID)
{
return true;
}
return false;
});
Edge tNewEdge = AddEdge(new Edge(m_nextEdgeId.ToString(), fromNode, toNode, e.Data));
m_nextEdgeId++;
}
}