scale
and scalef
methods
=> 6e175a9f1b61f6152122988eb2c3801964473e9f
[1mdiff --git a/include/the_Foundation/math_generic.h b/include/the_Foundation/math_generic.h[m [1mindex ab89d96..0d81a4b 100644[m [1m--- a/include/the_Foundation/math_generic.h[m [1m+++ b/include/the_Foundation/math_generic.h[m [36m@@ -634,9 +634,17 @@[m [miLocalDef void initScale_Mat4(iMat4 *d, iFloat3 v) {[m }[m [m iLocalDef void scale_Mat4(iMat4 *d, iFloat3 v) {[m [31m- d->col[0].value.x *= v.value.x;[m [31m- d->col[1].value.y *= v.value.y;[m [31m- d->col[2].value.z *= v.value.z;[m [32m+[m[32m iMat4 s; initScale_Mat4(&s, v);[m [32m+[m[32m mul_Mat4(d, &s);[m [32m+[m[32m}[m [32m+[m [32m+[m[32miLocalDef void scalef_Mat4(iMat4 *d, float v) {[m [32m+[m[32m iMat4 s;[m [32m+[m[32m s.col[0] = init_F4(v, 0, 0, 0);[m [32m+[m[32m s.col[1] = init_F4(0, v, 0, 0);[m [32m+[m[32m s.col[2] = init_F4(0, 0, v, 0);[m [32m+[m[32m s.col[3] = init_F4(0, 0, 0, 1);[m [32m+[m[32m mul_Mat4(d, &s);[m }[m [m void initRotate_Mat4(iMat4 *d, iFloat3 axis, float degrees);[m [36m@@ -646,12 +654,6 @@[m [miLocalDef void rotate_Mat4(iMat4 *d, iFloat3 axis, float degrees) {[m mul_Mat4(d, &rot);[m }[m [m [31m-iLocalDef void scalef_Mat4(iMat4 *d, float v) {[m [31m- d->col[0].value.x *= v;[m [31m- d->col[1].value.y *= v;[m [31m- d->col[2].value.z *= v;[m [31m-}[m [31m-[m iLocalDef iFloat4 mulF4_Mat4(const iMat4 *d, const iFloat4 v) {[m return init_F4(dot_F4(row_Mat4(d, 0), v),[m dot_F4(row_Mat4(d, 1), v),[m [1mdiff --git a/include/the_Foundation/math_sse.h b/include/the_Foundation/math_sse.h[m [1mindex 37b7bb0..8980aff 100644[m [1m--- a/include/the_Foundation/math_sse.h[m [1m+++ b/include/the_Foundation/math_sse.h[m [36m@@ -407,15 +407,17 @@[m [miLocalDef void initScale_Mat4(iMat4 *d, iFloat3 v) {[m }[m [m iLocalDef void scale_Mat4(iMat4 *d, iFloat3 v) {[m [31m- d->col[0] = _mm_mul_ps(d->col[0], _mm_set_ps(1, 1, x_F3(v), 1));[m [31m- d->col[1] = _mm_mul_ps(d->col[1], _mm_set_ps(1, y_F3(v), 1, 1));[m [31m- d->col[2] = _mm_mul_ps(d->col[2], _mm_set_ps(z_F3(v), 1, 1, 1));[m [32m+[m[32m iMat4 s; initScale_Mat4(&s, v);[m [32m+[m[32m mul_Mat4(d, &s);[m }[m [m iLocalDef void scalef_Mat4(iMat4 *d, float v) {[m [31m- d->col[0] = _mm_mul_ps(d->col[0], _mm_set_ps(1, 1, v, 1));[m [31m- d->col[1] = _mm_mul_ps(d->col[1], _mm_set_ps(1, v, 1, 1));[m [31m- d->col[2] = _mm_mul_ps(d->col[2], _mm_set_ps(v, 1, 1, 1));[m [32m+[m[32m iMat4 s;[m [32m+[m[32m s.col[0] = _mm_set_ps(0, 0, v, 0);[m [32m+[m[32m s.col[1] = _mm_set_ps(0, v, 0, 0);[m [32m+[m[32m s.col[2] = _mm_set_ps(v, 0, 0, 0);[m [32m+[m[32m s.col[3] = _mm_set_ps(0, 0, 0, 1);[m [32m+[m[32m mul_Mat4(d, &s);[m }[m [m void initRotate_Mat4(iMat4 *d, iFloat3 axis, float degrees);[m
text/gemini; charset=utf-8
This content has been proxied by September (3851b).