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;
}