GEOS  3.8.0dev
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 p_isValid)
 Sets whether polygons using Self-Touching Rings to form holes are reported as valid. More...
 

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.

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  p_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: