summaryrefslogtreecommitdiff
path: root/src/tesseract
diff options
context:
space:
mode:
Diffstat (limited to 'src/tesseract')
-rw-r--r--src/tesseract/TesseractUI.java37
-rw-r--r--src/tesseract/menuitems/ChainLinkMenuItem.java5
-rw-r--r--src/tesseract/menuitems/GravityMenuItem.java7
-rw-r--r--src/tesseract/menuitems/IcosahedronMenuItem.java2
-rw-r--r--src/tesseract/menuitems/ParticleEmitterMenuItem.java2
-rw-r--r--src/tesseract/menuitems/PlanarPolygonMenuItem.java2
-rw-r--r--src/tesseract/objects/Ellipsoid.java3
-rw-r--r--src/tesseract/objects/Particle.java8
-rw-r--r--src/tesseract/objects/PlanarPolygon.java4
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.