diff options
author | Joshua Leung <aligorith@gmail.com> | 2013-01-24 06:52:03 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2013-01-24 06:52:03 +0400 |
commit | aea3545973d65a8c65771c76ddd7945afffa0da2 (patch) | |
tree | be3af8df1f4235e339e1583b1d8a5bb0fc847c13 /source/blender | |
parent | 936b82802a6fb987876518a48c4e7602cc5d7634 (diff) |
Bugfix [#33974] Bone roll flips 180 degrees when extruding bones vertically
For example, if you're making a chain of bones (e.g. for a spine) by extruding
the tip joint of an initial bone, the bone rolls would be: 0 (for the initial
bone), 180, -180, 180, -180, etc. This has the undesirable effect of causing
B-Bones to twist to match the roll values at the other end of the bone.
The fix here seems to improve the situation in this case: bone roll values don't
flip or change anymore (in fact, the bone axes stay perfectly aligned now, as
they should). It also doesn't seem to cause any problems in other common cases I
checked.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/armature/editarmature.c | 2 | ||||
-rw-r--r-- | source/blender/editors/transform/transform_generics.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 4a15d73c064..ca2fe48543a 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -2002,7 +2002,7 @@ float ED_rollBoneToVector(EditBone *bone, const float align_axis[3], const short sub_v3_v3v3(nor, bone->tail, bone->head); vec_roll_to_mat3(nor, 0.0f, mat); - + /* check the bone isn't aligned with the axis */ if (!is_zero_v3(align_axis) && angle_v3v3(align_axis, mat[2]) > FLT_EPSILON) { float vec[3], align_axis_proj[3], roll; diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index d56bb5cb7ef..ef775ae3128 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -819,7 +819,7 @@ static void recalcData_view3d(TransInfo *t) mul_m3_v3(t->mat, up_axis); } - ebo->roll = ED_rollBoneToVector(ebo, up_axis, FALSE); + ebo->roll = ED_rollBoneToVector(ebo, up_axis, TRUE); } } } |