UNPKG

molstar

Version:

A comprehensive macromolecular library.

74 lines (73 loc) 2.71 kB
/** * Copyright (c) 2025 mol* contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> */ import { BehaviorSubject, Subject } from 'rxjs'; import { WebGLContext } from '../../mol-gl/webgl/context.js'; import { Camera } from '../camera.js'; import { PointerHelper } from './pointer-helper.js'; import { InputObserver } from '../../mol-util/input/input-observer.js'; import { StereoCamera } from '../camera/stereo.js'; import { Scene } from '../../mol-gl/scene.js'; import { Canvas3dInteractionHelper } from './interaction-events.js'; import { ParamDefinition as PD } from '../../mol-util/param-definition.js'; import { Binding } from '../../mol-util/binding.js'; export declare const DefaultXRManagerBindings: { exit: Binding; togglePassthrough: Binding; gestureScale: Binding; }; export declare const DefaultXRManagerAttribs: { bindings: { exit: Binding; togglePassthrough: Binding; gestureScale: Binding; }; }; export type XRManagerAttribs = typeof DefaultXRManagerAttribs; export declare const XRManagerParams: { minTargetDistance: PD.Numeric; disablePostprocessing: PD.BooleanParam; resolutionScale: PD.Numeric; sceneRadiusInMeters: PD.Numeric; }; export type XRManagerParams = typeof XRManagerParams; export type XRManagerProps = PD.Values<XRManagerParams>; export declare class XRManager { private webgl; private input; private scene; private camera; private stereoCamera; private pointerHelper; private interactionHelper; private hoverSub; private keyUpSub; private gestureSub; private sessionChangedSub; readonly togglePassthrough: Subject<void>; readonly sessionChanged: Subject<void>; readonly isSupported: BehaviorSubject<boolean>; private xrSession; get session(): XRSession | undefined; private xrRefSpace; private scaleFactor; private prevScale; private prevInput; private hit; readonly props: XRManagerProps; readonly attribs: XRManagerAttribs; setProps(props: Partial<XRManagerProps>): void; setAttribs(attribs: Partial<XRManagerAttribs>): void; private intersect; setScaleFactor(factor: number): void; resetScale(): void; update(xrFrame?: XRFrame): boolean; private setSession; end(): Promise<void>; private checkSupported; request(): Promise<void>; dispose(): void; constructor(webgl: WebGLContext, input: InputObserver, scene: Scene, camera: Camera, stereoCamera: StereoCamera, pointerHelper: PointerHelper, interactionHelper: Canvas3dInteractionHelper, props?: Partial<XRManagerProps>, attribs?: Partial<XRManagerAttribs>); }