next up previous
Next: 6.11 Morphing Up: 6.10 TickTockCollision Previous: 6.10.3 CollisionDetector.java

6.10.4 Box.java

/*
 * Box.java
 * Copyright (c) 1996-2002 Sun Microsystems,
 * Inc. All Rights Reserved.
 */
import javax.media.j3d.*;
import javax.vecmath.*;
public class Box extends Shape3D {
  public Box(double xsize,
             double ysize, double zsize) {
    super();
    double xmin = -xsize/2.0;
    double xmax =  xsize/2.0;
    double ymin = -ysize/2.0;
    double ymax =  ysize/2.0;
    double zmin = -zsize/2.0;
    double zmax =  zsize/2.0;

    QuadArray box =
      new QuadArray(24, QuadArray.COORDINATES);
    Point3d verts[] = new Point3d[24];
    // front face
    verts[0] = new Point3d(xmax, ymin, zmax);
    verts[1] = new Point3d(xmax, ymax, zmax);
    verts[2] = new Point3d(xmin, ymax, zmax);
    verts[3] = new Point3d(xmin, ymin, zmax);
    // back face
    verts[4] = new Point3d(xmin, ymin, zmin);
    verts[5] = new Point3d(xmin, ymax, zmin);
    verts[6] = new Point3d(xmax, ymax, zmin);
    verts[7] = new Point3d(xmax, ymin, zmin);
    // right face
    verts[8] = new Point3d(xmax, ymin, zmin);
    verts[9] = new Point3d(xmax, ymax, zmin);
    verts[10] = new Point3d(xmax, ymax, zmax);
    verts[11] = new Point3d(xmax, ymin, zmax);
    // left face
    verts[12] = new Point3d(xmin, ymin, zmax);
    verts[13] = new Point3d(xmin, ymax, zmax);
    verts[14] = new Point3d(xmin, ymax, zmin);
    verts[15] = new Point3d(xmin, ymin, zmin);
    // top face
    verts[16] = new Point3d(xmax, ymax, zmax);
    verts[17] = new Point3d(xmax, ymax, zmin);
    verts[18] = new Point3d(xmin, ymax, zmin);
    verts[19] = new Point3d(xmin, ymax, zmax);
    // bottom face
    verts[20] = new Point3d(xmin, ymin, zmax);
    verts[21] = new Point3d(xmin, ymin, zmin);
    verts[22] = new Point3d(xmax, ymin, zmin);
    verts[23] = new Point3d(xmax, ymin, zmax);

    box.setCoordinates(0, verts);
    setGeometry(box);
    setAppearance(new Appearance());
  }
}


generated through LaTeX2HTML. M.Inaba 平成18年5月7日