- void run(double deltaMs) {
- NoiseMove += deltaMs;
- xdMax = model.xMax;
- ydMax = model.yMax;
- zdMax = model.zMax;
- xyzdMax = new xyz(xdMax,ydMax,zdMax);
- xyzMid = new xyz(xdMax/2, ydMax/2, zdMax/2);
- StartRun (deltaMs);
- zSpinHue += s_SpinHue ()*deltaMs*.05;
- float fSharp = 1/(1.01-pSharp.Val());
- AddDanText();
- iCur.reset(); iCur.nPoints = model.points.size();
-// iCur.nTowers = model.towers.size(); iCur.nCubes = model.cubes .size();
-// iCur.nFaces = model.faces .size(); iCur.nStrips = model.strips.size();
-
-// for (Tower t : model.towers) { iCur.tower++;
-// for (Cube c : t.cubes) { iCur.cube ++;
-// for (Face f : c.faces) { iCur.face ++;
-// for (Strip s : f.strips) { iCur.strip++; iCur.isHoriz= (iCur.strip % 2 == 1 || iCur.strip < 5) ? true : false;
- for (Point p : model.points) { iCur.point++;
- xyz P = new xyz(p);
-
- if (s_Spark () > 0) P.y += s_Spark () * (noise(P.x,P.y+NoiseMove/30 ,P.z)*ydMax - ydMax/2.);
- if (s_Wiggle() > 0) P.y += s_Wiggle() * (noise(P.x/(xdMax*.3)-NoiseMove/1500.) - .5) * (ydMax/2.);
-
- color cOld = colors[p.index];
- color cNew = CalcPoint(P);
-
-// if (_Horiz && !iCur.isHoriz) { colors[p.index] = 0; continue; }
-// if (_Vert && iCur.isHoriz) { colors[p.index] = 0; continue; }
- if (_XSym) cNew = blendColor(cNew, CalcPoint(new xyz(xdMax-P.x,P.y,P.z)), ADD);
- if (_YSym) cNew = blendColor(cNew, CalcPoint(new xyz(P.x,ydMax-P.y,P.z)), ADD);
- if (_ZSym) cNew = blendColor(cNew, CalcPoint(new xyz(P.x,P.y,zdMax-P.z)), ADD);
-
- float b = brightness(cNew)/100.;
- b = b < .5 ? pow(b,fSharp) : 1-pow(1-b,fSharp);
-
- float modhue = s_ModHue ()>0 ? s_ModHue ()*360:0;
-
- float noizhue = s_NoiseHue()>0 ? s_NoiseHue()*360*noise( P.x/(xdMax*.3)+NoiseMove/3000.,
- P.y/(ydMax*.3)+NoiseMove/4000.,
- P.z/(zdMax*.3)+NoiseMove/5000.) : 0;
-
- cNew = color( (hue(cNew) + modhue + zSpinHue - noizhue) % 360,
- saturation(cNew) + 100*s_Saturate(),
- 100 * (s_Trails()==0 ? b : max(b, (float) (brightness(cOld)/100. - (1-s_Trails()) * deltaMs/200.)))
- * (s_Dim ()==0 ? 1 : 1-s_Dim())
- );
-
- colors[p.index] = cNew;
- }
-// }}}}