edge_se3Switchable.h
Go to the documentation of this file.
00001 /*
00002  * edge_se3Switchable.h
00003  *
00004  *  Created on: 17.10.2011
00005  *      Author: niko
00006  *
00007  *  Updated on: 14.01.2013
00008  *      Author: Christian Kerl <christian.kerl@in.tum.de>
00009  */
00010 
00011 #ifndef EDGE_SE3SWITCHABLE_H_
00012 #define EDGE_SE3SWITCHABLE_H_
00013 
00014 #include "g2o/types/slam3d/vertex_se3.h"
00015 #include "g2o/core/base_multi_edge.h"
00016 #include "g2o/core/hyper_graph_action.h"
00017 
00018 class EdgeSE3Switchable : public g2o::BaseMultiEdge<6, Eigen::Isometry3d>
00019 {
00020   public:
00021     EdgeSE3Switchable();
00022 
00023     virtual bool read(std::istream& is);
00024     virtual bool write(std::ostream& os) const;
00025     void computeError();
00026     void linearizeOplus();
00027 
00028     virtual void setMeasurement(const Eigen::Isometry3d& m){
00029       _measurement = m;
00030       _inverseMeasurement = m.inverse();
00031     }
00032 
00033   protected:
00034     Eigen::Isometry3d _inverseMeasurement;
00035 };
00036 
00037 
00038 #ifdef G2O_HAVE_OPENGL
00039     class EdgeSE3SwitchableDrawAction: public g2o::DrawAction{
00040     public:
00041       EdgeSE3SwitchableDrawAction();
00042       virtual g2o::HyperGraphElementAction* operator()(g2o::HyperGraph::HyperGraphElement* element,
00043               g2o::HyperGraphElementAction::Parameters* params_);
00044     };
00045 #endif
00046 
00047 
00048 #endif /* EDGE_SE3SWITCHABLE_H_ */


rtabmap
Author(s): Mathieu Labbe
autogenerated on Sat Jul 23 2016 11:44:16