mat3x4

Header: cglm/mat3x4.h

Table of contents (click to go):

Macros:

  1. GLM_MAT3X4_ZERO_INIT

  2. GLM_MAT3X4_ZERO

Functions:

  1. glm_mat3x4_copy()

  2. glm_mat3x4_zero()

  3. glm_mat3x4_make()

  4. glm_mat3x4_mul()

  5. glm_mat3x4_mulv()

  6. glm_mat3x4_transpose()

  7. glm_mat3x4_scale()

Represented

mat3x4

column 1

column 2

column 3

row 1

m00

m10

m20

row 2

m01

m11

m21

row 3

m02

m12

m22

row 4

m03

m13

m23

Functions documentation

void glm_mat3x4_copy(mat3x4 mat, mat3x4 dest)

copy mat3x4 to another one (dest).

Parameters:
[in] mat source
[out] dest destination
void glm_mat3x4_zero(mat3x4 mat)

make given matrix zero

Parameters:
[in,out] mat matrix
void glm_mat3x4_make(const float *__restrict src, mat3x4 dest)

Create mat3x4 matrix from pointer

Parameters:
[in] src pointer to an array of floats
[out] dest destination matrix3x4
void glm_mat3x4_mul(mat3x4 m1, mat4x3 m2, mat4 dest)

multiply m1 and m2 to dest

glm_mat3x4_mul(mat3x4, mat4x3, mat4);
Parameters:
[in] m1 left matrix (mat3x4)
[in] m2 right matrix (mat4x3)
[out] dest destination matrix (mat4)
mat3x4

column 1

column 2

column 3

row 1

a00

a10

a20

row 2

a01

a11

a21

row 3

a02

a12

a22

row 4

a03

a13

a23

mat4x3

column 1

column 2

column 3

column 4

row 1

b00

b10

b20

b30

row 2

b01

b11

b21

b31

row 3

b02

b12

b22

b32

mat4x4

column 1

column 2

column 3

column 4

row 1

a00 * b00 + a10 * b01 + a20 * b02

a00 * b10 + a10 * b11 + a20 * b12

a00 * b20 + a10 * b21 + a20 * b22

a00 * b30 + a10 * b31 + a20 * b32

row 2

a01 * b00 + a11 * b01 + a21 * b02

a01 * b10 + a11 * b11 + a21 * b12

a01 * b20 + a11 * b21 + a21 * b22

a01 * b30 + a11 * b31 + a21 * b32

row 3

a02 * b00 + a12 * b01 + a22 * b02

a02 * b10 + a12 * b11 + a22 * b12

a02 * b20 + a12 * b21 + a22 * b22

a02 * b30 + a12 * b31 + a22 * b32

row 4

a03 * b00 + a13 * b01 + a23 * b02

a03 * b10 + a13 * b11 + a23 * b12

a03 * b20 + a13 * b21 + a23 * b22

a03 * b30 + a13 * b31 + a23 * b32

void glm_mat3x4_mulv(mat3x4 m, vec3 v, vec4 dest)

multiply mat3x4 with vec3 (column vector) and store in dest vector

Parameters:
[in] m mat3x4 (left)
[in] v vec3 (right, column vector)
[out] dest destination (result, column vector)
mat3x4

column 1

column 2

column 3

row 1

m00

m10

m20

row 2

m01

m11

m21

row 3

m02

m12

m22

row 4

m03

m13

m23

column vec3 (1x3)

column 1

row 1

v0

row 2

v1

row 3

v2

column vec4 (1x4)

column 1

row 1

m00 * v0 + m10 * v1 + m20 * v2

row 2

m01 * v0 + m11 * v1 + m21 * v2

row 3

m02 * v0 + m12 * v1 + m22 * v2

row 4

m03 * v0 + m13 * v1 + m23 * v2

void glm_mat3x4_transpose(mat3x4 m, mat4x3 dest)

transpose matrix and store in dest

Parameters:
[in] m matrix
[out] dest destination
void glm_mat3x4_scale(mat3x4 m, float s)

multiply matrix with scalar

Parameters:
[in, out] m matrix
[in] s scalar