diff --git a/experiments/2025-03-18/src/geometry/curve.rs b/experiments/2025-03-18/src/geometry/curve.rs index ede30c24f..cb8bdf71d 100644 --- a/experiments/2025-03-18/src/geometry/curve.rs +++ b/experiments/2025-03-18/src/geometry/curve.rs @@ -5,6 +5,14 @@ pub struct AbsoluteCurveGeometry { pub geometry: Box, } +impl AbsoluteCurveGeometry { + pub fn translate(&self, offset: impl Into>) -> Self { + Self { + geometry: self.geometry.translate(offset.into()), + } + } +} + impl Clone for AbsoluteCurveGeometry { fn clone(&self) -> Self { Self { diff --git a/experiments/2025-03-18/src/geometry/swept_curve.rs b/experiments/2025-03-18/src/geometry/swept_curve.rs index 90c334aa8..a51144d04 100644 --- a/experiments/2025-03-18/src/geometry/swept_curve.rs +++ b/experiments/2025-03-18/src/geometry/swept_curve.rs @@ -61,9 +61,7 @@ impl SweptCurve { pub fn translate(&self, offset: impl Into>) -> Self { Self { - curve: AbsoluteCurveGeometry { - geometry: self.curve.geometry.translate(offset.into()), - }, + curve: self.curve.translate(offset.into()), path: self.path, } } diff --git a/experiments/2025-03-18/src/operations/translate.rs b/experiments/2025-03-18/src/operations/translate.rs index f4f5986ad..ef81e0b6c 100644 --- a/experiments/2025-03-18/src/operations/translate.rs +++ b/experiments/2025-03-18/src/operations/translate.rs @@ -1,7 +1,6 @@ use fj_math::Vector; use crate::{ - geometry::AbsoluteCurveGeometry, handle::Handle, topology::{ curve::Curve, face::Face, half_edge::HalfEdge, surface::Surface, @@ -16,9 +15,7 @@ pub trait TranslateExt { impl TranslateExt for Curve { fn translate(&self, offset: impl Into>) -> Self { let offset = offset.into(); - let geometry = AbsoluteCurveGeometry { - geometry: self.geometry.geometry.translate(offset), - }; + let geometry = self.geometry.translate(offset); Curve { geometry } } }