UNPKG

@openhps/core

Version:

Open Hybrid Positioning System - Core component

78 lines (51 loc) 2.07 kB
// https://threejs.org/docs/#api/en/renderers/webxr/WebXRManager /// <reference types="webxr" /> import { ArrayCamera } from "../../cameras/ArrayCamera.js"; import { PerspectiveCamera } from "../../cameras/PerspectiveCamera.js"; import { EventDispatcher } from "../../core/EventDispatcher.js"; import { Vector4 } from "../../math/Vector4.js"; import { WebGLRenderer } from "../WebGLRenderer.js"; import { XRGripSpace, XRHandSpace, XRTargetRaySpace } from "./WebXRController.js"; export type WebXRCamera = PerspectiveCamera & { viewport: Vector4 }; export type WebXRArrayCamera = Omit<ArrayCamera, "cameras"> & { cameras: [WebXRCamera, WebXRCamera] }; export interface WebXRManagerEventMap { sessionstart: {}; sessionend: {}; planeadded: { data: XRPlane }; planeremoved: { data: XRPlane }; planechanged: { data: XRPlane }; planesdetected: { data: XRPlaneSet }; } export class WebXRManager extends EventDispatcher<WebXRManagerEventMap> { constructor(renderer: WebGLRenderer, gl: WebGLRenderingContext); /** * @default false */ enabled: boolean; /** * @default false */ isPresenting: boolean; /** * @default true */ cameraAutoUpdate: boolean; getController(index: number): XRTargetRaySpace; getControllerGrip(index: number): XRGripSpace; getHand(index: number): XRHandSpace; setFramebufferScaleFactor(value: number): void; setReferenceSpaceType(value: XRReferenceSpaceType): void; getReferenceSpace(): XRReferenceSpace | null; setReferenceSpace(value: XRReferenceSpace): void; getBaseLayer(): XRWebGLLayer | XRProjectionLayer; getBinding(): XRWebGLBinding; getFrame(): XRFrame; getSession(): XRSession | null; setSession(value: XRSession | null): Promise<void>; getCamera(): WebXRArrayCamera; updateCamera(camera: PerspectiveCamera): void; setAnimationLoop(callback: XRFrameRequestCallback | null): void; getFoveation(): number | undefined; setFoveation(value: number): void; dispose(): void; }