From b26865ba99a8a9dea483a71b757d9eb2de0f7198 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 20 Apr 2012 16:55:47 +0000 Subject: code cleanup: prefer BM_face/edge/vert_select_set() over BM_elem_select_set() when the type is known (saves switch statement check on the type). Add asserts so the correct types are ensured. --- source/blender/bmesh/intern/bmesh_marking.c | 19 +++++++++++-------- source/blender/bmesh/intern/bmesh_mesh_conv.c | 4 ++-- source/blender/bmesh/operators/bmo_create.c | 4 ++-- source/blender/bmesh/operators/bmo_subdivide.c | 4 ++-- 4 files changed, 17 insertions(+), 14 deletions(-) (limited to 'source/blender/bmesh') diff --git a/source/blender/bmesh/intern/bmesh_marking.c b/source/blender/bmesh/intern/bmesh_marking.c index 7cf29031765..7b6d562658e 100644 --- a/source/blender/bmesh/intern/bmesh_marking.c +++ b/source/blender/bmesh/intern/bmesh_marking.c @@ -245,8 +245,7 @@ void BM_mesh_select_flush(BMesh *bm) */ void BM_vert_select_set(BMesh *bm, BMVert *v, int select) { - /* BMIter iter; */ - /* BMEdge *e; */ + BLI_assert(v->head.htype == BM_VERT); if (BM_elem_flag_test(v, BM_ELEM_HIDDEN)) { return; @@ -273,6 +272,8 @@ void BM_vert_select_set(BMesh *bm, BMVert *v, int select) */ void BM_edge_select_set(BMesh *bm, BMEdge *e, int select) { + BLI_assert(e->head.htype == BM_EDGE); + if (BM_elem_flag_test(e, BM_ELEM_HIDDEN)) { return; } @@ -281,8 +282,8 @@ void BM_edge_select_set(BMesh *bm, BMEdge *e, int select) if (!BM_elem_flag_test(e, BM_ELEM_SELECT)) bm->totedgesel += 1; BM_elem_flag_enable(e, BM_ELEM_SELECT); - BM_elem_select_set(bm, e->v1, TRUE); - BM_elem_select_set(bm, e->v2, TRUE); + BM_vert_select_set(bm, e->v1, TRUE); + BM_vert_select_set(bm, e->v2, TRUE); } else { if (BM_elem_flag_test(e, BM_ELEM_SELECT)) bm->totedgesel -= 1; @@ -318,8 +319,8 @@ void BM_edge_select_set(BMesh *bm, BMEdge *e, int select) } } else { - BM_elem_select_set(bm, e->v1, FALSE); - BM_elem_select_set(bm, e->v2, FALSE); + BM_vert_select_set(bm, e->v1, FALSE); + BM_vert_select_set(bm, e->v2, FALSE); } } @@ -336,6 +337,8 @@ void BM_face_select_set(BMesh *bm, BMFace *f, int select) BMLoop *l_iter; BMLoop *l_first; + BLI_assert(f->head.htype == BM_FACE); + if (BM_elem_flag_test(f, BM_ELEM_HIDDEN)) { return; } @@ -369,7 +372,7 @@ void BM_face_select_set(BMesh *bm, BMFace *f, int select) } if (!f2) { - BM_elem_select_set(bm, l->e, FALSE); + BM_edge_select_set(bm, l->e, FALSE); } } @@ -383,7 +386,7 @@ void BM_face_select_set(BMesh *bm, BMFace *f, int select) } if (!e) { - BM_elem_select_set(bm, l->v, FALSE); + BM_vert_select_set(bm, l->v, FALSE); } } } diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.c b/source/blender/bmesh/intern/bmesh_mesh_conv.c index 574fb62b703..a7ecc897ff0 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_conv.c +++ b/source/blender/bmesh/intern/bmesh_mesh_conv.c @@ -263,7 +263,7 @@ void BM_mesh_bm_from_me(BMesh *bm, Mesh *me, int set_key, int act_key_nr) /* this is necessary for selection counts to work properly */ if (medge->flag & SELECT) { - BM_elem_select_set(bm, e, TRUE); + BM_edge_select_set(bm, e, TRUE); } /* Copy Custom Data */ @@ -329,7 +329,7 @@ void BM_mesh_bm_from_me(BMesh *bm, Mesh *me, int set_key, int act_key_nr) /* this is necessary for selection counts to work properly */ if (mpoly->flag & ME_FACE_SEL) { - BM_elem_select_set(bm, f, TRUE); + BM_face_select_set(bm, f, TRUE); } f->mat_nr = mpoly->mat_nr; diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c index d02bb14bebf..6272c43d0c5 100644 --- a/source/blender/bmesh/operators/bmo_create.c +++ b/source/blender/bmesh/operators/bmo_create.c @@ -614,10 +614,10 @@ static void init_rotsys(BMesh *bm, EdgeData *edata, VertData *vdata) BM_elem_index_set(v2, -1); /* set_dirty! */ //BM_edge_create(bm, cv, v2, NULL, FALSE); - BM_elem_select_set(bm, v2, TRUE); + BM_vert_select_set(bm, v2, TRUE); if (lastv) { e2 = BM_edge_create(bm, lastv, v2, NULL, FALSE); - BM_elem_select_set(bm, e2, TRUE); + BM_edge_select_set(bm, e2, TRUE); } lastv = v2; diff --git a/source/blender/bmesh/operators/bmo_subdivide.c b/source/blender/bmesh/operators/bmo_subdivide.c index b3d4584107a..d629585f7cd 100644 --- a/source/blender/bmesh/operators/bmo_subdivide.c +++ b/source/blender/bmesh/operators/bmo_subdivide.c @@ -1069,13 +1069,13 @@ void BM_mesh_esubdivideflag(Object *UNUSED(obedit), BMesh *bm, int flag, float s BM_elem_flag_test(e->v1, BM_ELEM_SELECT) && BM_elem_flag_test(e->v2, BM_ELEM_SELECT)) { - BM_elem_select_set(bm, e, TRUE); + BM_edge_select_set(bm, e, TRUE); } else if (BM_elem_flag_test(e, BM_ELEM_SELECT) && (!BM_elem_flag_test(e->v1, BM_ELEM_SELECT) || !BM_elem_flag_test(e->v2, BM_ELEM_SELECT))) { - BM_elem_select_set(bm, e, FALSE); + BM_edge_select_set(bm, e, FALSE); } } } -- cgit v1.2.3