6 #ifndef __pinocchio_motion_zero_hpp__
7 #define __pinocchio_motion_zero_hpp__
12 template<
typename Scalar,
int Options>
18 template<
typename Scalar,
int Options,
typename MotionDerived>
24 template<
typename _Scalar,
int _Options>
32 typedef _Scalar Scalar;
33 typedef Eigen::Matrix<Scalar,3,1,Options> Vector3;
34 typedef Eigen::Matrix<Scalar,6,1,Options> Vector6;
35 typedef Eigen::Matrix<Scalar,3,3,Options> Matrix3;
36 typedef Eigen::Matrix<Scalar,4,4,Options> Matrix4;
37 typedef Eigen::Matrix<Scalar,6,6,Options> Matrix6;
38 typedef typename PINOCCHIO_EIGEN_REF_CONST_TYPE(Vector6) ToVectorConstReturnType;
39 typedef typename PINOCCHIO_EIGEN_REF_TYPE(Vector6) ToVectorReturnType;
40 typedef Matrix6 ActionMatrixType;
41 typedef Matrix4 HomogeneousMatrixType;
42 typedef Vector3 AngularType;
43 typedef const Vector3 ConstAngularType;
44 typedef Vector3 LinearType;
45 typedef const Vector3 ConstLinearType;
51 template<
typename Scalar,
int Options>
53 :
public MotionBase< MotionZeroTpl<Scalar,Options> >
58 static PlainReturnType plain() {
return MotionPlain::Zero(); }
61 static bool isEqual_impl(
const MotionDense<D2> & other)
63 return other.linear().isZero(0) && other.angular().isZero(0);
66 static bool isEqual_impl(
const MotionZeroTpl &)
72 static void addTo(
const MotionBase<D2> &) {}
75 static void setTo(MotionBase<D2> & other)
81 MotionZeroTpl motionAction(
const MotionBase<M1> &)
const
83 return MotionZeroTpl();
86 template<
typename S2,
int O2,
typename D2>
87 void se3Action_impl(
const SE3Tpl<S2,O2> &, MotionDense<D2> & v)
const
92 template<
typename S2,
int O2>
93 MotionZeroTpl se3Action_impl(
const SE3Tpl<S2,O2> &)
const
95 return MotionZeroTpl();
98 template<
typename S2,
int O2,
typename D2>
99 void se3ActionInverse_impl(
const SE3Tpl<S2,O2> &, MotionDense<D2> & v)
const
104 template<
typename S2,
int O2>
105 MotionZeroTpl se3ActionInverse_impl(
const SE3Tpl<S2,O2> &)
const
107 return MotionZeroTpl();
112 template<
typename M1,
typename Scalar,
int Options>
113 inline const M1 & operator+(
const MotionBase<M1> & v,
114 const MotionZeroTpl<Scalar,Options> &)
115 {
return v.derived(); }
117 template<
typename Scalar,
int Options,
typename M1>
118 inline const M1 & operator+(
const MotionZeroTpl<Scalar,Options> &,
119 const MotionBase<M1> & v)
120 {
return v.derived(); }
123 template<
typename Scalar,
int Options>
130 PINOCCHIO_COMPILER_DIAGNOSTIC_PUSH
131 PINOCCHIO_COMPILER_DIAGNOSTIC_IGNORED_DEPRECECATED_DECLARATIONS
132 template<
typename Scalar,
int Options>
138 template<
typename Scalar,
int Options,
typename MotionDerived>
143 PINOCCHIO_COMPILER_DIAGNOSTIC_POP
147 #endif // ifndef __pinocchio_motion_zero_hpp__