22 #include <geos/geom/Geometry.h> 23 #include <geos/geom/GeometryFactory.h> 24 #include <geos/operation/overlay/OverlayOp.h> 25 #include <geos/operation/overlayng/OverlayGraph.h> 26 #include <geos/operation/overlayng/OverlayEdgeRing.h> 27 #include <geos/operation/overlayng/InputGeometry.h> 28 #include <geos/export.h> 33 class GeometryFactory;
121 InputGeometry inputGeom;
127 bool isAreaResultOnly;
129 bool isOutputResultEdges;
130 bool isOutputNodedEdges;
133 std::unique_ptr<geom::Geometry> computeEdgeOverlay();
150 std::unique_ptr<geom::Geometry> extractResult(
int opCode,
OverlayGraph* graph);
151 std::unique_ptr<geom::Geometry> createEmptyResult();
165 static constexpr
bool STRICT_MODE_DEFAULT =
false;
167 static constexpr
int INTERSECTION = overlay::OverlayOp::opINTERSECTION;
168 static constexpr
int UNION = overlay::OverlayOp::opUNION;
169 static constexpr
int DIFFERENCE = overlay::OverlayOp::opDIFFERENCE;
170 static constexpr
int SYMDIFFERENCE = overlay::OverlayOp::opSYMDIFFERENCE;
178 : pm(p_geomFact->getPrecisionModel())
179 , inputGeom(geom0, geom1)
180 , geomFact(p_geomFact)
183 , isStrictMode(STRICT_MODE_DEFAULT)
185 , isAreaResultOnly(false)
186 , isOutputEdges(false)
187 , isOutputResultEdges(false)
188 , isOutputNodedEdges(false)
198 , inputGeom(geom0, geom1)
199 , geomFact(geom0->getFactory())
202 , isStrictMode(STRICT_MODE_DEFAULT)
204 , isAreaResultOnly(false)
205 , isOutputEdges(false)
206 , isOutputResultEdges(false)
207 , isOutputNodedEdges(false)
224 :
OverlayNG(geom0, geom1, geom0->getFactory()->getPrecisionModel(), p_opCode)
240 void setStrictMode(
bool p_isStrictMode) { isStrictMode = p_isStrictMode; }
241 void setAreaResultOnly(
bool p_areaResultOnly) { isAreaResultOnly = p_areaResultOnly; }
242 void setOutputEdges(
bool p_isOutputEdges) { isOutputEdges = p_isOutputEdges; }
243 void setOutputResultEdges(
bool p_isOutputResultEdges) { isOutputResultEdges = p_isOutputResultEdges; }
246 void setOutputNodedEdges(
bool p_isOutputNodedEdges)
248 isOutputEdges =
true;
249 isOutputNodedEdges = p_isOutputNodedEdges;
260 std::unique_ptr<Geometry> getResult();
270 static bool isResultOfOpPoint(
const OverlayLabel* label,
int opCode);
296 static std::unique_ptr<Geometry>
312 static std::unique_ptr<Geometry>
327 static std::unique_ptr<Geometry>
351 static std::unique_ptr<Geometry>
374 static std::unique_ptr<Geometry>
394 static std::unique_ptr<Geometry>
Definition: OverlayNG.h:115
Definition: OverlayLabel.h:90
OverlayNG(const geom::Geometry *geom0, const geom::Geometry *geom1, const geom::GeometryFactory *p_geomFact, int p_opCode)
Definition: OverlayNG.h:177
Definition: OverlayGraph.h:54
OverlayNG(const geom::Geometry *geom0, const geom::Geometry *geom1, int p_opCode)
Definition: OverlayNG.h:223
Specifies the precision model of the Coordinate in a Geometry.
Definition: PrecisionModel.h:87
OverlayNG(const geom::Geometry *geom0, const geom::Geometry *geom1, const geom::PrecisionModel *p_pm, int p_opCode)
Definition: OverlayNG.h:196
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:188
void setOptimized(bool p_isOptimized)
Definition: OverlayNG.h:239
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:68
Location
Constants representing the location of a point relative to a geometry.
Definition: Location.h:34
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26
Computes all intersections between segments in a set of SegmentString.
Definition: Noder.h:49