molstar
Version:
A comprehensive macromolecular library.
74 lines (73 loc) • 2.71 kB
TypeScript
/**
* 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>);
}