## com.vividsolutions.jts.noding.snapround
Class MCIndexSnapRounder

    java.lang.Object
      com.vividsolutions.jts.noding.snapround.MCIndexSnapRounder

All Implemented Interfaces:
  Noder

public class MCIndexSnapRounder
extends java.lang.Object
implements Noder

Uses Snap Rounding to compute a rounded, fully noded arrangement from a set of `SegmentString`s. Implements the Snap Rounding technique described in papers by 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.

Version:
  1.7

Constructor Summary
`MCIndexSnapRounder(PrecisionModel pm)`

Method Summary
`void` `computeNodes(java.util.Collection inputSegmentStrings)` Computes the noding for a collection of `SegmentString`s.
`void` `computeVertexSnaps(java.util.Collection edges)` Computes nodes introduced as a result of snapping segments to vertices of other segments
`java.util.Collection` `getNodedSubstrings()` Returns a `Collection` of fully noded `SegmentStrings`.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MCIndexSnapRounder

    public MCIndexSnapRounder(PrecisionModel pm)

Method Detail

### getNodedSubstrings

    public java.util.Collection getNodedSubstrings()

  Description copied from interface: `Noder`
  Returns a `Collection` of fully noded `SegmentStrings`. The SegmentStrings have the same context as their parent.

  Specified by:
    `getNodedSubstrings` in interface `Noder`
  Returns:
    a Collection of SegmentStrings

### computeNodes

    public void computeNodes(java.util.Collection inputSegmentStrings)

  Description copied from interface: `Noder`
  Computes the noding for a collection of `SegmentString`s. Some Noders may add all these nodes to the input SegmentStrings; others may only add some or none at all.

  Specified by:
    `computeNodes` in interface `Noder`
  Parameters:
    `inputSegmentStrings` - a collection of `SegmentString`s to node

### computeVertexSnaps

    public void computeVertexSnaps(java.util.Collection edges)

  Computes nodes introduced as a result of snapping segments to vertices of other segments