UNPKG

polygonjs-engine

Version:

node-based webgl 3D engine https://polygonjs.com

39 lines (38 loc) 1.67 kB
import { BaseCameraObjNodeType } from '../../../nodes/obj/_BaseCamera'; import { BaseInputEventNodeType } from '../../../nodes/event/_BaseInput'; import { SceneEventsDispatcher } from './EventsDispatcher'; import { BaseNodeType } from '../../../nodes/_Base'; import { Intersection } from 'three/src/core/Raycaster'; import { CoreGraphNodeId } from '../../../../core/graph/CoreGraph'; import { BaseViewerType } from '../../../viewers/_Base'; interface EventContextValue { node?: BaseNodeType; intersect?: Intersection; } export interface EventContext<E extends Event> { viewer?: Readonly<BaseViewerType>; event?: Readonly<E>; cameraNode?: Readonly<BaseCameraObjNodeType>; value?: EventContextValue; } export declare abstract class BaseSceneEventsController<E extends Event, T extends BaseInputEventNodeType> { private dispatcher; protected _nodes_by_graph_node_id: Map<CoreGraphNodeId, T>; protected _require_canvas_event_listeners: boolean; constructor(dispatcher: SceneEventsDispatcher); registerNode(node: T): void; unregisterNode(node: T): void; abstract type(): string; abstract acceptedEventTypes(): string[]; processEvent(event_context: EventContext<E>): void; updateViewerEventListeners(): void; private _active_event_types; activeEventTypes(): string[]; private _update_active_event_types; } export declare type BaseSceneEventsControllerType = BaseSceneEventsController<Event, BaseInputEventNodeType>; export declare class BaseSceneEventsControllerClass extends BaseSceneEventsController<Event, BaseInputEventNodeType> { type(): string; acceptedEventTypes(): string[]; } export {};