18 #include <geos/geom/Location.h>
19 #include <geos/geom/Dimension.h>
20 #include <geos/geom/IntersectionMatrix.h>
21 #include <geos/operation/relateng/BasicPredicate.h>
22 #include <geos/export.h>
46 class GEOS_DLL IMPredicate :
public BasicPredicate {
66 virtual bool valueIM() = 0;
78 virtual bool isDetermined()
const = 0;
87 bool intersectsExteriorOf(
bool isA)
const;
89 bool isIntersects(Location locA, Location locB)
const;
101 static bool isDimsCompatibleWithCovers(
int dim0,
int dim1);
103 void init(
int dA,
int dB)
override;
105 void updateDimension(Location locA, Location locB,
int dimension)
override;
107 bool isDimChanged(Location locA, Location locB,
int dimension)
const;
109 using TopologyPredicate::isKnown;
110 bool isKnown(Location locA, Location locB)
const;
112 bool isDimension(Location locA, Location locB,
int dimension)
const;
114 int getDimension(Location locA, Location locB)
const;
119 void finish()
override;
121 std::string toString()
const;
123 friend std::ostream& operator<<(std::ostream& os,
const IMPredicate& imp);
Definition: Dimension.h:27
@ A
Dimension value of a surface (2).
Definition: Dimension.h:46
@ DONTCARE
Dimension value for any dimension (= {FALSE, TRUE}).
Definition: Dimension.h:31
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:59
Implementation of Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.
Definition: IntersectionMatrix.h:51
void set(Location row, Location column, int dimensionValue)
Changes the value of one of this IntersectionMatrixs elements.
Location
Constants representing the location of a point relative to a geometry.
Definition: Location.h:32
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25