GEOS  3.9.1dev
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
geos::operation::overlay::snap::SnapOverlayOp Class Reference

Performs an overlay operation using snapping and enhanced precision to improve the robustness of the result. More...

#include <SnapOverlayOp.h>

Collaboration diagram for geos::operation::overlay::snap::SnapOverlayOp:
[legend]

Public Types

typedef std::unique_ptr< geom::GeometryGeomPtr
 

Public Member Functions

 SnapOverlayOp (const geom::Geometry &g1, const geom::Geometry &g2)
 
GeomPtr getResultGeometry (OverlayOp::OpCode opCode)
 

Static Public Member Functions

static std::unique_ptr< geom::GeometryoverlayOp (const geom::Geometry &g0, const geom::Geometry &g1, OverlayOp::OpCode opCode)
 
static std::unique_ptr< geom::Geometryintersection (const geom::Geometry &g0, const geom::Geometry &g1)
 
static std::unique_ptr< geom::GeometryUnion (const geom::Geometry &g0, const geom::Geometry &g1)
 
static std::unique_ptr< geom::Geometrydifference (const geom::Geometry &g0, const geom::Geometry &g1)
 
static std::unique_ptr< geom::GeometrysymDifference (const geom::Geometry &g0, const geom::Geometry &g1)
 

Private Member Functions

void computeSnapTolerance ()
 
void snap (geom::GeomPtrPair &ret)
 
void removeCommonBits (const geom::Geometry &geom0, const geom::Geometry &geom1, geom::GeomPtrPair &ret)
 
void prepareResult (geom::Geometry &geom)
 
 SnapOverlayOp (const SnapOverlayOp &other)=delete
 
SnapOverlayOpoperator= (const SnapOverlayOp &rhs)=delete
 

Private Attributes

const geom::Geometrygeom0
 
const geom::Geometrygeom1
 
double snapTolerance
 
std::unique_ptr< precision::CommonBitsRemovercbr
 

Detailed Description

Performs an overlay operation using snapping and enhanced precision to improve the robustness of the result.

This class always uses snapping. This is less performant than the standard JTS overlay code, and may even introduce errors which were not present in the original data. For this reason, this class should only be used if the standard overlay code fails to produce a correct result.

Definition at line 56 of file SnapOverlayOp.h.

Member Typedef Documentation

Definition at line 101 of file SnapOverlayOp.h.

Constructor & Destructor Documentation

geos::operation::overlay::snap::SnapOverlayOp::SnapOverlayOp ( const geom::Geometry g1,
const geom::Geometry g2 
)
inline

Definition at line 92 of file SnapOverlayOp.h.

geos::operation::overlay::snap::SnapOverlayOp::SnapOverlayOp ( const SnapOverlayOp other)
privatedelete

Member Function Documentation

void geos::operation::overlay::snap::SnapOverlayOp::computeSnapTolerance ( )
private
static std::unique_ptr<geom::Geometry> geos::operation::overlay::snap::SnapOverlayOp::difference ( const geom::Geometry g0,
const geom::Geometry g1 
)
inlinestatic

Definition at line 81 of file SnapOverlayOp.h.

GeomPtr geos::operation::overlay::snap::SnapOverlayOp::getResultGeometry ( OverlayOp::OpCode  opCode)

Referenced by overlayOp().

Here is the caller graph for this function:

static std::unique_ptr<geom::Geometry> geos::operation::overlay::snap::SnapOverlayOp::intersection ( const geom::Geometry g0,
const geom::Geometry g1 
)
inlinestatic

Definition at line 69 of file SnapOverlayOp.h.

SnapOverlayOp& geos::operation::overlay::snap::SnapOverlayOp::operator= ( const SnapOverlayOp rhs)
privatedelete
static std::unique_ptr<geom::Geometry> geos::operation::overlay::snap::SnapOverlayOp::overlayOp ( const geom::Geometry g0,
const geom::Geometry g1,
OverlayOp::OpCode  opCode 
)
inlinestatic

Definition at line 61 of file SnapOverlayOp.h.

References getResultGeometry().

Here is the call graph for this function:

void geos::operation::overlay::snap::SnapOverlayOp::prepareResult ( geom::Geometry geom)
private
void geos::operation::overlay::snap::SnapOverlayOp::removeCommonBits ( const geom::Geometry geom0,
const geom::Geometry geom1,
geom::GeomPtrPair ret 
)
private
void geos::operation::overlay::snap::SnapOverlayOp::snap ( geom::GeomPtrPair ret)
private
static std::unique_ptr<geom::Geometry> geos::operation::overlay::snap::SnapOverlayOp::symDifference ( const geom::Geometry g0,
const geom::Geometry g1 
)
inlinestatic

Definition at line 87 of file SnapOverlayOp.h.

static std::unique_ptr<geom::Geometry> geos::operation::overlay::snap::SnapOverlayOp::Union ( const geom::Geometry g0,
const geom::Geometry g1 
)
inlinestatic

Definition at line 75 of file SnapOverlayOp.h.

Member Data Documentation

std::unique_ptr<precision::CommonBitsRemover> geos::operation::overlay::snap::SnapOverlayOp::cbr
private

Definition at line 124 of file SnapOverlayOp.h.

const geom::Geometry& geos::operation::overlay::snap::SnapOverlayOp::geom0
private

Definition at line 119 of file SnapOverlayOp.h.

const geom::Geometry& geos::operation::overlay::snap::SnapOverlayOp::geom1
private

Definition at line 120 of file SnapOverlayOp.h.

double geos::operation::overlay::snap::SnapOverlayOp::snapTolerance
private

Definition at line 122 of file SnapOverlayOp.h.


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