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
00137 friend void Add(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,JntSpaceInertiaMatrix& dest);
00138 friend void Subtract(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,JntSpaceInertiaMatrix& dest);
00139 friend void Multiply(const JntSpaceInertiaMatrix& src,const double& factor,JntSpaceInertiaMatrix& dest);
00140 friend void Divide(const JntSpaceInertiaMatrix& src,const double& factor,JntSpaceInertiaMatrix& dest);
00141 friend void Multiply(const JntSpaceInertiaMatrix& src, const JntArray& vec, JntArray& dest);
00142 friend void SetToZero(JntSpaceInertiaMatrix& matrix);
00143 friend bool Equal(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,double eps);
00144 friend bool operator==(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00145
00146 };
00147
00148 bool operator==(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00149
00150
00160 void Add(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,JntSpaceInertiaMatrix& dest);
00161
00171 void Subtract(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,JntSpaceInertiaMatrix& dest);
00172
00182 void Multiply(const JntSpaceInertiaMatrix& src,const double& factor,JntSpaceInertiaMatrix& dest);
00183
00193 void Divide(const JntSpaceInertiaMatrix& src,const double& factor,JntSpaceInertiaMatrix& dest);
00194
00207 void Multiply(const JntSpaceInertiaMatrix& src, const JntArray& vec, JntArray& dest);
00208
00214 void SetToZero(JntSpaceInertiaMatrix& matrix);
00215
00226 bool Equal(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2,double eps=epsilon);
00227
00228 bool operator==(const JntSpaceInertiaMatrix& src1,const JntSpaceInertiaMatrix& src2);
00229
00230 }
00231
00232 #endif