diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tesseract/TesseractUI.java | 37 | ||||
-rw-r--r-- | src/tesseract/menuitems/ChainLinkMenuItem.java | 5 | ||||
-rw-r--r-- | src/tesseract/menuitems/GravityMenuItem.java | 7 | ||||
-rw-r--r-- | src/tesseract/menuitems/IcosahedronMenuItem.java | 2 | ||||
-rw-r--r-- | src/tesseract/menuitems/ParticleEmitterMenuItem.java | 2 | ||||
-rw-r--r-- | src/tesseract/menuitems/PlanarPolygonMenuItem.java | 2 | ||||
-rw-r--r-- | src/tesseract/objects/Ellipsoid.java | 3 | ||||
-rw-r--r-- | src/tesseract/objects/Particle.java | 8 | ||||
-rw-r--r-- | src/tesseract/objects/PlanarPolygon.java | 4 |
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.
|