Cut gizmo: fixed contour with scaled objects

This commit is contained in:
Lukas Matena 2023-02-03 13:08:50 +01:00
parent 2d0c5095b3
commit 1ec9453800

View File

@ -315,7 +315,7 @@ void MeshClipper::recalculate_triangles()
// To prevent overflow after scaling, downscale the input if needed: // To prevent overflow after scaling, downscale the input if needed:
double extra_scale = 1.; double extra_scale = 1.;
int32_t limit = int32_t(std::min(std::numeric_limits<coord_t>::max() / (2. * scale_x), std::numeric_limits<coord_t>::max() / (2. * scale_y))); int32_t limit = int32_t(std::min(std::numeric_limits<coord_t>::max() / (2. * std::max(1., scale_x)), std::numeric_limits<coord_t>::max() / (2. * std::max(1., scale_y))));
int32_t max_coord = 0; int32_t max_coord = 0;
for (const Point& pt : exp.contour) for (const Point& pt : exp.contour)
max_coord = std::max(max_coord, std::max(std::abs(pt.x()), std::abs(pt.y()))); max_coord = std::max(max_coord, std::max(std::abs(pt.x()), std::abs(pt.y())));