[Bf-blender-cvs] [4ffbc6175e7] blender-v3.3-release: Fix T101964: Edge and face snapping no locking to axis

Germano Cavalcante noreply at git.blender.org
Thu Jan 12 22:48:22 CET 2023


Commit: 4ffbc6175e70efed60caf241f883da9c9a1e4923
Author: Germano Cavalcante
Date:   Fri Oct 21 09:52:53 2022 -0300
Branches: blender-v3.3-release
https://developer.blender.org/rB4ffbc6175e70efed60caf241f883da9c9a1e4923

Fix T101964: Edge and face snapping no locking to axis

In rBed6c8d82b804 it was wrongly assumed that the constraint functions
always apply the transformations.

But that is not the case for when axes are aligned.

The `mul_m3_v3(t->con.pmtx, out)` fallback is still required.

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

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

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

diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index d5274d3ae7d..9edd9e34f8a 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -404,9 +404,11 @@ static void applyAxisConstraintVec(const TransInfo *t,
       }
     }
 
+    /* Fallback for when axes are aligned. */
+    mul_m3_v3(t->con.pmtx, out);
+
     if (is_snap_to_point) {
-      /* With snap points, a projection is alright, no adjustments needed. */
-      mul_m3_v3(t->con.pmtx, out);
+      /* Pass. With snap points, a projection is alright, no adjustments needed. */
     }
     else {
       const int dims = getConstraintSpaceDimension(t);
@@ -422,14 +424,9 @@ static void applyAxisConstraintVec(const TransInfo *t,
             /* Disabled, as it has not proven to be really useful. (See T82386). */
             // constraint_snap_plane_to_face(t, plane, out);
           }
-          else {
+          else if (!isPlaneProjectionViewAligned(t, plane)) {
             /* View alignment correction. */
-            if (!isPlaneProjectionViewAligned(t, plane)) {
-              planeProjection(t, plane, in, out);
-            }
-            else {
-              mul_m3_v3(t->con.pmtx, out);
-            }
+            planeProjection(t, plane, in, out);
           }
         }
       }



More information about the Bf-blender-cvs mailing list