00001 /********************************************************************** 00002 * $Id: PreparedPolygonPredicate.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 00017 #ifndef GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H 00018 #define GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H 00019 00020 #include <geos/geom/Coordinate.h> 00021 00022 // forward declarations 00023 namespace geos { 00024 namespace algorithm { 00025 namespace locate { 00026 class PointOnGeometryLocator; 00027 } 00028 } 00029 namespace geom { 00030 class Geometry; 00031 00032 namespace prep { 00033 class PreparedPolygon; 00034 } 00035 } 00036 namespace noding { 00037 class FastSegmentSetIntersectionFinder; 00038 } 00039 } 00040 00041 00042 namespace geos { 00043 namespace geom { // geos::geom 00044 namespace prep { // geos::geom::prep 00045 00053 class PreparedPolygonPredicate 00054 { 00055 private: 00056 protected: 00057 const PreparedPolygon * const prepPoly; 00058 00067 bool isAllTestComponentsInTargetArea( const geom::Geometry * testGeom); 00068 00077 bool isAllTestComponentsInTargetInterior( const geom::Geometry * testGeom); 00078 00087 bool isAnyTestComponentInTargetArea( const geom::Geometry * testGeom); 00088 00097 bool isAnyTestComponentInTargetInterior( const geom::Geometry * testGeom); 00098 00107 bool isAnyTargetComponentInTestArea( const geom::Geometry * testGeom, const geom::Coordinate::ConstVect * targetRepPts); 00108 00109 public: 00115 PreparedPolygonPredicate( const PreparedPolygon * const prepPoly) 00116 : prepPoly( prepPoly) 00117 { } 00118 00119 ~PreparedPolygonPredicate() 00120 { } 00121 00122 }; 00123 00124 } // namespace geos::geom::prep 00125 } // namespace geos::geom 00126 } // namespace geos 00127 00128 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H 00129 /********************************************************************** 00130 * $Log$ 00131 **********************************************************************/ 00132