edge_se2_multi.cpp
Go to the documentation of this file.
00001 // g2o - General Graph Optimization
00002 // Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
00003 // 
00004 // g2o is free software: you can redistribute it and/or modify
00005 // it under the terms of the GNU Lesser General Public License as published
00006 // by the Free Software Foundation, either version 3 of the License, or
00007 // (at your option) any later version.
00008 // 
00009 // g2o is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU Lesser General Public License for more details.
00013 // 
00014 // You should have received a copy of the GNU Lesser General Public License
00015 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
00016 
00017 #include "edge_se2_multi.h"
00018 
00019 namespace g2o {
00020 
00021   EdgeSE2Multi::EdgeSE2Multi() :
00022     BaseMultiEdge<3, SE2>()
00023   {
00024   }
00025 
00026   bool EdgeSE2Multi::read(std::istream& is)
00027   {
00028     Eigen::Vector3d p;
00029     is >> p[0] >> p[1] >> p[2];
00030     measurement().fromVector(p);
00031     inverseMeasurement() = measurement().inverse();
00032     for (int i = 0; i < 3; ++i)
00033       for (int j = i; j < 3; ++j) {
00034         is >> information()(i, j);
00035         if (i != j)
00036           information()(j, i) = information()(i, j);
00037       }
00038     return true;
00039   }
00040 
00041   bool EdgeSE2Multi::write(std::ostream& os) const
00042   {
00043     Vector3d p = measurement().toVector();
00044     os << p.x() << " " << p.y() << " " << p.z();
00045     for (int i = 0; i < 3; ++i)
00046       for (int j = i; j < 3; ++j)
00047         os << " " << information()(i, j);
00048     return os.good();
00049   }
00050 
00051 }


re_vision
Author(s): Dorian Galvez-Lopez
autogenerated on Sun Jan 5 2014 11:31:02