19 #ifndef GEOS_OP_OVERLAY_OVERLAYOP_H 20 #define GEOS_OP_OVERLAY_OVERLAYOP_H 22 #include <geos/export.h> 24 #include <geos/operation/GeometryGraphOperation.h> 25 #include <geos/geomgraph/EdgeList.h> 26 #include <geos/algorithm/PointLocator.h> 27 #include <geos/geomgraph/PlanarGraph.h> 33 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class 42 class GeometryFactory;
54 class ElevationMatrix;
120 static bool isResultOfOp(
int loc0,
int loc1, OpCode opCode);
196 std::vector<geom::Polygon*> *resultPolyList;
198 std::vector<geom::LineString*> *resultLineList;
200 std::vector<geom::Point*> *resultPointList;
202 void computeOverlay(OpCode opCode);
204 void insertUniqueEdges(std::vector<geomgraph::Edge*> *edges,
const geom::Envelope *env=0);
226 void computeLabelsFromDepths();
232 void replaceCollapsedEdges();
254 void computeLabelling();
263 void mergeSymLabels();
265 void updateNodeLabelling();
284 void labelIncompleteNodes();
302 void findResultAreaEdges(OpCode opCode);
308 void cancelDuplicateResultEdges();
315 std::vector<geom::Geometry*> *geomList);
322 std::vector<geom::Polygon*> *geomList);
329 std::vector<geom::LineString*> *geomList);
336 std::vector<geom::Point*> *nResultPointList,
337 std::vector<geom::LineString*> *nResultLineList,
338 std::vector<geom::Polygon*> *nResultPolyList);
341 std::vector<geomgraph::Edge *>dupEdges;
360 bool avgzcomputed[2];
362 double getAverageZ(
int targetIndex);
365 ElevationMatrix *elevationMatrix;
369 void checkObviouslyWrongResult(OpCode opCode);
401 #endif // ndef GEOS_OP_OVERLAY_OVERLAYOP_H An Envelope defines a rectangulare region of the 2D coordinate plane.
Definition: Envelope.h:53
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
geomgraph::PlanarGraph & getGraph()
Definition: OverlayOp.h:148
Represents a directed graph which is embeddable in a planar surface.
Definition: geomgraph/PlanarGraph.h:75
OpCode
The spatial functions supported by this class.
Definition: OverlayOp.h:77
Definition: EdgeList.h:58
Computes the geometric overlay of two Geometry.
Definition: OverlayOp.h:68
Computes the topological relationship (Location) of a single point to a Geometry. ...
Definition: PointLocator.h:58
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:167
static geom::Geometry * overlayOp(const geom::Geometry *geom0, const geom::Geometry *geom1, OpCode opCode)
Definition: LineString.h:70
The base class for operations that require GeometryGraph.
Definition: GeometryGraphOperation.h:52
Represents a linear polygon, which may include holes.
Definition: Polygon.h:66
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:67
OverlayOp::overlayOp Adapter for use with geom::BinaryOp.
Definition: OverlayOp.h:376
A Label indicates the topological relationship of a component of a topology graph to a given Geometry...
Definition: Label.h:57
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
Definition: geomgraph/Node.h:62
Definition: geomgraph/Edge.h:66