return phase;
}
- void step(int deltaMs) {
+ void step(double deltaMs) {
// Rotate
if (rotationPeriod != 0) {
this.phase = (phase + ((float)deltaMs / (float)rotationPeriod) * TWO_PI);
// For performance reasons, cut out points that are outside of
// the tube where the toroidal coil lives.
if (abs(myDist(p, axisPoint) - radius) > girth*.5f) {
- return color(0,0,0);
+ return lx.hsb(0,0,0);
}
// Find the appropriate point for the current rotation
// Soften edges by fading brightness.
float b = constrain(100*(1 - ((d-.5*girth)/(girth*.5))), 0, 100);
- return color((lx.getBaseHuef() + (360*(phase / TWO_PI)))%360, 80, b);
+ return lx.hsb((lx.getBaseHuef() + (360*(phase / TWO_PI)))%360, 80, b);
}
}
float t = axis.getTValue(pt) + spokePhase;
int spokeIndex = (int)floor((t - tMin + spokePeriod/2) / spokePeriod);
if (spokeIndex < 0 || spokeIndex >= basePairs.length) {
- return color(0,0,0);
+ return lx.hsb(0,0,0);
}
BasePairInfo basePair = basePairs[spokeIndex];
Line spokeLine = basePair.line;
float d = PVector.dist(pt, pointOnSpoke);
float b = (PVector.dist(pointOnSpoke, spokeLine.getPoint()) < spokeRadius) ? constrain(100*(1 - ((d-.5*spokeGirth)/(spokeGirth*.5))), 0, 100) : 0.f;
float phase = spokeLine.getTValue(pointOnSpoke) < 0 ? basePair.colorPhase1 : basePair.colorPhase2;
- return color((lx.getBaseHuef() + (360*(phase / TWO_PI)))%360, 80.f, b);
+ return lx.hsb((lx.getBaseHuef() + (360*(phase / TWO_PI)))%360, 80.f, b);
}
- void run(int deltaMs) {
+ void run(double deltaMs) {
boolean h1on = helix1On.getValue() > 0.5;
boolean h2on = helix2On.getValue() > 0.5;
boolean spokesOn = (float)basePairsOn.getValue() > 0.5;
h2.step(deltaMs);
calculateSpokes();
- for (Point p : model.points) {
+ for (LXPoint p : model.points) {
PVector pt = new PVector(p.x,p.y,p.z);
color h1c = h1.colorOfPoint(pt);
color h2c = h2.colorOfPoint(pt);
color spokeColor = calculateSpokeColor(pt);
if (!h1on) {
- h1c = color(0,0,0);
+ h1c = lx.hsb(0,0,0);
}
if (!h2on) {
- h2c = color(0,0,0);
+ h2c = lx.hsb(0,0,0);
}
if (!spokesOn) {
- spokeColor = color(0,0,0);
+ spokeColor = lx.hsb(0,0,0);
}
// The helices are positioned to not overlap. If that changes,