Program Listing for File SlidingWindowMathExpressionFilter.hpp

Return to documentation for file (/tmp/ws/src/grid_map/grid_map_filters/include/grid_map_filters/SlidingWindowMathExpressionFilter.hpp)

/*
 * SlidingWindowMathExpressionFilter.hpp
 *
 *  Created on: Aug 18, 2017
 *      Author: Peter Fankhauser
 *   Institute: ETH Zurich, ANYbotics
 */

#ifndef GRID_MAP_FILTERS__SLIDINGWINDOWMATHEXPRESSIONFILTER_HPP_
#define GRID_MAP_FILTERS__SLIDINGWINDOWMATHEXPRESSIONFILTER_HPP_

#include <Eigen/Core>

#include <grid_map_core/grid_map_core.hpp>

#include <filters/filter_base.hpp>

#include <string>

#include "EigenLab/EigenLab.hpp"

namespace grid_map
{

template<typename T>
class SlidingWindowMathExpressionFilter : public filters::FilterBase<T>
{
public:
  SlidingWindowMathExpressionFilter();

  virtual ~SlidingWindowMathExpressionFilter();

  bool configure() override;

  bool update(const T & mapIn, T & mapOut) override;

private:
  std::string inputLayer_;

  std::string outputLayer_;

  EigenLab::Parser<Eigen::MatrixXf> parser_;

  std::string expression_;

  int windowSize_;

  bool useWindowLength_;

  double windowLength_;

  bool isComputeEmptyCells_;

  SlidingWindowIterator::EdgeHandling edgeHandling_;
};

}  // namespace grid_map
#endif  // GRID_MAP_FILTERS__SLIDINGWINDOWMATHEXPRESSIONFILTER_HPP_