00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef GEOS_OP_LINEMERGE_EDGESTRING_H
00022 #define GEOS_OP_LINEMERGE_EDGESTRING_H
00023
00024 #include <geos/export.h>
00025 #include <vector>
00026
00027 #ifdef _MSC_VER
00028 #pragma warning(push)
00029 #pragma warning(disable: 4251) // warning C4251: needs to have dll-interface to be used by clients of class
00030 #endif
00031
00032
00033 namespace geos {
00034 namespace geom {
00035 class GeometryFactory;
00036 class CoordinateSequence;
00037 class LineString;
00038 }
00039 namespace operation {
00040 namespace linemerge {
00041 class LineMergeDirectedEdge;
00042 }
00043 }
00044 }
00045
00046 namespace geos {
00047 namespace operation {
00048 namespace linemerge {
00049
00055 class GEOS_DLL EdgeString {
00056 private:
00057 const geom::GeometryFactory *factory;
00058 std::vector<LineMergeDirectedEdge*> directedEdges;
00059 geom::CoordinateSequence *coordinates;
00060 geom::CoordinateSequence* getCoordinates();
00061 public:
00062
00063
00064
00065
00066
00067 EdgeString(const geom::GeometryFactory *newFactory);
00068
00069 ~EdgeString();
00070
00074 void add(LineMergeDirectedEdge *directedEdge);
00075
00076
00077
00078
00079 geom::LineString* toLineString();
00080 };
00081
00082 }
00083 }
00084 }
00085
00086 #ifdef _MSC_VER
00087 #pragma warning(pop)
00088 #endif
00089
00090 #endif // GEOS_OP_LINEMERGE_EDGESTRING_H