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>
46class GEOS_DLL IMPredicate :
public BasicPredicate {
58 IntersectionMatrix intMatrix;
66 virtual bool valueIM() = 0;
78 virtual bool isDetermined()
const = 0;
87 bool intersectsExteriorOf(
bool isA)
const;
101 static bool isDimsCompatibleWithCovers(
int dim0,
int dim1);
103 void init(
int dA,
int dB)
override;
109 using TopologyPredicate::isKnown;
119 void finish()
override;
121 std::string toString()
const;
123 friend std::ostream& operator<<(std::ostream& os,
const IMPredicate& imp);
@ A
Dimension value of a surface (2).
Definition Dimension.h:46
@ DONTCARE
Dimension value for any dimension (= {FALSE, TRUE}).
Definition Dimension.h:31
Definition Dimension.h:27
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
Provides classes for implementing operations on geometries.
Definition namespaces.h:179
Basic namespace for all GEOS functionalities.
Definition geos.h:39