Browse Source

Math: avoid std::tie() in DualQuaternion sclerp..

It needs #include <tuple> and that's heavier than I'd like.
pull/331/head
Vladimír Vondruš 7 years ago
parent
commit
fd51ef662b
  1. 10
      src/Magnum/Math/DualQuaternion.h

10
src/Magnum/Math/DualQuaternion.h

@ -103,9 +103,8 @@ template<class T> inline DualQuaternion<T> sclerp(const DualQuaternion<T>& norma
const Dual<Vector3<T>> n{direction, moment};
/* q_ScLERP = q_A*(cos(t*a/2) + n*sin(t*a/2)) */
Dual<T> sin, cos;
std::tie(sin, cos) = Math::sincos(t*Dual<Rad<T>>(aHalf));
return normalizedA*DualQuaternion<T>{n*sin, cos};
const std::pair<Dual<T>, Dual<T>> sincos = Math::sincos(t*Dual<Rad<T>>(aHalf));
return normalizedA*DualQuaternion<T>{n*sincos.first, sincos.second};
}
/** @relatesalso DualQuaternion
@ -170,9 +169,8 @@ template<class T> inline DualQuaternion<T> sclerpShortestPath(const DualQuaterni
const Dual<Vector3<T>> n{direction, moment};
/* q_ScLERP = q_A*(cos(t*a/2) + n*sin(t*a/2)) */
Dual<T> sin, cos;
std::tie(sin, cos) = Math::sincos(t*Dual<Rad<T>>(aHalf));
return normalizedA*DualQuaternion<T>{n*sin, cos};
const std::pair<Dual<T>, Dual<T>> sincos = Math::sincos(t*Dual<Rad<T>>(aHalf));
return normalizedA*DualQuaternion<T>{n*sincos.first, sincos.second};
}
/**

Loading…
Cancel
Save