diff options
author | Nathan Wiebe Neufeldt <wn.nathan@gmail.com> | 2019-04-15 16:08:07 -0400 |
---|---|---|
committer | Nathan Wiebe Neufeldt <wn.nathan@gmail.com> | 2019-04-15 16:08:07 -0400 |
commit | 06449fb862afea9092e33adfda416d5b677ad05a (patch) | |
tree | 1ce26bd0895048efcca8f6e1a43e0ca68f3b4a1d | |
parent | 4af990a5e6dd8eb45426d1af6e25899adbf96d79 (diff) | |
download | linmath.h-06449fb862afea9092e33adfda416d5b677ad05a.tar.gz linmath.h-06449fb862afea9092e33adfda416d5b677ad05a.tar.bz2 |
Fix bug in mat4x4_orthonormalize
The Gram-Schmidt process was incorrect, resulting in non-orthogonal
columns.
-rw-r--r-- | linmath.h | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -321,12 +321,11 @@ LINMATH_H_FUNC void mat4x4_orthonormalize(mat4x4 R, mat4x4 M) s = vec3_mul_inner(R[1], R[2]); vec3_scale(h, R[2], s); vec3_sub(R[1], R[1], h); - vec3_norm(R[2], R[2]); + vec3_norm(R[1], R[1]); - s = vec3_mul_inner(R[1], R[2]); + s = vec3_mul_inner(R[0], R[2]); vec3_scale(h, R[2], s); - vec3_sub(R[1], R[1], h); - vec3_norm(R[1], R[1]); + vec3_sub(R[0], R[0], h); s = vec3_mul_inner(R[0], R[1]); vec3_scale(h, R[1], s); |