From fdd0338da556fac4322e3da652d860bb9d562a4a Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Tue, 25 Feb 2025 12:20:54 +0100 Subject: [PATCH] Track internal faces --- experiments/2024-12-09/src/geometry/sketch.rs | 2 +- experiments/2024-12-09/src/operations/connect.rs | 1 + experiments/2024-12-09/src/operations/flip.rs | 6 +++++- experiments/2024-12-09/src/operations/translate.rs | 1 + experiments/2024-12-09/src/topology/face.rs | 3 +++ 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/experiments/2024-12-09/src/geometry/sketch.rs b/experiments/2024-12-09/src/geometry/sketch.rs index af16d62dc..654d668b9 100644 --- a/experiments/2024-12-09/src/geometry/sketch.rs +++ b/experiments/2024-12-09/src/geometry/sketch.rs @@ -47,7 +47,7 @@ impl Sketch { }, ); - Face::new(surface, half_edges) + Face::new(surface, half_edges, false) } } diff --git a/experiments/2024-12-09/src/operations/connect.rs b/experiments/2024-12-09/src/operations/connect.rs index c8e1a4af1..c0f6a2ceb 100644 --- a/experiments/2024-12-09/src/operations/connect.rs +++ b/experiments/2024-12-09/src/operations/connect.rs @@ -57,6 +57,7 @@ impl ConnectExt for Handle { is_internal: false, }) }), + q.is_internal, ); Handle::new(face) }) diff --git a/experiments/2024-12-09/src/operations/flip.rs b/experiments/2024-12-09/src/operations/flip.rs index be440af7c..7fa4b59be 100644 --- a/experiments/2024-12-09/src/operations/flip.rs +++ b/experiments/2024-12-09/src/operations/flip.rs @@ -6,6 +6,10 @@ pub trait FlipExt { impl FlipExt for &Face { fn flip(self) -> Face { - Face::new(self.surface.flip(), self.half_edges.clone()) + Face::new( + self.surface.flip(), + self.half_edges.clone(), + self.is_internal, + ) } } diff --git a/experiments/2024-12-09/src/operations/translate.rs b/experiments/2024-12-09/src/operations/translate.rs index 5c8f466cc..0ab287239 100644 --- a/experiments/2024-12-09/src/operations/translate.rs +++ b/experiments/2024-12-09/src/operations/translate.rs @@ -17,6 +17,7 @@ impl TranslateExt for Face { self.half_edges .iter() .map(|half_edge| Handle::new(half_edge.translate(offset))), + self.is_internal, ) } } diff --git a/experiments/2024-12-09/src/topology/face.rs b/experiments/2024-12-09/src/topology/face.rs index af5024dbd..24ed70d54 100644 --- a/experiments/2024-12-09/src/topology/face.rs +++ b/experiments/2024-12-09/src/topology/face.rs @@ -15,16 +15,19 @@ use super::{half_edge::HalfEdge, vertex::Vertex}; pub struct Face { pub surface: Plane, pub half_edges: Vec>, + pub is_internal: bool, } impl Face { pub fn new( surface: Plane, half_edges: impl IntoIterator>, + is_internal: bool, ) -> Self { Self { surface, half_edges: half_edges.into_iter().collect(), + is_internal, } }