GEOS 3.4.2

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

BasicPreparedGeometry.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/BasicPreparedGeometry.java rev. 1.5 (JTS-1.10)
17 *
18 **********************************************************************/
19
20 #ifndef GEOS_GEOM_PREP_BASICPREPAREDGEOMETRY_H
21 #define GEOS_GEOM_PREP_BASICPREPAREDGEOMETRY_H
22
23 #include <geos/geom/prep/PreparedGeometry.h> // for inheritance
24 //#include <geos/algorithm/PointLocator.h>
25 //#include <geos/geom/util/ComponentCoordinateExtracter.h>
26 #include <geos/geom/Coordinate.h>
27 //#include <geos/geom/Location.h>
28
29 #include <vector>
30 #include <string>
31
32 namespace geos {
33 namespace geom {
34 class Geometry;
35 class Coordinate;
36 }
37 }
38
39
40 namespace geos {
41 namespace geom { // geos::geom
42 namespace prep { // geos::geom::prep
43
44 // * \class BasicPreparedGeometry
45
59 class BasicPreparedGeometry: public PreparedGeometry
60 {
61 private:
62 const geom::Geometry * baseGeom;
63 Coordinate::ConstVect representativePts;
64
65 protected:
69 void setGeometry( const geom::Geometry * geom );
70
78 bool envelopesIntersect(const geom::Geometry* g) const;
79
88 bool envelopeCovers(const geom::Geometry* g) const;
89
90 public:
91 BasicPreparedGeometry( const Geometry * geom);
92
93 ~BasicPreparedGeometry( );
94
95 const geom::Geometry & getGeometry() const
96 {
97 return *baseGeom;
98 }
99
107 const Coordinate::ConstVect * getRepresentativePoints() const
108 {
109 return &representativePts;
110 }
111
121 bool isAnyTargetComponentInTest(const geom::Geometry * testGeom) const;
122
126 bool contains(const geom::Geometry * g) const;
127
131 bool containsProperly(const geom::Geometry * g) const;
132
136 bool coveredBy(const geom::Geometry * g) const;
137
141 bool covers(const geom::Geometry * g) const;
142
146 bool crosses(const geom::Geometry * g) const;
147
152 bool disjoint(const geom::Geometry * g) const;
153
157 bool intersects(const geom::Geometry * g) const;
158
162 bool overlaps(const geom::Geometry * g) const;
163
167 bool touches(const geom::Geometry * g) const;
168
172 bool within(const geom::Geometry * g) const;
173
174 std::string toString();
175
176 };
177
178 } // namespace geos::geom::prep
179 } // namespace geos::geom
180 } // namespace geos
181
182 #endif // GEOS_GEOM_PREP_BASICPREPAREDGEOMETRY_H