Skip to content

Commit

Permalink
Merge pull request #35 from AlexNecakov/transpose_matrix
Browse files Browse the repository at this point in the history
added m3 and m4 transpose
  • Loading branch information
asbott authored Nov 4, 2024
2 parents 5eb8a02 + 7953992 commit 9bb5c16
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions oogabooga/linmath.c
Original file line number Diff line number Diff line change
Expand Up @@ -581,6 +581,31 @@ Matrix4 m4_scalar(float32 scalar) {

inline Matrix4 m4_identity() { return m4_scalar(1.0); }

Matrix4 m4_transpose(Matrix4 m) {
Matrix4 transpose;
transpose.m[0][0] = m.m[0][0];
transpose.m[0][1] = m.m[1][0];
transpose.m[0][2] = m.m[2][0];
transpose.m[0][3] = m.m[3][0];

transpose.m[1][0] = m.m[0][1];
transpose.m[1][1] = m.m[1][1];
transpose.m[1][2] = m.m[2][1];
transpose.m[1][3] = m.m[3][1];

transpose.m[2][0] = m.m[0][2];
transpose.m[2][1] = m.m[1][2];
transpose.m[2][2] = m.m[2][2];
transpose.m[2][3] = m.m[3][2];

transpose.m[3][0] = m.m[0][3];
transpose.m[3][1] = m.m[1][3];
transpose.m[3][2] = m.m[2][3];
transpose.m[3][3] = m.m[3][3];

return transpose;
}

Matrix4 m4_make_translation(Vector3f32 translation) {
Matrix4 m = m4_scalar(1.0);
m.m[0][0] = 1.0f; m.m[1][1] = 1.0f; m.m[2][2] = 1.0f; m.m[3][3] = 1.0f;
Expand Down Expand Up @@ -862,6 +887,23 @@ Matrix3 m3_scalar(float32 scalar) {

inline Matrix3 m3_identity() { return m3_scalar(1.0f); }

Matrix3 m3_transpose(Matrix3 m) {
Matrix3 transpose;
transpose.m[0][0] = m.m[0][0];
transpose.m[0][1] = m.m[1][0];
transpose.m[0][2] = m.m[2][0];

transpose.m[1][0] = m.m[0][1];
transpose.m[1][1] = m.m[1][1];
transpose.m[1][2] = m.m[2][1];

transpose.m[2][0] = m.m[0][2];
transpose.m[2][1] = m.m[1][2];
transpose.m[2][2] = m.m[2][2];

return transpose;
}

Matrix3 m3_make_translation(Vector2f32 translation) {
Matrix3 m = m3_scalar(1.0f);
m.m[0][2] = translation.x;
Expand Down

0 comments on commit 9bb5c16

Please sign in to comment.