1 /// @ref gtx_matrix_decompose 2 /// @file glm/gtx/matrix_decompose.hpp 3 /// 4 /// @see core (dependence) 5 /// 6 /// @defgroup gtx_matrix_decompose GLM_GTX_matrix_decompose 7 /// @ingroup gtx 8 /// 9 /// @brief Decomposes a model matrix to translations, rotation and scale components 10 /// 11 /// <glm/gtx/matrix_decompose.hpp> need to be included to use these functionalities. 12 13 #pragma once 14 15 // Dependencies 16 #include "../mat4x4.hpp" 17 #include "../vec3.hpp" 18 #include "../vec4.hpp" 19 #include "../geometric.hpp" 20 #include "../gtc/quaternion.hpp" 21 #include "../gtc/matrix_transform.hpp" 22 23 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) 24 # pragma message("GLM: GLM_GTX_matrix_decompose extension included") 25 #endif 26 27 namespace glm 28 { 29 /// @addtogroup gtx_matrix_decompose 30 /// @{ 31 32 /// Decomposes a model matrix to translations, rotation and scale components 33 /// @see gtx_matrix_decompose 34 template <typename T, precision P> 35 GLM_FUNC_DECL bool decompose( 36 tmat4x4<T, P> const & modelMatrix, 37 tvec3<T, P> & scale, tquat<T, P> & orientation, tvec3<T, P> & translation, tvec3<T, P> & skew, tvec4<T, P> & perspective); 38 39 /// @} 40 }//namespace glm 41 42 #include "matrix_decompose.inl" 43