Fix #106396: UV stitch crash with hidden faces #106493
|
@ -974,7 +974,7 @@ UvElementMap *BM_uv_element_map_create(BMesh *bm,
|
||||||
const bool use_seams,
|
const bool use_seams,
|
||||||
const bool do_islands)
|
const bool do_islands)
|
||||||
{
|
{
|
||||||
/* In uv sync selection, all UVs are visible. */
|
/* In uv sync selection, all UVs (from unhidden geometry) are visible. */
|
||||||
const bool face_selected = !(scene->toolsettings->uv_flag & UV_SYNC_SELECTION);
|
const bool face_selected = !(scene->toolsettings->uv_flag & UV_SYNC_SELECTION);
|
||||||
|
|
||||||
BMVert *ev;
|
BMVert *ev;
|
||||||
|
|
|
@ -1889,9 +1889,12 @@ static StitchState *stitch_init(bContext *C,
|
||||||
|
|
||||||
counter = 0;
|
counter = 0;
|
||||||
/* Now, on to generate our uv connectivity data */
|
/* Now, on to generate our uv connectivity data */
|
||||||
|
const bool face_selected = !(ts->uv_flag & UV_SYNC_SELECTION);
|
||||||
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
|
BM_ITER_MESH (efa, &iter, em->bm, BM_FACES_OF_MESH) {
|
||||||
if (!(ts->uv_flag & UV_SYNC_SELECTION) &&
|
if (BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
|
||||||
(BM_elem_flag_test(efa, BM_ELEM_HIDDEN) || !BM_elem_flag_test(efa, BM_ELEM_SELECT))) {
|
continue;
|
||||||
|
}
|
||||||
|
if (face_selected && !BM_elem_flag_test(efa, BM_ELEM_SELECT)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue