00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GEOS_GEOM_PREP_PREPAREDGEOMETRY_H
00021 #define GEOS_GEOM_PREP_PREPAREDGEOMETRY_H
00022
00023 #include <geos/export.h>
00024
00025
00026 namespace geos {
00027 namespace geom {
00028 class Geometry;
00029 }
00030 }
00031
00032
00033 namespace geos {
00034 namespace geom {
00035 namespace prep {
00036
00054 class GEOS_DLL PreparedGeometry {
00055 public:
00056 virtual ~PreparedGeometry() {};
00057
00063 virtual const geom::Geometry & getGeometry() const =0;
00064
00073 virtual bool contains(const geom::Geometry *geom) const =0;
00074
00114 virtual bool containsProperly(const geom::Geometry *geom) const =0;
00115
00124 virtual bool coveredBy(const geom::Geometry *geom) const =0;
00125
00134 virtual bool covers(const geom::Geometry *geom) const =0;
00135
00144 virtual bool crosses(const geom::Geometry *geom) const =0;
00145
00154 virtual bool disjoint(const geom::Geometry *geom) const =0;
00155
00164 virtual bool intersects(const geom::Geometry *geom) const =0;
00165
00174 virtual bool overlaps(const geom::Geometry *geom) const =0;
00175
00184 virtual bool touches(const geom::Geometry *geom) const =0;
00185
00194 virtual bool within(const geom::Geometry *geom) const =0;
00195 };
00196
00197
00198 }
00199 }
00200 }
00201
00202
00203 #endif // ndef GEOS_GEOM_PREP_PREPAREDGEOMETRY_H
00204
00205
00206
00207