Go to the documentation of this file.00001
00028 #pragma once
00029
00030 #include <list>
00031 #include <ostream>
00032
00033 namespace isam {
00034
00035 class Element {
00036 Element(const Element& rhs);
00037 const Element& operator= (const Element& rhs);
00038
00039 const char* _name;
00040
00041 int _start;
00042
00043 protected:
00044 int _id;
00045 int _dim;
00046
00047 public:
00048 Element(const char* name, int dim) : _name(name), _dim(dim) {}
00049 virtual ~Element() {};
00050
00051 virtual int unique_id() {return _id;}
00052 virtual const char* name() const {return _name;}
00053 inline int dim() const {return _dim;}
00054 inline int start() const {return _start;}
00055
00056 virtual void write(std::ostream &out) const {
00057 out << name();
00058 }
00059
00060 friend class Slam;
00061 friend class Covariances;
00062 };
00063
00064 }