@lightningjs/renderer
Version:
Lightning 3 Renderer
47 lines (46 loc) • 1.35 kB
TypeScript
import { type CoreNode, type CoreNodeAnimateProps } from '../CoreNode.js';
import { type TimingFunction } from '../utils.js';
import { EventEmitter } from '../../common/EventEmitter.js';
export interface AnimationSettings {
duration: number;
delay: number;
easing: string | TimingFunction;
loop: boolean;
repeat: number;
stopMethod: 'reverse' | 'reset' | false;
}
type PropValues = {
start: number;
target: number;
isColor: boolean;
};
type PropGroup = {
keys: string[];
values: PropValues[];
};
type PropValuesMap = {
props: PropGroup | null;
shaderProps: PropGroup | null;
};
export declare class CoreAnimation extends EventEmitter {
private node;
private props;
readonly id: number;
settings: AnimationSettings;
private progress;
private delayFor;
private delay;
private timingFunction;
propValuesMap: PropValuesMap;
constructor(node: CoreNode, props: Partial<CoreNodeAnimateProps>, settings: Partial<AnimationSettings>);
reset(): void;
private restoreValues;
restore(): void;
private reverseValues;
reverse(): void;
private applyEasing;
updateValue(isColor: boolean, propValue: number, startValue: number, easing: string | TimingFunction | undefined): number;
private updateValues;
update(dt: number): void;
}
export {};