[Bf-blender-cvs] [294e41477b3] master: Fix T102961: mirrored vertices sometimes get locked in transform

Germano Cavalcante noreply at git.blender.org
Mon Dec 5 23:11:23 CET 2022


Commit: 294e41477b326926fc258254a073ae5515bd8e9d
Author: Germano Cavalcante
Date:   Mon Dec 5 19:10:54 2022 -0300
Branches: master
https://developer.blender.org/rB294e41477b326926fc258254a073ae5515bd8e9d

Fix T102961: mirrored vertices sometimes get locked in transform

Two vertices within the threshold can mirror each other causing neither
to be transformed.

===================================================================

M	source/blender/editors/transform/transform_convert_mesh.c

===================================================================

diff --git a/source/blender/editors/transform/transform_convert_mesh.c b/source/blender/editors/transform/transform_convert_mesh.c
index 3192b1b6786..d8442175ab0 100644
--- a/source/blender/editors/transform/transform_convert_mesh.c
+++ b/source/blender/editors/transform/transform_convert_mesh.c
@@ -1231,6 +1231,12 @@ void transform_convert_mesh_mirrordata_calc(struct BMEditMesh *em,
          * It can happen when vertices occupy the same position. */
         continue;
       }
+      if (vert_map[i].flag & flag) {
+        /* It's already a mirror.
+         * Avoid a mirror vertex dependency cycle.
+         * This can happen when the vertices are within the mirror threshold. */
+        continue;
+      }
 
       vert_map[i_mirr] = (struct MirrorDataVert){i, flag};
       mirror_elem_len++;



More information about the Bf-blender-cvs mailing list