Tonight I spent some time setting up the preliminary classes I’ll need for a
skeletal animation system. It’s all quite straight forward stuff, but just as a reference I have been using this excellent tutorial.
In the same vein, I also stumbled across some C# code for various types of 2D two-bone inverse kinematics solvers. The 2D IK problem is simple enough for two bones that one can solve it analytically and come up with a pretty fast solution (certainly faster than cyclic coordinate descent, which is pretty fast). I had planned on implementing either CCD or trying to do a Jacobian Transpose IK, but I think this should be sufficient for my needs, and the license is very liberal (free to use for commercial, just retain the license and a note attributing the author – nice).
Anyway, after setting up the classes for the skeletal animation and getting those compiling okay, I decided to go ahead and start dealing with the picking code. Of course, this led to using the ShivaVG functions for getting the bounds of a path. After setting it all up I was getting some odd results, so I eventually futzed around with the bounds calculation and eventually got it all sorted out.