21#include <geos/export.h>
23#include <geos/algorithm/PointLocator.h>
24#include <geos/geom/Dimension.h>
25#include <geos/geom/Location.h>
26#include <geos/geomgraph/EdgeList.h>
27#include <geos/geomgraph/PlanarGraph.h>
28#include <geos/operation/GeometryGraphOperation.h>
34#pragma warning(disable: 4251)
218 std::vector<geom::Polygon*>* resultPolyList;
220 std::vector<geom::LineString*>* resultLineList;
222 std::vector<geom::Point*>* resultPointList;
224 void computeOverlay(
OpCode opCode);
226 void insertUniqueEdges(std::vector<geomgraph::Edge*>* edges,
const geom::Envelope* env =
nullptr);
248 void computeLabelsFromDepths();
254 void replaceCollapsedEdges();
266 void copyPoints(uint8_t argIndex,
const geom::Envelope* env =
nullptr);
276 void computeLabelling();
285 void mergeSymLabels();
287 void updateNodeLabelling();
306 void labelIncompleteNodes();
324 void findResultAreaEdges(
OpCode opCode);
330 void cancelDuplicateResultEdges();
337 std::vector<geom::Geometry*>* geomList);
344 std::vector<geom::Polygon*>* geomList);
351 std::vector<geom::LineString*>* geomList);
364 std::vector<geom::Point*>* nResultPointList,
365 std::vector<geom::LineString*>* nResultLineList,
366 std::vector<geom::Polygon*>* nResultPolyList,
370 std::vector<geomgraph::Edge*>dupEdges;
389 bool avgzcomputed[2];
391 double getAverageZ(uint8_t targetIndex);
394 ElevationMatrix* elevationMatrix;
398 void checkObviouslyWrongResult(
OpCode opCode);
Computes the topological relationship (Location) of a single point to a Geometry.
Definition: PointLocator.h:56
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
DimensionType
Definition: Dimension.h:29
An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:58
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:66
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:186
Definition: LineString.h:66
Represents a linear polygon, which may include holes.
Definition: Polygon.h:61
A EdgeList is a list of Edges.
Definition: EdgeList.h:55
Definition: geomgraph/Edge.h:63
A Label indicates the topological relationship of a component of a topology graph to a given Geometry...
Definition: Label.h:57
The node component of a geometry graph.
Definition: geomgraph/Node.h:59
Represents a directed graph which is embeddable in a planar surface.
Definition: geomgraph/PlanarGraph.h:72
The base class for operations that require GeometryGraph.
Definition: GeometryGraphOperation.h:51
Computes the geometric overlay of two Geometry.
Definition: OverlayOp.h:69
static geom::Geometry * overlayOp(const geom::Geometry *geom0, const geom::Geometry *geom1, OpCode opCode)
Computes an overlay operation for the given geometry arguments.
void insertUniqueEdge(geomgraph::Edge *e)
Insert an edge from one of the noded input graphs.
OpCode
The spatial functions supported by this class.
Definition: OverlayOp.h:78
bool isCoveredByLA(const geom::Coordinate &coord)
This method is used to decide if a point node should be included in the result or not.
static bool isResultOfOp(geom::Location loc0, geom::Location loc1, OpCode opCode)
This method will handle arguments of Location.NULL correctly.
static std::unique_ptr< geom::Geometry > createEmptyResult(OverlayOp::OpCode overlayOpCode, const geom::Geometry *a, const geom::Geometry *b, const geom::GeometryFactory *geomFact)
geom::Geometry * getResultGeometry(OpCode overlayOpCode)
Gets the result of the overlay for a given overlay operation.
OverlayOp(const geom::Geometry *g0, const geom::Geometry *g1)
Construct an OverlayOp with the given Geometry args.
bool isCoveredByA(const geom::Coordinate &coord)
This method is used to decide if an L edge should be included in the result or not.
geomgraph::PlanarGraph & getGraph()
Gets the graph constructed to compute the overlay.
Definition: OverlayOp.h:150
static bool isResultOfOp(const geomgraph::Label &label, OpCode opCode)
Tests whether a point with a given topological Label relative to two geometries is contained in the r...
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