GEOS 3.4.2

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

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 ()
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