Fix: Division by zero in UV packing function

If all islands had a size of zero, a division by zero would occur in
`GEO_uv_parametrizer_pack`, causing the UV coordinates to be set to
NaN. An alternative approach would be to skip packing islands with a
zero size, but If UV coordinates are for example outside the 0-1 range,
it's better if they get moved into that range.

Differential Revision: https://developer.blender.org/D14522
This commit is contained in:
Aleksi Juvani 2022-04-06 16:58:59 -05:00 committed by Hans Goudey
parent 52af51708f
commit 236643606e
1 changed files with 2 additions and 2 deletions

View File

@ -4841,10 +4841,10 @@ void GEO_uv_parametrizer_pack(ParamHandle *handle,
BLI_box_pack_2d(boxarray, phandle->ncharts - unpacked, &tot_width, &tot_height);
if (tot_height > tot_width) {
scale = 1.0f / tot_height;
scale = tot_height != 0.0f ? (1.0f / tot_height) : 1.0f;
}
else {
scale = 1.0f / tot_width;
scale = tot_width != 0.0f ? (1.0f / tot_width) : 1.0f;
}
for (i = 0; i < phandle->ncharts - unpacked; i++) {