From 1ec9453800be0f93b50a9c1e6720cba0dbf0f2bc Mon Sep 17 00:00:00 2001 From: Lukas Matena Date: Fri, 3 Feb 2023 13:08:50 +0100 Subject: [PATCH] Cut gizmo: fixed contour with scaled objects --- src/slic3r/GUI/MeshUtils.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/MeshUtils.cpp b/src/slic3r/GUI/MeshUtils.cpp index bb93afc8d..1765789b9 100644 --- a/src/slic3r/GUI/MeshUtils.cpp +++ b/src/slic3r/GUI/MeshUtils.cpp @@ -315,12 +315,12 @@ void MeshClipper::recalculate_triangles() // To prevent overflow after scaling, downscale the input if needed: double extra_scale = 1.; - int32_t limit = int32_t(std::min(std::numeric_limits::max() / (2. * scale_x), std::numeric_limits::max() / (2. * scale_y))); + int32_t limit = int32_t(std::min(std::numeric_limits::max() / (2. * std::max(1., scale_x)), std::numeric_limits::max() / (2. * std::max(1., scale_y)))); int32_t max_coord = 0; for (const Point& pt : exp.contour) max_coord = std::max(max_coord, std::max(std::abs(pt.x()), std::abs(pt.y()))); if (max_coord + m_contour_width >= limit) - extra_scale = 0.9 * double(limit) / max_coord; + extra_scale = 0.9 * double(limit) / max_coord; ExPolygon exp_copy = exp; if (extra_scale != 1.)