SPE-2484: Fix int32 overflow inside multi-material interlocking.

This commit is contained in:
Lukáš Hejl 2024-09-17 12:16:21 +02:00 committed by Lukas Matena
parent 938fbc516a
commit 6e5aa4b2e2

View File

@ -243,7 +243,7 @@ std::vector<std::vector<ExPolygons>> InterlockingGenerator::generateMicrostructu
cell_area_per_mesh_per_layer.resize(2);
cell_area_per_mesh_per_layer[0].resize(2);
const coord_t beam_w_sum = beam_width + beam_width;
const coord_t middle = cell_size.x() * beam_width / beam_w_sum;
const coord_t middle = coord_t(int64_t(cell_size.x()) * int64_t(beam_width) / beam_w_sum);
const coord_t width[2] = {middle, cell_size.x() - middle};
for (size_t mesh_idx : {0ul, 1ul}) {
Point offset(mesh_idx ? middle : 0, 0);