From 059ea09353ba007f489dfaa91bbd56223bb2415d Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Tue, 13 Jun 2023 15:30:07 +0800 Subject: [PATCH] FIX: improve speed of calculating lay plane The code references PrusaSlicer Change-Id: Ie39d8ce0dc6d98ef1fc062828b4818825923169f (cherry picked from commit d17e7d90f885109e14c0b48f92a6366ba0af44c6) --- src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp index 619cebb79..9c65f18eb 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp @@ -151,9 +151,9 @@ void GLGizmoFlatten::update_planes() std::vector facet_visited(num_of_facets, false); int facet_queue_cnt = 0; const stl_normal* normal_ptr = nullptr; + int facet_idx = 0; while (1) { // Find next unvisited triangle: - int facet_idx = 0; for (; facet_idx < num_of_facets; ++ facet_idx) if (!facet_visited[facet_idx]) { facet_queue[facet_queue_cnt ++] = facet_idx; @@ -250,7 +250,8 @@ void GLGizmoFlatten::update_planes() } if (discard) { - m_planes.erase(m_planes.begin() + (polygon_id--)); + m_planes[polygon_id--] = std::move(m_planes.back()); + m_planes.pop_back(); continue; }