5 template<
typename T, qualifier Q>
8 if (abs(x.w) > cos_one_over_two<T>())
10 return asin(
sqrt(x.x * x.x + x.y * x.y + x.z * x.z)) *
static_cast<T
>(2);
13 return acos(x.w) *
static_cast<T
>(2);
16 template<
typename T, qualifier Q>
19 T
const tmp1 =
static_cast<T
>(1) - x.w * x.w;
20 if(tmp1 <=
static_cast<T
>(0))
22 T
const tmp2 =
static_cast<T
>(1) /
sqrt(tmp1);
26 template<
typename T, qualifier Q>
30 T
const s =
glm::sin(a *
static_cast<T
>(0.5));
GLM_FUNC_QUALIFIER vec< L, T, Q > sqrt(vec< L, T, Q > const &x)
Definition func_exponential.inl:128
GLM_FUNC_QUALIFIER vec< L, T, Q > sin(vec< L, T, Q > const &v)
Definition func_trigonometric.inl:41
GLM_FUNC_QUALIFIER vec< L, T, Q > cos(vec< L, T, Q > const &v)
Definition func_trigonometric.inl:50
GLM_FUNC_QUALIFIER vec< L, T, Q > asin(vec< L, T, Q > const &v)
Definition func_trigonometric.inl:68
GLM_FUNC_QUALIFIER vec< L, T, Q > acos(vec< L, T, Q > const &v)
Definition func_trigonometric.inl:77
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Definition quaternion_trigonometric.inl:6
GLM_FUNC_DECL qua< T, Q > angleAxis(T const &angle, vec< 3, T, Q > const &axis)
Definition quaternion_trigonometric.inl:27
Core features
Definition common.hpp:21
Definition type_quat.hpp:20
Definition qualifier.hpp:35