pinocchio  2.2.1-dirty
spatial/fwd.hpp
1 //
2 // Copyright (c) 2015-2018 CNRS
3 // Copyright (c) 2016 Wandercraft, 86 rue de Paris 91400 Orsay, France.
4 //
5 
6 #ifndef __pinocchio_spatial_fwd_hpp__
7 #define __pinocchio_spatial_fwd_hpp__
8 
9 #include "pinocchio/fwd.hpp"
10 #include "pinocchio/macros.hpp"
11 
12 namespace pinocchio
13 {
14 
15  template<typename Scalar, int Options=0> struct SE3Tpl;
16 
17  template<typename Derived> class MotionBase;
18  template<typename Derived> class MotionDense;
19  template<typename Vector6ArgType> class MotionRef;
20  template<typename Scalar, int Options=0> class MotionTpl;
21  template<typename Scalar, int Options=0> struct BiasZeroTpl;
22 
23  template<typename Derived> class ForceBase;
24  template<typename Derived> class ForceDense;
25  template<typename Vector6ArgType> class ForceRef;
26  template<typename Scalar, int Options=0> class ForceTpl;
27 
28  template<typename Scalar, int Options=0> class InertiaTpl;
29  template<typename Scalar, int Options=0> class Symmetric3Tpl;
30 
31  namespace internal
32  {
34  template<typename Type, typename Scalar>
35  struct RHSScalarMultiplication
36  {
37  typedef Type ReturnType;
38  };
39 
41  template<typename Type, typename Scalar>
42  struct LHSScalarMultiplication
43  {
44  typedef Type ReturnType;
45  };
46  }
47 
53  typedef SE3Tpl <double,0> SE3;
55  typedef ForceTpl <double,0> Force;
59 
63  // end of group spatial
64 
65  #define SPATIAL_TYPEDEF_TEMPLATE_GENERIC(derived,TYPENAME) \
66  typedef TYPENAME traits<derived>::Scalar Scalar; \
67  typedef TYPENAME traits<derived>::Vector3 Vector3; \
68  typedef TYPENAME traits<derived>::Vector4 Vector4; \
69  typedef TYPENAME traits<derived>::Vector6 Vector6; \
70  typedef TYPENAME traits<derived>::Matrix3 Matrix3; \
71  typedef TYPENAME traits<derived>::Matrix4 Matrix4; \
72  typedef TYPENAME traits<derived>::Matrix6 Matrix6; \
73  typedef TYPENAME traits<derived>::Angular_t Angular_t; \
74  typedef TYPENAME traits<derived>::Linear_t Linear_t; \
75  typedef TYPENAME traits<derived>::ConstAngular_t ConstAngular_t; \
76  typedef TYPENAME traits<derived>::ConstLinear_t ConstLinear_t; \
77  typedef TYPENAME traits<derived>::ActionMatrix_t ActionMatrix_t; \
78  typedef TYPENAME traits<derived>::Quaternion_t Quaternion_t; \
79  typedef TYPENAME traits<derived>::SE3 SE3; \
80  typedef TYPENAME traits<derived>::Force Force; \
81  typedef TYPENAME traits<derived>::Motion Motion; \
82  typedef TYPENAME traits<derived>::Symmetric3 Symmetric3; \
83  enum { \
84  LINEAR = traits<derived>::LINEAR, \
85  ANGULAR = traits<derived>::ANGULAR \
86  }
87 
88  #define SPATIAL_TYPEDEF_TEMPLATE(derived) \
89  SPATIAL_TYPEDEF_TEMPLATE_GENERIC(derived,typename)
90 
91  #define SPATIAL_TYPEDEF_NO_TEMPLATE(derived) \
92  SPATIAL_TYPEDEF_TEMPLATE_GENERIC(derived,PINOCCHIO_MACRO_EMPTY_ARG)
93 
94 
95 } // namespace pinocchio
96 
97 #endif // ifndef __pinocchio_spatial_fwd_hpp__
Base interface for forces representation.
Definition: force-base.hpp:27
Main pinocchio namespace.
Definition: treeview.dox:24