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

Simplifies a linestring (sequence of points) using the standard Douglas-Peucker algorithm. More...

#include <DouglasPeuckerLineSimplifier.h>

Public Types

typedef std::vector< short int > BoolVect
 
typedef std::unique_ptr< BoolVectBoolVectAutoPtr
 
typedef std::vector< geom::CoordinateCoordsVect
 
typedef std::unique_ptr< CoordsVectCoordsVectAutoPtr
 

Public Member Functions

 DouglasPeuckerLineSimplifier (const CoordsVect &nPts)
 
void setDistanceTolerance (double nDistanceTolerance)
 Sets the distance tolerance for the simplification. More...
 
CoordsVectAutoPtr simplify ()
 Returns a newly allocated Coordinate vector, wrapped into an unique_ptr. More...
 

Static Public Member Functions

static CoordsVectAutoPtr simplify (const CoordsVect &nPts, double distanceTolerance)
 Returns a newly allocated Coordinate vector, wrapped into an unique_ptr. More...
 

Private Member Functions

void simplifySection (std::size_t i, std::size_t j)
 
 DouglasPeuckerLineSimplifier (const DouglasPeuckerLineSimplifier &other)=delete
 
DouglasPeuckerLineSimplifieroperator= (const DouglasPeuckerLineSimplifier &rhs)=delete
 

Private Attributes

const CoordsVectpts
 
BoolVectAutoPtr usePt
 
double distanceTolerance
 

Detailed Description

Simplifies a linestring (sequence of points) using the standard Douglas-Peucker algorithm.

Definition at line 45 of file DouglasPeuckerLineSimplifier.h.

Member Typedef Documentation

Definition at line 49 of file DouglasPeuckerLineSimplifier.h.

Definition at line 50 of file DouglasPeuckerLineSimplifier.h.

Definition at line 52 of file DouglasPeuckerLineSimplifier.h.

Definition at line 53 of file DouglasPeuckerLineSimplifier.h.

Constructor & Destructor Documentation

geos::simplify::DouglasPeuckerLineSimplifier::DouglasPeuckerLineSimplifier ( const CoordsVect nPts)
geos::simplify::DouglasPeuckerLineSimplifier::DouglasPeuckerLineSimplifier ( const DouglasPeuckerLineSimplifier other)
privatedelete

Member Function Documentation

DouglasPeuckerLineSimplifier& geos::simplify::DouglasPeuckerLineSimplifier::operator= ( const DouglasPeuckerLineSimplifier rhs)
privatedelete
void geos::simplify::DouglasPeuckerLineSimplifier::setDistanceTolerance ( double  nDistanceTolerance)

Sets the distance tolerance for the simplification.

All vertices in the simplified linestring will be within this distance of the original linestring.

Parameters
nDistanceTolerancethe approximation tolerance to use
static CoordsVectAutoPtr geos::simplify::DouglasPeuckerLineSimplifier::simplify ( const CoordsVect nPts,
double  distanceTolerance 
)
static

Returns a newly allocated Coordinate vector, wrapped into an unique_ptr.

CoordsVectAutoPtr geos::simplify::DouglasPeuckerLineSimplifier::simplify ( )

Returns a newly allocated Coordinate vector, wrapped into an unique_ptr.

void geos::simplify::DouglasPeuckerLineSimplifier::simplifySection ( std::size_t  i,
std::size_t  j 
)
private

Member Data Documentation

double geos::simplify::DouglasPeuckerLineSimplifier::distanceTolerance
private

Definition at line 86 of file DouglasPeuckerLineSimplifier.h.

const CoordsVect& geos::simplify::DouglasPeuckerLineSimplifier::pts
private

Definition at line 84 of file DouglasPeuckerLineSimplifier.h.

BoolVectAutoPtr geos::simplify::DouglasPeuckerLineSimplifier::usePt
private

Definition at line 85 of file DouglasPeuckerLineSimplifier.h.


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