UNPKG

@itwin/core-common

Version:

iTwin.js components common to frontend and backend

192 lines • 5.77 kB
/** @packageDocumentation * @module Tween */ /** * Adapted from: * * Tween.js - Licensed under the MIT license * https://github.com/tweenjs/tween.js * ---------------------------------------------- * * See https://github.com/tweenjs/tween.js/graphs/contributors for the full list of contributors. * Thank you all, you're awesome! */ /** A group of `Tween`s. This class is called `Group` in the tween.js library. * @note Unlike tween.js, we do NOT create any global instances of this class * like the global object `TWEEN` in tween.js. You must create an instance of this class, and then create [[Tween]]s by * calling [[Tweens.create]] or by calling `new Tween()` and pass your Group as its first argument. * @see The [tween.js users guide](https://github.com/tweenjs/tween.js/blob/master/docs/user_guide.md) * @public */ export declare class Tweens { private _tweens; private _tweensAddedDuringUpdate; private _nextId; nextId(): number; getAll(): any[]; removeAll(): void; add(tween: Tween): void; remove(tween: Tween): void; update(time?: number, preserve?: boolean): boolean; /** Create a new Tween owned by this Group. Equivalent to `new TWEEN.Tween` in tween.js library. */ create(from: any, opts?: { to: any; duration: number; onUpdate: UpdateCallback; onComplete?: TweenCallback; delay?: number; start?: boolean; easing?: EasingFunction; interpolation?: InterpolationFunction; }): Tween; } /** * @public * @extensions */ export type TweenCallback = (obj: any) => void; /** * @public * @extensions */ export type UpdateCallback = (obj: any, t: number) => void; /** * @public * @extensions */ export type EasingFunction = (k: number) => number; /** * @public * @extensions */ export type InterpolationFunction = (v: any, k: number) => number; /** A Tween for interpolating values of an object. Instances of this class are owned by a `Tweens` group. * @see The [tween.js users guide](https://github.com/tweenjs/tween.js/blob/master/docs/user_guide.md) * @public */ export declare class Tween { private _group; private _object; private _isPaused; private _pauseStart; private _valuesStart; private _valuesEnd; private _valuesStartRepeat; private _duration; private _repeat; private _repeatDelayTime?; private _yoyo; private _isPlaying; private _reversed; private _delayTime; private _startTime?; private _easingFunction; private _interpolationFunction; private _chainedTweens; private _onStartCallback?; private _onStartCallbackFired; private _onUpdateCallback?; private _onRepeatCallback?; private _onCompleteCallback?; private _onStopCallback?; private _id; constructor(_group: Tweens, _object: any); getId(): number; get isPlaying(): boolean; get isPaused(): boolean; to(properties: any, duration?: number): this; duration(d: number): this; start(time?: string | number): this; stop(): this; end(): this; pause(time: number): this; resume(time?: number): this; stopChainedTweens(): void; group(group: Tweens): this; delay(amount?: number): this; repeat(times: number): this; repeatDelay(amount: number): this; yoyo(yoyo: boolean): this; easing(easingFunction?: EasingFunction): this; interpolation(interpolationFunction?: InterpolationFunction): this; chain(...tweens: Tween[]): this; onStart(callback: TweenCallback): this; onUpdate(callback: UpdateCallback): this; onRepeat(callback: TweenCallback): this; onComplete(callback?: TweenCallback): this; onStop(callback: TweenCallback): this; update(time: number): boolean; } /** Easing functions from tween.js * @public */ export declare const Easing: { Linear: { None: (k: number) => number; }; Quadratic: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Cubic: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Quartic: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Quintic: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Sinusoidal: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Exponential: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Circular: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Elastic: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Back: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; Bounce: { In: (k: number) => number; Out: (k: number) => number; InOut: (k: number) => number; }; }; /** Interpolation functions from tween.js * @public */ export declare const Interpolation: { Linear: (v: any, k: number) => number; Bezier: (v: any, k: number) => number; CatmullRom: (v: any, k: number) => number; Utils: { Linear: (p0: number, p1: number, t: number) => number; Bernstein: (n: number, i: number) => number; Factorial: (n: number) => number; CatmullRom: (p0: number, p1: number, p2: number, p3: number, t: number) => number; }; }; //# sourceMappingURL=Tween.d.ts.map