import { BlendAnimatorTarget } from './BlendAnimator'; import Clip from './Clip'; import SamplerTrack from './SamplerTrack'; interface TrackAnimatorOpts { name: string; tracks: SamplerTrack[]; loop: boolean; } interface TrackAnimator extends BlendAnimatorTarget { } /** * Animation clip that manage a collection of {@link clay.animation.SamplerTrack} */ declare class TrackAnimator { tracks: SamplerTrack[]; name: string; private _range?; private _life; private _loop; private _clip?; constructor(opts?: Partial); start(): void; setRange(range: number[]): void; setTime(time: number): void; calcLifeFromTracks(): void; addTrack(track: SamplerTrack): void; removeTarck(track: SamplerTrack): void; /** * @param {number} startTime * @param {number} endTime * @param {boolean} isLoop * @return {clay.animation.TrackClip} */ getSubAnimator(startTime: number, endTime: number, isLoop?: boolean): TrackAnimator; /** * 1d blending from two skinning animators */ blend1D(animator1: BlendAnimatorTarget, animator2: BlendAnimatorTarget, w: number): void; /** * Additive blending from two skinning clips */ additiveBlend(animator1: BlendAnimatorTarget, animator2: BlendAnimatorTarget): void; /** * Subtractive blending from two skinning animators */ subtractiveBlend(animator1: BlendAnimatorTarget, animator2: BlendAnimatorTarget): void; /** * 2D blending from three skinning animators */ blend2D(animator1: TrackAnimator, animator2: TrackAnimator, animator3: TrackAnimator, f: number, g: number): void; /** * Copy SRT of all joints clips from another TrackClip */ copy(animator: TrackAnimator): void; clone(): TrackAnimator; getLife(): number; setLife(life: number): void; getClip(): Clip | undefined; } export default TrackAnimator;