00001 /********************************************************************** 00002 * $Id: PreparedGeometry.h 2159 2008-08-18 16:27:02Z mloskot $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 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_PREP_PREPAREDGEOMETRY_H 00017 #define GEOS_GEOM_PREP_PREPAREDGEOMETRY_H 00018 00019 00020 // Forward declarations 00021 namespace geos { 00022 namespace geom { 00023 class Geometry; 00024 } 00025 } 00026 00027 00028 namespace geos { 00029 namespace geom { // geos::geom 00030 namespace prep { // geos::geom::prep 00031 00049 class PreparedGeometry { 00050 public: 00051 virtual ~PreparedGeometry() {}; 00052 00058 virtual const geom::Geometry & getGeometry() const =0; 00059 00068 virtual bool contains(const geom::Geometry *geom) const =0; 00069 00086 virtual bool containsProperly(const geom::Geometry *geom) const =0; 00087 00096 virtual bool coveredBy(const geom::Geometry *geom) const =0; 00097 00106 virtual bool covers(const geom::Geometry *geom) const =0; 00107 00116 virtual bool crosses(const geom::Geometry *geom) const =0; 00117 00126 virtual bool disjoint(const geom::Geometry *geom) const =0; 00127 00136 virtual bool intersects(const geom::Geometry *geom) const =0; 00137 00146 virtual bool overlaps(const geom::Geometry *geom) const =0; 00147 00156 virtual bool touches(const geom::Geometry *geom) const =0; 00157 00166 virtual bool within(const geom::Geometry *geom) const =0; 00167 }; 00168 00169 00170 } // namespace geos::geom::prep 00171 } // namespace geos::geom 00172 } // namespace geos 00173 00174 00175 #endif // ndef GEOS_GEOM_PREP_PREPAREDGEOMETRY_H 00176 00177 /********************************************************************** 00178 * $Log$ 00179 **********************************************************************/