Skip to content

Commit

Permalink
Add scale matrices
Browse files Browse the repository at this point in the history
  • Loading branch information
RobDangerous committed Sep 16, 2024
1 parent 244e691 commit fc56f41
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions Sources/kinc/math/matrix.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ KINC_FUNC kinc_matrix3x3_t kinc_matrix3x3_rotation_x(float alpha);
KINC_FUNC kinc_matrix3x3_t kinc_matrix3x3_rotation_y(float alpha);
KINC_FUNC kinc_matrix3x3_t kinc_matrix3x3_rotation_z(float alpha);
KINC_FUNC kinc_matrix3x3_t kinc_matrix3x3_translation(float x, float y);
KINC_FUNC kinc_matrix3x3_t kinc_matrix3x3_scale(float x, float y, float z);
KINC_FUNC kinc_matrix3x3_t kinc_matrix3x3_multiply(kinc_matrix3x3_t *a, kinc_matrix3x3_t *b);
KINC_FUNC kinc_vector3_t kinc_matrix3x3_multiply_vector(kinc_matrix3x3_t *a, kinc_vector3_t b);

Expand All @@ -39,6 +40,7 @@ KINC_FUNC kinc_matrix4x4_t kinc_matrix4x4_rotation_x(float alpha);
KINC_FUNC kinc_matrix4x4_t kinc_matrix4x4_rotation_y(float alpha);
KINC_FUNC kinc_matrix4x4_t kinc_matrix4x4_rotation_z(float alpha);
KINC_FUNC kinc_matrix4x4_t kinc_matrix4x4_translation(float x, float y, float z);
KINC_FUNC kinc_matrix4x4_t kinc_matrix4x4_scale(float x, float y, float z);
KINC_FUNC kinc_matrix4x4_t kinc_matrix4x4_multiply(kinc_matrix4x4_t *a, kinc_matrix4x4_t *b);
KINC_FUNC kinc_vector4_t kinc_matrix4x4_multiply_vector(kinc_matrix4x4_t *a, kinc_vector4_t b);

Expand Down Expand Up @@ -126,6 +128,14 @@ kinc_matrix3x3_t kinc_matrix3x3_translation(float x, float y) {
return m;
}

kinc_matrix3x3_t kinc_matrix3x3_scale(float x, float y, float z) {
kinc_matrix3x3_t m = kinc_matrix3x3_identity();
kinc_matrix3x3_set(&m, 0, 0, x);
kinc_matrix3x3_set(&m, 1, 1, y);
kinc_matrix3x3_set(&m, 2, 2, z);
return m;
}

#ifdef __clang__
#pragma clang diagnostic ignored "-Wconditional-uninitialized"
#endif
Expand Down Expand Up @@ -234,6 +244,14 @@ kinc_matrix4x4_t kinc_matrix4x4_translation(float x, float y, float z) {
return m;
}

kinc_matrix4x4_t kinc_matrix4x4_scale(float x, float y, float z) {
kinc_matrix4x4_t m = kinc_matrix4x4_identity();
kinc_matrix4x4_set(&m, 0, 0, x);
kinc_matrix4x4_set(&m, 1, 1, y);
kinc_matrix4x4_set(&m, 2, 2, z);
return m;
}

kinc_matrix4x4_t kinc_matrix4x4_multiply(kinc_matrix4x4_t *a, kinc_matrix4x4_t *b) {
kinc_matrix4x4_t result;
for (unsigned x = 0; x < 4; ++x)
Expand Down

0 comments on commit fc56f41

Please sign in to comment.