GLM Version 0.9.0

matrix_projection.hpp

00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2010 G-Truc Creation (www.g-truc.net)
00004 // Created : 2009-04-29
00005 // Updated : 2010-02-07
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 T> 
00036                 detail::tmat4x4<T> ortho(
00037                         T const & left, 
00038                         T const & right, 
00039                         T const & bottom, 
00040                         T const & top);
00041 
00044                 template <typename T> 
00045                 detail::tmat4x4<T> ortho(
00046                         T const & left, 
00047                         T const & right, 
00048                         T const & bottom, 
00049                         T const & top, 
00050                         T const & zNear, 
00051                         T const & zFar);
00052 
00055                 template <typename T> 
00056                 detail::tmat4x4<T> frustum(
00057                         T const & left, 
00058                         T const & right, 
00059                         T const & bottom, 
00060                         T const & top, 
00061                         T const & nearVal, 
00062                         T const & farVal);
00063 
00066                 template <typename T> 
00067                 detail::tmat4x4<T> perspective(
00068                         T const & fovy, 
00069                         T const & aspect, 
00070                         T const & zNear, 
00071                         T const & zFar);
00072 
00075                 template <typename T, typename U> 
00076                 detail::tvec3<T> project(
00077                         detail::tvec3<T> const & obj, 
00078                         detail::tmat4x4<T> const & model, 
00079                         detail::tmat4x4<T> const & proj, 
00080                         detail::tvec4<U> const & viewport);
00081 
00084                 template <typename T, typename U> 
00085                 detail::tvec3<T> unProject(
00086                         detail::tvec3<T> const & win, 
00087                         detail::tmat4x4<T> const & model, 
00088                         detail::tmat4x4<T> const & proj, 
00089                         detail::tvec4<U> const & viewport);
00090 
00091     }//namespace matrix_projection
00092     }//namespace gtc
00093 }//namespace glm
00094 
00095 #include "matrix_projection.inl"
00096 
00097 namespace glm{using namespace gtc::matrix_projection;}
00098 
00099 #endif//glm_gtc_matrix_projection