5 mat3x3 make_mat3x3(float a11, float a12, float a13,
6 float a21, float a22, float a23,
7 float a31, float a32, float a33)
20 mat3x3 mat3x3_product(mat3x3 m1, mat3x3 m2)
24 for (int i = 0; i < 3; ++i) {
25 for (int j = 0; j < 3; ++j) {
27 for (int k = 0; k < 3; ++k) {
28 result.M[i][j] += m1.M[i][k] * m2.M[k][j];
36 mat3x3 mat3x3_product2(mat3x3 m1, mat3x3 m2, mat3x3 m3)
38 return mat3x3_product(m1, mat3x3_product(m2, m3));
41 mat3x3 trans_mat(float x, float y)
54 mat3x3 rot_mat(float angle)
58 {cosf(angle), -sinf(angle), 0.0f},
59 {sinf(angle), cosf(angle), 0.0f},
67 mat3x3 scale_mat(float factor)