From 2bacac3a73ea1dd813d84f109dffca7b4c6cb247 Mon Sep 17 00:00:00 2001 From: Hanno Braun Date: Wed, 20 Mar 2024 13:09:43 +0100 Subject: [PATCH] Set half-edge geometry in `SplitEdge` --- crates/fj-core/src/operations/split/edge.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/crates/fj-core/src/operations/split/edge.rs b/crates/fj-core/src/operations/split/edge.rs index fd476bcb5..fb0237a46 100644 --- a/crates/fj-core/src/operations/split/edge.rs +++ b/crates/fj-core/src/operations/split/edge.rs @@ -3,8 +3,8 @@ use fj_math::Point; use crate::{ objects::{HalfEdge, Shell}, operations::{ - derive::DeriveFrom, insert::Insert, replace::ReplaceHalfEdge, - split::SplitHalfEdge, update::UpdateHalfEdge, + derive::DeriveFrom, geometry::UpdateHalfEdgeGeometry, insert::Insert, + replace::ReplaceHalfEdge, split::SplitHalfEdge, update::UpdateHalfEdge, }, queries::SiblingOfHalfEdge, storage::Handle, @@ -55,10 +55,21 @@ impl SplitEdge for Shell { ) .insert(core); [sibling_a, sibling_b].map(|half_edge| { - half_edge.insert(core).derive_from(&sibling, core) + half_edge.insert(core).derive_from(&sibling, core).set_path( + core.layers.geometry.of_half_edge(&sibling).path, + &mut core.layers.geometry, + ) }) }; + let [half_edge_a, half_edge_b] = + [half_edge_a, half_edge_b].map(|half_edge_part| { + half_edge_part.set_path( + core.layers.geometry.of_half_edge(half_edge).path, + &mut core.layers.geometry, + ) + }); + let shell = self .replace_half_edge( half_edge,