00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GEOS_GEOM_PREP_PREPAREDGEOMETRY_H
00020 #define GEOS_GEOM_PREP_PREPAREDGEOMETRY_H
00021
00022 #include <geos/export.h>
00023
00024
00025 namespace geos {
00026 namespace geom {
00027 class Geometry;
00028 }
00029 }
00030
00031
00032 namespace geos {
00033 namespace geom {
00034 namespace prep {
00035
00053 class GEOS_DLL PreparedGeometry {
00054 public:
00055 virtual ~PreparedGeometry() {}
00056
00062 virtual const geom::Geometry & getGeometry() const =0;
00063
00072 virtual bool contains(const geom::Geometry *geom) const =0;
00073
00113 virtual bool containsProperly(const geom::Geometry *geom) const =0;
00114
00123 virtual bool coveredBy(const geom::Geometry *geom) const =0;
00124
00133 virtual bool covers(const geom::Geometry *geom) const =0;
00134
00143 virtual bool crosses(const geom::Geometry *geom) const =0;
00144
00153 virtual bool disjoint(const geom::Geometry *geom) const =0;
00154
00163 virtual bool intersects(const geom::Geometry *geom) const =0;
00164
00173 virtual bool overlaps(const geom::Geometry *geom) const =0;
00174
00183 virtual bool touches(const geom::Geometry *geom) const =0;
00184
00193 virtual bool within(const geom::Geometry *geom) const =0;
00194 };
00195
00196
00197 }
00198 }
00199 }
00200
00201
00202 #endif // ndef GEOS_GEOM_PREP_PREPAREDGEOMETRY_H