GEOS 3.4.2

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
geos::operation::overlay::OverlayOp Class Reference

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

`#include <OverlayOp.h>`

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

## 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::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.
Public Member Functions inherited from geos::operation::GeometryGraphOperation
| GeometryGraphOperation (const geom::Geometry *g0, const geom::Geometry *g1)
| GeometryGraphOperation (const geom::Geometry *g0, const geom::Geometry *g1, const algorithm::BoundaryNodeRule &boundaryNodeRule)
| GeometryGraphOperation (const geom::Geometry *g0)
const geom::Geometry * | getArgGeometry (unsigned int i) const

## 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.
Protected Member Functions inherited from geos::operation::GeometryGraphOperation
void | setComputationPrecision (const geom::PrecisionModel *pm)

## Additional Inherited Members
Protected Attributes inherited from geos::operation::GeometryGraphOperation
algorithm::LineIntersector | li
const geom::PrecisionModel * | resultPrecisionModel
std::vector < geomgraph::GeometryGraph * > | arg
| The operation args into an array so they can be accessed by index.

## 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

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.

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 | ( | 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 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 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:

- OverlayOp.h