FlukyEngine
Functions
GLM_EXT_quaternion_common

Provides common functions for quaternion types. More...

Collaboration diagram for GLM_EXT_quaternion_common:

Functions

template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > glm::mix (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > glm::lerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Linear interpolation of two quaternions. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > glm::slerp (qua< T, Q > const &x, qua< T, Q > const &y, T a)
 Spherical linear interpolation of two quaternions. More...
 
template<typename T , typename S , qualifier Q>
GLM_FUNC_DECL qua< T, Q > glm::slerp (qua< T, Q > const &x, qua< T, Q > const &y, T a, S k)
 Spherical linear interpolation of two quaternions with multiple spins over rotation axis. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > glm::conjugate (qua< T, Q > const &q)
 Returns the q conjugate. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL qua< T, Q > glm::inverse (qua< T, Q > const &q)
 Returns the q inverse. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > glm::isnan (qua< T, Q > const &x)
 Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. More...
 
template<typename T , qualifier Q>
GLM_FUNC_DECL vec< 4, bool, Q > glm::isinf (qua< T, Q > const &x)
 Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. More...
 

Detailed Description

Provides common functions for quaternion types.

Include <glm/ext/quaternion_common.hpp> to use the features of this extension.

See also
GLM_EXT_scalar_common
GLM_EXT_vector_common
GLM_EXT_quaternion_float
GLM_EXT_quaternion_double
GLM_EXT_quaternion_exponential
GLM_EXT_quaternion_geometric
GLM_EXT_quaternion_relational
GLM_EXT_quaternion_trigonometric
GLM_EXT_quaternion_transform

Function Documentation

◆ conjugate()

template<typename T , qualifier Q>
GLM_FUNC_DECL qua<T, Q> glm::conjugate ( qua< T, Q > const &  q)

Returns the q conjugate.

Template Parameters
TA floating-point scalar type
QA value from qualifier enum

◆ inverse()

template<typename T , qualifier Q>
GLM_FUNC_DECL qua<T, Q> glm::inverse ( qua< T, Q > const &  q)

Returns the q inverse.

Template Parameters
TA floating-point scalar type
QA value from qualifier enum

◆ isinf()

template<typename T , qualifier Q>
GLM_FUNC_DECL vec<4, bool, Q> glm::isinf ( qua< T, Q > const &  x)

Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations.

Returns false otherwise, including for implementations with no infinity representations.

Template Parameters
TA floating-point scalar type
QA value from qualifier enum

◆ isnan()

template<typename T , qualifier Q>
GLM_FUNC_DECL vec<4, bool, Q> glm::isnan ( qua< T, Q > const &  x)

Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations.

Returns false otherwise, including for implementations with no NaN representations.

/!\ When using compiler fast math, this function may fail.

Template Parameters
TA floating-point scalar type
QA value from qualifier enum

◆ lerp()

template<typename T , qualifier Q>
GLM_FUNC_DECL qua<T, Q> glm::lerp ( qua< T, Q > const &  x,
qua< T, Q > const &  y,
a 
)

Linear interpolation of two quaternions.

The interpolation is oriented.

Parameters
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined in the range [0, 1].
Template Parameters
TA floating-point scalar type
QA value from qualifier enum

◆ mix()

template<typename T , qualifier Q>
GLM_FUNC_DECL qua<T, Q> glm::mix ( qua< T, Q > const &  x,
qua< T, Q > const &  y,
a 
)

Spherical linear interpolation of two quaternions.

The interpolation is oriented and the rotation is performed at constant speed. For short path spherical linear interpolation, use the slerp function.

Parameters
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
Template Parameters
TA floating-point scalar type
QA value from qualifier enum
See also
- slerp(qua<T, Q> const& x, qua<T, Q> const& y, T const& a)

◆ slerp() [1/2]

template<typename T , qualifier Q>
GLM_FUNC_DECL qua<T, Q> glm::slerp ( qua< T, Q > const &  x,
qua< T, Q > const &  y,
a 
)

Spherical linear interpolation of two quaternions.

The interpolation always take the short path and the rotation is performed at constant speed.

Parameters
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
Template Parameters
TA floating-point scalar type
QA value from qualifier enum

◆ slerp() [2/2]

template<typename T , typename S , qualifier Q>
GLM_FUNC_DECL qua<T, Q> glm::slerp ( qua< T, Q > const &  x,
qua< T, Q > const &  y,
a,
k 
)

Spherical linear interpolation of two quaternions with multiple spins over rotation axis.

The interpolation always take the short path when the spin count is positive and long path when count is negative. Rotation is performed at constant speed.

Parameters
xA quaternion
yA quaternion
aInterpolation factor. The interpolation is defined beyond the range [0, 1].
kAdditional spin count. If Value is negative interpolation will be on "long" path.
Template Parameters
TA floating-point scalar type
SAn integer scalar type
QA value from qualifier enum