From 37b86863e40dedb3baad91a61ed2d76b2f6b9eba Mon Sep 17 00:00:00 2001 From: Steve Date: Fri, 11 Feb 2011 20:16:07 +0000 Subject: Added gravity menuItem and change planarPolygon mass to 1 --- src/tesseract/TesseractUI.java | 56 +++++++++++++++--------- src/tesseract/menuitems/EllipsoidMenuItem.java | 2 +- src/tesseract/menuitems/GravityMenuItem.java | 44 +++++++++++++++++++ src/tesseract/menuitems/IcosahedronMenuItem.java | 2 +- 4 files changed, 82 insertions(+), 22 deletions(-) create mode 100644 src/tesseract/menuitems/GravityMenuItem.java (limited to 'src/tesseract') 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; @@ -87,6 +88,11 @@ public class TesseractUI extends JFrame { */ private JMenuItem[] myObjectMenuItems; + /** + * Forces Menu Items. + */ + private JMenuItem[] myForcesMenuItems; + /** * World Timer. */ @@ -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 */ -- cgit v1.2.3