NetTopologySuite
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties Pages
Package NetTopologySuite.Noding

Namespaces

package  Snapround
 

Classes

class  BasicSegmentString
 Represents a list of contiguous line segments, and supports noding the segments. The line segments are represented by an array of Coordinates. 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. /summary> More...
 
class  FastNodingValidator
 Validates that a collection of ISegmentStrings is correctly noded. Indexing is used to improve performance. /summary> More...
 
class  FastSegmentSetIntersectionFinder
 Finds if two sets of ISegmentStrings intersect. More...
 
interface  INodableSegmentString
 An interface for classes which support adding nodes to a segment string. /summary> More...
 
interface  INoder
 Computes all intersections between segments in a set of ISegmentStrings. Intersections found are represented as SegmentNodes and added to the ISegmentStrings in which they occur. As a final step in the noding a new set of segment strings split at the nodes may be returned. More...
 
class  InteriorIntersectionFinder
 /summary> More...
 
class  InteriorIntersectionFinderAdder
 Finds interior intersections between line segments in NodedSegmentStrings, and adds them as nodes using NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,int,int,int). This class is used primarily for Snap-Rounding. For general-purpose noding, use IntersectionAdder. More...
 
class  IntersectionAdder
 Computes the possible intersections between two line segments in ISegmentStrings and adds them to each string using NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,int,int,int). More...
 
class  IntersectionFinderAdder
 Finds interior intersections between line segments in NodedSegmentStrings, and adds them as nodes using NodedSegmentString.AddIntersection(NetTopologySuite.Algorithm.LineIntersector,int,int,int). This class is used primarily for Snap-Rounding. For general-purpose noding, use IntersectionAdder. More...
 
interface  ISegmentIntersector
 Processes possible intersections detected by a INoder. More...
 
interface  ISegmentSetMutualIntersector
 An intersector for the red-blue intersection problem. In this class of line arrangement problem, two disjoint sets of linestrings are intersected. Implementing classes must provide a way of supplying the base set of segment strings to test against (e.g. in the constructor, for straightforward thread-safety). In order to allow optimizing processing, the following condition is assumed to hold for each set:

  • the only intersection between any two linestrings occurs at their endpoints.

Implementations can take advantage of this fact to optimize processing (i.e by avoiding testing for intersections between linestrings belonging to the same set). /summary> More...

 
interface  ISegmentString
 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. /summary> More...
 
class  IteratedNoder
 Nodes a set of ISegmentStrings completely. The set of ISegmentStrings is fully noded; i.e. noding is repeated until no further intersections are detected. More...
 
class  MCIndexNoder
 Nodes a set of ISegmentStrings using a index based on MonotoneChains and a ISpatialIndex. The ISpatialIndex used should be something that supports envelope (range) queries efficiently (such as a Quadtree" or <see cref="STRtree{MonotoneChain}" />. More...
 
class  MCIndexSegmentSetMutualIntersector
 Intersects two sets of ISegmentStrings using a index based on MonotoneChains and a ISpatialIndex. Thread-safe and immutable. /summary> More...
 
class  NodedSegmentString
 Represents a list of contiguous line segments, and supports noding the segments. The line segments are represented by an array of Coordinates. Intended to optimize the noding of contiguous segments by reducing the number of allocated objects. NodedSegmentStrings can carry a context object, which is useful for preserving topological or parentage information. All noded substrings are initialized with the same context object. More...
 
class  NodeVertexIterator
 
class  NodingValidator
 Validates that a collection of ISegmentStrings is correctly noded. Throws an appropriate exception if an noding error is found. More...
 
class  Octant
 Methods for computing and working with Octants of the Cartesian plane.
 
class  OrientedCoordinateArray
 Allows comparing Coordinate arrays in an orientation-independent way. More...
 
class  ScaledNoder
 Wraps a INoder 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. More...
 
class  SegmentIntersectionDetector
 Detects and records an intersection between two ISegmentStrings, if one exists. Only a single intersection is recorded. /summary> More...
 
class  SegmentNode
 Represents an intersection point between two ISegmentStrings. More...
 
class  SegmentNodeList
 A list of the SegmentNodes present along a noded ISegmentString. More...
 
class  SegmentPointComparator
 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. More...
 
class  SegmentStringDissolver
 Dissolves a noded collection of ISegmentStrings to produce a set of merged linework with unique segments. More...
 
class  SegmentStringUtil
 Utility methods for processing ISegmentStrings /summary> <author>Martin Davis</author> More...
 
class  SimpleNoder
 Nodes a set of ISegmentStrings by performing a brute-force comparison of every segment to every other one. This has n^2 performance, so is too slow for use on large numbers of segments. More...
 
class  SimpleSegmentSetMutualIntersector
 Intersects two sets of ISegmentStrings using brute-force comparison. More...
 
class  SinglePassNoder
 Base class for INoders which make a single pass to find intersections. This allows using a custom ISegmentIntersector (which for instance may simply identify intersections, rather than insert them). More...
 

Enumerations

enum  Octants {
  Octants.Null = -1, Octants.Zero = 0, Octants.One = 1, Octants.Two = 2,
  Octants.Three = 3, Octants.Four = 4, Octants.Five = 5, Octants.Six = 6,
  Octants.Seven = 7
}
 Octants in the Cartesian plane. Octants are numbered as follows: More...
 

Enumeration Type Documentation

Octants in 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.

Enumerator
Null 
Zero 
One 
Two 
Three 
Four 
Five 
Six 
Seven