00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef GEOS_GEOM_UTIL_LINEARCOMPONENTEXTRACTER_H
00017 #define GEOS_GEOM_UTIL_LINEARCOMPONENTEXTRACTER_H
00018
00019
00020 #include <geos/export.h>
00021 #include <vector>
00022
00023 #include <geos/geom/GeometryComponentFilter.h>
00024 #include <geos/geom/Geometry.h>
00025 #include <geos/geom/LineString.h>
00026
00027
00028 namespace geos {
00029 namespace geom {
00030 namespace util {
00031
00035 class GEOS_DLL LinearComponentExtracter: public GeometryComponentFilter {
00036
00037 private:
00038
00039 LineString::ConstVect &comps;
00040
00041
00042 LinearComponentExtracter(const LinearComponentExtracter& other);
00043 LinearComponentExtracter& operator=(const LinearComponentExtracter& rhs);
00044
00045 public:
00053 static void getLines(const Geometry &geom, std::vector<const LineString*> &ret);
00058 LinearComponentExtracter(std::vector<const LineString*> &newComps);
00059
00060 void filter_rw(Geometry *geom);
00061
00062 void filter_ro(const Geometry *geom);
00063
00064 };
00065
00066 }
00067 }
00068 }
00069
00070 #endif