From 9470754fd39405ac3289fb10a1b72e09b3c94334 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 21 Aug 2013 07:51:47 +0000 Subject: bmesh api cleanup, face creation args now accept an example face (as with vertex and edge), also replace BM_face_create_quad_tri_v with BM_face_create_verts --- source/blender/bmesh/operators/bmo_bridge.c | 4 ++-- source/blender/bmesh/operators/bmo_create.c | 2 +- source/blender/bmesh/operators/bmo_dupe.c | 4 +--- source/blender/bmesh/operators/bmo_extrude.c | 6 +++--- source/blender/bmesh/operators/bmo_fill_edgeloop.c | 2 +- source/blender/bmesh/operators/bmo_fill_grid.c | 4 ++-- source/blender/bmesh/operators/bmo_hull.c | 2 +- source/blender/bmesh/operators/bmo_inset.c | 4 ++-- source/blender/bmesh/operators/bmo_removedoubles.c | 4 +--- source/blender/bmesh/operators/bmo_symmetrize.c | 6 ++---- 10 files changed, 16 insertions(+), 22 deletions(-) (limited to 'source/blender/bmesh/operators') diff --git a/source/blender/bmesh/operators/bmo_bridge.c b/source/blender/bmesh/operators/bmo_bridge.c index 7f6b5739a58..9381fabacf2 100644 --- a/source/blender/bmesh/operators/bmo_bridge.c +++ b/source/blender/bmesh/operators/bmo_bridge.c @@ -343,7 +343,7 @@ static void bridge_loop_pair(BMesh *bm, BMVert *v_arr[4] = {v_a, v_b, v_b_next, v_a_next}; if (BM_face_exists(v_arr, 4, &f) == false) { /* copy if loop data if its is missing on one ring */ - f = BM_face_create_verts(bm, v_arr, 4, BM_CREATE_NOP, true); + f = BM_face_create_verts(bm, v_arr, 4, NULL, BM_CREATE_NOP, true); l_iter = BM_FACE_FIRST_LOOP(f); if (l_b) BM_elem_attrs_copy(bm, bm, l_b, l_iter); l_iter = l_iter->next; @@ -356,7 +356,7 @@ static void bridge_loop_pair(BMesh *bm, BMVert *v_arr[3] = {v_a, v_b, v_a_next}; if (BM_face_exists(v_arr, 3, &f) == false) { /* fan-fill a triangle */ - f = BM_face_create_verts(bm, v_arr, 3, BM_CREATE_NOP, true); + f = BM_face_create_verts(bm, v_arr, 3, NULL, BM_CREATE_NOP, true); l_iter = BM_FACE_FIRST_LOOP(f); if (l_b) BM_elem_attrs_copy(bm, bm, l_b, l_iter); l_iter = l_iter->next; diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c index 3b403ca800e..dd814fa8bfb 100644 --- a/source/blender/bmesh/operators/bmo_create.c +++ b/source/blender/bmesh/operators/bmo_create.c @@ -283,7 +283,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op) BMFace *f; BMO_iter_as_array(op->slots_in, "geom", BM_VERT, (void **)vert_arr, totv); - f = BM_face_create_ngon_vcloud(bm, vert_arr, totv, BM_CREATE_NO_DOUBLE); + f = BM_face_create_ngon_vcloud(bm, vert_arr, totv, NULL, BM_CREATE_NO_DOUBLE); if (f) { BMO_elem_flag_enable(bm, f, ELE_OUT); diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c index 1dc7b0a414d..7c73f9cfbc3 100644 --- a/source/blender/bmesh/operators/bmo_dupe.c +++ b/source/blender/bmesh/operators/bmo_dupe.c @@ -156,12 +156,10 @@ static BMFace *copy_face(BMOperator *op, } /* create new face */ - target_face = BM_face_create(target_mesh, vtar, edar, source_face->len, BM_CREATE_SKIP_CD); + target_face = BM_face_create(target_mesh, vtar, edar, source_face->len, source_face, BM_CREATE_SKIP_CD); BMO_slot_map_elem_insert(op, slot_facemap_out, source_face, target_face); BMO_slot_map_elem_insert(op, slot_facemap_out, target_face, source_face); - BM_elem_attrs_copy(source_mesh, target_mesh, source_face, target_face); - /* mark the face for output */ BMO_elem_flag_enable(target_mesh, target_face, DUPE_NEW); diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c index e80a093cb08..c6808da1bb8 100644 --- a/source/blender/bmesh/operators/bmo_extrude.c +++ b/source/blender/bmesh/operators/bmo_extrude.c @@ -77,7 +77,7 @@ void bmo_extrude_discrete_faces_exec(BMesh *bm, BMOperator *op) f_side = BM_face_create_quad_tri(bm, l_org->next->v, l_new->next->v, l_new->v, l_org->v, - f_org, false); + f_org, BM_CREATE_NOP); l_side_iter = BM_FACE_FIRST_LOOP(f_side); @@ -185,7 +185,7 @@ void bmo_extrude_edge_only_exec(BMesh *bm, BMOperator *op) f_verts[3] = e_new->v2; } /* not sure what to do about example face, pass NULL for now */ - f = BM_face_create_quad_tri_v(bm, f_verts, 4, NULL, false); + f = BM_face_create_verts(bm, f_verts, 4, NULL, BM_CREATE_NOP, true); bm_extrude_copy_face_loop_attributes(bm, f); if (BMO_elem_flag_test(bm, e, EXT_INPUT)) @@ -401,7 +401,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op) } /* not sure what to do about example face, pass NULL for now */ - f = BM_face_create_quad_tri_v(bm, f_verts, 4, NULL, false); + f = BM_face_create_verts(bm, f_verts, 4, NULL, BM_CREATE_NOP, true); bm_extrude_copy_face_loop_attributes(bm, f); } diff --git a/source/blender/bmesh/operators/bmo_fill_edgeloop.c b/source/blender/bmesh/operators/bmo_fill_edgeloop.c index 1e38205a1b7..0fbaf5ff11a 100644 --- a/source/blender/bmesh/operators/bmo_fill_edgeloop.c +++ b/source/blender/bmesh/operators/bmo_fill_edgeloop.c @@ -140,7 +140,7 @@ void bmo_edgeloop_fill_exec(BMesh *bm, BMOperator *op) BMFace *f; /* don't use calc_edges option because we already have the edges */ - f = BM_face_create_ngon_verts(bm, f_verts, i, BM_CREATE_NOP, true, false); + f = BM_face_create_ngon_verts(bm, f_verts, i, NULL, BM_CREATE_NOP, true, false); BMO_elem_flag_enable(bm, f, ELE_OUT); f->mat_nr = mat_nr; if (use_smooth) { diff --git a/source/blender/bmesh/operators/bmo_fill_grid.c b/source/blender/bmesh/operators/bmo_fill_grid.c index 730c45ce88c..1c575bf4866 100644 --- a/source/blender/bmesh/operators/bmo_fill_grid.c +++ b/source/blender/bmesh/operators/bmo_fill_grid.c @@ -218,7 +218,7 @@ static void bm_grid_fill_array(BMesh *bm, BMVert **v_grid, const int xtot, const v_grid[XY(x + 1, y + 1)], /* TR */ v_grid[XY(x + 1, y + 0)], /* BR */ NULL, - false); + BM_CREATE_NOP); } else { f = BM_face_create_quad_tri( @@ -228,7 +228,7 @@ static void bm_grid_fill_array(BMesh *bm, BMVert **v_grid, const int xtot, const v_grid[XY(x, y + 1)], /* TL */ v_grid[XY(x, y + 0)], /* BL */ NULL, - false); + BM_CREATE_NOP); } BMO_elem_flag_enable(bm, f, FACE_OUT); f->mat_nr = mat_nr; diff --git a/source/blender/bmesh/operators/bmo_hull.c b/source/blender/bmesh/operators/bmo_hull.c index 89da386c1cb..9ba08f0a470 100644 --- a/source/blender/bmesh/operators/bmo_hull.c +++ b/source/blender/bmesh/operators/bmo_hull.c @@ -135,7 +135,7 @@ static void hull_output_triangles(BMesh *bm, GHash *hull_triangles) } /* Create new hull face */ - f = BM_face_create_quad_tri_v(bm, t->v, 3, example, true); + f = BM_face_create_verts(bm, t->v, 3, example, BM_CREATE_NO_DOUBLE, true); BM_face_copy_shared(bm, f, NULL, NULL); } /* Mark face for 'geom.out' slot and select */ diff --git a/source/blender/bmesh/operators/bmo_inset.c b/source/blender/bmesh/operators/bmo_inset.c index b9337406c99..20cd828af1e 100644 --- a/source/blender/bmesh/operators/bmo_inset.c +++ b/source/blender/bmesh/operators/bmo_inset.c @@ -162,7 +162,7 @@ static void bmo_face_inset_individual( v_other_next, l_iter->next->v, l_iter->v, - f, false); + f, BM_CREATE_NOP); BMO_elem_flag_enable(bm, f_new_outer, ELE_NEW); /* copy loop data */ @@ -811,7 +811,7 @@ void bmo_inset_region_exec(BMesh *bm, BMOperator *op) #endif /* no need to check doubles, we KNOW there won't be any */ /* yes - reverse face is correct in this case */ - f = BM_face_create_quad_tri_v(bm, varr, j, es->l->f, false); + f = BM_face_create_verts(bm, varr, j, es->l->f, BM_CREATE_NOP, true); BMO_elem_flag_enable(bm, f, ELE_NEW); /* copy for loop data, otherwise UV's and vcols are no good. diff --git a/source/blender/bmesh/operators/bmo_removedoubles.c b/source/blender/bmesh/operators/bmo_removedoubles.c index 4ee4979fdcd..514d8e15845 100644 --- a/source/blender/bmesh/operators/bmo_removedoubles.c +++ b/source/blender/bmesh/operators/bmo_removedoubles.c @@ -189,10 +189,8 @@ void bmo_weld_verts_exec(BMesh *bm, BMOperator *op) v2 = BMO_slot_map_elem_get(slot_targetmap, v2); } - f_new = BM_face_create_ngon(bm, v, v2, edges, a, BM_CREATE_NO_DOUBLE); + f_new = BM_face_create_ngon(bm, v, v2, edges, a, f, BM_CREATE_NO_DOUBLE); if (f_new && (f_new != f)) { - BM_elem_attrs_copy(bm, bm, f, f_new); - a = 0; BM_ITER_ELEM (l, &liter, f_new, BM_LOOPS_OF_FACE) { l_new = loops[a]; diff --git a/source/blender/bmesh/operators/bmo_symmetrize.c b/source/blender/bmesh/operators/bmo_symmetrize.c index 159e6900dd6..f0402cc5da7 100644 --- a/source/blender/bmesh/operators/bmo_symmetrize.c +++ b/source/blender/bmesh/operators/bmo_symmetrize.c @@ -362,7 +362,7 @@ static bool symm_poly_next_crossing(const Symm *symm, return false; } -static BMFace *symm_face_create_v(BMesh *bm, BMFace *example, +static BMFace *symm_face_create_v(BMesh *bm, BMFace *f_example, BMVert **fv, BMEdge **fe, int len) { BMFace *f_new; @@ -382,9 +382,7 @@ static BMFace *symm_face_create_v(BMesh *bm, BMFace *example, BMO_elem_flag_enable(bm, fe[i], SYMM_OUTPUT_GEOM); } } - f_new = BM_face_create(bm, fv, fe, len, BM_CREATE_NO_DOUBLE); - if (example) - BM_elem_attrs_copy(bm, bm, example, f_new); + f_new = BM_face_create(bm, fv, fe, len, f_example, BM_CREATE_NO_DOUBLE); BM_face_select_set(bm, f_new, true); BMO_elem_flag_enable(bm, f_new, SYMM_OUTPUT_GEOM); -- cgit v1.2.3