GEOS  3.9.1dev
RelateOp.h
Go to the documentation of this file.
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2006 Refractions Research Inc.
7  *
8  * This is free software; you can redistribute and/or modify it under
9  * the terms of the GNU Lesser General Public Licence as published
10  * by the Free Software Foundation.
11  * See the COPYING file for more information.
12  *
13  **********************************************************************
14  *
15  * Last port: operation/relate/RelateOp.java rev. 1.19 (JTS-1.10)
16  *
17  **********************************************************************/
18 
19 #ifndef GEOS_OP_RELATE_RELATEOP_H
20 #define GEOS_OP_RELATE_RELATEOP_H
21 
22 #include <geos/export.h>
23 
25 #include <geos/operation/GeometryGraphOperation.h> // for inheritance
26 #include <geos/operation/relate/RelateComputer.h> // for composition
27 
28 // Forward declarations
29 namespace geos {
30 namespace algorithm {
31 class BoundaryNodeRule;
32 }
33 namespace geom {
34 class Geometry;
35 }
36 }
37 
38 
39 namespace geos {
40 namespace operation { // geos::operation
41 namespace relate { // geos::operation::relate
42 
58 
59 public:
60 
72  static std::unique_ptr<geom::IntersectionMatrix> relate(
73  const geom::Geometry* a,
74  const geom::Geometry* b);
75 
88  static std::unique_ptr<geom::IntersectionMatrix> relate(
89  const geom::Geometry* a,
90  const geom::Geometry* b,
91  const algorithm::BoundaryNodeRule& boundaryNodeRule);
92 
100  RelateOp(const geom::Geometry* g0,
101  const geom::Geometry* g1);
102 
111  RelateOp(const geom::Geometry* g0,
112  const geom::Geometry* g1,
113  const algorithm::BoundaryNodeRule& boundaryNodeRule);
114 
115  ~RelateOp() override = default;
116 
125  std::unique_ptr<geom::IntersectionMatrix> getIntersectionMatrix();
126 
127 private:
128 
130 };
131 
132 
133 } // namespace geos:operation:relate
134 } // namespace geos:operation
135 } // namespace geos
136 
137 #endif // GEOS_OP_RELATE_RELATEOP_H
#define GEOS_DLL
Definition: export.h:28
Implements the SFS relate() operation on two geom::Geometry objects.
Definition: RelateOp.h:57
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:188
The base class for operations that require GeometryGraph.
An interface for rules which determine whether node points which are in boundaries of lineal geometry...
Basic namespace for all GEOS functionalities.
Computes the topological relationship between two Geometries.