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 );
}
}
}