GLM Version 0.9.0
|
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