19#ifndef GEOS_SIMPLIFY_DOUBGLASPEUCKERLINESIMPLIFIER_H
20#define GEOS_SIMPLIFY_DOUBGLASPEUCKERLINESIMPLIFIER_H
22#include <geos/export.h>
28#pragma warning(disable: 4251)
45class GEOS_DLL DouglasPeuckerLineSimplifier {
49 typedef std::vector<short int> BoolVect;
50 typedef std::auto_ptr<BoolVect> BoolVectAutoPtr;
52 typedef std::vector<geom::Coordinate> CoordsVect;
53 typedef std::auto_ptr<CoordsVect> CoordsVectAutoPtr;
61 const CoordsVect& nPts,
62 double distanceTolerance);
64 DouglasPeuckerLineSimplifier(
const CoordsVect& nPts);
84 const CoordsVect& pts;
85 BoolVectAutoPtr usePt;
86 double distanceTolerance;
88 void simplifySection(std::size_t i, std::size_t j);
91 DouglasPeuckerLineSimplifier(
const DouglasPeuckerLineSimplifier& other);
92 DouglasPeuckerLineSimplifier& operator=(
const DouglasPeuckerLineSimplifier& rhs);
Coordinate is the lightweight class used to store coordinates.
Definition Coordinate.h:60
static CoordsVectAutoPtr simplify(const CoordsVect &nPts, double distanceTolerance)
Returns a newly allocated Coordinate vector, wrapped into an auto_ptr.
void setDistanceTolerance(double nDistanceTolerance)
Sets the distance tolerance for the simplification.
CoordsVectAutoPtr simplify()
Returns a newly allocated Coordinate vector, wrapped into an auto_ptr.
Contains the Geometry interface hierarchy and supporting classes.
Definition IndexedNestedRingTester.h:26
Basic namespace for all GEOS functionalities.
Definition IndexedNestedRingTester.h:25