Fixing Undo / Redo issues after copy / paste due to not updating
ObjectIDs of support painting / seam painting / layer height profile.
This commit is contained in:
parent
203fc091a0
commit
170fe23b46
@ -608,6 +608,7 @@ void ModelObject::assign_new_unique_ids_recursive()
|
|||||||
model_volume->assign_new_unique_ids_recursive();
|
model_volume->assign_new_unique_ids_recursive();
|
||||||
for (ModelInstance *model_instance : this->instances)
|
for (ModelInstance *model_instance : this->instances)
|
||||||
model_instance->assign_new_unique_ids_recursive();
|
model_instance->assign_new_unique_ids_recursive();
|
||||||
|
this->layer_height_profile.set_new_unique_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clone this ModelObject including its volumes and instances, keep the IDs of the copies equal to the original.
|
// Clone this ModelObject including its volumes and instances, keep the IDs of the copies equal to the original.
|
||||||
@ -1727,6 +1728,14 @@ void ModelObject::scale_to_fit(const Vec3d &size)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ModelVolume::assign_new_unique_ids_recursive()
|
||||||
|
{
|
||||||
|
ObjectBase::set_new_unique_id();
|
||||||
|
config.set_new_unique_id();
|
||||||
|
m_supported_facets.set_new_unique_id();
|
||||||
|
m_seam_facets.set_new_unique_id();
|
||||||
|
}
|
||||||
|
|
||||||
void ModelVolume::rotate(double angle, Axis axis)
|
void ModelVolume::rotate(double angle, Axis axis)
|
||||||
{
|
{
|
||||||
switch (axis)
|
switch (axis)
|
||||||
|
@ -191,6 +191,9 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<coordf_t> m_data;
|
std::vector<coordf_t> m_data;
|
||||||
|
|
||||||
|
// to access set_new_unique_id() when copy / pasting an object
|
||||||
|
friend class ModelObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
// A printable object, possibly having multiple print volumes (each with its own set of parameters and materials),
|
// A printable object, possibly having multiple print volumes (each with its own set of parameters and materials),
|
||||||
@ -446,6 +449,9 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::map<int, std::vector<bool>> m_data;
|
std::map<int, std::vector<bool>> m_data;
|
||||||
|
|
||||||
|
// To access set_new_unique_id() when copy / pasting a ModelVolume.
|
||||||
|
friend class ModelVolume;
|
||||||
};
|
};
|
||||||
|
|
||||||
// An object STL, or a modifier volume, over which a different set of parameters shall be applied.
|
// An object STL, or a modifier volume, over which a different set of parameters shall be applied.
|
||||||
@ -579,7 +585,7 @@ protected:
|
|||||||
// Copies IDs of both the ModelVolume and its config.
|
// Copies IDs of both the ModelVolume and its config.
|
||||||
explicit ModelVolume(const ModelVolume &rhs) = default;
|
explicit ModelVolume(const ModelVolume &rhs) = default;
|
||||||
void set_model_object(ModelObject *model_object) { object = model_object; }
|
void set_model_object(ModelObject *model_object) { object = model_object; }
|
||||||
void assign_new_unique_ids_recursive() override { ObjectBase::set_new_unique_id(); config.set_new_unique_id(); }
|
void assign_new_unique_ids_recursive() override;
|
||||||
void transform_this_mesh(const Transform3d& t, bool fix_left_handed);
|
void transform_this_mesh(const Transform3d& t, bool fix_left_handed);
|
||||||
void transform_this_mesh(const Matrix3d& m, bool fix_left_handed);
|
void transform_this_mesh(const Matrix3d& m, bool fix_left_handed);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user