lerp method
Linear interpolation between two tokens
Implementation
FlyLeadingToken lerp(FlyLeadingToken other, double t) {
final result = <String, double>{};
final allKeys = {..._allValues.keys, ...other._allValues.keys};
for (final key in allKeys) {
final valueA = _allValues[key];
final valueB = other._allValues[key];
final numA = valueA ?? 0.0;
final numB = valueB ?? 0.0;
result[key] = numA + (numB - numA) * t;
}
return FlyLeadingToken(
tight: result['tight']!,
snug: result['snug']!,
normal: result['normal']!,
relaxed: result['relaxed']!,
loose: result['loose']!,
extras: Map.fromEntries(
result.entries.where(
(e) =>
!['tight', 'snug', 'normal', 'relaxed', 'loose'].contains(e.key),
),
),
);
}