Match Drag Margin to Release Clamp

This commit is contained in:
Hanif Koh
2026-09-03 15:51:31 +08:00
committed by HanifKoh
parent e17965be53
commit 4c583212f5

View File

@@ -1273,11 +1273,9 @@ void Selection::translate(const Vec3d &displacement, TransformationType transfor
const Polygons bed_polys{wxGetApp().plater()->get_partplate_list().get_plate(plate_idx)->get_shared_printable_polygon()};
Vec3d tower_origin = m_cache.volumes_data[i].get_volume_position();
Vec3d actual_displacement = displacement;
bool show_read_wipe_tower = wxGetApp().plater()->get_partplate_list().get_plate(plate_idx)->fff_print()->is_step_done(psWipeTower);
// Both preview volumes carry the brim in their bounding box (the estimate
// preview merges a brim slab, the sliced preview the real brim mesh), so the
// drag clamp only pads by the wipe tower line width.
const double margin = show_read_wipe_tower ? WIPE_TOWER_MARGIN : 0.5; // 0.5 is the line width of wipe tower
// Both preview volumes carry the brim in their bounding box, and the release
// clamp holds it WIPE_TOWER_MARGIN inside — same margin, so drops don't snap.
const double margin = WIPE_TOWER_MARGIN;
actual_displacement = (m_cache.volumes_data[i].get_instance_rotation_matrix() * m_cache.volumes_data[i].get_instance_scale_matrix() *
m_cache.volumes_data[i].get_instance_mirror_matrix())