|
|
|
@ -64,7 +64,7 @@ namespace detail |
|
|
|
|
GLM_FUNC_DECL GLM_CONSTEXPR int length() const; |
|
|
|
|
|
|
|
|
|
// Constructors
|
|
|
|
|
tquat(); |
|
|
|
|
GLM_FUNC_DECL tquat(); |
|
|
|
|
template <typename U, precision Q> |
|
|
|
|
GLM_FUNC_DECL explicit tquat( |
|
|
|
|
tquat<U, Q> const & q); |
|
|
|
@ -111,51 +111,51 @@ namespace detail |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> operator- ( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> operator- ( |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> operator+ ( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> operator+ ( |
|
|
|
|
detail::tquat<T, P> const & q, |
|
|
|
|
detail::tquat<T, P> const & p); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> operator* ( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> operator* ( |
|
|
|
|
detail::tquat<T, P> const & q, |
|
|
|
|
detail::tquat<T, P> const & p); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tvec3<T, P> operator* ( |
|
|
|
|
GLM_FUNC_DECL detail::tvec3<T, P> operator* ( |
|
|
|
|
detail::tquat<T, P> const & q, |
|
|
|
|
detail::tvec3<T, P> const & v); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tvec3<T, P> operator* ( |
|
|
|
|
GLM_FUNC_DECL detail::tvec3<T, P> operator* ( |
|
|
|
|
detail::tvec3<T, P> const & v, |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tvec4<T, P> operator* ( |
|
|
|
|
GLM_FUNC_DECL detail::tvec4<T, P> operator* ( |
|
|
|
|
detail::tquat<T, P> const & q,
|
|
|
|
|
detail::tvec4<T, P> const & v); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tvec4<T, P> operator* ( |
|
|
|
|
GLM_FUNC_DECL detail::tvec4<T, P> operator* ( |
|
|
|
|
detail::tvec4<T, P> const & v, |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> operator* ( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> operator* ( |
|
|
|
|
detail::tquat<T, P> const & q, |
|
|
|
|
T const & s); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> operator* ( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> operator* ( |
|
|
|
|
T const & s, |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> operator/ ( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> operator/ ( |
|
|
|
|
detail::tquat<T, P> const & q, |
|
|
|
|
T const & s); |
|
|
|
|
|
|
|
|
@ -168,21 +168,21 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
T length( |
|
|
|
|
GLM_FUNC_DECL T length( |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
/// Returns the normalized quaternion.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> normalize( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> normalize( |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
/// Returns dot product of q1 and q2, i.e., q1[0] * q2[0] + q1[1] * q2[1] + ...
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
T dot( |
|
|
|
|
GLM_FUNC_DECL T dot( |
|
|
|
|
detail::tquat<T, P> const & q1, |
|
|
|
|
detail::tquat<T, P> const & q2); |
|
|
|
|
|
|
|
|
@ -197,7 +197,7 @@ namespace detail |
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
/// @see - slerp(detail::tquat<T, P> const & x, detail::tquat<T, P> const & y, T const & a)
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> mix( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> mix( |
|
|
|
|
detail::tquat<T, P> const & x, |
|
|
|
|
detail::tquat<T, P> const & y, |
|
|
|
|
T const & a); |
|
|
|
@ -211,7 +211,7 @@ namespace detail |
|
|
|
|
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> lerp( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> lerp( |
|
|
|
|
detail::tquat<T, P> const & x, |
|
|
|
|
detail::tquat<T, P> const & y, |
|
|
|
|
T const & a); |
|
|
|
@ -225,7 +225,7 @@ namespace detail |
|
|
|
|
/// @tparam T Value type used to build the quaternion. Supported: half, float or double.
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> slerp( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> slerp( |
|
|
|
|
detail::tquat<T, P> const & x, |
|
|
|
|
detail::tquat<T, P> const & y, |
|
|
|
|
T const & a); |
|
|
|
@ -234,14 +234,14 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> conjugate( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> conjugate( |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
/// Returns the q inverse.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> inverse( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> inverse( |
|
|
|
|
detail::tquat<T, P> const & q); |
|
|
|
|
|
|
|
|
|
/// Rotates a quaternion from a vector of 3 components axis and an angle.
|
|
|
|
@ -252,7 +252,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> rotate( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> rotate( |
|
|
|
|
detail::tquat<T, P> const & q, |
|
|
|
|
T const & angle, |
|
|
|
|
detail::tvec3<T, P> const & axis); |
|
|
|
@ -261,66 +261,66 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tvec3<T, P> eulerAngles( |
|
|
|
|
GLM_FUNC_DECL detail::tvec3<T, P> eulerAngles( |
|
|
|
|
detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Returns roll value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtx_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
T roll(detail::tquat<T, P> const & x); |
|
|
|
|
GLM_FUNC_DECL T roll(detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Returns pitch value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtx_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
T pitch(detail::tquat<T, P> const & x); |
|
|
|
|
GLM_FUNC_DECL T pitch(detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Returns yaw value of euler angles expressed in radians if GLM_FORCE_RADIANS is define or degrees otherwise.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtx_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
T yaw(detail::tquat<T, P> const & x); |
|
|
|
|
GLM_FUNC_DECL T yaw(detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Converts a quaternion to a 3 * 3 matrix.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tmat3x3<T, P> mat3_cast( |
|
|
|
|
GLM_FUNC_DECL detail::tmat3x3<T, P> mat3_cast( |
|
|
|
|
detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Converts a quaternion to a 4 * 4 matrix.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tmat4x4<T, P> mat4_cast( |
|
|
|
|
GLM_FUNC_DECL detail::tmat4x4<T, P> mat4_cast( |
|
|
|
|
detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Converts a 3 * 3 matrix to a quaternion.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> quat_cast( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> quat_cast( |
|
|
|
|
detail::tmat3x3<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Converts a 4 * 4 matrix to a quaternion.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> quat_cast( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> quat_cast( |
|
|
|
|
detail::tmat4x4<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Returns the quaternion rotation angle.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
T angle(detail::tquat<T, P> const & x); |
|
|
|
|
GLM_FUNC_DECL T angle(detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Returns the q rotation axis.
|
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tvec3<T, P> axis( |
|
|
|
|
GLM_FUNC_DECL detail::tvec3<T, P> axis( |
|
|
|
|
detail::tquat<T, P> const & x); |
|
|
|
|
|
|
|
|
|
/// Build a quaternion from an angle and a normalized axis.
|
|
|
|
@ -330,7 +330,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename T, precision P> |
|
|
|
|
detail::tquat<T, P> angleAxis( |
|
|
|
|
GLM_FUNC_DECL detail::tquat<T, P> angleAxis( |
|
|
|
|
T const & angle, |
|
|
|
|
detail::tvec3<T, P> const & axis); |
|
|
|
|
|
|
|
|
@ -340,7 +340,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename quatType> |
|
|
|
|
typename quatType::bool_type lessThan(quatType const & x, quatType const & y); |
|
|
|
|
GLM_FUNC_DECL typename quatType::bool_type lessThan(quatType const & x, quatType const & y); |
|
|
|
|
|
|
|
|
|
/// Returns the component-wise comparison of result x <= y.
|
|
|
|
|
///
|
|
|
|
@ -348,7 +348,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename quatType> |
|
|
|
|
typename quatType::bool_type lessThanEqual(quatType const & x, quatType const & y); |
|
|
|
|
GLM_FUNC_DECL typename quatType::bool_type lessThanEqual(quatType const & x, quatType const & y); |
|
|
|
|
|
|
|
|
|
/// Returns the component-wise comparison of result x > y.
|
|
|
|
|
///
|
|
|
|
@ -356,7 +356,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename quatType> |
|
|
|
|
typename quatType::bool_type greaterThan(quatType const & x, quatType const & y); |
|
|
|
|
GLM_FUNC_DECL typename quatType::bool_type greaterThan(quatType const & x, quatType const & y); |
|
|
|
|
|
|
|
|
|
/// Returns the component-wise comparison of result x >= y.
|
|
|
|
|
///
|
|
|
|
@ -364,7 +364,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename quatType> |
|
|
|
|
typename quatType::bool_type greaterThanEqual(quatType const & x, quatType const & y); |
|
|
|
|
GLM_FUNC_DECL typename quatType::bool_type greaterThanEqual(quatType const & x, quatType const & y); |
|
|
|
|
|
|
|
|
|
/// Returns the component-wise comparison of result x == y.
|
|
|
|
|
///
|
|
|
|
@ -372,7 +372,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename quatType> |
|
|
|
|
typename quatType::bool_type equal(quatType const & x, quatType const & y); |
|
|
|
|
GLM_FUNC_DECL typename quatType::bool_type equal(quatType const & x, quatType const & y); |
|
|
|
|
|
|
|
|
|
/// Returns the component-wise comparison of result x != y.
|
|
|
|
|
///
|
|
|
|
@ -380,7 +380,7 @@ namespace detail |
|
|
|
|
///
|
|
|
|
|
/// @see gtc_quaternion
|
|
|
|
|
template <typename quatType> |
|
|
|
|
typename quatType::bool_type notEqual(quatType const & x, quatType const & y); |
|
|
|
|
GLM_FUNC_DECL typename quatType::bool_type notEqual(quatType const & x, quatType const & y); |
|
|
|
|
|
|
|
|
|
/// @}
|
|
|
|
|
} //namespace glm
|
|
|
|
|