+
+class FaceSync extends SCPattern {
+ SinLFO xosc = new SinLFO(-10, 10, 3000);
+ SinLFO zosc = new SinLFO(-10, 10, 3000);
+
+ public FaceSync(GLucose glucose) {
+ super(glucose);
+ addModulator(xosc).trigger();
+ addModulator(zosc).trigger();
+ zosc.setValue(0);
+ }
+
+ public void run(int deltaMs) {
+ int i=0;
+ for (Cube c : model.cubes) {
+ i++;
+ for (Point p : c.points) {
+ float dx, dz;
+ if (i%2==0) {
+ dx = p.fx - (c.cx+xosc.getValuef());
+ dz = p.fz - (c.cz+zosc.getValuef());
+ } else {
+ dx = p.fx - (c.cx+zosc.getValuef());
+ dz = p.fz - (c.cz+xosc.getValuef());
+ }
+ //println(dx);
+ colors[p.index] = color(100,0,100-abs(dx*5)-abs(dz*5));
+ }
+ }
+ }
+}