00001 00005 #pragma once 00006 00007 #include <Eigen/Core> 00008 #include "../cost_map.hpp" 00009 00010 namespace cost_map { 00011 00015 class CostMapIterator 00016 { 00017 public: 00018 00023 CostMapIterator(const cost_map::CostMap &gridMap); 00024 00029 CostMapIterator(const CostMapIterator* other); 00030 00036 CostMapIterator& operator =(const CostMapIterator& other); 00037 00042 bool operator !=(const CostMapIterator& other) const; 00043 00048 const Index& operator *() const; 00049 00054 const Index getUnwrappedIndex() const; 00055 00060 CostMapIterator& operator ++(); 00061 00066 CostMapIterator end() const; 00067 00072 bool isPastEnd() const; 00073 00074 private: 00075 00077 Size size_; 00078 00080 Index startIndex_; 00081 00083 Index endIndex_; 00084 00086 Index index_; 00087 00089 bool isPastEnd_; 00090 }; 00091 00092 } /* namespace */