00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef GEOS_OP_LINEMERGE_LINEMERGEGRAPH_H
00017 #define GEOS_OP_LINEMERGE_LINEMERGEGRAPH_H
00018
00019 #include <geos/planargraph/PlanarGraph.h>
00020
00021 #include <vector>
00022
00023
00024 namespace geos {
00025 namespace geom {
00026 class LineString;
00027 class Coordinate;
00028 }
00029 namespace planargraph {
00030 class Node;
00031 class Edge;
00032 class DirectedEdge;
00033 }
00034 }
00035
00036
00037 namespace geos {
00038 namespace operation {
00039 namespace linemerge {
00040
00048 class LineMergeGraph: public planargraph::PlanarGraph {
00049
00050 private:
00051
00052 planargraph::Node* getNode(const geom::Coordinate &coordinate);
00053
00054 std::vector<planargraph::Node*> newNodes;
00055
00056 std::vector<planargraph::Edge*> newEdges;
00057
00058 std::vector<planargraph::DirectedEdge*> newDirEdges;
00059
00060 public:
00061
00066 void addEdge(const geom::LineString *lineString);
00067
00068 ~LineMergeGraph();
00069 };
00070 }
00071 }
00072 }
00073
00074 #endif // GEOS_OP_LINEMERGE_LINEMERGEGRAPH_H
00075
00076
00077
00078
00079
00080
00081