sample method

double sample(
  1. double t
)

Samples the curve at normalized time t (clamped into [0, 1]).

Implementation

double sample(double t) {
  final clamped = t < 0.0
      ? 0.0
      : t > 1.0
      ? 1.0
      : t;
  final x = clamped * (resolution - 1);
  final i = x.floor();
  if (i >= resolution - 1) return _lut[resolution - 1];
  final f = x - i;
  return _lut[i] + (_lut[i + 1] - _lut[i]) * f;
}