The added functionality was from a request from a rigger friend of mine. As a rigger, he and most other riggers he works with find that usually when you display axis, you expect them to be at the root of the bone (like you'd expect the axis to be at the origin of an object) vs the tip. However, there was a concern that having the axis at the root of the bone would get hidden in areas where there are plenty of other bones in the same area. So, the proposed fix is to have the axis be able to be moved from the root to tip of the bone and leave the positioning up to the rigger.
There's still some questions I'd like to answer before I'd consider this diff ready for integration
- I see that the name of the axis for the bone is called axes. I'm guessing this should really be axis? If so, this can be changed (and possibly the other one changed as another diff later).
- I have a linear interpolation function. I see that there's bilinear interpolation functions in the code already, but no linear interpolations. So, without knowing exactly where to put the function/if the function is redundant, I've put it with my function (but needs to be moved or replaced).
- I'm not sure if I should be changing the axis drawing matrix in the draw_axes function or somewhere else. If here, then I need to make sure I handle the axis for custom bone shapes.
- The axis offset (name feels wrong... I'll gladly take suggestions for a better one) is part of the armature currently. This feels like it needs to be part of somewhere else, but I'm not sure where to put it.
Right now, - Currently the axis does not draw over top of the bonethe axis position is in the same UI as the show axis property. I'm assuming that a rigger will always want to see the axis above the boneFrom my understanding, so this needit sounds like the UI team wants to be fixed (not sure how).
keep those two elements close together. - I think the default should be that the axis is at the root (0.0)Also, but for backwards compatibilitythe current default is the root, 1.0 makes sensebut I have it set to the tip (I think). If 1.0 is chosenI'll need some help with setting what is the default in code, then I'll need to make it so previously saved scenes use 1.0 as the default.
and which default is preferred (root or tip).