iSAM
Element.h
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); // not allowed
00037   const Element& operator= (const Element& rhs); // not allowed
00038 
00039   const char* _name;
00040 
00041   int _start; // needed for Slam::jacobian
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 }
 All Classes Files Functions Variables