cubecenter, not quite right
authorAlexander Green <alexandergreen22@gmail.com>
Fri, 18 Oct 2013 04:13:15 +0000 (00:13 -0400)
committerAlexander Green <alexandergreen22@gmail.com>
Fri, 18 Oct 2013 04:13:15 +0000 (00:13 -0400)
AlexGreen.pde
SugarCubes.pde
_Mappings.pde

index fdd88f0d20ccec2a2a597ce6dbf5accd0cd38124..6b076f63f03f1c0ec3d4c3d18bd58ded14c0249e 100755 (executable)
@@ -185,7 +185,7 @@ addModulator(curl).trigger();
 addModulator(bg).trigger();
  this.CH = Cube.EDGE_HEIGHT;
  this.CW = Cube.EDGE_WIDTH;
- this.diag = sqrt(CH*CH + CW*CW + CW*CW);
+ this.diag = sqrt(CW*CW + CW*CW);
 
 
 ArrayList<PVector> centerlistrelative = new ArrayList<PVector>();
@@ -200,16 +200,18 @@ for (int i = 0; i < model.cubes.size(); 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);
-cubeangle.normalize();
-println( "norm"+ cubeangle.x + "norm" + cubeangle.y +"norm" + cubeangle.z);
-PVector cubecenter = PVector.add(cubeorigin.get(i), PVector.mult(cubeangle, diag));
-
-//PVector cubecenter = new PVector(c.x+ CW/2, c.y + CH/2, c.z + CW/2);
-//println("cubecenter raw" + " : " +  cubecenter.x + "  " + cubecenter.y + "  " + cubecenter.z ); 
-//PVector cubecenterf = new PVector(cubecenter.x + cos(c.ry)*CW/2, cubecenter.y , cubecenter.z - tan(c.ry) * CW/2);
-//println("cubecenter angled" + " : " +  cubecenterf.x + "  " + cubecenterf.y + "  " + cubecenterf.z );
+//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;
 }
 
@@ -219,38 +221,38 @@ for (int i =0; i < model.cubes.size(); i++)  {
 Cube c = model.cubes.get(i);
 float cfloor = c.y;
 
-if (i%3 == 0){
+// 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);
-   }
- }
+// 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) {
+// 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){
+//  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(5*pv.dist(centerlist.get(i)), 0, 360)  , 50, 100 );
+     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),  );
 
 
     }
 
 
-  }
+  //}
 
    }
   }
index c4d5aa78d2c15526e5b7867fa2f20a90e216c949..f9616b81b3bad96bf49bd55d4960c7beb08c4609 100644 (file)
@@ -26,7 +26,9 @@
 LXPattern[] patterns(GLucose glucose) {
   return new LXPattern[] {
 
-   
+    new SineSphere(glucose),
+     new CubeCurl(glucose),
+
     // Slee
     new Swarm(glucose),
     new ViolinWave(glucose),
@@ -50,9 +52,7 @@ LXPattern[] patterns(GLucose glucose) {
     new Worms(glucose),
 
     // Alex G
-    new SineSphere(glucose),
-     new CubeCurl(glucose),
-
+   
     // Shaheen
     new HelixPattern(glucose).setEligible(false),
     
index 94d50bbf449f522688c222315dfb47eefc89b7de..3f6756a08c56cd6522d38db47adc757f4d689d56 100644 (file)
@@ -56,7 +56,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(0, 0, 0, 0, 45, rz, wiring),
+     //new Cube(x, y, z, rx, ry, rz, wiring),
+    new Cube(0,0,0,0,-135,0, WRR),
   };
 
   // The bass box!
@@ -109,16 +110,16 @@ public Model buildModel() {
     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));
   }
 
-  for (Cube cube : singleCubes) cubes[cubeIndex++] = cube;
-  for (Cube cube : dcubes)             cubes[cubeIndex++] = cube;
-
  return new Model(towerList, cubes, bassBox, speakers);
 }