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