.. _program_listing_file__tmp_ws_src_grid_map_grid_map_core_include_grid_map_core_iterators_CircleIterator.hpp: Program Listing for File CircleIterator.hpp =========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/grid_map/grid_map_core/include/grid_map_core/iterators/CircleIterator.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * CircleIterator.hpp * * Created on: Nov 13, 2014 * Author: Péter Fankhauser * Institute: ETH Zurich, ANYbotics */ #ifndef GRID_MAP_CORE__ITERATORS__CIRCLEITERATOR_HPP_ #define GRID_MAP_CORE__ITERATORS__CIRCLEITERATOR_HPP_ #include #include #include "grid_map_core/GridMap.hpp" #include "grid_map_core/iterators/SubmapIterator.hpp" namespace grid_map { class CircleIterator { public: CircleIterator(const GridMap & gridMap, const Position & center, const double radius); CircleIterator & operator=(const CircleIterator & other); bool operator!=(const CircleIterator & other) const; const Index & operator*() const; CircleIterator & operator++(); bool isPastEnd() const; private: bool isInside() const; void findSubmapParameters( const Position & center, const double radius, Index & startIndex, Size & bufferSize) const; Position center_; double radius_; double radiusSquare_; std::shared_ptr internalIterator_; Length mapLength_; Position mapPosition_; double resolution_; Size bufferSize_; Index bufferStartIndex_; public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW }; } // namespace grid_map #endif // GRID_MAP_CORE__ITERATORS__CIRCLEITERATOR_HPP_