summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteve <steveb9@u.washington.edu>2011-02-11 20:16:07 +0000
committerSteve <steveb9@u.washington.edu>2011-02-11 20:16:07 +0000
commit37b86863e40dedb3baad91a61ed2d76b2f6b9eba (patch)
treec630ee67ec8515d197a294a3be6b6252de712fac /src
parent45718da7a79143fe77331e99e382498e03f6ec16 (diff)
Added gravity menuItem and change planarPolygon mass to 1
Diffstat (limited to 'src')
-rw-r--r--src/tesseract/TesseractUI.java56
-rw-r--r--src/tesseract/menuitems/EllipsoidMenuItem.java2
-rw-r--r--src/tesseract/menuitems/GravityMenuItem.java44
-rw-r--r--src/tesseract/menuitems/IcosahedronMenuItem.java2
4 files changed, 82 insertions, 22 deletions
diff --git a/src/tesseract/TesseractUI.java b/src/tesseract/TesseractUI.java
index 952a14b..9a85c82 100644
--- a/src/tesseract/TesseractUI.java
+++ b/src/tesseract/TesseractUI.java
@@ -26,6 +26,7 @@ import javax.vecmath.Vector3f;
import tesseract.forces.Gravity;
import tesseract.menuitems.EllipsoidMenuItem;
+import tesseract.menuitems.GravityMenuItem;
import tesseract.menuitems.IcosahedronMenuItem;
import tesseract.menuitems.ParticleEmitterMenuItem;
import tesseract.menuitems.ParticleMenuItem;
@@ -88,6 +89,11 @@ public class TesseractUI extends JFrame {
private JMenuItem[] myObjectMenuItems;
/**
+ * Forces Menu Items.
+ */
+ private JMenuItem[] myForcesMenuItems;
+
+ /**
* World Timer.
*/
private Timer myTimer;
@@ -109,7 +115,11 @@ public class TesseractUI extends JFrame {
new PlanarPolygonMenuItem(myWorld),
new EllipsoidMenuItem(myWorld),
new IcosahedronMenuItem(myWorld)
- };
+ };
+
+ myForcesMenuItems = new JMenuItem[] {
+ new GravityMenuItem(myWorld)};
+
createMenu();
setupCanvas();
@@ -135,22 +145,40 @@ public class TesseractUI extends JFrame {
*/
private void createMenu() {
JMenuBar menuBar = new JMenuBar();
-
- JMenu simulationMenu = new JMenu("Simulation");
-
// Added by Steve: Fixes viewing menu problem with Canvas3D on both my windows machines
- JPopupMenu.setDefaultLightWeightPopupEnabled(false);
+ JPopupMenu.setDefaultLightWeightPopupEnabled(false);
+ //Simulator
+ JMenu simulationMenu = new JMenu("Simulation");
menuBar.add(simulationMenu);
+ // Simulator Start/Stop
+ JMenuItem runSim = new JCheckBoxMenuItem("Run Simulator", true);
+ runSim.addActionListener(new ActionListener() {
+ public void actionPerformed(final ActionEvent e) {
+ if (((JCheckBoxMenuItem) e.getSource()).isSelected()) {
+ myTimer.start();
+
+ } else {
+ myTimer.stop();
+ }
+ }
+ });
+ simulationMenu.add(runSim);
+ //Objects
JMenu objectsMenu = new JMenu("Add Object");
-
for (JMenuItem item : myObjectMenuItems) {
objectsMenu.add(item);
}
-
menuBar.add(objectsMenu);
+ //Forces
+ JMenu forcesMenu = new JMenu("Add Force");
+ for (JMenuItem item : myForcesMenuItems) {
+ forcesMenu.add(item);
+ }
+ menuBar.add(forcesMenu);
+
/*
JCheckBoxMenuItem cMenuItem = new JCheckBoxMenuItem("Enable Particle Emitters", enableEmitters);
cMenuItem.addActionListener(new ActionListener() {
@@ -173,19 +201,7 @@ public class TesseractUI extends JFrame {
}
*/
- // Simulator Start/Stop
- JMenuItem runSim = new JCheckBoxMenuItem("Run Simulator", true);
- runSim.addActionListener(new ActionListener() {
- public void actionPerformed(final ActionEvent e) {
- if (((JCheckBoxMenuItem) e.getSource()).isSelected()) {
- myTimer.start();
-
- } else {
- myTimer.stop();
- }
- }
- });
- simulationMenu.add(runSim);
+
// Exit Menu Item
diff --git a/src/tesseract/menuitems/EllipsoidMenuItem.java b/src/tesseract/menuitems/EllipsoidMenuItem.java
index 69ed038..5a12a99 100644
--- a/src/tesseract/menuitems/EllipsoidMenuItem.java
+++ b/src/tesseract/menuitems/EllipsoidMenuItem.java
@@ -13,7 +13,7 @@ import tesseract.objects.Ellipsoid;
import tesseract.objects.PlanarPolygon;
/**
- * Planar Polygon Menu Item.
+ * Ellipsoid Menu Item.
*
* @author Steve Bradshaw
*/
diff --git a/src/tesseract/menuitems/GravityMenuItem.java b/src/tesseract/menuitems/GravityMenuItem.java
new file mode 100644
index 0000000..62ee26e
--- /dev/null
+++ b/src/tesseract/menuitems/GravityMenuItem.java
@@ -0,0 +1,44 @@
+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.
+ *
+ * @author Steve Bradshaw
+ */
+public class GravityMenuItem extends TesseractMenuItem {
+
+ /**
+ * Serial ID.
+ */
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Constructor for the menu item.
+ *
+ * @param theWorld The world into which we add.
+ */
+ public GravityMenuItem(final World theWorld) {
+ super(theWorld, "Gravity");
+ }
+
+ /**
+ * Action handler.
+ *
+ * @param arg0 Unused event info.
+ */
+ public void actionPerformed(final ActionEvent arg0) {
+ myWorld.addForce(new Gravity());
+ }
+}
diff --git a/src/tesseract/menuitems/IcosahedronMenuItem.java b/src/tesseract/menuitems/IcosahedronMenuItem.java
index 554e42b..e834f0e 100644
--- a/src/tesseract/menuitems/IcosahedronMenuItem.java
+++ b/src/tesseract/menuitems/IcosahedronMenuItem.java
@@ -13,7 +13,7 @@ import tesseract.objects.Icosahedron;
import tesseract.objects.PlanarPolygon;
/**
- * Planar Polygon Menu Item.
+ * Icosahedron Menu Item.
*
* @author Steve Bradshaw
*/