GEOS  3.8.0dev
Public Member Functions | List of all members
geos::operation::IsSimpleOp Class Reference

Tests whether a Geometry is simple. More...

#include <IsSimpleOp.h>

Public Member Functions

 IsSimpleOp ()
 Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule. More...
 
 IsSimpleOp (const geom::Geometry &geom)
 Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule. More...
 
 IsSimpleOp (const geom::Geometry &geom, const algorithm::BoundaryNodeRule &boundaryNodeRule)
 Creates a simplicity checker using a given algorithm::BoundaryNodeRule. More...
 
bool isSimple ()
 Tests whether the geometry is simple. More...
 
const geom::CoordinategetNonSimpleLocation () const
 Gets a coordinate for the location where the geometry fails to be simple (i.e. where it has a non-boundary self-intersection). More...
 
bool isSimple (const geom::LineString *geom)
 Reports whether a geom::LineString is simple. More...
 
bool isSimple (const geom::MultiLineString *geom)
 Reports whether a geom::MultiLineString is simple. More...
 
bool isSimple (const geom::MultiPoint *mp)
 A MultiPoint is simple iff it has no repeated points. More...
 
bool isSimpleLinearGeometry (const geom::Geometry *geom)
 

Detailed Description

Tests whether a Geometry is simple.

In general, the SFS specification of simplicity follows the rule:

This definition relies on the definition of boundary points. The SFS uses the Mod-2 rule to determine which points are on the boundary of lineal geometries, but this class supports using other BoundaryNodeRules as well.

Simplicity is defined for each Geometry subclass as follows:

See also
algorithm::BoundaryNodeRule

Constructor & Destructor Documentation

geos::operation::IsSimpleOp::IsSimpleOp ( )

Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule.

Deprecated:
use IsSimpleOp(Geometry)
geos::operation::IsSimpleOp::IsSimpleOp ( const geom::Geometry geom)

Creates a simplicity checker using the default SFS Mod-2 Boundary Node Rule.

Parameters
geomThe geometry to test. Will store a reference: keep it alive.
geos::operation::IsSimpleOp::IsSimpleOp ( const geom::Geometry geom,
const algorithm::BoundaryNodeRule boundaryNodeRule 
)

Creates a simplicity checker using a given algorithm::BoundaryNodeRule.

Parameters
geomthe geometry to test
boundaryNodeRulethe rule to use.

Member Function Documentation

const geom::Coordinate* geos::operation::IsSimpleOp::getNonSimpleLocation ( ) const
inline

Gets a coordinate for the location where the geometry fails to be simple (i.e. where it has a non-boundary self-intersection).

isSimple must be called before this method is called.

Returns
a coordinate for the location of the non-boundary self-intersection. Ownership retained.
the null coordinate if the geometry is simple
bool geos::operation::IsSimpleOp::isSimple ( )

Tests whether the geometry is simple.

Returns
true if the geometry is simple
bool geos::operation::IsSimpleOp::isSimple ( const geom::LineString geom)

Reports whether a geom::LineString is simple.

Parameters
geomthe lineal geometry to test
Returns
true if the geometry is simple
Deprecated:
use isSimple()
bool geos::operation::IsSimpleOp::isSimple ( const geom::MultiLineString geom)

Reports whether a geom::MultiLineString is simple.

Parameters
geomthe lineal geometry to test
Returns
true if the geometry is simple
Deprecated:
use isSimple()
bool geos::operation::IsSimpleOp::isSimple ( const geom::MultiPoint mp)

A MultiPoint is simple iff it has no repeated points.

Deprecated:
use isSimple()

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