sample method
Implementation
T sample(double time) {
final values = animation.values;
if (time < values.first.$1) {
return values.first.$2;
}
if (time > values.last.$1) {
return values.last.$2;
}
for (var i = 0; i < values.length - 1; i++) {
final t0 = values[i].$1;
final t1 = values[i + 1].$1;
if (time >= t0 && time < t1) {
final t = (time - t0) / (t1 - t0);
final value0 = values[i].$2;
final value1 = values[i + 1].$2;
return animation.lerp(value0, value1, t);
}
}
throw Exception('This should never happen');
}