X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=_Mappings.pde;h=5bcdb739bba8a3b6000af7bf7845d83834e968ce;hb=344908672b7cfe1efba03f739ef945601dae1b8e;hp=b5d7127f50811a61fcd97d62b661bf8c3bd18847;hpb=5bc92bc2ee6237b6bcb0ac6dc24208d97d0dbfc7;p=SugarCubes.git diff --git a/_Mappings.pde b/_Mappings.pde index b5d7127..5bcdb73 100644 --- a/_Mappings.pde +++ b/_Mappings.pde @@ -13,6 +13,9 @@ * when physical changes or tuning is being done to the structure. */ +final int MaxCubeHeight = 6; +final int NumBackTowers = 16; + public Model buildModel() { // Shorthand helpers for specifying wiring more quickly @@ -54,7 +57,8 @@ 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(x, y, z, rx, ry, rz, wiring), + //new Cube(0,0,0,0,225,0, WRR), }; // The bass box! @@ -71,19 +75,139 @@ public Model buildModel() { //////////////////////////////////////////////////////////////////////// // dan's proposed lattice - ArrayList scubes = new ArrayList(); - if (NumBackTowers != 9) exit(); - for (int i=0; i dcubes = new ArrayList(); - 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)); - } + ArrayList scubes = new ArrayList(); + //if (NumBackTowers != 25) exit(); + // for (int i=0; i dcubes = new ArrayList(); + // 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)); + // } + +float[] pos = new float[3]; +pos[0] = 50; +pos[2] = 100; +scubes.add(new StaggeredTower(//tower 1 + pos[0], // x + 0 , // y + pos[2], // z + 0, 4, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + + +pos[0] += 25; +pos[2] -= 10; +scubes.add(new StaggeredTower(// tower 2 + pos[0], // x + 15 , // y + pos[2], // z + 0, 4, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +pos[0] += 25; +pos[2] += -12.5; +scubes.add(new StaggeredTower(//tower 3 + pos[0], // x + 0 , // y + pos[2], // z + 0, 5, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +pos[0] += -32.75; +pos[2] += -13; +scubes.add(new StaggeredTower(//tower 4 + pos[0], // x + 0, // y + pos[2], // z + 0, 6, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +pos[0] += 26; +pos[2] += -16; +scubes.add(new StaggeredTower(//tower 5 + pos[0], // x + 15 , // y + pos[2], // z + 0, 6, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +pos[0] += 26; +pos[2] += -4.5; +scubes.add(new StaggeredTower(//tower 6 + pos[0], // x + 0 , // y + pos[2], // z + 0, 6, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +pos[0] += -56.5; +pos[2] += -6.5; +scubes.add(new StaggeredTower(// tower 7 + pos[0], // x + 15 , // y + pos[2], // z + 0, 4, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +pos[0] += 26; +pos[2] += -16.5; +scubes.add(new StaggeredTower(//tower 8 + pos[0], // x + 0 , // y + pos[2], // z + 0, 5, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +pos[0] += 27; +pos[2] += -4.5; +scubes.add(new StaggeredTower(//tower 9 + pos[0], // x + 15 , // y + pos[2], // z + 0, 5, new Cube.Wiring[] { WRR, WRR, WRR, WRR, WRR, WRR}) ); + +// //TOWERS ON DANCE FLOOR +// scubes.add(new StaggeredTower(//tower 10 +// 83.75+39+43-124.5, // x +// 0, // y +// -47.5-43, // z +// 45, 4, new Cube.Wiring[]{ WRR, WRR, WRR, WRR}) ); +// scubes.add(new StaggeredTower(//tower 11 +// 83.75, // x +// 0, // y +// -47.5, // z +// 45, 4, new Cube.Wiring[]{ WRR, WRR, WRR, WRR}) ); +// scubes.add(new StaggeredTower(//tower 12 +// 83.75+39, // x +// 0, // y +// -47.5, // z +// 45, 4, new Cube.Wiring[]{ WRR, WRR, WRR, WRR}) ); +// scubes.add(new StaggeredTower(//tower 13 +// 83.75+39+43, // x +// 0, // y +// -47.5-43, // z +// 45, 4, new Cube.Wiring[]{ WRR, WRR, WRR, WRR}) ); + +// scubes.add(new StaggeredTower(// Single cube on top of tower 4 +// 42, // x +// 112 , // y +// 72, // z +// -10, 1, new Cube.Wiring[]{ WRL}) ); + + + + + + ////////////////////////////////////////////////////////////////////// // BENEATH HERE SHOULD NOT REQUIRE ANY MODIFICATION!!!! // @@ -92,7 +216,7 @@ public Model buildModel() { // These guts just convert the shorthand mappings into usable objects ArrayList towerList = new ArrayList(); ArrayList tower; - Cube[] cubes = new Cube[100]; + Cube[] cubes = new Cube[200]; int cubeIndex = 1; float px, pz, ny; for (TowerMapping tm : towerCubes) { @@ -107,17 +231,23 @@ 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(); - for (int i=0; i < st.n; i++) - tower.add(cubes[cubeIndex++] = new Cube(st.x, st.y + CH* 4/3.*i, st.z, 0, st.r, 0, WRR)); + for (int i=0; i < st.n; i++) { + Cube.Wiring w = (i < st.wiring.length) ? st.wiring[i] : WRR; + tower.add(cubes[cubeIndex++] = new Cube(st.x, st.y + CH* 4/3.*i, st.z, 0, st.r, 0, w)); + } towerList.add(new Tower(tower)); - } - - for (Cube cube : singleCubes) cubes[cubeIndex++] = cube; - for (Cube cube : dcubes) cubes[cubeIndex++] = cube; + } - return new Model(towerList, cubes, bassBox, speakers); + return new Model(towerList, cubes, bassBox, speakers); } /** @@ -130,51 +260,89 @@ public PandaMapping[] buildPandaList() { // 8 channels map to: 3, 4, 7, 8, 13, 14, 15, 16. return new PandaMapping[] { - // new PandaMapping( - // "10.200.1.30", new ChannelMapping[] { - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 39, 40, 41, 42 }), // 30 J3 * - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 37, 38, 36, 35}), // 30 J4 //ORIG * - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 30 J7 * - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 16, 17, 18, 19}), // 30 J8 * - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 30 J13 (not working) - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 30 J14 (unplugged) - // 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.28", new ChannelMapping[] { -/* new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 60, 61, 62, 63 }), // 28 J3 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 33, 34, 32, 31}), // 28 J4 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 45, 46, 47, 48 }), // 28 J7 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 24, 25, 26, 27}), // 28 J8 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4, 5, 6, 7}), // 28 J13 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 64, 65, 66, 67 }), // 28 J14 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 68, 69, 70, 71 }), // 28 J15 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 49, 50, 51, 52}), // 28 J16 -*/ - }), - // new PandaMapping( - // "10.200.1.31", new ChannelMapping[] { - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 31 J3 - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 31 J4 - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 73}), // 31 J7 - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 24, 25, 26, 27}), // 31 J8 - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 31 J13 - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 56, 57, 58, 59}), // 31 J14 - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 20, 21, 22, 23}), // 31 J15 - // new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // 31 J16 - // }), + "192.168.88.100", new ChannelMapping[] { // G1 + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 5}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 6}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 7}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 8}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 2}), + + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 4}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 3}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 11}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 10}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 9}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 9}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 12}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 13}), + }), + + new PandaMapping( + "192.168.88.101", new ChannelMapping[] { //G4 + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 25}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 23}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 24}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 43}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 45}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 44}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 41}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 42}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 21}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 20}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 22}), + }), + + new PandaMapping( + "192.168.88.104", new ChannelMapping[] { // G3 + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 26}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 28}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 27}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 19}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 18}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 17}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 18}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 19}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 15}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 16}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 14}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 29}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 30}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 31}), + }), + + new PandaMapping( + "192.168.88.105", new ChannelMapping[] { // G2 + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 39}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 38}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 40}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 34}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 35}), + + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 33}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 32}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 37}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 37}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 1}), + }), }; } @@ -212,7 +380,9 @@ class CubeMapping { class StaggeredTower { public final float x, y, z, r; public final int n; - StaggeredTower(float _x, float _y, float _z, float _r, int _n) { x=_x; y=_y; z=_z; r=_r; n=_n;} + public final Cube.Wiring[] wiring; + StaggeredTower(float _x, float _y, float _z, float _r, int _n) { this(_x, _y, _z, _r, _n, new Cube.Wiring[]{}); } + StaggeredTower(float _x, float _y, float _z, float _r, int _n, Cube.Wiring[] _wiring) { x=_x; y=_y; z=_z; r=_r; n=_n; wiring=_wiring;} } /** @@ -223,7 +393,7 @@ class StaggeredTower { class PandaMapping { // How many channels are on the panda board - public final static int CHANNELS_PER_BOARD = 8; + public final static int CHANNELS_PER_BOARD = 16; // How many total pixels on the whole board public final static int PIXELS_PER_BOARD = ChannelMapping.PIXELS_PER_CHANNEL * CHANNELS_PER_BOARD; @@ -257,7 +427,7 @@ class PandaMapping { class ChannelMapping { // How many cubes per channel xc_PB is configured for - public final static int CUBES_PER_CHANNEL = 4; + public final static int CUBES_PER_CHANNEL = 1; // How many total pixels on each channel public final static int PIXELS_PER_CHANNEL = Cube.POINTS_PER_CUBE * CUBES_PER_CHANNEL;