| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- /// @ref gtx_euler_angles
- /// @file glm/gtx/euler_angles.hpp
- ///
- /// @see core (dependence)
- ///
- /// @defgroup gtx_euler_angles GLM_GTX_euler_angles
- /// @ingroup gtx
- ///
- /// @brief Build matrices from Euler angles.
- ///
- /// <glm/gtx/euler_angles.hpp> need to be included to use these functionalities.
- #pragma once
- // Dependency:
- #include "../glm.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
- #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
- # pragma message("GLM: GLM_GTX_euler_angles extension included")
- #endif
- namespace glm
- {
- /// @addtogroup gtx_euler_angles
- /// @{
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle X.
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleX(
- T const& angleX);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Y.
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleY(
- T const& angleY);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from an euler angle Z.
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZ(
- T const& angleZ);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXY(
- T const& angleX,
- T const& angleY);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYX(
- T const& angleY,
- T const& angleX);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Z).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXZ(
- T const& angleX,
- T const& angleZ);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * X).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZX(
- T const& angle,
- T const& angleX);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * Z).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYZ(
- T const& angleY,
- T const& angleZ);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Z * Y).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleZY(
- T const& angleZ,
- T const& angleY);
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (X * Y * Z).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleXYZ(
- T const& t1,
- T const& t2,
- T const& t3);
-
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> eulerAngleYXZ(
- T const& yaw,
- T const& pitch,
- T const& roll);
-
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<4, 4, T, defaultp> yawPitchRoll(
- T const& yaw,
- T const& pitch,
- T const& roll);
- /// Creates a 2D 2 * 2 rotation matrix from an euler angle.
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<2, 2, T, defaultp> orientate2(T const& angle);
- /// Creates a 2D 4 * 4 homogeneous rotation matrix from an euler angle.
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL mat<3, 3, T, defaultp> orientate3(T const& angle);
- /// Creates a 3D 3 * 3 rotation matrix from euler angles (Y * X * Z).
- /// @see gtx_euler_angles
- template<typename T, qualifier P>
- GLM_FUNC_DECL mat<3, 3, T, P> orientate3(vec<3, T, P> const& angles);
-
- /// Creates a 3D 4 * 4 homogeneous rotation matrix from euler angles (Y * X * Z).
- /// @see gtx_euler_angles
- template<typename T, qualifier P>
- GLM_FUNC_DECL mat<4, 4, T, P> orientate4(vec<3, T, P> const& angles);
- /// Extracts the (X * Y * Z) Euler angles from the rotation matrix M
- /// @see gtx_euler_angles
- template<typename T>
- GLM_FUNC_DECL void extractEulerAngleXYZ(mat<4, 4, T, defaultp> const& M,
- T & t1,
- T & t2,
- T & t3);
-
- /// @}
- }//namespace glm
- #include "euler_angles.inl"
|