WeightSpline

new LSGlobe.WeightSpline(options)

A spline that linearly interpolates over an array of weight values used by morph targets.
Name Type Description
options Object Object with the following properties:
Name Type Description
times Array.<Number> An array of strictly increasing, unit-less, floating-point times at each point. The values are in no way connected to the clock time. They are the parameterization for the curve.
weights Array.<Number> The array of floating-point control weights given. The weights are ordered such that all weights for the targets are given in chronological order and order in which they appear in the glTF from which the morph targets come. This means for 2 targets, weights = [w(0,0), w(0,1), w(1,0), w(1,1) ...] where i and j in w(i,j) are the time indices and target indices, respectively.
Throws:
Example:
var times = [ 0.0, 1.5, 3.0, 4.5, 6.0 ];
var weights = [0.0, 1.0, 0.25, 0.75, 0.5, 0.5, 0.75, 0.25, 1.0, 0.0]; //Two targets
var spline = new LSGlobe.WeightSpline({
    times : times,
    weights : weights
});

var p0 = spline.evaluate(times[0]);
See:

Members

readonly times : Array.<Number>

An array of times for the control weights.

readonly weights : Array.<Number>

An array of floating-point array control weights.

Methods

clampTime(time)Number

Clamps the given time to the period covered by the spline.
Name Type Description
time Number The time.
Returns:
The time, clamped to the animation period.

evaluate(time, result)Array.<Number>

Evaluates the curve at a given time.
Name Type Description
time Number The time at which to evaluate the curve.
result Array.<Number> optional The object onto which to store the result.
Returns:
The modified result parameter or a new instance of the point on the curve at the given time.
Throws:
  • DeveloperError : time must be in the range [t0, tn], where t0 is the first element in the array times and tn is the last element in the array times.

findTimeInterval(time)Number

Finds an index i in times such that the parameter time is in the interval [times[i], times[i + 1]].
Name Type Description
time Number The time.
Returns:
The index for the element at the start of the interval.
Throws:
  • DeveloperError : time must be in the range [t0, tn], where t0 is the first element in the array times and tn is the last element in the array times.

wrapTime(time)Number

Wraps the given time to the period covered by the spline.
Name Type Description
time Number The time.
Returns:
The time, wrapped around to the updated animation.