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,6,6,Options> Matrix6;
37 typedef typename PINOCCHIO_EIGEN_REF_CONST_TYPE(Vector6) ToVectorConstReturnType;
38 typedef typename PINOCCHIO_EIGEN_REF_TYPE(Vector6) ToVectorReturnType;
39 typedef Matrix6 ActionMatrixType;
40 typedef Vector3 AngularType;
41 typedef const Vector3 ConstAngularType;
42 typedef Vector3 LinearType;
43 typedef const Vector3 ConstLinearType;
49 template<
typename Scalar,
int Options>
51 :
public MotionBase< MotionZeroTpl<Scalar,Options> >
56 static PlainReturnType plain() {
return MotionPlain::Zero(); }
59 static bool isEqual_impl(
const MotionDense<D2> & other)
61 return other.linear().isZero(0) && other.angular().isZero(0);
64 static bool isEqual_impl(
const MotionZeroTpl &)
70 static void addTo(
const MotionBase<D2> &) {}
73 static void setTo(MotionBase<D2> & other)
79 MotionZeroTpl motionAction(
const MotionBase<M1> &)
const
81 return MotionZeroTpl();
84 template<
typename S2,
int O2,
typename D2>
85 void se3Action_impl(
const SE3Tpl<S2,O2> &, MotionDense<D2> & v)
const
90 template<
typename S2,
int O2>
91 MotionZeroTpl se3Action_impl(
const SE3Tpl<S2,O2> &)
const
93 return MotionZeroTpl();
96 template<
typename S2,
int O2,
typename D2>
97 void se3ActionInverse_impl(
const SE3Tpl<S2,O2> &, MotionDense<D2> & v)
const
102 template<
typename S2,
int O2>
103 MotionZeroTpl se3ActionInverse_impl(
const SE3Tpl<S2,O2> &)
const
105 return MotionZeroTpl();
110 template<
typename M1,
typename Scalar,
int Options>
111 inline const M1 & operator+(
const MotionBase<M1> & v,
112 const MotionZeroTpl<Scalar,Options> &)
113 {
return v.derived(); }
115 template<
typename Scalar,
int Options,
typename M1>
116 inline const M1 & operator+(
const MotionZeroTpl<Scalar,Options> &,
117 const MotionBase<M1> & v)
118 {
return v.derived(); }
121 template<
typename Scalar,
int Options>
128 #pragma GCC diagnostic push
129 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
130 template<
typename Scalar,
int Options>
136 template<
typename Scalar,
int Options,
typename MotionDerived>
141 #pragma GCC diagnostic pop
145 #endif // ifndef __pinocchio_motion_zero_hpp__