GEOS 3.14.0dev
|
#include <RelateNG.h>
Public Member Functions | |
std::unique_ptr< IntersectionMatrix > | evaluate (const Geometry *b) |
bool | evaluate (const Geometry *b, const std::string &imPattern) |
bool | evaluate (const Geometry *b, TopologyPredicate &predicate) |
bool | intersects (const Geometry *a) |
bool | crosses (const Geometry *a) |
bool | disjoint (const Geometry *a) |
bool | touches (const Geometry *a) |
bool | within (const Geometry *a) |
bool | contains (const Geometry *a) |
bool | overlaps (const Geometry *a) |
bool | covers (const Geometry *a) |
bool | coveredBy (const Geometry *a) |
bool | equalsTopo (const Geometry *a) |
bool | relate (const Geometry *a, const std::string &pat) |
std::unique_ptr< IntersectionMatrix > | relate (const Geometry *a) |
Static Public Member Functions | |
static bool | relate (const Geometry *a, const Geometry *b, TopologyPredicate &pred) |
static bool | relate (const Geometry *a, const Geometry *b, TopologyPredicate &pred, const BoundaryNodeRule &bnRule) |
static bool | relate (const Geometry *a, const Geometry *b, const std::string &imPattern) |
static std::unique_ptr< IntersectionMatrix > | relate (const Geometry *a, const Geometry *b) |
static std::unique_ptr< IntersectionMatrix > | relate (const Geometry *a, const Geometry *b, const BoundaryNodeRule &bnRule) |
static std::unique_ptr< RelateNG > | prepare (const Geometry *a) |
static std::unique_ptr< RelateNG > | prepare (const Geometry *a, const BoundaryNodeRule &bnRule) |
static bool | intersects (const Geometry *a, const Geometry *b) |
static bool | crosses (const Geometry *a, const Geometry *b) |
static bool | disjoint (const Geometry *a, const Geometry *b) |
static bool | touches (const Geometry *a, const Geometry *b) |
static bool | within (const Geometry *a, const Geometry *b) |
static bool | contains (const Geometry *a, const Geometry *b) |
static bool | overlaps (const Geometry *a, const Geometry *b) |
static bool | covers (const Geometry *a, const Geometry *b) |
static bool | coveredBy (const Geometry *a, const Geometry *b) |
static bool | equalsTopo (const Geometry *a, const Geometry *b) |
Computes the value of topological predicates between two geometries based on the Dimensionally-Extended 9-Intersection Model https://en.wikipedia.org/wiki/DE-9IM (DE-9IM). Standard and custom topological predicates are provided by RelatePredicate.
The RelateNG algorithm has the following capabilities:
See IntersectionMatrixPattern for a description of DE-9IM patterns.
If not specified, the standard BoundaryNodeRule::MOD2_BOUNDARY_RULE is used.
RelateNG operates in 2D only; it ignores any Z ordinates.
This implementation replaces RelateOp and PreparedGeometry.
FUTURE WORK
std::unique_ptr< IntersectionMatrix > geos::operation::relateng::RelateNG::evaluate | ( | const Geometry * | b | ) |
Computes the DE-9IM matrix for the topological relationship to a geometry.
b | the B geometry to test against |
bool geos::operation::relateng::RelateNG::evaluate | ( | const Geometry * | b, |
const std::string & | imPattern | ||
) |
Tests whether the topological relationship to a geometry matches a DE-9IM matrix pattern.
b | the B geometry to test against |
imPattern | the DE-9IM pattern to match |
bool geos::operation::relateng::RelateNG::evaluate | ( | const Geometry * | b, |
TopologyPredicate & | predicate | ||
) |
Tests whether the topological relationship to a geometry satisfies a topology predicate.
b | the B geometry to test against |
predicate | the topological predicate |
|
static |
Creates a prepared RelateNG instance to optimize the evaluation of relationships against a single geometry.
a | the A input geometry |
|
static |
Creates a prepared RelateNG instance to optimize the computation of predicates against a single geometry, using a given BoundaryNodeRule.
a | the A input geometry |
bnRule | the required BoundaryNodeRule |
|
static |
Computes the DE-9IM matrix for the topological relationship between two geometries.
a | the A input geometry |
b | the B input geometry |
|
static |
Computes the DE-9IM matrix for the topological relationship between two geometries.
a | the A input geometry |
b | the B input geometry |
bnRule | the Boundary Node Rule to use |
|
static |
Tests whether the topological relationship to a geometry matches a DE-9IM matrix pattern.
a | the A input geometry |
b | the B input geometry |
imPattern | the DE-9IM pattern to match |
|
static |
Tests whether the topological relationship between two geometries satisfies a topological predicate.
a | the A input geometry |
b | the B input geometry |
pred | the topological predicate |
|
static |
Tests whether the topological relationship between two geometries satisfies a topological predicate, using a given BoundaryNodeRule.
a | the A input geometry |
b | the B input geometry |
pred | the topological predicate |
bnRule | the Boundary Node Rule to use |