19 #ifndef GEOS_PRECISION_GEOMETRYPRECISIONREDUCER_H
20 #define GEOS_PRECISION_GEOMETRYPRECISIONREDUCER_H
22 #include <geos/export.h>
23 #include <geos/geom/GeometryFactory.h>
30 class GeometryFactory;
43 class GEOS_DLL GeometryPrecisionReducer {
48 const geom::GeometryFactory* newFactory;
50 const geom::PrecisionModel& targetPM;
56 std::unique_ptr<geom::Geometry> reducePointwise(
const geom::Geometry& geom);
58 std::unique_ptr<geom::Geometry> fixPolygonalTopology(
59 const geom::Geometry& geom);
61 geom::GeometryFactory::Ptr createFactory(
62 const geom::GeometryFactory& oldGF,
63 const geom::PrecisionModel& newPM);
65 GeometryPrecisionReducer(GeometryPrecisionReducer
const&);
66 GeometryPrecisionReducer& operator=(GeometryPrecisionReducer
const&);
81 static std::unique_ptr<geom::Geometry>
101 static std::unique_ptr<geom::Geometry>
115 removeCollapsed(true),
139 setRemoveCollapsedComponents(
bool remove)
141 removeCollapsed = remove;
156 setPointwise(
bool pointwise)
158 isPointwise = pointwise;
161 std::unique_ptr<geom::Geometry> reduce(
const geom::Geometry& geom);
168 #endif // GEOS_PRECISION_GEOMETRYPRECISIONREDUCER_H