Fix of 2.2.0-A3: Sequential Printing: Wrong location after slicing #3570

This is a regression from 71fa411
This commit is contained in:
bubnikv 2020-01-24 17:10:59 +01:00
parent 6945a20e9a
commit dced3ce783

View file

@ -73,6 +73,8 @@ PrintObject::PrintObject(Print* print, ModelObject* model_object, bool add_insta
PrintBase::ApplyStatus PrintObject::set_instances(PrintInstances &&instances) PrintBase::ApplyStatus PrintObject::set_instances(PrintInstances &&instances)
{ {
for (PrintInstance &i : instances)
i.shift += m_copies_shift;
// Invalidate and set copies. // Invalidate and set copies.
PrintBase::ApplyStatus status = PrintBase::APPLY_STATUS_UNCHANGED; PrintBase::ApplyStatus status = PrintBase::APPLY_STATUS_UNCHANGED;
bool equal_length = instances.size() == m_instances.size(); bool equal_length = instances.size() == m_instances.size();
@ -83,7 +85,7 @@ PrintBase::ApplyStatus PrintObject::set_instances(PrintInstances &&instances)
if (m_print->invalidate_steps({ psSkirt, psBrim, psGCodeExport }) || if (m_print->invalidate_steps({ psSkirt, psBrim, psGCodeExport }) ||
(! equal_length && m_print->invalidate_step(psWipeTower))) (! equal_length && m_print->invalidate_step(psWipeTower)))
status = PrintBase::APPLY_STATUS_INVALIDATED; status = PrintBase::APPLY_STATUS_INVALIDATED;
m_instances = instances; m_instances = std::move(instances);
for (PrintInstance &i : m_instances) for (PrintInstance &i : m_instances)
i.print_object = this; i.print_object = this;
} }