New selection -> Removed old plater selection
This commit is contained in:
parent
b4a09d3d86
commit
b8ec71ab28
@ -672,6 +672,7 @@ std::vector<PresetComboBox*>& Sidebar::combos_filament()
|
|||||||
return p->combos_filament;
|
return p->combos_filament;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
// Plater::Object
|
// Plater::Object
|
||||||
|
|
||||||
struct PlaterObject
|
struct PlaterObject
|
||||||
@ -681,6 +682,7 @@ struct PlaterObject
|
|||||||
|
|
||||||
PlaterObject(std::string name) : name(std::move(name)), selected(false) {}
|
PlaterObject(std::string name) : name(std::move(name)), selected(false) {}
|
||||||
};
|
};
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
// Plater::DropTarget
|
// Plater::DropTarget
|
||||||
|
|
||||||
@ -730,7 +732,9 @@ struct Plater::priv
|
|||||||
Slic3r::Print print;
|
Slic3r::Print print;
|
||||||
Slic3r::Model model;
|
Slic3r::Model model;
|
||||||
Slic3r::GCodePreviewData gcode_preview_data;
|
Slic3r::GCodePreviewData gcode_preview_data;
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
std::vector<PlaterObject> objects;
|
std::vector<PlaterObject> objects;
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
fs::path export_gcode_output_file;
|
fs::path export_gcode_output_file;
|
||||||
fs::path send_gcode_file;
|
fs::path send_gcode_file;
|
||||||
@ -761,9 +765,15 @@ struct Plater::priv
|
|||||||
std::vector<size_t> load_model_objects(const ModelObjectPtrs &model_objects);
|
std::vector<size_t> load_model_objects(const ModelObjectPtrs &model_objects);
|
||||||
std::unique_ptr<CheckboxFileDialog> get_export_file(GUI::FileType file_type);
|
std::unique_ptr<CheckboxFileDialog> get_export_file(GUI::FileType file_type);
|
||||||
|
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
const GLCanvas3D::Selection& get_selection() const;
|
||||||
|
GLCanvas3D::Selection& get_selection();
|
||||||
|
int get_selected_object_idx() const;
|
||||||
|
#else
|
||||||
void select_object(optional<size_t> obj_idx);
|
void select_object(optional<size_t> obj_idx);
|
||||||
void select_object_from_cpp();
|
void select_object_from_cpp();
|
||||||
optional<size_t> selected_object() const;
|
optional<size_t> selected_object() const;
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
void selection_changed();
|
void selection_changed();
|
||||||
void object_list_changed();
|
void object_list_changed();
|
||||||
void select_view();
|
void select_view();
|
||||||
@ -808,7 +818,9 @@ struct Plater::priv
|
|||||||
void on_viewport_changed(SimpleEvent&);
|
void on_viewport_changed(SimpleEvent&);
|
||||||
void on_right_click(Vec2dEvent&);
|
void on_right_click(Vec2dEvent&);
|
||||||
void on_model_update(SimpleEvent&);
|
void on_model_update(SimpleEvent&);
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
void on_scale_uniformly(SimpleEvent&);
|
void on_scale_uniformly(SimpleEvent&);
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
void on_wipetower_moved(Vec3dEvent&);
|
void on_wipetower_moved(Vec3dEvent&);
|
||||||
void on_enable_action_buttons(Event<bool>&);
|
void on_enable_action_buttons(Event<bool>&);
|
||||||
void on_update_geometry(Vec3dsEvent<2>&);
|
void on_update_geometry(Vec3dsEvent<2>&);
|
||||||
@ -1114,12 +1126,19 @@ std::vector<size_t> Plater::priv::load_model_objects(const ModelObjectPtrs &mode
|
|||||||
bool need_arrange = false;
|
bool need_arrange = false;
|
||||||
bool scaled_down = false;
|
bool scaled_down = false;
|
||||||
std::vector<size_t> obj_idxs;
|
std::vector<size_t> obj_idxs;
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
unsigned int obj_count = 0;
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
for (ModelObject *model_object : model_objects) {
|
for (ModelObject *model_object : model_objects) {
|
||||||
auto *object = model.add_object(*model_object);
|
auto *object = model.add_object(*model_object);
|
||||||
std::string object_name = object->name.empty() ? fs::path(object->input_file).filename().string() : object->name;
|
std::string object_name = object->name.empty() ? fs::path(object->input_file).filename().string() : object->name;
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
obj_idxs.push_back(obj_count++);
|
||||||
|
#else
|
||||||
objects.emplace_back(std::move(object_name));
|
objects.emplace_back(std::move(object_name));
|
||||||
obj_idxs.push_back(objects.size() - 1);
|
obj_idxs.push_back(objects.size() - 1);
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
if (model_object->instances.empty()) {
|
if (model_object->instances.empty()) {
|
||||||
// if object has no defined position(s) we need to rearrange everything after loading
|
// if object has no defined position(s) we need to rearrange everything after loading
|
||||||
@ -1227,6 +1246,23 @@ std::unique_ptr<CheckboxFileDialog> Plater::priv::get_export_file(GUI::FileType
|
|||||||
return dlg;
|
return dlg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
const GLCanvas3D::Selection& Plater::priv::get_selection() const
|
||||||
|
{
|
||||||
|
return _3DScene::get_canvas(canvas3D)->get_selection();
|
||||||
|
}
|
||||||
|
|
||||||
|
GLCanvas3D::Selection& Plater::priv::get_selection()
|
||||||
|
{
|
||||||
|
return _3DScene::get_canvas(canvas3D)->get_selection();
|
||||||
|
}
|
||||||
|
|
||||||
|
int Plater::priv::get_selected_object_idx() const
|
||||||
|
{
|
||||||
|
int idx = get_selection().get_object_idx();
|
||||||
|
return ((0 <= idx) && (idx < 1000)) ? idx : -1;
|
||||||
|
}
|
||||||
|
#else
|
||||||
void Plater::priv::select_object(optional<size_t> obj_idx)
|
void Plater::priv::select_object(optional<size_t> obj_idx)
|
||||||
{
|
{
|
||||||
for (auto &obj : objects) {
|
for (auto &obj : objects) {
|
||||||
@ -1253,15 +1289,13 @@ optional<size_t> Plater::priv::selected_object() const
|
|||||||
|
|
||||||
return boost::none;
|
return boost::none;
|
||||||
}
|
}
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
void Plater::priv::selection_changed()
|
void Plater::priv::selection_changed()
|
||||||
{
|
{
|
||||||
#if ENABLE_EXTENDED_SELECTION
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
const GUI::GLCanvas3D* canvas = _3DScene::get_canvas(this->canvas3D);
|
int obj_idx = get_selected_object_idx();
|
||||||
const GUI::GLCanvas3D::Selection& selection = canvas->get_selection();
|
bool have_sel = (obj_idx != -1);
|
||||||
|
|
||||||
int obj_idx = selection.get_object_idx();
|
|
||||||
bool have_sel = !selection.is_empty() && (0 <= obj_idx) && (obj_idx < 1000);
|
|
||||||
#else
|
#else
|
||||||
const auto obj_idx = selected_object();
|
const auto obj_idx = selected_object();
|
||||||
const bool have_sel = !!obj_idx;
|
const bool have_sel = !!obj_idx;
|
||||||
@ -1354,7 +1388,11 @@ void Plater::priv::selection_changed()
|
|||||||
void Plater::priv::object_list_changed()
|
void Plater::priv::object_list_changed()
|
||||||
{
|
{
|
||||||
// Enable/disable buttons depending on whether there are any objects on the platter.
|
// Enable/disable buttons depending on whether there are any objects on the platter.
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
const bool have_objects = !model.objects.empty();
|
||||||
|
#else
|
||||||
const bool have_objects = !objects.empty();
|
const bool have_objects = !objects.empty();
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
_3DScene::enable_toolbar_item(canvas3D, "deleteall", have_objects);
|
_3DScene::enable_toolbar_item(canvas3D, "deleteall", have_objects);
|
||||||
_3DScene::enable_toolbar_item(canvas3D, "arrange", have_objects);
|
_3DScene::enable_toolbar_item(canvas3D, "arrange", have_objects);
|
||||||
@ -1378,7 +1416,9 @@ void Plater::priv::remove(size_t obj_idx)
|
|||||||
// Prevent toolpaths preview from rendering while we modify the Print object
|
// Prevent toolpaths preview from rendering while we modify the Print object
|
||||||
preview->set_enabled(false);
|
preview->set_enabled(false);
|
||||||
|
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
objects.erase(objects.begin() + obj_idx);
|
objects.erase(objects.begin() + obj_idx);
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
model.delete_object(obj_idx);
|
model.delete_object(obj_idx);
|
||||||
print.delete_object(obj_idx);
|
print.delete_object(obj_idx);
|
||||||
// Delete object from Sidebar list
|
// Delete object from Sidebar list
|
||||||
@ -1386,7 +1426,9 @@ void Plater::priv::remove(size_t obj_idx)
|
|||||||
|
|
||||||
object_list_changed();
|
object_list_changed();
|
||||||
|
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
select_object(boost::none);
|
select_object(boost::none);
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1397,7 +1439,9 @@ void Plater::priv::reset()
|
|||||||
// Prevent toolpaths preview from rendering while we modify the Print object
|
// Prevent toolpaths preview from rendering while we modify the Print object
|
||||||
preview->set_enabled(false);
|
preview->set_enabled(false);
|
||||||
|
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
objects.clear();
|
objects.clear();
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
model.clear_objects();
|
model.clear_objects();
|
||||||
print.clear_objects();
|
print.clear_objects();
|
||||||
|
|
||||||
@ -1405,7 +1449,9 @@ void Plater::priv::reset()
|
|||||||
sidebar->obj_list()->delete_all_objects_from_list();
|
sidebar->obj_list()->delete_all_objects_from_list();
|
||||||
object_list_changed();
|
object_list_changed();
|
||||||
|
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
select_object(boost::none);
|
select_object(boost::none);
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1416,11 +1462,20 @@ void Plater::priv::rotate()
|
|||||||
|
|
||||||
void Plater::priv::mirror(const Axis &axis)
|
void Plater::priv::mirror(const Axis &axis)
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
int obj_idx = get_selected_object_idx();
|
||||||
|
if (obj_idx == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ModelObject* model_object = model.objects[obj_idx];
|
||||||
|
ModelInstance* model_instance = model_object->instances.front();
|
||||||
|
#else
|
||||||
const auto obj_idx = selected_object();
|
const auto obj_idx = selected_object();
|
||||||
if (! obj_idx) { return; }
|
if (! obj_idx) { return; }
|
||||||
|
|
||||||
auto *model_object = model.objects[*obj_idx];
|
auto *model_object = model.objects[*obj_idx];
|
||||||
auto *model_instance = model_object->instances[0];
|
auto *model_instance = model_object->instances[0];
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
// XXX: ?
|
// XXX: ?
|
||||||
// # apply Z rotation before mirroring
|
// # apply Z rotation before mirroring
|
||||||
@ -1432,7 +1487,11 @@ void Plater::priv::mirror(const Axis &axis)
|
|||||||
model_object->mirror(axis);
|
model_object->mirror(axis);
|
||||||
|
|
||||||
// $self->stop_background_process; // TODO
|
// $self->stop_background_process; // TODO
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
print.add_model_object(model_object, obj_idx);
|
||||||
|
#else
|
||||||
print.add_model_object(model_object, *obj_idx);
|
print.add_model_object(model_object, *obj_idx);
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
selection_changed();
|
selection_changed();
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
@ -1663,6 +1722,7 @@ void Plater::priv::on_model_update(SimpleEvent&)
|
|||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !ENABLE_EXTENDED_SELECTION
|
||||||
void Plater::priv::on_scale_uniformly(SimpleEvent&)
|
void Plater::priv::on_scale_uniformly(SimpleEvent&)
|
||||||
{
|
{
|
||||||
// my ($scale) = @_;
|
// my ($scale) = @_;
|
||||||
@ -1697,6 +1757,7 @@ void Plater::priv::on_scale_uniformly(SimpleEvent&)
|
|||||||
// $self->update;
|
// $self->update;
|
||||||
// $self->schedule_background_process;
|
// $self->schedule_background_process;
|
||||||
}
|
}
|
||||||
|
#endif // !ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
void Plater::priv::on_wipetower_moved(Vec3dEvent &evt)
|
void Plater::priv::on_wipetower_moved(Vec3dEvent &evt)
|
||||||
{
|
{
|
||||||
@ -1741,19 +1802,34 @@ void Plater::remove(size_t obj_idx) { p->remove(obj_idx); }
|
|||||||
|
|
||||||
void Plater::remove_selected()
|
void Plater::remove_selected()
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
int obj_idx = p->get_selected_object_idx();
|
||||||
|
if (obj_idx != -1)
|
||||||
|
remove((size_t)obj_idx);
|
||||||
|
#else
|
||||||
const auto selected = p->selected_object();
|
const auto selected = p->selected_object();
|
||||||
if (selected) {
|
if (selected) {
|
||||||
remove(*selected);
|
remove(*selected);
|
||||||
}
|
}
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
}
|
}
|
||||||
|
|
||||||
void Plater::increase(size_t num)
|
void Plater::increase(size_t num)
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
int obj_idx = p->get_selected_object_idx();
|
||||||
|
if (obj_idx == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ModelObject* model_object = p->model.objects[obj_idx];
|
||||||
|
ModelInstance* model_instance = model_object->instances.back();
|
||||||
|
#else
|
||||||
const auto obj_idx = p->selected_object();
|
const auto obj_idx = p->selected_object();
|
||||||
if (! obj_idx) { return; }
|
if (! obj_idx) { return; }
|
||||||
|
|
||||||
auto *model_object = p->model.objects[*obj_idx];
|
auto *model_object = p->model.objects[*obj_idx];
|
||||||
auto *model_instance = model_object->instances[model_object->instances.size() - 1];
|
auto *model_instance = model_object->instances[model_object->instances.size() - 1];
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
// $self->stop_background_process;
|
// $self->stop_background_process;
|
||||||
|
|
||||||
@ -1761,10 +1837,18 @@ void Plater::increase(size_t num)
|
|||||||
for (size_t i = 0; i < num; i++, offset += 10.0) {
|
for (size_t i = 0; i < num; i++, offset += 10.0) {
|
||||||
Vec3d offset_vec = model_instance->get_offset() + Vec3d(offset, offset, 0.0);
|
Vec3d offset_vec = model_instance->get_offset() + Vec3d(offset, offset, 0.0);
|
||||||
auto *new_instance = model_object->add_instance(offset_vec, model_instance->get_scaling_factor(), model_instance->get_rotation());
|
auto *new_instance = model_object->add_instance(offset_vec, model_instance->get_scaling_factor(), model_instance->get_rotation());
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
p->print.get_object(obj_idx)->add_copy(Slic3r::to_2d(offset_vec));
|
||||||
|
#else
|
||||||
p->print.get_object(*obj_idx)->add_copy(Slic3r::to_2d(offset_vec));
|
p->print.get_object(*obj_idx)->add_copy(Slic3r::to_2d(offset_vec));
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
sidebar().obj_list()->set_object_count(obj_idx, model_object->instances.size());
|
||||||
|
#else
|
||||||
sidebar().obj_list()->set_object_count(*obj_idx, model_object->instances.size());
|
sidebar().obj_list()->set_object_count(*obj_idx, model_object->instances.size());
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
if (p->get_config("autocenter") == "1") {
|
if (p->get_config("autocenter") == "1") {
|
||||||
p->arrange();
|
p->arrange();
|
||||||
@ -1779,18 +1863,39 @@ void Plater::increase(size_t num)
|
|||||||
|
|
||||||
void Plater::decrease(size_t num)
|
void Plater::decrease(size_t num)
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
int obj_idx = p->get_selected_object_idx();
|
||||||
|
if (obj_idx == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ModelObject* model_object = p->model.objects[obj_idx];
|
||||||
|
#else
|
||||||
const auto obj_idx = p->selected_object();
|
const auto obj_idx = p->selected_object();
|
||||||
if (! obj_idx) { return; }
|
if (! obj_idx) { return; }
|
||||||
|
|
||||||
auto *model_object = p->model.objects[*obj_idx];
|
auto *model_object = p->model.objects[*obj_idx];
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
if (model_object->instances.size() > num) {
|
if (model_object->instances.size() > num) {
|
||||||
for (size_t i = 0; i < num; i++) {
|
for (size_t i = 0; i < num; i++) {
|
||||||
model_object->delete_last_instance();
|
model_object->delete_last_instance();
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
p->print.get_object(obj_idx)->delete_last_copy();
|
||||||
|
#else
|
||||||
p->print.get_object(*obj_idx)->delete_last_copy();
|
p->print.get_object(*obj_idx)->delete_last_copy();
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
}
|
}
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
sidebar().obj_list()->set_object_count(obj_idx, model_object->instances.size());
|
||||||
|
#else
|
||||||
sidebar().obj_list()->set_object_count(*obj_idx, model_object->instances.size());
|
sidebar().obj_list()->set_object_count(*obj_idx, model_object->instances.size());
|
||||||
} else {
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
remove(obj_idx);
|
||||||
|
#else
|
||||||
remove(*obj_idx);
|
remove(*obj_idx);
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
}
|
}
|
||||||
|
|
||||||
p->update();
|
p->update();
|
||||||
@ -1798,12 +1903,20 @@ void Plater::decrease(size_t num)
|
|||||||
|
|
||||||
void Plater::set_number_of_copies(size_t num)
|
void Plater::set_number_of_copies(size_t num)
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
int obj_idx = p->get_selected_object_idx();
|
||||||
|
if (obj_idx == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ModelObject* model_object = p->model.objects[obj_idx];
|
||||||
|
#else
|
||||||
const auto obj_idx = p->selected_object();
|
const auto obj_idx = p->selected_object();
|
||||||
if (! obj_idx) { return; }
|
if (! obj_idx) { return; }
|
||||||
|
|
||||||
auto *model_object = p->model.objects[*obj_idx];
|
auto *model_object = p->model.objects[*obj_idx];
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
auto diff = (ptrdiff_t)num - (ptrdiff_t)model_object->instances.size();
|
int diff = (int)num - (int)model_object->instances.size();
|
||||||
if (diff > 0) {
|
if (diff > 0) {
|
||||||
increase(diff);
|
increase(diff);
|
||||||
} else if (diff < 0) {
|
} else if (diff < 0) {
|
||||||
@ -1813,7 +1926,11 @@ void Plater::set_number_of_copies(size_t num)
|
|||||||
|
|
||||||
fs::path Plater::export_gcode(const fs::path &output_path)
|
fs::path Plater::export_gcode(const fs::path &output_path)
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
if (p->model.objects.empty()) { return ""; }
|
||||||
|
#else
|
||||||
if (p->objects.empty()) { return ""; }
|
if (p->objects.empty()) { return ""; }
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
if (! p->export_gcode_output_file.empty()) {
|
if (! p->export_gcode_output_file.empty()) {
|
||||||
GUI::show_error(this, _(L("Another export job is currently running.")));
|
GUI::show_error(this, _(L("Another export job is currently running.")));
|
||||||
@ -1866,7 +1983,11 @@ fs::path Plater::export_gcode(const fs::path &output_path)
|
|||||||
|
|
||||||
void Plater::export_stl()
|
void Plater::export_stl()
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
if (p->model.objects.empty()) { return; }
|
||||||
|
#else
|
||||||
if (p->objects.empty()) { return; }
|
if (p->objects.empty()) { return; }
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
auto dialog = p->get_export_file(FT_STL);
|
auto dialog = p->get_export_file(FT_STL);
|
||||||
if (! dialog) { return; }
|
if (! dialog) { return; }
|
||||||
@ -1881,7 +2002,11 @@ void Plater::export_stl()
|
|||||||
|
|
||||||
void Plater::export_amf()
|
void Plater::export_amf()
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
if (p->model.objects.empty()) { return; }
|
||||||
|
#else
|
||||||
if (p->objects.empty()) { return; }
|
if (p->objects.empty()) { return; }
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
auto dialog = p->get_export_file(FT_AMF);
|
auto dialog = p->get_export_file(FT_AMF);
|
||||||
if (! dialog) { return; }
|
if (! dialog) { return; }
|
||||||
@ -1900,7 +2025,11 @@ void Plater::export_amf()
|
|||||||
|
|
||||||
void Plater::export_3mf()
|
void Plater::export_3mf()
|
||||||
{
|
{
|
||||||
|
#if ENABLE_EXTENDED_SELECTION
|
||||||
|
if (p->model.objects.empty()) { return; }
|
||||||
|
#else
|
||||||
if (p->objects.empty()) { return; }
|
if (p->objects.empty()) { return; }
|
||||||
|
#endif // ENABLE_EXTENDED_SELECTION
|
||||||
|
|
||||||
auto dialog = p->get_export_file(FT_3MF);
|
auto dialog = p->get_export_file(FT_3MF);
|
||||||
if (! dialog) { return; }
|
if (! dialog) { return; }
|
||||||
|
Loading…
Reference in New Issue
Block a user