[Bf-blender-cvs] [ddbbbf40f67] soc-2021-uv-editor-improvements-edge-selection: Fix: Check edge selection only for common vertex

Siddhartha Jejurkar noreply at git.blender.org
Sun Aug 8 09:33:09 CEST 2021


Commit: ddbbbf40f670689406ad2de676a0e9620f189bda
Author: Siddhartha Jejurkar
Date:   Sat Aug 7 20:38:18 2021 +0530
Branches: soc-2021-uv-editor-improvements-edge-selection
https://developer.blender.org/rBddbbbf40f670689406ad2de676a0e9620f189bda

Fix: Check edge selection only for common vertex

Allow edge selection test only for UV edges that share a common UV
vertex. Previous logic didn't check if the UV edges shared the same
UV vertex.

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

M	source/blender/editors/uvedit/uvedit_select.c

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

diff --git a/source/blender/editors/uvedit/uvedit_select.c b/source/blender/editors/uvedit/uvedit_select.c
index 3a23c55021b..964ea5ac0d5 100644
--- a/source/blender/editors/uvedit/uvedit_select.c
+++ b/source/blender/editors/uvedit/uvedit_select.c
@@ -1217,10 +1217,22 @@ static bool uvedit_vert_is_any_other_edge_selected(const Scene *scene,
   do {
     BMLoop *l_radial_iter = e_iter->l;
     do {
-      if ((l_radial_iter->f != l->f) && uvedit_face_visible_test(scene, l_radial_iter->f)) {
+      if (l_radial_iter->v == l->v) {
+        if (BM_loop_uv_share_vert_check(l, l_radial_iter, cd_loop_uv_offset) &&
+            uvedit_face_visible_test(scene, l_radial_iter->f)) {
 
-        if (uvedit_edge_select_test(scene, l_radial_iter, cd_loop_uv_offset)) {
-          return true;
+          if (uvedit_edge_select_test(scene, l_radial_iter, cd_loop_uv_offset)) {
+            return true;
+          }
+        }
+      }
+      else {
+        if (BM_loop_uv_share_vert_check(l, l_radial_iter->next, cd_loop_uv_offset) &&
+            uvedit_face_visible_test(scene, l_radial_iter->f)) {
+
+          if (uvedit_edge_select_test(scene, l_radial_iter, cd_loop_uv_offset)) {
+            return true;
+          }
         }
       }
     } while ((l_radial_iter = l_radial_iter->radial_next) != e_iter->l);



More information about the Bf-blender-cvs mailing list