3 template<
typename T, qualifier Q>
6 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'dot' accepts only floating-point inputs");
10 template<
typename T, qualifier Q>
16 template<
typename T, qualifier Q>
20 if(len <=
static_cast<T
>(0))
21 return qua<T, Q>(
static_cast<T
>(1),
static_cast<T
>(0),
static_cast<T
>(0),
static_cast<T
>(0));
22 T oneOverLen =
static_cast<T
>(1) / len;
23 return qua<T, Q>(q.w * oneOverLen, q.x * oneOverLen, q.y * oneOverLen, q.z * oneOverLen);
26 template<
typename T, qualifier Q>
30 q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z,
31 q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,
32 q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z,
33 q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x);
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 > normalize(vec< L, T, Q > const &x)
Definition func_geometric.inl:190
GLM_FUNC_QUALIFIER vec< 3, T, Q > cross(vec< 3, T, Q > const &x, vec< 3, T, Q > const &y)
Definition func_geometric.inl:175
Core features
Definition common.hpp:21
Definition func_geometric.inl:26
Definition qualifier.hpp:60
Definition type_quat.hpp:20