GLM Version 0.9.0
|
00001 00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net) 00004 // Created : 2005-12-21 00005 // Updated : 2007-08-14 00006 // Licence : This source is under MIT License 00007 // File : glm/gtx/euler_angles.h 00009 // Dependency: 00010 // - GLM core 00011 // - GLM_GTC_double_float 00012 // - GLM_GTC_half_float 00014 // ToDo: 00015 // - mat2 mat2GTX(const vec2& angles) undefined 00016 // - mat3 mat3GTX(const vec2& angles) undefined 00018 00019 #ifndef glm_gtx_euler_angles 00020 #define glm_gtx_euler_angles 00021 00022 // Dependency: 00023 #include "../glm.hpp" 00024 #include "../gtc/double_float.hpp" 00025 #include "../gtc/half_float.hpp" 00026 00027 namespace glm 00028 { 00029 namespace gtx{ 00031 namespace euler_angles 00032 { 00035 template <typename valType> 00036 detail::tmat4x4<valType> eulerAngleX( 00037 valType const & angleX); 00038 00041 template <typename valType> 00042 detail::tmat4x4<valType> eulerAngleY( 00043 valType const & angleY); 00044 00047 template <typename valType> 00048 detail::tmat4x4<valType> eulerAngleZ( 00049 valType const & angleZ); 00050 00053 template <typename valType> 00054 detail::tmat4x4<valType> eulerAngleXY( 00055 valType const & angleX, 00056 valType const & angleY); 00057 00060 template <typename valType> 00061 detail::tmat4x4<valType> eulerAngleYX( 00062 valType const & angleY, 00063 valType const & angleX); 00064 00067 template <typename valType> 00068 detail::tmat4x4<valType> eulerAngleXZ( 00069 valType const & angleX, 00070 valType const & angleZ); 00071 00074 template <typename valType> 00075 detail::tmat4x4<valType> eulerAngleZX( 00076 valType const & angleZ, 00077 valType const & angleX); 00078 00081 template <typename valType> 00082 detail::tmat4x4<valType> eulerAngleYZ( 00083 valType const & angleY, 00084 valType const & angleZ); 00085 00088 template <typename valType> 00089 detail::tmat4x4<valType> eulerAngleZY( 00090 valType const & angleZ, 00091 valType const & angleY); 00092 00095 template <typename valType> 00096 detail::tmat4x4<valType> eulerAngleYXZ( 00097 valType const & yaw, 00098 valType const & pitch, 00099 valType const & roll); 00100 00103 template <typename valType> 00104 detail::tmat4x4<valType> yawPitchRoll( 00105 valType const & yaw, 00106 valType const & pitch, 00107 valType const & roll); 00108 00111 template <typename T> 00112 detail::tmat2x2<T> orientate2(T const & angle); 00113 00116 template <typename T> 00117 detail::tmat3x3<T> orientate3(T const & angle); 00118 00121 template <typename T> 00122 detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles); 00123 00126 template <typename T> 00127 detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles); 00128 }//namespace euler_angles 00129 }//namespace gtx 00130 }//namespace glm 00131 00132 #include "euler_angles.inl" 00133 00134 namespace glm{using namespace gtx::euler_angles;} 00135 00136 #endif//glm_gtx_euler_angles