diff options
Diffstat (limited to 'source/blender/bmesh/operators')
-rw-r--r-- | source/blender/bmesh/operators/bmo_create.c | 2 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_dissolve.c | 12 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_dupe.c | 20 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_extrude.c | 20 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_hull.c | 18 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_mirror.c | 12 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_primitive.c | 34 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_removedoubles.c | 8 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_subdivide.c | 78 | ||||
-rw-r--r-- | source/blender/bmesh/operators/bmo_triangulate.c | 12 |
10 files changed, 108 insertions, 108 deletions
diff --git a/source/blender/bmesh/operators/bmo_create.c b/source/blender/bmesh/operators/bmo_create.c index c70e8b675c7..aeaedf6417c 100644 --- a/source/blender/bmesh/operators/bmo_create.c +++ b/source/blender/bmesh/operators/bmo_create.c @@ -66,7 +66,7 @@ void bmo_contextual_create_exec(BMesh *bm, BMOperator *op) break; } } - + /* --- Support Edge Creation --- * simple case when we only have 2 verts selected. */ diff --git a/source/blender/bmesh/operators/bmo_dissolve.c b/source/blender/bmesh/operators/bmo_dissolve.c index 816d2e8d009..0ad800cbddd 100644 --- a/source/blender/bmesh/operators/bmo_dissolve.c +++ b/source/blender/bmesh/operators/bmo_dissolve.c @@ -158,7 +158,7 @@ void bmo_dissolve_faces_exec(BMesh *bm, BMOperator *op) } BMO_slot_buffer_flag_enable(bm, op->slots_in, "faces", BM_FACE, FACE_MARK | FACE_TAG); - + /* collect region */ BMO_ITER (f, &oiter, op->slots_in, "faces", BM_FACE) { BMFace *f_iter; @@ -178,7 +178,7 @@ void bmo_dissolve_faces_exec(BMesh *bm, BMOperator *op) BLI_array_append(faces, f_iter); } BMW_end(®walker); - + for (i = 0; i < BLI_array_len(faces); i++) { f_iter = faces[i]; BMO_face_flag_disable(bm, f_iter, FACE_TAG); @@ -190,7 +190,7 @@ void bmo_dissolve_faces_exec(BMesh *bm, BMOperator *op) BMO_error_raise(bm, op, BMERR_DISSOLVEFACES_FAILED, NULL); goto cleanup; } - + BLI_array_append(faces, NULL); BLI_array_append(regions, faces); } @@ -201,17 +201,17 @@ void bmo_dissolve_faces_exec(BMesh *bm, BMOperator *op) for (i = 0; i < BLI_array_len(regions); i++) { BMFace *f_new; int tot = 0; - + faces = regions[i]; if (!faces[0]) { BMO_error_raise(bm, op, BMERR_DISSOLVEFACES_FAILED, "Could not find boundary of dissolve region"); goto cleanup; } - + while (faces[tot]) tot++; - + f_new = BM_faces_join(bm, faces, tot, true); if (f_new) { diff --git a/source/blender/bmesh/operators/bmo_dupe.c b/source/blender/bmesh/operators/bmo_dupe.c index 394faabbd25..eed87ed20af 100644 --- a/source/blender/bmesh/operators/bmo_dupe.c +++ b/source/blender/bmesh/operators/bmo_dupe.c @@ -64,7 +64,7 @@ static BMVert *bmo_vert_copy( /* Mark the vert for output */ BMO_vert_flag_enable(bm_dst, v_dst, DUPE_NEW); - + return v_dst; } @@ -103,7 +103,7 @@ static BMEdge *bmo_edge_copy( /* Lookup v1 and v2 */ e_dst_v1 = BLI_ghash_lookup(vhash, e_src->v1); e_dst_v2 = BLI_ghash_lookup(vhash, e_src->v2); - + /* Create a new edge */ e_dst = BM_edge_create(bm_dst, e_dst_v1, e_dst_v2, NULL, BM_CREATE_SKIP_CD); BMO_slot_map_elem_insert(op, slot_edgemap_out, e_src, e_dst); @@ -124,7 +124,7 @@ static BMEdge *bmo_edge_copy( /* Mark the edge for output */ BMO_edge_flag_enable(bm_dst, e_dst, DUPE_NEW); - + return e_dst; } @@ -164,7 +164,7 @@ static BMFace *bmo_face_copy( /* Copy attributes */ BM_elem_attrs_copy(bm_src, bm_dst, f_src, f_dst); - + /* copy per-loop custom data */ l_iter_src = l_first_src; l_iter_dst = BM_FACE_FIRST_LOOP(f_dst); @@ -192,7 +192,7 @@ static void bmo_mesh_copy(BMOperator *op, BMesh *bm_dst, BMesh *bm_src) BMVert *v = NULL, *v2; BMEdge *e = NULL; BMFace *f = NULL; - + BMIter viter, eiter, fiter; GHash *vhash, *ehash; @@ -286,7 +286,7 @@ static void bmo_mesh_copy(BMOperator *op, BMesh *bm_dst, BMesh *bm_src) BMO_face_flag_enable(bm_src, f, DUPE_DONE); } } - + /* free pointer hashes */ BLI_ghash_free(vhash, NULL, NULL); BLI_ghash_free(ehash, NULL, NULL); @@ -326,7 +326,7 @@ void bmo_duplicate_exec(BMesh *bm, BMOperator *op) { BMOperator *dupeop = op; BMesh *bm_dst = BMO_slot_ptr_get(op->slots_in, "dest"); - + if (!bm_dst) bm_dst = bm; @@ -335,7 +335,7 @@ void bmo_duplicate_exec(BMesh *bm, BMOperator *op) /* use the internal copy function */ bmo_mesh_copy(dupeop, bm_dst, bm); - + /* Output */ /* First copy the input buffers to output buffers - original data */ BMO_slot_copy(dupeop, slots_in, "geom", @@ -393,11 +393,11 @@ void bmo_split_exec(BMesh *bm, BMOperator *op) /* initialize our sub-operator */ BMO_op_init(bm, &dupeop, op->flag, "duplicate"); - + BMO_slot_copy(splitop, slots_in, "geom", &dupeop, slots_in, "geom"); BMO_op_exec(bm, &dupeop); - + BMO_slot_buffer_flag_enable(bm, splitop->slots_in, "geom", BM_ALL_NOLOOP, SPLIT_INPUT); if (use_only_faces) { diff --git a/source/blender/bmesh/operators/bmo_extrude.c b/source/blender/bmesh/operators/bmo_extrude.c index 87369472df7..3a6fbd419c1 100644 --- a/source/blender/bmesh/operators/bmo_extrude.c +++ b/source/blender/bmesh/operators/bmo_extrude.c @@ -175,7 +175,7 @@ static void bm_extrude_copy_face_loop_attributes(BMesh *bm, BMFace *f) static void bm_extrude_disable_skin_root(BMesh *bm, BMVert *v) { MVertSkin *vs; - + vs = CustomData_bmesh_get(&bm->vdata, v->head.data, CD_MVERT_SKIN); vs->flag &= ~MVERT_SKIN_ROOT; } @@ -186,7 +186,7 @@ void bmo_extrude_edge_only_exec(BMesh *bm, BMOperator *op) BMOperator dupeop; BMFace *f; BMEdge *e, *e_new; - + BMO_ITER (e, &siter, op->slots_in, "edges", BM_EDGE) { BMO_edge_flag_enable(bm, e, EXT_INPUT); BMO_vert_flag_enable(bm, e->v1, EXT_INPUT); @@ -227,16 +227,16 @@ void bmo_extrude_edge_only_exec(BMesh *bm, BMOperator *op) /* not sure what to do about example face, pass NULL for now */ f = BM_face_create_verts(bm, f_verts, 4, NULL, BM_CREATE_NOP, true); bm_extrude_copy_face_loop_attributes(bm, f); - + if (BMO_edge_flag_test(bm, e, EXT_INPUT)) { e = e_new; } - + BMO_face_flag_enable(bm, f, EXT_KEEP); BMO_edge_flag_enable(bm, e, EXT_KEEP); BMO_vert_flag_enable(bm, e->v1, EXT_KEEP); BMO_vert_flag_enable(bm, e->v2, EXT_KEEP); - + } BMO_op_finish(bm, &dupeop); @@ -343,7 +343,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op) BMO_slot_bool_get(op->slots_in, "use_select_history")); BMO_slot_buffer_flag_enable(bm, op->slots_in, "geom", BM_EDGE | BM_FACE, EXT_INPUT); - + /* if one flagged face is bordered by an un-flagged face, then we delete * original geometry unless caller explicitly asked to keep it. */ if (!BMO_slot_bool_get(op->slots_in, "use_keep_orig")) { @@ -404,7 +404,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op) } } } - + BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) { if (BMO_face_flag_test(bm, f, EXT_INPUT)) { BMO_face_flag_enable(bm, f, EXT_DEL); @@ -436,7 +436,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op) if (delorig) { BMO_op_exec(bm, &delop); } - + /* if not delorig, reverse loops of original face */ if (!delorig) { BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) { @@ -445,7 +445,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op) } } } - + BMO_slot_copy(&dupeop, slots_out, "geom.out", op, slots_out, "geom.out"); @@ -493,7 +493,7 @@ void bmo_extrude_face_region_exec(BMesh *bm, BMOperator *op) else fwd = (e_new->l->v == e_new->v1); - + if (fwd) { f_verts[0] = e->v1; f_verts[1] = e->v2; diff --git a/source/blender/bmesh/operators/bmo_hull.c b/source/blender/bmesh/operators/bmo_hull.c index d52cb00e172..ca727de5756 100644 --- a/source/blender/bmesh/operators/bmo_hull.c +++ b/source/blender/bmesh/operators/bmo_hull.c @@ -46,10 +46,10 @@ /* Internal operator flags */ typedef enum { HULL_FLAG_INPUT = (1 << 0), - + HULL_FLAG_INTERIOR_ELE = (1 << 1), HULL_FLAG_OUTPUT_GEOM = (1 << 2), - + HULL_FLAG_DEL = (1 << 3), HULL_FLAG_HOLE = (1 << 4) } HullFlags; @@ -106,7 +106,7 @@ static BMFace *hull_find_example_face(BMesh *bm, BMEdge *e) static void hull_output_triangles(BMesh *bm, GSet *hull_triangles) { GSetIterator iter; - + GSET_ITER (iter, hull_triangles) { HullTriangle *t = BLI_gsetIterator_getKey(&iter); int i; @@ -213,7 +213,7 @@ static HullFinalEdges *hull_final_edges(GSet *hull_triangles) { HullFinalEdges *final_edges; GSetIterator iter; - + final_edges = MEM_callocN(sizeof(HullFinalEdges), "HullFinalEdges"); final_edges->edges = BLI_ghash_ptr_new("final edges ghash"); final_edges->base_pool = BLI_mempool_create(sizeof(ListBase), 0, 128, BLI_MEMPOOL_NOP); @@ -286,7 +286,7 @@ static void hull_remove_overlapping( break; } } - + /* Note: can't change ghash while iterating, so mark * with 'skip' flag rather than deleting triangles */ if (BM_vert_in_face(t->v[1], f) && @@ -336,7 +336,7 @@ static void hull_tag_unused(BMesh *bm, BMOperator *op) BMO_ITER (v, &oiter, op->slots_in, "input", BM_VERT) { if (BMO_vert_flag_test(bm, v, HULL_FLAG_INTERIOR_ELE)) { bool del = true; - + BM_ITER_ELEM (e, &iter, v, BM_EDGES_OF_VERT) { if (!BMO_edge_flag_test(bm, e, HULL_FLAG_INPUT)) { del = false; @@ -406,7 +406,7 @@ static void hull_tag_holes(BMesh *bm, BMOperator *op) BMO_ITER (e, &oiter, op->slots_in, "input", BM_EDGE) { bool hole = true; bool any_faces = false; - + BM_ITER_ELEM (f, &iter, e, BM_FACES_OF_EDGE) { any_faces = true; if (!BMO_face_flag_test(bm, f, HULL_FLAG_HOLE)) { @@ -511,7 +511,7 @@ static void hull_from_bullet( hull = plConvexHullCompute(coords, num_input_verts); hull_verts = hull_verts_from_bullet(hull, input_verts, num_input_verts); - + count = plConvexHullNumFaces(hull); for (i = 0; i < count; i++) { const int len = plConvexHullGetFaceSize(hull, i); @@ -601,7 +601,7 @@ void bmo_convex_hull_exec(BMesh *bm, BMOperator *op) hull_from_bullet(bm, op, hull_triangles, hull_pool); final_edges = hull_final_edges(hull_triangles); - + hull_mark_interior_elements(bm, op, final_edges); /* Remove hull triangles covered by an existing face */ diff --git a/source/blender/bmesh/operators/bmo_mirror.c b/source/blender/bmesh/operators/bmo_mirror.c index f1bf3179cd6..64f9773714b 100644 --- a/source/blender/bmesh/operators/bmo_mirror.c +++ b/source/blender/bmesh/operators/bmo_mirror.c @@ -57,13 +57,13 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op) BMOpSlot *slot_targetmap; ototvert = bm->totvert; - + BMO_slot_mat4_get(op->slots_in, "matrix", mtx); invert_m4_m4(imtx, mtx); - + BMO_op_initf(bm, &dupeop, op->flag, "duplicate geom=%s", op, "geom"); BMO_op_exec(bm, &dupeop); - + BMO_slot_buffer_flag_enable(bm, dupeop.slots_out, "geom.out", BM_ALL_NOLOOP, ELE_NEW); /* create old -> new mappin */ @@ -74,7 +74,7 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op) BMO_op_callf(bm, op->flag, "transform verts=%fv matrix=%m4", ELE_NEW, mtx); BMO_op_callf(bm, op->flag, "scale verts=%fv vec=%v", ELE_NEW, scale); BMO_op_callf(bm, op->flag, "transform verts=%fv matrix=%m4", ELE_NEW, imtx); - + BMO_op_init(bm, &weldop, op->flag, "weld_verts"); slot_targetmap = BMO_slot_get(weldop.slots_in, "targetmap"); @@ -87,7 +87,7 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op) } v = BM_iter_step(&iter); } - + if (mirror_u || mirror_v) { BMFace *f; BMLoop *l; @@ -109,7 +109,7 @@ void bmo_mirror_exec(BMesh *bm, BMOperator *op) } BMO_op_exec(bm, &weldop); - + BMO_op_finish(bm, &weldop); BMO_op_finish(bm, &dupeop); diff --git a/source/blender/bmesh/operators/bmo_primitive.c b/source/blender/bmesh/operators/bmo_primitive.c index 95d61763902..fd9b88ca4d3 100644 --- a/source/blender/bmesh/operators/bmo_primitive.c +++ b/source/blender/bmesh/operators/bmo_primitive.c @@ -940,7 +940,7 @@ void bmo_create_uvsphere_exec(BMesh *bm, BMOperator *op) BMO_slot_buffer_flag_enable(bm, bmop.slots_out, "geom.out", BM_VERT, VERT_MARK); BMO_op_callf(bm, op->flag, "rotate cent=%v matrix=%m3 verts=%S", vec, cmat, &bmop, "geom.out"); - + prevop = bmop; } @@ -1041,7 +1041,7 @@ void bmo_create_icosphere_exec(BMesh *bm, BMOperator *op) v3 = eva[icoface[a][2]]; f = BM_face_create_quad_tri(bm, v1, v2, v3, NULL, NULL, BM_CREATE_NOP); - + BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { BMO_edge_flag_enable(bm, l->e, EDGE_MARK); } @@ -1296,10 +1296,10 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op) BMVert *v1, *lastv1 = NULL, *cent1, *firstv1 = NULL; float vec[3], mat[4][4], phi, phid; int a; - + if (!segs) return; - + BMO_slot_mat4_get(op->slots_in, "matrix", mat); phid = 2.0f * (float)M_PI / segs; @@ -1308,7 +1308,7 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op) if (cap_ends) { zero_v3(vec); mul_m4_v3(mat, vec); - + cent1 = BM_vert_create(bm, vec, NULL, BM_CREATE_NOP); BMO_vert_flag_enable(bm, cent1, VERT_MARK); } @@ -1322,17 +1322,17 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op) v1 = BM_vert_create(bm, vec, NULL, BM_CREATE_NOP); BMO_vert_flag_enable(bm, v1, VERT_MARK); - + if (lastv1) BM_edge_create(bm, v1, lastv1, NULL, BM_CREATE_NOP); - + if (a && cap_ends) { BMFace *f; - + f = BM_face_create_quad_tri(bm, cent1, lastv1, v1, NULL, NULL, BM_CREATE_NOP); BMO_face_flag_enable(bm, f, FACE_NEW); } - + if (!firstv1) firstv1 = v1; @@ -1346,7 +1346,7 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op) if (cap_ends) { BMFace *f; - + f = BM_face_create_quad_tri(bm, cent1, v1, firstv1, NULL, NULL, BM_CREATE_NOP); BMO_face_flag_enable(bm, f, FACE_NEW); @@ -1354,11 +1354,11 @@ void bmo_create_circle_exec(BMesh *bm, BMOperator *op) BM_mesh_calc_uvs_circle(bm, mat, radius, FACE_NEW, cd_loop_uv_offset); } } - + if (!cap_tris) { BMO_op_callf(bm, op->flag, "dissolve_faces faces=%ff", FACE_NEW); } - + BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "verts.out", BM_VERT, VERT_MARK); } @@ -1421,10 +1421,10 @@ void bmo_create_cone_exec(BMesh *bm, BMOperator *op) const int cd_loop_uv_offset = CustomData_get_offset(&bm->ldata, CD_MLOOPUV); const bool calc_uvs = (cd_loop_uv_offset != -1) && BMO_slot_bool_get(op->slots_in, "calc_uvs"); int a; - + if (!segs) return; - + BMO_slot_mat4_get(op->slots_in, "matrix", mat); phid = 2.0f * (float)M_PI / segs; @@ -1435,13 +1435,13 @@ void bmo_create_cone_exec(BMesh *bm, BMOperator *op) vec[0] = vec[1] = 0.0f; vec[2] = -depth; mul_m4_v3(mat, vec); - + cent1 = BM_vert_create(bm, vec, NULL, BM_CREATE_NOP); vec[0] = vec[1] = 0.0f; vec[2] = depth; mul_m4_v3(mat, vec); - + cent2 = BM_vert_create(bm, vec, NULL, BM_CREATE_NOP); BMO_vert_flag_enable(bm, cent1, VERT_MARK); @@ -1522,7 +1522,7 @@ void bmo_create_cone_exec(BMesh *bm, BMOperator *op) if (!cap_tris) { BMO_op_callf(bm, op->flag, "dissolve_faces faces=%ff", FACE_NEW); } - + BMO_op_callf(bm, op->flag, "remove_doubles verts=%fv dist=%f", VERT_MARK, 0.000001); BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "verts.out", BM_VERT, VERT_MARK); } diff --git a/source/blender/bmesh/operators/bmo_removedoubles.c b/source/blender/bmesh/operators/bmo_removedoubles.c index e85751531ae..8468227d17e 100644 --- a/source/blender/bmesh/operators/bmo_removedoubles.c +++ b/source/blender/bmesh/operators/bmo_removedoubles.c @@ -303,7 +303,7 @@ void bmo_pointmerge_facedata_exec(BMesh *bm, BMOperator *op) if (l_first == NULL) { l_first = l; } - + for (i = 0; i < bm->ldata.totlayer; i++) { if (CustomData_layer_has_math(&bm->ldata, i)) { const int type = bm->ldata.layers[i].type; @@ -312,7 +312,7 @@ void bmo_pointmerge_facedata_exec(BMesh *bm, BMOperator *op) e1 = BM_ELEM_CD_GET_VOID_P(l_first, offset); e2 = BM_ELEM_CD_GET_VOID_P(l, offset); - + CustomData_data_multiply(type, e2, fac); if (l != l_first) { @@ -348,7 +348,7 @@ void bmo_average_vert_facedata_exec(BMesh *bm, BMOperator *op) if (!CustomData_layer_has_math(&bm->ldata, i)) continue; - + CustomData_data_initminmax(type, &min, &max); BMO_ITER (v, &siter, op->slots_in, "verts", BM_VERT) { @@ -378,7 +378,7 @@ void bmo_pointmerge_exec(BMesh *bm, BMOperator *op) BMVert *v, *vert_snap = NULL; float vec[3]; BMOpSlot *slot_targetmap; - + BMO_slot_vec_get(op->slots_in, "merge_co", vec); //BMO_op_callf(bm, op->flag, "collapse_uvs edges=%s", op, "edges"); diff --git a/source/blender/bmesh/operators/bmo_subdivide.c b/source/blender/bmesh/operators/bmo_subdivide.c index 8f998797a16..90cbe9a5d76 100644 --- a/source/blender/bmesh/operators/bmo_subdivide.c +++ b/source/blender/bmesh/operators/bmo_subdivide.c @@ -156,7 +156,7 @@ static BMEdge *connect_smallest_face(BMesh *bm, BMVert *v_a, BMVert *v_b, BMFace BLI_assert(!BM_loop_is_adjacent(l_a, l_b)); f_new = BM_face_split(bm, f, l_a, l_b, &l_new, NULL, false); - + if (r_f_new) *r_f_new = f_new; return l_new ? l_new->e : NULL; } @@ -380,7 +380,7 @@ static BMVert *bm_subdivide_edge_addvert( BMEdge **r_edge) { BMVert *v_new; - + v_new = BM_edge_split(bm, edge, edge->v1, r_edge, factor_edge_split); BMO_vert_flag_enable(bm, v_new, ELE_INNER); @@ -402,7 +402,7 @@ static BMVert *bm_subdivide_edge_addvert( } } #endif - + interp_v3_v3v3(v_new->no, v_a->no, v_b->no, factor_subd); normalize_v3(v_new->no); @@ -426,7 +426,7 @@ static BMVert *subdivide_edge_num( factor_edge_split = 1.0f / (float)(totpoint + 1 - curpoint); factor_subd = (float)(curpoint + 1) / (float)(totpoint + 1); } - + v_new = bm_subdivide_edge_addvert( bm, edge, e_orig, params, factor_edge_split, factor_subd, @@ -444,7 +444,7 @@ static void bm_subdivide_multicut( e_tmp.v1 = &v1_tmp; e_tmp.v2 = &v2_tmp; - + for (i = 0; i < numcuts; i++) { v = subdivide_edge_num(bm, eed, &e_tmp, i, params->numcuts, params, v_a, v_b, &e_new); @@ -456,7 +456,7 @@ static void bm_subdivide_multicut( if (v->e) BM_CHECK_ELEMENT(v->e); if (v->e && v->e->l) BM_CHECK_ELEMENT(v->e->l->f); } - + alter_co(v1, &e_tmp, params, 0, &v1_tmp, &v2_tmp); alter_co(v2, &e_tmp, params, 1.0, &v1_tmp, &v2_tmp); } @@ -526,7 +526,7 @@ static void quad_2edge_split_path(BMesh *bm, BMFace *UNUSED(face), BMVert **vert { BMFace *f_new; int i, numcuts = params->numcuts; - + for (i = 0; i < numcuts; i++) { connect_smallest_face(bm, verts[i], verts[numcuts + (numcuts - i)], &f_new); } @@ -556,7 +556,7 @@ static void quad_2edge_split_innervert(BMesh *bm, BMFace *UNUSED(face), BMVert * BMVert *v, *v_last; BMEdge *e, *e_new, e_tmp; int i, numcuts = params->numcuts; - + v_last = verts[numcuts]; for (i = numcuts - 1; i >= 0; i--) { @@ -629,7 +629,7 @@ static void quad_3edge_split(BMesh *bm, BMFace *UNUSED(face), BMVert **verts, { BMFace *f_new; int i, add = 0, numcuts = params->numcuts; - + for (i = 0; i < numcuts; i++) { if (i == numcuts / 2) { if (numcuts % 2 != 0) { @@ -687,12 +687,12 @@ static void quad_4edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts for (i = 0; i < numcuts + 2; i++) { lines[(s - 1) * s + i] = verts[numcuts + i]; } - + /* first and last members of middle lines */ for (i = 0; i < numcuts; i++) { a = i; b = numcuts + 1 + numcuts + 1 + (numcuts - i - 1); - + e = connect_smallest_face(bm, verts[a], verts[b], &f_new); if (!e) continue; @@ -700,10 +700,10 @@ static void quad_4edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts BMO_edge_flag_enable(bm, e, ELE_INNER); BMO_face_flag_enable(bm, f_new, ELE_INNER); - + v1 = lines[(i + 1) * s] = verts[a]; v2 = lines[(i + 1) * s + s - 1] = verts[b]; - + e_tmp = *e; for (a = 0; a < numcuts; a++) { v = subdivide_edge_num(bm, e, &e_tmp, a, numcuts, params, v1, v2, &e_new); @@ -748,7 +748,7 @@ static void tri_1edge_split(BMesh *bm, BMFace *UNUSED(face), BMVert **verts, { BMFace *f_new; int i, numcuts = params->numcuts; - + for (i = 0; i < numcuts; i++) { connect_smallest_face(bm, verts[i], verts[numcuts + 1], &f_new); } @@ -780,13 +780,13 @@ static void tri_3edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts, BMVert ***lines, *v, v1_tmp, v2_tmp; void *stackarr[1]; int i, j, a, b, numcuts = params->numcuts; - + /* number of verts in each lin */ lines = MEM_callocN(sizeof(void *) * (numcuts + 2), "triangle vert table"); - + lines[0] = (BMVert **) stackarr; lines[0][0] = verts[numcuts * 2 + 1]; - + lines[numcuts + 1] = MEM_callocN(sizeof(void *) * (numcuts + 2), "triangle vert table 2"); for (i = 0; i < numcuts; i++) { lines[numcuts + 1][i + 1] = verts[i]; @@ -806,7 +806,7 @@ static void tri_3edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts, lines[i + 1][0] = verts[a]; lines[i + 1][i + 1] = verts[b]; - + e_tmp = *e; v1_tmp = *verts[a]; v2_tmp = *verts[b]; @@ -819,7 +819,7 @@ static void tri_3edge_subdivide(BMesh *bm, BMFace *UNUSED(face), BMVert **verts, BMO_edge_flag_enable(bm, e_new, ELE_INNER); } } - + /** * <pre> * v5 @@ -906,9 +906,9 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) float smooth, fractal, along_normal; bool use_sphere, use_single_edge, use_grid_fill, use_only_quads; int cornertype, seed, i, j, a, b, numcuts, totesel, smooth_falloff; - + BMO_slot_buffer_flag_enable(bm, op->slots_in, "edges", BM_EDGE, SUBD_SPLIT); - + numcuts = BMO_slot_int_get(op->slots_in, "cuts"); seed = BMO_slot_int_get(op->slots_in, "seed"); smooth = BMO_slot_float_get(op->slots_in, "smooth"); @@ -935,7 +935,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) patterns[1] = &quad_2edge_fan; break; } - + if (use_single_edge) { patterns[0] = &quad_1edge; patterns[2] = &tri_1edge; @@ -953,12 +953,12 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) patterns[3] = NULL; patterns[5] = NULL; } - + /* add a temporary shapekey layer to store displacements on current geometry */ BM_data_layer_add(bm, &bm->vdata, CD_SHAPEKEY); bmo_subd_init_shape_info(bm, ¶ms); - + BM_ITER_MESH (v, &viter, bm, BM_VERTS_OF_MESH) { float *co = BM_ELEM_CD_GET_VOID_P(v, params.shape_info.cd_vert_shape_offset_tmp); copy_v3_v3(co, v->co); @@ -990,7 +990,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) BLI_rng_free(rng); } - + BMO_slot_map_to_flag(bm, op->slots_in, "custom_patterns", BM_FACE, FACE_CUSTOMFILL); @@ -1105,10 +1105,10 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) } } - + if (!matched && totesel) { SubDFaceData *fd; - + BMO_face_flag_enable(bm, face, SUBD_SPLIT); /* must initialize all members here */ @@ -1146,7 +1146,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) if (!pat && fd->totedgesel == 2) { int vlen; - + /* ok, no pattern. we still may be able to do something */ BLI_array_clear(loops); BLI_array_clear(loops_split); @@ -1156,7 +1156,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) BM_ITER_ELEM_INDEX (l, &liter, face, BM_LOOPS_OF_FACE, a) { loops[a] = l; } - + vlen = BLI_array_len(loops); /* find the boundary of one of the split edges */ @@ -1167,7 +1167,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) break; } } - + if (BMO_vert_flag_test(bm, loops[(a + numcuts + 1) % vlen]->v, ELE_INNER)) { b = (a + numcuts + 1) % vlen; } @@ -1182,7 +1182,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) } } } - + b += numcuts - 1; BLI_array_grow_items(loops_split, numcuts); @@ -1230,7 +1230,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) b = (b - 1) % vlen; a = (a + 1) % vlen; } - + /* Since these are newly created vertices, we don't need to worry about them being legal, * ... though there are some cases we _should_ check for * - concave corner of an ngon. @@ -1281,7 +1281,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) } BM_data_layer_free_n(bm, &bm->vdata, CD_SHAPEKEY, params.shape_info.tmpkey); - + BLI_stack_free(facedata); if (edges) BLI_array_free(edges); if (verts) BLI_array_free(verts); @@ -1290,7 +1290,7 @@ void bmo_subdivide_edges_exec(BMesh *bm, BMOperator *op) BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "geom_inner.out", BM_ALL_NOLOOP, ELE_INNER); BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "geom_split.out", BM_ALL_NOLOOP, ELE_SPLIT); - + BMO_slot_buffer_from_enabled_flag(bm, op, op->slots_out, "geom.out", BM_ALL_NOLOOP, ELE_INNER | ELE_SPLIT | SUBD_SPLIT); } @@ -1306,7 +1306,7 @@ void BM_mesh_esubdivide( const int seed) { BMOperator op; - + /* use_sphere isnt exposed here since its only used for new primitives */ BMO_op_initf(bm, &op, BMO_FLAG_DEFAULTS, "subdivide_edges edges=%he " @@ -1325,9 +1325,9 @@ void BM_mesh_esubdivide( use_single_edge, use_grid_fill, use_only_quads, seed); - + BMO_op_exec(bm, &op); - + switch (seltype) { case SUBDIV_SELECT_NONE: break; @@ -1354,11 +1354,11 @@ void bmo_bisect_edges_exec(BMesh *bm, BMOperator *op) BMOIter siter; BMEdge *e; SubDParams params = {0}; - + params.numcuts = BMO_slot_int_get(op->slots_in, "cuts"); params.op = op; params.slot_edge_percents = BMO_slot_get(op->slots_in, "edge_percents"); - + BM_data_layer_add(bm, &bm->vdata, CD_SHAPEKEY); bmo_subd_init_shape_info(bm, ¶ms); diff --git a/source/blender/bmesh/operators/bmo_triangulate.c b/source/blender/bmesh/operators/bmo_triangulate.c index 163a9ef599c..e686ef0429a 100644 --- a/source/blender/bmesh/operators/bmo_triangulate.c +++ b/source/blender/bmesh/operators/bmo_triangulate.c @@ -83,9 +83,9 @@ void bmo_triangle_fill_exec(BMesh *bm, BMOperator *op) sf_vert_map = BLI_ghash_ptr_new_ex(__func__, BMO_slot_buffer_count(op->slots_in, "edges")); BMO_slot_vec_get(op->slots_in, "normal", normal); - + BLI_scanfill_begin(&sf_ctx); - + BMO_ITER (e, &siter, op->slots_in, "edges", BM_EDGE) { ScanFillVert *sf_verts[2]; BMVert **e_verts = &e->v1; @@ -108,7 +108,7 @@ void bmo_triangle_fill_exec(BMesh *bm, BMOperator *op) } nors_tot = BLI_ghash_len(sf_vert_map); BLI_ghash_free(sf_vert_map, NULL, NULL); - + if (is_zero_v3(normal)) { /* calculate the normal from the cross product of vert-edge pairs. @@ -225,7 +225,7 @@ void bmo_triangle_fill_exec(BMesh *bm, BMOperator *op) f = BM_face_create_quad_tri(bm, sf_tri->v1->tmp.p, sf_tri->v2->tmp.p, sf_tri->v3->tmp.p, NULL, NULL, BM_CREATE_NO_DOUBLE); - + BMO_face_flag_enable(bm, f, ELE_NEW); BM_ITER_ELEM (l, &liter, f, BM_LOOPS_OF_FACE) { if (!BMO_edge_flag_test(bm, l->e, EDGE_MARK)) { @@ -233,9 +233,9 @@ void bmo_triangle_fill_exec(BMesh *bm, BMOperator *op) } } } - + BLI_scanfill_end(&sf_ctx); - + if (use_beauty) { BMOperator bmop; |