matrix_transform.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 
40 
41 
42 
43 
44 
45 
46 #ifndef GLM_GTC_matrix_transform
47 #define GLM_GTC_matrix_transform GLM_VERSION
48 
49 // Dependency:
50 #include "../glm.hpp"
51 
52 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
53 # pragma message("GLM: GLM_GTC_matrix_transform extension included")
54 #endif
55 
56 namespace glm
57 {
60 
81  template <typename T>
82  detail::tmat4x4<T> translate(
83  detail::tmat4x4<T> const & m,
84  detail::tvec3<T> const & v);
85 
97  template <typename T>
98  detail::tmat4x4<T> rotate(
99  detail::tmat4x4<T> const & m,
100  T const & angle,
101  detail::tvec3<T> const & axis);
102 
113  template <typename T>
114  detail::tmat4x4<T> scale(
115  detail::tmat4x4<T> const & m,
116  detail::tvec3<T> const & v);
117 
129  template <typename T>
130  detail::tmat4x4<T> ortho(
131  T const & left,
132  T const & right,
133  T const & bottom,
134  T const & top,
135  T const & zNear,
136  T const & zFar);
137 
147  template <typename T>
148  detail::tmat4x4<T> ortho(
149  T const & left,
150  T const & right,
151  T const & bottom,
152  T const & top);
153 
164  template <typename T>
165  detail::tmat4x4<T> frustum(
166  T const & left,
167  T const & right,
168  T const & bottom,
169  T const & top,
170  T const & near,
171  T const & far);
172 
181  template <typename T>
182  detail::tmat4x4<T> perspective(
183  T const & fovy,
184  T const & aspect,
185  T const & near,
186  T const & far);
187 
197  template <typename valType>
198  detail::tmat4x4<valType> perspectiveFov(
199  valType const & fov,
200  valType const & width,
201  valType const & height,
202  valType const & near,
203  valType const & far);
204 
212  template <typename T>
213  detail::tmat4x4<T> infinitePerspective(
214  T fovy, T aspect, T near);
215 
223  template <typename T>
224  detail::tmat4x4<T> tweakedInfinitePerspective(
225  T fovy, T aspect, T near);
226 
236  template <typename T, typename U>
237  detail::tvec3<T> project(
238  detail::tvec3<T> const & obj,
239  detail::tmat4x4<T> const & model,
240  detail::tmat4x4<T> const & proj,
241  detail::tvec4<U> const & viewport);
242 
252  template <typename T, typename U>
253  detail::tvec3<T> unProject(
254  detail::tvec3<T> const & win,
255  detail::tmat4x4<T> const & model,
256  detail::tmat4x4<T> const & proj,
257  detail::tvec4<U> const & viewport);
258 
267  template <typename T, typename U>
268  detail::tmat4x4<T> pickMatrix(
269  detail::tvec2<T> const & center,
270  detail::tvec2<T> const & delta,
271  detail::tvec4<U> const & viewport);
272 
280  template <typename T>
281  detail::tmat4x4<T> lookAt(
282  detail::tvec3<T> const & eye,
283  detail::tvec3<T> const & center,
284  detail::tvec3<T> const & up);
285 
287 }//namespace glm
288 
289 #include "matrix_transform.inl"
290 
291 #endif//GLM_GTC_matrix_transform