From eab0f0da5cc1ff3d79f2bd2f9deda2591fc260f5 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Fri, 28 Jun 2024 18:16:05 +0200 Subject: [PATCH] Return boundary from `BuildHalfEdge::arc` --- crates/fj-core/src/operations/build/cycle.rs | 4 +++- crates/fj-core/src/operations/build/half_edge.rs | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/fj-core/src/operations/build/cycle.rs b/crates/fj-core/src/operations/build/cycle.rs index 5195766d0..7a6cc46c6 100644 --- a/crates/fj-core/src/operations/build/cycle.rs +++ b/crates/fj-core/src/operations/build/cycle.rs @@ -59,7 +59,9 @@ pub trait BuildCycle { [[a, b], [b, c], [c, d], [d, a]] .into_iter() .map(|[start, end]| { - HalfEdge::arc(start, end, angle, surface.clone(), core) + let (half_edge, _) = + HalfEdge::arc(start, end, angle, surface.clone(), core); + half_edge }); Cycle::new(half_edges) diff --git a/crates/fj-core/src/operations/build/half_edge.rs b/crates/fj-core/src/operations/build/half_edge.rs index f33791f53..45202e88b 100644 --- a/crates/fj-core/src/operations/build/half_edge.rs +++ b/crates/fj-core/src/operations/build/half_edge.rs @@ -50,7 +50,7 @@ pub trait BuildHalfEdge { angle_rad: impl Into, surface: Handle, core: &mut Core, - ) -> Handle { + ) -> (Handle, CurveBoundary>) { let angle_rad = angle_rad.into(); if angle_rad <= -Scalar::TAU || angle_rad >= Scalar::TAU { panic!("arc angle must be in the range (-2pi, 2pi) radians"); @@ -76,7 +76,7 @@ pub trait BuildHalfEdge { .geometry .define_half_edge(half_edge.clone(), HalfEdgeGeom { boundary }); - half_edge + (half_edge, boundary) } /// Create a line segment