00001
00002
00004
00005
00006
00007
00009
00010
00011
00013
00014
00015
00017
00018 #ifndef glm_gtx_euler_angles
00019 #define glm_gtx_euler_angles
00020
00021
00022 #include "../glm.hpp"
00023 #include "../gtc/half_float.hpp"
00024
00025 #if(defined(GLM_MESSAGES) && !defined(glm_ext))
00026 # pragma message("GLM: GLM_GTX_euler_angles extension included")
00027 #endif
00028
00029 namespace glm{
00030 namespace gtx{
00031 namespace euler_angles
00032 {
00035
00038 template <typename valType>
00039 detail::tmat4x4<valType> eulerAngleX(
00040 valType const & angleX);
00041
00044 template <typename valType>
00045 detail::tmat4x4<valType> eulerAngleY(
00046 valType const & angleY);
00047
00050 template <typename valType>
00051 detail::tmat4x4<valType> eulerAngleZ(
00052 valType const & angleZ);
00053
00056 template <typename valType>
00057 detail::tmat4x4<valType> eulerAngleXY(
00058 valType const & angleX,
00059 valType const & angleY);
00060
00063 template <typename valType>
00064 detail::tmat4x4<valType> eulerAngleYX(
00065 valType const & angleY,
00066 valType const & angleX);
00067
00070 template <typename valType>
00071 detail::tmat4x4<valType> eulerAngleXZ(
00072 valType const & angleX,
00073 valType const & angleZ);
00074
00077 template <typename valType>
00078 detail::tmat4x4<valType> eulerAngleZX(
00079 valType const & angleZ,
00080 valType const & angleX);
00081
00084 template <typename valType>
00085 detail::tmat4x4<valType> eulerAngleYZ(
00086 valType const & angleY,
00087 valType const & angleZ);
00088
00091 template <typename valType>
00092 detail::tmat4x4<valType> eulerAngleZY(
00093 valType const & angleZ,
00094 valType const & angleY);
00095
00098 template <typename valType>
00099 detail::tmat4x4<valType> eulerAngleYXZ(
00100 valType const & yaw,
00101 valType const & pitch,
00102 valType const & roll);
00103
00106 template <typename valType>
00107 detail::tmat4x4<valType> yawPitchRoll(
00108 valType const & yaw,
00109 valType const & pitch,
00110 valType const & roll);
00111
00114 template <typename T>
00115 detail::tmat2x2<T> orientate2(T const & angle);
00116
00119 template <typename T>
00120 detail::tmat3x3<T> orientate3(T const & angle);
00121
00124 template <typename T>
00125 detail::tmat3x3<T> orientate3(detail::tvec3<T> const & angles);
00126
00129 template <typename T>
00130 detail::tmat4x4<T> orientate4(detail::tvec3<T> const & angles);
00131
00133 }
00134 }
00135 }
00136
00137 #include "euler_angles.inl"
00138
00139 namespace glm{using namespace gtx::euler_angles;}
00140
00141 #endif//glm_gtx_euler_angles