- 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 {
    00026         namespace test{
    00027                 bool main_gtc_matrix_transform();
    00028         }//namespace test
    00029
    00030         namespace gtc{
    00032         namespace matrix_transform
    00033         {
    00036
    00039                 template <typename T>
    00040                 detail::tmat4x4<T> translate(
    00041                         detail::tmat4x4<T> const & m,
    00042                         detail::tvec3<T> const & v);
    00043
    00046                 template <typename T>
    00047                 detail::tmat4x4<T> rotate(
    00048                         detail::tmat4x4<T> const & m,
    00049                         T const & angle,
    00050                         detail::tvec3<T> const & v);
    00051
    00054                 template <typename T>
    00055                 detail::tmat4x4<T> scale(
    00056                         detail::tmat4x4<T> const & m,
    00057                         detail::tvec3<T> const & v);
    00058
    00061                 template <typename T>
    00062                 detail::tmat4x4<T> ortho(
    00063                         T const & left,
    00064                         T const & right,
    00065                         T const & bottom,
    00066                         T const & top,
    00067                         T const & zNear,
    00068                         T const & zFar);
    00069
    00072         template <typename T>
    00073                 detail::tmat4x4<T> ortho(
    00074                         T const & left,
    00075                         T const & right,
    00076                         T const & bottom,
    00077                         T const & top);
    00078
    00081                 template <typename T>
    00082                 detail::tmat4x4<T> frustum(
    00083                         T const & left,
    00084                         T const & right,
    00085                         T const & bottom,
    00086                         T const & top,
    00087                         T const & nearVal,
    00088                         T const & farVal);
    00089
    00092                 template <typename T>
    00093                 detail::tmat4x4<T> perspective(
    00094                         T const & fovy,
    00095                         T const & aspect,
    00096                         T const & zNear,
    00097                         T const & zFar);
    00098
    00101                 template <typename valType>
    00102                 detail::tmat4x4<valType> perspectiveFov(
    00103                         valType const & fov,
    00104                         valType const & width,
    00105                         valType const & height,
    00106                         valType const & zNear,
    00107                         valType const & zFar);
    00108
    00111         template <typename T>
    00112                 detail::tmat4x4<T> infinitePerspective(
    00113                         T fovy, T aspect, T zNear);
    00114
    00117         template <typename T>
    00118                 detail::tmat4x4<T> tweakedInfinitePerspective(
    00119                         T fovy, T aspect, T zNear);
    00120
    00123                 template <typename T, typename U>
    00124                 detail::tvec3<T> project(
    00125                         detail::tvec3<T> const & obj,
    00126                         detail::tmat4x4<T> const & model,
    00127                         detail::tmat4x4<T> const & proj,
    00128                         detail::tvec4<U> const & viewport);
    00129
    00132                 template <typename T, typename U>
    00133                 detail::tvec3<T> unProject(
    00134                         detail::tvec3<T> const & win,
    00135                         detail::tmat4x4<T> const & model,
    00136                         detail::tmat4x4<T> const & proj,
    00137                         detail::tvec4<U> const & viewport);
    00138
    00141                 template <typename T, typename U>
    00142                 detail::tmat4x4<T> pickMatrix(
    00143                         detail::tvec2<T> const & center,
    00144                         detail::tvec2<T> const & delta,
    00145                         detail::tvec4<U> const & viewport);
    00146
    00149                 template <typename T>
    00150                 detail::tmat4x4<T> lookAt(
    00151                         detail::tvec3<T> const & eye,
    00152                         detail::tvec3<T> const & center,
    00153                         detail::tvec3<T> const & up);
    00154
    00156         }//namespace matrix_transform
    00157         }//namespace gtc
    00158 }//namespace glm
    00159
    00160 #include "matrix_transform.inl"
    00161
    00162 namespace glm{using namespace gtc::matrix_transform;}
    00163
    00164 #endif//glm_gtc_matrix_transform