Merge branch 'master' of https://github.com/sugarcubes/SugarCubes
authorAlexander Green <alexandergreen22@gmail.com>
Fri, 18 Oct 2013 04:19:04 +0000 (00:19 -0400)
committerAlexander Green <alexandergreen22@gmail.com>
Fri, 18 Oct 2013 04:19:04 +0000 (00:19 -0400)
Conflicts:
_Mappings.pde

1  2 
AlexGreen.pde
SugarCubes.pde
_Mappings.pde

diff --combined AlexGreen.pde
index 6b076f63f03f1c0ec3d4c3d18bd58ded14c0249e,6ee9a393f5fa00621d2516bf15aca1b8985d5868..e240f7db9d08bf65ad69f76d6c2fd14734c9084c
mode 100755,100644..100644
@@@ -72,14 -72,14 +72,14 @@@ float distfromcirclecenter(float px, fl
   color spheryvalue (float px, float py, float pz , float f1xc, float f1yc, float f1zc) 
   {
  //switch(sShpape.cur() ) {}  
-    return color(constrain(huespread.getValuef()*5*px, 0, 360) , dist(px, py, pz, f1xc, f1yc, f1zc) , 
+    return lx.hsb(constrain(huespread.getValuef()*5*px, 0, 360) , dist(px, py, pz, f1xc, f1yc, f1zc) , 
      max(0, 100 - 100*widthparameter.getValuef()*abs(dist(px, py, pz, f1xcenter, ybounce.getValuef(), f1zcenter)
        - vibration.getValuef() ) ) ); 
   }
   color ellipsevalue(float px, float py, float pz , float f1xc, float f1yc, float f1zc, float f2xc, float f2yc, float f2zc)
    {
  //switch(sShpape.cur() ) {}  
-    return color(huespread.getValuef()*5*px, dist(model.xMax-px, model.yMax-py, model.zMax-pz, f1xc, f1yc, f1zc) , 
+    return lx.hsb(huespread.getValuef()*5*px, dist(model.xMax-px, model.yMax-py, model.zMax-pz, f1xc, f1yc, f1zc) , 
      max(0, 100 - 100*widthparameter.getValuef() *
        abs( (dist(px, py, pz, f1xc, ybounce.getValuef(), f1zc) + 
          (dist(px, py , pz, f2xc, ybounce.getValuef(), f2zc) ) )/2  
@@@ -96,7 -96,7 +96,7 @@@ final Sphery[] spherys
    SineSphere(GLucose glucose) 
    {
      super(glucose);
 -    //Sshape = addPick("Shape", 0, 1);
 +    //Sshape = addPick("Shape", , 1);
      spherys = new Sphery[] {
        new Sphery(model.xMax/4, model.yMax/2, model.zMax/2, modelrad/16, modelrad/8, 3000),
        new Sphery(.75*model.xMax, model.yMax/2, model.zMax/2, modelrad/20, modelrad/10, 2000),
        //   c = blendColor(c, spherys[3].ellipsevalue(Px.x, Px.y, Px.z, model.xMax/4, model.yMax/4, model.zMax/4, 3*model.xMax/4, 3*model.yMax/4, 3*model.zMax/4),ADD);
        //   return c; 
        // }
-       // return color(0,0,0);
+       // return lx.hsb(0,0,0);
        //  // else if(spheremode ==2)
         // { color c = 0;
-        //   return color(CalcCone( (xyz by = new xyz(0,spherys[2].ybounce.getValuef(),0) ), Px, mid) );
+        //   return lx.hsb(CalcCone( (xyz by = new xyz(0,spherys[2].ybounce.getValuef(),0) ), Px, mid) );
  
         // }
  
          
    }
  
 +class CubeCurl extends SCPattern{
 +float CH, CW, diag;
 +ArrayList<PVector> cubeorigin = new ArrayList<PVector>();
 +ArrayList<PVector> centerlist = new ArrayList<PVector>();
 +private SinLFO curl = new SinLFO(0, Cube.EDGE_HEIGHT, 5000 ); 
 +
 +private SinLFO bg = new SinLFO(180, 220, 3000);
 +
 +CubeCurl(GLucose glucose){
 +super(glucose);
 +addModulator(curl).trigger();
 +addModulator(bg).trigger();
 + this.CH = Cube.EDGE_HEIGHT;
 + this.CW = Cube.EDGE_WIDTH;
 + this.diag = sqrt(CW*CW + CW*CW);
 +
 +
 +ArrayList<PVector> centerlistrelative = new ArrayList<PVector>();
 +for (int i = 0; i < model.cubes.size(); i++){
 +  Cube a = model.cubes.get(i);
 +  cubeorigin.add(new PVector(a.x, a.y, a.z));
 +  centerlist.add(centerofcube(i));
 +  
 +} 
 +
 +}
 +//there is definitely a better way of doing this!
 +PVector centerofcube(int i) { 
 +Cube c = model.cubes.get(i);
 +
 +println(" cube #:  " + i + " c.x  "  +  c.x  + "  c.y   "  + c.y   + "  c.z  "  +   c.z  );
 +PVector cubeangle = new PVector(c.rx, c.ry, c.rz);
 +//println("raw x" + cubeangle.x + "raw y" + cubeangle.y + "raw z" + cubeangle.z);
 +PVector cubecenter = new PVector(c.x + CW/2, c.y + CH/2, c.z + CW/2);
 +println("cubecenter unrotated:  "  + cubecenter.x + "  "  +cubecenter.y + "  " +cubecenter.z );
 +PVector centerrot = new PVector(cos(c.rx)*CW/2 - sin(c.rx)*CW/2, 0, cos(c.rz)*CW/2 + sin(c.rz)*CW/2);
 + // nCos*(y-o.y) - nSin*(z-o.z) + o.y
 +cubecenter = PVector.add(cubecenter, centerrot);
 +println( "  cubecenter.x  " + cubecenter.x  + " cubecenter.y  " +  cubecenter.y + " cubecenter.z  "   +  cubecenter.z  + "   ");
 +
 +
 +return cubecenter;
 +}
 +
 +
 +void run(double deltaMs){
 +for (int i =0; i < model.cubes.size(); i++)  {
 +Cube c = model.cubes.get(i);
 +float cfloor = c.y;
 +
 +// if (i%3 == 0){
 +
 +// for (Point p : c.points ){
 +//  // colors[p.index]=color(0,0,0);
 +//   //float dif = (p.y - c.y);
 +//   //colors[p.index] = color( bg.getValuef() , 80 , dif < curl.getValuef() ? 80 : 0, ADD);
 +//    }
 +//  }
 +
 +// else if (i%3 == 1) {
 +  
 +//  for (Point p: c.points){
 +//   colors[p.index]=color(0,0,0);
 +//   float dif = (p.y - c.y);
 +//   // colors[p.index] = 
 +//   // color(bg.getValuef(),
 +//   //   map(curl.getValuef(), 0, Cube.EDGE_HEIGHT, 20, 100), 
 +//   //   100 - 10*abs(dif - curl.getValuef()), ADD );
 +//      }
 +//     }
 +// else if (i%3 == 2){
 + // centerlist[i].sub(cubeorigin(i);
 +   for (Point p: c.points) {
 +    PVector pv = new PVector(p.x, p.y, p.z);
 +     colors[p.index] =color( constrain(4* pv.dist(centerlist.get(i)), 0, 360)  , 50, 100 );
 +   // colors[p.index] =color(constrain(centerlist[i].x, 0, 360), constrain(centerlist[i].y, 0, 100),  );
 +
 +
 +    }
 +
 +
 +  //}
 +
 +   }
 +  }
 + }
 +
   class HueTestHSB extends SCPattern{
    BasicParameter HueT = new BasicParameter("Hue", .5);
    BasicParameter SatT = new BasicParameter("Sat", .5);
@@@ -273,7 -186,7 +273,7 @@@ HueTestHSB(GLucose glucose) 
  
    for (Point p : model.points) {
      color c = 0;
-     c = blendColor(c, color(360*HueT.getValuef(), 100*SatT.getValuef(), 100*BriT.getValuef()), ADD);
+     c = blendColor(c, lx.hsb(360*HueT.getValuef(), 100*SatT.getValuef(), 100*BriT.getValuef()), ADD);
      colors[p.index]= c;
    }
     int now= millis();
     }
    }
  
-  }
+  }
diff --combined SugarCubes.pde
index f9616b81b3bad96bf49bd55d4960c7beb08c4609,84a311a54675ba2a00c36c2283a41a0fe36b1e50..893152f31148221424950f696c5cad306abb4f04
  LXPattern[] patterns(GLucose glucose) {
    return new LXPattern[] {
  
 -    
 +    new SineSphere(glucose),
 +     new CubeCurl(glucose),
 +
      // Slee
+     // new MidiMusic(glucose),
+     new Pulley(glucose),
      new Swarm(glucose),
      new ViolinWave(glucose),
      new BouncyBalls(glucose),
@@@ -52,7 -52,8 +54,7 @@@
      new Worms(glucose),
  
      // Alex G
 -    new SineSphere(glucose),
 -
 +   
      // Shaheen
      new HelixPattern(glucose).setEligible(false),
      
      new TestBassMapping(glucose),
      new TestFloorMapping(glucose),
      new TestSpeakerMapping(glucose),    
+     new TestPerformancePattern(glucose),
      // new TestHuePattern(glucose),
      // new TestXPattern(glucose),
      // new TestYPattern(glucose),
diff --combined _Mappings.pde
index 3f6756a08c56cd6522d38db47adc757f4d689d56,9ff78ba00a37f45aa3afbbc76e0734eb3abaee8f..a16c46737870165bc69a06840bcf4089463476c1
@@@ -24,8 -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;
@@@ -56,8 -54,7 +56,8 @@@
    // 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,-135,0, WRR),
    };
  
    // The bass box!
@@@ -80,7 -77,7 +80,7 @@@
                  (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
 +               -135, (i % 2 == 0) ? MaxCubeHeight : MaxCubeHeight-1) );        // num cubes
        
        ArrayList<Cube> dcubes = new ArrayList<Cube>();
        for (int i=1; i<6; i++) {
      towerList.add(new Tower(tower));
    }
  
 -  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<Cube>();
      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));
      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);
  }
  
  /**
@@@ -144,17 -141,17 +144,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