3 template<
typename T, qualifier Q>
6 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'mix' only accept floating-point inputs");
8 T
const cosTheta = dot(x, y);
11 if(cosTheta >
static_cast<T
>(1) - epsilon<T>())
28 template<
typename T, qualifier Q>
31 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'lerp' only accept floating-point inputs");
34 assert(a >=
static_cast<T
>(0));
35 assert(a <=
static_cast<T
>(1));
37 return x * (
static_cast<T
>(1) - a) + (y * a);
40 template<
typename T, qualifier Q>
43 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'slerp' only accept floating-point inputs");
47 T cosTheta = dot(x, y);
51 if(cosTheta <
static_cast<T
>(0))
58 if(cosTheta >
static_cast<T
>(1) - epsilon<T>())
75 template<
typename T,
typename S, qualifier Q>
78 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'slerp' only accept floating-point inputs");
79 GLM_STATIC_ASSERT(std::numeric_limits<S>::is_integer,
"'slerp' only accept integer for spin count");
83 T cosTheta = dot(x, y);
87 if (cosTheta <
static_cast<T
>(0))
94 if (cosTheta >
static_cast<T
>(1) - epsilon<T>())
107 T phi =
angle + k * glm::pi<T>();
112 template<
typename T, qualifier Q>
118 template<
typename T, qualifier Q>
124 template<
typename T, qualifier Q>
127 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'isnan' only accept floating-point inputs");
132 template<
typename T, qualifier Q>
135 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'isinf' only accept floating-point inputs");
141#if GLM_CONFIG_SIMD == GLM_ENABLE
142# include "quaternion_common_simd.inl"
GLM_FUNC_DECL vec< L, bool, Q > isinf(vec< L, T, Q > const &x)
Definition func_common.inl:655
GLM_FUNC_DECL vec< L, bool, Q > isnan(vec< L, T, Q > const &x)
Definition func_common.inl:613
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
Definition func_common.inl:526
GLM_FUNC_QUALIFIER mat< C, R, T, Q > inverse(mat< C, R, T, Q > const &m)
Definition func_matrix.inl:388
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 > acos(vec< L, T, Q > const &v)
Definition func_trigonometric.inl:77
GLM_FUNC_DECL qua< T, Q > conjugate(qua< T, Q > const &q)
Definition quaternion_common.inl:113
GLM_FUNC_DECL qua< T, Q > slerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Definition quaternion_common.inl:41
GLM_FUNC_DECL qua< T, Q > lerp(qua< T, Q > const &x, qua< T, Q > const &y, T a)
Definition quaternion_common.inl:29
GLM_FUNC_DECL T angle(qua< T, Q > const &x)
Definition quaternion_trigonometric.inl:6
Core features
Definition common.hpp:21
Definition type_quat.hpp:20
Definition qualifier.hpp:35