123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- 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";
- type XREventType =
- | "devicechange"
- | "visibilitychange"
- | "end"
- | "inputsourceschange"
- | "select"
- | "selectstart"
- | "selectend"
- | "squeeze"
- | "squeezestart"
- | "squeezeend"
- | "reset";
- 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 XRSessionInit {
- optionalFeatures?: XRReferenceSpaceType[];
- requiredFeatures?: XRReferenceSpaceType[];
- }
- 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>;
- // hit test
- requestHitTestSource(options: XRHitTestOptionsInit): Promise<XRHitTestSource>;
- requestHitTestSourceForTransientInput(options: XRTransientInputHitTestOptionsInit): Promise<XRTransientInputHitTestSource>;
- // legacy AR hit test
- requestHitTest(ray: XRRay, referenceSpace: XRReferenceSpace): Promise<XRHitResult[]>;
- // legacy plane detection
- 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;
- // AR
- getHitTestResults(hitTestSource: XRHitTestSource): Array<XRHitTestResult> ;
- getHitTestResultsForTransientInput(hitTestSource: XRTransientInputHitTestSource): Array<XRTransientInputHitTestResult>;
- // 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 | DOMPointInit, direction?: DOMPointInit);
- 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 | DOMPointInit, direction?: DOMPointInit);
- origin: DOMPointReadOnly;
- direction: DOMPointReadOnly;
- matrix: Float32Array;
- }
- declare enum XRHitTestTrackableType {
- "point",
- "plane"
- }
- interface XRHitResult {
- hitMatrix: Float32Array;
- }
- interface XRTransientInputHitTestResult {
- readonly inputSource: XRInputSource;
- readonly results: Array<XRHitTestResult>;
- }
- interface XRHitTestResult {
- getPose(baseSpace: XRSpace): XRPose | undefined;
- }
- interface XRHitTestSource {
- cancel(): void;
- }
- interface XRTransientInputHitTestSource {
- cancel(): void;
- }
- interface XRHitTestOptionsInit {
- space: XRSpace;
- entityTypes?: Array<XRHitTestTrackableType>;
- offsetRay?: XRRay;
- }
- interface XRTransientInputHitTestOptionsInit {
- profile: string;
- entityTypes?: Array<XRHitTestTrackableType>;
- offsetRay?: XRRay;
- }
- 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>;
- }
|