GEOS  3.9.1dev
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
geos::simplify::TopologyPreservingSimplifier Class Reference

Simplifies a geometry, ensuring that the result is a valid geometry having the same dimension and number of components as the input. More...

#include <TopologyPreservingSimplifier.h>

Collaboration diagram for geos::simplify::TopologyPreservingSimplifier:
[legend]

Public Member Functions

 TopologyPreservingSimplifier (const geom::Geometry *geom)
 
void setDistanceTolerance (double tolerance)
 Sets the distance tolerance for the simplification. More...
 
std::unique_ptr< geom::GeometrygetResultGeometry ()
 

Static Public Member Functions

static std::unique_ptr< geom::Geometrysimplify (const geom::Geometry *geom, double tolerance)
 

Private Attributes

const geom::GeometryinputGeom
 
std::unique_ptr< TaggedLinesSimplifierlineSimplifier
 

Detailed Description

Simplifies a geometry, ensuring that the result is a valid geometry having the same dimension and number of components as the input.

The simplification uses a maximum distance difference algorithm similar to the one used in the Douglas-Peucker algorithm.

In particular, if the input is an areal geometry ( Polygon or MultiPolygon )

Definition at line 57 of file TopologyPreservingSimplifier.h.

Constructor & Destructor Documentation

geos::simplify::TopologyPreservingSimplifier::TopologyPreservingSimplifier ( const geom::Geometry geom)

Member Function Documentation

std::unique_ptr<geom::Geometry> geos::simplify::TopologyPreservingSimplifier::getResultGeometry ( )
void geos::simplify::TopologyPreservingSimplifier::setDistanceTolerance ( double  tolerance)

Sets the distance tolerance for the simplification.

All vertices in the simplified geometry will be within this distance of the original geometry. The tolerance value must be non-negative. A tolerance value of zero is effectively a no-op.

Parameters
tolerancethe approximation tolerance to use
static std::unique_ptr<geom::Geometry> geos::simplify::TopologyPreservingSimplifier::simplify ( const geom::Geometry geom,
double  tolerance 
)
static

Member Data Documentation

const geom::Geometry* geos::simplify::TopologyPreservingSimplifier::inputGeom
private

Definition at line 83 of file TopologyPreservingSimplifier.h.

std::unique_ptr<TaggedLinesSimplifier> geos::simplify::TopologyPreservingSimplifier::lineSimplifier
private

Definition at line 85 of file TopologyPreservingSimplifier.h.


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