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