Class SimpleSnapRounder

Hierarchy: Object , SimpleSnapRounder
All Implemented Interfaces: Noder
public class SimpleSnapRounder
implements Noder
Uses Snap Rounding to compute a rounded, fully noded arrangement from a set of SegmentStrings. Implements the Snap Rounding technique described in the 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 simple iteration over the line segments. This is not the most efficient approach for large sets of segments.

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.

Other

  • version: 1.7
public SimpleSnapRounder(PrecisionModel pm)
public Collection getNodedSubstrings()
Returns:
a Collection of NodedSegmentStrings representing the substrings
public void computeNodes(Collection inputSegmentStrings)
Parameters:
inputSegmentStrings - inputSegmentStrings a Collection of NodedSegmentStrings
public void computeVertexSnaps(Collection edges)
Computes nodes introduced as a result of snapping segments to vertices of other segments
Parameters:
edges - edges the list of segment strings to snap together