From 7f8b03fd79321aeb66d85d3d231e23fe50059c68 Mon Sep 17 00:00:00 2001 From: Pavel Date: Mon, 17 Jul 2023 09:37:16 +0200 Subject: [PATCH] Fix of SPE-1811 - rarely, the support spot generator runs supper slow. Caused by too many slice connections detected by z-graph. The Z-Graph issue is not solved. github issue https://github.com/prusa3d/PrusaSlicer/issues/10940 --- src/libslic3r/SupportSpotsGenerator.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/SupportSpotsGenerator.cpp b/src/libslic3r/SupportSpotsGenerator.cpp index 8936830f20..e1ae58fd21 100644 --- a/src/libslic3r/SupportSpotsGenerator.cpp +++ b/src/libslic3r/SupportSpotsGenerator.cpp @@ -183,8 +183,11 @@ SliceConnection estimate_slice_connection(size_t slice_idx, const Layer *layer) BoundingBox slice_bb = get_extents(slice_polys); const Layer *lower_layer = layer->lower_layer; + std::unordered_set linked_slices_below; + for (const auto &link : slice.overlaps_below) { linked_slices_below.insert(link.slice_idx); } + ExPolygons below{}; - for (const auto &link : slice.overlaps_below) { below.push_back(lower_layer->lslices[link.slice_idx]); } + for (const auto &linked_slice_idx_below : linked_slices_below) { below.push_back(lower_layer->lslices[linked_slice_idx_below]); } Polygons below_polys = to_polygons(below); BoundingBox below_bb = get_extents(below_polys);