From b13a5eb7731a7ad23d4d502b6bb7bbc9d0a0a6e5 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Wed, 8 May 2024 13:47:07 +0200 Subject: [PATCH] Provide surface to `HalfEdge`'s reverse trait impl --- crates/fj-core/src/operations/build/shell.rs | 17 +++++++++-------- crates/fj-core/src/operations/reverse/cycle.rs | 4 ++-- .../fj-core/src/operations/reverse/half_edge.rs | 6 +++--- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/crates/fj-core/src/operations/build/shell.rs b/crates/fj-core/src/operations/build/shell.rs index 80027a368..7bdcaee46 100644 --- a/crates/fj-core/src/operations/build/shell.rs +++ b/crates/fj-core/src/operations/build/shell.rs @@ -176,9 +176,10 @@ pub trait BuildShell { .update_half_edge( cycle.half_edges().nth_circular(0), |edge, core| { - [edge.reverse_curve_coordinate_systems( - core, - )] + [(edge, bad.face.surface()) + .reverse_curve_coordinate_systems( + core, + )] }, core, ) @@ -207,7 +208,7 @@ pub trait BuildShell { .update_half_edge( cycle.half_edges().nth_circular(1), |edge, core| { - [edge + [(edge, dac.face.surface()) .reverse_curve_coordinate_systems(core)] }, core, @@ -222,7 +223,7 @@ pub trait BuildShell { .update_half_edge( cycle.half_edges().nth_circular(0), |edge, core| { - [edge + [(edge, dac.face.surface()) .reverse_curve_coordinate_systems(core)] }, core, @@ -252,7 +253,7 @@ pub trait BuildShell { .update_half_edge( cycle.half_edges().nth_circular(0), |edge, core| { - [edge + [(edge, cbd.face.surface()) .reverse_curve_coordinate_systems(core)] }, core, @@ -260,7 +261,7 @@ pub trait BuildShell { .update_half_edge( cycle.half_edges().nth_circular(1), |edge, core| { - [edge + [(edge, cbd.face.surface()) .reverse_curve_coordinate_systems(core)] }, core, @@ -268,7 +269,7 @@ pub trait BuildShell { .update_half_edge( cycle.half_edges().nth_circular(2), |edge, core| { - [edge + [(edge, cbd.face.surface()) .reverse_curve_coordinate_systems(core)] }, core, diff --git a/crates/fj-core/src/operations/reverse/cycle.rs b/crates/fj-core/src/operations/reverse/cycle.rs index 5de372da7..af6cd13f5 100644 --- a/crates/fj-core/src/operations/reverse/cycle.rs +++ b/crates/fj-core/src/operations/reverse/cycle.rs @@ -41,12 +41,12 @@ impl ReverseCurveCoordinateSystems for (&Cycle, &Handle) { self, core: &mut Core, ) -> Self::Reversed { - let (cycle, _) = self; + let (cycle, surface) = self; let edges = cycle .half_edges() .iter() - .map(|edge| edge.reverse_curve_coordinate_systems(core)); + .map(|edge| (edge, surface).reverse_curve_coordinate_systems(core)); Cycle::new(edges) } diff --git a/crates/fj-core/src/operations/reverse/half_edge.rs b/crates/fj-core/src/operations/reverse/half_edge.rs index 240ef4bcd..f35234c21 100644 --- a/crates/fj-core/src/operations/reverse/half_edge.rs +++ b/crates/fj-core/src/operations/reverse/half_edge.rs @@ -1,20 +1,20 @@ use crate::{ operations::{derive::DeriveFrom, insert::Insert}, storage::Handle, - topology::HalfEdge, + topology::{HalfEdge, Surface}, Core, }; use super::ReverseCurveCoordinateSystems; -impl ReverseCurveCoordinateSystems for &Handle { +impl ReverseCurveCoordinateSystems for (&Handle, &Handle) { type Reversed = Handle; fn reverse_curve_coordinate_systems( self, core: &mut Core, ) -> Self::Reversed { - let half_edge = self; + let (half_edge, _) = self; let mut half_edge_geom = *core.layers.geometry.of_half_edge(half_edge); half_edge_geom.path = half_edge_geom.path.reverse();