00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GEOS_OP_LINEMERGE_LINEMERGEGRAPH_H
00021 #define GEOS_OP_LINEMERGE_LINEMERGEGRAPH_H
00022
00023 #include <geos/export.h>
00024
00025 #include <geos/planargraph/PlanarGraph.h>
00026
00027 #include <vector>
00028
00029
00030 namespace geos {
00031 namespace geom {
00032 class LineString;
00033 class Coordinate;
00034 }
00035 namespace planargraph {
00036 class Node;
00037 class Edge;
00038 class DirectedEdge;
00039 }
00040 }
00041
00042
00043 namespace geos {
00044 namespace operation {
00045 namespace linemerge {
00046
00054 class GEOS_DLL LineMergeGraph: public planargraph::PlanarGraph {
00055
00056 private:
00057
00058 planargraph::Node* getNode(const geom::Coordinate &coordinate);
00059
00060 std::vector<planargraph::Node*> newNodes;
00061
00062 std::vector<planargraph::Edge*> newEdges;
00063
00064 std::vector<planargraph::DirectedEdge*> newDirEdges;
00065
00066 public:
00067
00072 void addEdge(const geom::LineString *lineString);
00073
00074 ~LineMergeGraph();
00075 };
00076 }
00077 }
00078 }
00079
00080 #endif // GEOS_OP_LINEMERGE_LINEMERGEGRAPH_H
00081
00082
00083
00084
00085
00086
00087