[Bf-blender-cvs] [afbe71342b5] master: Fix T76813: Snap to Edge Center returning a different normal from snap to Edge

Germano Cavalcante noreply at git.blender.org
Mon May 18 20:22:33 CEST 2020


Commit: afbe71342b577c8d62c2fd8274493819a1da0b34
Author: Germano Cavalcante
Date:   Mon May 18 15:19:13 2020 -0300
Branches: master
https://developer.blender.org/rBafbe71342b577c8d62c2fd8274493819a1da0b34

Fix T76813: Snap to Edge Center returning a different normal from snap to Edge

This difference was intentional, but using the edge direction as normal is more useful.

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

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

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

diff --git a/source/blender/editors/transform/transform_snap_object.c b/source/blender/editors/transform/transform_snap_object.c
index 2cfeedbb346..acd76a2e3f5 100644
--- a/source/blender/editors/transform/transform_snap_object.c
+++ b/source/blender/editors/transform/transform_snap_object.c
@@ -1707,8 +1707,14 @@ static short snap_mesh_edge_verts_mixed(SnapObjectContext *sctx,
                                      &nearest.dist_sq,
                                      nearest.co)) {
           nearest.index = vindex[v_id];
-          nearest2d.copy_vert_no(vindex[v_id], nearest.no, nearest2d.userdata);
           elem = SCE_SNAP_MODE_VERTEX;
+          if (r_no) {
+            float imat[4][4];
+            invert_m4_m4(imat, obmat);
+            nearest2d.copy_vert_no(vindex[v_id], r_no, nearest2d.userdata);
+            mul_transposed_mat3_m4_v3(imat, r_no);
+            normalize_v3(r_no);
+          }
         }
       }
     }
@@ -1726,10 +1732,6 @@ static short snap_mesh_edge_verts_mixed(SnapObjectContext *sctx,
                                      vmid,
                                      &nearest.dist_sq,
                                      nearest.co)) {
-          float v_nor[2][3];
-          nearest2d.copy_vert_no(vindex[0], v_nor[0], nearest2d.userdata);
-          nearest2d.copy_vert_no(vindex[1], v_nor[1], nearest2d.userdata);
-          mid_v3_v3v3(nearest.no, v_nor[0], v_nor[1]);
           nearest.index = *r_index;
           elem = SCE_SNAP_MODE_EDGE_MIDPOINT;
         }
@@ -1757,11 +1759,6 @@ static short snap_mesh_edge_verts_mixed(SnapObjectContext *sctx,
                                        v_near,
                                        &nearest.dist_sq,
                                        nearest.co)) {
-            float v_nor[2][3];
-            nearest2d.copy_vert_no(vindex[0], v_nor[0], nearest2d.userdata);
-            nearest2d.copy_vert_no(vindex[1], v_nor[1], nearest2d.userdata);
-            mid_v3_v3v3(nearest.no, v_nor[0], v_nor[1]);
-
             nearest.index = *r_index;
             elem = SCE_SNAP_MODE_EDGE_PERPENDICULAR;
           }
@@ -1778,15 +1775,6 @@ static short snap_mesh_edge_verts_mixed(SnapObjectContext *sctx,
       mul_m4_v3(obmat, r_loc);
     }
 
-    if (r_no) {
-      float imat[4][4];
-      invert_m4_m4(imat, obmat);
-
-      copy_v3_v3(r_no, nearest.no);
-      mul_transposed_mat3_m4_v3(imat, r_no);
-      normalize_v3(r_no);
-    }
-
     *r_index = nearest.index;
   }



More information about the Bf-blender-cvs mailing list