diff options
Diffstat (limited to 'depedencies/include/glm/gtx/matrix_transform_2d.hpp')
-rw-r--r-- | depedencies/include/glm/gtx/matrix_transform_2d.hpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/depedencies/include/glm/gtx/matrix_transform_2d.hpp b/depedencies/include/glm/gtx/matrix_transform_2d.hpp new file mode 100644 index 0000000..91f4834 --- /dev/null +++ b/depedencies/include/glm/gtx/matrix_transform_2d.hpp @@ -0,0 +1,78 @@ +/// @ref gtx_matrix_transform_2d +/// @file glm/gtx/matrix_transform_2d.hpp +/// @author Miguel Ángel Pérez Martínez +/// +/// @see core (dependence) +/// +/// @defgroup gtx_matrix_transform_2d GLM_GTX_matrix_transform_2d +/// @ingroup gtx +/// +/// @brief Defines functions that generate common 2d transformation matrices. +/// +/// <glm/gtx/matrix_transform_2d.hpp> need to be included to use these functionalities. + +#pragma once + +// Dependency: +#include "../mat3x3.hpp" +#include "../vec2.hpp" + + +#if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED) +# pragma message("GLM: GLM_GTX_matrix_transform_2d extension included") +#endif + +namespace glm +{ + /// @addtogroup gtx_matrix_transform_2d + /// @{ + + /// Builds a translation 3 * 3 matrix created from a vector of 2 components. + /// + /// @param m Input matrix multiplied by this translation matrix. + /// @param v Coordinates of a translation vector. + template <typename T, precision P> + GLM_FUNC_QUALIFIER tmat3x3<T, P> translate( + tmat3x3<T, P> const & m, + tvec2<T, P> const & v); + + /// Builds a rotation 3 * 3 matrix created from an angle. + /// + /// @param m Input matrix multiplied by this translation matrix. + /// @param angle Rotation angle expressed in radians if GLM_FORCE_RADIANS is defined or degrees otherwise. + template <typename T, precision P> + GLM_FUNC_QUALIFIER tmat3x3<T, P> rotate( + tmat3x3<T, P> const & m, + T angle); + + /// Builds a scale 3 * 3 matrix created from a vector of 2 components. + /// + /// @param m Input matrix multiplied by this translation matrix. + /// @param v Coordinates of a scale vector. + template <typename T, precision P> + GLM_FUNC_QUALIFIER tmat3x3<T, P> scale( + tmat3x3<T, P> const & m, + tvec2<T, P> const & v); + + /// Builds an horizontal (parallel to the x axis) shear 3 * 3 matrix. + /// + /// @param m Input matrix multiplied by this translation matrix. + /// @param y Shear factor. + template <typename T, precision P> + GLM_FUNC_QUALIFIER tmat3x3<T, P> shearX( + tmat3x3<T, P> const & m, + T y); + + /// Builds a vertical (parallel to the y axis) shear 3 * 3 matrix. + /// + /// @param m Input matrix multiplied by this translation matrix. + /// @param x Shear factor. + template <typename T, precision P> + GLM_FUNC_QUALIFIER tmat3x3<T, P> shearY( + tmat3x3<T, P> const & m, + T x); + + /// @} +}//namespace glm + +#include "matrix_transform_2d.inl" |