Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/libslic3r/PrintObject.cpp')
-rw-r--r--src/libslic3r/PrintObject.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp
index c9d48093f..126db9a2c 100644
--- a/src/libslic3r/PrintObject.cpp
+++ b/src/libslic3r/PrintObject.cpp
@@ -1672,7 +1672,7 @@ namespace Slic3r {
size_t grain_size = std::max(num_layers / 16, size_t(1));
//solid_over_perimeters value, to remove solid fill where there's only perimeters on multiple layers
- int nb_perimeter_layers_for_solid_fill = region.config().solid_over_perimeters.value;
+ const int nb_perimeter_layers_for_solid_fill = region.config().solid_over_perimeters.value;
if (!top_bottom_surfaces_all_regions) {
// This is either a single material print, or a multi-material print and interface_shells are enabled, meaning that the vertical shell thickness
@@ -1899,8 +1899,9 @@ namespace Slic3r {
//check if a polygon is only over perimeter, in this case evict it (depends from nb_perimeter_layers_for_solid_fill value)
if (nb_perimeter_layers_for_solid_fill != 0) {
for (int i = 0; i < shell.size(); i++) {
- if (nb_perimeter_layers_for_solid_fill < 2 || intersection({ shell[i] }, max_perimeter_shell, false).empty()) {
- toadd = intersection_ex({ shell[i] }, fill_shell);
+ if (nb_perimeter_layers_for_solid_fill < 2 || intersection_ex({ shell[i] }, max_perimeter_shell, false).empty()) {
+ ExPolygons expoly = intersection_ex({ shell[i] }, fill_shell);
+ toadd.insert(toadd.end(), expoly.begin(), expoly.end());
shell.erase(shell.begin() + i);
i--;
}