#7245 - Added validation of values typed by user in scale and size fields of object/part manipulator in sidebar
This commit is contained in:
parent
69b7fac01f
commit
c782c2d389
1 changed files with 26 additions and 4 deletions
|
@ -866,6 +866,9 @@ void ObjectManipulation::change_rotation_value(int axis, double value)
|
|||
|
||||
void ObjectManipulation::change_scale_value(int axis, double value)
|
||||
{
|
||||
if (value <= 0.0)
|
||||
return;
|
||||
|
||||
if (std::abs(m_cache.scale_rounded(axis) - value) < EPSILON)
|
||||
return;
|
||||
|
||||
|
@ -882,6 +885,9 @@ void ObjectManipulation::change_scale_value(int axis, double value)
|
|||
|
||||
void ObjectManipulation::change_size_value(int axis, double value)
|
||||
{
|
||||
if (value <= 0.0)
|
||||
return;
|
||||
|
||||
if (std::abs(m_cache.size_rounded(axis) - value) < EPSILON)
|
||||
return;
|
||||
|
||||
|
@ -947,10 +953,26 @@ void ObjectManipulation::on_change(const std::string& opt_key, int axis, double
|
|||
change_position_value(axis, new_value);
|
||||
else if (opt_key == "rotation")
|
||||
change_rotation_value(axis, new_value);
|
||||
else if (opt_key == "scale")
|
||||
change_scale_value(axis, new_value);
|
||||
else if (opt_key == "size")
|
||||
change_size_value(axis, new_value);
|
||||
else if (opt_key == "scale") {
|
||||
if (new_value > 0.0)
|
||||
change_scale_value(axis, new_value);
|
||||
else {
|
||||
new_value = m_cache.scale(axis);
|
||||
m_cache.scale(axis) = 0.0;
|
||||
m_cache.scale_rounded(axis) = DBL_MAX;
|
||||
change_scale_value(axis, new_value);
|
||||
}
|
||||
}
|
||||
else if (opt_key == "size") {
|
||||
if (new_value > 0.0)
|
||||
change_size_value(axis, new_value);
|
||||
else {
|
||||
new_value = m_cache.size(axis);
|
||||
m_cache.size(axis) = 0.0;
|
||||
m_cache.size_rounded(axis) = DBL_MAX;
|
||||
change_size_value(axis, new_value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectManipulation::set_uniform_scaling(const bool new_value)
|
||||
|
|
Loading…
Reference in a new issue