copyOldSegmentValues method
void
copyOldSegmentValues()
override
Implementation
@override
void copyOldSegmentValues(
double seriesAnimationFactor, double segmentAnimationFactor) {
if (series.animationType == AnimationType.loading) {
points.clear();
_oldStartControlX = null;
_oldStartControlY = null;
_oldEndControlX = null;
_oldEndControlY = null;
_oldPoints.clear();
return;
}
if (series.animationDuration > 0) {
if (points.isEmpty) {
_oldPoints.clear();
return;
}
final int newPointsLength = points.length;
final int oldPointsLength = _oldPoints.length;
if (oldPointsLength == newPointsLength) {
for (int i = 0; i < newPointsLength; i++) {
_oldPoints[i] =
Offset.lerp(_oldPoints[i], points[i], segmentAnimationFactor)!;
}
} else {
final int minLength = min(oldPointsLength, newPointsLength);
for (int i = 0; i < minLength; i++) {
_oldPoints[i] =
Offset.lerp(_oldPoints[i], points[i], segmentAnimationFactor)!;
}
if (newPointsLength > oldPointsLength) {
_oldPoints.addAll(points.sublist(oldPointsLength));
} else {
_oldPoints.removeRange(minLength, oldPointsLength);
}
}
_oldStartControlX =
lerpDouble(_oldStartControlX, startControlX, segmentAnimationFactor);
_oldStartControlY =
lerpDouble(_oldStartControlY, startControlY, segmentAnimationFactor);
_oldEndControlX =
lerpDouble(_oldEndControlX, endControlX, segmentAnimationFactor);
_oldEndControlY =
lerpDouble(_oldEndControlY, endControlY, segmentAnimationFactor);
} else {
_oldPoints.clear();
}
}