| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /// @ref ext_matrix_integer
- /// @file glm/ext/matrix_integer.hpp
- ///
- /// @defgroup ext_matrix_integer GLM_EXT_matrix_integer
- /// @ingroup ext
- ///
- /// Defines functions that generate common transformation matrices.
- ///
- /// The matrices generated by this extension use standard OpenGL fixed-function
- /// conventions. For example, the lookAt function generates a transform from world
- /// space into the specific eye space that the projective matrix functions
- /// (perspective, ortho, etc) are designed to expect. The OpenGL compatibility
- /// specifications defines the particular layout of this eye space.
- ///
- /// Include <glm/ext/matrix_integer.hpp> to use the features of this extension.
- ///
- /// @see ext_matrix_projection
- /// @see ext_matrix_clip_space
- #pragma once
- // Dependencies
- #include "../gtc/constants.hpp"
- #include "../geometric.hpp"
- #include "../trigonometric.hpp"
- #include "../matrix.hpp"
- #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
- # pragma message("GLM: GLM_EXT_matrix_integer extension included")
- #endif
- namespace glm
- {
- /// @addtogroup ext_matrix_integer
- /// @{
- /// Multiply matrix x by matrix y component-wise, i.e.,
- /// result[i][j] is the scalar product of x[i][j] and y[i][j].
- ///
- /// @tparam C Integer between 1 and 4 included that qualify the number a column
- /// @tparam R Integer between 1 and 4 included that qualify the number a row
- /// @tparam T Floating-point or signed integer scalar types
- /// @tparam Q Value from qualifier enum
- ///
- /// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a>
- /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template<length_t C, length_t R, typename T, qualifier Q>
- GLM_FUNC_DECL mat<C, R, T, Q> matrixCompMult(mat<C, R, T, Q> const& x, mat<C, R, T, Q> const& y);
- /// Treats the first parameter c as a column vector
- /// and the second parameter r as a row vector
- /// and does a linear algebraic matrix multiply c * r.
- ///
- /// @tparam C Integer between 1 and 4 included that qualify the number a column
- /// @tparam R Integer between 1 and 4 included that qualify the number a row
- /// @tparam T Floating-point or signed integer scalar types
- /// @tparam Q Value from qualifier enum
- ///
- /// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a>
- /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template<length_t C, length_t R, typename T, qualifier Q>
- GLM_FUNC_DECL typename detail::outerProduct_trait<C, R, T, Q>::type outerProduct(vec<C, T, Q> const& c, vec<R, T, Q> const& r);
- /// Returns the transposed matrix of x
- ///
- /// @tparam C Integer between 1 and 4 included that qualify the number a column
- /// @tparam R Integer between 1 and 4 included that qualify the number a row
- /// @tparam T Floating-point or signed integer scalar types
- /// @tparam Q Value from qualifier enum
- ///
- /// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a>
- /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template<length_t C, length_t R, typename T, qualifier Q>
- GLM_FUNC_DECL typename mat<C, R, T, Q>::transpose_type transpose(mat<C, R, T, Q> const& x);
- /// Return the determinant of a squared matrix.
- ///
- /// @tparam C Integer between 1 and 4 included that qualify the number a column
- /// @tparam R Integer between 1 and 4 included that qualify the number a row
- /// @tparam T Floating-point or signed integer scalar types
- /// @tparam Q Value from qualifier enum
- ///
- /// @see <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a>
- /// @see <a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.6 Matrix Functions</a>
- template<length_t C, length_t R, typename T, qualifier Q>
- GLM_FUNC_DECL T determinant(mat<C, R, T, Q> const& m);
- /// @}
- }//namespace glm
- #include "matrix_integer.inl"
|