IntegralCurve constructor

IntegralCurve(
  1. Curve original
)

The constructor that takes the original curve.

Implementation

factory IntegralCurve(Curve original) {
  double integral = 0.0;
  final values = <double, double>{};

  for (double t = 0.0; t <= 1.0; t += delta) {
    integral += original.transform(t) * delta;
    values[t] = integral;
  }
  values[1.0] = integral;

  // Normalize.
  for (final double t in values.keys) {
    values[t] = values[t]! / integral;
  }

  return IntegralCurve._(original, integral, values);
}