GCOP  1.0
kinbody3dmanifold.h
Go to the documentation of this file.
00001 #ifndef GCOP_KINBODY3DMANIFOLD_H
00002 #define GCOP_KINBODY3DMANIFOLD_H
00003 
00004 #include "manifold.h"
00005 #include <limits>
00006 
00007 namespace gcop {
00008   
00009   using namespace std;
00010   using namespace Eigen;
00011   typedef Matrix<double, 6, 1> Vector6d;
00012   
00013   class Kinbody3dManifold : public Manifold<Matrix4d, 6> {
00014   public:
00015     
00016     static Kinbody3dManifold& Instance();
00017     
00018     void Lift(Vector6d &v,
00019               const Matrix4d &xa,
00020               const Matrix4d &xb);      
00021     
00022     void Retract(Matrix4d &xb,
00023                  const Matrix4d &xa,
00024                  const Vector6d &v);    
00025 
00026     void dtau(Matrix4d &M, const Vector6d &v);
00027 
00028     void Adtau(Matrix4d &M, const Vector6d &v);
00029     
00030   private:
00031     Kinbody3dManifold();
00032   };
00033 }
00034 
00035 #endif