diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index bb494343bc..37b8cd9e1f 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -47,9 +47,6 @@ //================== #define ENABLE_2_2_0_BETA1 1 -// Enable using Y axis of 3Dconnexion devices as zoom -#define ENABLE_3DCONNEXION_Y_AS_ZOOM (1 && ENABLE_2_2_0_BETA1) - // Enable a modified version of the toolbar textures where all the icons are separated by 1 pixel #define ENABLE_MODIFIED_TOOLBAR_TEXTURES (1 && ENABLE_2_2_0_BETA1) diff --git a/src/slic3r/GUI/AppConfig.cpp b/src/slic3r/GUI/AppConfig.cpp index a410f3ad8d..3c7a498eb5 100644 --- a/src/slic3r/GUI/AppConfig.cpp +++ b/src/slic3r/GUI/AppConfig.cpp @@ -284,11 +284,7 @@ void AppConfig::set_recent_projects(const std::vector& recent_proje } } -#if ENABLE_3DCONNEXION_Y_AS_ZOOM void AppConfig::set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone, double zoom_speed) -#else -void AppConfig::set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone) -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM { std::string key = std::string("mouse_device:") + name; auto it = m_storage.find(key); @@ -300,9 +296,7 @@ void AppConfig::set_mouse_device(const std::string& name, double translation_spe it->second["translation_deadzone"] = std::to_string(translation_deadzone); it->second["rotation_speed"] = std::to_string(rotation_speed); it->second["rotation_deadzone"] = std::to_string(rotation_deadzone); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM it->second["zoom_speed"] = std::to_string(zoom_speed); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM } bool AppConfig::get_mouse_device_translation_speed(const std::string& name, double& speed) @@ -365,7 +359,6 @@ bool AppConfig::get_mouse_device_rotation_deadzone(const std::string& name, floa return true; } -#if ENABLE_3DCONNEXION_Y_AS_ZOOM bool AppConfig::get_mouse_device_zoom_speed(const std::string& name, double& speed) { std::string key = std::string("mouse_device:") + name; @@ -380,7 +373,6 @@ bool AppConfig::get_mouse_device_zoom_speed(const std::string& name, double& spe speed = (float)::atof(it_val->second.c_str()); return true; } -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM void AppConfig::update_config_dir(const std::string &dir) { diff --git a/src/slic3r/GUI/AppConfig.hpp b/src/slic3r/GUI/AppConfig.hpp index 32f1c32c85..c49260173f 100644 --- a/src/slic3r/GUI/AppConfig.hpp +++ b/src/slic3r/GUI/AppConfig.hpp @@ -133,18 +133,12 @@ public: std::vector get_recent_projects() const; void set_recent_projects(const std::vector& recent_projects); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM void set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone, double zoom_speed); -#else - void set_mouse_device(const std::string& name, double translation_speed, double translation_deadzone, float rotation_speed, float rotation_deadzone); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM bool get_mouse_device_translation_speed(const std::string& name, double& speed); bool get_mouse_device_translation_deadzone(const std::string& name, double& deadzone); bool get_mouse_device_rotation_speed(const std::string& name, float& speed); bool get_mouse_device_rotation_deadzone(const std::string& name, float& deadzone); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM bool get_mouse_device_zoom_speed(const std::string& name, double& speed); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM static const std::string SECTION_FILAMENTS; static const std::string SECTION_MATERIALS; diff --git a/src/slic3r/GUI/Mouse3DController.cpp b/src/slic3r/GUI/Mouse3DController.cpp index acadc5b2ed..a6d7cbef45 100644 --- a/src/slic3r/GUI/Mouse3DController.cpp +++ b/src/slic3r/GUI/Mouse3DController.cpp @@ -60,17 +60,13 @@ const double Mouse3DController::State::DefaultTranslationDeadzone = 0.5 * Mouse3 const float Mouse3DController::State::DefaultRotationScale = 1.0f; const float Mouse3DController::State::MaxRotationDeadzone = 0.2f; const float Mouse3DController::State::DefaultRotationDeadzone = 0.5f * Mouse3DController::State::MaxRotationDeadzone; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM const double Mouse3DController::State::DefaultZoomScale = 0.1; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM Mouse3DController::State::State() : m_buttons_enabled(false) , m_translation_params(DefaultTranslationScale, DefaultTranslationDeadzone) , m_rotation_params(DefaultRotationScale, DefaultRotationDeadzone) -#if ENABLE_3DCONNEXION_Y_AS_ZOOM , m_zoom_params(DefaultZoomScale, 0.0) -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM , m_mouse_wheel_counter(0) #if ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT , m_translation_queue_max_size(0) @@ -156,14 +152,10 @@ bool Mouse3DController::State::apply(Camera& camera) if (has_translation()) { const Vec3d& translation = m_translation.queue.front(); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM double zoom_factor = camera.min_zoom() / camera.get_zoom(); camera.set_target(camera.get_target() + zoom_factor * m_translation_params.scale * (translation(0) * camera.get_dir_right() + translation(2) * camera.get_dir_up())); if (translation(1) != 0.0) camera.update_zoom(m_zoom_params.scale * translation(1) / std::abs(translation(1))); -#else - camera.set_target(camera.get_target() + m_translation_params.scale * (translation(0) * camera.get_dir_right() + translation(1) * camera.get_dir_forward() + translation(2) * camera.get_dir_up())); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM m_translation.queue.pop(); ret = true; } @@ -321,11 +313,9 @@ void Mouse3DController::render_settings_dialog(GLCanvas3D& canvas) const if (imgui.slider_float(_(L("Rotation")) + "##1", &rotation_scale, 0.1f, 10.0f, "%.1f")) m_state.set_rotation_scale(State::DefaultRotationScale * rotation_scale); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM float zoom_scale = m_state.get_zoom_scale() / State::DefaultZoomScale; if (imgui.slider_float(_(L("Zoom")), &zoom_scale, 0.1f, 10.0f, "%.1f")) m_state.set_zoom_scale(State::DefaultZoomScale * zoom_scale); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM ImGui::Separator(); ImGui::PushStyleColor(ImGuiCol_Text, color); @@ -333,11 +323,7 @@ void Mouse3DController::render_settings_dialog(GLCanvas3D& canvas) const ImGui::PopStyleColor(); float translation_deadzone = (float)m_state.get_translation_deadzone(); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM if (imgui.slider_float(_(L("Translation")) + "/" + _(L("Zoom")), &translation_deadzone, 0.0f, (float)State::MaxTranslationDeadzone, "%.2f")) -#else - if (imgui.slider_float(_(L("Translation")) + "##2", &translation_deadzone, 0.0f, (float)State::MaxTranslationDeadzone, "%.2f")) -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM m_state.set_translation_deadzone((double)translation_deadzone); float rotation_deadzone = m_state.get_rotation_deadzone(); @@ -651,24 +637,18 @@ bool Mouse3DController::connect_device() float rotation_speed = 4.0; double translation_deadzone = State::DefaultTranslationDeadzone; float rotation_deadzone = State::DefaultRotationDeadzone; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM double zoom_speed = 2.0; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM wxGetApp().app_config->get_mouse_device_translation_speed(m_device_str, translation_speed); wxGetApp().app_config->get_mouse_device_translation_deadzone(m_device_str, translation_deadzone); wxGetApp().app_config->get_mouse_device_rotation_speed(m_device_str, rotation_speed); wxGetApp().app_config->get_mouse_device_rotation_deadzone(m_device_str, rotation_deadzone); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM wxGetApp().app_config->get_mouse_device_zoom_speed(m_device_str, zoom_speed); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM // clamp to valid values m_state.set_translation_scale(State::DefaultTranslationScale * std::clamp(translation_speed, 0.1, 10.0)); m_state.set_translation_deadzone(std::clamp(translation_deadzone, 0.0, State::MaxTranslationDeadzone)); m_state.set_rotation_scale(State::DefaultRotationScale * std::clamp(rotation_speed, 0.1f, 10.0f)); m_state.set_rotation_deadzone(std::clamp(rotation_deadzone, 0.0f, State::MaxRotationDeadzone)); -#if ENABLE_3DCONNEXION_Y_AS_ZOOM m_state.set_zoom_scale(State::DefaultZoomScale * std::clamp(zoom_speed, 0.1, 10.0)); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM } #if ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT else @@ -694,13 +674,9 @@ void Mouse3DController::disconnect_device() m_thread.join(); // Store current device parameters into the config -#if ENABLE_3DCONNEXION_Y_AS_ZOOM wxGetApp().app_config->set_mouse_device(m_device_str, m_state.get_translation_scale() / State::DefaultTranslationScale, m_state.get_translation_deadzone(), m_state.get_rotation_scale() / State::DefaultRotationScale, m_state.get_rotation_deadzone(), m_state.get_zoom_scale() / State::DefaultZoomScale); -#else - wxGetApp().app_config->set_mouse_device(m_device_str, m_state.get_translation_scale() / State::DefaultTranslationScale, m_state.get_translation_deadzone(), - m_state.get_rotation_scale() / State::DefaultRotationScale, m_state.get_rotation_deadzone()); -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM + wxGetApp().app_config->save(); // Close the 3Dconnexion device diff --git a/src/slic3r/GUI/Mouse3DController.hpp b/src/slic3r/GUI/Mouse3DController.hpp index 018cb98e6e..f987451245 100644 --- a/src/slic3r/GUI/Mouse3DController.hpp +++ b/src/slic3r/GUI/Mouse3DController.hpp @@ -37,9 +37,7 @@ class Mouse3DController static const float DefaultRotationScale; static const float MaxRotationDeadzone; static const float DefaultRotationDeadzone; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM static const double DefaultZoomScale; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM private: template @@ -71,9 +69,7 @@ class Mouse3DController CustomParameters m_translation_params; CustomParameters m_rotation_params; -#if ENABLE_3DCONNEXION_Y_AS_ZOOM CustomParameters m_zoom_params; -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM // When the 3Dconnexion driver is running the system gets, by default, mouse wheel events when rotations around the X axis are detected. // We want to filter these out because we are getting the data directly from the device, bypassing the driver, and those mouse wheel events interfere @@ -109,10 +105,8 @@ class Mouse3DController float get_rotation_scale() const { return m_rotation_params.scale; } void set_rotation_scale(float scale) { m_rotation_params.scale = scale; } -#if ENABLE_3DCONNEXION_Y_AS_ZOOM double get_zoom_scale() const { return m_zoom_params.scale; } void set_zoom_scale(double scale) { m_zoom_params.scale = scale; } -#endif // ENABLE_3DCONNEXION_Y_AS_ZOOM double get_translation_deadzone() const { return m_translation_params.deadzone; } void set_translation_deadzone(double deadzone) { m_translation_params.deadzone = deadzone; }