A bug that I first noticed with Java3D 1.1.3 is still present in Java3D
1.3b1. When manipulating Transform3Ds above the ViewPlatform, using
Transform3D.setRotation( Quat4d ) can produce the following error while
Transform3D.setRotation( AxisAngle4d ) does not.
javax.media.j3d.BadTransformException: non-congruent transform above
ViewPlatform
at
javax.media.j3d.TransformGroupRetained.setTransform(TransformGroupRetained.j
ava:138)
at
javax.media.j3d.TransformGroup.setTransform(TransformGroup.java:111)
at orbiter.OrbiterViewer$1.processStimulus(OrbiterViewer.java:75)
at
javax.media.j3d.BehaviorScheduler.doWork(BehaviorScheduler.java:174)
at javax.media.j3d.J3dThread.run(J3dThread.java:256)
Surely this shouldn't be. Sun Programmers, can you determine what the
problem might be? I should think that this is enough information but to give
you a bit more context, here is the method in question:
protected void placeViewer(){
boolean useQuat = true;
Transform3D T = new Transform3D();
mySphereTG.getTransform( T );
Quat4d quat = new Quat4d();
T.get( quat );
quat.inverse();
viewerTG.getTransform( T );
if( useQuat ){
T.setRotation( quat );//sometimes crash
}else{
AxisAngle4d aa = new AxisAngle4d();
aa.set( quat );
T.setRotation( aa );
}
viewerTG.setTransform( T );
}
Thanks,
Raffi
===========================================================================
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".