00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GEOS_PRECISION_PRECISIONREDUCERCOORDINATEOPERATION_H
00020 #define GEOS_PRECISION_PRECISIONREDUCERCOORDINATEOPERATION_H
00021
00022 #include <geos/geom/util/CoordinateOperation.h>
00023
00024
00025 namespace geos {
00026 namespace geom {
00027 class PrecisionModel;
00028 class CoordinateSequence;
00029 class Geometry;
00030 }
00031 }
00032
00033 namespace geos {
00034 namespace precision {
00035
00036 class PrecisionReducerCoordinateOperation :
00037 public geom::util::CoordinateOperation
00038 {
00039 using CoordinateOperation::edit;
00040 private:
00041
00042 const geom::PrecisionModel& targetPM;
00043
00044 bool removeCollapsed;
00045
00046 public:
00047
00048 PrecisionReducerCoordinateOperation( const geom::PrecisionModel& pm,
00049 bool doRemoveCollapsed )
00050 :
00051 targetPM(pm),
00052 removeCollapsed(doRemoveCollapsed)
00053 {}
00054
00056
00058 geom::CoordinateSequence* edit(const geom::CoordinateSequence *coordinates,
00059 const geom::Geometry *geom);
00060 };
00061
00062 }
00063 }
00064
00065 #endif // GEOS_PRECISION_PRECISIONREDUCERCOORDINATEOPERATION_H
00066