123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- type XRSessionMode =
- | "inline"
- | "immersive-vr"
- | "immersive-ar";
- type XRReferenceSpaceType =
- | "viewer"
- | "local"
- | "local-floor"
- | "bounded-floor"
- | "unbounded";
- type XREnvironmentBlendMode =
- | "opaque"
- | "additive"
- | "alpha-blend";
- type XRVisibilityState =
- | "visible"
- | "visible-blurred"
- | "hidden";
- type XRHandedness =
- | "none"
- | "left"
- | "right";
- type XRTargetRayMode =
- | "gaze"
- | "tracked-pointer"
- | "screen";
- type XREye =
- | "none"
- | "left"
- | "right";
- interface XRSpace extends EventTarget {
- }
- interface XRRenderState {
- depthNear?: number;
- depthFar?: number;
- inlineVerticalFieldOfView?: number;
- baseLayer?: XRWebGLLayer;
- }
- interface XRInputSource {
- handedness: XRHandedness;
- targetRayMode: XRTargetRayMode;
- targetRaySpace: XRSpace;
- gripSpace: XRSpace | undefined;
- gamepad: Gamepad | undefined;
- profiles: Array<string>;
- }
- interface XRSession extends XRAnchorCreator {
- addEventListener: Function;
- removeEventListener: Function;
- requestReferenceSpace(type: XRReferenceSpaceType): Promise<XRReferenceSpace>;
- updateRenderState(XRRenderStateInit: XRRenderState): Promise<void>;
- requestAnimationFrame: Function;
- end(): Promise<void>;
- renderState: XRRenderState;
- inputSources: Array<XRInputSource>;
- // AR hit test
- requestHitTest(ray: XRRay, referenceSpace: XRReferenceSpace): Promise<XRHitResult[]>;
- updateWorldTrackingState(options: {
- planeDetectionState?: { enabled: boolean; }
- }): void;
- }
- interface XRReferenceSpace extends XRSpace {
- getOffsetReferenceSpace(originOffset: XRRigidTransform): XRReferenceSpace;
- onreset: any;
- }
- type XRPlaneSet = Set<XRPlane>;
- type XRAnchorSet = Set<XRAnchor>;
- interface XRFrame {
- session: XRSession;
- getViewerPose(referenceSpace: XRReferenceSpace): XRViewerPose | undefined;
- getPose(space: XRSpace, baseSpace: XRSpace): XRPose | undefined;
- // Anchors
- trackedAnchors?: XRAnchorSet;
- // Planes
- worldInformation: {
- detectedPlanes?: XRPlaneSet;
- };
- }
- interface XRViewerPose extends XRPose {
- views: Array<XRView>;
- }
- interface XRPose {
- transform: XRRigidTransform;
- emulatedPosition: boolean;
- }
- interface XRWebGLLayerOptions {
- antialias?: boolean;
- depth?: boolean;
- stencil?: boolean;
- alpha?: boolean;
- multiview?: boolean;
- framebufferScaleFactor?: number;
- }
- declare var XRWebGLLayer: {
- prototype: XRWebGLLayer;
- new(session: XRSession, context: WebGLRenderingContext | undefined, options?: XRWebGLLayerOptions): XRWebGLLayer;
- };
- interface XRWebGLLayer {
- framebuffer: WebGLFramebuffer;
- framebufferWidth: number;
- framebufferHeight: number;
- getViewport: Function;
- }
- declare class XRRigidTransform {
- constructor(matrix: Float32Array);
- position: DOMPointReadOnly;
- orientation: DOMPointReadOnly;
- matrix: Float32Array;
- inverse: XRRigidTransform;
- }
- interface XRView {
- eye: XREye;
- projectionMatrix: Float32Array;
- transform: XRRigidTransform;
- }
- interface XRInputSourceChangeEvent {
- session: XRSession;
- removed: Array<XRInputSource>;
- added: Array<XRInputSource>;
- }
- interface XRInputSourceEvent extends Event {
- readonly frame: XRFrame;
- readonly inputSource: XRInputSource;
- }
- // Experimental(er) features
- declare class XRRay {
- constructor(transformOrOrigin: XRRigidTransform | DOMPointReadOnly, direction?: DOMPointReadOnly);
- origin: DOMPointReadOnly;
- direction: DOMPointReadOnly;
- matrix: Float32Array;
- }
- interface XRHitResult {
- hitMatrix: Float32Array;
- }
- interface XRAnchor {
- // remove?
- id?: string;
- anchorSpace: XRSpace;
- lastChangedTime: number;
- detach(): void;
- }
- interface XRPlane extends XRAnchorCreator {
- orientation: "Horizontal" | "Vertical";
- planeSpace: XRSpace;
- polygon: Array<DOMPointReadOnly>;
- lastChangedTime: number;
- }
- interface XRAnchorCreator {
- // AR Anchors
- createAnchor(pose: XRPose | XRRigidTransform, referenceSpace: XRReferenceSpace): Promise<XRAnchor>;
- }
|