30 #ifndef _RL_MATH_MOTIONVECTOR_H_
31 #define _RL_MATH_MOTIONVECTOR_H_
43 template<
typename Scalar >
47 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
51 typedef typename ::Eigen::Matrix< Scalar, 6, 1 >
MatrixType;
67 template<
typename OtherDerived >
79 return data.template segment< 3 >(0);
84 return data.template segment< 3 >(0);
87 template<
typename OtherScalar >
93 res.angular() =
angular().cross(other.angular());
94 res.linear() =
angular().cross(other.linear()) +
linear().cross(other.angular());
98 template<
typename OtherScalar >
103 return data.template segment< 3 >(3);
108 return data.template segment< 3 >(3);
116 template<
typename OtherDerived >
126 res.angular() =
angular() + other.angular();
127 res.linear() =
linear() + other.linear();
134 res.angular() =
angular() - other.angular();
135 res.linear() =
linear() - other.linear();
139 template<
typename OtherScalar >
143 res.angular() =
angular() * other;
144 res.linear() =
linear() * other;
148 template<
typename OtherScalar >
152 res.angular() =
angular() / other;
153 res.linear() =
linear() / other;
172 #endif // _RL_MATH_MOTIONVECTOR_H_