SwingTwist::AngleAxis using Direction

This commit is contained in:
Pascal Serrarens 2024-09-26 12:29:04 +02:00
parent 06da9e5b80
commit 9406b57558
2 changed files with 4 additions and 6 deletions

View File

@ -105,17 +105,15 @@ SwingTwistOf<T> SwingTwistOf<T>::operator*=(const SwingTwistOf<T>& rotation) {
} }
template <typename T> template <typename T>
SwingTwistOf<T> Passer::LinearAlgebra::SwingTwistOf<T>::Inverse( SwingTwistOf<T> SwingTwistOf<T>::Inverse(SwingTwistOf<T> rotation) {
SwingTwistOf<T> rotation) {
SwingTwistOf<T> r = SwingTwistOf<T>( SwingTwistOf<T> r = SwingTwistOf<T>(
-rotation.swing.horizontal, -rotation.swing.vertical, -rotation.twist); -rotation.swing.horizontal, -rotation.swing.vertical, -rotation.twist);
return r; return r;
} }
template <typename T> template <typename T>
SwingTwistOf<T> Passer::LinearAlgebra::SwingTwistOf<T>::AngleAxis( SwingTwistOf<T> SwingTwistOf<T>::AngleAxis(float angle,
float angle, const DirectionOf<T>& axis) {
const SphericalOf<T>& axis) {
Vector3 axis_vector = axis.ToVector3(); Vector3 axis_vector = axis.ToVector3();
Quaternion q = Quaternion::AngleAxis(angle, axis_vector); Quaternion q = Quaternion::AngleAxis(angle, axis_vector);
SwingTwistOf<T> r = SwingTwistOf<T>::FromQuaternion(q); SwingTwistOf<T> r = SwingTwistOf<T>::FromQuaternion(q);

View File

@ -58,7 +58,7 @@ class SwingTwistOf {
/// <param name="angle">The angle</param> /// <param name="angle">The angle</param>
/// <param name="axis">The axis</param> /// <param name="axis">The axis</param>
/// <returns>The resulting quaternion</returns> /// <returns>The resulting quaternion</returns>
static SwingTwistOf<T> AngleAxis(float angle, const SphericalOf<T>& axis); static SwingTwistOf<T> AngleAxis(float angle, const DirectionOf<T>& axis);
}; };
using SwingTwistSingle = SwingTwistOf<float>; using SwingTwistSingle = SwingTwistOf<float>;