Fix T48413: editmesh intersect tool crash

Its important to add tri-edge intersections from both sides.
This commit is contained in:
Campbell Barton 2016-05-12 20:58:20 +10:00
parent 8d3f367c01
commit 86b509229f
Notes: blender-bot 2023-02-14 08:58:01 +01:00
Referenced by issue #48413, editmesh intersect tool crash
1 changed files with 5 additions and 8 deletions

View File

@ -771,16 +771,13 @@ static void bm_isect_tri_tri(
continue;
iv = bm_isect_edge_tri(s, fv_b[i_e0], fv_b[i_e1], fv_a, a_index, f_a_cos, f_a_nor, &side);
if (iv) {
/* check this wasn't handled above */
if (!(side >= IX_EDGE_TRI_EDGE0 && side <= IX_EDGE_TRI_EDGE2)) {
BLI_assert(BLI_array_findindex((void **)iv_ls_a, STACK_SIZE(iv_ls_a), iv) == -1);
BLI_assert(BLI_array_findindex((void **)iv_ls_b, STACK_SIZE(iv_ls_b), iv) == -1);
STACK_PUSH(iv_ls_a, iv);
STACK_PUSH(iv_ls_b, iv);
BLI_assert(BLI_array_findindex((void **)iv_ls_a, STACK_SIZE(iv_ls_a), iv) == -1);
BLI_assert(BLI_array_findindex((void **)iv_ls_b, STACK_SIZE(iv_ls_b), iv) == -1);
STACK_PUSH(iv_ls_a, iv);
STACK_PUSH(iv_ls_b, iv);
#ifdef USE_DUMP
printf(" ('EDGE-TRI-B', %d),\n", side);
printf(" ('EDGE-TRI-B', %d),\n", side);
#endif
}
}
}
}