|
|
@@ -40,7 +40,7 @@ namespace glm
|
|
|
detail::tquat<T> const & s2,
|
|
|
T const & h)
|
|
|
{
|
|
|
- return mix(mix(q1, q2, h), mix(s1, s2, h), T(2) * h (T(1) - h));
|
|
|
+ return mix(mix(q1, q2, h), mix(s1, s2, h), T(2) * (T(1) - h) * h);
|
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
|
@@ -52,20 +52,19 @@ namespace glm
|
|
|
)
|
|
|
{
|
|
|
detail::tquat<T> invQuat = inverse(curr);
|
|
|
- return ext((log(next + invQuat) + log(prev + invQuat)) / T(-4)) * curr;
|
|
|
+ return exp((log(next + invQuat) + log(prev + invQuat)) / T(-4)) * curr;
|
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
|
GLM_FUNC_QUALIFIER detail::tquat<T> exp
|
|
|
(
|
|
|
- detail::tquat<T> const & q,
|
|
|
- T const & exponent
|
|
|
+ detail::tquat<T> const & q
|
|
|
)
|
|
|
{
|
|
|
detail::tvec3<T> u(q.x, q.y, q.z);
|
|
|
- float a = glm::length(u);
|
|
|
- detail::tvec3<T> v(u / a);
|
|
|
- return detail::tquat<T>(cos(a), sin(a) * v);
|
|
|
+ float Angle = glm::length(u);
|
|
|
+ detail::tvec3<T> v(u / Angle);
|
|
|
+ return detail::tquat<T>(cos(Angle), sin(Angle) * v);
|
|
|
}
|
|
|
|
|
|
template <typename T>
|