From 6bd3e52c071e6254657cc82f07d1597546bb4cec Mon Sep 17 00:00:00 2001 From: Phillip Date: Wed, 9 Feb 2011 00:09:05 +0000 Subject: --- src/tesseract/objects/Icosahedron.java | 43 +++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 9 deletions(-) (limited to 'src/tesseract/objects/Icosahedron.java') diff --git a/src/tesseract/objects/Icosahedron.java b/src/tesseract/objects/Icosahedron.java index 62dd045..ffeaebf 100644 --- a/src/tesseract/objects/Icosahedron.java +++ b/src/tesseract/objects/Icosahedron.java @@ -8,10 +8,8 @@ package tesseract.objects; import javax.media.j3d.Appearance; import javax.media.j3d.ColoringAttributes; import javax.media.j3d.GeometryArray; -import javax.media.j3d.Group; import javax.media.j3d.Material; import javax.media.j3d.Shape3D; -import javax.media.j3d.Transform3D; import javax.media.j3d.TransformGroup; import javax.media.j3d.TriangleArray; import javax.vecmath.Point3f; @@ -24,26 +22,51 @@ import com.sun.j3d.utils.geometry.NormalGenerator; * Represents an Icosahedron, a 20 sided object who's * faces are all equal equilateral triangles. * @author Phillip Cardon - * @verson 0.9a + * @version 0.9a */ public class Icosahedron extends ForceableObject { //CONSTANTS + /** + * Angle to stop checking normals. + */ private static final int MAX_ANGLE = 120; + + /** + * Default Icosohedran Scale. + */ private static final float DEFAULT_SCALE = 1; + + /** + * Vertex count in Icosohedran. + */ private static final int NUM_VERTEX = 12; - private static final float GOLDEN_RATIO = (float) ((1.0 + Math.sqrt(5.0)) / 2.0); + + /** + * Golden ratio for calculating points. + */ + 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; - private TransformGroup myTG; //CONSTRUCTORS /** * Create new Icosahedron. + * @param position start position. + * @param mass start mass. + * @param scale of object. */ - public Icosahedron(final Vector3f position, final float mass, float scale) { + public Icosahedron(final Vector3f position, final float mass, + final float scale) { this(position, mass); myScale = scale; } @@ -55,9 +78,11 @@ public class Icosahedron extends ForceableObject { public Icosahedron(final Vector3f position, final float mass) { super(position, mass); myScale = DEFAULT_SCALE; - myTG = new TransformGroup(); } + /** + * Builds Icosahedron. + */ public void buildIcosahedron() { // TODO Auto-generated method stub Point3f[] coordinates = new Point3f[NUM_VERTEX]; @@ -80,7 +105,7 @@ public class Icosahedron extends ForceableObject { coordinates[i++] = new Point3f(-1 * phi, 0, 1f); coordinates[i++] = new Point3f(-1 * phi, 0, -1f); - // TODO: Scaling + // Scaling for (int it = 0; it < coordinates.length; it++) { coordinates[it].scale((float) myScale); @@ -177,7 +202,7 @@ public class Icosahedron extends ForceableObject { GeometryInfo geo = new GeometryInfo(die); norms.generateNormals(geo); - Shape3D myShape = new Shape3D(geo.getGeometryArray()); + myShape = new Shape3D(geo.getGeometryArray()); Appearance meshApp = new Appearance(); Material surface = new Material(); surface.setDiffuseColor(.9f, .05f, .05f); -- cgit v1.2.3