GEOS  3.13.1
RelateMatrixPredicate.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (c) 2024 Martin Davis
7  * Copyright (C) 2024 Paul Ramsey <pramsey@cleverelephant.ca>
8  *
9  * This is free software; you can redistribute and/or modify it under
10  * the terms of the GNU Lesser General Public Licence as published
11  * by the Free Software Foundation.
12  * See the COPYING file for more information.
13  *
14  **********************************************************************/
15 
16 #pragma once
17 
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>
23 
24 #include <memory>
25 #include <vector>
26 
27 // Forward declarations
28 namespace geos {
29 namespace geom {
30  class Envelope;
31 }
32 }
33 
34 
39 
40 
41 namespace geos { // geos.
42 namespace operation { // geos.operation.
43 namespace relateng { // geos.operation.relateng
44 
45 
46 class GEOS_DLL RelateMatrixPredicate : public IMPredicate {
47 
48 public:
49 
50  RelateMatrixPredicate() {};
51 
52  std::string name() const override {
53  return "relateMatrix";
54  };
55 
56  bool requireInteraction() const override {
57  //-- ensure entire matrix is computed
58  return false;
59  };
60 
61  bool isDetermined() const override {
62  //-- ensure entire matrix is computed
63  return false;
64  };
65 
66  bool valueIM() override {
67  //-- indicates full matrix is being evaluated
68  return false;
69  };
70 
76  std::unique_ptr<IntersectionMatrix> getIM() {
77  return std::unique_ptr<IntersectionMatrix>(new IntersectionMatrix(intMatrix));
78  }
79 
80 };
81 
82 } // namespace geos.operation.relateng
83 } // namespace geos.operation
84 } // namespace geos
85 
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: Angle.h:25