GEOS  3.4.2
PreparedPolygonPredicate.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2006 Refractions Research Inc.
7  *
8  * This is free software; you can redistribute and/or modify it under
9  * the terms of the GNU Lesser General Public Licence as published
10  * by the Free Software Foundation.
11  * See the COPYING file for more information.
12  *
13  *
14  **********************************************************************
15  *
16  * Last port: geom/prep/PreparedPolygonPredicate.java rev. 1.4 (JTS-1.10)
17  * (2007-12-12)
18  *
19  **********************************************************************/
20 
21 #ifndef GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
22 #define GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
23 
24 #include <geos/geom/Coordinate.h>
25 
26 // forward declarations
27 namespace geos {
28  namespace algorithm {
29  namespace locate {
30  class PointOnGeometryLocator;
31  }
32  }
33  namespace geom {
34  class Geometry;
35 
36  namespace prep {
37  class PreparedPolygon;
38  }
39  }
40  namespace noding {
41  class FastSegmentSetIntersectionFinder;
42  }
43 }
44 
45 
46 namespace geos {
47 namespace geom { // geos::geom
48 namespace prep { // geos::geom::prep
49 
58 {
59 private:
60  // Declare type as noncopyable
63 
64 protected:
65  const PreparedPolygon * const prepPoly;
66 
77  bool isAllTestComponentsInTarget(const geom::Geometry * testGeom) const;
78 
89  bool isAllTestComponentsInTargetInterior( const geom::Geometry * testGeom) const;
90 
101  bool isAnyTestComponentInTarget( const geom::Geometry * testGeom) const;
102 
113  bool isAnyTestComponentInTargetInterior( const geom::Geometry * testGeom) const;
114 
123  bool isAnyTargetComponentInAreaTest( const geom::Geometry * testGeom, const geom::Coordinate::ConstVect * targetRepPts) const;
124 
125 public:
131  PreparedPolygonPredicate( const PreparedPolygon * const prepPoly)
132  : prepPoly( prepPoly)
133  { }
134 
135  virtual ~PreparedPolygonPredicate()
136  { }
137 
138 };
139 
140 } // namespace geos::geom::prep
141 } // namespace geos::geom
142 } // namespace geos
143 
144 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
145 
PreparedPolygonPredicate(const PreparedPolygon *const prepPoly)
Definition: PreparedPolygonPredicate.h:131
std::vector< const Coordinate * > ConstVect
A vector of const Coordinate pointers.
Definition: Coordinate.h:71
bool isAnyTargetComponentInAreaTest(const geom::Geometry *testGeom, const geom::Coordinate::ConstVect *targetRepPts) const
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:167
bool isAllTestComponentsInTargetInterior(const geom::Geometry *testGeom) const
Tests whether all components of the test Geometry are contained in the interior of the target geometr...
A base class for predicate operations on PreparedPolygons.
Definition: PreparedPolygonPredicate.h:57
bool isAnyTestComponentInTarget(const geom::Geometry *testGeom) const
Tests whether any component of the test Geometry intersects the area of the target geometry...
bool isAllTestComponentsInTarget(const geom::Geometry *testGeom) const
Tests whether all components of the test Geometry are contained in the target geometry.
A prepared version of Polygon or MultiPolygon geometries.
Definition: PreparedPolygon.h:48
bool isAnyTestComponentInTargetInterior(const geom::Geometry *testGeom) const
Tests whether any component of the test Geometry intersects the interior of the target geometry...