summaryrefslogtreecommitdiff
path: root/src/tesseract/objects/PlanarPolygon.java
diff options
context:
space:
mode:
authorSteve <steveb9@u.washington.edu>2011-02-18 09:52:15 +0000
committerSteve <steveb9@u.washington.edu>2011-02-18 09:52:15 +0000
commitca82b8a601c67e6731bc06d212fb2153a4170c0c (patch)
tree891ab518e8e9e4e84419b33768d8b16b1ab2c830 /src/tesseract/objects/PlanarPolygon.java
parentaf467cea40b760221244a6ce23c4e04ca2d3f37a (diff)
Fixed picking of ellipsoid
Particle had same problem fixed They were both returning a TG instead of a Node so added pick coded to both Added InertiaTensor to Planar polygon
Diffstat (limited to 'src/tesseract/objects/PlanarPolygon.java')
-rw-r--r--src/tesseract/objects/PlanarPolygon.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/tesseract/objects/PlanarPolygon.java b/src/tesseract/objects/PlanarPolygon.java
index 0abda1b..0521062 100644
--- a/src/tesseract/objects/PlanarPolygon.java
+++ b/src/tesseract/objects/PlanarPolygon.java
@@ -73,6 +73,14 @@ public class PlanarPolygon extends PhysicalObject {
super(position, mass);
setShape(createShape(radius, divisions));
+
+ if (inverseMass != 0) {
+ inverseInertiaTensor.m00 = 1f / 4 / inverseMass * radius * radius;
+ inverseInertiaTensor.m11 = 2 * inverseInertiaTensor.m00;
+ inverseInertiaTensor.m22 = inverseInertiaTensor.m00;
+ inverseInertiaTensor.invert();
+ }
+ updateTransformGroup();
}
/**
* Create a new Ellipsoid.
@@ -84,6 +92,14 @@ public class PlanarPolygon extends PhysicalObject {
super(position, DEFAULT_MASS);
setShape(createShape(radius, DEFAULT_DIVISIONS));
+
+ if (inverseMass != 0) {
+ inverseInertiaTensor.m00 = 1f / 4 / inverseMass * radius * radius;
+ inverseInertiaTensor.m11 = 2 * inverseInertiaTensor.m00;
+ inverseInertiaTensor.m22 = inverseInertiaTensor.m00;
+ inverseInertiaTensor.invert();
+ }
+ updateTransformGroup();
}