From 8c33fac1435678ff736e2b8d726b2c1cc71214db Mon Sep 17 00:00:00 2001 From: Joseph Lenox Date: Wed, 25 Jul 2018 23:39:26 -0500 Subject: [PATCH] Flatten the perimeters list (which is what the xspp does in the background) before iterating over it. --- xs/src/libslic3r/PrintGCode.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xs/src/libslic3r/PrintGCode.cpp b/xs/src/libslic3r/PrintGCode.cpp index 8932ae859..f3f335a94 100644 --- a/xs/src/libslic3r/PrintGCode.cpp +++ b/xs/src/libslic3r/PrintGCode.cpp @@ -525,7 +525,8 @@ PrintGCode::process_layer(size_t idx, const Layer* layer, const Points& copies) { auto extruder_id = region->config.perimeter_extruder-1; // Casting away const just to avoid double dereferences - for(auto* perimeter_coll : const_cast(layerm)->perimeters) { + for(auto* perimeter_coll : layerm->perimeters.flatten().entities) { + if(perimeter_coll->length() == 0) continue; // this shouldn't happen but first_point() would fail // perimeter_coll is an ExtrusionPath::Collection object representing a single slice