Thy the code below. You will see that setting a translation makes the rotation values wrong. Translation values are not even present in a Matrix3d, so how can this be??
Try comment the "t.set(new Vector3d(10,0,10));" line out, and observe the different result.
import javax.media.j3d.*; import javax.vecmath.*;
public class RotationTest {
public RotationTest() { }
public static void main(String[] args) { Transform3D t= new Transform3D(); Matrix3d rotationScale = new Matrix3d(); AxisAngle4d rotation = new AxisAngle4d(0, -1, 0, Math.PI/2); System.out.println(rotation); t.set(new Vector3d(10,0,10)); t.setRotation(rotation); t.setScale(0.5d); t.getRotationScale(rotationScale); rotation.set(rotationScale); System.out.println(rotation); } }
Test result: (0.0, -1.0, 0.0, 1.5707963267948966) (0.0, -1.0, 0.0, 2.0344438552856445)
Any workaround will be appreciated
Regards Nikolai
---------------------------------------------- Nikolai V. Christensen, Computer Engineer, Simulation and Training department IFAD, Forskerparken 10A, DK-5230 Odense M Denmark, EU Phone: +45 63 15 71 31 Fax: +45 65 93 29 99 WWWeb: http://www.ifad.dk e-mail: [EMAIL PROTECTED] ----------------------------------------------
=========================================================================== 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".