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

List of all members.

## Public Member Functions

| TopologyPreservingSimplifier (const geom::Geometry *geom)
void | setDistanceTolerance (double tolerance)
| Sets the distance tolerance for the simplification.
std::auto_ptr< geom::Geometry > | getResultGeometry ()

## Static Public Member Functions

static std::auto_ptr < geom::Geometry > | simplify (const geom::Geometry *geom, double tolerance)

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

- The result has the same number of shells and holes (rings) as the input, in the same order
- The result rings touch at no more than the number of touching point in the input (although they may touch at fewer points)

## Member Function Documentation

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:

  | distanceTolerance | the approximation tolerance to use

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

- TopologyPreservingSimplifier.h