/** * Use a GeometryGraph to node the created edges, * and create split edges between the nodes */ private ArrayList NodeEdges(ArrayList edges) { // intersect edges again to ensure they are noded correctly GeometryGraph graph = new GeometryGraph(0, _geomFact.PrecisionModel, 0); //for (Iterator i = edges.iterator(); i.hasNext(); ) foreach(object obj in edges) { Edge e = (Edge) obj; graph.AddEdge(e); } SegmentIntersector si = graph.ComputeSelfNodes(_li); /* if (si.hasProperIntersection()) Debug.println("proper intersection found"); else Debug.println("no proper intersection found"); */ ArrayList newEdges = new ArrayList(); graph.ComputeSplitEdges(newEdges); return newEdges; }