globalToLocalTime method
Convert a global clock to local seconds (takes into consideration work area start/end, speed, looping).
Implementation
double globalToLocalTime(double seconds) {
switch (loop) {
case Loop.oneShot:
return seconds + startTime;
case Loop.loop:
return seconds % (endTime - startTime) + startTime;
case Loop.pingPong:
var localTime = seconds % (endTime - startTime);
var direction = (seconds ~/ (endTime - startTime)) % 2;
return direction == 0 ? localTime + startTime : endTime - localTime;
}
}