00001
00002
00004
00005
00006
00007
00009
00010
00012
00013 #ifndef glm_gtx_rotate_vector
00014 #define glm_gtx_rotate_vector
00015
00016
00017 #include "../glm.hpp"
00018 #include "../gtx/transform.hpp"
00019
00020 namespace glm
00021 {
00022 namespace gtx{
00024 namespace rotate_vector
00025 {
00026 using namespace transform;
00027
00030 template <typename T>
00031 detail::tvec2<T> rotate(
00032 const detail::tvec2<T>& v,
00033 T angle);
00034
00037 template <typename T>
00038 detail::tvec3<T> rotate(
00039 const detail::tvec3<T>& v,
00040 T angle,
00041 const detail::tvec3<T>& normal);
00042
00045 template <typename T>
00046 detail::tvec4<T> rotate(
00047 const detail::tvec4<T>& v, T angle,
00048 const detail::tvec3<T>& normal);
00049
00052 template <typename T>
00053 detail::tvec3<T> rotateX(
00054 const detail::tvec3<T>& v,
00055 T angle);
00056
00059 template <typename T>
00060 detail::tvec3<T> rotateY(
00061 const detail::tvec3<T>& v,
00062 T angle);
00063
00066 template <typename T>
00067 detail::tvec3<T> rotateZ(
00068 const detail::tvec3<T>& v,
00069 T angle);
00070
00073 template <typename T>
00074 detail::tvec4<T> rotateX(
00075 const detail::tvec4<T>& v,
00076 T angle);
00077
00080 template <typename T>
00081 detail::tvec4<T> rotateY(
00082 const detail::tvec4<T>& v,
00083 T angle);
00084
00087 template <typename T>
00088 detail::tvec4<T> rotateZ(
00089 const detail::tvec4<T>& v,
00090 T angle);
00091
00094 template <typename T>
00095 detail::tmat4x4<T> orientation(
00096 const detail::tvec3<T>& Normal,
00097 const detail::tvec3<T>& Up);
00098
00099 }
00100 }
00101 }
00102
00103 #define GLM_GTX_rotate_vector namespace gtx::rotate_vector
00104 #ifndef GLM_GTX_GLOBAL
00105 namespace glm {using GLM_GTX_rotate_vector;}
00106 #endif//GLM_GTX_GLOBAL
00107
00108 #include "rotate_vector.inl"
00109
00110 #endif//glm_gtx_rotate_vector