createInterpolation function

Interpolation createInterpolation({
  1. required List<num> inputRange,
  2. required List<num> outputRange,
  3. Easing? easing,
  4. ExtrapolateType extrapolate = ExtrapolateType.Clamp,
  5. ExtrapolateType? extrapolateLeft,
  6. ExtrapolateType? extrapolateRight,
})

Implementation

Interpolation createInterpolation ({
  required List<num> inputRange,
  required List<num> outputRange ,
  Easing? easing,
  ExtrapolateType extrapolate = ExtrapolateType.Clamp,
  ExtrapolateType? extrapolateLeft,
  ExtrapolateType? extrapolateRight,
}) {
  assert(inputRange.length == outputRange.length, 'inputRange (${inputRange.length}) and outputRange (${outputRange.length}) must have the same length');

  checkInfiniteRange('outputRange', outputRange);
  checkInfiniteRange('inputRange', inputRange);
  checkValidInputRange(inputRange);

  return (num input) {
    final range = _findRange(input, inputRange);
    return _interpolate(
      input,
      inputRange[range],
      inputRange[range + 1],
      outputRange[range],
      outputRange[range + 1],
      easing ?? _linear,
      extrapolateLeft ?? extrapolate,
      extrapolateRight ?? extrapolate,
    );
  };
}