GEOS 3.11.1
|
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) |
virtual void | computeNodes (std::vector< SegmentString * > *segStrings)=0 |
Computes the noding for a collection of SegmentStrings. More... | |
virtual std::vector< SegmentString * > * | getNodedSubstrings () const =0 |
Returns a collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent. More... | |
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 non-integer 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 SegmentString s to node The caller remains responsible for releasing the memory associated with the container and its elements. |
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.