summaryrefslogtreecommitdiff
path: root/src/glm/core/func_matrix.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/glm/core/func_matrix.hpp')
-rw-r--r--src/glm/core/func_matrix.hpp111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/glm/core/func_matrix.hpp b/src/glm/core/func_matrix.hpp
new file mode 100644
index 0000000..b41e980
--- /dev/null
+++ b/src/glm/core/func_matrix.hpp
@@ -0,0 +1,111 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Created : 2008-08-03
+// Updated : 2010-02-04
+// Licence : This source is under MIT License
+// File : glm/core/func_matrix.hpp
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+#ifndef glm_core_func_matrix
+#define glm_core_func_matrix
+
+namespace glm
+{
+ namespace core{
+ namespace function{
+ //! Define all matrix functions from Section 8.5 of GLSL 1.30.8 specification. Included in glm namespace.
+ namespace matrix{
+
+ /// \addtogroup core_funcs
+ ///@{
+
+ //! 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].
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/matrixCompMult.xml">GLSL matrixCompMult man page</a>
+ //! \li GLSL 1.30.08 specification, section 8.5
+ template <typename matType>
+ matType matrixCompMult(
+ matType const & x,
+ matType 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.
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/outerProduct.xml">GLSL outerProduct man page</a>
+ //! \li GLSL 1.30.08 specification, section 8.5
+ template <typename vecType, typename matType>
+ matType outerProduct(
+ vecType const & c,
+ vecType const & r);
+
+ //! Returns the transposed matrix of x
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/transpose.xml">GLSL transpose man page</a>
+ //! \li GLSL 1.30.08 specification, section 8.5
+ template <typename matType>
+ typename matType::transpose_type transpose(
+ matType const & x);
+
+ //! Return the determinant of a mat2 matrix.
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a>
+ //! \li GLSL 1.30.08 specification, section 8.5
+ template <typename T>
+ typename detail::tmat2x2<T>::value_type determinant(
+ detail::tmat2x2<T> const & m);
+
+ //! Return the determinant of a mat3 matrix.
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a>
+ //! \li GLSL 1.30.08 specification, section 8.5
+ template <typename T>
+ typename detail::tmat3x3<T>::value_type determinant(
+ detail::tmat3x3<T> const & m);
+
+ //! Return the determinant of a mat4 matrix.
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/determinant.xml">GLSL determinant man page</a>
+ //! \li GLSL 1.30.08 specification, section 8.5
+ template <typename T>
+ typename detail::tmat4x4<T>::value_type determinant(
+ detail::tmat4x4<T> const & m);
+
+ //! Return the inverse of a mat2 matrix.
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a>
+ //! \li GLSL 1.40.07 specification, section 8.5
+ template <typename T>
+ detail::tmat2x2<T> inverse(
+ detail::tmat2x2<T> const & m);
+
+ //! Return the inverse of a mat3 matrix.
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a>
+ //! \li GLSL 1.40.07 specification, section 8.5
+ template <typename T>
+ detail::tmat3x3<T> inverse(
+ detail::tmat3x3<T> const & m);
+
+ //! Return the inverse of a mat4 matrix.
+ //!
+ //! \li <a href="http://www.opengl.org/sdk/docs/manglsl/xhtml/inverse.xml">GLSL inverse man page</a>
+ //! \li GLSL 1.40.07 specification, section 8.5
+ template <typename T>
+ detail::tmat4x4<T> inverse(
+ detail::tmat4x4<T> const & m);
+
+ ///@}
+
+ }//namespace matrix
+ }//namespace function
+ }//namespace core
+
+ using namespace core::function::matrix;
+}//namespace glm
+
+#include "func_matrix.inl"
+
+#endif//glm_core_func_matrix