From 451097bcaca2be6c571d3985d6b1ed6e1d833f64 Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 24 Mar 2023 13:53:12 +0100 Subject: [PATCH 1/2] Downscale axes when viewed from close-up --- src/slic3r/GUI/CoordAxes.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/CoordAxes.cpp b/src/slic3r/GUI/CoordAxes.cpp index 277c8ad300..fcb434f3b2 100644 --- a/src/slic3r/GUI/CoordAxes.cpp +++ b/src/slic3r/GUI/CoordAxes.cpp @@ -44,17 +44,23 @@ void CoordAxes::render(const Transform3d& trafo, float emission_factor) shader->start_using(); shader->set_uniform("emission_factor", emission_factor); + // Scale the axes if the camera is close to them to avoid issues + // such as https://github.com/prusa3d/PrusaSlicer/issues/9483 + const Camera& camera = wxGetApp().plater()->get_camera(); + Transform3d scale_tr = Transform3d::Identity(); + scale_tr.scale(std::min(1., camera.get_inv_zoom() * 10.)); + // x axis m_arrow.set_color(ColorRGBA::X()); - render_axis(*shader, trafo * Geometry::translation_transform(m_origin) * Geometry::rotation_transform({ 0.0, 0.5 * M_PI, 0.0 })); + render_axis(*shader, trafo * Geometry::translation_transform(m_origin) * Geometry::rotation_transform({ 0.0, 0.5 * M_PI, 0.0 }) * scale_tr); // y axis m_arrow.set_color(ColorRGBA::Y()); - render_axis(*shader, trafo * Geometry::translation_transform(m_origin) * Geometry::rotation_transform({ -0.5 * M_PI, 0.0, 0.0 })); + render_axis(*shader, trafo * Geometry::translation_transform(m_origin) * Geometry::rotation_transform({ -0.5 * M_PI, 0.0, 0.0 }) * scale_tr); // z axis m_arrow.set_color(ColorRGBA::Z()); - render_axis(*shader, trafo * Geometry::translation_transform(m_origin)); + render_axis(*shader, trafo * Geometry::translation_transform(m_origin) * scale_tr); shader->stop_using(); if (curr_shader != nullptr) From fd457fb40bc3788cdf4a57f7aa5a21c923a5a94f Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Mon, 27 Mar 2023 15:46:06 +0200 Subject: [PATCH 2/2] Revert "#9483 - Added keyboard shortcut CTRL+D to toggle the visibility of the printbed reference axes" This reverts commit f038eca52c34950ffa5227aebda27b3594f412b7. We will only use the axes that automatically scale, without the option to turn the rendering off. --- src/slic3r/GUI/GLCanvas3D.cpp | 12 +----------- src/slic3r/GUI/GLCanvas3D.hpp | 1 - src/slic3r/GUI/KBShortcutsDialog.cpp | 2 -- 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index dcc85dc65f..08f68356f1 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1572,8 +1572,7 @@ void GLCanvas3D::render() _render_objects(GLVolumeCollection::ERenderType::Opaque); _render_sla_slices(); _render_selection(); - if (m_show_bed_axes) - _render_bed_axes(); + _render_bed_axes(); if (is_looking_downward) _render_bed(camera.get_view_matrix(), camera.get_projection_matrix(), false); if (!m_main_toolbar.is_enabled()) @@ -2351,15 +2350,6 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) #endif /* __APPLE__ */ post_event(SimpleEvent(EVT_GLTOOLBAR_COPY)); break; -#ifdef __APPLE__ - case 'd': - case 'D': -#else /* __APPLE__ */ - case WXK_CONTROL_D: -#endif /* __APPLE__ */ - m_show_bed_axes = !m_show_bed_axes; - m_dirty = true; - break; #ifdef __APPLE__ case 'f': case 'F': diff --git a/src/slic3r/GUI/GLCanvas3D.hpp b/src/slic3r/GUI/GLCanvas3D.hpp index 6ebe7bcc62..a79bcff2ed 100644 --- a/src/slic3r/GUI/GLCanvas3D.hpp +++ b/src/slic3r/GUI/GLCanvas3D.hpp @@ -522,7 +522,6 @@ private: ECursorType m_cursor_type; GLSelectionRectangle m_rectangle_selection; std::vector m_hover_volume_idxs; - bool m_show_bed_axes{ true }; // Following variable is obsolete and it should be safe to remove it. // I just don't want to do it now before a release (Lukas Matena 24.3.2019) diff --git a/src/slic3r/GUI/KBShortcutsDialog.cpp b/src/slic3r/GUI/KBShortcutsDialog.cpp index b2eb2c79da..66961b2cd4 100644 --- a/src/slic3r/GUI/KBShortcutsDialog.cpp +++ b/src/slic3r/GUI/KBShortcutsDialog.cpp @@ -151,7 +151,6 @@ void KBShortcutsDialog::fill_shortcuts() { L("Arrow Right"), L("Move selection 10 mm in positive X direction") }, { std::string("Shift+") + L("Any arrow"), L("Movement step set to 1 mm") }, { ctrl + L("Any arrow"), L("Movement in camera space") }, - { ctrl + "D", L("Show/hide reference axes") }, { L("Page Up"), L("Rotate selection 45 degrees CCW") }, { L("Page Down"), L("Rotate selection 45 degrees CW") }, { "M", L("Gizmo move") }, @@ -232,7 +231,6 @@ void KBShortcutsDialog::fill_shortcuts() { "X", L("On/Off one layer mode of the vertical slider") }, { "L", L("Show/Hide legend") }, { "C", L("Show/Hide G-code window") }, - { ctrl + "D", L("Show/hide reference axes") }, }; m_full_shortcuts.push_back({ { _L("Preview"), "" }, preview_shortcuts });