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