Changed mapping, added cubes, unbroke Toby's fire anim by commenting out
[SugarCubes.git] / _Internals.pde
index f81e6b2c98aa4ed17544fc5200a1c0aa15431a2f..8b9163d5068b402f9b28d02f534b3e4e3614ceec 100644 (file)
@@ -34,6 +34,16 @@ import rwmidi.*;
 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;
@@ -58,8 +68,6 @@ DebugUI debugUI;
 // Camera variables
 float eyeR, eyeA, eyeX, eyeY, eyeZ, midX, midY, midZ;
 
-final float FEET = 12;
-
 void setup() {
   startMillis = lastMillis = millis();
 
@@ -107,10 +115,10 @@ void setup() {
   logTime("Setup MIDI devices");
     
   // Setup camera
-  midX = glucose.model.xMax/2 + 20;
+  midX = TRAILER_WIDTH/2. + 20;
   midY = glucose.model.yMax/2;
-  midZ = glucose.model.zMax/2;
-  eyeR = -270;
+  midZ = TRAILER_DEPTH/2.;
+  eyeR = -290;
   eyeA = .15;
   eyeY = midY + 20;
   eyeX = midX + eyeR*sin(eyeA);
@@ -163,23 +171,21 @@ void draw() {
     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);
   }
@@ -196,8 +202,7 @@ void draw() {
   
   // 2D Overlay
   camera();
-  noLights();
-  javax.media.opengl.GL gl= ((PGraphicsOpenGL)g).beginGL();
+  javax.media.opengl.GL gl = ((PGraphicsOpenGL)g).beginGL();
   gl.glClear(javax.media.opengl.GL.GL_DEPTH_BUFFER_BIT);
   ((PGraphicsOpenGL)g).endGL();
   strokeWeight(1);
@@ -215,15 +220,16 @@ void draw() {
 }
 
 void drawCube(Cube c) {
-  drawBox(c.x, c.y, c.z, c.rx, c.ry, c.rz, Cube.EDGE_WIDTH, Cube.EDGE_HEIGHT, Cube.EDGE_WIDTH, Strip.CHANNEL_WIDTH);
+  float in = .15;
+  drawBox(c.x+in, c.y+in, c.z+in, c.rx, c.ry, c.rz, Cube.EDGE_WIDTH-in*2, Cube.EDGE_HEIGHT-in*2, Cube.EDGE_WIDTH-in*2, Cube.CHANNEL_WIDTH-in);
 }
 
 void drawBox(float x, float y, float z, float rx, float ry, float rz, float xd, float yd, float zd, float sw) {
   pushMatrix();
   translate(x, y, z);
-  rotate(rx1, 0, 0);
+  rotate(rx / 180. * PI, -1, 0, 0);
   rotate(ry / 180. * PI, 0, -1, 0);
-  rotate(rz, 0, 0, 1);
+  rotate(rz / 180. * PI, 0, 0, -1);
   for (int i = 0; i < 4; ++i) {
     float wid = (i % 2 == 0) ? xd : zd;