polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
39 lines (38 loc) • 1.67 kB
TypeScript
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 {};