[Bf-blender-cvs] [a0a09d1] master: Fix T37757: MCE - Mask Pivot Point individual origins doesnt work

Sergey Sharybin noreply at git.blender.org
Thu Dec 12 09:37:08 CET 2013


Commit: a0a09d14233b7928418205cdcd82227823a1315e
Author: Sergey Sharybin
Date:   Thu Dec 12 14:35:37 2013 +0600
http://developer.blender.org/rBa0a09d14233b7928418205cdcd82227823a1315e

Fix T37757: MCE - Mask Pivot Point individual origins doesnt work

Simple wasn't implemented.

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

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

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

diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 2ae94fb..f0756a6 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -198,12 +198,13 @@ static void applySeqSlide(TransInfo *t, const int mval[2]);
 /* end transform callbacks */
 
 
-static bool transdata_check_local_center(TransInfo *t)
+static bool transdata_check_local_center(TransInfo *t, short around)
 {
-	return ((t->around == V3D_LOCAL) && (
+	return ((around == V3D_LOCAL) && (
 	            (t->flag & (T_OBJECT | T_POSE)) ||
 	            (t->obedit && ELEM4(t->obedit->type, OB_MESH, OB_CURVE, OB_MBALL, OB_ARMATURE)) ||
-	            (t->spacetype == SPACE_IPO))
+	            (t->spacetype == SPACE_IPO) ||
+	            (t->options & (CTX_MOVIECLIP | CTX_MASK)))
 	        );
 }
 
@@ -3138,7 +3139,7 @@ static void ElementResize(TransInfo *t, TransData *td, float mat[3][3])
 	}
 	
 	/* local constraint shouldn't alter center */
-	if (transdata_check_local_center(t)) {
+	if (transdata_check_local_center(t, t->around)) {
 		copy_v3_v3(center, td->center);
 	}
 	else if (t->options & CTX_MOVIECLIP) {
@@ -3534,9 +3535,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
 	const float *center;
 
 	/* local constraint shouldn't alter center */
-	if (transdata_check_local_center(t) ||
-	    ((around == V3D_LOCAL) && (t->options & CTX_MOVIECLIP)))
-	{
+	if (transdata_check_local_center(t, around)) {
 		center = td->center;
 	}
 	else {
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 4ee20ba..ce11400 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -6639,7 +6639,7 @@ static void MaskPointToTransData(Scene *scene, MaskSplinePoint *point,
 
 			td->flag = 0;
 			td->loc = td2d->loc;
-			copy_v3_v3(td->center, td->loc);
+			copy_v3_v3(td->center, bezt->vec[1]);
 			copy_v3_v3(td->iloc, td->loc);
 
 			memset(td->axismtx, 0, sizeof(td->axismtx));
@@ -6687,7 +6687,7 @@ static void MaskPointToTransData(Scene *scene, MaskSplinePoint *point,
 
 		td->flag = 0;
 		td->loc = td2d->loc;
-		copy_v3_v3(td->center, td->loc);
+		copy_v3_v3(td->center, bezt->vec[1]);
 		copy_v3_v3(td->iloc, td->loc);
 
 		memset(td->axismtx, 0, sizeof(td->axismtx));




More information about the Bf-blender-cvs mailing list