From 80f28538c5256722b59610850dd7145aa8c66ad4 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 27 Sep 2021 16:03:09 +0200 Subject: [PATCH] #7011 - Follow-up of 3ee259b602947b10f1b225124c67c4b750a3c391 - Modified volumes' indices rebase --- src/libslic3r/Format/3mf.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libslic3r/Format/3mf.cpp b/src/libslic3r/Format/3mf.cpp index 895aa44137..9f40159132 100644 --- a/src/libslic3r/Format/3mf.cpp +++ b/src/libslic3r/Format/3mf.cpp @@ -1915,16 +1915,21 @@ namespace Slic3r { int min_id = faces.front()[0]; int max_id = faces.front()[0]; - for (Vec3i& face : faces) { - for (int& tri_id : face) { + for (const Vec3i& face : faces) { + for (const int tri_id : face) { if (tri_id < 0 || tri_id >= geometry.vertices.size()) { add_error("Found invalid vertex id"); return false; } min_id = std::min(min_id, tri_id); max_id = std::max(max_id, tri_id); - // rebase index to the current vertices list - tri_id -= processed_vertices_max_id; + } + } + + // rebase indices to the current vertices list + for (Vec3i& face : faces) { + for (int& tri_id : face) { + tri_id -= min_id; } }