From 63775d1789386d19fc338e7be20d16c5e9673047 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Mon, 5 May 2025 12:04:51 +0200 Subject: [PATCH] Implement `Clone` for `FloatingCurve` --- experiments/2025-03-18/src/geometry/curve.rs | 16 ++++++++++------ .../2025-03-18/src/geometry/swept_curve.rs | 8 ++------ experiments/2025-03-18/src/operations/connect.rs | 4 +--- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/experiments/2025-03-18/src/geometry/curve.rs b/experiments/2025-03-18/src/geometry/curve.rs index 8273c8c20..5aadc5fdc 100644 --- a/experiments/2025-03-18/src/geometry/curve.rs +++ b/experiments/2025-03-18/src/geometry/curve.rs @@ -60,9 +60,7 @@ impl AnchoredCurve { pub fn translate(&self, offset: impl Into>) -> Self { Self { origin: self.origin + offset, - floating: FloatingCurve { - inner: self.floating.inner.clone_curve_geometry(), - }, + floating: self.floating.clone(), } } @@ -79,9 +77,7 @@ impl Clone for AnchoredCurve { fn clone(&self) -> Self { Self { origin: self.origin, - floating: FloatingCurve { - inner: self.floating.inner.clone_curve_geometry(), - }, + floating: self.floating.clone(), } } } @@ -97,6 +93,14 @@ impl FloatingCurve { } } +impl Clone for FloatingCurve { + fn clone(&self) -> Self { + Self { + inner: self.inner.clone_curve_geometry(), + } + } +} + pub trait CurveGeometry { fn clone_curve_geometry(&self) -> Box; fn vector_from_local_point(&self, point: Point<1>) -> Vector<3>; diff --git a/experiments/2025-03-18/src/geometry/swept_curve.rs b/experiments/2025-03-18/src/geometry/swept_curve.rs index c73908506..ef81d05b4 100644 --- a/experiments/2025-03-18/src/geometry/swept_curve.rs +++ b/experiments/2025-03-18/src/geometry/swept_curve.rs @@ -39,9 +39,7 @@ impl SweptCurve { let v = { let v = AnchoredCurve { origin: self.u.point_from_local(u), - floating: FloatingCurve { - inner: self.v.inner.clone_curve_geometry(), - }, + floating: self.v.clone(), }; v.project_point(point) @@ -62,9 +60,7 @@ impl SweptCurve { pub fn translate(&self, offset: impl Into>) -> Self { Self { u: self.u.translate(offset), - v: FloatingCurve { - inner: self.v.inner.clone_curve_geometry(), - }, + v: self.v.clone(), } } } diff --git a/experiments/2025-03-18/src/operations/connect.rs b/experiments/2025-03-18/src/operations/connect.rs index 03e0ac698..f8e321fe7 100644 --- a/experiments/2025-03-18/src/operations/connect.rs +++ b/experiments/2025-03-18/src/operations/connect.rs @@ -88,9 +88,7 @@ fn build_connecting_faces( let curve = Curve { geometry: AnchoredCurve { origin: a.point, - floating: FloatingCurve { - inner: connecting_curve.inner.clone_curve_geometry(), - }, + floating: connecting_curve.clone(), }, };