# GeometryEditor.h

    00001 /**********************************************************************
    00002  * $Id: GeometryEditor.h 1820 2006-09-06 16:54:23Z mloskot $
    00003  *
    00004  * GEOS - Geometry Engine Open Source
    00005  * http://geos.refractions.net
    00006  *
    00007  * Copyright (C) 2001-2002 Vivid Solutions Inc.
    00008  * Copyright (C) 2006 Refractions Research Inc.
    00009  *
    00010  * This is free software; you can redistribute and/or modify it under
    00011  * the terms of the GNU Lesser General Public Licence as published
    00012  * by the Free Software Foundation.
    00013  * See the COPYING file for more information.
    00014  *
    00015  **********************************************************************/
    00016
    00017 #ifndef GEOS_GEOM_UTIL_GEOMETRYEDITOR_H
    00018 #define GEOS_GEOM_UTIL_GEOMETRYEDITOR_H
    00019
    00020 // Forward declarations
    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 { // geos.geom
    00036 namespace util { // geos.geom.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); // final
    00116 };
    00117
    00118 } // namespace geos.geom.util
    00119 } // namespace geos.geom
    00120 } // namespace geos
    00121
    00122 //#ifdef GEOS_INLINE
    00123 //# include "geos/geom/util/GeometryEditor.inl"
    00124 //#endif
    00125
    00126 #endif
    00127
    00128 /**********************************************************************
    00129  * $Log$
    00130  * Revision 1.2  2006/03/24 09:52:41  strk
    00131  * USE_INLINE => GEOS_INLINE
    00132  *
    00133  * Revision 1.1  2006/03/09 16:46:49  strk
    00134  * geos::geom namespace definition, first pass at headers split
    00135  *
    00136  **********************************************************************/