

PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 
See:
Description
Interface Summary  
BoundaryNodeRule  An interface for rules which determine whether node points which are in boundaries of lineal geometry components are in the boundary of the parent geometry collection. 
PointInRing  An interface for classes which test whether a Coordinate lies inside
a ring. 
Class Summary  
Angle  Utility functions for working with angles. 
BoundaryNodeRule.EndPointBoundaryNodeRule  A BoundaryNodeRule which specifies that any points which are endpoints
of lineal components are in the boundary of the
parent geometry. 
BoundaryNodeRule.Mod2BoundaryNodeRule  A BoundaryNodeRule specifies that points are in the
boundary of a lineal geometry iff
the point lies on the boundary of an odd number
of components. 
BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule  A BoundaryNodeRule which determines that only
endpoints with valency of exactly 1 are on the boundary. 
BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule  A BoundaryNodeRule which determines that only
endpoints with valency greater than 1 are on the boundary. 
CentralEndpointIntersector  Computes an approximate intersection of two line segments by taking the most central of the endpoints of the segments. 
CentroidArea  Computes the centroid of an area geometry. 
CentroidLine  Computes the centroid of a linear geometry. 
CentroidPoint  Computes the centroid of a point geometry. 
CGAlgorithms  Specifies and implements various fundamental Computational Geometric algorithms. 
ConvexHull  Computes the convex hull of a Geometry . 
HCoordinate  Represents a homogeneous coordinate in a 2D coordinate space. 
InteriorPointArea  Computes a point in the interior of an area geometry. 
InteriorPointLine  Computes a point in the interior of an linear geometry. 
InteriorPointPoint  Computes a point in the interior of an point geometry. 
LineIntersector  A LineIntersector is an algorithm that can both test whether two line segments intersect and compute the intersection point if they do. 
MCPointInRing  Implements PointInRing
using MonotoneChain s and a BinTree index to
increase performance. 
MinimumDiameter  Computes the minimum diameter of a Geometry . 
NonRobustCGAlgorithms  Nonrobust versions of various fundamental Computational Geometric algorithms, FOR TESTING PURPOSES ONLY!. 
NonRobustLineIntersector  A nonrobust version of . 
PointLocator  Computes the topological relationship (Location )
of a single point to a Geometry . 
RobustCGAlgorithms  Stub version of RobustCGAlgorithms for backwards compatibility. 
RobustDeterminant  Implements an algorithm to compute the sign of a 2x2 determinant for double precision values robustly. 
RobustLineIntersector  A robust version of . 
SimplePointInAreaLocator  Computes whether a point
lies in the interior of an area Geometry . 
SimplePointInRing  Tests whether a Coordinate lies inside
a ring, using a lineartime algorithm. 
SIRtreePointInRing  Implements PointInRing
using a SIRtree index to
increase performance. 
Exception Summary  
NotRepresentableException  Indicates that a HCoordinate has been computed which is
not representable on the Cartesian plane. 
Contains classes and interfaces implementing fundamental computational geometry algorithms.
There are many approaches to dealing with the problem of robustness in geometrical computation. Not surprisingly, most robust algorithms are substantially more complex and less performant than the nonrobust versions. Fortunately, JTS is sensitive to robustness problems in only a few key functions (such as line intersection and the pointinpolygon test). There are efficient robust algorithms available for these functions, and these algorithms are implemented in JTS.
The obvious naive algorithm for intersection detection (comparing every segment with every other) has unacceptably slow performance. There is a large literature of faster algorithms for intersection detection. Unfortunately, many of them involve substantial code complexity. JTS tries to balance code simplicity with performance gains. It uses some simple techniques to produce substantial performance gains for common types of input data.


PREV PACKAGE NEXT PACKAGE  FRAMES NO FRAMES 