From a44b1dc0383639c0b47f683b81dd85d820d773a9 Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Tue, 10 Sep 2024 11:13:32 +0800 Subject: [PATCH] FIX:Frustum should update when zoom changed jira: none Change-Id: I13bba77c19420c2bb67f4ebeaa94860a8546b44b (cherry picked from commit 03d9c9a1b9381e9138fc56ab7d437ce0420b5dc3) --- src/slic3r/GUI/Camera.cpp | 3 ++- src/slic3r/GUI/Camera.hpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/Camera.cpp b/src/slic3r/GUI/Camera.cpp index b39df1ef4..12b5f98ce 100644 --- a/src/slic3r/GUI/Camera.cpp +++ b/src/slic3r/GUI/Camera.cpp @@ -153,7 +153,7 @@ void Camera::update_frustum() float eps = 0.01; if (m_last_eye.isApprox(eye_) && m_last_center.isApprox(center_) && m_last_up.isApprox(up_) && abs(m_last_near - near_) < eps && abs(m_last_far - far_) < eps && - abs(m_last_aspect - aspect_) < eps && abs(m_last_fov - fov_) < eps) { + abs(m_last_aspect - aspect_) < eps && abs(m_last_fov - fov_) < eps && abs(m_last_zoom - m_zoom) < eps) { return; } m_last_eye = eye_; @@ -163,6 +163,7 @@ void Camera::update_frustum() m_last_far = far_; m_last_aspect = aspect_; m_last_fov = fov_; + m_last_zoom = m_zoom; Vec3f forward((center_ - eye_).normalized()); Vec3f side((forward.cross(up_)).normalized()); Vec3f up((side.cross(forward)).normalized()); diff --git a/src/slic3r/GUI/Camera.hpp b/src/slic3r/GUI/Camera.hpp index b2f1116f4..4014d0789 100644 --- a/src/slic3r/GUI/Camera.hpp +++ b/src/slic3r/GUI/Camera.hpp @@ -58,7 +58,7 @@ private: BoundingBoxf3 m_scene_box; Frustum m_frustum; Vec3f m_last_eye, m_last_center, m_last_up; - float m_last_near, m_last_far, m_last_aspect, m_last_fov; + float m_last_near, m_last_far, m_last_aspect, m_last_fov,m_last_zoom; public: Camera() { set_default_orientation(); }