00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
00023 #define GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
00024
00025 #include <geos/geom/Coordinate.h>
00026
00027
00028 namespace geos {
00029 namespace algorithm {
00030 namespace locate {
00031 class PointOnGeometryLocator;
00032 }
00033 }
00034 namespace geom {
00035 class Geometry;
00036
00037 namespace prep {
00038 class PreparedPolygon;
00039 }
00040 }
00041 namespace noding {
00042 class FastSegmentSetIntersectionFinder;
00043 }
00044 }
00045
00046
00047 namespace geos {
00048 namespace geom {
00049 namespace prep {
00050
00058 class PreparedPolygonPredicate
00059 {
00060 private:
00061
00062 PreparedPolygonPredicate(const PreparedPolygonPredicate& other);
00063 PreparedPolygonPredicate& operator=(const PreparedPolygonPredicate& rhs);
00064
00065 protected:
00066 const PreparedPolygon * const prepPoly;
00067
00078 bool isAllTestComponentsInTarget(const geom::Geometry * testGeom) const;
00079
00090 bool isAllTestComponentsInTargetInterior( const geom::Geometry * testGeom) const;
00091
00102 bool isAnyTestComponentInTarget( const geom::Geometry * testGeom) const;
00103
00114 bool isAnyTestComponentInTargetInterior( const geom::Geometry * testGeom) const;
00115
00124 bool isAnyTargetComponentInAreaTest( const geom::Geometry * testGeom, const geom::Coordinate::ConstVect * targetRepPts) const;
00125
00126 public:
00132 PreparedPolygonPredicate( const PreparedPolygon * const prepPoly)
00133 : prepPoly( prepPoly)
00134 { }
00135
00136 virtual ~PreparedPolygonPredicate()
00137 { }
00138
00139 };
00140
00141 }
00142 }
00143 }
00144
00145 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
00146
00147
00148
00149