GEOS  3.3.3
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 
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