mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-07-31 17:02:00 +08:00
SPE-2011: Fixed synchronization of unselected instances when rotating an instance in Object Coordinates
This commit is contained in:
parent
62c56e6f28
commit
35a64b11e5
@ -1018,7 +1018,7 @@ void Selection::rotate(const Vec3d& rotation, TransformationType transformation_
|
|||||||
if (m_mode == Instance && !is_wipe_tower()) {
|
if (m_mode == Instance && !is_wipe_tower()) {
|
||||||
assert(is_from_fully_selected_instance(i));
|
assert(is_from_fully_selected_instance(i));
|
||||||
if (transformation_type.instance()) {
|
if (transformation_type.instance()) {
|
||||||
// ensure that the instance rotates as a rigid body
|
// ensure that the instance rotates as a rigid body
|
||||||
Transform3d inst_rotation_matrix = inst_trafo.get_rotation_matrix();
|
Transform3d inst_rotation_matrix = inst_trafo.get_rotation_matrix();
|
||||||
if (inst_trafo.is_left_handed()) {
|
if (inst_trafo.is_left_handed()) {
|
||||||
Geometry::TransformationSVD inst_svd(inst_trafo);
|
Geometry::TransformationSVD inst_svd(inst_trafo);
|
||||||
@ -1075,7 +1075,7 @@ void Selection::rotate(const Vec3d& rotation, TransformationType transformation_
|
|||||||
if (m_mode == Instance) {
|
if (m_mode == Instance) {
|
||||||
int rot_axis_max = 0;
|
int rot_axis_max = 0;
|
||||||
rotation.cwiseAbs().maxCoeff(&rot_axis_max);
|
rotation.cwiseAbs().maxCoeff(&rot_axis_max);
|
||||||
synchronize_unselected_instances((rot_axis_max == 2) ? SyncRotationType::NONE : SyncRotationType::GENERAL);
|
synchronize_unselected_instances((rot_axis_max == 2) && !transformation_type.instance() ? SyncRotationType::NONE : SyncRotationType::GENERAL);
|
||||||
}
|
}
|
||||||
else if (m_mode == Volume)
|
else if (m_mode == Volume)
|
||||||
synchronize_unselected_volumes();
|
synchronize_unselected_volumes();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user