Public Member Functions | Static Public Member Functions | Friends

geos::operation::valid::IsValidOp Class Reference

Implements the algorithsm required to compute the isValid() method for Geometrys. More...

#include <IsValidOp.h>

List of all members.

Public Member Functions

 IsValidOp (const geom::Geometry *geom)
virtual ~IsValidOp ()
 TODO: validErr can't be a pointer!
bool isValid ()
TopologyValidationErrorgetValidationError ()
void setSelfTouchingRingFormingHoleValid (bool isValid)
 Sets whether polygons using Self-Touching Rings to form holes are reported as valid.

Static Public Member Functions

static const geom::CoordinatefindPtNotNode (const geom::CoordinateSequence *testCoords, const geom::LinearRing *searchRing, geomgraph::GeometryGraph *graph)
static bool isValid (const geom::Coordinate &coord)

Friends

class Unload

Detailed Description

Implements the algorithsm required to compute the isValid() method for Geometrys.


Member Function Documentation

static const geom::Coordinate* geos::operation::valid::IsValidOp::findPtNotNode ( const geom::CoordinateSequence testCoords,
const geom::LinearRing searchRing,
geomgraph::GeometryGraph *  graph 
) [static]

Find a point from the list of testCoords that is NOT a node in the edge for the list of searchCoords

Returns:
the point found, or NULL if none found
static bool geos::operation::valid::IsValidOp::isValid ( const geom::Coordinate coord  )  [static]

Checks whether a coordinate is valid for processing. Coordinates are valid iff their x and y coordinates are in the range of the floating point representation.

Parameters:
coord the coordinate to validate
Returns:
true if the coordinate is valid
void geos::operation::valid::IsValidOp::setSelfTouchingRingFormingHoleValid ( bool  isValid  )  [inline]

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.

Parameters:
isValid states whether geometry with this condition is valid

The documentation for this class was generated from the following file: