rotate_vector.hpp
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 #ifndef GLM_GTX_rotate_vector
40 #define GLM_GTX_rotate_vector GLM_VERSION
41 
42 // Dependency:
43 #include "../glm.hpp"
44 #include "../gtx/transform.hpp"
45 
46 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
47 # pragma message("GLM: GLM_GTX_rotate_vector extension included")
48 #endif
49 
50 namespace glm
51 {
54 
57  template <typename T>
58  detail::tvec2<T> rotate(
59  detail::tvec2<T> const & v,
60  T const & angle);
61 
64  template <typename T>
65  detail::tvec3<T> rotate(
66  detail::tvec3<T> const & v,
67  T const & angle,
68  detail::tvec3<T> const & normal);
69 
72  template <typename T>
73  detail::tvec4<T> rotate(
74  detail::tvec4<T> const & v,
75  T const & angle,
76  detail::tvec3<T> const & normal);
77 
80  template <typename T>
81  detail::tvec3<T> rotateX(
82  detail::tvec3<T> const & v,
83  T const & angle);
84 
87  template <typename T>
88  detail::tvec3<T> rotateY(
89  detail::tvec3<T> const & v,
90  T const & angle);
91 
94  template <typename T>
95  detail::tvec3<T> rotateZ(
96  detail::tvec3<T> const & v,
97  T const & angle);
98 
101  template <typename T>
102  detail::tvec4<T> rotateX(
103  detail::tvec4<T> const & v,
104  T const & angle);
105 
108  template <typename T>
109  detail::tvec4<T> rotateY(
110  detail::tvec4<T> const & v,
111  T const & angle);
112 
115  template <typename T>
116  detail::tvec4<T> rotateZ(
117  detail::tvec4<T> const & v,
118  T const & angle);
119 
122  template <typename T>
123  detail::tmat4x4<T> orientation(
124  detail::tvec3<T> const & Normal,
125  detail::tvec3<T> const & Up);
126 
128 }//namespace glm
129 
130 #include "rotate_vector.inl"
131 
132 #endif//GLM_GTX_rotate_vector