Program Listing for File LineIterator.hpp
↰ Return to documentation for file (/tmp/ws/src/grid_map/grid_map_core/include/grid_map_core/iterators/LineIterator.hpp
)
/*
* LineIterator.hpp
*
* Created on: Nov 13, 2014
* Author: Péter Fankhauser
* Institute: ETH Zurich, ANYbotics
*/
#ifndef GRID_MAP_CORE__ITERATORS__LINEITERATOR_HPP_
#define GRID_MAP_CORE__ITERATORS__LINEITERATOR_HPP_
#include <Eigen/Core>
#include "grid_map_core/GridMap.hpp"
#include "grid_map_core/iterators/SubmapIterator.hpp"
namespace grid_map
{
class LineIterator
{
public:
LineIterator(const grid_map::GridMap & gridMap, const Position & start, const Position & end);
LineIterator(const grid_map::GridMap & gridMap, const Index & start, const Index & end);
LineIterator & operator=(const LineIterator & other);
bool operator!=(const LineIterator & other) const;
const Index & operator*() const;
LineIterator & operator++();
bool isPastEnd() const;
private:
bool initialize(const grid_map::GridMap & gridMap, const Index & start, const Index & end);
void initializeIterationParameters();
bool getIndexLimitedToMapRange(
const grid_map::GridMap & gridMap, const Position & start,
const Position & end, Index & index);
Index index_;
Index start_;
Index end_;
unsigned int iCell_;
unsigned int nCells_;
Size increment1_, increment2_;
int denominator_, numerator_, numeratorAdd_;
Length mapLength_;
Position mapPosition_;
double resolution_;
Size bufferSize_;
Index bufferStartIndex_;
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
};
} // namespace grid_map
#endif // GRID_MAP_CORE__ITERATORS__LINEITERATOR_HPP_