GEOS  3.3.3
MaximalEdgeRing.h
1 /**********************************************************************
2  * $Id: MaximalEdgeRing.h 2731 2009-11-19 21:06:16Z 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  * Last port: operation/overlay/MaximalEdgeRing.java rev. 1.15 (JTS-1.10)
17  *
18  **********************************************************************/
19 
20 #ifndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H
21 #define GEOS_OP_OVERLAY_MAXIMALEDGERING_H
22 
23 #include <geos/export.h>
24 
25 #include <vector>
26 
27 #include <geos/geomgraph/EdgeRing.h> // for inheritance
28 
29 // Forward declarations
30 namespace geos {
31  namespace geom {
32  class GeometryFactory;
33  }
34  namespace geomgraph {
35  class DirectedEdge;
36  //class EdgeRing;
37  }
38  namespace operation {
39  namespace overlay {
40  class MinimalEdgeRing;
41  }
42  }
43 }
44 
45 namespace geos {
46 namespace operation { // geos::operation
47 namespace overlay { // geos::operation::overlay
48 
67 class GEOS_DLL MaximalEdgeRing: public geomgraph::EdgeRing {
68 
69 public:
70 
72  const geom::GeometryFactory *geometryFactory);
73  // throw(const TopologyException &)
74 
75  virtual ~MaximalEdgeRing();
76 
78 
79  void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er);
80 
87  std::vector<MinimalEdgeRing*>* buildMinimalRings();
88 
93  void buildMinimalRings(std::vector<MinimalEdgeRing*>& minEdgeRings);
94  void buildMinimalRings(std::vector<EdgeRing*>& minEdgeRings);
95 
100  void linkDirectedEdgesForMinimalEdgeRings();
101 };
102 
103 
104 } // namespace geos::operation::overlay
105 } // namespace geos::operation
106 } // namespace geos
107 
108 #endif // ndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H
109 
110 /**********************************************************************
111  * $Log$
112  * Revision 1.2 2006/03/27 16:02:34 strk
113  * Added INL file for MinimalEdgeRing, added many debugging blocks,
114  * fixed memory leak in ConnectedInteriorTester (bug #59)
115  *
116  * Revision 1.1 2006/03/17 13:24:59 strk
117  * opOverlay.h header splitted. Reduced header inclusions in operation/overlay implementation files. ElevationMatrixFilter code moved from own file to ElevationMatrix.cpp (ideally a class-private).
118  *
119  **********************************************************************/
120