GEOS  3.3.4
Public Member Functions | Static Public Member Functions | Friends | List of all members
geos::operation::valid::IsValidOp Class Reference

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

#include <IsValidOp.h>

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)
 
static bool isValid (const geom::Geometry &geom)
 

Friends

class Unload
 

Detailed Description

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

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
coordthe coordinate to validate
Returns
true if the coordinate is valid
static bool geos::operation::valid::IsValidOp::isValid ( const geom::Geometry geom)
static

Tests whether a Geometry is valid.

Parameters
geomthe Geometry to test
Returns
true if the geometry 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
isValidstates whether geometry with this condition is valid

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