GEOS
3.3.5
|
00001 /********************************************************************** 00002 * $Id: GeometryEditor.h 3179 2011-02-03 19:59:23Z strk $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 2011 Sandro Santilli <strk@keybit.net> 00008 * Copyright (C) 2006 Refractions Research Inc. 00009 * Copyright (C) 2001-2002 Vivid Solutions Inc. 00010 * 00011 * This is free software; you can redistribute and/or modify it under 00012 * the terms of the GNU Lesser General Public Licence as published 00013 * by the Free Software Foundation. 00014 * See the COPYING file for more information. 00015 * 00016 ********************************************************************** 00017 * 00018 * Last port: geom/util/GeometryEditor.java r320 (JTS-1.12) 00019 * 00020 **********************************************************************/ 00021 00022 #ifndef GEOS_GEOM_UTIL_GEOMETRYEDITOR_H 00023 #define GEOS_GEOM_UTIL_GEOMETRYEDITOR_H 00024 00025 #include <geos/export.h> 00026 00027 // Forward declarations 00028 namespace geos { 00029 namespace geom { 00030 class Geometry; 00031 class GeometryFactory; 00032 class GeometryCollection; 00033 class Polygon; 00034 namespace util { 00035 class GeometryEditorOperation; 00036 } 00037 } 00038 } 00039 00040 00041 namespace geos { 00042 namespace geom { // geos.geom 00043 namespace util { // geos.geom.util 00044 00079 class GEOS_DLL GeometryEditor { 00080 private: 00084 const GeometryFactory* factory; 00085 00086 Polygon* editPolygon(const Polygon *polygon, 00087 GeometryEditorOperation *operation); 00088 00089 GeometryCollection* editGeometryCollection( 00090 const GeometryCollection *collection, 00091 GeometryEditorOperation *operation); 00092 00093 public: 00094 00100 GeometryEditor(); 00101 00109 GeometryEditor(const GeometryFactory *newFactory); 00110 00121 Geometry* edit(const Geometry *geometry, 00122 GeometryEditorOperation *operation); // final 00123 }; 00124 00125 } // namespace geos.geom.util 00126 } // namespace geos.geom 00127 } // namespace geos 00128 00129 //#ifdef GEOS_INLINE 00130 //# include "geos/geom/util/GeometryEditor.inl" 00131 //#endif 00132 00133 #endif 00134 00135 /********************************************************************** 00136 * $Log$ 00137 * Revision 1.2 2006/03/24 09:52:41 strk 00138 * USE_INLINE => GEOS_INLINE 00139 * 00140 * Revision 1.1 2006/03/09 16:46:49 strk 00141 * geos::geom namespace definition, first pass at headers split 00142 * 00143 **********************************************************************/