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 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00021 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
00022 #endif
00023
00024 namespace glm{
00025 namespace gtx{
00026 namespace rotate_vector
00027 {
00028 using namespace transform;
00029
00032
00035 template <typename T>
00036 detail::tvec2<T> rotate(
00037 detail::tvec2<T> const & v,
00038 T const & angle);
00039
00042 template <typename T>
00043 detail::tvec3<T> rotate(
00044 detail::tvec3<T> const & v,
00045 T const & angle,
00046 detail::tvec3<T> const & normal);
00047
00050 template <typename T>
00051 detail::tvec4<T> rotate(
00052 detail::tvec4<T> const & v,
00053 T const & angle,
00054 detail::tvec3<T> const & normal);
00055
00058 template <typename T>
00059 detail::tvec3<T> rotateX(
00060 detail::tvec3<T> const & v,
00061 T const & angle);
00062
00065 template <typename T>
00066 detail::tvec3<T> rotateY(
00067 detail::tvec3<T> const & v,
00068 T const & angle);
00069
00072 template <typename T>
00073 detail::tvec3<T> rotateZ(
00074 detail::tvec3<T> const & v,
00075 T const & angle);
00076
00079 template <typename T>
00080 detail::tvec4<T> rotateX(
00081 detail::tvec4<T> const & v,
00082 T const & angle);
00083
00086 template <typename T>
00087 detail::tvec4<T> rotateY(
00088 detail::tvec4<T> const & v,
00089 T const & angle);
00090
00093 template <typename T>
00094 detail::tvec4<T> rotateZ(
00095 detail::tvec4<T> const & v,
00096 T const & angle);
00097
00100 template <typename T>
00101 detail::tmat4x4<T> orientation(
00102 detail::tvec3<T> const & Normal,
00103 detail::tvec3<T> const & Up);
00104
00106 }
00107 }
00108 }
00109
00110 #include "rotate_vector.inl"
00111
00112 namespace glm{using namespace gtx::rotate_vector;}
00113
00114 #endif//glm_gtx_rotate_vector