summaryrefslogtreecommitdiff
path: root/src/tesseract
diff options
context:
space:
mode:
authorSteve <steveb9@u.washington.edu>2011-02-12 08:09:38 +0000
committerSteve <steveb9@u.washington.edu>2011-02-12 08:09:38 +0000
commitd1df88907d55240e79ee8597f6032a4c0de6b957 (patch)
treebe36bc4395e2c6b407ae5da43bd4080d5b41e9d0 /src/tesseract
parente258cf11dc077ee2addb748636481c3ad8a27c72 (diff)
Added a gravity submenu (doesn't turn off yet)
Added empty ChainLinkMenuItem class set the planar Poly to pos infinte mass for testing Particles fall through but others don't, if particles are big enough they collide though
Diffstat (limited to 'src/tesseract')
-rw-r--r--src/tesseract/TesseractUI.java37
-rw-r--r--src/tesseract/menuitems/ChainLinkMenuItem.java5
-rw-r--r--src/tesseract/menuitems/GravityMenuItem.java7
-rw-r--r--src/tesseract/menuitems/IcosahedronMenuItem.java2
-rw-r--r--src/tesseract/menuitems/ParticleEmitterMenuItem.java2
-rw-r--r--src/tesseract/menuitems/PlanarPolygonMenuItem.java2
-rw-r--r--src/tesseract/objects/Ellipsoid.java3
-rw-r--r--src/tesseract/objects/Particle.java8
-rw-r--r--src/tesseract/objects/PlanarPolygon.java4
9 files changed, 38 insertions, 32 deletions
diff --git a/src/tesseract/TesseractUI.java b/src/tesseract/TesseractUI.java
index e6eb330..7b1a180 100644
--- a/src/tesseract/TesseractUI.java
+++ b/src/tesseract/TesseractUI.java
@@ -24,6 +24,7 @@ import javax.swing.Timer;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;
+import tesseract.forces.Force;
import tesseract.forces.Gravity;
import tesseract.menuitems.EllipsoidMenuItem;
import tesseract.menuitems.GravityMenuItem;
@@ -89,20 +90,23 @@ public class TesseractUI extends JFrame {
private JMenuItem[] myObjectMenuItems;
/**
- * Forces Menu Items.
+ * World Timer.
*/
- private JMenuItem[] myForcesMenuItems;
+ private Timer myTimer;
/**
- * World Timer.
+ * The gravity of the world
*/
- private Timer myTimer;
+ private Gravity my_gravity;
/**
* UI Constructor.
*/
public TesseractUI() {
super("Tesseract Project");
+
+ my_gravity = new Gravity(-.5f);
+
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWorld = new World(
@@ -116,11 +120,6 @@ public class TesseractUI extends JFrame {
new EllipsoidMenuItem(myWorld),
new IcosahedronMenuItem(myWorld)
};
-
- myForcesMenuItems = new JMenuItem[] {
- new GravityMenuItem(myWorld)};
-
-
createMenu();
setupCanvas();
pack();
@@ -173,10 +172,18 @@ public class TesseractUI extends JFrame {
menuBar.add(objectsMenu);
//Forces
- JMenu forcesMenu = new JMenu("Add Force");
- for (JMenuItem item : myForcesMenuItems) {
- forcesMenu.add(item);
- }
+ JMenu forcesMenu = new JMenu("Add Forces");
+ JMenuItem gravity = new JCheckBoxMenuItem("Gravity", false);
+ gravity.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ if (((JCheckBoxMenuItem) e.getSource()).isSelected()) {
+ myWorld.addForce(my_gravity);
+ } else {
+ myWorld.addForce(my_gravity = new Gravity(-.5f));
+ }
+ }
+ });
+ forcesMenu.add(gravity);
menuBar.add(forcesMenu);
/*
@@ -200,10 +207,6 @@ public class TesseractUI extends JFrame {
menu.add(cMenuItem);
}
*/
-
-
-
-
// Exit Menu Item
JMenuItem exit = new JMenuItem("Exit");
exit.addActionListener(new ActionListener() {
diff --git a/src/tesseract/menuitems/ChainLinkMenuItem.java b/src/tesseract/menuitems/ChainLinkMenuItem.java
new file mode 100644
index 0000000..4f99645
--- /dev/null
+++ b/src/tesseract/menuitems/ChainLinkMenuItem.java
@@ -0,0 +1,5 @@
+package tesseract.menuitems;
+
+public class ChainLinkMenuItem {
+
+}
diff --git a/src/tesseract/menuitems/GravityMenuItem.java b/src/tesseract/menuitems/GravityMenuItem.java
index 62ee26e..8106d6e 100644
--- a/src/tesseract/menuitems/GravityMenuItem.java
+++ b/src/tesseract/menuitems/GravityMenuItem.java
@@ -1,16 +1,9 @@
package tesseract.menuitems;
-import java.awt.Color;
import java.awt.event.ActionEvent;
-import javax.swing.JColorChooser;
-import javax.swing.JOptionPane;
-import javax.vecmath.Color3f;
-import javax.vecmath.Vector3f;
-
import tesseract.World;
import tesseract.forces.Gravity;
-import tesseract.objects.PlanarPolygon;
/**
* Gravity Menu Item.
diff --git a/src/tesseract/menuitems/IcosahedronMenuItem.java b/src/tesseract/menuitems/IcosahedronMenuItem.java
index dc80bf3..b2cdc33 100644
--- a/src/tesseract/menuitems/IcosahedronMenuItem.java
+++ b/src/tesseract/menuitems/IcosahedronMenuItem.java
@@ -51,7 +51,7 @@ public class IcosahedronMenuItem extends TesseractMenuItem {
defaultButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if (defaultButton.isSelected()) {
- myWorld.addObject(new Icosahedron(getDefaultPosition(), 1, getDefaultRadius()));
+ myWorld.addObject(new Icosahedron(getDefaultPosition(), 10, getDefaultRadius()));
params.dispose();
}
}
diff --git a/src/tesseract/menuitems/ParticleEmitterMenuItem.java b/src/tesseract/menuitems/ParticleEmitterMenuItem.java
index b4016cc..1c69def 100644
--- a/src/tesseract/menuitems/ParticleEmitterMenuItem.java
+++ b/src/tesseract/menuitems/ParticleEmitterMenuItem.java
@@ -50,7 +50,7 @@ public class ParticleEmitterMenuItem extends TesseractMenuItem {
defaultButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if (defaultButton.isSelected()) {
- myWorld.addObject(new ParticleEmitter(getDefaultPosition(),
+ myWorld.addObject(new ParticleEmitter(new Vector3f(0f,.49f, 0f),
.5f, new Color3f(1f,0f,0f)));
params.dispose();
}
diff --git a/src/tesseract/menuitems/PlanarPolygonMenuItem.java b/src/tesseract/menuitems/PlanarPolygonMenuItem.java
index 31b6e3e..a41dabb 100644
--- a/src/tesseract/menuitems/PlanarPolygonMenuItem.java
+++ b/src/tesseract/menuitems/PlanarPolygonMenuItem.java
@@ -52,7 +52,7 @@ public class PlanarPolygonMenuItem extends TesseractMenuItem {
defaultButton.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if (defaultButton.isSelected()) {
- myWorld.addObject(new PlanarPolygon(getDefaultPosition(), getDefaultRadius()));
+ myWorld.addObject(new PlanarPolygon(new Vector3f(0f,-.3f, 0f), getDefaultRadius()));
params.dispose();
}
}
diff --git a/src/tesseract/objects/Ellipsoid.java b/src/tesseract/objects/Ellipsoid.java
index da6dd79..617bdb8 100644
--- a/src/tesseract/objects/Ellipsoid.java
+++ b/src/tesseract/objects/Ellipsoid.java
@@ -29,7 +29,8 @@ public class Ellipsoid extends PhysicalObject {
/**
* Default mass.
*/
- private static final float DEFAULT_MASS = 1;
+ //private static final float DEFAULT_MASS = Float.POSITIVE_INFINITY;
+ private static final float DEFAULT_MASS = 10;
/**
* Number of divisions in the sphere.
diff --git a/src/tesseract/objects/Particle.java b/src/tesseract/objects/Particle.java
index a5b6029..6dcc864 100644
--- a/src/tesseract/objects/Particle.java
+++ b/src/tesseract/objects/Particle.java
@@ -5,6 +5,7 @@ import java.awt.Color;
import javax.media.j3d.Appearance;
import javax.media.j3d.ColoringAttributes;
import javax.media.j3d.Node;
+import javax.media.j3d.TransformGroup;
import javax.vecmath.Color3f;
import javax.vecmath.Vector3f;
@@ -61,7 +62,7 @@ public class Particle extends PhysicalObject {
* @param theColor The particle color or null for random.
* @return A sphere to visually represent the particle.
*/
- private Node createShape(final Color3f theColor) {
+ private TransformGroup createShape(final Color3f theColor) {
Color3f color = theColor;
ColoringAttributes cAttr;
@@ -74,7 +75,10 @@ public class Particle extends PhysicalObject {
cAttr = new ColoringAttributes(color, ColoringAttributes.FASTEST);
Appearance appearance = new Appearance();
appearance.setColoringAttributes(cAttr);
- return new Sphere(RADIUS, Sphere.ENABLE_GEOMETRY_PICKING | Sphere.GEOMETRY_NOT_SHARED,
+ Sphere sphere = new Sphere(RADIUS, Sphere.ENABLE_GEOMETRY_PICKING | Sphere.GEOMETRY_NOT_SHARED,
DIVISIONS, appearance);
+ TransformGroup tg = new TransformGroup();
+ tg.addChild(sphere);
+ return tg;
}
}
diff --git a/src/tesseract/objects/PlanarPolygon.java b/src/tesseract/objects/PlanarPolygon.java
index 94fb011..5782fa7 100644
--- a/src/tesseract/objects/PlanarPolygon.java
+++ b/src/tesseract/objects/PlanarPolygon.java
@@ -40,8 +40,8 @@ public class PlanarPolygon extends PhysicalObject {
/**
* Default mass.
*/
- //private static final float DEFAULT_MASS = Float.POSITIVE_INFINITY;
- private static final float DEFAULT_MASS = 1;
+ private static final float DEFAULT_MASS = Float.POSITIVE_INFINITY;
+ //private static final float DEFAULT_MASS = 6;
/**
* Number of divisions in the sphere.