Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-02-27 02:47:37 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-02-27 02:47:37 +0400
commitf72acc38ddfb73a7412b0f819135fd02326cbfb6 (patch)
tree9b1e72990ab84f6025cd34f58f2581d79d89dbaf /source
parent8af2ed80a4bfa356ee19e74dc66cc20bb203e82e (diff)
Transform: remove recently added ival2, use editbones temp data
Diffstat (limited to 'source')
-rw-r--r--source/blender/editors/include/ED_armature.h5
-rw-r--r--source/blender/editors/transform/transform.h1
-rw-r--r--source/blender/editors/transform/transform_conversions.c6
-rw-r--r--source/blender/editors/transform/transform_generics.c4
4 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h
index dea4b2448ff..b78fa4ffdfb 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 f262bac9762..d1085cf9933 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 0e2bdc11e47..91bac74e8e6 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 7b4f0b8eca3..4e93d3a89a3 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);
}
}
}