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