lerpTo method

  1. @override
ISparklinesData lerpTo(
  1. ISparklinesData next,
  2. double t
)
override

Interpolate between this and next using interpolation factor t (0.0 to 1.0)

Implementation

@override
ISparklinesData lerpTo(ISparklinesData next, double t) {
  if (next is! LineData) return next;
  if (points.length != next.points.length) return next;
  if (visible != next.visible) return next;

  final interpolatedPoints = <DataPoint>[];
  for (int i = 0; i < points.length; i++) {
    interpolatedPoints.add(points[i].lerpTo(next.points[i], t));
  }

  return LineData(
    visible: next.visible,
    rotation: next.rotation,
    origin: Offset.lerp(origin, next.origin, t) ?? next.origin,
    layout: next.layout,
    crop: next.crop,
    points: interpolatedPoints,
    thickness: thickness.lerpTo(next.thickness, t),
    areaGradient: Gradient.lerp(areaGradient, next.areaGradient, t),
    areaColor: Color.lerp(areaColor, next.areaColor, t),
    areaFillType: next.areaFillType,
    lineType: next.lineType,
    pointStyle: ILerpTo.lerp(pointStyle, next.pointStyle, t),
  );
}