Provide surface to HalfEdge's reverse trait impl

This commit is contained in:
Hanno Braun 2024-05-08 13:47:07 +02:00
parent 976922550b
commit b13a5eb773
3 changed files with 14 additions and 13 deletions

View File

@ -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,

View File

@ -41,12 +41,12 @@ impl ReverseCurveCoordinateSystems for (&Cycle, &Handle<Surface>) {
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)
}

View File

@ -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<HalfEdge> {
impl ReverseCurveCoordinateSystems for (&Handle<HalfEdge>, &Handle<Surface>) {
type Reversed = Handle<HalfEdge>;
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();