Here is a control to rotate Object3Ds as if touching a trackball. The location on the model clicked on by the pointer stays under the moving pointer. Feels good on a touchscreen.
Wrote it to help me understand 3D rotations. Perhaps some other noob will excavate a useful code snippet from this (or be misled with bad practices =)
Also FYI, excellent discussion/examples of 3D rotation approaches here: