@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
73 lines (72 loc) • 2.93 kB
TypeScript
import { PolyScene } from '../PolyScene';
import { CoreGraphNode } from '../../../core/graph/CoreGraphNode';
export declare const DESIRED_FPS = 60;
export type onTimeTickHook = (delta: number) => void;
export type onPlayingStateChangeCallback = () => void;
export interface TimeControllerUpdateTimeOptions {
updateClockDelta?: boolean;
}
export declare const TIME_CONTROLLER_UPDATE_TIME_OPTIONS_DEFAULT: TimeControllerUpdateTimeOptions;
type onTimeTickCallbacksMap = Map<string, onTimeTickHook>;
export declare class TimeController {
private scene;
static START_FRAME: Readonly<number>;
private _frame;
private _timeUniform;
private _timeDeltaUniform;
private _graphNode;
private _realtimeState;
private _maxFrame;
private _maxFrameLocked;
private _playing;
private _clock;
constructor(scene: PolyScene);
get graphNode(): CoreGraphNode;
dispose(): void;
updateClockDelta(): number;
delta(): number;
setDelta(delta: number): number;
frame(): number;
timeUniform(): import("@vue/reactivity").Ref<number>;
timeDeltaUniform(): import("@vue/reactivity").Ref<number>;
time(): number;
maxFrame(): number;
maxFrameLocked(): boolean;
realtimeState(): boolean;
setMaxFrame(maxFrame: number): void;
setMaxFrameLocked(state: boolean): void;
setRealtimeState(state: boolean): void;
setTime(time: number, updateFrame?: boolean): void;
setFrame(frame: number, updateTime?: boolean): void;
setFrameToStart(): void;
incrementTimeIfPlaying(options?: TimeControllerUpdateTimeOptions): void;
incrementTime(options?: TimeControllerUpdateTimeOptions): void;
private _ensureFrameWithinBounds;
playing(): boolean;
pause(): void;
play(): void;
togglePlayPause(): void;
private _playAllowedWithoutAllNodesCooked;
forbidPlayUntilAllNodesCooked(): void;
private _onBeforeTickCallbacksMap;
private _onAfterTickCallbacksMap;
private _onPlayingStateChangeCallbacksMap;
private _onBeforeTickCallbacks;
private _onAfterTickCallbacks;
private _onPlayingStateChangeCallbacks;
registerOnBeforeTick(callbackName: string, callback: onTimeTickHook): void;
unRegisterOnBeforeTick(callbackName: string): void;
registeredBeforeTickCallbacks(): Map<any, any>;
hasBeforeTickCallback(callbackName: string): boolean;
registerOnAfterTick(callbackName: string, callback: onTimeTickHook): void;
unRegisterOnAfterTick(callbackName: string): void;
registeredAfterTickCallbacks(): onTimeTickCallbacksMap;
hasAfterTickCallback(callbackName: string): boolean;
onPlayingStateChange(callback: onPlayingStateChangeCallback): void;
removeOnPlayingStateChange(callback: onPlayingStateChangeCallback): void;
private _updateOnPlayingStateChangeCallbacks;
private _registerCallback;
private _unregisterCallback;
private _updateCallbacks;
}
export {};