GEOS
3.4.2
|
00001 /********************************************************************** 00002 * 00003 * GEOS - Geometry Engine Open Source 00004 * http://geos.osgeo.org 00005 * 00006 * Copyright (C) 2001-2002 Vivid Solutions Inc. 00007 * Copyright (C) 2005 2006 Refractions Research Inc. 00008 * 00009 * This is free software; you can redistribute and/or modify it under 00010 * the terms of the GNU Lesser General Public Licence as published 00011 * by the Free Software Foundation. 00012 * See the COPYING file for more information. 00013 * 00014 **********************************************************************/ 00015 00016 #ifndef GEOS_GEOM_GEOMETRYFILTER_H 00017 #define GEOS_GEOM_GEOMETRYFILTER_H 00018 00019 //#include <geos/platform.h> 00020 #include <geos/export.h> 00021 #include <geos/inline.h> 00022 00023 #include <string> 00024 #include <vector> 00025 #include <cassert> 00026 00027 namespace geos { 00028 namespace geom { // geos::geom 00029 class Geometry; 00030 } 00031 } 00032 00033 namespace geos { 00034 namespace geom { // geos::geom 00035 00036 00048 class GEOS_DLL GeometryFilter { 00049 public: 00050 /* 00051 * Performs an operation with or on <code>geom</code>. 00052 * 00053 * @param geom a <code>Geometry</code> to which the filter 00054 * is applied. 00055 * 00056 * NOTE: this are not pure abstract to allow read-only 00057 * or read-write-only filters to avoid defining a fake 00058 * version of the not-implemented kind. 00059 */ 00060 virtual void filter_ro(const Geometry * /*geom*/) { assert(0); } 00061 virtual void filter_rw(Geometry * /*geom*/) { assert(0); } 00062 00063 virtual ~GeometryFilter() {} 00064 }; 00065 00066 } // namespace geos::geom 00067 } // namespace geos 00068 00069 #endif // ndef GEOS_GEOM_GEOMETRYFILTER_H