GEOS
3.8.0dev

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)  
Public Member Functions inherited from geos::geom::prep::PreparedPolygonPredicate  
PreparedPolygonPredicate (const PreparedPolygon *const p_prepPoly)  
Protected Member Functions  
bool  eval (const geom::Geometry *geom) 
virtual bool  fullTopologicalPredicate (const geom::Geometry *geom)=0 
Protected Member Functions inherited from geos::geom::prep::PreparedPolygonPredicate  
bool  isAllTestComponentsInTarget (const geom::Geometry *testGeom) const 
Tests whether all components of the test Geometry are contained in the target 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 
Protected Attributes inherited from geos::geom::prep::PreparedPolygonPredicate  
const PreparedPolygon *const  prepPoly 
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 shortcircuit 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 shortcircuit 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.

protected 
Evaluate the contains
or covers
relationship for the given geometry.
geom  the test geometry 
Referenced by geos::geom::prep::PreparedPolygonContains::contains(), and geos::geom::prep::PreparedPolygonCovers::covers().

protectedpure virtual 
Computes the full topological predicate. Used when shortcircuit tests are not conclusive.
geom  the test geometry 
Implemented in geos::geom::prep::PreparedPolygonContains, and geos::geom::prep::PreparedPolygonCovers.

protected 
This flag controls a difference between contains and covers.
For contains the value is true. For covers the value is false.