From c663dffc86a7fcec9f05aaf8a107e6200a35c2fa Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 12 Feb 2011 18:57:14 +0000 Subject: Added HalfSpaces to the bounds. Fixed collisions and particle emitters. Corrected typo in PlanarPolygonMenuItem. Added removeForce() to world and cleaned up the force adding/removing. --- src/alden/CollisionDetector.java | 28 +++++++++++++++++++++++----- src/alden/HalfSpace.java | 28 ---------------------------- 2 files changed, 23 insertions(+), 33 deletions(-) delete mode 100644 src/alden/HalfSpace.java (limited to 'src/alden') diff --git a/src/alden/CollisionDetector.java b/src/alden/CollisionDetector.java index f05e9b8..bb7817c 100644 --- a/src/alden/CollisionDetector.java +++ b/src/alden/CollisionDetector.java @@ -1,9 +1,27 @@ package alden; -import com.sun.j3d.utils.geometry.*; -import java.util.*; +import java.util.ArrayList; -import javax.media.j3d.*; -import javax.vecmath.*; +import javax.media.j3d.Appearance; +import javax.media.j3d.Geometry; +import javax.media.j3d.GeometryArray; +import javax.media.j3d.Group; +import javax.media.j3d.IndexedTriangleArray; +import javax.media.j3d.IndexedTriangleFanArray; +import javax.media.j3d.IndexedTriangleStripArray; +import javax.media.j3d.Node; +import javax.media.j3d.PolygonAttributes; +import javax.media.j3d.Shape3D; +import javax.media.j3d.Transform3D; +import javax.media.j3d.TriangleArray; +import javax.media.j3d.TriangleFanArray; +import javax.media.j3d.TriangleStripArray; +import javax.vecmath.Point3f; +import javax.vecmath.Tuple3f; +import javax.vecmath.Vector3f; + +import tesseract.objects.HalfSpace; + +import com.sun.j3d.utils.geometry.Primitive; @SuppressWarnings("restriction") public class CollisionDetector { @@ -325,7 +343,7 @@ public class CollisionDetector { for (int i = 0; i < group.numChildren(); i++) extractVertices(group.getChild(i), vertices); } else - throw new IllegalArgumentException("Illegal node type for vertex extraction"); + throw new IllegalArgumentException("Illegal node type for vertex extraction "); } private static void extractVertices(Geometry geometry, Transform3D transform, ArrayList vertices) { diff --git a/src/alden/HalfSpace.java b/src/alden/HalfSpace.java deleted file mode 100644 index 6e414fb..0000000 --- a/src/alden/HalfSpace.java +++ /dev/null @@ -1,28 +0,0 @@ -package alden; - -import javax.vecmath.Vector3f; - -@SuppressWarnings("restriction") -public class HalfSpace extends CollidableObject { - protected Vector3f normal; - // Right-hand side of the plane equation: Ax + By + Cz = D - protected float intercept; - - public HalfSpace(Vector3f position, Vector3f normal) { - super(Float.POSITIVE_INFINITY); - this.position.set(position); - this.normal = new Vector3f(normal); - this.normal.normalize(); - intercept = this.normal.dot(position); - } - -/* public CollisionInfo calculateCollision(Particle particle) { - if (Math.signum(normal.dot(particle.getPosition()) - intercept) == Math.signum(normal.dot(particle.getPreviousPosition()) - intercept)) - return null; - - Vector3f projection = new Vector3f(); - projection.scaleAdd(-1, position, particle.getPosition()); - float penetration = -projection.dot(normal); - return new CollisionInfo(normal, penetration); - }*/ -} -- cgit v1.2.3