validate method
Performs minimal validation on the tracks. Returns true if valid.
This method logs errors to the console, if a track is empty, if the
size
is not valid, if an item in the times or values array is not a valid number or if the
items in the times
array are out of order.
Implementation
bool validate() {
bool valid = true;
final valueSize = getValueSize();
if (valueSize - valueSize.floor() != 0) {
console.warning('KeyframeTrack: Invalid value size in track. $this');
valid = false;
}
final times = this.times, values = this.values, nKeys = times.length;
if (nKeys == 0) {
console.warning('KeyframeTrack: Track is empty. $this');
valid = false;
}
num? prevTime;
for (int i = 0; i != nKeys; i++) {
final currTime = times[i];
if (currTime.isNaN) {
console.warning('KeyframeTrack: Time is not a valid number. $this i: $i $currTime');
valid = false;
break;
}
if (prevTime != null && prevTime > currTime) {
console.warning('KeyframeTrack: Out of order keys.$this i: $i currTime: $currTime prevTime: $prevTime');
valid = false;
break;
}
prevTime = currTime;
}
if (AnimationUtils.isTypedArray(values)) {
for (int i = 0, n = values.length; i != n; ++i) {
final value = values[i];
if (value.isNaN) {
console.warning('KeyframeTrack: Value is not a valid number. $this i: $i value: $value');
valid = false;
break;
}
}
}
return valid;
}