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