Sidebar matrix field behavior for single full object selection

This commit is contained in:
Enrico Turri 2018-12-18 11:50:22 +01:00
parent df9abe7d78
commit f54f966663

View File

@ -390,12 +390,20 @@ void ObjectManipulation::change_scale_value(const Vec3d& scale)
if (needs_uniform_scale) if (needs_uniform_scale)
{ {
double min = scaling_factor.minCoeff(); Vec3d abs_scale_diff = (scale - cache_scale).cwiseAbs();
double max = scaling_factor.maxCoeff(); double max_diff = abs_scale_diff(X);
if (min != 100.0) Axis max_diff_axis = X;
scaling_factor = Vec3d(min, min, min); if (max_diff < abs_scale_diff(Y))
else if (max != 100.0) {
scaling_factor = Vec3d(max, max, max); max_diff = abs_scale_diff(Y);
max_diff_axis = Y;
}
if (max_diff < abs_scale_diff(Z))
{
max_diff = abs_scale_diff(Z);
max_diff_axis = Z;
}
scaling_factor = Vec3d(scale(max_diff_axis), scale(max_diff_axis), scale(max_diff_axis));
} }
scaling_factor *= 0.01; scaling_factor *= 0.01;