UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

132 lines 3.48 kB
/** * Describes change of a numeric value over time. Values are stored in {@link Keyframe}s, interpolation is defined by tangents on keyframes * Inspired by unity's AnimationCurve, see https://docs.unity3d.com/ScriptReference/AnimationCurve.html */ export class AnimationCurve { /** * * @param {Keyframe[]} keys * @returns {AnimationCurve} */ static from(keys: Keyframe[]): AnimationCurve; /** * * @param {number} [timeStart] * @param {number} [valueStart] * @param {number} [timeEnd] * @param {number} [valueEnd] * @return {AnimationCurve} */ static easeInOut(timeStart?: number, valueStart?: number, timeEnd?: number, valueEnd?: number): AnimationCurve; /** * * @param {number} [timeStart] * @param {number} [timeEnd] * @param {number} [value] * @return {AnimationCurve} */ static constant(timeStart?: number, timeEnd?: number, value?: number): AnimationCurve; /** * * @param {number} [timeStart] * @param {number} [valueStart] * @param {number} [timeEnd] * @param {number} [valueEnd] * @return {AnimationCurve} */ static linear(timeStart?: number, valueStart?: number, timeEnd?: number, valueEnd?: number): AnimationCurve; /** * @readonly * @type {Keyframe[]} */ readonly keys: Keyframe[]; /** * * @param {Keyframe} key * @returns {number} key index where it was inserted at */ add(key: Keyframe): number; /** * * @param {Keyframe[]} keys */ addMany(keys: Keyframe[]): void; /** * * @param {Keyframe} key * @returns {boolean} */ remove(key: Keyframe): boolean; /** * Remove all keys */ clear(): void; /** * Number of keys * @returns {number} */ get length(): number; /** * Time of the first keyframe, returns 0 if there are no keys * @returns {number} */ get start_time(): number; /** * Time of the last chronological key in the curve * @return {number} */ get end_time(): number; /** * Time difference between first and last frame * @returns {number} */ get duration(): number; /** * * @param {number} time time in seconds * @return {number} */ evaluate(time: number): number; /** * Set tangents of a key to match surrounding keys * Produces a smoother looking curve * @param {number} index index of keyframe */ alignTangents(index: number): void; /** * * @param {number} index Index of keyframe to be affected * @param {number} weight How much smoothing to apply, 1 will be fully smoothed out and 0 will have no effect at all. Value between 0 and 1 */ smoothTangents(index: number, weight: number): void; smoothAllTangents(): void; /** * * @param {AnimationCurve} other * @return {boolean} */ equals(other: AnimationCurve): boolean; /** * The copy is deep * @param {AnimationCurve} other */ copy(other: AnimationCurve): void; /** * * @return {AnimationCurve} */ clone(): AnimationCurve; /** * * @return {number} */ hash(): number; toJSON(): { keys: any[]; }; fromJSON({ keys }: { keys?: any[]; }): void; } import { Keyframe } from "./Keyframe.js"; //# sourceMappingURL=AnimationCurve.d.ts.map