summaryrefslogtreecommitdiff
path: root/glm-master/glm/ext/matrix_integer.hpp
diff options
context:
space:
mode:
authorjjesswan <jessica_wan@brown.edu>2024-05-07 06:02:29 -0400
committerjjesswan <jessica_wan@brown.edu>2024-05-07 06:02:29 -0400
commit6a45579dbbf991c0e12ce59958e3b533d19fc9d4 (patch)
tree83ad11d63c0a1d1c89b9469455ecbda4531fe6ac /glm-master/glm/ext/matrix_integer.hpp
parentcb868acadcae4e3f497ecdabeca507f3e73e01c7 (diff)
rotating skyboxgit add -A
Diffstat (limited to 'glm-master/glm/ext/matrix_integer.hpp')
-rw-r--r--glm-master/glm/ext/matrix_integer.hpp91
1 files changed, 91 insertions, 0 deletions
diff --git a/glm-master/glm/ext/matrix_integer.hpp b/glm-master/glm/ext/matrix_integer.hpp
new file mode 100644
index 0000000..7d7dfc5
--- /dev/null
+++ b/glm-master/glm/ext/matrix_integer.hpp
@@ -0,0 +1,91 @@
+/// @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"