GEOS  3.8.0dev
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 private:
59  // Declare type as noncopyable
61  PreparedPolygonPredicate& operator=(const PreparedPolygonPredicate& rhs) = delete;
62 
63 protected:
64  const PreparedPolygon* const prepPoly;
65 
76  bool isAllTestComponentsInTarget(const geom::Geometry* testGeom) const;
77 
88  bool isAllTestComponentsInTargetInterior(const geom::Geometry* testGeom) const;
89 
100  bool isAnyTestComponentInTarget(const geom::Geometry* testGeom) const;
101 
112  bool isAnyTestComponentInTargetInterior(const geom::Geometry* testGeom) const;
113 
122  bool isAnyTargetComponentInAreaTest(const geom::Geometry* testGeom,
123  const geom::Coordinate::ConstVect* targetRepPts) const;
124 
125 public:
131  PreparedPolygonPredicate(const PreparedPolygon* const p_prepPoly)
132  : prepPoly(p_prepPoly)
133  { }
134 
135  virtual
137  { }
138 
139 };
140 
141 } // namespace geos::geom::prep
142 } // namespace geos::geom
143 } // namespace geos
144 
145 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
146 
bool isAnyTargetComponentInAreaTest(const geom::Geometry *testGeom, const geom::Coordinate::ConstVect *targetRepPts) const
PreparedPolygonPredicate(const PreparedPolygon *const p_prepPoly)
Definition: PreparedPolygonPredicate.h:131
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:187
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
std::vector< const Coordinate * > ConstVect
A vector of const Coordinate pointers.
Definition: Coordinate.h:71
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:25
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...