snapshot method

AnimationSnapshot snapshot(
  1. double value
)

Generate a snapshot of current animation value

Implementation

AnimationSnapshot snapshot(double value) {
  if (value == 0) {
    return AnimationSnapshot(
      transform: startTransform,
      alignment: startAlign,
      opacity: startOpacity,
    );
  }
  if (value == 1) {
    return AnimationSnapshot(
      transform: endTransform,
      alignment: endAlign,
      opacity: endOpacity,
    );
  }
  Matrix4? matrix4;
  if (hasMatrix) {
    matrix4 = Matrix4.fromList(
      List.generate(
        16,
        (idx) => lerpDouble(startTransform![idx], endTransform![idx], value)!,
      ),
    );
  }
  double? opacity;
  if (hasOpacity) {
    opacity = lerpDouble(startOpacity, endOpacity, value) ?? 1;
  }
  AlignmentGeometry? alignment;
  if (hasAlign) {
    alignment = AlignmentGeometry.lerp(startAlign!, endAlign!, value);
  }

  return AnimationSnapshot(
    transform: matrix4,
    alignment: alignment,
    opacity: opacity,
  );
}