Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | Related Pages

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

Computes the 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, opDIFFERENCE, opSYMDIFFERENCE }
 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 funcCode)
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

geom::GeometryoverlayOp (const geom::Geometry *geom0, const geom::Geometry *geom1, OpCode opCode)
bool isResultOfOp (geomgraph::Label *label, OpCode opCode)
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 overlay of two Geometry.

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


Member Enumeration Documentation

enum geos::operation::overlay::OverlayOp::OpCode
 

The spatial functions supported by this class.

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


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

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

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


The documentation for this class was generated from the following file:
Generated on Wed Jul 4 09:00:36 2012 for GEOS by  doxygen 1.3.9.1