GEOS
3.9.0dev

Uses Snap Rounding to compute a rounded, fully noded arrangement from a set of SegmentString. More...
#include <MCIndexSnapRounder.h>
Public Member Functions  
MCIndexSnapRounder (const geom::PrecisionModel &nPm)  
std::vector< SegmentString * > *  getNodedSubstrings () const override 
Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent. More...  
void  computeNodes (std::vector< SegmentString * > *segStrings) override 
Computes the noding for a collection of SegmentStrings. More...  
void  computeVertexSnaps (std::vector< SegmentString * > &edges) 
Uses Snap Rounding to compute a rounded, fully noded arrangement from a set of SegmentString.
Implements the Snap Rounding technique described in Hobby, Guibas & Marimont, and Goodrich et al.
Snap Rounding assumes that all vertices lie on a uniform grid (hence the precision model of the input must be fixed precision, and all the input vertices must be rounded to that precision).
This implementation uses a monotone chains and a spatial index to speed up the intersection tests.
This implementation appears to be fully robust using an integer precision model.
It will function with noninteger precision models, but the results are not 100% guaranteed to be correctly noded.

overridevirtual 
Computes the noding for a collection of SegmentStrings.
Some Noders may add all these nodes to the input SegmentStrings; others may only add some or none at all.
segStrings  a collection of SegmentStrings to node 
Implements geos::noding::Noder.
void geos::noding::snapround::MCIndexSnapRounder::computeVertexSnaps  (  std::vector< SegmentString * > &  edges  ) 
Computes nodes introduced as a result of snapping segments to vertices of other segments
edges  the list of segment strings to snap together NOTE: they must be instances of NodedSegmentString, or an assertion will fail. 

inlineoverridevirtual 
Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent.
Implements geos::noding::Noder.