SPE-2576: Fix uninitialized ExtrusionLine when Fuzzy skin was applied on Arachne extrusions.

This commit is contained in:
Lukáš Hejl 2024-12-11 11:08:16 +01:00 committed by Lukas Matena
parent c1c49c2d6f
commit 2611093355
3 changed files with 5 additions and 2 deletions

View File

@ -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) : 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 int64_t ExtrusionLine::getLength() const
{ {
if (junctions.empty()) if (junctions.empty())

View File

@ -81,7 +81,8 @@ struct ExtrusionLine
*/ */
std::vector<ExtrusionJunction> junctions; std::vector<ExtrusionJunction> 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() : 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) {} ExtrusionLine(const ExtrusionLine &other) : inset_idx(other.inset_idx), is_odd(other.is_odd), is_closed(other.is_closed), junctions(other.junctions) {}

View File

@ -203,7 +203,7 @@ Arachne::ExtrusionLine apply_fuzzy_skin(const Arachne::ExtrusionLine &extrusion,
} }
ExtrusionRegionSegments segments = extrusion_segmentation(extrusion, base_config, perimeter_regions); 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) { for (ExtrusionRegionSegment &segment : segments) {
const PrintRegionConfig &config = segment.config; const PrintRegionConfig &config = segment.config;