X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=DanUtil.pde;h=44478befa3c5c8c6173bc1fe864d39497a65af9e;hb=7d60f6f6ea82fd5c9794524ce11d40e7d6c00bf7;hp=d340ed1f54dd2cad2c11aa0a12f17bc5980fefb2;hpb=d6b5635a112a63746046ae8664ca38419bd233ff;p=SugarCubes.git diff --git a/DanUtil.pde b/DanUtil.pde index d340ed1..44478be 100644 --- a/DanUtil.pde +++ b/DanUtil.pde @@ -6,8 +6,8 @@ boolean btwn (double a,double b,double c) { return a >= b && a <= c; } float interp (float a, float b, float c) { return (1-a)*b + a*c; } float randctr (float a) { return random(a) - a*.5; } float min (float a, float b, float c, float d) { return min(min(a,b),min(c,d)); } -float pointDist(Point p1, Point p2) { return dist(p1.x,p1.y,p1.z,p2.x,p2.y,p2.z); } -float xyDist (Point p1, Point p2) { return dist(p1.x,p1.y,p2.x,p2.y); } +float pointDist(LXPoint p1, LXPoint p2) { return dist(p1.x,p1.y,p1.z,p2.x,p2.y,p2.z); } +float xyDist (LXPoint p1, LXPoint p2) { return dist(p1.x,p1.y,p2.x,p2.y); } float distToSeg(float x, float y, float x1, float y1, float x2, float y2) { float A = x - x1, B = y - y1, C = x2 - x1, D = y2 - y1; float dot = A * C + B * D, len_sq = C * C + D * D; @@ -79,7 +79,7 @@ public class DPat extends SCPattern float interpWv(float i, float[] vals) { return interp(i-floor(i), vals[floor(i)], vals[ceil(i)]); } void setNorm (PVector vec) { vec.set(vec.x/mMax.x, vec.y/mMax.y, vec.z/mMax.z); } void setRand (PVector vec) { vec.set(random(mMax.x), random(mMax.y), random(mMax.z)); } - void setVec (PVector vec, Point p) { vec.set(p.x, p.y, p.z); } + void setVec (PVector vec, LXPoint p) { vec.set(p.x, p.y, p.z); } void interpolate(float i, PVector a, PVector b) { a.set(interp(i,a.x,b.x), interp(i,a.y,b.y), interp(i,a.z,b.z)); } void StartRun(double deltaMs) { } float val (BasicParameter p) { return p.getValuef(); } @@ -124,8 +124,8 @@ public class DPat extends SCPattern updateLights(); } - DPat(GLucose glucose) { - super(glucose); + DPat(LX lx) { + super(lx); pSpark = addParam("Sprk", 0); pWave = addParam("Wave", 0); @@ -155,6 +155,16 @@ public class DPat extends SCPattern //println (model.xMax + " " + model.yMax + " " + model.zMax); //for (MidiOutputDevice o: RWMidi.getOutputDevices()) { if (o.toString().contains("APC")) { APCOut = o.createOutput(); break;}} } + + float spin() { + float raw = val(pSpin); + if (raw <= 0.45) { + return raw + 0.05; + } else if (raw >= 0.55) { + return raw - 0.05; + } + return 0.5; + } void setAPCOutput(MidiOutput output) { APCOut = output; @@ -201,7 +211,7 @@ public class DPat extends SCPattern xWaveNz[i] = wvAmp * (noise(i/(mMax.y*.3)-(1e3+NoiseMove)/1500.) - .5) * (mMax.x/2.); } - for (Point p : model.points) { nPoint++; + for (LXPoint p : model.points) { nPoint++; setVec(P,p); P.sub(modmin); P.sub(pTrans); @@ -238,8 +248,8 @@ class dVertex { int dir, ci; // dir -- 1 or -1. // ci -- color index - dVertex(Strip _s, Point _p) { s = _s; ci = _p.index; } - Point getPoint(int i) { return s.points.get(dir>0 ? i : 15-i); } + dVertex(Strip _s, LXPoint _p) { s = _s; ci = _p.index; } + LXPoint getPoint(int i) { return s.points.get(dir>0 ? i : 15-i); } void setOpp(dVertex _opp) { opp = _opp; dir = (ci < opp.ci ? 1 : -1); } } //---------------------------------------------------------------------------------------------------------------------------------- @@ -252,7 +262,7 @@ class dLattice { if (v0.t3 == null) { v0.t3=t; return; } } float dist2 (Strip s1, int pos1, Strip s2, int pos2) { return pointDist(s1.points.get(pos1), s2.points.get(pos2)); } - float pd2 (Point p1, float x, float y, float z) { return dist(p1.x,p1.y,p1.z,x,y,z); } + float pd2 (LXPoint p1, float x, float y, float z) { return dist(p1.x,p1.y,p1.z,x,y,z); } boolean sameSame (Strip s1, Strip s2) { return max(dist2(s1, 0, s2, 0), dist2(s1,15, s2,15)) < 5 ; } // same strut, same direction boolean sameOpp (Strip s1, Strip s2) { return max(dist2(s1, 0, s2,15), dist2(s1,15, s2,0 )) < 5 ; } // same strut, opp direction boolean sameBar (Strip s1, Strip s2) { return sameSame(s1,s2) || sameOpp(s1,s2); } // 2 strips on same strut @@ -277,7 +287,7 @@ class dLattice { dPixel getClosest(PVector p) { dVertex v = null; int pos=0; float d = 500; - for (Strip s : glucose.model.strips) { + for (Strip s : model.strips) { float nd = pd2(s.points.get(0),p.x,p.y,p.z); if (nd < d) { v=v0(s); d=nd; pos=0; } if (nd > 30) continue; for (int k=0; k<=15; k++) { @@ -290,13 +300,13 @@ class dLattice { dLattice() { lattice=this; - for (Strip s : glucose.model.strips) { + for (Strip s : model.strips) { dVertex vrtx0 = new dVertex(s,s.points.get(0 )); s.obj1=vrtx0; dVertex vrtx1 = new dVertex(s,s.points.get(15)); s.obj2=vrtx1; vrtx0.setOpp(vrtx1); vrtx1.setOpp(vrtx0); } - for (Strip s1 : glucose.model.strips) { for (Strip s2 : glucose.model.strips) { + for (Strip s1 : model.strips) { for (Strip s2 : model.strips) { if (s1.points.get(0).index < s2.points.get(0).index) continue; int c=0; if (sameSame(s1,s2)) { v0(s1).same = v0(s2); v1(s1).same = v1(s2);