mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-02 13:20:59 +00:00
Hand the island's walls over instead of copying them
append(const ExtrusionEntity &) clones; the collection each island produced was deep-copied into the layer's loops and then thrown away. The no-overlap areas are moved as well.
This commit is contained in:
@@ -2916,10 +2916,11 @@ void PerimeterGenerator::process_arachne()
|
|||||||
});
|
});
|
||||||
for (ArachneSurfaceResult &result : results) {
|
for (ArachneSurfaceResult &result : results) {
|
||||||
if (result.has_loops)
|
if (result.has_loops)
|
||||||
this->loops->append(result.loops);
|
// Moved, not copied: append(const ExtrusionEntity &) clones the whole wall tree of the island.
|
||||||
|
this->loops->append(std::move(result.loops));
|
||||||
this->fill_surfaces->append(result.infill, stInternal);
|
this->fill_surfaces->append(result.infill, stInternal);
|
||||||
apply_extra_perimeters(result.infill);
|
apply_extra_perimeters(result.infill);
|
||||||
this->fill_no_overlap->insert(this->fill_no_overlap->end(), result.no_overlap.begin(), result.no_overlap.end());
|
append(*this->fill_no_overlap, std::move(result.no_overlap));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user