com.vividsolutions.jts.operation.valid
Class IsValidOp
java.lang.Object
com.vividsolutions.jts.operation.valid.IsValidOp
public class IsValidOp
extends java.lang.Object
Implements the algorithsm required to compute the
isValid()
method
for
Geometry
s.
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