BMesh: Tweak behavior for select more/less

Stepping over faces gives overall nice results but it stopped wire edges from working.
Now step over wire too.
This commit is contained in:
Campbell Barton 2015-01-13 02:36:51 +11:00
parent 0996ee3bb8
commit dcd662c695

@ -236,6 +236,20 @@ static void bmo_region_extend_expand(
bmo_face_flag_set_flush(bm, f, SEL_FLAG, true); bmo_face_flag_set_flush(bm, f, SEL_FLAG, true);
} }
} }
/* handle wire edges (when stepping over faces) */
{
BMIter eiter;
BMEdge *e;
BM_ITER_ELEM (e, &eiter, v, BM_EDGES_OF_VERT) {
if (BM_edge_is_wire(e)) {
if (!BMO_elem_flag_test(bm, e, SEL_FLAG)) {
BMO_elem_flag_enable(bm, e, SEL_FLAG);
BMO_elem_flag_enable(bm, BM_edge_other_vert(e, v), SEL_FLAG);
}
}
}
}
} }
} }
} }
@ -306,6 +320,21 @@ static void bmo_region_extend_contract(
break; break;
} }
} }
/* handle wire edges (when stepping over faces) */
if (!found) {
BMIter eiter;
BMEdge *e;
BM_ITER_ELEM (e, &eiter, v, BM_EDGES_OF_VERT) {
if (BM_edge_is_wire(e)) {
if (!BMO_elem_flag_test(bm, e, SEL_ORIG)) {
found = true;
break;
}
}
}
}
} }
if (found) { if (found) {