diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2011-02-11 18:53:32 +0000 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2011-02-11 18:53:32 +0000 |
commit | 354041e8d61571b25c6eeb672537a013d3e0fa60 (patch) | |
tree | 0ddd07f6fa6867148e3e8c75155c10a238ccd42c /src/tesseract/objects/Icosahedron.java | |
parent | 39662ca98a4ea3de28d5ef4c113435d591ec471c (diff) |
Broke the grabbing code but added Alden's collision code. Not sure if its working yet since my Mac doesn't like it.
Diffstat (limited to 'src/tesseract/objects/Icosahedron.java')
-rw-r--r-- | src/tesseract/objects/Icosahedron.java | 42 |
1 files changed, 14 insertions, 28 deletions
diff --git a/src/tesseract/objects/Icosahedron.java b/src/tesseract/objects/Icosahedron.java index a29e407..5a10ff8 100644 --- a/src/tesseract/objects/Icosahedron.java +++ b/src/tesseract/objects/Icosahedron.java @@ -24,7 +24,7 @@ import com.sun.j3d.utils.geometry.NormalGenerator; * @author Phillip Cardon
* @version 0.9a
*/
-public class Icosahedron extends ForceableObject {
+public class Icosahedron extends PhysicalObject {
//CONSTANTS
/**
* Angle to stop checking normals.
@@ -46,16 +46,6 @@ public class Icosahedron extends ForceableObject { */
private static final float GOLDEN_RATIO = (float) ((1.0 + Math.sqrt(5.0))
/ 2.0);
- //FIELDS
- /**
- * Shape object.
- */
- private Shape3D myShape;
-
- /**
- * Object scale.
- */
- private float myScale;
//CONSTRUCTORS
@@ -67,25 +57,26 @@ public class Icosahedron extends ForceableObject { */
public Icosahedron(final Vector3f position, final float mass,
final float scale) {
- this(position, mass);
- myScale = scale;
+
+ super(position, mass);
+
+ setShape(buildIcosahedron(scale));
}
+
/**
* Create new Icosahedron.
* @param position Initial Position.
* @param mass object mass.
*/
public Icosahedron(final Vector3f position, final float mass) {
- super(position, mass);
- myScale = DEFAULT_SCALE;
- buildIcosahedron();
+ this(position, mass, DEFAULT_SCALE);
+
}
/**
* Builds Icosahedron.
*/
- public void buildIcosahedron() {
- // TODO Auto-generated method stub
+ public Shape3D buildIcosahedron(final float scale) {
Point3f[] coordinates = new Point3f[NUM_VERTEX];
float phi = GOLDEN_RATIO;
@@ -107,9 +98,8 @@ public class Icosahedron extends ForceableObject { coordinates[i++] = new Point3f(-1 * phi, 0, -1f);
// Scaling
-
for (int it = 0; it < coordinates.length; it++) {
- coordinates[it].scale((float) myScale);
+ coordinates[it].scale(scale);
}
GeometryArray die = new TriangleArray(((NUM_VERTEX / 2) - 1)
@@ -203,19 +193,15 @@ public class Icosahedron extends ForceableObject { GeometryInfo geo = new GeometryInfo(die);
norms.generateNormals(geo);
- myShape = new Shape3D(geo.getGeometryArray());
+ Shape3D shape = new Shape3D(geo.getGeometryArray());
Appearance meshApp = new Appearance();
Material surface = new Material();
surface.setDiffuseColor(.9f, .05f, .05f);
meshApp.setMaterial(surface);
meshApp.setColoringAttributes(new ColoringAttributes(.9f,
.05f, .05f, ColoringAttributes.NICEST));
- myShape.setAppearance(meshApp);
- //myTG.addChild(myShape);
- getTransformGroup().addChild(myShape);
+ shape.setAppearance(meshApp);
+
+ return shape;
}
-
- //public Group getGroup(){
- // return (Group) myTG.cloneTree();
- //}
}
|