@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
25 lines (24 loc) • 1.17 kB
TypeScript
import { Camera } from 'three';
import { TypedEventNode } from './_Base';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { BaseViewerType } from '../../viewers/_Base';
export interface CameraControls {
name?: string;
enabled?: boolean;
dispose: () => void;
update: (delta: number) => void;
addEventListener: (eventName: string, callback: () => void) => void;
removeEventListener: (eventName: string, callback: () => void) => void;
}
export declare abstract class TypedCameraControlsEventNode<K extends NodeParamsConfig> extends TypedEventNode<K> {
private _controls_by_viewer;
applyControls(camera: Camera, viewer: BaseViewerType): Promise<CameraControls | undefined>;
controls_id(): string;
abstract updateRequired(): boolean;
cook(): void;
abstract setupControls(controls: CameraControls): void;
abstract disposeControlsForHtmlElementId(html_element_id: string): void;
abstract createControlsInstance(camera: Camera, element: HTMLElement): Promise<CameraControls>;
abstract endEventName(): string;
}
export type BaseCameraControlsEventNodeType = TypedCameraControlsEventNode<any>;