GEOS 3.14.0dev
Public Member Functions | List of all members
geos::operation::overlayng::EdgeNodingBuilder Class Reference

#include <EdgeNodingBuilder.h>

Public Member Functions

 EdgeNodingBuilder (const PrecisionModel *p_pm, noding::Noder *p_customNoder)
 
void setClipEnvelope (const Envelope *clipEnv)
 
bool hasEdgesFor (uint8_t geomIndex) const
 
std::vector< Edge * > build (const Geometry *geom0, const Geometry *geom1)
 

Detailed Description

Builds a set of noded, unique, labelled Edges from the edges of the two input geometries.

It performs the following steps:

Author
mdavis

Constructor & Destructor Documentation

◆ EdgeNodingBuilder()

geos::operation::overlayng::EdgeNodingBuilder::EdgeNodingBuilder ( const PrecisionModel p_pm,
noding::Noder p_customNoder 
)
inline

Creates a new builder, with an optional custom noder. If the noder is not provided, a suitable one will be used based on the supplied precision model.

Member Function Documentation

◆ build()

std::vector< Edge * > geos::operation::overlayng::EdgeNodingBuilder::build ( const Geometry geom0,
const Geometry geom1 
)

Creates a set of labelled {Edge}s. representing the fully noded edges of the input geometries. Coincident edges (from the same or both geometries) are merged along with their labels into a single unique, fully labelled edge.

Parameters
geom0the first geometry
geom1the second geometry
Returns
the noded, merged, labelled edges

◆ hasEdgesFor()

bool geos::operation::overlayng::EdgeNodingBuilder::hasEdgesFor ( uint8_t  geomIndex) const

Reports whether there are noded edges for the given input geometry. If there are none, this indicates that either the geometry was empty, or has completely collapsed (because it is smaller than the noding precision).

Parameters
geomIndexindex of input geometry
Returns
true if there are edges for the geometry

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