From 3db64a7ad329e968043a4d172504d1b21be58cfa Mon Sep 17 00:00:00 2001 From: PavelMikus Date: Wed, 24 Aug 2022 11:18:49 +0200 Subject: [PATCH] refactor while cycle to for --- src/libslic3r/GCode/SeamPlacer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libslic3r/GCode/SeamPlacer.cpp b/src/libslic3r/GCode/SeamPlacer.cpp index 51882abb10..8cfdde4328 100644 --- a/src/libslic3r/GCode/SeamPlacer.cpp +++ b/src/libslic3r/GCode/SeamPlacer.cpp @@ -1567,7 +1567,10 @@ void SeamPlacer::place_seam(const Layer *layer, ExtrusionLoop &loop, bool extern { // local space for the closest_perimeter_point_index Perimeter *closest_perimeter = nullptr; ExtrusionLoop::ClosestPathPoint closest_point{0,0,loop.paths[0].polyline.points[0]}; - while (closest_point.segment_idx < loop.paths.back().size() || closest_point.path_idx < loop.paths.size()) { + size_t points_count = std::accumulate(loop.paths.begin(), loop.paths.end(), 0, [](size_t acc,const ExtrusionPath& p) { + return acc + p.polyline.points.size(); + }); + for (size_t _ = 0; _ < points_count; ++_) { Vec2f unscaled_p = unscaled(closest_point.foot_pt); closest_perimeter_point_index = find_closest_point(*layer_perimeters.points_tree.get(), to_3d(unscaled_p, float(unscaled_z)));