![]() |
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 #ifndef GLM_GTX_euler_angles 00040 #define GLM_GTX_euler_angles GLM_VERSION 00041 00042 // Dependency: 00043 #include "../glm.hpp" 00044 #include "../gtc/half_float.hpp" 00045 00046 #if(defined(GLM_MESSAGES) && !defined(glm_ext)) 00047 # pragma message("GLM: GLM_GTX_euler_angles extension included") 00048 #endif 00049 00050 namespace glm 00051 { 00054 00057 template <typename valType> 00058 detail::tmat4x4<valType> eulerAngleX( 00059 valType const & angleX); 00060 00063 template <typename valType> 00064 detail::tmat4x4<valType> eulerAngleY( 00065 valType const & angleY); 00066 00069 template <typename valType> 00070 detail::tmat4x4<valType> eulerAngleZ( 00071 valType const & angleZ); 00072 00075 template <typename valType> 00076 detail::tmat4x4<valType> eulerAngleXY( 00077 valType const & angleX, 00078 valType const & angleY); 00079 00082 template <typename valType> 00083 detail::tmat4x4<valType> eulerAngleYX( 00084 valType const & angleY, 00085 valType const & angleX); 00086 00089 template <typename valType> 00090 detail::tmat4x4<valType> eulerAngleXZ( 00091 valType const & angleX, 00092 valType const & angleZ); 00093 00096 template <typename valType> 00097 detail::tmat4x4<valType> eulerAngleZX( 00098 valType const & angleZ, 00099 valType const & angleX); 00100 00103 template <typename valType> 00104 detail::tmat4x4<valType> eulerAngleYZ( 00105 valType const & angleY, 00106 valType const & angleZ); 00107 00110 template <typename valType> 00111 detail::tmat4x4<valType> eulerAngleZY( 00112 valType const & angleZ, 00113 valType const & angleY); 00114 00117 template <typename valType> 00118 detail::tmat4x4<valType> eulerAngleYXZ( 00119 valType const & yaw, 00120 valType const & pitch, 00121 valType const & roll); 00122 00125 template <typename valType> 00126 detail::tmat4x4<valType> yawPitchRoll( 00127 valType const & yaw, 00128 valType const & pitch, 00129 valType const & roll); 00130 00133 template <typename T> 00134 detail::tmat2x2<T> orientate2(T const & angle); 00135 00138 template <typename T> 00139 detail::tmat3x3<T> orientate3(T const & angle); 00140 00143 template <typename T> 00144 detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles); 00145 00148 template <typename T> 00149 detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles); 00150 00152 }//namespace glm 00153 00154 #include "euler_angles.inl" 00155 00156 #endif//GLM_GTX_euler_angles
1.7.3