globalToLocalTime method

double globalToLocalTime(
  1. double seconds
)

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;
  }
}