Hi
Steve,
1) Not sure what your implementation is (if it works, it works). I figure the bone is just a vector, you just change this vector by moving the endpoint like you do anything else in the workspace. This way it follows exactly where the user wants it to go. Some extra code would probably have to be used to make its Y-axis orientation (or roll) similar to its parent.
Related to #3, the Add Bone tool will also need to be able to make free-floating bones. So clicking and dragging in space will make the offset bones, or clicking and dragging from the endpoint of an existing bone will set its origin at that bone's endpoint. Also, there's no longer any need for a "root" bone. Rather, you can keep this root bone internally and hidden (or just call it the origin) if it makes it easier.
I think the way to define added bones' parents would be, if a bone was selected at the time of the adding bone action, it automatically becomes the parent of the new bone. If no bone was selected, the new bone's parent would be the "root". If multiple bones were selected, I suppose the parent of the new bone would still be the root until the user sets it otherwise.
2) Great! This is actually what I thought you'd do for Fast Select with all the tools.
3) As for the parent/child relationships, I kind of clipped it at the end of the video, it shows it for a split second. That program simply has a line with an arrow that points from the child bone to the parent bone. But I think Blender's method is better, where it shows a dashed line running from the child bone's origin to the parent bone's endpoint.
Anime Studio Pro
Blender
A parenting tool would make things a lot easier (call it, say, Set Parent). When enabled you can click and drag from child bone to parent bone to set it. And of course, it can be changed in the bone properties dialog box (drop down menu would be easiest).
--
Re
nemyax's post, it'd also be good to be able to set the bone's rotation, scale, and location without affecting its children, possibly by holding shift or control