updateAnimationPercent method

void updateAnimationPercent(
  1. PointRendererElement<D> previous,
  2. PointRendererElement<D> target,
  3. double animationPercent
)

Implementation

void updateAnimationPercent(PointRendererElement<D> previous,
    PointRendererElement<D> target, double animationPercent) {
  final targetPoint = target.point!;
  final previousPoint = previous.point!;

  final x = ((targetPoint.x! - previousPoint.x!) * animationPercent) +
      previousPoint.x!;

  final xLower = targetPoint.xLower != null && previousPoint.xLower != null
      ? ((targetPoint.xLower! - previousPoint.xLower!) * animationPercent) +
          previousPoint.xLower!
      : null;

  final xUpper = targetPoint.xUpper != null && previousPoint.xUpper != null
      ? ((targetPoint.xUpper! - previousPoint.xUpper!) * animationPercent) +
          previousPoint.xUpper!
      : null;

  double? y;
  if (targetPoint.y != null && previousPoint.y != null) {
    y = ((targetPoint.y! - previousPoint.y!) * animationPercent) +
        previousPoint.y!;
  } else if (targetPoint.y != null) {
    y = targetPoint.y;
  } else {
    y = null;
  }

  final yLower = targetPoint.yLower != null && previousPoint.yLower != null
      ? ((targetPoint.yLower! - previousPoint.yLower!) * animationPercent) +
          previousPoint.yLower!
      : null;

  final yUpper = targetPoint.yUpper != null && previousPoint.yUpper != null
      ? ((targetPoint.yUpper! - previousPoint.yUpper!) * animationPercent) +
          previousPoint.yUpper!
      : null;

  point = DatumPoint<D>.from(targetPoint,
      x: x,
      xLower: xLower,
      xUpper: xUpper,
      y: y,
      yLower: yLower,
      yUpper: yUpper);

  color = getAnimatedColor(previous.color!, target.color!, animationPercent);

  fillColor = getAnimatedColor(
      previous.fillColor!, target.fillColor!, animationPercent);

  radiusPx = (target.radiusPx - previous.radiusPx) * animationPercent +
      previous.radiusPx;

  boundsLineRadiusPx =
      ((target.boundsLineRadiusPx - previous.boundsLineRadiusPx) *
              animationPercent) +
          previous.boundsLineRadiusPx;

  strokeWidthPx =
      ((target.strokeWidthPx - previous.strokeWidthPx) * animationPercent) +
          previous.strokeWidthPx;
}