[Bf-blender-cvs] [1572c4d3d33] blender-v3.0-release: Fix T93011: Individual origins being used when pivot point is override

Germano Cavalcante noreply at git.blender.org
Tue Nov 16 17:59:18 CET 2021


Commit: 1572c4d3d3317209bb846ca2d05cafeed06d1ead
Author: Germano Cavalcante
Date:   Tue Nov 16 13:50:05 2021 -0300
Branches: blender-v3.0-release
https://developer.blender.org/rB1572c4d3d3317209bb846ca2d05cafeed06d1ead

Fix T93011: Individual origins being used when pivot point is override

There should be a special `t->around` for this case, but for now let's
just avoid having the individual origins overlap.

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

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

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

diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 2fab22594e8..4194fb2a0ad 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -152,6 +152,11 @@ static void *t_view_get(TransInfo *t)
 
 static int t_around_get(TransInfo *t)
 {
+  if (t->flag & T_OVERRIDE_CENTER) {
+    /* Avoid initialization of individual origins (#V3D_AROUND_LOCAL_ORIGINS). */
+    return V3D_AROUND_CENTER_BOUNDS;
+  }
+
   ScrArea *area = t->area;
   if (t->spacetype == SPACE_VIEW3D) {
     /* Bend always uses the cursor. */
@@ -364,6 +369,15 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
     t->options |= CTX_SEQUENCER_IMAGE;
   }
 
+  setTransformViewAspect(t, t->aspect);
+
+  if (op && (prop = RNA_struct_find_property(op->ptr, "center_override")) &&
+      RNA_property_is_set(op->ptr, prop)) {
+    RNA_property_float_get_array(op->ptr, prop, t->center_global);
+    mul_v3_v3(t->center_global, t->aspect);
+    t->flag |= T_OVERRIDE_CENTER;
+  }
+
   t->view = t_view_get(t);
   t->around = t_around_get(t);
 
@@ -664,15 +678,6 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
     t->flag |= T_NO_CURSOR_WRAP;
   }
 
-  setTransformViewAspect(t, t->aspect);
-
-  if (op && (prop = RNA_struct_find_property(op->ptr, "center_override")) &&
-      RNA_property_is_set(op->ptr, prop)) {
-    RNA_property_float_get_array(op->ptr, prop, t->center_global);
-    mul_v3_v3(t->center_global, t->aspect);
-    t->flag |= T_OVERRIDE_CENTER;
-  }
-
   setTransformViewMatrices(t);
   initNumInput(&t->num);
 }



More information about the Bf-blender-cvs mailing list