- Main Page
- Modules
- Namespaces
- Classes
- Files

- File List

matrix_transform.hpp

    00001
    00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
    00004 // Created : 2009-04-29
    00005 // Updated : 2009-04-29
    00006 // Licence : This source is under MIT License
    00007 // File    : glm/gtc/matrix_transform.hpp
    00009 // Dependency:
    00010 // - GLM core
    00011 // - GLM_GTC_matrix_operation
    00013
    00014 #ifndef glm_gtc_matrix_transform
    00015 #define glm_gtc_matrix_transform
    00016
    00017 // Dependency:
    00018 #include "../glm.hpp"
    00019
    00020 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
    00021 #       pragma message("GLM: GLM_GTC_matrix_transform extension included")
    00022 #endif
    00023
    00024 namespace glm{
    00025 namespace gtc{
    00026 namespace matrix_transform
    00027 {
    00030
    00033         template <typename T>
    00034         detail::tmat4x4<T> translate(
    00035                 detail::tmat4x4<T> const & m,
    00036                 detail::tvec3<T> const & v);
    00037
    00040         template <typename T>
    00041         detail::tmat4x4<T> rotate(
    00042                 detail::tmat4x4<T> const & m,
    00043                 T const & angle,
    00044                 detail::tvec3<T> const & v);
    00045
    00048         template <typename T>
    00049         detail::tmat4x4<T> scale(
    00050                 detail::tmat4x4<T> const & m,
    00051                 detail::tvec3<T> const & v);
    00052
    00055         template <typename T>
    00056         detail::tmat4x4<T> ortho(
    00057                 T const & left,
    00058                 T const & right,
    00059                 T const & bottom,
    00060                 T const & top,
    00061                 T const & zNear,
    00062                 T const & zFar);
    00063
    00066     template <typename T>
    00067         detail::tmat4x4<T> ortho(
    00068                 T const & left,
    00069                 T const & right,
    00070                 T const & bottom,
    00071                 T const & top);
    00072
    00075         template <typename T>
    00076         detail::tmat4x4<T> frustum(
    00077                 T const & left,
    00078                 T const & right,
    00079                 T const & bottom,
    00080                 T const & top,
    00081                 T const & nearVal,
    00082                 T const & farVal);
    00083
    00086         template <typename T>
    00087         detail::tmat4x4<T> perspective(
    00088                 T const & fovy,
    00089                 T const & aspect,
    00090                 T const & zNear,
    00091                 T const & zFar);
    00092
    00095         template <typename valType>
    00096         detail::tmat4x4<valType> perspectiveFov(
    00097                 valType const & fov,
    00098                 valType const & width,
    00099                 valType const & height,
    00100                 valType const & zNear,
    00101                 valType const & zFar);
    00102
    00105     template <typename T>
    00106         detail::tmat4x4<T> infinitePerspective(
    00107                 T fovy, T aspect, T zNear);
    00108
    00111     template <typename T>
    00112         detail::tmat4x4<T> tweakedInfinitePerspective(
    00113                 T fovy, T aspect, T zNear);
    00114
    00117         template <typename T, typename U>
    00118         detail::tvec3<T> project(
    00119                 detail::tvec3<T> const & obj,
    00120                 detail::tmat4x4<T> const & model,
    00121                 detail::tmat4x4<T> const & proj,
    00122                 detail::tvec4<U> const & viewport);
    00123
    00126         template <typename T, typename U>
    00127         detail::tvec3<T> unProject(
    00128                 detail::tvec3<T> const & win,
    00129                 detail::tmat4x4<T> const & model,
    00130                 detail::tmat4x4<T> const & proj,
    00131                 detail::tvec4<U> const & viewport);
    00132
    00135         template <typename T, typename U>
    00136         detail::tmat4x4<T> pickMatrix(
    00137                 detail::tvec2<T> const & center,
    00138                 detail::tvec2<T> const & delta,
    00139                 detail::tvec4<U> const & viewport);
    00140
    00143         template <typename T>
    00144         detail::tmat4x4<T> lookAt(
    00145                 detail::tvec3<T> const & eye,
    00146                 detail::tvec3<T> const & center,
    00147                 detail::tvec3<T> const & up);
    00148
    00150 }//namespace matrix_transform
    00151 }//namespace gtc
    00152 }//namespace glm
    00153
    00154 #include "matrix_transform.inl"
    00155
    00156 namespace glm{using namespace gtc::matrix_transform;}
    00157
    00158 #endif//glm_gtc_matrix_transform