From 8a42aed683d02ca40aa0802b2bfbd8b43e5850d4 Mon Sep 17 00:00:00 2001 From: Noisyfox Date: Tue, 30 Jan 2024 22:28:49 +0800 Subject: [PATCH] Fix issue with auto orient a scaled object. (#3904) Partly revert 73ab032e8288cbcadfe41691c590561a469b57f9 --- src/libslic3r/Model.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Model.hpp b/src/libslic3r/Model.hpp index 9cf9aec4b85..2923ab4291d 100644 --- a/src/libslic3r/Model.hpp +++ b/src/libslic3r/Model.hpp @@ -1298,8 +1298,10 @@ class ModelInstance final : public ObjectBase // BBS void rotate(Matrix3d rotation_matrix) { - const Geometry::Transformation& old_inst_trafo = get_transformation(); - set_transformation(Geometry::Transformation{old_inst_trafo.get_offset_matrix() * rotation_matrix * old_inst_trafo.get_matrix_no_offset()}); + auto R = m_transformation.get_rotation_matrix().matrix().block<3, 3>(0, 0); + auto R_new = rotation_matrix * R; + auto euler_angles = Geometry::extract_euler_angles(R_new); + set_rotation(euler_angles); } Vec3d get_scaling_factor() const { return m_transformation.get_scaling_factor(); }