com.vividsolutions.jts.noding.snapround
Class MCIndexSnapRounder

java.lang.Object
  extended bycom.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 SegmentStrings. 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.

Version:
1.7

Constructor Summary
MCIndexSnapRounder(PrecisionModel pm)
           
 
Method Summary
 void computeNodes(java.util.Collection inputSegmentStrings)
          Computes the noding for a collection of SegmentStrings.
 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 SegmentStrings. 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 SegmentStrings to node

computeVertexSnaps

public void computeVertexSnaps(java.util.Collection edges)
Computes nodes introduced as a result of snapping segments to vertices of other segments