interpolateRotations method
dynamic
interpolateRotations(
- Map curve
)
Implementation
interpolateRotations(Map curve) {
for (var i = 1; i < curve["values"].length; i++) {
var initialValue = curve["values"][i - 1];
var valuesSpan = curve["values"][i] - initialValue;
var absoluteSpan = Math.abs(valuesSpan);
if (absoluteSpan >= 180) {
var numSubIntervals = absoluteSpan / 180;
var step = valuesSpan / numSubIntervals;
var nextValue = initialValue + step;
var initialTime = curve["times"][i - 1];
var timeSpan = curve["times"][i] - initialTime;
var interval = timeSpan / numSubIntervals;
var nextTime = initialTime + interval;
var interpolatedTimes = [];
var interpolatedValues = [];
while (nextTime < curve["times"][i]) {
interpolatedTimes.add(nextTime);
nextTime += interval;
interpolatedValues.add(nextValue);
nextValue += step;
}
curve["times"] = inject(curve["times"], i, interpolatedTimes);
curve["values"] = inject(curve["values"], i, interpolatedValues);
}
}
}