/*private*/ void MCIndexSnapRounder::findInteriorIntersections(MCIndexNoder& noder, NodedSegmentString::NonConstVect* segStrings, vector<Coordinate>& intersections) { IntersectionFinderAdder intFinderAdder(li, intersections); noder.setSegmentIntersector(&intFinderAdder); noder.computeNodes(segStrings); }
/*private*/ void SimpleSnapRounder::findInteriorIntersections( SegmentString::NonConstVect& segStrings, LineIntersector& li, vector<Coordinate>& ret) { IntersectionFinderAdder intFinderAdder(li, ret); MCIndexNoder noder; noder.setSegmentIntersector(&intFinderAdder); noder.computeNodes(&segStrings); //intFinderAdder.getInteriorIntersections(); }
/* * Node the input segment strings once * and create the split edges between the nodes */ void IteratedNoder::node(vector<SegmentString*> *segStrings, int *numInteriorIntersections) { IntersectionAdder si(li); MCIndexNoder noder; noder.setSegmentIntersector(&si); noder.computeNodes(segStrings); nodedSegStrings = noder.getNodedSubstrings(); *numInteriorIntersections = si.numInteriorIntersections; //System.out.println("# intersection tests: " + si.numTests); }
/*public*/ void MCIndexSnapRounder::computeNodes(SegmentString::NonConstVect* inputSegmentStrings) { nodedSegStrings = inputSegmentStrings; MCIndexNoder noder; pointSnapper.release(); // let it leak ?! pointSnapper.reset(new MCIndexPointSnapper(noder.getIndex())); snapRound(noder, inputSegmentStrings); // testing purposes only - remove in final version assert(nodedSegStrings == inputSegmentStrings); //checkCorrectness(*inputSegmentStrings); }