snapshot method
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,
);
}