.. _program_listing_file__tmp_ws_src_grid_map_grid_map_core_include_grid_map_core_iterators_SlidingWindowIterator.hpp: Program Listing for File SlidingWindowIterator.hpp ================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/grid_map/grid_map_core/include/grid_map_core/iterators/SlidingWindowIterator.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * SlidingWindowIterator.hpp * * Created on: Aug 17, 2017 * Author: Péter Fankhauser * Institute: ETH Zurich, ANYbotics */ #ifndef GRID_MAP_CORE__ITERATORS__SLIDINGWINDOWITERATOR_HPP_ #define GRID_MAP_CORE__ITERATORS__SLIDINGWINDOWITERATOR_HPP_ #include #include #include "grid_map_core/GridMap.hpp" #include "grid_map_core/iterators/GridMapIterator.hpp" namespace grid_map { class SlidingWindowIterator : public GridMapIterator { public: enum class EdgeHandling { INSIDE, // Only visit indices that are surrounded by a full window. CROP, // Crop data matrix with missing cells at edges. EMPTY, // Fill in missing edges with empty cells (NAN-value). MEAN // Fill in missing edges with MEAN of valid values. }; SlidingWindowIterator( const GridMap & gridMap, const std::string & layer, const EdgeHandling & edgeHandling = EdgeHandling::CROP, const size_t windowSize = 3); explicit SlidingWindowIterator(const SlidingWindowIterator * other); void setWindowLength(const GridMap & gridMap, const double windowLength); SlidingWindowIterator & operator++(); const Matrix getData() const; private: void setup(const GridMap & gridMap); bool dataInsideMap() const; const EdgeHandling edgeHandling_; const Matrix & data_; size_t windowSize_; size_t windowMargin_; public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW }; } // namespace grid_map #endif // GRID_MAP_CORE__ITERATORS__SLIDINGWINDOWITERATOR_HPP_