final int VIEWPORT_WIDTH = 900;
final int VIEWPORT_HEIGHT = 700;
+final float TRAILER_WIDTH = 240;
+final float TRAILER_DEPTH = 97;
+final float TRAILER_HEIGHT = 33;
+
+final float BASS_WIDTH = 124;
+final float BASS_HEIGHT = 31.5;
+final float BASS_DEPTH = 66;
+final float BASS_X = (TRAILER_WIDTH - BASS_WIDTH) / 2.;
+final float BASS_Z = (TRAILER_DEPTH - BASS_DEPTH) / 2.;
+
int targetFramerate = 60;
int startMillis, lastMillis;
0, -1, 0
);
- float trailerWidth = 20*FEET;
- float trailerDepth = 8*FEET;
- float trailerHeight = 2*FEET;
noStroke();
fill(#141414);
- drawBox(0, -trailerHeight, 0, 0, 0, 0, trailerWidth, trailerHeight, trailerDepth, trailerHeight/2.);
+ drawBox(0, -TRAILER_HEIGHT, 0, 0, 0, 0, TRAILER_WIDTH, TRAILER_HEIGHT, TRAILER_DEPTH, TRAILER_HEIGHT/2.);
fill(#070707);
stroke(#222222);
beginShape();
vertex(0, 0, 0);
- vertex(trailerWidth, 0, 0);
- vertex(trailerWidth, 0, trailerDepth);
- vertex(0, 0, trailerDepth);
+ vertex(TRAILER_WIDTH, 0, 0);
+ vertex(TRAILER_WIDTH, 0, TRAILER_DEPTH);
+ vertex(0, 0, TRAILER_DEPTH);
endShape();
noStroke();
fill(#292929);
+ drawBox(BASS_X, 0, BASS_Z, 0, 0, 0, BASS_WIDTH, BASS_HEIGHT, BASS_DEPTH, Cube.CHANNEL_WIDTH);
for (Cube c : glucose.model.cubes) {
drawCube(c);
}
// 2D Overlay
camera();
- noLights();
javax.media.opengl.GL gl= ((PGraphicsOpenGL)g).beginGL();
gl.glClear(javax.media.opengl.GL.GL_DEPTH_BUFFER_BIT);
((PGraphicsOpenGL)g).endGL();
cubes[cubeIndex++] = new Cube(0, 2*Cube.EDGE_HEIGHT, -6, 0, 0, 0);
cubes[cubeIndex++] = new Cube(-5, 3*Cube.EDGE_HEIGHT, -2, 0, -20, 0);
- cubes[cubeIndex++] = new Cube(40, 5, 20, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(45, 5+Cube.EDGE_HEIGHT, 10, 0, 20, 0);
- cubes[cubeIndex++] = new Cube(40, 5+2*Cube.EDGE_HEIGHT, 14, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(35, 5+3*Cube.EDGE_HEIGHT, 18, 0, -20, 0);
- cubes[cubeIndex++] = new Cube(40, 5+4*Cube.EDGE_HEIGHT, 13, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(40, BASS_HEIGHT + 5, 20, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(45, BASS_HEIGHT + 5+Cube.EDGE_HEIGHT, 10, 0, 20, 0);
+ cubes[cubeIndex++] = new Cube(40, BASS_HEIGHT + 5+2*Cube.EDGE_HEIGHT, 14, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(35, BASS_HEIGHT + 5+3*Cube.EDGE_HEIGHT, 18, 0, -20, 0);
+ cubes[cubeIndex++] = new Cube(40, BASS_HEIGHT + 5+4*Cube.EDGE_HEIGHT, 13, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(80, 0, 10, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(85, Cube.EDGE_HEIGHT, 0, 0, 20, 0);
- cubes[cubeIndex++] = new Cube(80, 2*Cube.EDGE_HEIGHT, 4, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(75, 3*Cube.EDGE_HEIGHT, 8, 0, -20, 0);
- cubes[cubeIndex++] = new Cube(80, 4*Cube.EDGE_HEIGHT, 3, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(80, BASS_HEIGHT + 0, 10, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(85, BASS_HEIGHT + Cube.EDGE_HEIGHT, 0, 0, 20, 0);
+ cubes[cubeIndex++] = new Cube(80, BASS_HEIGHT + 2*Cube.EDGE_HEIGHT, 4, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(75, BASS_HEIGHT + 3*Cube.EDGE_HEIGHT, 8, 0, -20, 0);
+ cubes[cubeIndex++] = new Cube(80, BASS_HEIGHT + 4*Cube.EDGE_HEIGHT, 3, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(120, 10, 10, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(125, 10+Cube.EDGE_HEIGHT, 0, 0, 20, 0);
- cubes[cubeIndex++] = new Cube(120, 10+2*Cube.EDGE_HEIGHT, 4, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(115, 10+3*Cube.EDGE_HEIGHT, 8, 0, -20, 0);
- cubes[cubeIndex++] = new Cube(120, 10+4*Cube.EDGE_HEIGHT, 3, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(120, BASS_HEIGHT + 10, 10, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(125, BASS_HEIGHT + 10+Cube.EDGE_HEIGHT, 0, 0, 20, 0);
+ cubes[cubeIndex++] = new Cube(120, BASS_HEIGHT + 10+2*Cube.EDGE_HEIGHT, 4, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(115, BASS_HEIGHT + 10+3*Cube.EDGE_HEIGHT, 8, 0, -20, 0);
+ cubes[cubeIndex++] = new Cube(120, BASS_HEIGHT + 10+4*Cube.EDGE_HEIGHT, 3, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(160, 0, 30, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(165, Cube.EDGE_HEIGHT, 20, 0, 20, 0);
- cubes[cubeIndex++] = new Cube(160, 2*Cube.EDGE_HEIGHT, 24, 0, 0, 0);
- cubes[cubeIndex++] = new Cube(155, 3*Cube.EDGE_HEIGHT, 28, 0, -20, 0);
- cubes[cubeIndex++] = new Cube(160, 4*Cube.EDGE_HEIGHT, 23, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(160, BASS_HEIGHT + 0, 30, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(165, BASS_HEIGHT + Cube.EDGE_HEIGHT, 20, 0, 20, 0);
+ cubes[cubeIndex++] = new Cube(160, BASS_HEIGHT + 2*Cube.EDGE_HEIGHT, 24, 0, 0, 0);
+ cubes[cubeIndex++] = new Cube(155, BASS_HEIGHT + 3*Cube.EDGE_HEIGHT, 28, 0, -20, 0);
+ cubes[cubeIndex++] = new Cube(160, BASS_HEIGHT + 4*Cube.EDGE_HEIGHT, 23, 0, 0, 0);
cubes[cubeIndex++] = new Cube(200, 0, 10, 0, 0, 0);
cubes[cubeIndex++] = new Cube(205, Cube.EDGE_HEIGHT, 0, 0, 20, 0);