USING: accessors arrays euler.b-rep.examples euler.b-rep.triangulation math.vectors.simd.cords sequences tools.test gml kernel ; IN: euler.b-rep.triangulation.tests : triangle-vx-positions ( triangles -- positions ) [ [ position>> ] { } map-as ] { } map-as ; [ { { double-4{ 1.0 1.0 -1.0 0.0 } double-4{ -1.0 -1.0 -1.0 0.0 } double-4{ -1.0 1.0 -1.0 0.0 } } { double-4{ -1.0 -1.0 -1.0 0.0 } double-4{ 1.0 1.0 -1.0 0.0 } double-4{ 1.0 -1.0 -1.0 0.0 } } } ] [ valid-cube-b-rep faces>> first triangulate-face triangle-vx-positions ] unit-test [ { } ] [ degenerate-incomplete-face faces>> first triangulate-face triangle-vx-positions ] unit-test [ { { double-4{ 1.0 1.0 0.0 0.0 } double-4{ -1.0 -1.0 0.0 0.0 } double-4{ -1.0 1.0 0.0 0.0 } } { double-4{ -1.0 -1.0 0.0 0.0 } double-4{ 1.0 1.0 0.0 0.0 } double-4{ 1.0 -1.0 0.0 0.0 } } } ] [ partially-degenerate-second-face faces>> second triangulate-face triangle-vx-positions ] unit-test [ { { double-4{ -1.0 1.0 0.0 0.0 } double-4{ -0.5 0.5 0.0 0.0 } double-4{ -1.0 -1.0 0.0 0.0 } } { double-4{ -0.5 0.5 0.0 0.0 } double-4{ -1.0 1.0 0.0 0.0 } double-4{ 1.0 1.0 0.0 0.0 } } { double-4{ -0.5 0.5 0.0 0.0 } double-4{ 1.0 1.0 0.0 0.0 } double-4{ 0.5 0.5 0.0 0.0 } } { double-4{ 0.5 0.5 0.0 0.0 } double-4{ 1.0 1.0 0.0 0.0 } double-4{ 0.5 -0.5 0.0 0.0 } } { double-4{ -1.0 -1.0 0.0 0.0 } double-4{ -0.5 -0.5 0.0 0.0 } double-4{ 1.0 -1.0 0.0 0.0 } } { double-4{ -0.5 -0.5 0.0 0.0 } double-4{ -1.0 -1.0 0.0 0.0 } double-4{ -0.5 0.5 0.0 0.0 } } { double-4{ 1.0 -1.0 0.0 0.0 } double-4{ -0.5 -0.5 0.0 0.0 } double-4{ 0.5 -0.5 0.0 0.0 } } { double-4{ 1.0 -1.0 0.0 0.0 } double-4{ 0.5 -0.5 0.0 0.0 } double-4{ 1.0 1.0 0.0 0.0 } } } ] [ [ "vocab:gml/examples/torus.gml" run-gml-file ] make-gml nip faces>> first triangulate-face triangle-vx-positions ] unit-test