From ea3a198bbbc4ddf011ea230721afe5bf230bff95 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Mon, 16 Dec 2024 20:48:42 +0100 Subject: [PATCH] Consolidate redundant code --- experiments/2024-12-09/src/geometry/shape.rs | 29 ++------------ experiments/2024-12-09/src/model.rs | 40 ++++++++++---------- 2 files changed, 23 insertions(+), 46 deletions(-) diff --git a/experiments/2024-12-09/src/geometry/shape.rs b/experiments/2024-12-09/src/geometry/shape.rs index f65a1f933..4e43f1f72 100644 --- a/experiments/2024-12-09/src/geometry/shape.rs +++ b/experiments/2024-12-09/src/geometry/shape.rs @@ -97,12 +97,10 @@ impl<'r, T> ShapeExtender<'r, (), T> { } impl<'r, NewOps, T> ShapeExtender<'r, NewOps, T> { - pub fn vertex( - self, - vertex: impl Into, - ) -> ShapeExtender<'r, NewOps::Out, T> + pub fn add(self, vertex: impl Into) -> ShapeExtender<'r, NewOps::Out, T> where - NewOps: CombinRight>, + NewOps: CombinRight>, + T: Operation + 'static, { let vertex = Handle::new(vertex.into()); @@ -118,27 +116,6 @@ impl<'r, NewOps, T> ShapeExtender<'r, NewOps, T> { } } - pub fn triangle( - self, - triangle: impl Into, - ) -> ShapeExtender<'r, NewOps::Out, T> - where - NewOps: CombinRight>, - { - let triangle = Handle::new(triangle.into()); - - self.sequence.push(OperationInSequence { - operation: triangle.to_any(), - previous: self.sequence.last().map(|op| HandleAny::new(op.clone())), - }); - - ShapeExtender { - sequence: self.sequence, - new_ops: self.new_ops.push_right(triangle), - _t: PhantomData, - } - } - pub fn get_new_ops(self) -> NewOps { self.new_ops } diff --git a/experiments/2024-12-09/src/model.rs b/experiments/2024-12-09/src/model.rs index 438c590e6..f36fa486f 100644 --- a/experiments/2024-12-09/src/model.rs +++ b/experiments/2024-12-09/src/model.rs @@ -9,28 +9,28 @@ pub fn model(shape: &mut Shape) { let (a, b, c, d, e, f, g, h) = shape .extend_with(&mut vertices) - .vertex([-0.5, -0.5, -0.5]) - .vertex([0.5, -0.5, -0.5]) - .vertex([-0.5, 0.5, -0.5]) - .vertex([0.5, 0.5, -0.5]) - .vertex([-0.5, -0.5, 0.5]) - .vertex([0.5, -0.5, 0.5]) - .vertex([-0.5, 0.5, 0.5]) - .vertex([0.5, 0.5, 0.5]) + .add([-0.5, -0.5, -0.5]) + .add([0.5, -0.5, -0.5]) + .add([-0.5, 0.5, -0.5]) + .add([0.5, 0.5, -0.5]) + .add([-0.5, -0.5, 0.5]) + .add([0.5, -0.5, 0.5]) + .add([-0.5, 0.5, 0.5]) + .add([0.5, 0.5, 0.5]) .get_new_ops(); shape .extend_with(&mut triangles) - .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]); + .add([&a, &e, &g]) // left + .add([&a, &g, &c]) + .add([&b, &d, &h]) // right + .add([&b, &h, &f]) + .add([&a, &b, &f]) // front + .add([&a, &f, &e]) + .add([&c, &h, &d]) // back + .add([&c, &g, &h]) + .add([&a, &c, &b]) // bottom + .add([&b, &c, &d]) + .add([&e, &f, &h]) // top + .add([&e, &h, &g]); }