com.vividsolutions.jts.operation.valid
Class IsValidOp
java.lang.Objectcom.vividsolutions.jts.operation.valid.IsValidOp
public class IsValidOp
extends java.lang.Object
Implements the algorithsm required to compute the
isValid() method
for
Geometrys.
See the documentation for the various geometry types for a specification of validity.
IsValidOp
public IsValidOp(Geometry parentGeometry)
findPtNotNode
public static Coordinate findPtNotNode(Coordinate[] testCoords,
LinearRing searchRing,
GeometryGraph graph) Find a point from the list of testCoords
that is NOT a node in the edge for the list of searchCoords
- the point found, or
null if none found
isValid
public boolean isValid()
isValid
public static boolean isValid(Coordinate coord)
Checks whether a coordinate is valid for processing.
Coordinates are valid iff their x and y ordinates are in the
range of the floating point representation.
coord - the coordinate to validate
true if the coordinate is valid
setSelfTouchingRingFormingHoleValid
public void setSelfTouchingRingFormingHoleValid(boolean isValid)
Sets whether polygons using
Self-Touching Rings to form
holes are reported as valid.
If this flag is set, the following Self-Touching conditions
are treated as being valid:
- the shell ring self-touches to create a hole touching the shell
- a hole ring self-touches to create two holes touching at a point
The default (following the OGC SFS standard)
is that this condition is
not valid (
false).
This does not affect whether Self-Touching Rings
disconnecting the polygon interior are considered valid
(these are considered to be
invalid under the SFS, and many other
spatial models as well).
This includes "bow-tie" shells,
which self-touch at a single point causing the interior to
be disconnected,
and "C-shaped" holes which self-touch at a single point causing an island to be formed.
isValid - states whether geometry with this condition is valid