cascade.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __PLUGINS_LASER_FILTERS_CASCADE_H_
00024 #define __PLUGINS_LASER_FILTERS_CASCADE_H_
00025
00026 #include "../filter.h"
00027
00028 #include <list>
00029
00030 class LaserDataFilterCascade : public LaserDataFilter
00031 {
00032 public:
00033 LaserDataFilterCascade(bool own_filters = true);
00034 ~LaserDataFilterCascade();
00035
00036 void add_filter(LaserDataFilter *filter);
00037 void remove_filter(LaserDataFilter *filter);
00038 void delete_filters();
00039
00040
00041 inline bool has_filters() const { return ! __filters.empty(); }
00042
00043 void filter(const float *data, unsigned int data_size);
00044
00045 private:
00046 bool __own_filters;
00047 std::list<LaserDataFilter *> __filters;
00048 std::list<LaserDataFilter *>::iterator __fit;
00049 };
00050
00051 #endif