27 #ifndef _RL_MATH_PLUECKERTRANSFORM_HXX_
28 #define _RL_MATH_PLUECKERTRANSFORM_HXX_
36 template<
typename Scalar >
37 template<
typename OtherScalar >
39 ForceVector< OtherScalar >
44 res.
moment() = rotation() * (other.
moment() - translation().cross(other.
force()));
48 template<
typename Scalar >
49 template<
typename OtherScalar >
60 template<
typename Scalar >
61 template<
typename OtherScalar >
67 res.
cog() = rotation() * (other.
cog() - other.
mass() * translation());
68 res.
inertia() = rotation() * (other.
inertia() + translation().cross(other.
cog()).cross33() + (other.
cog() - other.
mass() * translation()).cross(translation()).
cross33()) * rotation().transpose();
73 template<
typename Scalar >
74 template<
typename OtherScalar >
80 res.
cog() = rotation() * (other.
cog() - translation().cross33() * other.
mass()) * rotation().transpose();
81 res.
inertia() = rotation() * (other.
inertia() - translation().cross33() * other.
cog().transpose() + (other.
cog() - translation().cross33() * other.
mass()) * translation().cross33()) * rotation().transpose();
82 res.
mass() = rotation() * other.
mass() * rotation().transpose();
86 template<
typename Scalar >
87 template<
typename OtherScalar >
93 res.
force() = rotation().transpose() * other.
force();
94 res.
moment() = rotation().transpose() * other.
moment() + translation().cross(rotation().transpose() * other.
force());
98 template<
typename Scalar >
99 template<
typename OtherScalar >
105 res.
linear() = rotation().transpose() * other.
linear() + translation().cross(rotation().transpose() * other.
angular());
110 template<
typename Scalar >
111 template<
typename OtherScalar >
117 res.
cog() = rotation().transpose() * other.
cog() + other.
mass() * translation();
118 res.
inertia() = rotation().transpose() * other.
inertia() * rotation() - translation().cross(rotation().transpose() * other.
cog()).cross33() - (rotation().transpose() * other.
cog() + other.
mass() * translation()).cross(translation()).
cross33();
123 template<
typename Scalar >
124 template<
typename OtherScalar >
132 res.
cog() = cog + translation().cross33() * mass;
133 res.
inertia() = rotation().transpose() * other.
inertia() * rotation() + translation().cross33() * cog.transpose() - (cog + translation().cross33() * mass) * translation().cross33();
141 #endif // _RL_MATH_PLUECKERTRANSFORM_HXX_