diff --git a/experiments/2024-12-09/src/geometry/primitives.rs b/experiments/2024-12-09/src/geometry/primitives.rs index 8dc9b5673..6fc4dae66 100644 --- a/experiments/2024-12-09/src/geometry/primitives.rs +++ b/experiments/2024-12-09/src/geometry/primitives.rs @@ -44,9 +44,11 @@ pub struct Triangle { pub vertices: [Vertex; 3], } -impl From<[Vertex; 3]> for Triangle { - fn from(vertices: [Vertex; 3]) -> Self { - Self { vertices } +impl From<[&Vertex; 3]> for Triangle { + fn from(vertices: [&Vertex; 3]) -> Self { + Self { + vertices: vertices.map(|vertex| *vertex), + } } } diff --git a/experiments/2024-12-09/src/model.rs b/experiments/2024-12-09/src/model.rs index f87e7e536..aa0e06f0e 100644 --- a/experiments/2024-12-09/src/model.rs +++ b/experiments/2024-12-09/src/model.rs @@ -16,16 +16,16 @@ pub fn model(shape: &mut Shape) { [a, b, c, d, e, f, g, h].map(|vertex| vertex.get()); shape - .triangle([a, e, g]) // left - .triangle([a, g, c]) - .triangle([b, d, h]) // right - .triangle([b, h, f]) - .triangle([a, b, f]) // front - .triangle([a, f, e]) - .triangle([c, h, d]) // back - .triangle([c, g, h]) - .triangle([a, c, b]) // bottom - .triangle([b, c, d]) - .triangle([e, f, h]) // top - .triangle([e, h, g]); + .triangle([&a, &e, &g]) // left + .triangle([&a, &g, &c]) + .triangle([&b, &d, &h]) // right + .triangle([&b, &h, &f]) + .triangle([&a, &b, &f]) // front + .triangle([&a, &f, &e]) + .triangle([&c, &h, &d]) // back + .triangle([&c, &g, &h]) + .triangle([&a, &c, &b]) // bottom + .triangle([&b, &c, &d]) + .triangle([&e, &f, &h]) // top + .triangle([&e, &h, &g]); }