cubecurl
[SugarCubes.git] / _Mappings.pde
index 6a6294edab9c02fd8a6a44de714451f65867a441..94d50bbf449f522688c222315dfb47eefc89b7de 100644 (file)
@@ -24,6 +24,8 @@ public Model buildModel() {
   // Utility value if you need the height of a cube shorthand
   final float CH = Cube.EDGE_HEIGHT;
   final float CW = Cube.EDGE_WIDTH ;
+
+  
   
   // Positions for the bass box
   final float BBY = BassBox.EDGE_HEIGHT + BoothFloor.PLEXI_WIDTH;
@@ -54,7 +56,7 @@ public Model buildModel() {
   // Single cubes can be constructed directly here if you need them
   Cube[] singleCubes = new Cube[] {
     // new Cube(15, int( Cube.EDGE_HEIGHT), 39, 0, 10, 0,  WRL),     // Back left channel behind speaker
-    // new Cube(x, y, z, rx, ry, rz, wiring),
+     //new Cube(0, 0, 0, 0, 45, rz, wiring),
   };
 
   // The bass box!
@@ -71,18 +73,19 @@ public Model buildModel() {
 
   ////////////////////////////////////////////////////////////////////////
   // dan's proposed lattice
-  ArrayList<StaggeredTower> scubes = new ArrayList<StaggeredTower>();
-  for (int i=0; i<9; i++) scubes.add(new StaggeredTower(
-               (i+1)*CW,                                                // x
-               (i % 2 == 0) ? 0 : CH * 2./3.,   // y
-        - ((i % 2 == 0) ? 0 : 11) + 97  ,   // z
-          -135, (i % 2 == 0) ? 7 : 6));         // num cubes
-
-  ArrayList<Cube> dcubes = new ArrayList<Cube>();
-  for (int i=0; i<7; i++) {
-       if (i>0) dcubes.add(new Cube(-6+CW*4/3*i             , 0, 0, 0, 0, 0, WRR));    
-                        dcubes.add(new Cube(-6+CW*4/3*i+CW*2/3., CH*.5, 0, 0, 0, 0, WRR));     
-  }
+       ArrayList<StaggeredTower> scubes = new ArrayList<StaggeredTower>();
+       if (NumBackTowers != 9) exit();
+       for (int i=0; i<NumBackTowers; i++) scubes.add(new StaggeredTower(
+                 (i+1)*CW,                                                             // x
+                 (i % 2 == 0) ? 0 : CH * 2./3.         ,   // y
+                - ((i % 2 == 0) ? 0 : 11) + 97         ,   // z
+                -135, (i % 2 == 0) ? MaxCubeHeight : MaxCubeHeight-1) );        // num cubes
+       
+       ArrayList<Cube> dcubes = new ArrayList<Cube>();
+       for (int i=1; i<6; i++) {
+               if (i>1) dcubes.add(new Cube(-6+CW*4/3*i             , 0, 0, 0, 0, 0, WRR));    
+                                dcubes.add(new Cube(-6+CW*4/3*i+CW*2/3., CH*.5, 0, 0, 0, 0, WRR));     
+       }
 
   //////////////////////////////////////////////////////////////////////
   //      BENEATH HERE SHOULD NOT REQUIRE ANY MODIFICATION!!!!        //
@@ -91,7 +94,7 @@ public Model buildModel() {
   // These guts just convert the shorthand mappings into usable objects
   ArrayList<Tower> towerList = new ArrayList<Tower>();
   ArrayList<Cube> tower;
-  Cube[] cubes = new Cube[80];
+  Cube[] cubes = new Cube[100];
   int cubeIndex = 1;  
   float px, pz, ny;
   for (TowerMapping tm : towerCubes) {
@@ -106,9 +109,6 @@ public Model buildModel() {
     towerList.add(new Tower(tower));
   }
 
-  for (Cube cube : singleCubes) cubes[cubeIndex++] = cube;
-  for (Cube cube : dcubes)             cubes[cubeIndex++] = cube;
-
   for (StaggeredTower st : scubes) {
     tower = new ArrayList<Cube>();
     for (int i=0; i < st.n; i++)
@@ -116,7 +116,10 @@ public Model buildModel() {
     towerList.add(new Tower(tower));
   }
 
-  return new Model(towerList, cubes, bassBox, speakers);
+  for (Cube cube : singleCubes) cubes[cubeIndex++] = cube;
+  for (Cube cube : dcubes)             cubes[cubeIndex++] = cube;
+
+ return new Model(towerList, cubes, bassBox, speakers);
 }
 
 /**
@@ -140,17 +143,17 @@ public PandaMapping[] buildPandaList() {
     //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),                // 30 J15 (unplugged)
     //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 53, 54, 55, 72 }), // 30 J16
     // }),
-    // new PandaMapping(
-    //   "10.200.1.29", new ChannelMapping[] {
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),                // 29 J3  (not connected)
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),                // 29 J4  (not connected)
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 28, 29, 30,  2}),  // 29 J7
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 33, 34, 32, 31}),  // 29 J8  //XXX   
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),                // 29 J13 //XX //bassbox  (not working)
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }),                // 29 J14 (not working)
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 12, 13, 14, 15 }), // 29 J15
-    //     new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] {  8,  9, 10, 11 }), // 29 J16
-    // }),    
+    new PandaMapping(
+      "10.200.1.29", new ChannelMapping[] {
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,2,3,4}),                // 29 J3  (not connected)
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,2,3,4 }),                // 29 J4  (not connected)
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,2,3,4}),  // 29 J7
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1,2,3,4}),  // 29 J8  //XXX   
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8,9,10}),                // 29 J13 //XX //bassbox  (not working)
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8,9,10 }),                // 29 J14 (not working)
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 14,15,16,17 }), // 29 J15
+        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] {  14,15,16,17 }), // 29 J16
+    }),    
     new PandaMapping(
       "10.200.1.28", new ChannelMapping[] {
 /*        new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 60, 61, 62, 63 }), // 28 J3