Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion src/vmath.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 1 addition & 2 deletions src/vmath/macroswizzle.nim
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

import
import
std/[macros]

{.experimental: "dotOperators".}
Expand Down
2 changes: 1 addition & 1 deletion tests/bench.nim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import
import
benchy,
vmath

Expand Down
2 changes: 1 addition & 1 deletion tests/bench_isNan.nim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import
import
benchy,
vmath

Expand Down
2 changes: 1 addition & 1 deletion tests/bench_raytracer.nim
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
## MIT License
## Copyright (c) 2021 Edin Omeragic

import
import
std/math,
benchy, chroma, pixie, vmath

Expand Down
2 changes: 1 addition & 1 deletion tests/bench_raytracer_glm.nim
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion tests/bench_rep.nim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import
import
benchy

type
Expand Down
2 changes: 1 addition & 1 deletion tests/bench_swizzle.nim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import
import
benchy,
vmath

Expand Down
30 changes: 15 additions & 15 deletions tests/test.nim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import
import
std/random,
vmath

Expand Down Expand Up @@ -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
)

Expand Down Expand Up @@ -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.
Expand All @@ -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.
Expand Down Expand Up @@ -888,22 +888,22 @@ block:
)
var q1 = m1.quat()
var m2 = q1.mat4()
doAssert m1 ~= m2
doAssert m1.transpose() ~= m2

block:
# test fromTwoVectors
let
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))
Expand Down
2 changes: 1 addition & 1 deletion tools/genswizzle.nim
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import
import
std/strformat

var
Expand Down