18#include <geos/geom/Location.h>
19#include <geos/geom/Dimension.h>
20#include <geos/geom/IntersectionMatrix.h>
21#include <geos/operation/relateng/IMPredicate.h>
22#include <geos/export.h>
39class GEOS_DLL IMPatternMatcher :
public IMPredicate {
47 std::string imPattern;
48 IntersectionMatrix patternMatrix;
50 static bool requireInteraction(
const IntersectionMatrix& im);
52 static bool isInteraction(
int imDim);
57 IMPatternMatcher(std::string p_imPattern)
58 : imPattern(p_imPattern)
59 , patternMatrix(p_imPattern)
62 std::string name()
const override;
64 using IMPredicate::init;
65 void init(
const Envelope& envA,
const Envelope& envB)
override;
67 bool requireInteraction()
const override;
69 bool isDetermined()
const override;
71 bool valueIM()
override;
73 std::string toString()
const;
75 friend std::ostream& operator<<(std::ostream& os,
const IMPatternMatcher& imp);
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
Location
Constants representing the location of a point relative to a geometry.
Definition Location.h:32
Basic namespace for all GEOS functionalities.
Definition geos.h:39