![]() |
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 #ifndef GLM_GTC_matrix_transform 00047 #define GLM_GTC_matrix_transform GLM_VERSION 00048 00049 // Dependency: 00050 #include "../glm.hpp" 00051 00052 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 00053 # pragma message("GLM: GLM_GTC_matrix_transform extension included") 00054 #endif 00055 00056 namespace glm 00057 { 00060 00081 template <typename T> 00082 detail::tmat4x4<T> translate( 00083 detail::tmat4x4<T> const & m, 00084 detail::tvec3<T> const & v); 00085 00097 template <typename T> 00098 detail::tmat4x4<T> rotate( 00099 detail::tmat4x4<T> const & m, 00100 T const & angle, 00101 detail::tvec3<T> const & axis); 00102 00113 template <typename T> 00114 detail::tmat4x4<T> scale( 00115 detail::tmat4x4<T> const & m, 00116 detail::tvec3<T> const & v); 00117 00129 template <typename T> 00130 detail::tmat4x4<T> ortho( 00131 T const & left, 00132 T const & right, 00133 T const & bottom, 00134 T const & top, 00135 T const & zNear, 00136 T const & zFar); 00137 00147 template <typename T> 00148 detail::tmat4x4<T> ortho( 00149 T const & left, 00150 T const & right, 00151 T const & bottom, 00152 T const & top); 00153 00164 template <typename T> 00165 detail::tmat4x4<T> frustum( 00166 T const & left, 00167 T const & right, 00168 T const & bottom, 00169 T const & top, 00170 T const & near, 00171 T const & far); 00172 00181 template <typename T> 00182 detail::tmat4x4<T> perspective( 00183 T const & fovy, 00184 T const & aspect, 00185 T const & near, 00186 T const & far); 00187 00197 template <typename valType> 00198 detail::tmat4x4<valType> perspectiveFov( 00199 valType const & fov, 00200 valType const & width, 00201 valType const & height, 00202 valType const & near, 00203 valType const & far); 00204 00212 template <typename T> 00213 detail::tmat4x4<T> infinitePerspective( 00214 T fovy, T aspect, T near); 00215 00223 template <typename T> 00224 detail::tmat4x4<T> tweakedInfinitePerspective( 00225 T fovy, T aspect, T near); 00226 00236 template <typename T, typename U> 00237 detail::tvec3<T> project( 00238 detail::tvec3<T> const & obj, 00239 detail::tmat4x4<T> const & model, 00240 detail::tmat4x4<T> const & proj, 00241 detail::tvec4<U> const & viewport); 00242 00252 template <typename T, typename U> 00253 detail::tvec3<T> unProject( 00254 detail::tvec3<T> const & win, 00255 detail::tmat4x4<T> const & model, 00256 detail::tmat4x4<T> const & proj, 00257 detail::tvec4<U> const & viewport); 00258 00267 template <typename T, typename U> 00268 detail::tmat4x4<T> pickMatrix( 00269 detail::tvec2<T> const & center, 00270 detail::tvec2<T> const & delta, 00271 detail::tvec4<U> const & viewport); 00272 00280 template <typename T> 00281 detail::tmat4x4<T> lookAt( 00282 detail::tvec3<T> const & eye, 00283 detail::tvec3<T> const & center, 00284 detail::tvec3<T> const & up); 00285 00287 }//namespace glm 00288 00289 #include "matrix_transform.inl" 00290 00291 #endif//GLM_GTC_matrix_transform
1.7.3