GEOS  3.3.3
GeometryEditor.h
1 /**********************************************************************
2  * $Id: GeometryEditor.h 3179 2011-02-03 19:59:23Z strk $
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2011 Sandro Santilli <strk@keybit.net>
8  * Copyright (C) 2006 Refractions Research Inc.
9  * Copyright (C) 2001-2002 Vivid Solutions Inc.
10  *
11  * This is free software; you can redistribute and/or modify it under
12  * the terms of the GNU Lesser General Public Licence as published
13  * by the Free Software Foundation.
14  * See the COPYING file for more information.
15  *
16  **********************************************************************
17  *
18  * Last port: geom/util/GeometryEditor.java r320 (JTS-1.12)
19  *
20  **********************************************************************/
21 
22 #ifndef GEOS_GEOM_UTIL_GEOMETRYEDITOR_H
23 #define GEOS_GEOM_UTIL_GEOMETRYEDITOR_H
24 
25 #include <geos/export.h>
26 
27 // Forward declarations
28 namespace geos {
29  namespace geom {
30  class Geometry;
31  class GeometryFactory;
32  class GeometryCollection;
33  class Polygon;
34  namespace util {
35  class GeometryEditorOperation;
36  }
37  }
38 }
39 
40 
41 namespace geos {
42 namespace geom { // geos.geom
43 namespace util { // geos.geom.util
44 
79 class GEOS_DLL GeometryEditor {
80 private:
84  const GeometryFactory* factory;
85 
86  Polygon* editPolygon(const Polygon *polygon,
87  GeometryEditorOperation *operation);
88 
89  GeometryCollection* editGeometryCollection(
90  const GeometryCollection *collection,
91  GeometryEditorOperation *operation);
92 
93 public:
94 
100  GeometryEditor();
101 
109  GeometryEditor(const GeometryFactory *newFactory);
110 
121  Geometry* edit(const Geometry *geometry,
122  GeometryEditorOperation *operation); // final
123 };
124 
125 } // namespace geos.geom.util
126 } // namespace geos.geom
127 } // namespace geos
128 
129 //#ifdef GEOS_INLINE
130 //# include "geos/geom/util/GeometryEditor.inl"
131 //#endif
132 
133 #endif
134 
135 /**********************************************************************
136  * $Log$
137  * Revision 1.2 2006/03/24 09:52:41 strk
138  * USE_INLINE => GEOS_INLINE
139  *
140  * Revision 1.1 2006/03/09 16:46:49 strk
141  * geos::geom namespace definition, first pass at headers split
142  *
143  **********************************************************************/