private void BuildEdgeStringsStartingAt(Node node) { for (IEnumerator i = node.OutEdges.Iterator(); i.MoveNext();) { LineMergeDirectedEdge directedEdge = (LineMergeDirectedEdge)i.Current; if (directedEdge.Edge.Marked) { continue; } edgeStrings.Add(BuildEdgeStringStartingWith(directedEdge)); } }
private EdgeString BuildEdgeStringStartingWith(LineMergeDirectedEdge start) { EdgeString edgeString = new EdgeString(factory); LineMergeDirectedEdge current = start; do { edgeString.Add(current); current.Edge.Marked = true; current = current.Next; }while (current != null && current != start); return(edgeString); }