From 576d59f6c846cece9bace109416d2218cea09dbe Mon Sep 17 00:00:00 2001 From: "jun.zhang" Date: Mon, 17 Mar 2025 14:35:00 +0800 Subject: [PATCH] FIX: rendering issue of mirrored model jira: STUDIO-10869 Change-Id: I985ae6fd0df917fbd4bd537220048b59df902c9a --- src/slic3r/GUI/3DScene.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index 210f7cfeb..1f50c27e4 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -747,9 +747,15 @@ Transform3d GLVolume::world_matrix() const bool GLVolume::is_left_handed() const { - const Vec3d &m1 = m_instance_transformation.get_mirror(); - const Vec3d &m2 = m_volume_transformation.get_mirror(); - return m1.x() * m1.y() * m1.z() * m2.x() * m2.y() * m2.z() < 0.; + // reference page 84 + // link: https://www.realtimerendering.com/ + const auto model_matrix = world_matrix().matrix(); + Eigen::Matrix3d subMatrix = model_matrix.block<3, 3>(0, 0); + const auto det = subMatrix.determinant(); + if (det < 1e-6f) { + return true; + } + return false; } const BoundingBoxf3& GLVolume::transformed_bounding_box() const