diff options
author | quou <quou@disroot.org> | 2025-01-14 00:04:55 +1100 |
---|---|---|
committer | quou <quou@disroot.org> | 2025-01-14 00:04:55 +1100 |
commit | fd488f9603f22db0312eadcdb93b7880922dc9a7 (patch) | |
tree | 15b7986e2c06eea57575f4c97811cbc65eaa120a /maths.cpp | |
parent | dfa0b6de5a070d1be63d04574c3b8ce469518250 (diff) |
misc refactoring
Diffstat (limited to 'maths.cpp')
-rw-r--r-- | maths.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
@@ -178,9 +178,9 @@ m4f m4f::orth(float l, float r, float b, float t, float n, float f) { return res; } -m4f m4f::inverse() { +m4f m4f::inverse() const { const float* mm = (float*)m; - + m4f r; float t0 = mm[10] * mm[15]; float t1 = mm[14] * mm[11]; float t2 = mm[6] * mm[15]; @@ -205,17 +205,12 @@ m4f m4f::inverse() { float t21 = mm[8] * mm[1]; float t22 = mm[0] * mm[5]; float t23 = mm[4] * mm[1]; - - m4f r(1.0f); float* o = (float*)r.m; - o[0] = (t0 * mm[5] + t3 * mm[9] + t4 * mm[13]) - (t1 * mm[5] + t2 * mm[9] + t5 * mm[13]); o[1] = (t1 * mm[1] + t6 * mm[9] + t9 * mm[13]) - (t0 * mm[1] + t7 * mm[9] + t8 * mm[13]); o[2] = (t2 * mm[1] + t7 * mm[5] + t10 * mm[13]) - (t3 * mm[1] + t6 * mm[5] + t11 * mm[13]); o[3] = (t5 * mm[1] + t8 * mm[5] + t11 * mm[9]) - (t4 * mm[1] + t9 * mm[5] + t10 * mm[9]); - float d = 1.0f / (mm[0] * o[0] + mm[4] * o[1] + mm[8] * o[2] + mm[12] * o[3]); - o[0] = d * o[0]; o[1] = d * o[1]; o[2] = d * o[2]; @@ -232,11 +227,10 @@ m4f m4f::inverse() { o[13] = d * ((t20 * mm[14] + t12 * mm[2] + t19 * mm[10]) - (t18 * mm[10] + t21 * mm[14] + t13 * mm[2])); o[14] = d * ((t18 * mm[6] + t23 * mm[14] + t15 * mm[2]) - (t22 * mm[14] + t14 * mm[2] + t19 * mm[6])); o[15] = d * ((t22 * mm[10] + t16 * mm[2] + t21 * mm[6]) - (t20 * mm[6] + t23 * mm[10] + t17 * mm[2])); - return r; } -m4f m4f::transposed() { +m4f m4f::transposed() const { m4f r(1.0f); r.m[0][0] = m[0][0]; r.m[1][0] = m[0][1]; |