]> gitweb.factorcode.org Git - factor.git/blob - unmaintained/euler/b-rep/triangulation/triangulation-tests.factor
bcc38b2185d61e9a4ecd7e32070796dbdb6dc344
[factor.git] / unmaintained / 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