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".

Reply via email to