00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _GEOS_SIMPLIFY_TOPOLOGYPRESERVINGSIMPLIFIER_H_
00025 #define _GEOS_SIMPLIFY_TOPOLOGYPRESERVINGSIMPLIFIER_H_
00026
00027 #include <geos/export.h>
00028 #include <memory>
00029 #include <map>
00030
00031
00032 namespace geos {
00033 namespace simplify {
00034 class TaggedLinesSimplifier;
00035 }
00036 namespace geom {
00037 class Geometry;
00038 }
00039 }
00040
00041 namespace geos {
00042 namespace simplify {
00043
00062 class GEOS_DLL TopologyPreservingSimplifier
00063 {
00064
00065 public:
00066
00067 static std::auto_ptr<geom::Geometry> simplify(
00068 const geom::Geometry* geom,
00069 double tolerance);
00070
00071 TopologyPreservingSimplifier(const geom::Geometry* geom);
00072
00083 void setDistanceTolerance(double tolerance);
00084
00085 std::auto_ptr<geom::Geometry> getResultGeometry();
00086
00087 private:
00088
00089 const geom::Geometry* inputGeom;
00090
00091 std::auto_ptr<TaggedLinesSimplifier> lineSimplifier;
00092
00093 };
00094
00095
00096
00097 }
00098 }
00099
00100 #endif // _GEOS_SIMPLIFY_TOPOLOGYPRESERVINGSIMPLIFIER_H_
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110