[Bf-blender-cvs] [54f248fa87a] master: Transform: Use orientation of active object with Auto Constraint

Germano Cavalcante noreply at git.blender.org
Mon Oct 5 15:05:27 CEST 2020


Commit: 54f248fa87afd4836fb7154056cd0e8d920401f1
Author: Germano Cavalcante
Date:   Mon Oct 5 10:04:02 2020 -0300
Branches: master
https://developer.blender.org/rB54f248fa87afd4836fb7154056cd0e8d920401f1

Transform: Use orientation of active object with Auto Constraint

Fix T81429.

This was an intentional change in rBc75a665c442e as it maintains the
same behavior as the constraint with or without modifier.

But from the user's PoV, it is better to keep the old behavior.

This makes drawing and behavior more intuitive.

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

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 27ece728276..9cb8d97393a 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -698,25 +698,34 @@ void setUserConstraint(TransInfo *t, int mode, const char ftext[])
   const char *spacename = transform_orientations_spacename_get(t, orientation);
   BLI_snprintf(text, sizeof(text), ftext, spacename);
 
-  switch (orientation) {
-    case V3D_ORIENT_LOCAL:
-      setLocalConstraint(t, mode, text);
-      break;
-    case V3D_ORIENT_NORMAL:
-      if (checkUseAxisMatrix(t)) {
-        setAxisMatrixConstraint(t, mode, text);
+  if (t->modifiers & (MOD_CONSTRAINT_SELECT | MOD_CONSTRAINT_PLANE)) {
+    /* Force the orientation of the active object.
+     * Although possible, it is not convenient to use the local or axis constraint
+     * with the modifier to select constraint.
+     * This also follows the convention of older versions. */
+    setConstraint(t, mode, text);
+  }
+  else {
+    switch (orientation) {
+      case V3D_ORIENT_LOCAL:
+        setLocalConstraint(t, mode, text);
+        break;
+      case V3D_ORIENT_NORMAL:
+        if (checkUseAxisMatrix(t)) {
+          setAxisMatrixConstraint(t, mode, text);
+          break;
+        }
+        ATTR_FALLTHROUGH;
+      case V3D_ORIENT_GLOBAL:
+      case V3D_ORIENT_VIEW:
+      case V3D_ORIENT_CURSOR:
+      case V3D_ORIENT_GIMBAL:
+      case V3D_ORIENT_CUSTOM_MATRIX:
+      case V3D_ORIENT_CUSTOM:
+      default: {
+        setConstraint(t, mode, text);
         break;
       }
-      ATTR_FALLTHROUGH;
-    case V3D_ORIENT_GLOBAL:
-    case V3D_ORIENT_VIEW:
-    case V3D_ORIENT_CURSOR:
-    case V3D_ORIENT_GIMBAL:
-    case V3D_ORIENT_CUSTOM_MATRIX:
-    case V3D_ORIENT_CUSTOM:
-    default: {
-      setConstraint(t, mode, text);
-      break;
     }
   }
   t->con.mode |= CON_USER;



More information about the Bf-blender-cvs mailing list