SPE-2626: Invalidate the wipe tower when the number of instances changes. (#13779)

WipingExtrusions::mark_wiping_extrusions() precalculates data based on the number of instances when wiping into infill/object is enabled, so we need to invalidate those data when the number of instances changes.
This commit is contained in:
Lukáš Hejl 2025-01-03 14:13:10 +01:00 committed by Lukas Matena
parent 671d0c9b3d
commit 17c84d0cb7

View File

@ -1336,7 +1336,9 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_
if (model_object.instances.size() != model_object_new.instances.size() ||
! std::equal(model_object.instances.begin(), model_object.instances.end(), model_object_new.instances.begin(), [](auto l, auto r){ return l->id() == r->id(); })) {
// G-code generator accesses model_object.instances to generate sequential print ordering matching the Plater object list.
update_apply_status(this->invalidate_step(psGCodeExport));
// WipingExtrusions::mark_wiping_extrusions() precalculate data based on the number of instances when wiping into infill/object is enabled.
update_apply_status(this->invalidate_steps({psGCodeExport, psWipeTower}));
model_object.clear_instances();
model_object.instances.reserve(model_object_new.instances.size());
for (const ModelInstance *model_instance : model_object_new.instances) {