mirror of
https://git.mirrors.martin98.com/https://github.com/SoftFever/OrcaSlicer.git
synced 2025-08-16 17:35:55 +08:00
Prevent crashes from edge cases when slicing complex small model with "big" fuzzy skin is used
This commit is contained in:
parent
afabd955ac
commit
d88dda8131
@ -405,6 +405,7 @@ static ExtrusionEntityCollection traverse_loops(const PerimeterGenerator &perime
|
|||||||
|
|
||||||
// Reapply the nearest point search for starting point.
|
// Reapply the nearest point search for starting point.
|
||||||
// We allow polyline reversal because Clipper may have randomly reversed polylines during clipping.
|
// We allow polyline reversal because Clipper may have randomly reversed polylines during clipping.
|
||||||
|
if(paths.empty()) continue;
|
||||||
chain_and_reorder_extrusion_paths(paths, &paths.front().first_point());
|
chain_and_reorder_extrusion_paths(paths, &paths.front().first_point());
|
||||||
// smothing the overhang degree
|
// smothing the overhang degree
|
||||||
// merge small path between paths which have same overhang degree
|
// merge small path between paths which have same overhang degree
|
||||||
|
@ -1042,6 +1042,7 @@ std::vector<std::pair<size_t, bool>> chain_extrusion_paths(std::vector<Extrusion
|
|||||||
void reorder_extrusion_paths(std::vector<ExtrusionPath> &extrusion_paths, const std::vector<std::pair<size_t, bool>> &chain)
|
void reorder_extrusion_paths(std::vector<ExtrusionPath> &extrusion_paths, const std::vector<std::pair<size_t, bool>> &chain)
|
||||||
{
|
{
|
||||||
assert(extrusion_paths.size() == chain.size());
|
assert(extrusion_paths.size() == chain.size());
|
||||||
|
if(extrusion_paths.empty()) return;
|
||||||
std::vector<ExtrusionPath> out;
|
std::vector<ExtrusionPath> out;
|
||||||
out.reserve(extrusion_paths.size());
|
out.reserve(extrusion_paths.size());
|
||||||
for (const std::pair<size_t, bool> &idx : chain) {
|
for (const std::pair<size_t, bool> &idx : chain) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user