From a2378ec1b706e9658391fe48c1d44e5f827406fa Mon Sep 17 00:00:00 2001 From: "zhou.xu" Date: Fri, 29 Nov 2024 10:02:27 +0800 Subject: [PATCH] FIX:align vertical center for text jira: github 5188 Change-Id: I5ecdcdf4b9b9d8bfb85d45604753350d8bde54df (cherry picked from commit e6dc1aa5bee414904ee95259b8d969f173092f82) --- src/slic3r/GUI/Gizmos/GLGizmoText.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp index b162d0589..03c51db5a 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp @@ -433,6 +433,7 @@ void GLGizmoText::on_set_state() if (m_is_version1_10_xoy) { auto rotate_tran = Geometry::assemble_transform(Vec3d::Zero(), {0.5 * M_PI, 0.0, 0.0}); m_load_text_tran_in_object.set_from_transform(m_load_text_tran_in_object.get_matrix() * rotate_tran); + m_load_text_tran_in_object.set_offset(m_load_text_tran_in_object.get_offset() + Vec3d(0, 1.65, 0)); // for size 16 return; } //go on @@ -450,7 +451,7 @@ void GLGizmoText::on_set_state() } m_load_text_tran_in_object.set_from_transform(expert_text_tran_in_object.get_matrix()); if (m_is_version1_9_xoz) { - m_load_text_tran_in_object.set_offset(m_load_text_tran_in_object.get_offset() + Vec3d(0, -1.75, -1));//for size 16 + m_load_text_tran_in_object.set_offset(m_load_text_tran_in_object.get_offset()); } } } @@ -1858,6 +1859,14 @@ void GLGizmoText::generate_text_volume(bool is_temp) } if (mesh.empty()) return; + auto center = mesh.bounding_box().center(); + if (abs(mesh.bounding_box().size()[2] - (m_embeded_depth + m_thickness)) < 0.01) { + mesh.translate(Vec3f(-center.x(), -center.y(), 0)); // align horizontal and vertical center + } + else { + mesh.translate(Vec3f(0, -center.y(), 0)); // align vertical center + } + Plater *plater = wxGetApp().plater(); if (!plater) return;