From 3e98e2a4bdc21ec4999d796bbb146c1b1e103fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Fri, 16 Oct 2020 10:56:19 +0200 Subject: [PATCH] Fixed avoiding of other printed objects, again Calling std::move on itself causes that the first polygon is empty, which results in disabling this feature on Linux. This was fixed before, but I accidentally reverted it when AvoidCrossingPerimeters was moved to separate file. --- src/libslic3r/GCode/AvoidCrossingPerimeters.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp index 8fe30b7c1d..1581eb7adb 100644 --- a/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp +++ b/src/libslic3r/GCode/AvoidCrossingPerimeters.cpp @@ -84,7 +84,7 @@ Polygons AvoidCrossingPerimeters::collect_contours_all_layers(const PrintObjectP polygons_per_layer[i * 2] = union_(polys); } }); - for (size_t i = 0; i < cnt / 2; ++i) + for (size_t i = 1; i < cnt / 2; ++i) polygons_per_layer[i] = std::move(polygons_per_layer[i * 2]); if (cnt & 1) polygons_per_layer[cnt / 2] = std::move(polygons_per_layer[cnt - 1]);