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,