summaryrefslogtreecommitdiff
path: root/src/tesseract/objects/Ellipsoid.java
diff options
context:
space:
mode:
authorPhillip <pacardon@u.washington.edu>2011-02-20 22:57:16 +0000
committerPhillip <pacardon@u.washington.edu>2011-02-20 22:57:16 +0000
commit3c7f3b099198d4ea36d498c349cad80f2a6937de (patch)
treee33275370ba5cf181a86ecd894046504c368064c /src/tesseract/objects/Ellipsoid.java
parent972b0a6922d66ef28f048101e8026227a93eee36 (diff)
Fixed some checkstyle errors (added java doc)
Added new constructor to Ellipsoid.java to feed in a Mass, Radius and Position.
Diffstat (limited to 'src/tesseract/objects/Ellipsoid.java')
-rw-r--r--src/tesseract/objects/Ellipsoid.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/tesseract/objects/Ellipsoid.java b/src/tesseract/objects/Ellipsoid.java
index 593e228..3a617c0 100644
--- a/src/tesseract/objects/Ellipsoid.java
+++ b/src/tesseract/objects/Ellipsoid.java
@@ -74,6 +74,36 @@ public class Ellipsoid extends PhysicalObject {
}
updateTransformGroup();
}
+
+ /**
+ * Create a new Ellipsoid.
+ * @author Phillip Cardon
+ * @param position Initial position.
+ * @param mass mass of ellipsoid
+ * @param radius a float for the size of the base sphere.
+ */
+ public Ellipsoid(final Vector3f position, final float mass,
+ final float radius) {
+ super(position, mass);
+
+ my_radius = radius;
+
+ final float rSq = radius * radius;
+ final float a = 1.0f;
+ final float b = 1.0f;
+ final float c = 1.5f;
+
+
+ setShape(createDefaultEllipsoid(radius, a, b, c));
+
+ if (inverseMass != 0) {
+ inverseInertiaTensor.m00 = 1f / 5 / inverseMass * (b * rSq + c * rSq);
+ inverseInertiaTensor.m11 = 1f / 5 / inverseMass * (a * rSq + c * rSq);
+ inverseInertiaTensor.m22 = 1f / 5 / inverseMass * (a * rSq + b * rSq);
+ inverseInertiaTensor.invert();
+ }
+ updateTransformGroup();
+ }
/**
* Create a new Ellipsoid.