From 76c17825fd0586f459110da9e726d1b519872323 Mon Sep 17 00:00:00 2001 From: treeform Date: Mon, 23 Feb 2026 08:22:07 -0800 Subject: [PATCH 1/3] Remove ugly spaces. --- src/vmath.nim | 2 +- src/vmath/macroswizzle.nim | 3 +-- tests/bench.nim | 2 +- tests/bench_isNan.nim | 2 +- tests/bench_raytracer.nim | 2 +- tests/bench_raytracer_glm.nim | 2 +- tests/bench_rep.nim | 2 +- tests/bench_swizzle.nim | 2 +- tests/test.nim | 2 +- tools/genswizzle.nim | 2 +- 10 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/vmath.nim b/src/vmath.nim index fe67f7e..8dcb438 100644 --- a/src/vmath.nim +++ b/src/vmath.nim @@ -1772,7 +1772,7 @@ proc mat4*[T](q: GVec4[T]): GMat4[T] = result[1, 1] = 1 - 2 * (xx + zz) result[2, 1] = 0 + 2 * (yz - xw) result[3, 1] = 0 - + result[0, 2] = 0 + 2 * (xz - yw) result[1, 2] = 0 + 2 * (yz + xw) result[2, 2] = 1 - 2 * (xx + yy) diff --git a/src/vmath/macroswizzle.nim b/src/vmath/macroswizzle.nim index 77d4a37..540a91d 100644 --- a/src/vmath/macroswizzle.nim +++ b/src/vmath/macroswizzle.nim @@ -1,5 +1,4 @@ - -import +import std/[macros] {.experimental: "dotOperators".} diff --git a/tests/bench.nim b/tests/bench.nim index 9e13bb8..7583720 100644 --- a/tests/bench.nim +++ b/tests/bench.nim @@ -1,4 +1,4 @@ -import +import benchy, vmath diff --git a/tests/bench_isNan.nim b/tests/bench_isNan.nim index 77eace4..01ed304 100644 --- a/tests/bench_isNan.nim +++ b/tests/bench_isNan.nim @@ -1,4 +1,4 @@ -import +import benchy, vmath diff --git a/tests/bench_raytracer.nim b/tests/bench_raytracer.nim index f70ef6f..c334715 100644 --- a/tests/bench_raytracer.nim +++ b/tests/bench_raytracer.nim @@ -2,7 +2,7 @@ ## MIT License ## Copyright (c) 2021 Edin Omeragic -import +import std/math, benchy, chroma, pixie, vmath diff --git a/tests/bench_raytracer_glm.nim b/tests/bench_raytracer_glm.nim index 64d0e72..f88f2a6 100644 --- a/tests/bench_raytracer_glm.nim +++ b/tests/bench_raytracer_glm.nim @@ -2,7 +2,7 @@ ## MIT License ## Copyright (c) 2021 Edin Omeragic -import +import std/math, benchy, chroma, glm from pixie import Image, newImage, writeFile, dataIndex diff --git a/tests/bench_rep.nim b/tests/bench_rep.nim index a82d09d..38c5ee3 100644 --- a/tests/bench_rep.nim +++ b/tests/bench_rep.nim @@ -1,4 +1,4 @@ -import +import benchy type diff --git a/tests/bench_swizzle.nim b/tests/bench_swizzle.nim index 01aa8f5..7ef0dd2 100644 --- a/tests/bench_swizzle.nim +++ b/tests/bench_swizzle.nim @@ -1,4 +1,4 @@ -import +import benchy, vmath diff --git a/tests/test.nim b/tests/test.nim index 7f57da1..67b35fd 100644 --- a/tests/test.nim +++ b/tests/test.nim @@ -1,4 +1,4 @@ -import +import std/random, vmath diff --git a/tools/genswizzle.nim b/tools/genswizzle.nim index 7e108bb..6b123db 100644 --- a/tools/genswizzle.nim +++ b/tools/genswizzle.nim @@ -1,4 +1,4 @@ -import +import std/strformat var From 88f98a88dc71bee5817e69406842a3940bd53fcb Mon Sep 17 00:00:00 2001 From: treeform Date: Mon, 23 Feb 2026 20:26:07 -0800 Subject: [PATCH 2/3] just use nim --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 597459f..36a014a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,8 +19,8 @@ jobs: - uses: treeform/setup-nim-action@v2 with: nim-version: ${{ matrix.nim-version }} - - run: nimble test -y - - run: nimble test --gc:orc -y - - run: nimble test -y -d:vmathObjBased - - run: nimble test -y -d:vmathArrayBased + - run: nim r tests/test.nim + - run: nim r --gc:arc tests/test.nim + - run: nim r -d:vmathObjBased tests/test.nim + - run: nim r -d:vmathArrayBased tests/test.nim - run: nim js -r tests/test.nim From ab7c1f755a9600d1b38cc46b3142e7f5437af849 Mon Sep 17 00:00:00 2001 From: treeform Date: Mon, 23 Feb 2026 20:33:20 -0800 Subject: [PATCH 3/3] Fix tests for quat to mat4 for OpenGL style matrix. --- tests/test.nim | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/test.nim b/tests/test.nim index 67b35fd..0d42eaa 100644 --- a/tests/test.nim +++ b/tests/test.nim @@ -703,8 +703,8 @@ block: ) doAssert rotate(1.0, dvec3(1, 0, 0)).inverse() ~= dmat4( 1.0, 0.0, 0.0, 0.0, - -0.0, 0.5403022766113281, 0.8414710164070129, 0.0, - 0.0, -0.8414710164070129, 0.5403022766113281, 0.0, + 0.0, 0.5403023058681398, -0.8414709848078965, 0.0, + 0.0, 0.8414709848078965, 0.5403023058681398, -0.0, 0.0, 0.0, 0.0, 1.0 ) @@ -749,56 +749,56 @@ block: 0, 0, 0, 1) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test Y 90. var m1 = rotate(PI/2, dvec3(0, 1, 0)) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test -Y 90. var m1 = rotate(PI/2, dvec3(0, -1, 0)) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test X 90. var m1 = rotate(PI/2, dvec3(1, 0, 0)) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test Y 90. var m1 = rotate(PI/2, dvec3(1, 0, 0)) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test 1,1,1 1.11rad. var m1 = rotate(PI*1.11, dvec3(1, 1, 1).normalize()) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test 1,1,1 1.11rad. var m1 = rotate(PI*1.11, dvec3(-1, 1, 1).normalize()) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test 1,1,1 1.11rad. var m1 = rotate(PI*1.11, dvec3(-1, 0.34, 1.123).normalize()) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test super random quat test. @@ -809,7 +809,7 @@ block: ) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # Test *=1 /=1 don't change anything. @@ -888,7 +888,7 @@ block: ) var q1 = m1.quat() var m2 = q1.mat4() - doAssert m1 ~= m2 + doAssert m1.transpose() ~= m2 block: # test fromTwoVectors @@ -896,14 +896,14 @@ block: a = vec3(1, 0, 0) b = vec3(0, 1, 0) q1 = fromTwoVectors(a, b) - doAssert q1.mat4 * a ~= b + doAssert q1.mat4.transpose() * a ~= b for i in 0 ..< 1000: let a = vec3(rand(2.0)-0.5, rand(2.0)-0.5, rand(2.0)-0.5).normalize() b = vec3(rand(2.0)-0.5, rand(2.0)-0.5, rand(2.0)-0.5).normalize() q = fromTwoVectors(a, b) - doAssert dist(q.mat4 * a, b) < 1E5 + doAssert dist(q.mat4.transpose() * a, b) < 1E5 block: let mat2d = translate(vec2(10, 20)) * rotate(45.toRadians) * scale(vec2(2))