diff options
author | Campbell Barton <ideasman42@gmail.com> | 2021-08-17 10:11:03 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2021-08-17 10:12:36 +0300 |
commit | 7304541f66a87e8131e9654a7fa1b9e77fb1fa4e (patch) | |
tree | 9ecefc4388ff25f37f27d773f3a22e345f382552 /source/blender/editors/mesh/editmesh_tools.c | |
parent | 32844d32c1d90e6205145ef3bdde2f9281127c82 (diff) |
Edit Mesh: skip unselected meshes for "Tris to Quads"
Also move property assignment out of the object loop.
Diffstat (limited to 'source/blender/editors/mesh/editmesh_tools.c')
-rw-r--r-- | source/blender/editors/mesh/editmesh_tools.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index fa0762ee0bf..b8bbf2d3e70 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -5576,24 +5576,24 @@ static int edbm_tris_convert_to_quads_exec(bContext *C, wmOperator *op) Object **objects = BKE_view_layer_array_from_objects_in_edit_mode_unique_data( view_layer, CTX_wm_view3d(C), &objects_len); - bool is_face_pair; + const bool do_seam = RNA_boolean_get(op->ptr, "seam"); + const bool do_sharp = RNA_boolean_get(op->ptr, "sharp"); + const bool do_uvs = RNA_boolean_get(op->ptr, "uvs"); + const bool do_vcols = RNA_boolean_get(op->ptr, "vcols"); + const bool do_materials = RNA_boolean_get(op->ptr, "materials"); + float angle_face_threshold, angle_shape_threshold; + bool is_face_pair; { int totelem_sel[3]; EDBM_mesh_stats_multi(objects, objects_len, NULL, totelem_sel); is_face_pair = (totelem_sel[2] == 2); } - for (uint ob_index = 0; ob_index < objects_len; ob_index++) { - Object *obedit = objects[ob_index]; - - BMEditMesh *em = BKE_editmesh_from_object(obedit); - bool do_seam, do_sharp, do_uvs, do_vcols, do_materials; - float angle_face_threshold, angle_shape_threshold; + /* When joining exactly 2 faces, no limit. + * this is useful for one off joins while editing. */ + { PropertyRNA *prop; - - /* When joining exactly 2 faces, no limit. - * this is useful for one off joins while editing. */ prop = RNA_struct_find_property(op->ptr, "face_threshold"); if (is_face_pair && (RNA_property_is_set(op->ptr, prop) == false)) { angle_face_threshold = DEG2RADF(180.0f); @@ -5609,12 +5609,15 @@ static int edbm_tris_convert_to_quads_exec(bContext *C, wmOperator *op) else { angle_shape_threshold = RNA_property_float_get(op->ptr, prop); } + } + + for (uint ob_index = 0; ob_index < objects_len; ob_index++) { + Object *obedit = objects[ob_index]; + BMEditMesh *em = BKE_editmesh_from_object(obedit); - do_seam = RNA_boolean_get(op->ptr, "seam"); - do_sharp = RNA_boolean_get(op->ptr, "sharp"); - do_uvs = RNA_boolean_get(op->ptr, "uvs"); - do_vcols = RNA_boolean_get(op->ptr, "vcols"); - do_materials = RNA_boolean_get(op->ptr, "materials"); + if (em->bm->totfacesel == 0) { + continue; + } BM_custom_loop_normals_to_vector_layer(em->bm); |