]> gitweb.factorcode.org Git - factor.git/blob - extra/euler/b-rep/triangulation/triangulation-tests.factor
14c2e6cbcd9c24b465575f4e0c894d0214b61b14
[factor.git] / extra / euler / b-rep / triangulation / triangulation-tests.factor
1 USING: accessors arrays euler.b-rep.examples
2 euler.b-rep.triangulation math.vectors.simd.cords sequences
3 tools.test gml kernel ;
4 IN: euler.b-rep.triangulation.tests
5
6 : triangle-vx-positions ( triangles -- positions )
7     [ [ position>> ] { } map-as ] { } map-as ;
8
9 [
10     {
11         {
12             double-4{ 1.0 1.0 -1.0 0.0 }
13             double-4{ -1.0 -1.0 -1.0 0.0 }
14             double-4{ -1.0 1.0 -1.0 0.0 }
15         }
16         {
17             double-4{ -1.0 -1.0 -1.0 0.0 }
18             double-4{ 1.0 1.0 -1.0 0.0 }
19             double-4{ 1.0 -1.0 -1.0 0.0 }
20         }
21     }
22 ] [ valid-cube-b-rep faces>> first triangulate-face triangle-vx-positions ] unit-test
23
24 [ { } ] [ degenerate-incomplete-face faces>> first triangulate-face triangle-vx-positions ] unit-test
25 [ {
26     {
27         double-4{ 1.0 1.0 0.0 0.0 }
28         double-4{ -1.0 -1.0 0.0 0.0 }
29         double-4{ -1.0 1.0 0.0 0.0 }
30     }
31     {
32         double-4{ -1.0 -1.0 0.0 0.0 }
33         double-4{ 1.0 1.0 0.0 0.0 }
34         double-4{ 1.0 -1.0 0.0 0.0 }
35     }
36 } ] [ partially-degenerate-second-face faces>> second triangulate-face triangle-vx-positions ] unit-test
37
38 [
39     {
40         {
41             double-4{ -1.0 1.0 0.0 0.0 }
42             double-4{ -0.5 0.5 0.0 0.0 }
43             double-4{ -1.0 -1.0 0.0 0.0 }
44         }
45         {
46             double-4{ -0.5 0.5 0.0 0.0 }
47             double-4{ -1.0 1.0 0.0 0.0 }
48             double-4{ 1.0 1.0 0.0 0.0 }
49         }
50         {
51             double-4{ -0.5 0.5 0.0 0.0 }
52             double-4{ 1.0 1.0 0.0 0.0 }
53             double-4{ 0.5 0.5 0.0 0.0 }
54         }
55         {
56             double-4{ 0.5 0.5 0.0 0.0 }
57             double-4{ 1.0 1.0 0.0 0.0 }
58             double-4{ 0.5 -0.5 0.0 0.0 }
59         }
60         {
61             double-4{ -1.0 -1.0 0.0 0.0 }
62             double-4{ -0.5 -0.5 0.0 0.0 }
63             double-4{ 1.0 -1.0 0.0 0.0 }
64         }
65         {
66             double-4{ -0.5 -0.5 0.0 0.0 }
67             double-4{ -1.0 -1.0 0.0 0.0 }
68             double-4{ -0.5 0.5 0.0 0.0 }
69         }
70         {
71             double-4{ 1.0 -1.0 0.0 0.0 }
72             double-4{ -0.5 -0.5 0.0 0.0 }
73             double-4{ 0.5 -0.5 0.0 0.0 }
74         }
75         {
76             double-4{ 1.0 -1.0 0.0 0.0 }
77             double-4{ 0.5 -0.5 0.0 0.0 }
78             double-4{ 1.0 1.0 0.0 0.0 }
79         }
80     }
81 ] [
82     [ "vocab:gml/examples/torus.gml" run-gml-file ] make-gml nip
83     faces>> first triangulate-face triangle-vx-positions
84 ] unit-test