X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=_Mappings.pde;h=5bcdb739bba8a3b6000af7bf7845d83834e968ce;hb=344908672b7cfe1efba03f739ef945601dae1b8e;hp=46a7da5768e452b40b71ee5c576b8664ce6659f4;hpb=41c436e44eab6543d888df116e90b047cf0b7a50;p=SugarCubes.git diff --git a/_Mappings.pde b/_Mappings.pde index 46a7da5..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 @@ -24,8 +27,6 @@ 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; @@ -51,31 +52,13 @@ public Model buildModel() { // We can do better than this. The raw object index should be obvious from the code-- looking through the // rendered simulation and counting through cubes in mapping mode is grossly inefficient. - - //////////////////////////////////////////////////////////////////////// - // 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)); - } - - TowerMapping[] towerCubes = new TowerMapping[] {}; // 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(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,-135,0, WRR), + //new Cube(0,0,0,0,225,0, WRR), }; // The bass box! @@ -89,6 +72,143 @@ public Model buildModel() { // new Speaker(TRAILER_WIDTH - Speaker.EDGE_WIDTH + 8, 6, 3, -15) }); + + //////////////////////////////////////////////////////////////////////// + // dan's proposed lattice + 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!!!! // ////////////////////////////////////////////////////////////////////// @@ -96,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) { @@ -112,14 +232,20 @@ public Model buildModel() { } - for (Cube cube : singleCubes) cubes[cubeIndex++] = cube; - for (Cube cube : dcubes) cubes[cubeIndex++] = cube; -for (StaggeredTower st : scubes) { + 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)); - } + } return new Model(towerList, cubes, bassBox, speakers); } @@ -134,50 +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[] { 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.30", new ChannelMapping[] { - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 11, 12, 13, 14}), // J3 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // J4 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 20, 21, 22, 23}), // J7 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 29 ,30, 31, 32}), // J8 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 38, 39, 40, 41}), // J13 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 47, 48, 49, 50}), // J14 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 56, 57, 58, 59}), // J15 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 55, 46, 37}), // 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( - "10.200.1.31", new ChannelMapping[] { - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 15, 16, 17, 18}), // J3 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { }), // J4 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 24, 25, 26, 27}), // J7 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 33, 34, 35, 36}), // J8 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 42, 43, 44, 45}), // J13 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 51, 52, 53, 54}), // J14 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 28, 19, 10}), // J15 - new ChannelMapping(ChannelMapping.MODE_CUBES, new int[] { 11, 12, 13, 14}), // J16 - }), + "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}), + }), }; } @@ -215,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;} } /** @@ -226,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; @@ -260,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;