@itwin/core-common
Version:
iTwin.js components common to frontend and backend
192 lines • 5.77 kB
TypeScript
/** @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