1. override
double transform(double t)

Returns the value of the curve at point t.

The value of t must be between 0.0 and 1.0, inclusive.

Source

@override
double transform(double t) {
  double start = 0.0;
  double end = 1.0;
  while (true) {
    double midpoint = (start + end) / 2;
    double estimate = _evaluateCubic(a, c, midpoint);
    if ((t - estimate).abs() < _kCubicErrorBound)
      return _evaluateCubic(b, d, midpoint);
    if (estimate < t)
      start = midpoint;
    else
      end = midpoint;
  }
}