|
|
@ -31,6 +31,12 @@ |
|
|
|
namespace glm{ |
|
|
|
namespace glm{ |
|
|
|
namespace detail |
|
|
|
namespace detail |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER typename tquat<T>::size_type tquat<T>::length() const |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return 4; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
template <typename T> |
|
|
|
GLM_FUNC_QUALIFIER tquat<T>::tquat() : |
|
|
|
GLM_FUNC_QUALIFIER tquat<T>::tquat() : |
|
|
|
x(0), |
|
|
|
x(0), |
|
|
@ -494,6 +500,15 @@ namespace detail |
|
|
|
//return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin)); |
|
|
|
//return gtc::quaternion::cross(q, detail::tquat<T>(cos(AngleRad * T(0.5)), Tmp.x * fSin, Tmp.y * fSin, Tmp.z * fSin)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec3<T> eulerAngles |
|
|
|
|
|
|
|
( |
|
|
|
|
|
|
|
detail::tquat<T> const & x |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return detail::tvec3<T>(pitch(x), yaw(x), roll(x)); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
template <typename T> |
|
|
|
GLM_FUNC_QUALIFIER detail::tmat3x3<T> mat3_cast |
|
|
|
GLM_FUNC_QUALIFIER detail::tmat3x3<T> mat3_cast |
|
|
|
( |
|
|
|
( |
|
|
|