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

Namespaces

package  Distance
 
package  Locate
 
package  Match
 

Classes

class  AngleUtility
 Utility functions for working with angles. Unless otherwise noted, methods in this class express angles in radians.
 
class  BoundaryNodeRules
 Provides access to static instances of common IBoundaryNodeRules.
 
class  CentralEndpointIntersector
 Computes an approximate intersection of two line segments by taking the most central of the endpoints of the segments. This is effective in cases where the segments are nearly parallel and should intersect at an endpoint. It is also a reasonable strategy for cases where the endpoint of one segment lies on or almost on the interior of another one. Taking the most central endpoint ensures that the computed intersection point lies in the envelope of the segments. Also, by always returning one of the input points, this should result in reducing segment fragmentation. Intended to be used as a last resort for computing ill-conditioned intersection situations which cause other methods to fail. More...
 
class  Centroid
 Computes the centroid of a IGeometry of any dimension. If the geometry is nominally of higher dimension, but has lower effective dimension (i.e. contains only components having zero length or area), the centroid will be computed as for the equivalent lower-dimension geometry. If the input geometry is empty, a null Coordinate is returned. More...
 
class  CentroidArea
 Computes the centroid of an area point. More...
 
class  CentroidLine
 Computes the centroid of a linear point. Algorithm: Compute the average of the midpoints of all line segments weighted by the segment length. More...
 
class  CentroidPoint
 Computes the centroid of a point point. Algorithm: Compute the average of all points. More...
 
class  CGAlgorithms
 Specifies and implements various fundamental Computational Geometric algorithms. The algorithms supplied in this class are robust for double-precision floating point.
 
class  CGAlgorithms3D
 
class  CGAlgorithmsDD
 Implements basic computational geometry algorithms using

See also
DD

arithmetic.

 
class  ConvexHull
 Computes the convex hull of a Geometry. The convex hull is the smallest convex Geometry that contains all the points in the input Geometry. Uses the Graham Scan algorithm. More...
 
class  HCoordinate
 Represents a homogeneous coordinate in a 2-D coordinate space. In NTS HCoordinates are used as a clean way of computing intersections between line segments. More...
 
interface  IBoundaryNodeRule
 An interface for rules which determine whether node points which are in boundaries of ILineal geometry components are in the boundary of the parent geometry collection. The SFS specifies a single kind of boundary node rule, the BoundaryNodeRules.Mod2BoundaryNodeRule rule. However, other kinds of Boundary Node Rules are appropriate in specific situations (for instance, linear network topology usually follows the BoundaryNodeRules.EndPointBoundaryNodeRule.) Some JTS operations (such as RelateOp, BoundaryOp and IsSimpleOp) allow the BoundaryNodeRule to be specified, and respect the supplied rule when computing the results of the operation. An example use case for a non-SFS-standard Boundary Node Rule is that of checking that a set of ILineStrings have valid linear network topology, when turn-arounds are represented as closed rings. In this situation, the entry road to the turn-around is only valid when it touches the turn-around ring at the single (common) endpoint. This is equivalent to requiring the set of LineStrings to be simple under the BoundaryNodeRules.EndPointBoundaryNodeRule. The SFS-standard BoundaryNodeRules.Mod2BoundaryNodeRule is not sufficient to perform this test, since it states that closed rings have no boundary points. This interface and its subclasses follow the Strategy design pattern. /summary> <author>Martin Davis</author>

See also
RelateOp, BoundaryOp, IsSimpleOp, PointLocator
More...
 
class  IndexedPointInAreaLocator
 Determines the Location of ICoordinates relative to a IPolygonal geometry, using indexing for efficiency. /summary> More...
 
class  InteriorPointArea
 Computes a point in the interior of an areal geometry. More...
 
class  InteriorPointLine
 Computes a point in the interior of an linear point. Algorithm: Find an interior vertex which is closest to the centroid of the linestring. If there is no interior vertex, find the endpoint which is closest to the centroid. More...
 
class  InteriorPointPoint
 Computes a point in the interior of an point point. Algorithm: Find a point which is closest to the centroid of the point. More...
 
interface  IPointInAreaLocator
 An interface for classes which determine the Location of points in a IGeometry /summary> author>Martin Davis</author> More...
 
interface  IPointInRing
 An interface for classes which test whether a Coordinate lies inside a ring. More...
 
class  LineIntersector
 A LineIntersector is an algorithm that can both test whether two line segments intersect and compute the intersection point(s) if they do. More...
 
class  MCPointInRing
 Implements IPointInRing using a MonotoneChains and a BinTree index to increase performance. More...
 
class  MinimumBoundingCircle
 Computes the Minimum Bounding Circle (MBC) for the points in a IGeometry. The MBC is the smallest circle which covers all the input points (this is also sometimes known as the Smallest Enclosing Circle). This is equivalent to computing the Maximum Diameter of the input point set. More...
 
class  MinimumDiameter
 Computes the minimum diameter of a IGeometry. More...
 
class  NonRobustCGAlgorithms
 Non-robust versions of various fundamental Computational Geometric algorithms, FOR TESTING PURPOSES ONLY!. The non-robustness is due to rounding error in floating point computation.
 
class  NonRobustLineIntersector
 A non-robust version of LineIntersector. More...
 
class  NotRepresentableException
 
class  PointLocator
 Computes the topological relationship (Location) of a single point to a Geometry. More...
 
class  RayCrossingCounter
 Counts the number of segments crossed by a horizontal ray extending to the right from a given point, in an incremental fashion. More...
 
class  RectangleLineIntersector
 Computes whether a rectangle intersects line segments. More...
 
class  RobustDeterminant
 Implements an algorithm to compute the sign of a 2x2 determinant for double precision values robustly. It is a direct translation of code developed by Olivier Devillers. More...
 
class  RobustLineIntersector
 A robust version of LineIntersector. More...
 
class  SimplePointInAreaLocator
 Computes the location of points relative to a IPolygonal IGeometry, using a simple O(n) algorithm. This algorithm is suitable for use in cases where only one or a few points will be tested against a given area. More...
 
class  SimplePointInRing
 Tests whether a Coordinate lies inside a ring, using a linear-time algorithm. More...
 
class  SIRtreePointInRing
 Implements PointInRing using a SIRtree index to increase performance. More...
 

Enumerations

enum  Orientation {
  Orientation.None = CGAlgorithms.Collinear, Orientation.Straight = None, Orientation.CounterClockwise = CGAlgorithms.CounterClockwise, Orientation.Left = CounterClockwise,
  Orientation.Clockwise = CGAlgorithms.Clockwise, Right = Clockwise
}
 Angle orientation More...
 

Enumeration Type Documentation

Angle orientation

Enumerator
None 

summary>Constant representing no orientation

summary>Constant representing straight orientation

Straight 

summary>Constant representing counterclockwise orientation

CounterClockwise 

summary>Constant representing left orientation

Left 

summary>Constant representing clockwise orientation

Clockwise 

summary>Constant representing right orientation