From 9efd5211c701a4e6c15e195a11c01632ffc916c4 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Thu, 6 Feb 2025 20:52:15 +0100 Subject: [PATCH] Add `ConnectExt` --- experiments/2024-12-09/src/topology/connect.rs | 13 +++++++++++++ experiments/2024-12-09/src/topology/mod.rs | 1 + experiments/2024-12-09/src/topology/sweep.rs | 4 ++-- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 experiments/2024-12-09/src/topology/connect.rs diff --git a/experiments/2024-12-09/src/topology/connect.rs b/experiments/2024-12-09/src/topology/connect.rs new file mode 100644 index 000000000..c6433719d --- /dev/null +++ b/experiments/2024-12-09/src/topology/connect.rs @@ -0,0 +1,13 @@ +use crate::geometry::Handle; + +use super::{face::Face, solid::Solid}; + +pub trait ConnectExt { + fn connect(self, other: Handle) -> Solid; +} + +impl ConnectExt for Handle { + fn connect(self, other: Handle) -> Solid { + Solid::connect_faces([self, other]) + } +} diff --git a/experiments/2024-12-09/src/topology/mod.rs b/experiments/2024-12-09/src/topology/mod.rs index 5415a8925..e54ebe6bd 100644 --- a/experiments/2024-12-09/src/topology/mod.rs +++ b/experiments/2024-12-09/src/topology/mod.rs @@ -1,3 +1,4 @@ +pub mod connect; pub mod face; pub mod solid; pub mod sweep; diff --git a/experiments/2024-12-09/src/topology/sweep.rs b/experiments/2024-12-09/src/topology/sweep.rs index f4c355a6e..224888c3a 100644 --- a/experiments/2024-12-09/src/topology/sweep.rs +++ b/experiments/2024-12-09/src/topology/sweep.rs @@ -5,7 +5,7 @@ use crate::{ math::Vector, }; -use super::{face::Face, solid::Solid}; +use super::{connect::ConnectExt, face::Face, solid::Solid}; pub trait SweepExt { /// Sweep a face along a path, creating a solid @@ -27,7 +27,7 @@ impl SweepExt for Handle { let bottom = self; let top = Handle::new(bottom.flip().translate(path)); - let solid = Solid::connect_faces([top, bottom]); + let solid = top.connect(bottom); Sweep { output: solid } }