00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GEOS_GEOM_PREP_PREPAREDPOLYGONCONTAINS_H
00018 #define GEOS_GEOM_PREP_PREPAREDPOLYGONCONTAINS_H
00019
00020 #include <geos/geom/prep/AbstractPreparedPolygonContains.h>
00021
00022
00023 namespace geos {
00024 namespace geom {
00025 class Geometry;
00026
00027 namespace prep {
00028 class PreparedPolygon;
00029 }
00030 }
00031 }
00032
00033 namespace geos {
00034 namespace geom {
00035 namespace prep {
00036
00051 class PreparedPolygonContains : public AbstractPreparedPolygonContains
00052 {
00053 public:
00054
00060 PreparedPolygonContains(const PreparedPolygon * const prepPoly);
00061
00068 bool contains(const geom::Geometry * geom)
00069 {
00070 return eval(geom);
00071 }
00072
00081 static bool contains(const PreparedPolygon * const prep, const geom::Geometry * geom)
00082 {
00083 PreparedPolygonContains polyInt(prep);
00084 return polyInt.contains(geom);
00085 }
00086
00087 protected:
00095 bool fullTopologicalPredicate(const geom::Geometry * geom);
00096
00097 };
00098
00099 }
00100 }
00101 }
00102
00103 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGONCONTAINS_H
00104
00105
00106
00107