The problem happened when the selection only allowed "single_islands" (only vertices are selected, no edges or faces). The result of `is_zero_v3(v->no)` was erroneously being compared to `0.0f` This commit corrects the wrong condition and optimizes it by adding a earlier return when the islands don't need to be calculated. (It also improves the code's readability by joining some variables in the `struct TransIslandData`).