import * as quat from '../glmatrix/quat'; import * as vec3 from '../glmatrix/vec3'; import ClayNode from '../Node'; interface SamplerTrackOpts { name?: string; target?: ClayNode; } /** * SamplerTrack manages `position`, `rotation`, `scale` tracks in animation of single scene node. * @constructor * @alias clay.animation.SamplerTrack * @param {Object} [opts] * @param {string} [opts.name] Track name * @param {clay.Node} [opts.target] Target node's transform will updated automatically */ declare class SamplerTrack { name?: string; target?: ClayNode; position: vec3.Vec3Array; rotation: quat.QuatArray; scale: vec3.Vec3Array; channels: { time: Float32Array; position?: Float32Array | undefined; rotation?: Float32Array | undefined; scale?: Float32Array | undefined; }; life: number; private _cacheKey; private _cacheTime; constructor(opts?: SamplerTrackOpts); setTime(time: number): void; /** * Update transform of target node manually */ updateTarget(): void; /** * @return {number} */ getMaxTime(): number; /** * @param {number} startTime * @param {number} endTime * @return {clay.animation.SamplerTrack} */ getSubTrack(startTime: number, endTime: number): SamplerTrack; _findRange(time: number): number[]; /** * 1D blending between two clips */ blend1D(t1: SamplerTrack, t2: SamplerTrack, w: number): void; /** * 2D blending between three clips */ blend2D(t1: SamplerTrack, t2: SamplerTrack, t3: SamplerTrack, f: number, g: number): void; /** * Additive blending between two clips */ additiveBlend(t1: SamplerTrack, t2: SamplerTrack): void; /** * Subtractive blending between two clips */ subtractiveBlend(t1: SamplerTrack, t2: SamplerTrack): void; /** * Clone a new SamplerTrack * @return {clay.animation.SamplerTrack} */ clone(): SamplerTrack; } export default SamplerTrack;