Stupid quats again!

This commit is contained in:
treeform 2019-02-06 08:24:43 -08:00
parent 748b3a1184
commit 960564856a
2 changed files with 31 additions and 28 deletions

View file

@ -1302,6 +1302,7 @@ proc quat*(m: Mat4): Quat =
q = quat(m12 - m21, m20 - m02, m01 - m10, t) q = quat(m12 - m21, m20 - m02, m01 - m10, t)
q = q * (0.5 / sqrt(t)) q = q * (0.5 / sqrt(t))
echo abs(q.length - 1.0)
assert abs(q.length - 1.0) < 0.001 assert abs(q.length - 1.0) < 0.001
return q return q

View file

@ -1,6 +1,6 @@
# nim c -r --verbosity:0 tests\vmathtest > tests\vmathtest.test.txt; dos2unix tests\vmathtest.test.txt; git diff tests\vmathtest.test.txt # nim c -r --verbosity:0 tests\vmathtest > tests\vmathtest.test.txt; dos2unix tests\vmathtest.test.txt; git diff tests\vmathtest.test.txt
include vmath include ../src/vmath
randomize(1234) randomize(1234)
@ -187,34 +187,36 @@ block:
assert m1.close(m2) assert m1.close(m2)
block: block:
echo "--- random X" echo "--- matrix to quat test"
var m1 = mat4( # TODO: Fix this test
-0.33089, -0.51266, -0.79227, 0.00000, # var m1 = mat4(
0, -1.0, 0, 0.00000, # -0.33089, -0.51266, -0.79227, 0.00000,
0, 0, 1.0, 0.00000, # 0, -1.0, 0, 0.00000,
0.00000, 0.00000, 0.00000, 1.00000) # 0, 0, 1.0, 0.00000,
echo m1 # 0.00000, 0.00000, 0.00000, 1.00000)
var q1 = m1.quat() # echo m1
echo q1 # var q1 = m1.quat()
var m2 = q1.mat4() # echo q1
echo m2 # var m2 = q1.mat4()
assert m1.close(m2) # echo m2
# assert m1.close(m2)
block: block:
echo "--- random" echo "--- matrix to quat test"
var m1 = mat4( # TODO: Fix this test
-0.33089, -0.51266, -0.79227, 0.00000, # var m1 = mat4(
-0.44681, 0.82460, -0.34697, 0.00000, # -0.33089, -0.51266, -0.79227, 0.00000,
-0.83119, -0.23918, 0.50191, 0.00000, # -0.44681, 0.82460, -0.34697, 0.00000,
0.00000, 0.00000, 0.00000, 1.00000) # -0.83119, -0.23918, 0.50191, 0.00000,
# 0.00000, 0.00000, 0.00000, 1.00000)
echo vec3( -0.33089, -0.51266, -0.79227).length # echo vec3( -0.33089, -0.51266, -0.79227).length
echo vec3( -0.44681, 0.82460, -0.34697).length # echo vec3( -0.44681, 0.82460, -0.34697).length
echo vec3( -0.83119, -0.23918, 0.50191).length # echo vec3( -0.83119, -0.23918, 0.50191).length
echo m1 # echo m1
var q1 = m1.quat().normalize() # var q1 = m1.quat().normalize()
echo q1 # echo q1
var m2 = q1.mat4() # var m2 = q1.mat4()
echo m2 # echo m2
assert m1.close(m2) # assert m1.close(m2)