From 2611093355a7bf61f6a9ae78909f19d6f9102922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hejl?= Date: Wed, 11 Dec 2024 11:08:16 +0100 Subject: [PATCH] SPE-2576: Fix uninitialized ExtrusionLine when Fuzzy skin was applied on Arachne extrusions. --- src/libslic3r/Arachne/utils/ExtrusionLine.cpp | 2 ++ src/libslic3r/Arachne/utils/ExtrusionLine.hpp | 3 ++- src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp index c597ac2939..16dfa9c4d4 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionLine.cpp +++ b/src/libslic3r/Arachne/utils/ExtrusionLine.cpp @@ -23,6 +23,8 @@ namespace Slic3r::Arachne ExtrusionLine::ExtrusionLine(const size_t inset_idx, const bool is_odd) : inset_idx(inset_idx), is_odd(is_odd), is_closed(false) {} +ExtrusionLine::ExtrusionLine(const size_t inset_idx, const bool is_odd, const bool is_closed) : inset_idx(inset_idx), is_odd(is_odd), is_closed(is_closed) {} + int64_t ExtrusionLine::getLength() const { if (junctions.empty()) diff --git a/src/libslic3r/Arachne/utils/ExtrusionLine.hpp b/src/libslic3r/Arachne/utils/ExtrusionLine.hpp index 32bbc96a19..fb61760d2a 100644 --- a/src/libslic3r/Arachne/utils/ExtrusionLine.hpp +++ b/src/libslic3r/Arachne/utils/ExtrusionLine.hpp @@ -81,7 +81,8 @@ struct ExtrusionLine */ std::vector junctions; - ExtrusionLine(const size_t inset_idx, const bool is_odd); + ExtrusionLine(size_t inset_idx, bool is_odd); + ExtrusionLine(size_t inset_idx, bool is_odd, bool is_closed); ExtrusionLine() : inset_idx(-1), is_odd(true), is_closed(false) {} ExtrusionLine(const ExtrusionLine &other) : inset_idx(other.inset_idx), is_odd(other.is_odd), is_closed(other.is_closed), junctions(other.junctions) {} diff --git a/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp b/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp index 9d2b9d3178..5400c9ff1b 100644 --- a/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp +++ b/src/libslic3r/Feature/FuzzySkin/FuzzySkin.cpp @@ -203,7 +203,7 @@ Arachne::ExtrusionLine apply_fuzzy_skin(const Arachne::ExtrusionLine &extrusion, } ExtrusionRegionSegments segments = extrusion_segmentation(extrusion, base_config, perimeter_regions); - ExtrusionLine fuzzified_extrusion; + ExtrusionLine fuzzified_extrusion(extrusion.inset_idx, extrusion.is_odd, extrusion.is_closed); for (ExtrusionRegionSegment &segment : segments) { const PrintRegionConfig &config = segment.config;