Fix of instance rotations from the side panel
in regard to instance synchronization.
This commit is contained in:
parent
d009be7609
commit
0ec450f3d7
2 changed files with 3 additions and 1 deletions
|
@ -1271,6 +1271,7 @@ void GLCanvas3D::Selection::rotate(const Vec3d& rotation, GLCanvas3D::Transforma
|
||||||
assert(! transformation_type.world() || transformation_type.relative());
|
assert(! transformation_type.world() || transformation_type.relative());
|
||||||
|
|
||||||
int rot_axis_max;
|
int rot_axis_max;
|
||||||
|
//FIXME this does not work for absolute rotations (transformation_type.absolute() is true)
|
||||||
rotation.cwiseAbs().maxCoeff(&rot_axis_max);
|
rotation.cwiseAbs().maxCoeff(&rot_axis_max);
|
||||||
|
|
||||||
// For generic rotation, we want to rotate the first volume in selection, and then to synchronize the other volumes with it.
|
// For generic rotation, we want to rotate the first volume in selection, and then to synchronize the other volumes with it.
|
||||||
|
|
|
@ -365,7 +365,8 @@ void ObjectManipulation::change_rotation_value(const Vec3d& rotation)
|
||||||
if (selection.is_single_full_instance() || selection.requires_local_axes())
|
if (selection.is_single_full_instance() || selection.requires_local_axes())
|
||||||
transformation_type.set_independent();
|
transformation_type.set_independent();
|
||||||
if (selection.is_single_full_instance()) {
|
if (selection.is_single_full_instance()) {
|
||||||
transformation_type.set_absolute();
|
//FIXME GLCanvas3D::Selection::rotate() does not process absoulte rotations correctly: It does not recognize the axis index, which was changed.
|
||||||
|
// transformation_type.set_absolute();
|
||||||
transformation_type.set_local();
|
transformation_type.set_local();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue