GEOS
3.9.1dev
|
A base class containing the logic for computes the contains
and covers
spatial relationship predicates for a PreparedPolygon relative to all other Geometry classes.
More...
#include <AbstractPreparedPolygonContains.h>
Public Member Functions | |
AbstractPreparedPolygonContains (const PreparedPolygon *const p_prepPoly) | |
AbstractPreparedPolygonContains (const PreparedPolygon *const p_prepPoly, bool p_requireSomePointInInterior) | |
~AbstractPreparedPolygonContains () override | |
![]() | |
PreparedPolygonPredicate (const PreparedPolygon *const p_prepPoly) | |
Creates an instance of this operation. More... | |
virtual | ~PreparedPolygonPredicate () |
Protected Member Functions | |
bool | eval (const geom::Geometry *geom) |
bool | evalPointTestGeom (const geom::Geometry *geom, geom::Location outermostLoc) |
virtual bool | fullTopologicalPredicate (const geom::Geometry *geom)=0 |
![]() | |
geom::Location | getOutermostTestComponentLocation (const geom::Geometry *testGeom) const |
Returns the outermost Location among a test point from each components of the test geometry. More... | |
bool | isAllTestComponentsInTargetInterior (const geom::Geometry *testGeom) const |
Tests whether all components of the test Geometry are contained in the interior of the target geometry. More... | |
bool | isAnyTestComponentInTarget (const geom::Geometry *testGeom) const |
Tests whether any component of the test Geometry intersects the area of the target geometry. More... | |
bool | isAnyTestComponentInTargetInterior (const geom::Geometry *testGeom) const |
Tests whether any component of the test Geometry intersects the interior of the target geometry. More... | |
bool | isAnyTargetComponentInAreaTest (const geom::Geometry *testGeom, const geom::Coordinate::ConstVect *targetRepPts) const |
Protected Attributes | |
bool | requireSomePointInInterior |
![]() | |
const PreparedPolygon *const | prepPoly |
Private Member Functions | |
bool | isProperIntersectionImpliesNotContainedSituation (const geom::Geometry *testGeom) |
bool | isSingleShell (const geom::Geometry &geom) |
void | findAndClassifyIntersections (const geom::Geometry *geom) |
Private Attributes | |
bool | hasSegmentIntersection |
bool | hasProperIntersection |
bool | hasNonProperIntersection |
A base class containing the logic for computes the contains
and covers
spatial relationship predicates for a PreparedPolygon relative to all other Geometry classes.
Uses short-circuit tests and indexing to improve performance.
Contains and covers are very similar, and differ only in how certain cases along the boundary are handled. These cases require full topological evaluation to handle, so all the code in this class is common to both predicates.
It is not possible to short-circuit in all cases, in particular in the case where line segments of the test geometry touches the polygon linework. In this case full topology must be computed. (However, if the test geometry consists of only points, this can be evaluated in an optimized fashion.
Definition at line 65 of file AbstractPreparedPolygonContains.h.
|
inline |
Definition at line 121 of file AbstractPreparedPolygonContains.h.
|
inline |
Definition at line 129 of file AbstractPreparedPolygonContains.h.
|
inlineoverride |
Definition at line 137 of file AbstractPreparedPolygonContains.h.
|
protected |
Evaluate the contains
or covers
relationship for the given geometry.
geom | the test geometry |
|
protected |
Evaluate the contains
or covers
relationship for the given Puntal geometry.
geom | the test geometry |
outermostLoc | outermost Location of all points in geom |
|
private |
|
protectedpure virtual |
Computes the full topological predicate. Used when short-circuit tests are not conclusive.
geom | the test geometry |
Implemented in geos::geom::prep::PreparedPolygonContains, and geos::geom::prep::PreparedPolygonCovers.
|
private |
|
private |
Tests whether a geometry consists of a single polygon with no holes.
|
private |
Definition at line 70 of file AbstractPreparedPolygonContains.h.
|
private |
Definition at line 69 of file AbstractPreparedPolygonContains.h.
|
private |
Definition at line 68 of file AbstractPreparedPolygonContains.h.
|
protected |
This flag controls a difference between contains and covers.
For contains the value is true. For covers the value is false.
Definition at line 90 of file AbstractPreparedPolygonContains.h.