I recently dealt with a similar problem.  I found that I received
non-congruent transform exceptions when I set the transform3D to a
rotation of zero about any axis.  In code, this would look like:

        Transform3D t=new Transform3D();

        t.rotX(0);
                or
        t.rotY(0);
                or
        t.rotZ(0);

        Any one of these seems to produce 'bad' results.  I can't
charaterize the problem better because I don't really understand
it.  However, you might check your code and check any cases where you
might rotate by zero.  Once I ensured I wasn't rotating by zero, the
problem vanished.  Hope this helps.

        DereK

On Thu, 1 Jun 2000, Syrus Mesdaghi wrote:

> Hello everyone,
>
> I've been having difficulty writing Behaviors that Manipulate the View's Transform. 
>I use such behaviors extensively in order to manage the camera's movement in our 
>games that are written for one of our Java3D based Engines. The problem is that if I 
>run some of my demos for a little while, eventually the engine crashes and I get the 
>following error:
>
> Exception occurred during Behavior execution:
> javax.media.j3d.BadTransformException: non-congruent transform above ViewPlatform
> at 
>javax.media.j3d.TransformGroupRetained.setTransform(TransformGroupRetained.java:118)
> at javax.media.j3d.TransformGroup.setTransform(TransformGroup.java:111)
>
> As I mentioned can happen at any point. As a matter of fact, some of my demos can 
>run perfectly without any problem. I have noticed that this occurs when the camera 
>transform is rotating. For this matter, I left a small chance that the difficulty is 
>related to floating point miscalculations. I finally got the chance to try to 
>troubleshoot this problem and after testing many different cases, I realize that in 
>some cases, there can be a Matrix4f that can be applied to an object without any 
>difficulty, but when the very same Matrix (4f) is applied to the View Platform, the 
>exception is thrown. In order to illustrate this scenario, I have implemented a 
>sample app named TestUniverse that can apply a matrix to an Object's transform, or 
>the ViewPlatform's transform. Pressing the key "S" cause the app to set the object's 
>transform, and "C" cause the app to the   ViewPlatform's transform. As you will be 
>able to see, only the second scenario causes an exception to be thrown.
>
> In order to get a Matrix with these special values, I ran one of my demos for about 
>5 min and recorded the transform's data that cause the Engine to crash. Here is the 
>transform:
>
>
>
> 1.0,    0.0,                                 0.0,                                  0
> 0.0,    0.20792245864868164, 0.9781964421272278,    0
> 0.0,   -0.9781964421272278,   0.20792245864868164,  0
> 0.0,    0.0,                                 0.0,                                  
>1.0
>
> If the above data reveal an obvious problem, please let me know what is going on. If 
>the problem is not too obvious, you should run the attached app.
>
> Please let me know if this is a BUG (or maybe floating point miscalculation, or 
>....). We are intending to show some of our student's projects at E3, so this problem 
>has the highest priority on my list.
>
> I thank you in advanced, Take Care,
>
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
>- - -
> Syrus Mesdaghi               Full Sail Real World Education
> 3D Gaming Instructor       3300 University BLVD
> [EMAIL PROTECTED]     Winter Park FL 32792
>                                          http://www.fullsail.com
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
>- - -
>
>
>
>

===========================================================================
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