copyOldSegmentValues method
void
copyOldSegmentValues()
override
Implementation
@override
void copyOldSegmentValues(
double seriesAnimationFactor,
double segmentAnimationFactor,
) {
if (series.animationType == AnimationType.loading) {
points.clear();
_drawIndexes.clear();
_oldHighPoints.clear();
_oldLowPoints.clear();
_oldStartControlHighPoints.clear();
_oldEndControlHighPoints.clear();
return;
}
if (series.animationDuration > 0) {
if (points.isEmpty) {
_oldHighPoints.clear();
_oldLowPoints.clear();
_oldStartControlHighPoints.clear();
_oldEndControlHighPoints.clear();
return;
}
final int oldPointsLength = _oldHighPoints.length;
final int newPointsLength = _highPoints.length;
if (oldPointsLength == newPointsLength) {
for (int i = 0; i < oldPointsLength; i++) {
_oldHighPoints[i] =
_oldHighPoints[i].lerp(
_highPoints[i],
segmentAnimationFactor,
bottom,
)!;
_oldLowPoints[i] =
_oldLowPoints[i].lerp(
_lowPoints[i],
segmentAnimationFactor,
bottom,
)!;
}
} else if (oldPointsLength < newPointsLength) {
for (int i = 0; i < oldPointsLength; i++) {
_oldHighPoints[i] =
_oldHighPoints[i].lerp(
_highPoints[i],
segmentAnimationFactor,
bottom,
)!;
_oldLowPoints[i] =
_oldLowPoints[i].lerp(
_lowPoints[i],
segmentAnimationFactor,
bottom,
)!;
}
_oldHighPoints.addAll(_highPoints.sublist(oldPointsLength));
_oldLowPoints.addAll(_lowPoints.sublist(oldPointsLength));
} else {
for (int i = 0; i < newPointsLength; i++) {
_oldHighPoints[i] =
_oldHighPoints[i].lerp(
_highPoints[i],
segmentAnimationFactor,
bottom,
)!;
_oldLowPoints[i] =
_oldLowPoints[i].lerp(
_lowPoints[i],
segmentAnimationFactor,
bottom,
)!;
}
_oldHighPoints.removeRange(newPointsLength, oldPointsLength);
_oldLowPoints.removeRange(newPointsLength, oldPointsLength);
}
final int oldControlPointsLength = _oldStartControlHighPoints.length;
final int newControlPointsLength = _startControlHighPoints.length;
if (oldControlPointsLength == newControlPointsLength) {
for (int i = 0; i < oldControlPointsLength; i++) {
_oldStartControlHighPoints[i] =
_oldStartControlHighPoints[i].lerp(
_startControlHighPoints[i],
segmentAnimationFactor,
bottom,
)!;
_oldEndControlHighPoints[i] =
_oldEndControlHighPoints[i].lerp(
_endControlHighPoints[i],
segmentAnimationFactor,
bottom,
)!;
}
} else if (oldControlPointsLength < newControlPointsLength) {
for (int i = 0; i < oldControlPointsLength; i++) {
_oldStartControlHighPoints[i] =
_oldStartControlHighPoints[i].lerp(
_startControlHighPoints[i],
segmentAnimationFactor,
bottom,
)!;
_oldEndControlHighPoints[i] =
_oldEndControlHighPoints[i].lerp(
_endControlHighPoints[i],
segmentAnimationFactor,
bottom,
)!;
}
_oldStartControlHighPoints.addAll(
_startControlHighPoints.sublist(oldControlPointsLength),
);
_oldEndControlHighPoints.addAll(
_endControlHighPoints.sublist(oldControlPointsLength),
);
} else {
for (int i = 0; i < newControlPointsLength; i++) {
_oldStartControlHighPoints[i] =
_oldStartControlHighPoints[i].lerp(
_startControlHighPoints[i],
segmentAnimationFactor,
bottom,
)!;
_oldEndControlHighPoints[i] =
_oldEndControlHighPoints[i].lerp(
_endControlHighPoints[i],
segmentAnimationFactor,
bottom,
)!;
}
_oldStartControlHighPoints.removeRange(
newControlPointsLength,
oldControlPointsLength,
);
_oldEndControlHighPoints.removeRange(
newControlPointsLength,
oldControlPointsLength,
);
}
} else {
_oldHighPoints.clear();
_oldLowPoints.clear();
_oldStartControlHighPoints.clear();
_oldEndControlHighPoints.clear();
}
}