Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef EDGE_SE2SWITCHABLE_H_
00012 #define EDGE_SE2SWITCHABLE_H_
00013
00014 #include "g2o/types/slam2d/vertex_se2.h"
00015 #include "g2o/core/base_multi_edge.h"
00016 #include "g2o/core/hyper_graph_action.h"
00017
00018 class EdgeSE2Switchable : public g2o::BaseMultiEdge<3, g2o::SE2>
00019 {
00020 public:
00021 EdgeSE2Switchable();
00022
00023 virtual bool read(std::istream& is);
00024 virtual bool write(std::ostream& os) const;
00025 void computeError();
00026 void linearizeOplus();
00027
00028
00029 virtual void setMeasurement(const g2o::SE2& m){
00030 _measurement = m;
00031 _inverseMeasurement = m.inverse();
00032 }
00033
00034 protected:
00035 g2o::SE2 _inverseMeasurement;
00036 };
00037
00038
00039 #ifdef G2O_HAVE_OPENGL
00040 class EdgeSE2SwitchableDrawAction: public g2o::DrawAction{
00041 public:
00042 EdgeSE2SwitchableDrawAction();
00043 virtual g2o::HyperGraphElementAction* operator()(g2o::HyperGraph::HyperGraphElement* element,
00044 g2o::HyperGraphElementAction::Parameters* params_);
00045 };
00046 #endif
00047
00048
00049
00050 #endif