コード例 #1
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="ring"></param>
 /// <param name="graph"></param>
 private static void VisitInteriorRing(IBasicGeometry ring, PlanarGraph graph)
 {
     IList<Coordinate> pts = ring.Coordinates;
     Coordinate pt0 = pts[0];
     /*
      * Find first point in coord list different to initial point.
      * Need special check since the first point may be repeated.
      */
     Coordinate pt1 = FindDifferentPoint(pts, pt0);
     Edge e = graph.FindEdgeInSameDirection(pt0, pt1);
     DirectedEdge de = (DirectedEdge)graph.FindEdgeEnd(e);
     DirectedEdge intDe = null;
     if (de.Label.GetLocation(0, Positions.Right) == Locations.Interior)
         intDe = de;            
     else if (de.Sym.Label.GetLocation(0, Positions.Right) == Locations.Interior)            
         intDe = de.Sym;            
     Assert.IsTrue(intDe != null, "unable to find dirEdge with Interior on RHS");
     VisitLinkedDirectedEdges(intDe);
 }