Packages

package noding

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Package Members

  1. package snaprounder

Type Members

  1. class BasicSegmentString extends SegmentString

    Represents a list of contiguous line segments, and supports noding the segments.

    Represents a list of contiguous line segments, and supports noding the segments. The line segments are represented by an array of {link Coordinate}s. Intended to optimize the noding of contiguous segments by reducing the number of allocated objects. SegmentStrings can carry a context object, which is useful for preserving topological or parentage information. All noded substrings are initialized with the same context object.

    Version

    1.7

  2. class FastNodingValidator extends AnyRef
  3. class InteriorIntersectionFinderAdder extends SegmentIntersector

    Finds interior intersections between line segments in {link NodedSegmentString}s, and adds them as nodes using {link NodedSegmentString#addIntersection(LineIntersector, int, int, int)}.

    Finds interior intersections between line segments in {link NodedSegmentString}s, and adds them as nodes using {link NodedSegmentString#addIntersection(LineIntersector, int, int, int)}.

    This class is used primarily for Snap-Rounding. For general-purpose noding, use {link IntersectionAdder}.

    Version

    1.7

    See also

    IntersectionAdder

  4. class IntersectionAdder extends SegmentIntersector
  5. class MCIndexNoder extends SinglePassNoder[SegmentString]
  6. trait NodableSegmentString extends SegmentString

    An interface for classes which support adding nodes to a segment string.

  7. class NodedSegmentString extends NodableSegmentString
  8. trait Noder[A] extends AnyRef
  9. class NodingIntersectionFinder extends SegmentIntersector
  10. class OrientedCoordinateArray extends Comparable[OrientedCoordinateArray]
  11. class ScaledNoder extends Noder[SegmentString]

    Wraps a {link Noder} and transforms its input into the integer domain.

    Wraps a {link Noder} and transforms its input into the integer domain. This is intended for use with Snap-Rounding noders, which typically are only intended to work in the integer domain. Offsets can be provided to increase the number of digits of available precision.

    Clients should be aware that rescaling can involve loss of precision, which can cause zero-length line segments to be created. These in turn can cause problems when used to build a planar graph. This situation should be checked for and collapsed segments removed if necessary.

    Version

    1.7

  12. trait SegmentIntersector extends AnyRef
  13. class SegmentNode extends Comparable[SegmentNode]

    Represents an intersection point between two {link SegmentString}s.

    Represents an intersection point between two {link SegmentString}s.

    Version

    1.7

  14. class SegmentNodeList extends AnyRef

    A list of the {link SegmentNode}s present along a noded {link SegmentString}.

    A list of the {link SegmentNode}s present along a noded {link SegmentString}.

    Version

    1.7

  15. trait SegmentString extends AnyRef

    An interface for classes which represent a sequence of contiguous line segments.

    An interface for classes which represent a sequence of contiguous line segments. SegmentStrings can carry a context object, which is useful for preserving topological or parentage information.

    Version

    1.7

  16. abstract class SinglePassNoder[A] extends Noder[A]

    Base class for Noder}s which make a single pass to find intersections.

    Base class for Noder}s which make a single pass to find intersections. This allows using a custom SegmentIntersector} (which for instance may simply identify intersections, rather than insert them).

    Version

    1.7

Value Members

  1. object FastNodingValidator
  2. object IntersectionAdder

    Computes the possible intersections between two line segments in {link NodedSegmentString}s and adds them to each string using {link NodedSegmentString#addIntersection(LineIntersector, int, int, int)}.

    Computes the possible intersections between two line segments in {link NodedSegmentString}s and adds them to each string using {link NodedSegmentString#addIntersection(LineIntersector, int, int, int)}.

    Version

    1.7

  3. object MCIndexNoder

    Nodes a set of {link SegmentString}s using a index based on {link MonotoneChain}s and a {link SpatialIndex}.

    Nodes a set of {link SegmentString}s using a index based on {link MonotoneChain}s and a {link SpatialIndex}. The {link SpatialIndex} used should be something that supports envelope (range) queries efficiently (such as a Quadtree} or {link STRtree} (which is the default index provided).

    Version

    1.7

  4. object NodedSegmentString

    Represents a list of contiguous line segments, and supports noding the segments.

    Represents a list of contiguous line segments, and supports noding the segments. The line segments are represented by an array of {link Coordinate}s. Intended to optimize the noding of contiguous segments by reducing the number of allocated objects. SegmentStrings can carry a context object, which is useful for preserving topological or parentage information. All noded substrings are initialized with the same context object.

    Version

    1.7

  5. object NodingIntersectionFinder

    Finds non-noded intersections in a set of {link SegmentString}s, if any exist.

    Finds non-noded intersections in a set of {link SegmentString}s, if any exist.

    Non-noded intersections include:

    • Interior intersections which lie in the interior of a segment (with another segment interior or with a vertex or endpoint)
    • Vertex intersections which occur at vertices in the interior of {link SegmentString}s (with a segment string endpoint or with another interior vertex)

    The finder can be limited to finding only interior intersections by setting {link #setInteriorIntersectionsOnly(boolean).

    By default only the first intersection is found, but all can be found by setting {link #setFindAllIntersections(boolean)

    Version

    1.7

  6. object Octant

    Methods for computing and working with octants of the Cartesian plane Octants are numbered as follows:

    \2|1/
    3 \|/ 0
    ---+--
    4 /|\ 7
    /5|6\
    
    If line segments lie along a coordinate axis, the octant is the lower of the two possible values.

    Methods for computing and working with octants of the Cartesian plane Octants are numbered as follows:

    \2|1/
    3 \|/ 0
    ---+--
    4 /|\ 7
    /5|6\
    
    If line segments lie along a coordinate axis, the octant is the lower of the two possible values.

    Version

    1.7

  7. object OrientedCoordinateArray

    Allows comparing {link Coordinate} arrays in an orientation-independent way.

    Allows comparing {link Coordinate} arrays in an orientation-independent way.

    Version

    1.7

  8. object SegmentPointComparator

    Implements a robust method of comparing the relative position of two points along the same segment.

    Implements a robust method of comparing the relative position of two points along the same segment. The coordinates are assumed to lie "near" the segment. This means that this algorithm will only return correct results if the input coordinates have the same precision and correspond to rounded values of exact coordinates lying on the segment.

    Version

    1.7

Ungrouped