|
|
|
@ -13,8 +13,8 @@ namespace rotate_vector |
|
|
|
|
{ |
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec2<T> rotate( |
|
|
|
|
const detail::tvec2<T>& v, |
|
|
|
|
T angle) |
|
|
|
|
detail::tvec2<T> const & v, |
|
|
|
|
T const & angle) |
|
|
|
|
{ |
|
|
|
|
detail::tvec2<T> Result; |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
@ -26,14 +26,18 @@ namespace rotate_vector |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec3<T> rotate( |
|
|
|
|
const detail::tvec3<T>& v, T angle, |
|
|
|
|
const detail::tvec3<T>& normal) |
|
|
|
|
const detail::tvec3<T> & v, |
|
|
|
|
T const & angle, |
|
|
|
|
const detail::tvec3<T> & normal) |
|
|
|
|
{ |
|
|
|
|
return detail::tmat3x3<T>(transform::rotate(angle, normal)) * v; |
|
|
|
|
return detail::tmat3x3<T>(glm::gtx::transform::rotate(angle, normal)) * v; |
|
|
|
|
} |
|
|
|
|
/* |
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec3<T> rotateGTX(const detail::tvec3<T>& x, T angle, const detail::tvec3<T>& normal) |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec3<T> rotateGTX( |
|
|
|
|
const detail::tvec3<T>& x, |
|
|
|
|
T angle, |
|
|
|
|
const detail::tvec3<T>& normal) |
|
|
|
|
{ |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
|
const T Sin = sin(radians(angle)); |
|
|
|
@ -42,17 +46,17 @@ namespace rotate_vector |
|
|
|
|
*/ |
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec4<T> rotate( |
|
|
|
|
const detail::tvec4<T>& v, |
|
|
|
|
T angle, |
|
|
|
|
const detail::tvec3<T>& normal) |
|
|
|
|
detail::tvec4<T> const & v, |
|
|
|
|
T const & angle, |
|
|
|
|
detail::tvec3<T> const & normal) |
|
|
|
|
{ |
|
|
|
|
return transform::rotate(angle, normal) * v; |
|
|
|
|
return glm::gtx::transform::::rotate(angle, normal) * v; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec3<T> rotateX( |
|
|
|
|
const detail::tvec3<T>& v, |
|
|
|
|
T angle) |
|
|
|
|
detail::tvec3<T> const & v, |
|
|
|
|
T const & angle) |
|
|
|
|
{ |
|
|
|
|
detail::tvec3<T> Result = v; |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
@ -64,8 +68,8 @@ namespace rotate_vector |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec3<T> rotateY( |
|
|
|
|
const detail::tvec3<T>& v, |
|
|
|
|
T angle) |
|
|
|
|
detail::tvec3<T> const & v, |
|
|
|
|
T const & angle) |
|
|
|
|
{ |
|
|
|
|
detail::tvec3<T> Result = v; |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
@ -77,8 +81,8 @@ namespace rotate_vector |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec3<T> rotateZ( |
|
|
|
|
const detail::tvec3<T>& v, |
|
|
|
|
T angle) |
|
|
|
|
detail::tvec3<T> const & v, |
|
|
|
|
T const & angle) |
|
|
|
|
{ |
|
|
|
|
detail::tvec3<T> Result = v; |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
@ -90,8 +94,8 @@ namespace rotate_vector |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec4<T> rotateX( |
|
|
|
|
const detail::tvec4<T>& v, |
|
|
|
|
T angle) |
|
|
|
|
detail::tvec4<T> const & v, |
|
|
|
|
T const & angle) |
|
|
|
|
{ |
|
|
|
|
detail::tvec4<T> Result = v; |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
@ -103,8 +107,8 @@ namespace rotate_vector |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec4<T> rotateY( |
|
|
|
|
const detail::tvec4<T>& v, |
|
|
|
|
T angle) |
|
|
|
|
detail::tvec4<T> const & v, |
|
|
|
|
T const & angle) |
|
|
|
|
{ |
|
|
|
|
detail::tvec4<T> Result = v; |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
@ -116,8 +120,8 @@ namespace rotate_vector |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tvec4<T> rotateZ( |
|
|
|
|
const detail::tvec4<T>& v, |
|
|
|
|
T angle) |
|
|
|
|
detail::tvec4<T> const & v, |
|
|
|
|
T const & angle) |
|
|
|
|
{ |
|
|
|
|
detail::tvec4<T> Result = v; |
|
|
|
|
const T Cos = cos(radians(angle)); |
|
|
|
@ -129,8 +133,8 @@ namespace rotate_vector |
|
|
|
|
|
|
|
|
|
template <typename T> |
|
|
|
|
GLM_FUNC_QUALIFIER detail::tmat4x4<T> orientation( |
|
|
|
|
const detail::tvec3<T>& Normal, |
|
|
|
|
const detail::tvec3<T>& Up) |
|
|
|
|
detail::tvec3<T> const & Normal, |
|
|
|
|
detail::tvec3<T> const & Up) |
|
|
|
|
{ |
|
|
|
|
if(all(equal(Normal, Up))) |
|
|
|
|
return detail::tmat4x4<T>(T(1)); |
|
|
|
|