Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
abstractMapObject.hpp
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:27 for Jafar by doxygen 1.7.6.1
LAAS-CNRS