From c7b698f4f1c6d02bd6d0c22122c0730043f2e4b4 Mon Sep 17 00:00:00 2001 From: Stone Li Date: Tue, 16 Aug 2022 20:32:47 +0800 Subject: [PATCH] ENH: modify default view to current plate view Change-Id: I32cecfe20e01011089928e24058c4ff89aca074a Signed-off-by: Stone Li --- src/slic3r/GUI/Camera.cpp | 3 +++ src/slic3r/GUI/GLCanvas3D.cpp | 10 ++++++++-- src/slic3r/GUI/MainFrame.cpp | 5 ++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/Camera.cpp b/src/slic3r/GUI/Camera.cpp index 3a56d52a8..ca3779548 100644 --- a/src/slic3r/GUI/Camera.cpp +++ b/src/slic3r/GUI/Camera.cpp @@ -93,6 +93,9 @@ void Camera::select_view(const std::string& direction) look_at(m_target + m_distance * Vec3d::UnitY(), m_target, Vec3d::UnitZ()); else if (direction == "topfront") look_at(m_target - 0.707 * m_distance * Vec3d::UnitY() + 0.707 * m_distance * Vec3d::UnitZ(), m_target, Vec3d::UnitY() + Vec3d::UnitZ()); + else if (direction == "plate") { + look_at(m_target - 0.707 * m_distance * Vec3d::UnitY() + 0.707 * m_distance * Vec3d::UnitZ(), m_target, Vec3d::UnitY() + Vec3d::UnitZ()); + } } double Camera::get_fov() const diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index e1f13aee5..6334d6edb 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -2369,7 +2369,10 @@ void GLCanvas3D::on_char(wxKeyEvent& evt) break; // BBS - case '0': { select_view("topfront"); break; } + case '0': { + select_view("plate"); + zoom_to_bed(); + break; } case '1': { select_view("top"); break; } case '2': { select_view("bottom"); break; } case '3': { select_view("front"); break; } @@ -2712,7 +2715,10 @@ void GLCanvas3D::on_key(wxKeyEvent& evt) switch (keyCode) { case '0': case WXK_NUMPAD0: //0 on numpad - { select_view("topfront"); break; } + { select_view("plate"); + zoom_to_bed(); + break; + } case '1': case WXK_NUMPAD1: //1 on numpad { select_view("top"); break; } diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 8cd745201..fb1173e18 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -1647,7 +1647,10 @@ static wxMenu* generate_help_menu() static void add_common_view_menu_items(wxMenu* view_menu, MainFrame* mainFrame, std::function can_change_view) { // The camera control accelerators are captured by GLCanvas3D::on_char(). - append_menu_item(view_menu, wxID_ANY, _L("Default View") + "\tCtrl+0", _L("Default View"), [mainFrame](wxCommandEvent&) { mainFrame->select_view("topfront"); }, + append_menu_item(view_menu, wxID_ANY, _L("Default View") + "\tCtrl+0", _L("Default View"), [mainFrame](wxCommandEvent&) { + mainFrame->select_view("plate"); + mainFrame->plater()->get_current_canvas3D()->zoom_to_bed(); + }, "", nullptr, [can_change_view]() { return can_change_view(); }, mainFrame); //view_menu->AppendSeparator(); //TRN To be shown in the main menu View->Top