mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-05-20 11:53:48 +00:00
Flatpak Crash Fix when Fuzzy skin (#12611)
Co-authored-by: Ian Bassi <12130714+ianalexis@users.noreply.github.com>
This commit is contained in:
@@ -257,8 +257,9 @@ SplittedLine do_split_line(const ClipperZUtils::ZPath& path, const ExPolygons& c
|
|||||||
idx++;
|
idx++;
|
||||||
} else {
|
} else {
|
||||||
if (!is_src(node.front()->front())) {
|
if (!is_src(node.front()->front())) {
|
||||||
const auto& last = result.back();
|
if (result.empty() || result.back().get_src_index() != to_src_idx(p)) {
|
||||||
if (result.empty() || last.get_src_index() != to_src_idx(p)) {
|
//const auto& last = result.back();
|
||||||
|
//if (result.empty() || last.get_src_index() != to_src_idx(p)) {
|
||||||
result.emplace_back(to_point(p), false, idx);
|
result.emplace_back(to_point(p), false, idx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -406,12 +406,12 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
|
|||||||
|
|
||||||
fuzzy_extrusion_line(segment, slice_z, r.first, false);
|
fuzzy_extrusion_line(segment, slice_z, r.first, false);
|
||||||
// Orca: only add non fuzzy point if it's not in the extrusion closing point.
|
// Orca: only add non fuzzy point if it's not in the extrusion closing point.
|
||||||
if (extrusion->junctions.front().p != front.p) {
|
if (!extrusion->junctions.empty() && extrusion->junctions.front().p != front.p) {
|
||||||
extrusion->junctions.push_back(front);
|
extrusion->junctions.push_back(front);
|
||||||
}
|
}
|
||||||
extrusion->junctions.insert(extrusion->junctions.end(), segment.begin(), segment.end());
|
extrusion->junctions.insert(extrusion->junctions.end(), segment.begin(), segment.end());
|
||||||
// Orca: only add non fuzzy point if it's not in the extrusion closing point.
|
// Orca: only add non fuzzy point if it's not in the extrusion closing point.
|
||||||
if (extrusion->junctions.back().p != front.p) {
|
if (!extrusion->junctions.empty() && extrusion->junctions.back().p != front.p) {
|
||||||
extrusion->junctions.push_back(back);
|
extrusion->junctions.push_back(back);
|
||||||
}
|
}
|
||||||
segment.clear();
|
segment.clear();
|
||||||
@@ -442,7 +442,7 @@ void apply_fuzzy_skin(Arachne::ExtrusionLine* extrusion, const PerimeterGenerato
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Orca: ensure the loop is closed after fuzzy
|
//Orca: ensure the loop is closed after fuzzy
|
||||||
if (extrusion->junctions.front().p != extrusion->junctions.back().p) {
|
if (!extrusion->junctions.empty() && extrusion->junctions.front().p != extrusion->junctions.back().p) {
|
||||||
extrusion->junctions.back().p = extrusion->junctions.front().p;
|
extrusion->junctions.back().p = extrusion->junctions.front().p;
|
||||||
extrusion->junctions.back().w = extrusion->junctions.front().w;
|
extrusion->junctions.back().w = extrusion->junctions.front().w;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user