Jafar
|
00001 /* $Id$ */ 00002 00003 #ifndef SLAM_ABSTRACT_MAP_OBJECT_HPP 00004 #define SLAM_ABSTRACT_MAP_OBJECT_HPP 00005 00006 #include "jmath/jblas.hpp" 00007 00008 namespace jafar { 00009 namespace slam { 00010 00011 class SlamEkf; 00012 class DefaultMapManager; 00013 class LocalMapManager; 00014 class GlobalMapManager; 00015 class StrongMapManager; 00016 00019 class AbstractMapObject { 00020 00021 public: 00023 AbstractMapObject(unsigned int id) : m_id(id), m_x(0), m_P(0) {} 00024 00026 virtual ~AbstractMapObject(); 00027 00030 unsigned int id() const {return m_id;} 00031 00034 std::size_t filterIndex() const {return m_filterIndex;} 00035 00038 jblas::vec_range& getX() {return *m_x;} 00039 00042 jblas::vec_range const& getX() const {return *m_x;} 00043 00046 jblas::sym_mat_range& getP() {return *m_P;} 00047 00050 jblas::sym_mat_range const& getP() const {return *m_P;} 00051 00053 virtual std::size_t sizeState() const = 0; 00054 00058 virtual void setState(jblas::vec& x_, jblas::sym_mat& P_); 00059 00060 protected: 00061 00063 unsigned int m_id; 00064 00066 std::size_t m_filterIndex; 00067 private: 00068 00069 jblas::vec_range* m_x; 00070 jblas::sym_mat_range* m_P; 00071 00072 friend class DefaultMapManager; 00073 friend class LocalMapManager; 00074 friend class GlobalMapManager; 00075 friend class StrongMapManager; 00076 }; // AbstractMapObject 00077 } 00078 } 00079 00080 #endif // SLAM_ABSTRACT_MAP_MANAGER_HPP
Generated on Wed Oct 15 2014 00:37:27 for Jafar by doxygen 1.7.6.1 |