diff options
Diffstat (limited to 'src/tesseract/objects/Icosahedron.java')
-rw-r--r-- | src/tesseract/objects/Icosahedron.java | 43 |
1 files changed, 34 insertions, 9 deletions
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);
|