GEOS  3.12.0dev
Static Public Member Functions | List of all members
geos::operation::overlayng::OverlayNGRobust Class Reference

#include <OverlayNGRobust.h>

Static Public Member Functions

static std::unique_ptr< GeometryIntersection (const Geometry *g0, const Geometry *g1)
 
static std::unique_ptr< GeometryUnion (const Geometry *g0, const Geometry *g1)
 
static std::unique_ptr< GeometryDifference (const Geometry *g0, const Geometry *g1)
 
static std::unique_ptr< GeometrySymDifference (const Geometry *g0, const Geometry *g1)
 
static std::unique_ptr< GeometryUnion (const Geometry *a)
 
static std::unique_ptr< GeometryOverlay (const Geometry *geom0, const Geometry *geom1, int opCode)
 
static std::unique_ptr< GeometryoverlaySnapTries (const Geometry *geom0, const Geometry *geom1, int opCode)
 
static double snapTolerance (const Geometry *geom0, const Geometry *geom1)
 

Detailed Description

Performs an overlay operation, increasing robustness by using a series of increasingly aggressive (and slower) noding strategies.

The noding strategies used are:

If the above heuristics still fail to compute a valid overlay, the original util::TopologyException is thrown.

This algorithm relies on each overlay operation execution throwing a util::TopologyException if it is unable to compute the overlay correctly. Generally this occurs because the noding phase does not produce a valid noding. This requires the use of a noding::ValidatingNoder in order to check the results of using a floating noder.

Author
Martin Davis

Member Function Documentation

◆ snapTolerance()

static double geos::operation::overlayng::OverlayNGRobust::snapTolerance ( const Geometry geom0,
const Geometry geom1 
)
static

Computes a heuristic snap tolerance distance for overlaying a pair of geometries using a noding::snap::SnappingNoder.


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