diff options
Diffstat (limited to 'src/tesseract')
-rw-r--r-- | src/tesseract/TesseractUI.java | 56 | ||||
-rw-r--r-- | src/tesseract/menuitems/EllipsoidMenuItem.java | 2 | ||||
-rw-r--r-- | src/tesseract/menuitems/GravityMenuItem.java | 44 | ||||
-rw-r--r-- | src/tesseract/menuitems/IcosahedronMenuItem.java | 2 |
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
*/
|