Thanks very much Paul. A description which actually relates to what a singular matrix does! Perfect, just what I needed. I think I've solved the problem now.
> I hope I don't tell bullshit, but in simple words it means that your matrix > degenerates. Think of matrices as description of linear transformations - in this > case from 3d space R1 -> 3d space R2. If it is not a singular matrix every point from > R1 has exactly one corresponding point in R2, thus you can invert the transformation. > > If it is a singular matrix the defined transformation is no longer a transformation > from 3d space -> 3d space but -> 2d , 1d or 0d space - the latter if all all points > from R1 are transformed to (0,0,0). In this case the inverse transformation of a > point of R2 is not unique any more, or there will be no corresponding point in R1 > (since you loose one or more dimensions). > > The above applies of course to for quadratical matrices of other dimensions also. > > Hope that helps. > > regards > Paul > > Mark Crompton schrieb: > > > Hi all, > > > > I'm currently trying to add collision detection to my > Java3D project, a > > little Lego editor. When the user picks a 'brick' to move, > I add a behavior > > with a WakeupOnCollision tied to the brick's branch group. > As soon as I do > > this I get the exception below. > > > > Can anyone shed any light on what causes a > SingularMatrixException? I've > > had a look at http://mathworld.wolfram.com/SingularMatrix.html, but am still > none the wiser. > > javax.vecmath.SingularMatrixException: cannot invert matrix > at javax.media.j3d.Transform3D.invertAffine(Transform3D.java:2826) > at javax.media.j3d.Transform3D.invert(Transform3D.java:2682) > at javax.media.j3d.GeometryRetained.intersect(GeometryRetained.java:252) > at > javax.media.j3d.Shape3DRetained.intersectGeometryList(Shape3DRetained.java:2 > 062) > at javax.media.j3d.BHTree.doSelectAny(BHTree.java:362) > at javax.media.j3d.BHTree.doSelectAny(BHTree.java:385) > at javax.media.j3d.BHTree.doSelectAny(BHTree.java:385) > at javax.media.j3d.BHTree.doSelectAny(BHTree.java:385) > at javax.media.j3d.BHTree.doSelectAny(BHTree.java:385) > at javax.media.j3d.BHTree.doSelectAny(BHTree.java:392) > at javax.media.j3d.BHTree.selectAny(BHTree.java:344) > at javax.media.j3d.GeometryStructure.collide(GeometryStructure.java:1044) > at > javax.media.j3d.GeometryStructure.addWakeupOnCollision(GeometryStructure.jav > a:748) > at > javax.media.j3d.WakeupOnCollisionEntry.addBehaviorCondition(WakeupOnCollisio > nEntry.java:337) > at javax.media.j3d.WakeupCriterion.buildTree(WakeupCriterion.java:67) > at > javax.media.j3d.BehaviorStructure.activateBehaviors(BehaviorStructure.java:3 > 45) > at > javax.media.j3d.BehaviorStructure.processMessages(BehaviorStructure.java:210 > ) > at > javax.media.j3d.StructureUpdateThread.doWork(StructureUpdateThread.java:83) > at javax.media.j3d.J3dThread.run(J3dThread.java:256) > > Thanks, > Mark Crompton > > http://sourceforge.net/projects/jlug > > =========================================================================== > 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". =========================================================================== 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".