mat_multiply(float* matrix1,float* matrix2)

Multiplies matrix1 by matrix2, and copies the result to matrix1.

Parameters:

matrix1 - target matrix
matrix2 - source matrix

Speed:

Fast

Remarks:

Multiplying two transformation matrices results in a matrix that concatenates both transformations.

Algorithm:

Row vectors for matrix1
M1 := |m11 m12 m13 m14|
M2 := |m21 m22 m23 m24|
M3 := |m31 m32 m33 m34|
M4 := |m41 m42 m43 m44|

Column vectors for matrix2
N1 := |n11 n21 n31 n41)
N2 := |n12 n22 n32 n42)
N3 := |n13 n23 n33 n43)
N4 := |n14 n24 n34 n44)

The result is a matrix of dot products:
| m11 m12 m13 m14 |   | n11 n12 n13 n14 |   | M1*N1 M1*N2 M1*N3 M1*N4 |
| m21 m22 m23 m24 | * | n21 n22 n23 n24 | = | M2*N1 M2*N2 M2*N3 M2*N4 | | m31 m32 m33 m34 | | n31 n32 n33 n34 | | M3*N1 M3*N2 M3*N3 M3*N4 | | m41 m42 m43 m44 | | n44 n42 n43 n44 | | M4*N1 M4*N2 M4*N3 M4*N4 |

Example:

mat_multiply(my_matrix, mat_proj);

See also:

matrix, predefined matrices , mat_identity, mat_scale, mat_set, mat_inverse, mat_transpose, mat_multiply ► latest version online