From c4a68a74d7b88a62ec86e21ba81576c8a174d55b Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Wed, 25 Sep 2024 19:18:33 +0800 Subject: [PATCH] FIX:confirm volume box is less than plate box jira:STUDIO-8261 code is from OrcaSlicer,thanks for OrcaSlicer and SoftFever commit bbfb9d77fadc63ca84d70b09aa1efa6d90889736 Author: SoftFever Date: Sat Oct 21 12:20:30 2023 +0800 More camera tweaks (#2473) * fix camera regressions Handle multiple plates Change-Id: I0b74183fd9a53d99d1c936caae1e890b1f18d997 --- src/slic3r/GUI/GLCanvas3D.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 8a094b4a2..a6d9ec8c2 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1576,9 +1576,14 @@ BoundingBoxf3 GLCanvas3D::assembly_view_cur_bounding_box() const { BoundingBoxf3 GLCanvas3D::volumes_bounding_box() const { BoundingBoxf3 bb; - for (const GLVolume* volume : m_volumes.volumes) { - if (!m_apply_zoom_to_volumes_filter || ((volume != nullptr) && volume->zoom_to_volumes)) - bb.merge(volume->transformed_bounding_box()); + auto partplate_list_box = wxGetApp().plater()->get_partplate_list().get_bounding_box(); + for (const GLVolume *volume : m_volumes.volumes) { + if (!m_apply_zoom_to_volumes_filter || ((volume != nullptr) && volume->zoom_to_volumes)) { + const auto v_bb = volume->transformed_bounding_box(); + if (!partplate_list_box.overlap(v_bb)) + continue; + bb.merge(v_bb); + } } return bb; }