00001 /* 00002 * SlidingWindowMathExpressionFilter.hpp 00003 * 00004 * Created on: Aug 18, 2017 00005 * Author: Peter Fankhauser 00006 * Institute: ETH Zurich, ANYbotics 00007 */ 00008 00009 #pragma once 00010 00011 #include "EigenLab/EigenLab.h" 00012 00013 #include <grid_map_core/grid_map_core.hpp> 00014 00015 #include <filters/filter_base.h> 00016 00017 #include <Eigen/Core> 00018 #include <string> 00019 00020 namespace grid_map { 00021 00025 template<typename T> 00026 class SlidingWindowMathExpressionFilter : public filters::FilterBase<T> 00027 { 00028 00029 public: 00033 SlidingWindowMathExpressionFilter(); 00034 00038 virtual ~SlidingWindowMathExpressionFilter(); 00039 00043 virtual bool configure(); 00044 00050 virtual bool update(const T& mapIn, T& mapOut); 00051 00052 private: 00054 std::string inputLayer_; 00055 00057 std::string outputLayer_; 00058 00060 EigenLab::Parser<Eigen::MatrixXf> parser_; 00061 00063 std::string expression_; 00064 00066 int windowSize_; 00067 00069 bool useWindowLength_; 00070 00072 double windowLength_; 00073 00075 bool isComputeEmptyCells_; 00076 00078 SlidingWindowIterator::EdgeHandling edgeHandling_; 00079 }; 00080 00081 } /* namespace */