spatial/fwd.hpp
Go to the documentation of this file.
1 //
2 // Copyright (c) 2015-2020 CNRS INRIA
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 {
15  namespace internal
16  {
18  template<typename Type, typename Scalar>
19  struct RHSScalarMultiplication
20  {
21  typedef Type ReturnType;
22  };
23 
25  template<typename Type, typename Scalar>
27  {
28  typedef Type ReturnType;
29  };
30  } // namespace internal
32 
38  template<typename Scalar, int Options = context::Options>
39  struct SE3Tpl;
40 
41  template<typename Derived>
42  class MotionBase;
43  template<typename Derived>
44  class MotionDense;
45  template<typename Vector6ArgType>
46  class MotionRef;
47  template<typename Scalar, int Options = context::Options>
48  struct MotionZeroTpl;
49 
50  template<typename Derived>
51  class ForceBase;
52  template<typename Derived>
53  class ForceDense;
54  template<typename Vector6ArgType>
55  class ForceRef;
56 
57  template<typename Scalar, int Options = context::Options>
58  struct InertiaTpl;
59  template<typename Scalar, int Options = context::Options>
61  template<typename Scalar, int Options = context::Options>
63  template<typename Scalar, int Options = context::Options>
65 
74 
78  // end of group spatial
79 
80 #define SPATIAL_TYPEDEF_TEMPLATE_GENERIC(derived, TYPENAME) \
81  typedef TYPENAME traits<derived>::Scalar Scalar; \
82  typedef TYPENAME traits<derived>::Vector3 Vector3; \
83  typedef TYPENAME traits<derived>::Vector4 Vector4; \
84  typedef TYPENAME traits<derived>::Vector6 Vector6; \
85  typedef TYPENAME traits<derived>::Matrix3 Matrix3; \
86  typedef TYPENAME traits<derived>::Matrix4 Matrix4; \
87  typedef TYPENAME traits<derived>::Matrix6 Matrix6; \
88  typedef TYPENAME traits<derived>::Angular_t Angular_t; \
89  typedef TYPENAME traits<derived>::Linear_t Linear_t; \
90  typedef TYPENAME traits<derived>::ConstAngular_t ConstAngular_t; \
91  typedef TYPENAME traits<derived>::ConstLinear_t ConstLinear_t; \
92  typedef TYPENAME traits<derived>::ActionMatrix_t ActionMatrix_t; \
93  typedef TYPENAME traits<derived>::Quaternion_t Quaternion_t; \
94  typedef TYPENAME traits<derived>::SE3 SE3; \
95  typedef TYPENAME traits<derived>::Force Force; \
96  typedef TYPENAME traits<derived>::Motion Motion; \
97  typedef TYPENAME traits<derived>::Symmetric3 Symmetric3; \
98  enum \
99  { \
100  LINEAR = traits<derived>::LINEAR, \
101  ANGULAR = traits<derived>::ANGULAR \
102  }
103 
104 #define SPATIAL_TYPEDEF_TEMPLATE(derived) SPATIAL_TYPEDEF_TEMPLATE_GENERIC(derived, typename)
105 
106 #define SPATIAL_TYPEDEF_NO_TEMPLATE(derived) \
107  SPATIAL_TYPEDEF_TEMPLATE_GENERIC(derived, PINOCCHIO_MACRO_EMPTY_ARG)
108 
109  namespace internal
110  {
111  // for certain Scalar type, it might be needed to proceed to call some normalization procedure
112  // in when performing a cast. This struct is an helper to support such modality.
113  template<typename Class, typename NewScalar, typename Scalar>
114  struct cast_call_normalize_method;
115  } // namespace internal
116 
117 } // namespace pinocchio
118 
119 #endif // ifndef __pinocchio_spatial_fwd_hpp__
pinocchio::InertiaTpl
Definition: spatial/fwd.hpp:58
pinocchio::PseudoInertiaTpl
A structure representing a pseudo inertia matrix.
Definition: spatial/fwd.hpp:62
pinocchio::Symmetric3
Symmetric3Tpl< context::Scalar, context::Options > Symmetric3
Definition: spatial/fwd.hpp:70
macros.hpp
pinocchio::ForceBase
Base interface for forces representation.
Definition: context/casadi.hpp:32
pinocchio::MotionZero
MotionZeroTpl< context::Scalar, context::Options > MotionZero
Definition: spatial/fwd.hpp:71
pinocchio::Inertia
InertiaTpl< context::Scalar, context::Options > Inertia
Definition: spatial/fwd.hpp:69
pinocchio::SE3Tpl
Definition: context/casadi.hpp:29
fwd.hpp
pinocchio::MotionDense
Definition: context/casadi.hpp:36
pinocchio::PseudoInertia
PseudoInertiaTpl< context::Scalar, context::Options > PseudoInertia
Definition: spatial/fwd.hpp:72
pinocchio::internal::RHSScalarMultiplication::ReturnType
Type ReturnType
Definition: spatial/fwd.hpp:21
pinocchio::LogCholeskyParameters
LogCholeskyParametersTpl< context::Scalar, context::Options > LogCholeskyParameters
Definition: spatial/fwd.hpp:73
pinocchio::MotionBase
Definition: spatial/fwd.hpp:42
pinocchio::MotionZeroTpl
Definition: context/casadi.hpp:23
pinocchio::LogCholeskyParametersTpl
A structure representing log Cholesky parameters.
Definition: spatial/fwd.hpp:64
pinocchio::internal::LHSScalarMultiplication::ReturnType
Type ReturnType
Definition: spatial/fwd.hpp:28
pinocchio::ForceTpl
Definition: context/casadi.hpp:25
pinocchio::Motion
MotionTpl<::CppAD::AD< double >, 0 > Motion
Definition: context/cppad.hpp:37
pinocchio::ForceRef
Definition: force-ref.hpp:53
pinocchio::Symmetric3Tpl
Definition: spatial/fwd.hpp:60
pinocchio::Force
ForceTpl< context::Scalar, context::Options > Force
Definition: spatial/fwd.hpp:68
pinocchio::ForceDense
Definition: context/casadi.hpp:34
pinocchio::SE3
SE3Tpl< context::Scalar, context::Options > SE3
Definition: spatial/fwd.hpp:64
pinocchio::MotionTpl
Definition: context/casadi.hpp:27
pinocchio::internal::LHSScalarMultiplication
&#160;
Definition: context/casadi.hpp:47
pinocchio::MotionRef
Definition: context/casadi.hpp:38
pinocchio
Main pinocchio namespace.
Definition: timings.cpp:27


pinocchio
Author(s):
autogenerated on Sun Dec 22 2024 03:41:09