/// <summary> /// Form DirectedEdges in graph into Minimal EdgeRings. /// (Minimal Edgerings must be used, because only they are guaranteed to provide /// a correct isHole computation) /// </summary> private ArrayList BuildEdgeRings(ArrayList dirEdges) { ArrayList edgeRings = new ArrayList(); for (IEnumerator it = dirEdges.GetEnumerator(); it.MoveNext();) { DirectedEdge de = (DirectedEdge)it.Current; // if this edge has not yet been processed if (de.InResult && de.EdgeRing == null) { MaximalEdgeRing er = new MaximalEdgeRing(de, geometryFactory); er.LinkDirectedEdgesForMinimalEdgeRings(); IList minEdgeRings = er.BuildMinimalRings(); int nRings = minEdgeRings.Count; for (int i = 0; i < nRings; i++) { edgeRings.Add(minEdgeRings[i]); } } } return(edgeRings); }
/// <summary> /// for all DirectedEdges in result, form them into EdgeRings /// </summary> /// <param name="dirEdges"></param> /// <returns></returns> private ArrayList buildEdgeRings(ArrayList dirEdges) { ArrayList edgeRings = new ArrayList(); foreach (object obj in dirEdges) { DirectedEdge de = (DirectedEdge)obj; // if this edge has not yet been processed if (de.EdgeRing == null) { EdgeRing er = new MaximalEdgeRing(de, _geometryFactory, _cga); edgeRings.Add(er); } } return(edgeRings); }
/// <summary> /// Form <see cref="DirectedEdge" />s in graph into Minimal EdgeRings. /// (Minimal Edgerings must be used, because only they are guaranteed to provide /// a correct isHole computation). /// </summary> /// <param name="dirEdges"></param> /// <returns></returns> private IList BuildEdgeRings(IList dirEdges) { IList edgeRings = new ArrayList(); foreach (DirectedEdge de in dirEdges) { // if this edge has not yet been processed if (de.IsInResult && de.EdgeRing == null) { MaximalEdgeRing er = new MaximalEdgeRing(de, geometryFactory); er.LinkDirectedEdgesForMinimalEdgeRings(); IList minEdgeRings = er.BuildMinimalRings(); foreach (object o in minEdgeRings) { edgeRings.Add(o); } } } return(edgeRings); }
/// <summary> /// Form <see cref="DirectedEdge" />s in graph into Minimal EdgeRings. /// (Minimal Edgerings must be used, because only they are guaranteed to provide /// a correct isHole computation). /// </summary> /// <param name="dirEdges"></param> /// <returns></returns> private IList <EdgeRing> BuildEdgeRings(IEnumerable <EdgeEnd> dirEdges) { IList <EdgeRing> edgeRings = new List <EdgeRing>(); foreach (DirectedEdge de in dirEdges) { // if this edge has not yet been processed if (de.IsInResult && de.EdgeRing == null) { MaximalEdgeRing er = new MaximalEdgeRing(de, _geometryFactory); er.LinkDirectedEdgesForMinimalEdgeRings(); IList <EdgeRing> minEdgeRings = er.BuildMinimalRings(); foreach (EdgeRing o in minEdgeRings) { edgeRings.Add(o); } } } return(edgeRings); }