summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2011-03-17 06:26:03 +0000
committerJesse Morgan <jesse@jesterpm.net>2011-03-17 06:26:03 +0000
commit696b37427eb77787e7c740e4c593a6bb3f9f3c02 (patch)
treefec65b11ac07e38fd86dcb917e892ec698c84316
parenta1ff4ed304654dc15674539556ab23457c2c22cd (diff)
Fixed a bug from class.
-rw-r--r--src/common/CollisionDetector.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/common/CollisionDetector.java b/src/common/CollisionDetector.java
index a4c7b53..f193a29 100644
--- a/src/common/CollisionDetector.java
+++ b/src/common/CollisionDetector.java
@@ -18,6 +18,7 @@ import javax.media.j3d.TriangleFanArray;
import javax.media.j3d.TriangleStripArray;
import javax.vecmath.Matrix3f;
import javax.vecmath.Point3f;
+import javax.vecmath.SingularMatrixException;
import javax.vecmath.Tuple3f;
import javax.vecmath.Vector3f;
@@ -387,7 +388,11 @@ public class CollisionDetector {
Matrix3f tmp = new Matrix3f(a.previousPosition.x - a.position.x, triangle.b.x - triangle.a.x, triangle.c.x - triangle.a.x,
a.previousPosition.y - a.position.y, triangle.b.y - triangle.a.y, triangle.c.y - triangle.a.y,
a.previousPosition.z - a.position.z, triangle.b.z - triangle.a.z, triangle.c.z - triangle.a.z);
- tmp.invert();
+ try {
+ tmp.invert();
+ } catch (SingularMatrixException e) {
+ return EMPTY_COLLISION_LIST;
+ }
Vector3f intercept = new Vector3f();
intercept.scaleAdd(-1, triangle.a, a.previousPosition);
tmp.transform(intercept);