Spaces:
Running
Running
import { Interpolant } from '../Interpolant.js'; | |
/** | |
* @author tschw | |
*/ | |
function LinearInterpolant( parameterPositions, sampleValues, sampleSize, resultBuffer ) { | |
Interpolant.call( this, parameterPositions, sampleValues, sampleSize, resultBuffer ); | |
} | |
LinearInterpolant.prototype = Object.assign( Object.create( Interpolant.prototype ), { | |
constructor: LinearInterpolant, | |
interpolate_: function ( i1, t0, t, t1 ) { | |
var result = this.resultBuffer, | |
values = this.sampleValues, | |
stride = this.valueSize, | |
offset1 = i1 * stride, | |
offset0 = offset1 - stride, | |
weight1 = ( t - t0 ) / ( t1 - t0 ), | |
weight0 = 1 - weight1; | |
for ( var i = 0; i !== stride; ++ i ) { | |
result[ i ] = | |
values[ offset0 + i ] * weight0 + | |
values[ offset1 + i ] * weight1; | |
} | |
return result; | |
} | |
} ); | |
export { LinearInterpolant }; | |