import { InterpolationModes } from "../constants.js"; import { Interpolant } from "../math/Interpolant.js"; import { CubicInterpolant } from "../math/interpolants/CubicInterpolant.js"; import { DiscreteInterpolant } from "../math/interpolants/DiscreteInterpolant.js"; import { LinearInterpolant } from "../math/interpolants/LinearInterpolant.js"; export interface KeyframeTrackJSON { name: string; times: number[]; values: number[]; interpolation?: InterpolationModes; type: string; } export class KeyframeTrack { /** * @param name * @param times * @param values * @param [interpolation=THREE.InterpolateLinear] */ constructor(name: string, times: ArrayLike, values: ArrayLike, interpolation?: InterpolationModes); name: string; times: Float32Array; values: Float32Array; ValueTypeName: string; TimeBufferType: Float32Array; ValueBufferType: Float32Array; /** * @default THREE.InterpolateLinear */ DefaultInterpolation: InterpolationModes; InterpolantFactoryMethodDiscrete(result: any): DiscreteInterpolant; InterpolantFactoryMethodLinear(result: any): LinearInterpolant; InterpolantFactoryMethodSmooth(result: any): CubicInterpolant; setInterpolation(interpolation: InterpolationModes): KeyframeTrack; getInterpolation(): InterpolationModes; createInterpolant(): Interpolant; getValueSize(): number; shift(timeOffset: number): KeyframeTrack; scale(timeScale: number): KeyframeTrack; trim(startTime: number, endTime: number): KeyframeTrack; validate(): boolean; optimize(): KeyframeTrack; clone(): this; static toJSON(track: KeyframeTrack): KeyframeTrackJSON; }