Commit: b72d576f9ff83986773801a275e5220b53d5cdba
Author: Alexander Gavrilov
Date: Sat Feb 4 18:26:46 2023 +0200
Branches: temp-angavrilov
https://developer.blender.org/rBb72d576f9ff83986773801a275e5220b53d5cdba
Mesh Edit: implement X symmetry in the Blend From Shape operator.
===================================================================
M source/blender/editors/mesh/editmesh_tools.c
===================================================================
diff --git a/source/blender/editors/mesh/editmesh_tools.c
b/source/blender/editors/mesh/editmesh_tools.c
index edf82382298..412887fee7d 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -3927,6 +3927,14 @@ static int edbm_blend_from_shape_exec(bContext *C,
wmOperator *op)
shape = BLI_findindex(&key->block, kb);
if (kb) {
+ const bool use_symmetry = (me->symmetry & ME_SYMMETRY_X) != 0;
+
+ if (use_symmetry) {
+ const bool use_topology = (me->editflag & ME_EDIT_MIRROR_TOPO) != 0;
+
+ EDBM_verts_mirror_cache_begin(em, 0, false, true, false, use_topology);
+ }
+
/* Perform blending on selected vertices. */
BM_ITER_MESH (eve, &iter, em->bm, BM_VERTS_OF_MESH) {
if (!BM_elem_flag_test(eve, BM_ELEM_SELECT) || BM_elem_flag_test(eve,
BM_ELEM_HIDDEN)) {
@@ -3950,6 +3958,12 @@ static int edbm_blend_from_shape_exec(bContext *C,
wmOperator *op)
interp_v3_v3v3(eve->co, eve->co, co, blend);
}
}
+
+ if (use_symmetry) {
+ EDBM_verts_mirror_apply(em, BM_ELEM_SELECT, 0);
+ EDBM_verts_mirror_cache_end(em);
+ }
+
EDBM_update(me,
&(const struct EDBMUpdate_Params){
.calc_looptri = true,
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs