This commit is contained in:
bubnikv 2019-02-07 12:07:15 +01:00
commit a178a0ff7e
5 changed files with 25 additions and 24 deletions

Binary file not shown.

View file

@ -1333,6 +1333,8 @@ void Transformation::set_rotation(const Vec3d& rotation)
void Transformation::set_rotation(Axis axis, double rotation) void Transformation::set_rotation(Axis axis, double rotation)
{ {
rotation = angle_to_0_2PI(rotation); rotation = angle_to_0_2PI(rotation);
if (is_approx(std::abs(rotation), 2.0 * (double)PI))
rotation = 0.0;
if (m_rotation(axis) != rotation) if (m_rotation(axis) != rotation)
{ {

View file

@ -2003,7 +2003,7 @@ bool GLBed::on_init_from_file(const std::string& filename, bool useVBOs)
else else
m_volume.indexed_vertex_array.load_mesh_flat_shading(mesh); m_volume.indexed_vertex_array.load_mesh_flat_shading(mesh);
float color[4] = { 0.235f, 0.235f, 0.235f, 1.0f }; float color[4] = { 0.235f, 0.235f, 0.235f, 0.5f };
set_color(color, 4); set_color(color, 4);
m_volume.bounding_box = m_volume.indexed_vertex_array.bounding_box(); m_volume.bounding_box = m_volume.indexed_vertex_array.bounding_box();

View file

@ -145,19 +145,24 @@ void Field::get_value_by_opt_type(wxString& str)
double val; double val;
// Replace the first occurence of comma in decimal number. // Replace the first occurence of comma in decimal number.
str.Replace(",", ".", false); str.Replace(",", ".", false);
if(!str.ToCDouble(&val)) if (str == ".")
{ val = 0.0;
show_error(m_parent, _(L("Invalid numeric input."))); else
set_value(double_to_string(val), true); {
} if (!str.ToCDouble(&val))
if (m_opt.min > val || val > m_opt.max) {
{ show_error(m_parent, _(L("Invalid numeric input.")));
show_error(m_parent, _(L("Input value is out of range"))); set_value(double_to_string(val), true);
if (m_opt.min > val) val = m_opt.min; }
if (val > m_opt.max) val = m_opt.max; if (m_opt.min > val || val > m_opt.max)
set_value(double_to_string(val), true); {
} show_error(m_parent, _(L("Input value is out of range")));
m_value = val; if (m_opt.min > val) val = m_opt.min;
if (val > m_opt.max) val = m_opt.max;
set_value(double_to_string(val), true);
}
}
m_value = val;
break; } break; }
case coString: case coString:
case coStrings: case coStrings:

View file

@ -73,14 +73,8 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) :
def.default_value = new ConfigOptionFloat(0.0); def.default_value = new ConfigOptionFloat(0.0);
def.width = 50; def.width = 50;
if (option_name == "Rotation")
{
def.min = -360;
def.max = 360;
}
// Add "uniform scaling" button in front of "Scale" option // Add "uniform scaling" button in front of "Scale" option
else if (option_name == "Scale") { if (option_name == "Scale") {
line.near_label_widget = [this](wxWindow* parent) { line.near_label_widget = [this](wxWindow* parent) {
auto btn = new PrusaLockButton(parent, wxID_ANY); auto btn = new PrusaLockButton(parent, wxID_ANY);
btn->Bind(wxEVT_BUTTON, [btn, this](wxCommandEvent &event){ btn->Bind(wxEVT_BUTTON, [btn, this](wxCommandEvent &event){
@ -293,13 +287,13 @@ void ObjectManipulation::update_if_dirty()
deg_rotation(i) = Geometry::rad2deg(m_new_rotation(i)); deg_rotation(i) = Geometry::rad2deg(m_new_rotation(i));
} }
if (m_cache.rotation(0) != m_new_rotation(0)) if ((m_cache.rotation(0) != m_new_rotation(0)) || (m_new_rotation(0) == 0.0))
m_og->set_value("rotation_x", double_to_string(deg_rotation(0), 2)); m_og->set_value("rotation_x", double_to_string(deg_rotation(0), 2));
if (m_cache.rotation(1) != m_new_rotation(1)) if ((m_cache.rotation(1) != m_new_rotation(1)) || (m_new_rotation(1) == 0.0))
m_og->set_value("rotation_y", double_to_string(deg_rotation(1), 2)); m_og->set_value("rotation_y", double_to_string(deg_rotation(1), 2));
if (m_cache.rotation(2) != m_new_rotation(2)) if ((m_cache.rotation(2) != m_new_rotation(2)) || (m_new_rotation(2) == 0.0))
m_og->set_value("rotation_z", double_to_string(deg_rotation(2), 2)); m_og->set_value("rotation_z", double_to_string(deg_rotation(2), 2));
m_cache.rotation = deg_rotation; m_cache.rotation = deg_rotation;