GEOS 3.3.8

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

- File List

PreparedPolygon.h
1 /**********************************************************************
2 * $Id: PreparedPolygon.h 2418 2009-04-29 08:15:21Z strk $
3 *
4 * GEOS - Geometry Engine Open Source
5 * http://geos.refractions.net
6 *
7 * Copyright (C) 2006 Refractions Research Inc.
8 *
9 * This is free software; you can redistribute and/or modify it under
10 * the terms of the GNU Lesser General Public Licence as published
11 * by the Free Software Foundation.
12 * See the COPYING file for more information.
13 *
14 *
15 **********************************************************************
16 *
17 * Last port: geom/prep/PreparedPolygon.java rev 1.7 (JTS-1.10)
18 *
19 **********************************************************************/
20
21 #ifndef GEOS_GEOM_PREP_PREPAREDPOLYGON_H
22 #define GEOS_GEOM_PREP_PREPAREDPOLYGON_H
23
24 #include <geos/geom/prep/BasicPreparedGeometry.h> // for inheritance
25 #include <geos/noding/SegmentString.h>
26
27 namespace geos {
28 namespace noding {
29 class FastSegmentSetIntersectionFinder;
30 }
31 namespace algorithm {
32 namespace locate {
33 class PointOnGeometryLocator;
34 }
35 }
36 }
37
38 namespace geos {
39 namespace geom { // geos::geom
40 namespace prep { // geos::geom::prep
41
49 class PreparedPolygon : public BasicPreparedGeometry
50 {
51 private:
52 bool isRectangle;
53 mutable noding::FastSegmentSetIntersectionFinder * segIntFinder;
54 mutable algorithm::locate::PointOnGeometryLocator * ptOnGeomLoc;
55 mutable noding::SegmentString::ConstVect segStrings;
56
57 protected:
58 public:
59 PreparedPolygon( const geom::Geometry * geom);
60 ~PreparedPolygon( );
61
62 noding::FastSegmentSetIntersectionFinder * getIntersectionFinder() const;
63 algorithm::locate::PointOnGeometryLocator * getPointLocator() const;
64
65 bool contains( const geom::Geometry* g) const;
66 bool containsProperly( const geom::Geometry* g) const;
67 bool covers( const geom::Geometry* g) const;
68 bool intersects( const geom::Geometry* g) const;
69
70 };
71
72 } // namespace geos::geom::prep
73 } // namespace geos::geom
74 } // namespace geos
75
76 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGON_H
77 /**********************************************************************
78 * $Log$
79 **********************************************************************/
80