From 354041e8d61571b25c6eeb672537a013d3e0fa60 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Fri, 11 Feb 2011 18:53:32 +0000 Subject: Broke the grabbing code but added Alden's collision code. Not sure if its working yet since my Mac doesn't like it. --- src/alden/HalfSpace.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/alden/HalfSpace.java (limited to 'src/alden/HalfSpace.java') diff --git a/src/alden/HalfSpace.java b/src/alden/HalfSpace.java new file mode 100644 index 0000000..efab5ea --- /dev/null +++ b/src/alden/HalfSpace.java @@ -0,0 +1,28 @@ +package alden; +import javax.media.j3d.*; +import javax.vecmath.*; + +@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