diff options
-rw-r--r-- | source/blender/bmesh/intern/bmesh_construct.c | 14 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_bridge.c | 4 |
2 files changed, 5 insertions, 13 deletions
diff --git a/source/blender/bmesh/intern/bmesh_construct.c b/source/blender/bmesh/intern/bmesh_construct.c index aa37a684519..49c4232c717 100644 --- a/source/blender/bmesh/intern/bmesh_construct.c +++ b/source/blender/bmesh/intern/bmesh_construct.c @@ -441,6 +441,9 @@ static int angle_index_pair_cmp(const void *e1, const void *e2) */ BMFace *BM_face_create_ngon_vcloud(BMesh *bm, BMVert **vert_arr, int len, const int create_flag) { + AngleIndexPair *vang = BLI_array_alloca(vang, len); + BMVert **vert_arr_map = BLI_array_alloca(vert_arr_map, len); + BMFace *f; float totv_inv = 1.0f / (float)len; @@ -457,10 +460,6 @@ BMFace *BM_face_create_ngon_vcloud(BMesh *bm, BMVert **vert_arr, int len, const float far_dist, far_best; float far_cross_dist, far_cross_best = 0.0f; - AngleIndexPair *vang; - - BMVert **vert_arr_map; - /* get the center point and collect vector array since we loop over these a lot */ zero_v3(cent); for (i = 0; i < len; i++) { @@ -520,8 +519,6 @@ BMFace *BM_face_create_ngon_vcloud(BMesh *bm, BMVert **vert_arr, int len, const /* --- */ /* now calculate every points angle around the normal (signed) */ - vang = MEM_mallocN(sizeof(AngleIndexPair) * len, __func__); - for (i = 0; i < len; i++) { float co[3]; float proj_vec[3]; @@ -551,17 +548,12 @@ BMFace *BM_face_create_ngon_vcloud(BMesh *bm, BMVert **vert_arr, int len, const /* --- */ /* create edges and find the winding (if faces are attached to any existing edges) */ - vert_arr_map = MEM_mallocN(sizeof(BMVert *) * len, __func__); - for (i = 0; i < len; i++) { vert_arr_map[i] = vert_arr[vang[i].index]; } - MEM_freeN(vang); f = BM_face_create_ngon_verts(bm, vert_arr_map, len, create_flag, true, true); - MEM_freeN(vert_arr_map); - return f; } diff --git a/source/blender/bmesh/operators/bmo_bridge.c b/source/blender/bmesh/operators/bmo_bridge.c index f63e742d8ba..7f6b5739a58 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_ngon_verts(bm, v_arr, 4, 0, false, true); + f = BM_face_create_verts(bm, v_arr, 4, 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_ngon_verts(bm, v_arr, 3, 0, false, true); + f = BM_face_create_verts(bm, v_arr, 3, 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; |