geos::operation::overlay::OverlayOp Class Reference

Computes the geometric overlay of two Geometry. More...

#include <OverlayOp.h>

Inheritance diagram for geos::operation::overlay::OverlayOp:
geos::operation::GeometryGraphOperation

List of all members.

Public Types

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::GeometrygetResultGeometry (OpCode overlayOpCode)
geomgraph::PlanarGraphgetGraph ()
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::GeometryoverlayOp (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.

Detailed Description

Computes the geometric overlay of two Geometry.

The overlay can be used to determine any boolean combination of the geometries.


Member Enumeration Documentation

The spatial functions supported by this class.

These operations implement various boolean combinations of the resultants of the overlay.

Enumerator:
opINTERSECTION 

The code for the Intersection overlay operation.

opUNION 

The code for the Union overlay operation.

opDIFFERENCE 

The code for the Difference overlay operation.

opSYMDIFFERENCE 

The code for the Symmetric Difference overlay operation.


Constructor & Destructor Documentation

geos::operation::overlay::OverlayOp::OverlayOp ( const geom::Geometry g0,
const geom::Geometry g1 
)

Construct an OverlayOp with the given Geometry args.

Ownership of passed args will remain to caller, and the OverlayOp won't change them in any way.


Member Function Documentation

geomgraph::PlanarGraph& geos::operation::overlay::OverlayOp::getGraph (  )  [inline]

Gets the graph constructed to compute the overlay.

Returns:
the overlay graph
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.

Parameters:
overlayOpCode the overlay operation to perform
Returns:
the compute result geometry
Exceptions:
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.

Returns:
true if the coord point is covered by a result Area geometry
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.

Returns:
true if the coord point is covered by a result Line or Area geometry
static bool geos::operation::overlay::OverlayOp::isResultOfOp ( int  loc0,
int  loc1,
OpCode  opCode 
) [static]

This method will handle arguments of Location.NULL correctly.

Returns:
true if the locations correspond to the opCode
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

Parameters:
label the topological label of the point
opCode the code for the overlay operation to test
Returns:
true if the label locations correspond to the overlayOpCode
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.

Parameters:
geom0 the first geometry argument
geom1 the second geometry argument
opCode the code for the desired overlay operation
Returns:
the result of the overlay operation
Exceptions:
TopologyException if a robustness problem is encountered

The documentation for this class was generated from the following file:

Generated on 2 Apr 2015 for GEOS by  doxygen 1.6.1