mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-13 01:37:53 -06:00
SPE-1103 Added menu items for the conversation of the volumes from/to meters
Related to #4521
This commit is contained in:
parent
8049dd1f72
commit
e664100bf6
8 changed files with 84 additions and 42 deletions
|
@ -3329,6 +3329,8 @@ void Plater::priv::reload_from_disk()
|
|||
new_volume->translate(new_volume->get_transformation().get_matrix(true) * (new_volume->source.mesh_offset - old_volume->source.mesh_offset));
|
||||
if (old_volume->source.is_converted_from_inches)
|
||||
new_volume->convert_from_imperial_units();
|
||||
if (old_volume->source.is_converted_from_meters)
|
||||
new_volume->convert_from_meters();
|
||||
new_volume->supported_facets.assign(old_volume->supported_facets);
|
||||
new_volume->seam_facets.assign(old_volume->seam_facets);
|
||||
std::swap(old_model_object->volumes[sel_v.volume_idx], old_model_object->volumes.back());
|
||||
|
@ -3871,7 +3873,7 @@ void Plater::priv::on_right_click(RBtnEvent& evt)
|
|||
menu_item_convert_unit_position = 2;
|
||||
}
|
||||
|
||||
sidebar->obj_list()->append_menu_item_convert_unit(menu, menu_item_convert_unit_position);
|
||||
sidebar->obj_list()->append_menu_items_convert_unit(menu, menu_item_convert_unit_position);
|
||||
sidebar->obj_list()->append_menu_item_settings(menu);
|
||||
|
||||
if (printer_technology != ptSLA)
|
||||
|
@ -5246,20 +5248,22 @@ void Plater::scale_selection_to_fit_print_volume()
|
|||
p->scale_selection_to_fit_print_volume();
|
||||
}
|
||||
|
||||
void Plater::convert_unit(bool from_imperial_unit)
|
||||
void Plater::convert_unit(ConversionType conv_type)
|
||||
{
|
||||
std::vector<int> obj_idxs, volume_idxs;
|
||||
wxGetApp().obj_list()->get_selection_indexes(obj_idxs, volume_idxs);
|
||||
if (obj_idxs.empty() && volume_idxs.empty())
|
||||
return;
|
||||
|
||||
TakeSnapshot snapshot(this, from_imperial_unit ? _L("Convert from imperial units") : _L("Revert conversion from imperial units"));
|
||||
TakeSnapshot snapshot(this, conv_type == ConversionType::CONV_FROM_INCH ? _L("Convert from imperial units") :
|
||||
conv_type == ConversionType::CONV_TO_INCH ? _L("Revert conversion from imperial units") :
|
||||
conv_type == ConversionType::CONV_FROM_METER ? _L("Convert from meters") : _L("Revert conversion from meters"));
|
||||
wxBusyCursor wait;
|
||||
|
||||
ModelObjectPtrs objects;
|
||||
for (int obj_idx : obj_idxs) {
|
||||
ModelObject *object = p->model.objects[obj_idx];
|
||||
object->convert_units(objects, from_imperial_unit, volume_idxs);
|
||||
object->convert_units(objects, conv_type, volume_idxs);
|
||||
remove(obj_idx);
|
||||
}
|
||||
p->load_model_objects(objects);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue