mat2ο
Header: cglm/mat2.h
Table of contents (click to go):ο
Macros:
GLM_mat2_IDENTITY_INIT
GLM_mat2_ZERO_INIT
GLM_mat2_IDENTITY
GLM_mat2_ZERO
Functions:
Functions documentationο
-
void glm_mat2_copy(mat2 mat, mat2 dest)ο
copy mat2 to another one (dest).
- Parameters:
- [in] mat source[out] dest destination
-
void glm_mat2_identity(mat2 mat)ο
copy identity mat2 to mat, or makes mat to identity
- Parameters:
- [out] mat matrix
-
void glm_mat2_identity_array(mat2 *__restrict mat, size_t count)ο
make given matrix arrayβs each element identity matrix
- Parameters:
- [in,out] mat matrix array (must be aligned (16/32) if alignment is not disabled)[in] count count of matrices
-
void glm_mat2_zero(mat2 mat)ο
make given matrix zero
- Parameters:
- [in,out] mat matrix
-
void glm_mat2_mul(mat2 m1, mat2 m2, mat2 dest)ο
multiply m1 and m2 to dest
m1, m2 and dest matrices can be same matrix, it is possible to write this:
mat2 m = GLM_mat2_IDENTITY_INIT; glm_mat2_mul(m, m, m);
- Parameters:
- [in] m1 left matrix[in] m2 right matrix[out] dest destination matrix
-
void glm_mat2_transpose_to(mat2 m, mat2 dest)ο
transpose mat4 and store in dest source matrix will not be transposed unless dest is m
- Parameters:
- [in] mat source[out] dest destination
-
void glm_mat2_transpose(mat2 m)ο
transpose mat2 and store result in same matrix
- Parameters:
- [in] mat source[out] dest destination
-
void glm_mat2_mulv(mat2 m, vec2 v, vec2 dest)ο
multiply mat2 with vec2 (column vector) and store in dest vector
- Parameters:
- [in] mat mat2 (left)[in] v vec2 (right, column vector)[out] dest destination (result, column vector)
-
void glm_mat2_scale(mat2 m, float s)ο
multiply matrix with scalar
- Parameters:
- [in, out] m matrix[in] s scalar
-
float glm_mat2_det(mat2 mat)ο
returns mat2 determinant
- Parameters:
- [in] mat matrix
- Returns:
mat2 determinant
-
void glm_mat2_inv(mat2 mat, mat2 dest)ο
inverse mat2 and store in dest
- Parameters:
- [in] mat matrix[out] dest destination (inverse matrix)
-
void glm_mat2_trace(mat2 m)ο
- sum of the elements on the main diagonal from upper left to the lower right
- Parameters:
- [in] m matrix
- Returns:
trace of matrix
-
void glm_mat2_swap_col(mat2 mat, int col1, int col2)ο
swap two matrix columns
- Parameters:
- [in, out] mat matrix[in] col1 col1[in] col2 col2
-
void glm_mat2_swap_row(mat2 mat, int row1, int row2)ο
swap two matrix rows
- Parameters:
- [in, out] mat matrix[in] row1 row1[in] row2 row2
-
float glm_mat2_rmc(vec2 r, mat2 m, vec2 c)ο
- rmc stands for Row * Matrix * Columnhelper for R (row vector) * M (matrix) * C (column vector)the result is scalar because R * M = Matrix1x2 (row vector),then Matrix1x2 * Vec2 (column vector) = Matrix1x1 (Scalar)
- Parameters:
- [in] r row vector or matrix1x2[in] m matrix2x2[in] c column vector or matrix2x1
- Returns:
scalar value e.g. Matrix1x1
-
void glm_mat2_make(const float *__restrict src, mat2 dest)ο
Create mat2 matrix from pointer
Note
@src must contain at least 4 elements.
- Parameters:
- [in] src pointer to an array of floats[out] dest destination matrix2x2