import { Object3D, TinoeNode } from '@tinoe/glc'; import { TRANSFORM_TYPE } from './constant'; import { Channel, KeyFrame, InterpolationEquation, Value, InterpolationTransformOptions, InterpolationTransformOptionsWithEndValue, InterpolationTransformOptionsWithCSS } from './types'; import { AnimationClip } from './animation-clip'; export declare class InterpolationAnimationClip extends AnimationClip { protected _equation: InterpolationEquation; get duration(): number; get startTime(): number; get endTime(): number; private _keyFrames; constructor({ keyFrames, equation, onUpdate, }: { keyFrames: KeyFrame[]; equation: InterpolationEquation; onUpdate: (value: V) => void; }); update(frameTime: number): void; /** * 插值计算 * @param sampler * @param frameIndex * @param nextFrameIndex * @param alpha * @returns */ private _interpolateValues; /** * Get current frame keys and weight between these frames * @param channel * @param frameTime * @param playMode * @returns */ private _getFrameAndWeight; /** * * @param node * @param options * @returns */ static fromChannel({ sampler, path, node }: Channel): InterpolationAnimationClip; static fromChannels(channels: Channel[]): InterpolationAnimationClip[]; /** * 用关键帧的方式创建动画片段的最终实现 * @param node * @param options * @returns */ private static _fromTransformF; /** * 用关键帧的方式创建平移动画片段 * @param node * @param options */ static fromTranslateF(node: K, options: InterpolationTransformOptions): InterpolationAnimationClip>; /** * 用终值的方式创建平移动画片段 * @param node * @param options */ static fromTranslateF(node: Object3D, options: InterpolationTransformOptionsWithEndValue): InterpolationAnimationClip>; /** * 用关键帧的方式创建旋转动画片段 * @param node * @param options */ static fromRotateF(node: K, options: InterpolationTransformOptions): InterpolationAnimationClip>; /** * 用终值的方式创建旋转动画片段 * @param node * @param options */ static fromRotateF(node: K, options: InterpolationTransformOptionsWithEndValue): InterpolationAnimationClip>; /** * 用关键帧的方式创建缩放动画片段 * @param node * @param options */ static fromScaleF(node: K, options: InterpolationTransformOptions): InterpolationAnimationClip>; /** * 用终值的方式创建缩放动画片段 * @param node * @param options */ static fromScaleF(node: K, options: InterpolationTransformOptionsWithEndValue): InterpolationAnimationClip>; /** * 用类似CSS3关键帧形式构建动画片段 */ static fromAnimateF(node: K, { keyFrames, duration }: Pick, 'keyFrames' | 'duration'>): any[]; }