@@ -592,13 +592,6 @@ void PrintObject::prepare_infill()
592592 } // for each region
593593#endif /* SLIC3R_DEBUG_SLICE_PROCESSING */
594594
595- // Orca: authoritative wave-overhang floor-layer pass. Runs AFTER all surface-type
596- // classification (detect_surfaces_type + discover_vertical_shells + discover_horizontal_shells)
597- // so that whatever Orca decided inside the wave shadow gets overridden: N=0 => all stInternal,
598- // N>=1 => exactly N uniform stInternalSolid layers above each wave strip.
599- this ->apply_wave_overhang_floor_layer_authority ();
600- m_print->throw_if_canceled ();
601-
602595 // this will detect bridges and reverse bridges
603596 // and rearrange top/bottom/internal surfaces
604597 // It produces enlarged overlapping bridging areas.
@@ -611,6 +604,15 @@ void PrintObject::prepare_infill()
611604 this ->process_external_surfaces ();
612605 m_print->throw_if_canceled ();
613606
607+ // Orca: authoritative wave-overhang floor-layer pass. Must run AFTER
608+ // process_external_surfaces (which rearranges bridges / top / bottom /
609+ // internal surfaces via 3 mm offset+overlap logic and would undo our
610+ // overrides if run before). This is the LAST classifier — everything in
611+ // the wave-shadow footprint now wins: N=0 => stInternal for 0 solid
612+ // layers, N>=1 => N uniform stInternalSolid layers.
613+ this ->apply_wave_overhang_floor_layer_authority ();
614+ m_print->throw_if_canceled ();
615+
614616 // Debugging output.
615617#ifdef SLIC3R_DEBUG_SLICE_PROCESSING
616618 for (size_t region_id = 0 ; region_id < this ->num_printing_regions (); ++ region_id) {
0 commit comments