From 24cd39840a725f0e3060229160d0f7ad67448243 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Wed, 9 Feb 2011 01:34:52 +0000 Subject: Added particle emitter menu item. --- src/tesseract/TesseractUI.java | 2 + .../menuitems/ParticleEmitterMenuItem.java | 48 ++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/tesseract/menuitems/ParticleEmitterMenuItem.java (limited to 'src/tesseract') diff --git a/src/tesseract/TesseractUI.java b/src/tesseract/TesseractUI.java index 3eb0aca..cc2f078 100644 --- a/src/tesseract/TesseractUI.java +++ b/src/tesseract/TesseractUI.java @@ -27,6 +27,7 @@ import javax.vecmath.Vector3d; import javax.vecmath.Vector3f; import tesseract.forces.Gravity; +import tesseract.menuitems.ParticleEmitterMenuItem; import tesseract.menuitems.ParticleMenuItem; import tesseract.objects.Particle; import tesseract.objects.Physical; @@ -105,6 +106,7 @@ public class TesseractUI extends JFrame { new Point3d(UNIT / 2, UNIT / 2, UNIT / 2))); myObjectMenuItems = new ArrayList(); + myObjectMenuItems.add(new ParticleEmitterMenuItem(myWorld)); myObjectMenuItems.add(new ParticleMenuItem(myWorld)); diff --git a/src/tesseract/menuitems/ParticleEmitterMenuItem.java b/src/tesseract/menuitems/ParticleEmitterMenuItem.java new file mode 100644 index 0000000..48ad88d --- /dev/null +++ b/src/tesseract/menuitems/ParticleEmitterMenuItem.java @@ -0,0 +1,48 @@ +package tesseract.menuitems; + +import java.awt.event.ActionEvent; + +import javax.swing.JOptionPane; +import javax.vecmath.Vector3f; + +import tesseract.World; +import tesseract.objects.emitters.ParticleEmitter; + +/** + * Particle Emitter Menu Item. + * + * @author Jesse Morgan + */ +public class ParticleEmitterMenuItem extends TesseractMenuItem { + + /** + * Serial ID. + */ + private static final long serialVersionUID = 1L; + + /** + * Constructor for the menu item. + * + * @param theWorld The world into which we add. + */ + public ParticleEmitterMenuItem(final World theWorld) { + super(theWorld, "Particle Emitter"); + } + + /** + * Action handler. + * + * @param arg0 Unused event info. + */ + public void actionPerformed(final ActionEvent arg0) { + Vector3f pos = + parseVector(JOptionPane.showInputDialog("Enter the position")); + + float freq = Float.parseFloat( + JOptionPane.showInputDialog( + "Emission Frequency (seconds)", "1")); + + myWorld.addObject(new ParticleEmitter(pos, freq, null)); + } + +} -- cgit v1.2.3