00001
00002
00004
00005
00006
00007
00009
00010
00011
00013
00014 #ifndef glm_gtc_matrix_projection
00015 #define glm_gtc_matrix_projection
00016
00017
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 }
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 }
00092 }
00093 }
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