00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GEOS_OP_OVERLAY_MINIMALEDGERING_H
00020 #define GEOS_OP_OVERLAY_MINIMALEDGERING_H
00021
00022 #include <geos/export.h>
00023
00024 #include <geos/geomgraph/EdgeRing.h>
00025 #include <geos/geomgraph/DirectedEdge.h>
00026
00027 #include <vector>
00028
00029 #include <geos/inline.h>
00030
00031
00032 namespace geos {
00033 namespace geom {
00034 class GeometryFactory;
00035 }
00036 namespace geomgraph {
00037 class DirectedEdge;
00038 class EdgeRing;
00039 }
00040 }
00041
00042 namespace geos {
00043 namespace operation {
00044 namespace overlay {
00045
00056 class GEOS_DLL MinimalEdgeRing: public geomgraph::EdgeRing {
00057
00058 public:
00059
00060
00061 MinimalEdgeRing(geomgraph::DirectedEdge *start,
00062 const geom::GeometryFactory *geometryFactory);
00063
00064 virtual ~MinimalEdgeRing();
00065
00066 geomgraph::DirectedEdge* getNext(geomgraph::DirectedEdge *de);
00067
00068 void setEdgeRing(geomgraph::DirectedEdge *de,
00069 geomgraph::EdgeRing *er);
00070 };
00071
00072
00073 }
00074 }
00075 }
00076
00077 #ifdef GEOS_INLINE
00078 #include <geos/operation/overlay/MinimalEdgeRing.inl>
00079 #endif
00080
00081 #endif // ndef GEOS_OP_OVERLAY_MINIMALEDGERING_H