From aea3545973d65a8c65771c76ddd7945afffa0da2 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 24 Jan 2013 02:52:03 +0000 Subject: 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. --- source/blender/editors/armature/editarmature.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/blender/editors/armature/editarmature.c') 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; -- cgit v1.2.3