- new TowerMapping(Cube.EDGE_WIDTH + 2, 0, 0, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 0, 5, 10},
- {STACKED_RELATIVE, 0, 2, 20},
- {STACKED_RELATIVE, 0, 0, 30},
- }),
-
- // Back Cubes behind DJ platform (in order of increasing x)
- new TowerMapping(50, 5, BASS_DEPTH, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 2, 0, 20},
- {STACKED_RELATIVE, -2, 10},
- {STACKED_RELATIVE, -5, 15, -20},
- {STACKED_RELATIVE, -2, 13},
- }),
-
- new TowerMapping(79, 5, BASS_DEPTH, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 2, 0, 20},
- {STACKED_RELATIVE, 4, 10},
- {STACKED_RELATIVE, 2, 15, -20},
- {STACKED_RELATIVE, 0, 13},
- }),
-
- new TowerMapping(107, 5, BASS_DEPTH, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 4, 0, 20},
- {STACKED_RELATIVE, 6, 10},
- {STACKED_RELATIVE, 3, 15, -20},
- // {STACKED_RELATIVE, 8, 13},
- }),
-
- new TowerMapping(133, 5, BASS_DEPTH, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, -2, 0, 20},
- {STACKED_RELATIVE, 0, 10},
- {STACKED_RELATIVE, 2, 15, -20},
- // {STACKED_RELATIVE, 4, 13}
- }),
-
- new TowerMapping(165, 5, BASS_DEPTH, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, -1, 20},
- {STACKED_RELATIVE, 2, 10},
- {STACKED_RELATIVE, -2, 15, -20},
- {STACKED_RELATIVE, 3, 13},
- }),
-
- // front DJ cubes
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2, BASS_HEIGHT, 10, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 0, -10, 20},
- }),
-
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2 + Cube.EDGE_HEIGHT, BASS_HEIGHT, 10, new float[][] {
- {STACKED_RELATIVE, 3, 0},
- {STACKED_RELATIVE, 2, -10, 20},
- }),
-
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2 + 2*Cube.EDGE_HEIGHT + 5, BASS_HEIGHT, 10, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 1, 0, 10},
- }),
-
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2 + 3*Cube.EDGE_HEIGHT + 9, BASS_HEIGHT, 10, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, -1, 0},
- }),
-
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2 + 4*Cube.EDGE_HEIGHT + 15, BASS_HEIGHT, 10, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, -1, 0},
- }),
-
- // left dj cubes
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2, BASS_HEIGHT, Cube.EDGE_HEIGHT + 2, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 0, 2, 20},
- }),
-
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2, BASS_HEIGHT, 2*Cube.EDGE_HEIGHT + 4, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 0, 2, 20},
- }),
-
- // right dj cubes
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2 + 4*Cube.EDGE_HEIGHT + 15, BASS_HEIGHT, Cube.EDGE_HEIGHT + 2, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 0, 2, 20},
- }),
-
- new TowerMapping((TRAILER_WIDTH - BASS_WIDTH)/2 + 4*Cube.EDGE_HEIGHT + 15, BASS_HEIGHT, 2*Cube.EDGE_HEIGHT + 4, new float[][] {
- {STACKED_RELATIVE, 0, 0},
- {STACKED_RELATIVE, 0, 2, 20},
- }),
-
- new TowerMapping(200, 0, 0, new float[][] {
- {STACKED_RELATIVE, 0, 10},
- {STACKED_RELATIVE, 5, 0, 20},
- {STACKED_RELATIVE, 0, 4},
- {STACKED_RELATIVE, -5, 8, -20},
- {STACKED_RELATIVE, 0, 3},
- }),
-
- new TowerMapping(0, 0, Cube.EDGE_HEIGHT + 10, new float[][] {
- {STACKED_RELATIVE, 10, 0, 40},
- {STACKED_RELATIVE, 3, -2, 20},
- {STACKED_RELATIVE, 0, 0, 40},
- {STACKED_RELATIVE, 0, 0, 60},
- {STACKED_RELATIVE, 0, 0, 40},
- }),
-
- new TowerMapping(20, 0, 2*Cube.EDGE_HEIGHT + 18, new float[][] {
- {STACKED_RELATIVE, 0, 0, 40},
- {STACKED_RELATIVE, 10, 0, 20},
- {STACKED_RELATIVE, 5, 0, 40},
- {STACKED_RELATIVE, 10, 0, 60},
- {STACKED_RELATIVE, 12, 0, 40},
- }),
-
- new TowerMapping(210, 0, Cube.EDGE_HEIGHT + 15, new float[][] {
- {STACKED_RELATIVE, 0, 0, 40},
- {STACKED_RELATIVE, 5, 0, 20},
- {STACKED_RELATIVE, 8, 0, 40},
- {STACKED_RELATIVE, 3, 0, 60},
- {STACKED_RELATIVE, 0, 0, 40},
- }),
-
- new TowerMapping(210, 0, 2*Cube.EDGE_HEIGHT + 25, new float[][] {
- {STACKED_RELATIVE, 0, 0, 40},
- {STACKED_RELATIVE, 5, 0, 20},
- {STACKED_RELATIVE, 2, 0, 40},
- {STACKED_RELATIVE, 5, 0, 60},
- {STACKED_RELATIVE, 0, 0, 40},
- }),
-
- };
-
- ArrayList<Tower> towerList = new ArrayList<Tower>();
- ArrayList<Cube> tower;
- Cube[] cubes = new Cube[79];
- int cubeIndex = 1;
- float tx, ty, tz, px, pz, ny, dx, dz, ry;
- for (TowerMapping tm : mapping) {
- tower = new ArrayList<Cube>();
- px = tx = tm.x;
- ny = ty = tm.y;
- pz = tz = tm.z;
- int ti = 0;
- for (float[] cp : tm.cubePositions) {
- float mode = cp[0];
- if (mode == STACKED_RELATIVE) {
- dx = cp[1];
- dz = cp[2];
- ry = (cp.length >= 4) ? cp[3] : 0;
- tower.add(cubes[cubeIndex++] = new Cube(px = tx + dx, ny, pz = tz + dz, 0, ry, 0));
- ny += Cube.EDGE_HEIGHT;
- } else if (mode == STACKED_REL_SPIN) {
- // Same as above but the front left of this cube is actually its back right for wiring
- // TODO(mcslee): implement this
- }
- }
- towerList.add(new Tower(tower));
- }
-
- return new Model(towerList, cubes);
-}