# GLM: matrix_projection.hpp Source File

- Main Page
- Namespaces
- Files

- File List

# matrix_projection.hpp

    00001
    00002 // OpenGL Mathematics Copyright (c) 2005 - 2009 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_projection.hpp
    00009 // Dependency:
    00010 // - GLM core
    00011 // - GLM_GTC_matrix_operation
    00013
    00014 #ifndef glm_gtc_matrix_projection
    00015 #define glm_gtc_matrix_projection
    00016
    00017 // Dependency:
    00018 #include "../glm.hpp"
    00019 #include "../gtc/matrix_operation.hpp"
    00020
    00021 namespace glm
    00022 {
    00023         namespace test{
    00024                 bool main_gtc_matrix_projection();
    00025         }//namespace test
    00026
    00027     namespace gtc{
    00029     namespace matrix_projection
    00030     {
    00031                 using namespace gtc::matrix_operation;
    00032
    00035         template <typename valType>
    00036                 detail::tmat4x4<valType> ortho(
    00037                         valType const & left,
    00038                         valType const & right,
    00039                         valType const & bottom,
    00040                         valType const & top);
    00041
    00044                 template <typename valType>
    00045                 detail::tmat4x4<valType> ortho(
    00046                         valType const & left,
    00047                         valType const & right,
    00048                         valType const & bottom,
    00049                         valType const & top,
    00050                         valType const & zNear,
    00051                         valType const & zFar);
    00052
    00055                 template <typename valType>
    00056                 detail::tmat4x4<valType> frustum(
    00057                         valType const & left,
    00058                         valType const & right,
    00059                         valType const & bottom,
    00060                         valType const & top,
    00061                         valType const & nearVal,
    00062                         valType const & farVal);
    00063
    00066                 template <typename valType>
    00067                 detail::tmat4x4<valType> perspective(
    00068                         valType const & fovy,
    00069                         valType const & aspect,
    00070                         valType const & zNear,
    00071                         valType const & zFar);
    00072
    00075                 template <typename valTypeT, typename valTypeU>
    00076                 detail::tvec3<valTypeT> project(
    00077                         detail::tvec3<valTypeT> const & obj,
    00078                         detail::tmat4x4<valTypeT> const & model,
    00079                         detail::tmat4x4<valTypeT> const & proj,
    00080                         detail::tvec4<valTypeU> const & viewport);
    00081
    00084                 template <typename valTypeT, typename valTypeU>
    00085                 detail::tvec3<valTypeT> unProject(
    00086                         detail::tvec3<valTypeT> const & win,
    00087                         detail::tmat4x4<valTypeT> const & model,
    00088                         detail::tmat4x4<valTypeT> const & proj,
    00089                         detail::tvec4<valTypeU> const & viewport);
    00090
    00091     }//namespace matrix_projection
    00092     }//namespace gtc
    00093 }//namespace glm
    00094
    00095 #define GLM_GTC_matrix_projection  namespace gtc::matrix_projection
    00096 #ifndef GLM_GTC_GLOBAL
    00097 namespace glm {using GLM_GTC_matrix_projection;}
    00098 #endif//GLM_GTC_GLOBAL
    00099
    00100 #include "matrix_projection.inl"
    00101
    00102 #endif//glm_gtc_matrix_projection