Maniphest T23954

Bone roll keeps changing when switching between EDIT <-> OBJECT mode
Closed, Resolved

Assigned To
Campbell Barton (campbellbarton)
Authored By
Tim Baker (tim_baker)
Sep 22 2010, 10:09 PM
Tags
  • BF Blender
Subscribers
Campbell Barton (campbellbarton)
Tim Baker (tim_baker)

Description

Seen in current beta as well as SVN r32066 (Win32).

In the attached .blend file take note of the bone roll for the selected bone 'Bip01_l_toe2'. Now tab repeated between OBJECT and EDIT modes and watch the bone roll change to some seemingly random value.

You can set the bone roll to '0' or any other value and it behaves the same when tabbing. The matching bone on the other foot 'Bip01_r_toe2' behaves the same.
None of the other bones I checked had this behaviour.

Event Timeline

Tim Baker (tim_baker) edited a custom field.Sep 22 2010, 10:09 PM
Tim Baker (tim_baker) attached 1 file(s): F13325: dreadnought.blend.
Tim Baker (tim_baker) added a comment.Sep 23 2010, 2:31 AM

Tracked down the cause but not sure what the proper solution is. In armature.c it seems the 0.0000000000001 is too strict,
maybe use FLT_EPSILON instead?

void vec_roll_to_mat3(float *vec, float roll, float mat[][3])
{
normalize_v3_v3(nor, vec);
cross_v3_v3v3(axis,target,nor);
if (dot_v3v3(axis,axis) > 0.0000000000001) {

Campbell Barton (campbellbarton) added a comment.Sep 23 2010, 3:49 AM

tested with a lower epsilon value, 0.00001 is stable.
fixed in svn r32067.

Campbell Barton (campbellbarton) changed the task status from Unknown Status to Resolved.Sep 23 2010, 3:49 AM