Log In
New Account
Home My Page Projects Blender 2.x BF release
Summary Activity Tracker SCM Files

Blender 2.6 Bug Tracker: Browse

[#26089] editbone.transfrom() seems to mess up bone roll (by more than float precision error)

Date:
2011-02-15 05:24
Priority:
3
State:
Closed
Submitted by:
bassam kurdali (bassamk)
Assigned to:
Campbell Barton (campbellbarton)
Category:
Python
Status:
Fixed / Closed
Relates to:
Duplicates:
Patches:
 
Summary:
editbone.transfrom() seems to mess up bone roll (by more than float precision error)
Detailed description
editbone.transform(matrix) followed by editbone.transform(inverse of matrix) should get us back to the same head/tail/roll we were at in the beginning (minus tiny float errors). When I was trying to use it, I wasn't understanding the results - If I'm not just barking up the wrong tree, the roll is getting handled incorrectly.

Attached is a blend file that attempts this , print()s in the scripts show the discrepancy. If I did something stupid, sorry for the waste of time ;)
When I run the script I get:

oldroll= -0.494820386171
newroll= 0.750505387783
difference= 1.24532577395


running blender on GNU/Linux, 64 bit/intel (Ubuntu 10.10)

Followup

Message
  • Date: 2011-02-21 02:31
  • Sender: Campbell Barton
  • The roll needs to be changed to so it is the same relative to the head/tail, however I can see it may not be what you want. added a keyword argument, r35008.
    ebone.transform(matrix, scale=True, roll=True)

    also double checked the bones roll is being transformed correctly.
 

Attached Files:

Name Date Download
transfrom.blend 2011-02-15 05:24 Download

Changes:

Field Old Value Date By
status_idOpen2011-02-21 02:31campbellbarton
close_dateNone2011-02-21 02:31campbellbarton
StatusNew2011-02-21 02:31campbellbarton
assigned_tonone2011-02-15 11:19campbellbarton
File Added15026: transfrom.blend2011-02-15 05:24bassamk