I have the following lines of code in my program:
System.out.println("X: "+hx+" Y: "+hy+" Z: "+hz);
v = new Quat4d(hx, hy, hz, 0.0);
System.out.println("i: "+i+" v: "+v);
which prints out:
X: 3.0 Y: 0.0 Z: 15.0
i: 0 v: (0.19611613513818402, 0.0, 0.9805806756909201, 0.0)
Why is the quaternion new Quat4d(hx, hy, hz, 0.0) being normalized? I
didn't ask to have the quaternion normalized. It should have printed:
X: 3.0 Y: 0.0 Z: 15.0
i: 0 v: (3.0, 0.0, 15.0, 0.0)
This also happens with Quat4f(hx, hy, hz, 0.0f).
Is this a known bug?
Now, everywhere I use a quaternion, I have to put something like:
System.out.println("X: "+hx+" Y: "+hy+" Z: "+hz);
double length = Math.sqrt(hx*hx + hy*hy + hz*hz);
v = new Quat4d(hx, hy, hz, 0.0);
v.normalize(); // So I *know* I have a normalized quaternion
v.scale(length); // even though I don't want one.
System.out.println("i: "+i+" v: "+v);
to get the quaternion's components to have the correct values.
X: 3.0 Y: 0.0 Z: 15.0
i: 0 v: (3.000000000000001, 0.0, 15.000000000000004, 0.0)
What a pain.
Bob Gray
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".