00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef GEOS_OP_LINEMERGE_EDGESTRING_H
00017 #define GEOS_OP_LINEMERGE_EDGESTRING_H
00018
00019 #include <vector>
00020
00021
00022 namespace geos {
00023 namespace geom {
00024 class GeometryFactory;
00025 class CoordinateSequence;
00026 class LineString;
00027 }
00028 namespace operation {
00029 namespace linemerge {
00030 class LineMergeDirectedEdge;
00031 }
00032 }
00033 }
00034
00035
00036 namespace geos {
00037 namespace operation {
00038 namespace linemerge {
00039
00045 class EdgeString {
00046 private:
00047 const geom::GeometryFactory *factory;
00048 std::vector<LineMergeDirectedEdge*> *directedEdges;
00049 geom::CoordinateSequence *coordinates;
00050 geom::CoordinateSequence* getCoordinates();
00051 public:
00052
00053
00054
00055
00056
00057 EdgeString(const geom::GeometryFactory *newFactory);
00058
00059 ~EdgeString();
00060
00064 void add(LineMergeDirectedEdge *directedEdge);
00065
00066
00067
00068
00069 geom::LineString* toLineString();
00070 };
00071
00072 }
00073 }
00074 }
00075
00076 #endif // GEOS_OP_LINEMERGE_EDGESTRING_H
00077
00078
00079
00080
00081
00082
00083