import java.awt.*; /** A point in 3d space that can be rendered */ public class Site3d extends Object3dAdaptor { public Site3d(Point3d pt) { centre = pt; } public Site3d(Point3d pt, int frameNo) { this(pt); this.firstFrame = frameNo; } private static int nfront; private static int[][] ix = new int[Cube.nfront][Cube.npoints+1]; // nfront visible cube faces in private static int[][] iy = new int[Cube.nfront][Cube.npoints+1]; // screen space private static Color[] icols = new Color[Cube.nfront]; private static Color[] iselectcols = new Color[Cube.nfront]; private static Point ip[] = new Point[Cube.unitCube.length]; // build ix and iy private void cache(View3d v) { // first transform corners to screen space for (int i = 0; i < Cube.unitCube.length; i++){ ip[i] = v.toPoint(Cube.unitCube[i].scale(3/v.xscale));//3 is cube side in pixels } // now store forward facing faces nfront = 0; //counts front faces for (int i = 0; i < Cube.faces.length; i++){ if(v.w.dot(Cube.unitCubeNormal[i])>0){ //if facing forward icols[nfront] = Cube.cols[i]; iselectcols[nfront] = Cube.selectcols[i]; for (int j=0; j