diff --git a/crates/fj-core/src/operations/sweep/sketch.rs b/crates/fj-core/src/operations/sweep/sketch.rs index 164a71a4c..446fa1a90 100644 --- a/crates/fj-core/src/operations/sweep/sketch.rs +++ b/crates/fj-core/src/operations/sweep/sketch.rs @@ -38,7 +38,7 @@ impl SweepSketch for Sketch { let mut shells = Vec::new(); for region in self.regions() { let region = { - // The following code assumes that the sketch is winded counter- + // The following code assumes that the sketch is wound counter- // clockwise. Let's check that real quick. assert!(region .exterior() @@ -67,6 +67,24 @@ impl SweepSketch for Sketch { } }; + for cycle in region.all_cycles() { + for half_edge in cycle.half_edges() { + let curve_geom = core + .layers + .geometry + .of_curve(half_edge.curve()) + .unwrap() + .local_on(self.surface()) + .unwrap(); + + core.layers.geometry.define_curve( + half_edge.curve().clone(), + surface.clone(), + curve_geom.clone(), + ); + } + } + let face = Face::new(surface.clone(), region.clone()).insert(core); let shell = face.sweep_face(path, &mut cache, core).insert(core); shells.push(shell);