19 #ifndef GEOS_OP_OVERLAY_OVERLAYOP_H 20 #define GEOS_OP_OVERLAY_OVERLAYOP_H 35 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 44 class GeometryFactory;
56 class ElevationMatrix;
191 static std::unique_ptr<geom::Geometry> createEmptyResult(
225 void computeOverlay(
OpCode opCode);
227 void insertUniqueEdges(std::vector<geomgraph::Edge*>* edges,
const geom::Envelope* env =
nullptr);
249 void computeLabelsFromDepths();
255 void replaceCollapsedEdges();
267 void copyPoints(
int argIndex,
const geom::Envelope* env =
nullptr);
277 void computeLabelling();
286 void mergeSymLabels();
288 void updateNodeLabelling();
307 void labelIncompleteNodes();
325 void findResultAreaEdges(
OpCode opCode);
331 void cancelDuplicateResultEdges();
338 std::vector<geom::Geometry*>* geomList);
345 std::vector<geom::Polygon*>* geomList);
352 std::vector<geom::LineString*>* geomList);
365 std::vector<geom::Point*>* nResultPointList,
366 std::vector<geom::LineString*>* nResultLineList,
367 std::vector<geom::Polygon*>* nResultPolyList,
390 bool avgzcomputed[2];
392 double getAverageZ(
int targetIndex);
399 void checkObviouslyWrongResult(
OpCode opCode);
411 #endif // ndef GEOS_OP_OVERLAY_OVERLAYOP_H An Envelope defines a rectangulare region of the 2D coordinate plane.
ElevationMatrix * elevationMatrix
std::vector< geom::Polygon * > * resultPolyList
Coordinate is the lightweight class used to store coordinates.
geomgraph::PlanarGraph & getGraph()
Gets the graph constructed to compute the overlay.
Represents a directed graph which is embeddable in a planar surface.
std::vector< geomgraph::Edge * > dupEdges
Caches for memory management.
OpCode
The spatial functions supported by this class.
A EdgeList is a list of Edges.
Computes the geometric overlay of two Geometry.
std::vector< geom::LineString * > * resultLineList
Computes the topological relationship (Location) of a single point to a Geometry. ...
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
algorithm::PointLocator ptLocator
The base class for operations that require GeometryGraph.
Represents a linear polygon, which may include holes.
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Location
Constants representing the location of a point relative to a geometry.
A Label indicates the topological relationship of a component of a topology graph to a given Geometry...
Basic namespace for all GEOS functionalities.
const geom::GeometryFactory * geomFact
geomgraph::PlanarGraph graph
The node component of a geometry graph.
geom::Geometry * resultGeom
geomgraph::EdgeList edgeList
std::vector< geom::Point * > * resultPointList