From ca5c04bab2c7b78959135b8ef577a817fce88549 Mon Sep 17 00:00:00 2001 From: enricoturri1966 Date: Mon, 18 Oct 2021 15:26:31 +0200 Subject: [PATCH] Tech ENABLE_WORLD_COORDINATE - Modified method Selection::requires_uniform_scale() Fixed conflicts during rebase with master --- src/slic3r/GUI/Gizmos/GLGizmosManager.cpp | 67 +++++++++++++++++++++++ src/slic3r/GUI/Selection.cpp | 7 +++ 2 files changed, 74 insertions(+) diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 21b55ea69..2b66c6263 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -227,12 +227,79 @@ void GLGizmosManager::set_hover_id(int id) void GLGizmosManager::update_data() { +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//<<<<<<< HEAD +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ if (!m_enabled) return; +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//======= +// if (!m_enabled) +// return; +// +// const Selection& selection = m_parent.get_selection(); +// +// bool is_wipe_tower = selection.is_wipe_tower(); +// enable_grabber(Move, 2, !is_wipe_tower); +// enable_grabber(Rotate, 0, !is_wipe_tower); +// enable_grabber(Rotate, 1, !is_wipe_tower); +// +//#if ENABLE_WORLD_COORDINATE +// bool enable_scale_xyz = !selection.requires_uniform_scale(); +//#else +// bool enable_scale_xyz = selection.is_single_full_instance() || selection.is_single_volume() || selection.is_single_modifier(); +//#endif // ENABLE_WORLD_COORDINATE +// for (unsigned int i = 0; i < 6; ++i) { +// enable_grabber(Scale, i, enable_scale_xyz); +// } +// +//>>>>>>> 8cf66f52f (Tech ENABLE_WORLD_COORDINATE - Modified method Selection::requires_uniform_scale()) +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ if (m_common_gizmos_data) m_common_gizmos_data->update(get_current() ? get_current()->get_requirements() : CommonGizmosDataID(0)); +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//<<<<<<< HEAD +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ if (m_current != Undefined) m_gizmos[m_current]->data_changed(); +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +//======= +// +// if (selection.is_single_full_instance()) { +// // all volumes in the selection belongs to the same instance, any of them contains the needed data, so we take the first +// const GLVolume* volume = selection.get_volume(*selection.get_volume_idxs().begin()); +// set_scale(volume->get_instance_scaling_factor()); +// set_rotation(Vec3d::Zero()); +// ModelObject* model_object = selection.get_model()->objects[selection.get_object_idx()]; +// set_flattening_data(model_object); +// set_sla_support_data(model_object); +// set_painter_gizmo_data(); +// } +// else if (selection.is_single_volume() || selection.is_single_modifier()) { +// const GLVolume* volume = selection.get_volume(*selection.get_volume_idxs().begin()); +// set_scale(volume->get_volume_scaling_factor()); +// set_rotation(Vec3d::Zero()); +// set_flattening_data(nullptr); +// set_sla_support_data(nullptr); +// set_painter_gizmo_data(); +// } +// else if (is_wipe_tower) { +// DynamicPrintConfig& config = wxGetApp().preset_bundle->prints.get_edited_preset().config; +// set_scale(Vec3d::Ones()); +// set_rotation(Vec3d(0., 0., (M_PI/180.) * dynamic_cast(config.option("wipe_tower_rotation_angle"))->value)); +// set_flattening_data(nullptr); +// set_sla_support_data(nullptr); +// set_painter_gizmo_data(); +// } +// else { +// set_scale(Vec3d::Ones()); +// set_rotation(Vec3d::Zero()); +// set_flattening_data(selection.is_from_single_object() ? selection.get_model()->objects[selection.get_object_idx()] : nullptr); +// set_sla_support_data(selection.is_from_single_instance() ? selection.get_model()->objects[selection.get_object_idx()] : nullptr); +// set_painter_gizmo_data(); +// } +//>>>>>>> 8cf66f52f (Tech ENABLE_WORLD_COORDINATE - Modified method Selection::requires_uniform_scale()) +//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ } bool GLGizmosManager::is_running() const diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index dab2b6414..17fc4a674 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -593,8 +593,15 @@ bool Selection::matches(const std::vector& volume_idxs) const bool Selection::requires_uniform_scale() const { +#if ENABLE_WORLD_COORDINATE + if (is_single_modifier() || is_single_volume()) + return !Geometry::is_rotation_ninety_degrees(Geometry::Transformation(get_volume(*m_list.begin())->world_matrix()).get_rotation()); + else if (is_single_full_instance() && wxGetApp().obj_manipul()->get_world_coordinates()) + return !Geometry::is_rotation_ninety_degrees(get_volume(*m_list.begin())->get_instance_rotation()); +#else if (is_single_full_instance() || is_single_modifier() || is_single_volume()) return false; +#endif // ENABLE_WORLD_COORDINATE return true; }