[Bf-blender-cvs] [f72acc3] master: Transform: remove recently added ival2, use editbones temp data

Campbell Barton noreply at git.blender.org
Wed Feb 26 23:48:30 CET 2014


Commit: f72acc38ddfb73a7412b0f819135fd02326cbfb6
Author: Campbell Barton
Date:   Thu Feb 27 09:47:37 2014 +1100
https://developer.blender.org/rBf72acc38ddfb73a7412b0f819135fd02326cbfb6

Transform: remove recently added ival2, use editbones temp data

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

M	source/blender/editors/include/ED_armature.h
M	source/blender/editors/transform/transform.h
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_generics.c

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

diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h
index dea4b24..b78fa4f 100644
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@ -59,7 +59,10 @@ typedef struct EditBone {
 	struct EditBone *parent; /* Editbones have a one-way link  (i.e. children refer
 	                          * to parents.  This is converted to a two-way link for
 	                          * normal bones when leaving editmode. */
-	void    *temp;          /* Used to store temporary data */
+	union {                  /* Used to store temporary data */
+		void    *temp;
+		float    temp_f;
+	};
 
 	char    name[64];       /* MAXBONENAME */
 	float   roll;           /* Roll along axis.  We'll ultimately use the axis/angle method
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index f262bac..d1085cf 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -258,7 +258,6 @@ typedef struct TransData {
 	float  iloc[3];      /* Initial location                                                               */
 	float *val;          /* Value pointer for special transforms */
 	float  ival;         /* Old value */
-	float  ival2;        /* Another old value (for bone roll we need two different "old values" :/ ). */
 	float  center[3];	 /* Individual data center                                                         */
 	float  mtx[3][3];    /* Transformation matrix from data space to global space                          */
 	float  smtx[3][3];   /* Transformation matrix from global space to data space                          */
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 0e2bdc1..91bac74 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -1074,12 +1074,12 @@ static void createTransArmatureVerts_init_roll_fix(TransData *td, EditBone *ebo)
 
 	if (fabsf(dot_v3v3(vec, z_axis)) > 0.999999f) {
 		/* If nearly aligned with Z axis, do not alter roll. See T38843. */
-		td->ival = ebo->roll;
+		ebo->temp_f = ebo->roll;
 	}
 	else {
-		td->ival = ebo->roll - ED_rollBoneToVector(ebo, z_axis, false);
+		ebo->temp_f = ebo->roll - ED_rollBoneToVector(ebo, z_axis, false);
 	}
-	td->ival2 = ebo->roll;
+	td->ival = ebo->roll;
 }
 
 static void createTransArmatureVerts(TransInfo *t)
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 7b4f0b8..4e93d3a 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -823,10 +823,10 @@ static void recalcData_objects(TransInfo *t)
 
 						if (fabsf(dot_v3v3(vec, z_axis)) > 0.999999f) {
 							/* If our bone is Z-aligned, do not alter roll. See T38843. */
-							ebo->roll = td->ival2;
+							ebo->roll = td->ival;
 						}
 						else {
-							ebo->roll = td->ival + ED_rollBoneToVector(ebo, z_axis, false);
+							ebo->roll = ebo->temp_f + ED_rollBoneToVector(ebo, z_axis, false);
 						}
 					}
 				}




More information about the Bf-blender-cvs mailing list