#include <OverlayOp.h>
Inheritance diagram for geos::operation::overlay::OverlayOp:
Public Types | |
opINTERSECTION = 1 | |
The code for the Intersection overlay operation. | |
opUNION = 2 | |
The code for the Union overlay operation. | |
opDIFFERENCE = 3 | |
The code for the Difference overlay operation. | |
opSYMDIFFERENCE = 4 | |
The code for the Symmetric Difference overlay operation. | |
enum | OpCode { opINTERSECTION = 1, opUNION = 2, opDIFFERENCE = 3, opSYMDIFFERENCE = 4 } |
The spatial functions supported by this class. More... | |
Public Member Functions | |
OverlayOp (const geom::Geometry *g0, const geom::Geometry *g1) | |
Construct an OverlayOp with the given Geometry args. | |
geom::Geometry * | getResultGeometry (OpCode overlayOpCode) |
geomgraph::PlanarGraph & | getGraph () |
bool | isCoveredByLA (const geom::Coordinate &coord) |
This method is used to decide if a point node should be included in the result or not. | |
bool | isCoveredByA (const geom::Coordinate &coord) |
This method is used to decide if an L edge should be included in the result or not. | |
Static Public Member Functions | |
static geom::Geometry * | overlayOp (const geom::Geometry *geom0, const geom::Geometry *geom1, OpCode opCode) |
static bool | isResultOfOp (const geomgraph::Label &label, OpCode opCode) |
static bool | isResultOfOp (int loc0, int loc1, OpCode opCode) |
This method will handle arguments of Location.NULL correctly. | |
Protected Member Functions | |
void | insertUniqueEdge (geomgraph::Edge *e) |
Insert an edge from one of the noded input graphs. |
The overlay can be used to determine any boolean combination of the geometries.
The spatial functions supported by this class.
These operations implement various boolean combinations of the resultants of the overlay.
geos::operation::overlay::OverlayOp::OverlayOp | ( | const geom::Geometry * | g0, | |
const geom::Geometry * | g1 | |||
) |
geomgraph::PlanarGraph& geos::operation::overlay::OverlayOp::getGraph | ( | ) | [inline] |
Gets the graph constructed to compute the overlay.
geom::Geometry* geos::operation::overlay::OverlayOp::getResultGeometry | ( | OpCode | overlayOpCode | ) |
Gets the result of the overlay for a given overlay operation.
Note: this method can be called once only.
overlayOpCode | the overlay operation to perform |
TopologyException | if a robustness problem is encountered |
void geos::operation::overlay::OverlayOp::insertUniqueEdge | ( | geomgraph::Edge * | e | ) | [protected] |
Insert an edge from one of the noded input graphs.
Checks edges that are inserted to see if an identical edge already exists. If so, the edge is not inserted, but its label is merged with the existing edge.
bool geos::operation::overlay::OverlayOp::isCoveredByA | ( | const geom::Coordinate & | coord | ) |
This method is used to decide if an L edge should be included in the result or not.
bool geos::operation::overlay::OverlayOp::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 geos::operation::overlay::OverlayOp::isResultOfOp | ( | int | loc0, | |
int | loc1, | |||
OpCode | opCode | |||
) | [static] |
This method will handle arguments of Location.NULL correctly.
static bool geos::operation::overlay::OverlayOp::isResultOfOp | ( | const geomgraph::Label & | label, | |
OpCode | opCode | |||
) | [static] |
Tests whether a point with a given topological Label relative to two geometries is contained in the result of overlaying the geometries using a given overlay operation.
The method handles arguments of Location#NONE correctly
label | the topological label of the point | |
opCode | the code for the overlay operation to test |
static geom::Geometry* geos::operation::overlay::OverlayOp::overlayOp | ( | const geom::Geometry * | geom0, | |
const geom::Geometry * | geom1, | |||
OpCode | opCode | |||
) | [static] |
Computes an overlay operation for the given geometry arguments.
geom0 | the first geometry argument | |
geom1 | the second geometry argument | |
opCode | the code for the desired overlay operation |
TopologyException | if a robustness problem is encountered |