jntspaceinertiamatrix.hpp

Go to the documentation of this file.
00001 // Copyright  (C)  2009  Dominick Vanthienen <dominick dot vanthienen at mech dot kuleuven dot be>
00002 
00003 // Version: 1.0
00004 // Author: Dominick Vanthienen <dominick dot vanthienen at mech dot kuleuven dot be>
00005 // Maintainer: Dominick Vanthienen <ruben dot smits at mech dot kuleuven dot be>
00006 // URL: http://www.orocos.org/kdl
00007 
00008 // This library is free software; you can redistribute it and/or
00009 // modify it under the terms of the GNU Lesser General Public
00010 // License as published by the Free Software Foundation; either
00011 // version 2.1 of the License, or (at your option) any later version.
00012 
00013 // This library is distributed in the hope that it will be useful,
00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016 // Lesser General Public License for more details.
00017 
00018 // You should have received a copy of the GNU Lesser General Public
00019 // License along with this library; if not, write to the Free Software
00020 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
00021 
00022 #ifndef KDL_JNTSPACEINERTIAMATRIX_HPP
00023 #define KDL_JNTSPACEINERTIAMATRIX_HPP
00024 
00025 #include "frames.hpp"
00026 #include "jacobian.hpp"
00027 #include "jntarray.hpp"
00028 
00029 #include <Eigen/Core>
00030 
00031 namespace KDL
00032 {
00070     class JntSpaceInertiaMatrix
00071     {
00072     public:
00073         Eigen::MatrixXd data;
00074 
00082         JntSpaceInertiaMatrix();
00093         JntSpaceInertiaMatrix(int size);
00097         JntSpaceInertiaMatrix(const JntSpaceInertiaMatrix& arg);
00098         ~JntSpaceInertiaMatrix();
00108         void resize(unsigned int newSize);
00109                 
00110         JntSpaceInertiaMatrix& operator = ( const JntSpaceInertiaMatrix& arg);
00118         double operator()(unsigned int i,unsigned int j)const;
00126         double& operator()(unsigned int i,unsigned int j);
00131         unsigned int rows()const;
00135         unsigned int columns()const;
00136 
00146         friend void Add(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,JntSpaceInertiaMatrix& dest);
00156         friend void Subtract(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,JntSpaceInertiaMatrix& dest);
00166         friend void Multiply(const JntSpaceInertiaMatrix& src,const double& factor,JntSpaceInertiaMatrix& dest);
00176         friend void Divide(const JntSpaceInertiaMatrix& src,const double& factor,JntSpaceInertiaMatrix& dest);
00189         friend void Multiply(const JntSpaceInertiaMatrix& src, const JntArray& vec, JntArray& dest);
00195         friend void SetToZero(JntSpaceInertiaMatrix& mat);
00206         friend bool Equal(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,double eps=epsilon);
00207 
00208         friend bool operator==(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00209         //friend bool operator!=(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00210         };
00211 
00212     bool operator==(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00213     //bool operator!=(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00214 
00215 }
00216 
00217 #endif

Generated on Wed Nov 23 19:00:20 2011 for FreeCAD by  doxygen 1.6.1