PSMoveService
matrix_transform.hpp
Go to the documentation of this file.
1 
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
detail::tmat4x4< T > scale(detail::tmat4x4< T > const &m, detail::tvec3< T > const &v)
Builds a scale 4 * 4 matrix created from 3 scalars.
Definition: matrix_transform.inl:82
detail::tmat4x4< T > rotate(detail::tmat4x4< T > const &m, T const &angle, detail::tvec3< T > const &axis)
Builds a rotation 4 * 4 matrix created from an axis vector and an angle expressed in degrees...
Definition: matrix_transform.inl:45
OpenGL Mathematics (glm.g-truc.net)
Definition: _detail.hpp:38
detail::tmat4x4< T > frustum(T const &left, T const &right, T const &bottom, T const &top, T const &near, T const &far)
Creates a frustum matrix.
detail::tmat4x4< T > perspective(T const &fovy, T const &aspect, T const &near, T const &far)
Creates a matrix for a symetric perspective-view frustum.
detail::tvec3< T > unProject(detail::tvec3< T > const &win, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > const &viewport)
Map the specified window coordinates (win.x, win.y, win.z) into object coordinates.
Definition: matrix_transform.inl:338
detail::tmat4x4< T > translate(detail::tmat4x4< T > const &m, detail::tvec3< T > const &v)
Builds a translation 4 * 4 matrix created from a vector of 3 components.
Definition: matrix_transform.inl:33
detail::tmat4x4< T > infinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite.
Definition: matrix_transform.inl:271
detail::tvec3< T > project(detail::tvec3< T > const &obj, detail::tmat4x4< T > const &model, detail::tmat4x4< T > const &proj, detail::tvec4< U > const &viewport)
Map the specified object coordinates (obj.x, obj.y, obj.z) into window coordinates.
Definition: matrix_transform.inl:317
detail::tmat4x4< T > pickMatrix(detail::tvec2< T > const &center, detail::tvec2< T > const &delta, detail::tvec4< U > const &viewport)
Define a picking region.
Definition: matrix_transform.inl:360
detail::tmat4x4< T > lookAt(detail::tvec3< T > const &eye, detail::tvec3< T > const &center, detail::tvec3< T > const &up)
Build a look at view matrix.
Definition: matrix_transform.inl:384
detail::tmat4x4< valType > perspectiveFov(valType const &fov, valType const &width, valType const &height, valType const &near, valType const &far)
Builds a perspective projection matrix based on a field of view.
Definition: matrix_transform.inl:248
detail::tmat4x4< T > tweakedInfinitePerspective(T fovy, T aspect, T near)
Creates a matrix for a symmetric perspective-view frustum with far plane at infinite for graphics har...
Definition: matrix_transform.inl:294
detail::tmat4x4< T > ortho(T const &left, T const &right, T const &bottom, T const &top)
Creates a matrix for projecting two-dimensional coordinates onto the screen.