Update to new GLucose/HeronLX with transform/projection in HeronLX
authorMark Slee <mcslee@Mark-Slees-MacBook-Pro.local>
Wed, 13 Nov 2013 10:58:24 +0000 (02:58 -0800)
committerMark Slee <mcslee@Mark-Slees-MacBook-Pro.local>
Wed, 13 Nov 2013 10:58:24 +0000 (02:58 -0800)
AlexGreen.pde
JR.pde
JackStahl.pde
TestPatterns.pde
_Internals.pde
code/GLucose.jar
code/HeronLX.jar

index b89aaa27ed4f1ae70e3bfd0fcdb58c7927237735..e8b55cec34a6794de908f1fbacae0a0f4b8d7a7d 100644 (file)
@@ -1,6 +1,6 @@
 class SineSphere extends SCPattern {
   private SinLFO yrot = new SinLFO(0, TWO_PI, 2000);
-  public final Projection sinespin; 
+  public final LXProjection sinespin; 
  float modelrad = sqrt((model.xMax)*(model.xMax) + (model.yMax)*(model.yMax) + (model.zMax)*(model.zMax));
   Pick Sshape; 
   public final PVector P = new PVector();
@@ -99,7 +99,7 @@ final Sphery[] spherys;
   SineSphere(GLucose glucose) 
   {
     super(glucose);
-    sinespin = new Projection(model);
+    sinespin = new LXProjection(model);
     addModulator(yrot).trigger();
     //Sshape = addPick("Shape", , 1);
     spherys = new Sphery[] {
diff --git a/JR.pde b/JR.pde
index cb8ba6377366c4867fc1f007f168bf4d83c29a1e..ba9498b57598321b9a4f3ddb843b4cf420228ca6 100644 (file)
--- a/JR.pde
+++ b/JR.pde
@@ -6,7 +6,7 @@ class Gimbal extends SCPattern {
   private final int MAXIMUM_BEATS_PER_REVOLUTION = 100;
   
   private boolean first_run = true;
-  private final Projection projection;
+  private final LXProjection projection;
   private final BasicParameter beatsPerRevolutionParam = new BasicParameter("SLOW", 20./MAXIMUM_BEATS_PER_REVOLUTION);
   private final BasicParameter hueDeltaParam = new BasicParameter("HUED", 60./360);
   private final BasicParameter fadeFromCoreParam = new BasicParameter("FADE", 1);
@@ -21,7 +21,7 @@ class Gimbal extends SCPattern {
 
   Gimbal(GLucose glucose) {
     super(glucose);
-    projection = new Projection(model);
+    projection = new LXProjection(model);
     addParameter(beatsPerRevolutionParam);
     addParameter(hueDeltaParam);
     addParameter(fadeFromCoreParam);
@@ -79,7 +79,7 @@ class Gimbal extends SCPattern {
       // Translate so the center of the car is the origin
       .center();
 
-    for (Coord c : projection) {
+    for (LXVector c : projection) {
       //if (first_run) println(c.x + "," + c.y + "," + c.z);
 
       rotate3d(c, a, 0, 0);
@@ -109,7 +109,7 @@ class Gimbal extends SCPattern {
       this.girth = girth;
     }
 
-    public color colorFor(Coord c) {
+    public color colorFor(LXVector c) {
       float theta = atan2(c.y, c.x);
       float nearest_circle_x = cos(theta) * radius;
       float nearest_circle_y = sin(theta) * radius;
@@ -135,7 +135,7 @@ class Gimbal extends SCPattern {
 
 class Zebra extends SCPattern {
 
-  private final Projection projection;
+  private final LXProjection projection;
   SinLFO angleM = new SinLFO(0, PI * 2, 30000);
 
 /*
@@ -146,12 +146,12 @@ class Zebra extends SCPattern {
 
   Zebra(GLucose glucose) {
     super(glucose);
-    projection = new Projection(model);
+    projection = new LXProjection(model);
 
     addModulator(angleM).trigger();
   }
 
-  color colorFor(Coord c) {
+  color colorFor(LXVector c) {
     float hue = lx.getBaseHuef();
 
 
@@ -195,7 +195,7 @@ class Zebra extends SCPattern {
       // Translate so the center of the car is the origin
       .center();
 
-    for (Coord c : projection) {
+    for (LXVector c : projection) {
 //      rotate3d(c, a, b, g);
       colors[c.index] = colorFor(c);
     }
@@ -215,7 +215,7 @@ class Zebra extends SCPattern {
 
 }
 
-void rotate3d(Coord c, float a /* roll */, float b /* pitch */, float g /* yaw */) {
+void rotate3d(LXVector c, float a /* roll */, float b /* pitch */, float g /* yaw */) {
   float cosa = cos(a);
   float cosb = cos(b);
   float cosg = cos(g);
index dd60db712504f2f3db0d47aebb6fc51e53b6c068..862558ce21f90f5c3c9798cff8fdef5872453dc1 100644 (file)
@@ -9,7 +9,7 @@
 class Swim extends SCPattern {
 
   // Projection stuff
-  private final Projection projection;
+  private final LXProjection projection;
   SawLFO rotation = new SawLFO(0, TWO_PI, 19000);
   SinLFO yPos = new SinLFO(-25, 25, 12323);
   final BasicParameter xAngle = new BasicParameter("XANG", 0.9);
@@ -20,7 +20,7 @@ class Swim extends SCPattern {
 
   public Swim(GLucose glucose) {
     super(glucose);
-    projection = new Projection(model);
+    projection = new LXProjection(model);
 
     addParameter(xAngle);
     addParameter(yAngle);
@@ -53,7 +53,7 @@ class Swim extends SCPattern {
 
     float model_height =  model.yMax - model.yMin;
     float model_width =  model.xMax - model.xMin;
-    for (Coord p : projection) {
+    for (LXVector p : projection) {
       float x_percentage = (p.x - model.xMin)/model_width;
 
       // Multiply by 1.4 to shrink the size of the sin wave to be less than the height of the cubes.
@@ -83,7 +83,7 @@ class Balance extends SCPattern {
 
 
   // Projection stuff
-  private final Projection projection;
+  private final LXProjection projection;
 
   SinLFO sphere1Z = new SinLFO(0, 0, 15323);
   SinLFO sphere2Z = new SinLFO(0, 0, 8323);
@@ -102,7 +102,7 @@ class Balance extends SCPattern {
   public Balance(GLucose glucose) {
     super(glucose);
 
-    projection = new Projection(model);
+    projection = new LXProjection(model);
 
     addParameter(hueScale);
     addParameter(phaseParam);
@@ -162,7 +162,7 @@ class Balance extends SCPattern {
         .rotate(rotationX.getValuef() * crazy_factor, 0, 0, 1)
           .rotate(rotationY.getValuef() * crazy_factor, 0, 1, 0);
 
-    for (Coord p : projection) {
+    for (LXVector p : projection) {
       float x_percentage = (p.x - model.xMin)/modelWidth;
 
       float y_in_range = heightMod.getValuef() * (2*p.y - model.yMax - model.yMin) / modelHeight;
index 62a1956ba9bad5c6ff6c50ba56a6af6f08efeb21..6a662f248fb5dfe4f1152eff98f0f35e9a6a6ee0 100644 (file)
@@ -229,13 +229,13 @@ class TestTowerPattern extends TestPattern {
  */
 class TestProjectionPattern extends TestPattern {
   
-  private final Projection projection;
+  private final LXProjection projection;
   private final SawLFO angle = new SawLFO(0, TWO_PI, 9000);
   private final SinLFO yPos = new SinLFO(-20, 40, 5000);
   
   public TestProjectionPattern(GLucose glucose) {
     super(glucose);
-    projection = new Projection(model);
+    projection = new LXProjection(model);
     addModulator(angle).trigger();
     addModulator(yPos).trigger();
   }
@@ -256,7 +256,7 @@ class TestProjectionPattern extends TestPattern {
       .scale(1, 1.5, 1);
 
     float hv = lx.getBaseHuef();
-    for (Coord c : projection) {
+    for (LXVector c : projection) {
       float d = sqrt(c.x*c.x + c.y*c.y + c.z*c.z); // distance from origin
       // d = abs(d-60) + max(0, abs(c.z) - 20); // life saver / ring thing
       d = max(0, abs(c.y) - 10 + .1*abs(c.z) + .02*abs(c.x)); // plane / spear thing
index 8c50a7681aa6fc4c292d56a3563b883ec57a7e18..847eeb6c108a384e920945eba57b9f08a2cec4a6 100644 (file)
@@ -18,13 +18,13 @@ import glucose.control.*;
 import glucose.effect.*;
 import glucose.model.*;
 import glucose.pattern.*;
-import glucose.transform.*;
 import glucose.transition.*;
 import heronarts.lx.*;
 import heronarts.lx.control.*;
 import heronarts.lx.effect.*;
 import heronarts.lx.modulator.*;
 import heronarts.lx.pattern.*;
+import heronarts.lx.transform.*;
 import heronarts.lx.transition.*;
 import ddf.minim.*;
 import ddf.minim.analysis.*;
index 9440558bd4997b26ff78baa8c9545fba069916f4..2321e338d7c71738848af9a13f223c60b1f211d5 100755 (executable)
Binary files a/code/GLucose.jar and b/code/GLucose.jar differ
index 86cb0a1d7c5239d22bc406591c1d65a2e77f3300..adb915b319be334832f7d26da818c41019958e35 100755 (executable)
Binary files a/code/HeronLX.jar and b/code/HeronLX.jar differ