Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="start"></param>
        /// <returns></returns>
        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);
        }
Exemplo n.º 2
0
 /// <summary>
 ///
 /// </summary>
 private void Merge()
 {
     if (mergedLineStrings != null)
     {
         return;
     }
     edgeStrings = new ArrayList();
     BuildEdgeStringsForObviousStartNodes();
     BuildEdgeStringsForIsolatedLoops();
     mergedLineStrings = new ArrayList();
     for (IEnumerator i = edgeStrings.GetEnumerator(); i.MoveNext();)
     {
         EdgeString edgeString = (EdgeString)i.Current;
         mergedLineStrings.Add(edgeString.ToLineString());
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="start"></param>
 /// <returns></returns>
 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;
 }