Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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 explicit 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& matrix);
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
00210 };
00211
00212 bool operator==(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00213
00214
00215 }
00216
00217 #endif