30 #ifndef _RL_MATH_PLUECKERTRANSFORM_HXX_
31 #define _RL_MATH_PLUECKERTRANSFORM_HXX_
39 template<
typename Scalar >
40 template<
typename OtherScalar >
42 ForceVector< OtherScalar >
47 res.
moment() = rotation() * (other.
moment() - translation().cross(other.
force()));
51 template<
typename Scalar >
52 template<
typename OtherScalar >
63 template<
typename Scalar >
64 template<
typename OtherScalar >
70 res.
cog() = rotation() * (other.
cog() - other.
mass() * translation());
71 res.
inertia() = rotation() * (other.
inertia() + translation().cross(other.
cog()).
cross33() + (other.
cog() - other.
mass() * translation()).cross(translation()).
cross33()) * rotation().transpose();
76 template<
typename Scalar >
77 template<
typename OtherScalar >
83 res.
cog() = rotation() * (other.
cog() - translation().cross33() * other.
mass()) * rotation().transpose();
84 res.
inertia() = rotation() * (other.
inertia() - translation().cross33() * other.
cog().transpose() + (other.
cog() - translation().cross33() * other.
mass()) * translation().cross33()) * rotation().transpose();
85 res.
mass() = rotation() * other.
mass() * rotation().transpose();
89 template<
typename Scalar >
90 template<
typename OtherScalar >
96 res.
force() = rotation().transpose() * other.
force();
97 res.
moment() = rotation().transpose() * other.
moment() + translation().cross(rotation().transpose() * other.
force());
101 template<
typename Scalar >
102 template<
typename OtherScalar >
108 res.
linear() = rotation().transpose() * other.
linear() + translation().cross(rotation().transpose() * other.
angular());
113 template<
typename Scalar >
114 template<
typename OtherScalar >
120 res.
cog() = rotation().transpose() * other.
cog() + other.
mass() * translation();
121 res.
inertia() = rotation().transpose() * other.
inertia() * rotation() - translation().cross(rotation().transpose() * other.
cog()).
cross33() - (rotation().transpose() * other.
cog() + other.
mass() * translation()).cross(translation()).
cross33();
126 template<
typename Scalar >
127 template<
typename OtherScalar >
135 res.
cog() = cog + translation().cross33() * mass;
136 res.
inertia() = rotation().transpose() * other.
inertia() * rotation() + translation().cross33() * cog.transpose() - (cog + translation().cross33() * mass) * translation().cross33();
144 #endif // _RL_MATH_PLUECKERTRANSFORM_HXX_