Пример #1
0
/*private*/
void
MCIndexSnapRounder::findInteriorIntersections(MCIndexNoder& noder,
		NodedSegmentString::NonConstVect* segStrings,
		vector<Coordinate>& intersections)
{
	IntersectionFinderAdder intFinderAdder(li, intersections);
	noder.setSegmentIntersector(&intFinderAdder);
	noder.computeNodes(segStrings);
}
Пример #2
0
/*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();
}
Пример #3
0
/*
 * 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);
}
Пример #4
0
/*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);
}