00001
00002
00004
00005
00006
00007
00009
00010
00011
00012
00014
00015
00016
00018
00019 #ifndef glm_gtx_euler_angles
00020 #define glm_gtx_euler_angles
00021
00022
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 }
00129 }
00130 }
00131
00132 #define GLM_GTX_euler_angles namespace gtx::euler_angles
00133 #ifndef GLM_GTX_GLOBAL
00134 namespace glm {using GLM_GTX_euler_angles;}
00135 #endif//GLM_GTX_GLOBAL
00136
00137 #include "euler_angles.inl"
00138
00139 #endif//glm_gtx_euler_angles