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

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 ()
TopologyValidationError * | getValidationError ()
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::Coordinate * | findPtNotNode (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:

  coord | the 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:

  geom | the 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:

  isValid | states whether geometry with this condition is valid

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

- IsValidOp.h