Hi Jim,
I don't have time tonight to dig into your code in detail,
but perhaps you can make use of the static method of
visad.java3d.MouseBehaviorJ3D:
public static void unmake_matrix(double[] rot, double[] scale,
double[] trans, double[] matrix);
The input is the 4x4 'double matrix[16]', the output is
'double rot[3]' of x, y and z rotations, 'double scale[1]'
of a scale, and 'double trans[3]' of x, y and z translations.
Note you must pass empty arrays in for these outputs. If
this doesn't help you solve your problem, please let me know.
Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI 53706
hibbard@xxxxxxxxxxxxxxxxx 608-263-4427 fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html