Merge branch 'newlayout' of https://github.com/sugarcubes/SugarCubes
[SugarCubes.git] / _Mappings.pde
1 /**
2 * DOUBLE BLACK DIAMOND DOUBLE BLACK DIAMOND
3 *
4 * //\\ //\\ //\\ //\\
5 * ///\\\ ///\\\ ///\\\ ///\\\
6 * \\\/// \\\/// \\\/// \\\///
7 * \\// \\// \\// \\//
8 *
9 * EXPERTS ONLY!! EXPERTS ONLY!!
10 *
11 * This class implements the mapping functions needed to lay out the physical
12 * cubes and the output ports on the panda board. It should only be modified
13 * when physical changes or tuning is being done to the structure.
14 */
15 class SCMapping implements GLucose.Mapping {
16 public Cube[] buildCubeArray() {
17 // TODO(mcslee): find a cleaner way of representing this data, probably
18 // serialized in some more neutral form. also figure out what's going on
19 // with the indexing starting at 1 and some indices missing.
20 Cube[] cubes = new Cube[79];
21
22 int cubeIndex = 1;
23
24 cubes[cubeIndex++] = new Cube(0, 0, 0, 0, 0, 0);
25 cubes[cubeIndex++] = new Cube(5, Cube.EDGE_HEIGHT, -10, 0, 20, 0);
26 cubes[cubeIndex++] = new Cube(0, 2*Cube.EDGE_HEIGHT, -6, 0, 0, 0);
27 cubes[cubeIndex++] = new Cube(-5, 3*Cube.EDGE_HEIGHT, -2, 0, -20, 0);
28
29 cubes[cubeIndex++] = new Cube(15, 0, 50, 0, 0, 0);
30 cubes[cubeIndex++] = new Cube(20, Cube.EDGE_HEIGHT, 40, 0, 20, 0);
31 cubes[cubeIndex++] = new Cube(15, 2*Cube.EDGE_HEIGHT, 46, 0, 0, 0);
32 cubes[cubeIndex++] = new Cube(10, 3*Cube.EDGE_HEIGHT, 42, 0, -20, 0);
33 cubes[cubeIndex++] = new Cube(15, 4*Cube.EDGE_HEIGHT, 42, 0, 0, 0);
34
35 cubes[cubeIndex++] = new Cube(40, BASS_HEIGHT + 5, 20, 0, 0, 0);
36 cubes[cubeIndex++] = new Cube(45, BASS_HEIGHT + 5+Cube.EDGE_HEIGHT, 10, 0, 20, 0);
37 cubes[cubeIndex++] = new Cube(40, BASS_HEIGHT + 5+2*Cube.EDGE_HEIGHT, 14, 0, 0, 0);
38 cubes[cubeIndex++] = new Cube(35, BASS_HEIGHT + 5+3*Cube.EDGE_HEIGHT, 18, 0, -20, 0);
39 cubes[cubeIndex++] = new Cube(40, BASS_HEIGHT + 5+4*Cube.EDGE_HEIGHT, 13, 0, 0, 0);
40
41 cubes[cubeIndex++] = new Cube(80, BASS_HEIGHT + 0, 10, 0, 0, 0);
42 cubes[cubeIndex++] = new Cube(85, BASS_HEIGHT + Cube.EDGE_HEIGHT, 0, 0, 20, 0);
43 cubes[cubeIndex++] = new Cube(80, BASS_HEIGHT + 2*Cube.EDGE_HEIGHT, 4, 0, 0, 0);
44 cubes[cubeIndex++] = new Cube(75, BASS_HEIGHT + 3*Cube.EDGE_HEIGHT, 8, 0, -20, 0);
45 cubes[cubeIndex++] = new Cube(80, BASS_HEIGHT + 4*Cube.EDGE_HEIGHT, 3, 0, 0, 0);
46
47 cubes[cubeIndex++] = new Cube(120, BASS_HEIGHT + 10, 10, 0, 0, 0);
48 cubes[cubeIndex++] = new Cube(125, BASS_HEIGHT + 10+Cube.EDGE_HEIGHT, 0, 0, 20, 0);
49 cubes[cubeIndex++] = new Cube(120, BASS_HEIGHT + 10+2*Cube.EDGE_HEIGHT, 4, 0, 0, 0);
50 cubes[cubeIndex++] = new Cube(115, BASS_HEIGHT + 10+3*Cube.EDGE_HEIGHT, 8, 0, -20, 0);
51 cubes[cubeIndex++] = new Cube(120, BASS_HEIGHT + 10+4*Cube.EDGE_HEIGHT, 3, 0, 0, 0);
52
53 cubes[cubeIndex++] = new Cube(160, BASS_HEIGHT + 0, 30, 0, 0, 0);
54 cubes[cubeIndex++] = new Cube(165, BASS_HEIGHT + Cube.EDGE_HEIGHT, 20, 0, 20, 0);
55 cubes[cubeIndex++] = new Cube(160, BASS_HEIGHT + 2*Cube.EDGE_HEIGHT, 24, 0, 0, 0);
56 cubes[cubeIndex++] = new Cube(155, BASS_HEIGHT + 3*Cube.EDGE_HEIGHT, 28, 0, -20, 0);
57 cubes[cubeIndex++] = new Cube(160, BASS_HEIGHT + 4*Cube.EDGE_HEIGHT, 23, 0, 0, 0);
58
59 cubes[cubeIndex++] = new Cube(200, 0, 10, 0, 0, 0);
60 cubes[cubeIndex++] = new Cube(205, Cube.EDGE_HEIGHT, 0, 0, 20, 0);
61 cubes[cubeIndex++] = new Cube(200, 2*Cube.EDGE_HEIGHT, 4, 0, 0, 0);
62 cubes[cubeIndex++] = new Cube(195, 3*Cube.EDGE_HEIGHT, 8, 0, -20, 0);
63 cubes[cubeIndex++] = new Cube(200, 4*Cube.EDGE_HEIGHT, 3, 0, 0, 0);
64
65 cubes[cubeIndex++] = new Cube(210, 0, 60, 0, 0, 0);
66 cubes[cubeIndex++] = new Cube(215, Cube.EDGE_HEIGHT, 50, 0, 20, 0);
67 cubes[cubeIndex++] = new Cube(210, 2*Cube.EDGE_HEIGHT, 54, 0, 0, 0);
68 cubes[cubeIndex++] = new Cube(205, 3*Cube.EDGE_HEIGHT, 58, 0, -20, 0);
69
70 return cubes;
71 }
72
73 public int[][] buildFrontChannelList() {
74 return new int[][] {
75 { 1, 2, 3, 0, 0 }, // ch1
76 { 4, 5, 6, 0, 0 }, // ch2
77 { 0, 0, 0, 0, 0 }, // ch3
78 { 0, 0, 0, 0, 0 }, // ch4
79 { 0, 0, 0, 0, 0 }, // ch5
80 { 0, 0, 0, 0, 0 }, // ch6
81 { 0, 0, 0, 0, 0 }, // ch7
82 { 0, 0, 0, 0, 0 }, // ch8
83 };
84 }
85
86 public int[][] buildRearChannelList() {
87 return new int[][] {
88 { 0, 0, 0, 0, 0 }, // ch9
89 { 0, 0, 0, 0, 0 }, // ch10
90 { 0, 0, 0, 0, 0 }, // ch11
91 { 0, 0, 0, 0, 0 }, // ch12
92 { 0, 0, 0, 0, 0 }, // ch13
93 { 0, 0, 0, 0, 0 }, // ch14
94 { 0, 0, 0, 0, 0 }, // ch15
95 { 0, 0, 0, 0, 0 }, // ch16
96 };
97 }
98 }
99