]> gitweb.factorcode.org Git - factor.git/commitdiff
math.matrices: move normal word from gpu.demos.bunny and reverse sign
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sat, 24 Jul 2010 03:41:08 +0000 (20:41 -0700)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Sat, 24 Jul 2010 03:41:08 +0000 (20:41 -0700)
basis/math/matrices/matrices-tests.factor
basis/math/matrices/matrices.factor
basis/math/vectors/simd/simd-tests.factor
extra/gpu/demos/bunny/bunny.factor

index b8277412091d755b3e9947d6cbfd407bf677d1a2..3996a475ba37110ca58f01e3017fbfae2fbdd45b 100644 (file)
@@ -103,7 +103,7 @@ USING: math.matrices math.vectors tools.test math ;
 [ { 1 0 0 } ] [ { 0 1 0 } { 0 0 1 } cross ] unit-test
 [ { 0 1 0 } ] [ { 0 0 1 } { 1 0 0 } cross ] unit-test
 [ { 0.0 -0.707 0.707 } ] [ { 1.0 0.0 0.0 } { 0.0 0.707 0.707 } cross ] unit-test
-
+[ { 0 -2 2 } ] [ { -1 -1 -1 } { 1 -1 -1 } cross ] unit-test
 [ { 1 0 0 } ] [ { 1 1 0 } { 1 0 0 } proj ] unit-test
 
 [ { { 4181 6765 } { 6765 10946 } } ]
index 216d2c31bbb142bd7d104ba60abc1540d098d32d..35d6f380cbda6d7e18dceae5c6db9109962632fb 100644 (file)
@@ -114,6 +114,9 @@ IN: math.matrices
     [ [ { 1 2 0 } vshuffle ] [ { 2 0 1 } vshuffle ] bi* v* ]
     [ [ { 2 0 1 } vshuffle ] [ { 1 2 0 } vshuffle ] bi* v* ] 2bi v- ; inline
 
+:: normal ( vec1 vec2 vec3 -- vec4 )
+    vec2 vec1 v- vec3 vec1 v- cross normalize ; inline
+
 : proj ( v u -- w )
     [ [ v. ] [ norm-sq ] bi / ] keep n*v ;
 
index 3b8ae7d2b4ed9fdf5e8633ff72af29ff2683d366..5a0a98107cfa2baa76b9cc883d52449aaf29ccd6 100644 (file)
@@ -616,10 +616,14 @@ STRUCT: simd-struct
 
 ! Test cross product
 [ float-4{ 0.0 0.0 1.0 0.0 } ] [ float-4{ 1.0 0.0 0.0 0.0 } float-4{ 0.0 1.0 0.0 0.0 } cross ] unit-test
+[ float-4{ 0.0 0.0 1.0 0.0 } ] [ float-4{ 1.0 0.0 0.0 0.0 } float-4{ 0.0 1.0 0.0 0.0 } [ { float-4 float-4 } declare cross ] compile-call ] unit-test
 [ float-4{ 0.0 -1.0 0.0 0.0 } ] [ float-4{ 1.0 0.0 0.0 0.0 } float-4{ 0.0 0.0 1.0 0.0 } cross ] unit-test
+[ float-4{ 0.0 -1.0 0.0 0.0 } ] [ float-4{ 1.0 0.0 0.0 0.0 } float-4{ 0.0 0.0 1.0 0.0 } [ { float-4 float-4 } declare cross ] compile-call ] unit-test
 
 [ double-4{ 0.0 0.0 1.0 0.0 } ] [ double-4{ 1.0 0.0 0.0 0.0 } double-4{ 0.0 1.0 0.0 0.0 } cross ] unit-test
+[ double-4{ 0.0 0.0 1.0 0.0 } ] [ double-4{ 1.0 0.0 0.0 0.0 } double-4{ 0.0 1.0 0.0 0.0 } [ { double-4 double-4 } declare cross ] compile-call ] unit-test
 [ double-4{ 0.0 -1.0 0.0 0.0 } ] [ double-4{ 1.0 0.0 0.0 0.0 } double-4{ 0.0 0.0 1.0 0.0 } cross ] unit-test
+[ double-4{ 0.0 -1.0 0.0 0.0 } ] [ double-4{ 1.0 0.0 0.0 0.0 } double-4{ 0.0 0.0 1.0 0.0 } [ { double-4 double-4 } declare cross ] compile-call ] unit-test
 
 ! CSSA bug
 [ 4000000 ] [
index 28deff905c39ed1924d7613ed4f2b8721b24f00d..f29e12c1a27a4673393d40e1fe6f71da7caa83f9 100644 (file)
@@ -119,10 +119,6 @@ UNIFORM-TUPLE: loading-uniforms
     100000 <uint-vector>
     (parse-bunny-model) ; inline
 
-:: normal ( a b c -- normal )
-    c a v-
-    b a v- cross normalize ; inline
-
 :: calc-bunny-normal ( a b c vertexes -- )
     a b c [ vertexes nth vertex>> ] tri@ normal :> n
     a b c [ vertexes nth [ n v+ ] change-normal drop ] tri@ ; inline