GEOS
3.3.9
|
00001 /********************************************************************** 00002 * $Id: MaximalEdgeRing.h 2731 2009-11-19 21:06:16Z strk $ 00003 * 00004 * GEOS - Geometry Engine Open Source 00005 * http://geos.refractions.net 00006 * 00007 * Copyright (C) 2006 Refractions Research Inc. 00008 * 00009 * This is free software; you can redistribute and/or modify it under 00010 * the terms of the GNU Lesser General Public Licence as published 00011 * by the Free Software Foundation. 00012 * See the COPYING file for more information. 00013 * 00014 ********************************************************************** 00015 * 00016 * Last port: operation/overlay/MaximalEdgeRing.java rev. 1.15 (JTS-1.10) 00017 * 00018 **********************************************************************/ 00019 00020 #ifndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H 00021 #define GEOS_OP_OVERLAY_MAXIMALEDGERING_H 00022 00023 #include <geos/export.h> 00024 00025 #include <vector> 00026 00027 #include <geos/geomgraph/EdgeRing.h> // for inheritance 00028 00029 // Forward declarations 00030 namespace geos { 00031 namespace geom { 00032 class GeometryFactory; 00033 } 00034 namespace geomgraph { 00035 class DirectedEdge; 00036 //class EdgeRing; 00037 } 00038 namespace operation { 00039 namespace overlay { 00040 class MinimalEdgeRing; 00041 } 00042 } 00043 } 00044 00045 namespace geos { 00046 namespace operation { // geos::operation 00047 namespace overlay { // geos::operation::overlay 00048 00067 class GEOS_DLL MaximalEdgeRing: public geomgraph::EdgeRing { 00068 00069 public: 00070 00071 MaximalEdgeRing(geomgraph::DirectedEdge *start, 00072 const geom::GeometryFactory *geometryFactory); 00073 // throw(const TopologyException &) 00074 00075 virtual ~MaximalEdgeRing(); 00076 00077 geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge *de); 00078 00079 void setEdgeRing(geomgraph::DirectedEdge* de, geomgraph::EdgeRing* er); 00080 00087 std::vector<MinimalEdgeRing*>* buildMinimalRings(); 00088 00093 void buildMinimalRings(std::vector<MinimalEdgeRing*>& minEdgeRings); 00094 void buildMinimalRings(std::vector<EdgeRing*>& minEdgeRings); 00095 00100 void linkDirectedEdgesForMinimalEdgeRings(); 00101 }; 00102 00103 00104 } // namespace geos::operation::overlay 00105 } // namespace geos::operation 00106 } // namespace geos 00107 00108 #endif // ndef GEOS_OP_OVERLAY_MAXIMALEDGERING_H 00109 00110 /********************************************************************** 00111 * $Log$ 00112 * Revision 1.2 2006/03/27 16:02:34 strk 00113 * Added INL file for MinimalEdgeRing, added many debugging blocks, 00114 * fixed memory leak in ConnectedInteriorTester (bug #59) 00115 * 00116 * Revision 1.1 2006/03/17 13:24:59 strk 00117 * 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). 00118 * 00119 **********************************************************************/ 00120