transform method

  1. @override
T transform(
  1. double t
)
override

Returns the value of this animatable at the given t.

t is typically in the range 0.0 to 1.0 but may extend beyond that range for curves that overshoot.

Implementation

@override
T transform(double t) {
  // Clamp to handle floating point drift at boundaries.
  t = t.clamp(0.0, 1.0);
  if (t == 1.0) {
    // At the very end, evaluate the last tween at t=1.0.
    return _items.last.tween.transform(1.0);
  }
  for (int i = 0; i < _items.length; i++) {
    final interval = _intervals[i];
    if (t >= interval.start && t < interval.end) {
      final localT = (t - interval.start) / (interval.end - interval.start);
      return _items[i].tween.transform(localT);
    }
  }
  // Fallback — should not happen with correct intervals.
  return _items.last.tween.transform(1.0);
}