# geos::noding::snapround::MCIndexSnapRounder Class Reference

Uses Snap Rounding to compute a rounded, fully noded arrangement from a set of SegmentString. More...

`#include <MCIndexSnapRounder.h>`

Inheritance diagram for geos::noding::snapround::MCIndexSnapRounder:

List of all members.

## Public Member Functions

| MCIndexSnapRounder (geom::PrecisionModel &nPm)
std::vector< SegmentString * > * | getNodedSubstrings () const
| Returns a Collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent.
void | computeNodes (std::vector< SegmentString * > *segStrings)
| Computes the noding for a collection of SegmentStrings.
void | computeVertexSnaps (std::vector< SegmentString * > &edges)

## Detailed Description

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.

## Member Function Documentation

void geos::noding::snapround::MCIndexSnapRounder::computeNodes | ( | std::vector< SegmentString * > * | segStrings ) | `[virtual]`

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.

Parameters:

  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

Parameters:

  segStrings | the list of segment strings to snap together NOTE: they *must* be instances of NodedSegmentString, or an assertion will fail.

std::vector<SegmentString*>* geos::noding::snapround::MCIndexSnapRounder::getNodedSubstrings | ( | ) | const`[virtual]`

Returns a Collection of fully noded SegmentStrings. The SegmentStrings have the same context as their parent.

Returns:
  a newly allocated std::vector of const SegmentStrings. Caller is responsible to delete it

Implements geos::noding::Noder.

The documentation for this class was generated from the following file:

- MCIndexSnapRounder.h