UNPKG

@polygonjs/polygonjs

Version:

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

39 lines (38 loc) 1.66 kB
/// <reference types="webxr" /> import { Camera, WebGLRenderer } from 'three'; import type { PolyScene } from '../../engine/scene/PolyScene'; import { CoreWebXRControllerOptions } from './Common'; import { CoreWebXRControllerContainer } from './CoreWebXRControllerContainer'; export type OnWebXRSessionStartedCallback = (session: XRSession) => Promise<void>; export declare abstract class BaseCoreWebXRController { protected scene: PolyScene; protected renderer: WebGLRenderer; protected camera: Camera; private canvas; protected options: CoreWebXRControllerOptions; protected controllerContainers: CoreWebXRControllerContainer[]; constructor(scene: PolyScene, renderer: WebGLRenderer, camera: Camera, canvas: HTMLCanvasElement, options: CoreWebXRControllerOptions); getController(controllerIndex: number): CoreWebXRControllerContainer; mount(): void; unmount(): void; requestSession(sessionInit: XRSessionInit, callback: OnWebXRSessionStartedCallback): void; private _addStartEndEvents; private _removedStartEndEvents; private _createController; protected _addControllerEvents(controllerContainer: CoreWebXRControllerContainer, controllerIndex: number): void; process(frame?: XRFrame): void; private _onSessionStartBound; private _onSessionEndBound; protected _onSessionStart(): void; protected _onSessionEnd(): void; /** * * BUTTONS * */ private _buttonByCanvasId; abstract createButton(): HTMLElement; private _mountButton; abstract attachButton(parentElement: HTMLElement, buttonElement: HTMLElement): void; private _unmountButton; }