function Interpolant(parameterPositions, sampleValues, sampleSize, resultBuffer) {

  this.parameterPositions = parameterPositions;
  this._cachedIndex = 0;

  this.resultBuffer = resultBuffer !== undefined ?
    resultBuffer : new sampleValues.constructor(sampleSize);
  this.sampleValues = sampleValues;
  this.valueSize = sampleSize;

}
Abstract base class of interpolants over parametric samples.

The parameter domain is one dimensional, typically the time or a path
along a curve defined by the data.

The sample values can have any dimensionality and derived classes may
apply special interpretations to the data.

This class provides the interval seek in a Template Method, deferring
the actual interpolation to derived classes.

Time complexity is O(1) for linear access crossing at most two points
and O(log N) for random access, where N is the number of positions.

References:

   http://www.oodesign.com/template-method-pattern.html

@author tschw