00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef GEOS_OP_DISTANCE_CONNECTEDELEMENTLOCATIONFILTER_H
00021 #define GEOS_OP_DISTANCE_CONNECTEDELEMENTLOCATIONFILTER_H
00022
00023 #include <geos/export.h>
00024
00025 #include <geos/geom/GeometryFilter.h>
00026
00027 #include <vector>
00028
00029
00030 namespace geos {
00031 namespace geom {
00032 class Geometry;
00033 }
00034 namespace operation {
00035 namespace distance {
00036 class GeometryLocation;
00037 }
00038 }
00039 }
00040
00041
00042 namespace geos {
00043 namespace operation {
00044 namespace distance {
00045
00053 class GEOS_DLL ConnectedElementLocationFilter: public geom::GeometryFilter {
00054 private:
00055
00056 std::vector<GeometryLocation*> *locations;
00057
00058 public:
00065 static std::vector<GeometryLocation*>* getLocations(const geom::Geometry *geom);
00066
00067 ConnectedElementLocationFilter(std::vector<GeometryLocation*> *newLocations)
00068 :
00069 locations(newLocations)
00070 {}
00071
00072 void filter_ro(const geom::Geometry *geom);
00073 void filter_rw(geom::Geometry *geom);
00074 };
00075
00076
00077 }
00078 }
00079 }
00080
00081 #endif // GEOS_OP_DISTANCE_CONNECTEDELEMENTLOCATIONFILTER_H
00082
00083
00084
00085
00086
00087
00088
00089