summaryrefslogtreecommitdiff
path: root/src/tesseract/objects
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2011-02-12 18:57:14 +0000
committerJesse Morgan <jesse@jesterpm.net>2011-02-12 18:57:14 +0000
commitc663dffc86a7fcec9f05aaf8a107e6200a35c2fa (patch)
tree4642d001dddf0042854c77cafd245b37cb9062ee /src/tesseract/objects
parent354a7aa455a016ac179d7f027014e6b9c2a2433a (diff)
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.
Diffstat (limited to 'src/tesseract/objects')
-rw-r--r--src/tesseract/objects/HalfSpace.java17
-rw-r--r--src/tesseract/objects/PhysicalObject.java5
-rw-r--r--src/tesseract/objects/emitters/ParticleEmitter.java1
3 files changed, 22 insertions, 1 deletions
diff --git a/src/tesseract/objects/HalfSpace.java b/src/tesseract/objects/HalfSpace.java
new file mode 100644
index 0000000..df3f715
--- /dev/null
+++ b/src/tesseract/objects/HalfSpace.java
@@ -0,0 +1,17 @@
+package tesseract.objects;
+
+import javax.vecmath.Vector3f;
+
+public class HalfSpace extends PhysicalObject {
+ public Vector3f normal;
+ // Right-hand side of the plane equation: Ax + By + Cz = D
+ public float intercept;
+
+ public HalfSpace(Vector3f position, Vector3f normal) {
+ super(position, Float.POSITIVE_INFINITY);
+
+ this.normal = new Vector3f(normal);
+ this.normal.normalize();
+ this.intercept = this.normal.dot(position);
+ }
+}
diff --git a/src/tesseract/objects/PhysicalObject.java b/src/tesseract/objects/PhysicalObject.java
index 2634ca2..73e0c91 100644
--- a/src/tesseract/objects/PhysicalObject.java
+++ b/src/tesseract/objects/PhysicalObject.java
@@ -22,9 +22,12 @@ import com.sun.j3d.utils.geometry.Primitive;
* @author Jesse Morgan
*/
public class PhysicalObject extends CollidableObject {
+ protected boolean collidable;
+
public PhysicalObject(final Vector3f thePosition, final float mass) {
super(mass);
this.position.set(thePosition);
+ collidable = true;
}
public List<PhysicalObject> spawnChildren(final float duration) {
@@ -67,7 +70,7 @@ public class PhysicalObject extends CollidableObject {
}
public void resolveCollisions(final PhysicalObject other) {
- if (this.node != null && other.node != null) {
+ if (collidable && other.collidable) {
super.resolveCollisions(other);
}
}
diff --git a/src/tesseract/objects/emitters/ParticleEmitter.java b/src/tesseract/objects/emitters/ParticleEmitter.java
index 5aa391a..15c94a9 100644
--- a/src/tesseract/objects/emitters/ParticleEmitter.java
+++ b/src/tesseract/objects/emitters/ParticleEmitter.java
@@ -43,6 +43,7 @@ public class ParticleEmitter extends PhysicalObject {
final Color3f color) {
super(position, Float.POSITIVE_INFINITY);
+ this.collidable = false;
myCount = 0;
myFrequency = frequency;