Go to the documentation of this file.00001
00012 #ifndef MAPOBJECT_HPP_
00013 #define MAPOBJECT_HPP_
00014
00015 #include "jmath/jblas.hpp"
00016 #include "rtslam/rtSlam.hpp"
00017 #include "rtslam/objectAbstract.hpp"
00018 #include "rtslam/mapAbstract.hpp"
00019 #include "rtslam/gaussian.hpp"
00020
00021 namespace jafar {
00022 namespace rtslam {
00023
00024
00030 class MapObject: public ObjectAbstract {
00031
00032 friend std::ostream& operator <<(std::ostream & s, MapObject const & obj);
00033
00034 public:
00035
00039 typedef enum {
00040 FILTERED,
00041 UNFILTERED
00042 } filtered_obj_t;
00043
00044 Gaussian state;
00045 Gaussian stateU;
00046
00053 MapObject(const map_ptr_t & _mapPtr, const size_t _size, const size_t _sizeU);
00054 void construct(const map_ptr_t & _mapPtr, const size_t _size, const size_t _sizeU);
00064 MapObject(const map_ptr_t & _mapPtr, const MapObject & _previousObj, const size_t _size, jblas::ind_array & _icomp);
00065
00069 virtual ~MapObject() {
00070 }
00071
00072 void setup(const vec & _state, const vec & _stateStdDev){
00073 state.x(_state);
00074 state.std(_stateStdDev);
00075 }
00076 void setupU(const vec & _state, const vec & _stateStdDev){
00077 stateU.x(_state);
00078 stateU.std(_stateStdDev);
00079 }
00080 void setup(const vec & _state, const sym_mat & _stateCov){
00081 state.x(_state);
00082 state.P(_stateCov);
00083 }
00084 void setupU(const vec & _state, const sym_mat & _stateCov){
00085 stateU.x(_state);
00086 stateU.P(_stateCov);
00087 }
00088
00089 inline static size_t size() {
00090 return 0;
00091 }
00092
00093 virtual std::string categoryName() const {
00094 return "MAP OBJECT";
00095 }
00096
00100
00101
00102
00103 };
00104
00105 }
00106 }
00107
00108 #endif