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; }