FIX: negative volume scaling error when the instance is scaled first

Change-Id: I47b329123cb2b021a388fb1dbbcfe8c4cc927bc7
This commit is contained in:
zhimin.zeng 2023-03-21 10:45:47 +08:00 committed by Lane.Wei
parent 82d10c34e0
commit 24657f9145
1 changed files with 4 additions and 1 deletions

View File

@ -330,8 +330,11 @@ void GizmoObjectManipulation::change_size_value(int axis, double value)
const Selection& selection = m_glcanvas.get_selection();
Vec3d ref_size = m_cache.size;
if (selection.is_single_volume() || selection.is_single_modifier())
if (selection.is_single_volume() || selection.is_single_modifier()) {
Vec3d instance_scale = wxGetApp().model().objects[selection.get_volume(*selection.get_volume_idxs().begin())->object_idx()]->instances[0]->get_transformation().get_scaling_factor();
ref_size = selection.get_volume(*selection.get_volume_idxs().begin())->bounding_box().size();
ref_size = Vec3d(instance_scale[0] * ref_size[0], instance_scale[1] * ref_size[1], instance_scale[2] * ref_size[2]);
}
else if (selection.is_single_full_instance())
ref_size = m_world_coordinates ?
selection.get_unscaled_instance_bounding_box().size() :