00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GEOS_GEOM_UTIL_GEOMETRYEDITOR_H
00018 #define GEOS_GEOM_UTIL_GEOMETRYEDITOR_H
00019
00020
00021 namespace geos {
00022 namespace geom {
00023 class Geometry;
00024 class GeometryFactory;
00025 class GeometryCollection;
00026 class Polygon;
00027 namespace util {
00028 class GeometryEditorOperation;
00029 }
00030 }
00031 }
00032
00033
00034 namespace geos {
00035 namespace geom {
00036 namespace util {
00037
00072 class GeometryEditor {
00073 private:
00077 const GeometryFactory* factory;
00078
00079 Polygon* editPolygon(const Polygon *polygon,
00080 GeometryEditorOperation *operation);
00081
00082 GeometryCollection* editGeometryCollection(
00083 const GeometryCollection *collection,
00084 GeometryEditorOperation *operation);
00085
00086 public:
00087
00093 GeometryEditor();
00094
00102 GeometryEditor(const GeometryFactory *newFactory);
00103
00114 Geometry* edit(const Geometry *geometry,
00115 GeometryEditorOperation *operation);
00116 };
00117
00118 }
00119 }
00120 }
00121
00122
00123
00124
00125
00126 #endif
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136