transform method
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);
}