iwer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/build/iwer.js +4628 -0
  2. package/build/iwer.min.js +1 -0
  3. package/build/iwer.module.js +4591 -0
  4. package/build/iwer.module.min.js +1 -0
  5. package/lib/action/ActionPlayer.d.ts +75 -0
  6. package/lib/action/ActionPlayer.d.ts.map +1 -0
  7. package/lib/action/ActionPlayer.js +206 -0
  8. package/lib/action/ActionPlayer.js.map +1 -0
  9. package/lib/action/ActionRecorder.d.ts +59 -0
  10. package/lib/action/ActionRecorder.d.ts.map +1 -0
  11. package/lib/action/ActionRecorder.js +162 -0
  12. package/lib/action/ActionRecorder.js.map +1 -0
  13. package/lib/action/Capture.d.ts +3 -0
  14. package/lib/action/Capture.d.ts.map +1 -0
  15. package/lib/action/Capture.js +26907 -0
  16. package/lib/action/Capture.js.map +1 -0
  17. package/lib/device/XRController.d.ts +24 -0
  18. package/lib/device/XRController.d.ts.map +1 -0
  19. package/lib/device/XRController.js +82 -0
  20. package/lib/device/XRController.js.map +1 -0
  21. package/lib/device/XRDevice.d.ts +142 -0
  22. package/lib/device/XRDevice.d.ts.map +1 -0
  23. package/lib/device/XRDevice.js +370 -0
  24. package/lib/device/XRDevice.js.map +1 -0
  25. package/lib/device/XRHandInput.d.ts +44 -0
  26. package/lib/device/XRHandInput.d.ts.map +1 -0
  27. package/lib/device/XRHandInput.js +133 -0
  28. package/lib/device/XRHandInput.js.map +1 -0
  29. package/lib/device/XRTrackedInput.d.ts +22 -0
  30. package/lib/device/XRTrackedInput.d.ts.map +1 -0
  31. package/lib/device/XRTrackedInput.js +89 -0
  32. package/lib/device/XRTrackedInput.js.map +1 -0
  33. package/lib/device/configs/controller/meta.d.ts +6 -0
  34. package/lib/device/configs/controller/meta.d.ts.map +1 -0
  35. package/lib/device/configs/controller/meta.js +152 -0
  36. package/lib/device/configs/controller/meta.js.map +1 -0
  37. package/lib/device/configs/hand/pinch.d.ts +3 -0
  38. package/lib/device/configs/hand/pinch.d.ts.map +1 -0
  39. package/lib/device/configs/hand/pinch.js +237 -0
  40. package/lib/device/configs/hand/pinch.js.map +1 -0
  41. package/lib/device/configs/hand/point.d.ts +3 -0
  42. package/lib/device/configs/hand/point.d.ts.map +1 -0
  43. package/lib/device/configs/hand/point.js +236 -0
  44. package/lib/device/configs/hand/point.js.map +1 -0
  45. package/lib/device/configs/hand/relaxed.d.ts +3 -0
  46. package/lib/device/configs/hand/relaxed.d.ts.map +1 -0
  47. package/lib/device/configs/hand/relaxed.js +236 -0
  48. package/lib/device/configs/hand/relaxed.js.map +1 -0
  49. package/lib/device/configs/headset/meta.d.ts +6 -0
  50. package/lib/device/configs/headset/meta.d.ts.map +1 -0
  51. package/lib/device/configs/headset/meta.js +99 -0
  52. package/lib/device/configs/headset/meta.js.map +1 -0
  53. package/lib/device/controllers.d.ts +31 -0
  54. package/lib/device/controllers.d.ts.map +1 -0
  55. package/lib/device/controllers.js +8 -0
  56. package/lib/device/controllers.js.map +1 -0
  57. package/lib/events/XRInputSourceEvent.d.ts +16 -0
  58. package/lib/events/XRInputSourceEvent.d.ts.map +1 -0
  59. package/lib/events/XRInputSourceEvent.js +14 -0
  60. package/lib/events/XRInputSourceEvent.js.map +1 -0
  61. package/lib/events/XRInputSourcesChangeEvent.d.ts +18 -0
  62. package/lib/events/XRInputSourcesChangeEvent.d.ts.map +1 -0
  63. package/lib/events/XRInputSourcesChangeEvent.js +18 -0
  64. package/lib/events/XRInputSourcesChangeEvent.js.map +1 -0
  65. package/lib/events/XRReferenceSpaceEvent.d.ts +16 -0
  66. package/lib/events/XRReferenceSpaceEvent.d.ts.map +1 -0
  67. package/lib/events/XRReferenceSpaceEvent.js +11 -0
  68. package/lib/events/XRReferenceSpaceEvent.js.map +1 -0
  69. package/lib/events/XRSessionEvent.d.ts +13 -0
  70. package/lib/events/XRSessionEvent.d.ts.map +1 -0
  71. package/lib/events/XRSessionEvent.js +10 -0
  72. package/lib/events/XRSessionEvent.js.map +1 -0
  73. package/lib/frameloop/XRFrame.d.ts +28 -0
  74. package/lib/frameloop/XRFrame.d.ts.map +1 -0
  75. package/lib/frameloop/XRFrame.js +117 -0
  76. package/lib/frameloop/XRFrame.js.map +1 -0
  77. package/lib/gamepad/Gamepad.d.ts +72 -0
  78. package/lib/gamepad/Gamepad.d.ts.map +1 -0
  79. package/lib/gamepad/Gamepad.js +126 -0
  80. package/lib/gamepad/Gamepad.js.map +1 -0
  81. package/lib/index.d.ts +24 -0
  82. package/lib/index.d.ts.map +1 -0
  83. package/lib/index.js +36 -0
  84. package/lib/index.js.map +1 -0
  85. package/lib/initialization/XRSystem.d.ts +13 -0
  86. package/lib/initialization/XRSystem.d.ts.map +1 -0
  87. package/lib/initialization/XRSystem.js +65 -0
  88. package/lib/initialization/XRSystem.js.map +1 -0
  89. package/lib/input/XRHand.d.ts +31 -0
  90. package/lib/input/XRHand.d.ts.map +1 -0
  91. package/lib/input/XRHand.js +31 -0
  92. package/lib/input/XRHand.js.map +1 -0
  93. package/lib/input/XRInputSource.d.ts +37 -0
  94. package/lib/input/XRInputSource.d.ts.map +1 -0
  95. package/lib/input/XRInputSource.js +51 -0
  96. package/lib/input/XRInputSource.js.map +1 -0
  97. package/lib/input/XRInputSourceArray.d.ts +11 -0
  98. package/lib/input/XRInputSourceArray.d.ts.map +1 -0
  99. package/lib/input/XRInputSourceArray.js +17 -0
  100. package/lib/input/XRInputSourceArray.js.map +1 -0
  101. package/lib/layers/XRWebGLLayer.d.ts +31 -0
  102. package/lib/layers/XRWebGLLayer.d.ts.map +1 -0
  103. package/lib/layers/XRWebGLLayer.js +67 -0
  104. package/lib/layers/XRWebGLLayer.js.map +1 -0
  105. package/lib/pose/XRJointPose.d.ts +11 -0
  106. package/lib/pose/XRJointPose.d.ts.map +1 -0
  107. package/lib/pose/XRJointPose.js +12 -0
  108. package/lib/pose/XRJointPose.js.map +1 -0
  109. package/lib/pose/XRPose.d.ts +16 -0
  110. package/lib/pose/XRPose.d.ts.map +1 -0
  111. package/lib/pose/XRPose.js +24 -0
  112. package/lib/pose/XRPose.js.map +1 -0
  113. package/lib/pose/XRViewerPose.d.ts +12 -0
  114. package/lib/pose/XRViewerPose.d.ts.map +1 -0
  115. package/lib/pose/XRViewerPose.js +14 -0
  116. package/lib/pose/XRViewerPose.js.map +1 -0
  117. package/lib/primitives/XRRigidTransform.d.ts +17 -0
  118. package/lib/primitives/XRRigidTransform.d.ts.map +1 -0
  119. package/lib/primitives/XRRigidTransform.js +54 -0
  120. package/lib/primitives/XRRigidTransform.js.map +1 -0
  121. package/lib/session/XRRenderState.d.ts +22 -0
  122. package/lib/session/XRRenderState.d.ts.map +1 -0
  123. package/lib/session/XRRenderState.js +26 -0
  124. package/lib/session/XRRenderState.js.map +1 -0
  125. package/lib/session/XRSession.d.ts +103 -0
  126. package/lib/session/XRSession.d.ts.map +1 -0
  127. package/lib/session/XRSession.js +459 -0
  128. package/lib/session/XRSession.js.map +1 -0
  129. package/lib/spaces/XRJointSpace.d.ts +13 -0
  130. package/lib/spaces/XRJointSpace.d.ts.map +1 -0
  131. package/lib/spaces/XRJointSpace.js +12 -0
  132. package/lib/spaces/XRJointSpace.js.map +1 -0
  133. package/lib/spaces/XRReferenceSpace.d.ts +22 -0
  134. package/lib/spaces/XRReferenceSpace.d.ts.map +1 -0
  135. package/lib/spaces/XRReferenceSpace.js +42 -0
  136. package/lib/spaces/XRReferenceSpace.js.map +1 -0
  137. package/lib/spaces/XRSpace.d.ts +20 -0
  138. package/lib/spaces/XRSpace.d.ts.map +1 -0
  139. package/lib/spaces/XRSpace.js +45 -0
  140. package/lib/spaces/XRSpace.js.map +1 -0
  141. package/lib/utils/DOMPointReadOnly.d.ts +17 -0
  142. package/lib/utils/DOMPointReadOnly.d.ts.map +1 -0
  143. package/lib/utils/DOMPointReadOnly.js +26 -0
  144. package/lib/utils/DOMPointReadOnly.js.map +1 -0
  145. package/lib/utils/Math.d.ts +49 -0
  146. package/lib/utils/Math.d.ts.map +1 -0
  147. package/lib/utils/Math.js +129 -0
  148. package/lib/utils/Math.js.map +1 -0
  149. package/lib/version.d.ts +2 -0
  150. package/lib/version.d.ts.map +1 -0
  151. package/lib/version.js +2 -0
  152. package/lib/version.js.map +1 -0
  153. package/lib/views/XRView.d.ts +25 -0
  154. package/lib/views/XRView.d.ts.map +1 -0
  155. package/lib/views/XRView.js +39 -0
  156. package/lib/views/XRView.js.map +1 -0
  157. package/lib/views/XRViewport.d.ts +15 -0
  158. package/lib/views/XRViewport.d.ts.map +1 -0
  159. package/lib/views/XRViewport.js +19 -0
  160. package/lib/views/XRViewport.js.map +1 -0
  161. package/package.json +63 -0
@@ -0,0 +1,51 @@
1
+ export var XRHandedness;
2
+ (function (XRHandedness) {
3
+ XRHandedness["None"] = "none";
4
+ XRHandedness["Left"] = "left";
5
+ XRHandedness["Right"] = "right";
6
+ })(XRHandedness || (XRHandedness = {}));
7
+ export var XRTargetRayMode;
8
+ (function (XRTargetRayMode) {
9
+ XRTargetRayMode["Gaze"] = "gaze";
10
+ XRTargetRayMode["TrackedPointer"] = "tracked-pointer";
11
+ XRTargetRayMode["Screen"] = "screen";
12
+ XRTargetRayMode["TransientPointer"] = "transient-pointer";
13
+ })(XRTargetRayMode || (XRTargetRayMode = {}));
14
+ export class XRInputSourceArray extends Array {
15
+ }
16
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-input-source');
17
+ export class XRInputSource {
18
+ constructor(handedness, targetRayMode, profiles, targetRaySpace, gamepad, gripSpace, hand) {
19
+ this[PRIVATE] = {
20
+ handedness,
21
+ targetRayMode,
22
+ targetRaySpace,
23
+ gripSpace,
24
+ profiles,
25
+ gamepad,
26
+ hand,
27
+ };
28
+ }
29
+ get handedness() {
30
+ return this[PRIVATE].handedness;
31
+ }
32
+ get targetRayMode() {
33
+ return this[PRIVATE].targetRayMode;
34
+ }
35
+ get targetRaySpace() {
36
+ return this[PRIVATE].targetRaySpace;
37
+ }
38
+ get gripSpace() {
39
+ return this[PRIVATE].gripSpace;
40
+ }
41
+ get profiles() {
42
+ return this[PRIVATE].profiles;
43
+ }
44
+ get gamepad() {
45
+ return this[PRIVATE].gamepad;
46
+ }
47
+ get hand() {
48
+ return this[PRIVATE].hand;
49
+ }
50
+ }
51
+ //# sourceMappingURL=XRInputSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRInputSource.js","sourceRoot":"","sources":["../../src/input/XRInputSource.ts"],"names":[],"mappings":"AAIA,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACvB,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,+BAAe,CAAA;AAChB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IAC1B,gCAAa,CAAA;IACb,qDAAkC,CAAA;IAClC,oCAAiB,CAAA;IACjB,yDAAsC,CAAA;AACvC,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAoB;CAAG;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAC5B,kDAAkD,CAClD,CAAC;AAEF,MAAM,OAAO,aAAa;IAWzB,YACC,UAAwB,EACxB,aAA8B,EAC9B,QAAkB,EAClB,cAAuB,EACvB,OAAiB,EACjB,SAAmB,EACnB,IAAa;QAEb,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,UAAU;YACV,aAAa;YACb,cAAc;YACd,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;SACJ,CAAC;IACH,CAAC;IAED,IAAI,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IACjC,CAAC;IAED,IAAI,aAAa;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;IACpC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IAC3B,CAAC;CACD"}
@@ -0,0 +1,11 @@
1
+ import { XRInputSource } from './XRInputSource';
2
+ export declare const PRIVATE: unique symbol;
3
+ export declare class XRInputSourceArray {
4
+ [PRIVATE]: {
5
+ inputSources: XRInputSource[];
6
+ };
7
+ [Symbol.iterator](): IterableIterator<XRInputSource>;
8
+ get length(): number;
9
+ getter(index: number): XRInputSource | undefined;
10
+ }
11
+ //# sourceMappingURL=XRInputSourceArray.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRInputSourceArray.d.ts","sourceRoot":"","sources":["../../src/input/XRInputSourceArray.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,eAAO,MAAM,OAAO,eAA0D,CAAC;AAE/E,qBAAa,kBAAkB;IAC9B,CAAC,OAAO,CAAC,EAAE;QACV,YAAY,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAwB;IAEzB,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;CAGhD"}
@@ -0,0 +1,17 @@
1
+ var _a;
2
+ export const PRIVATE = Symbol('@immersive-web-polyfill/xr-input-source-array');
3
+ export class XRInputSourceArray {
4
+ constructor() {
5
+ this[_a] = { inputSources: [] };
6
+ }
7
+ [(_a = PRIVATE, Symbol.iterator)]() {
8
+ return this[PRIVATE].inputSources.values();
9
+ }
10
+ get length() {
11
+ return this[PRIVATE].inputSources.length;
12
+ }
13
+ getter(index) {
14
+ return this[PRIVATE].inputSources[index];
15
+ }
16
+ }
17
+ //# sourceMappingURL=XRInputSourceArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRInputSourceArray.js","sourceRoot":"","sources":["../../src/input/XRInputSourceArray.ts"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,+CAA+C,CAAC,CAAC;AAE/E,MAAM,OAAO,kBAAkB;IAA/B;QACC,QAAS,GAEL,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAa1B,CAAC;IAXA,OAJC,OAAO,EAIP,MAAM,CAAC,QAAQ,EAAC;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAa;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACD"}
@@ -0,0 +1,31 @@
1
+ import { XRSession } from '../session/XRSession';
2
+ import { XRView } from '../views/XRView';
3
+ export declare class XRLayer extends EventTarget {
4
+ }
5
+ export declare const PRIVATE: unique symbol;
6
+ type LayerInit = {
7
+ antialias?: boolean;
8
+ depth?: boolean;
9
+ stencil?: boolean;
10
+ alpha?: boolean;
11
+ ignoreDepthValues?: boolean;
12
+ framebufferScaleFactor?: number;
13
+ };
14
+ export declare class XRWebGLLayer extends XRLayer {
15
+ [PRIVATE]: {
16
+ session: XRSession;
17
+ context: WebGLRenderingContext | WebGL2RenderingContext;
18
+ antialias: boolean;
19
+ };
20
+ constructor(session: XRSession, context: WebGLRenderingContext | WebGL2RenderingContext, layerInit?: LayerInit);
21
+ get context(): WebGLRenderingContext | WebGL2RenderingContext;
22
+ get antialias(): boolean;
23
+ get ignoreDepthValues(): boolean;
24
+ get framebuffer(): null;
25
+ get framebufferWidth(): number;
26
+ get framebufferHeight(): number;
27
+ getViewport(view: XRView): import("..").XRViewport;
28
+ static getNativeFramebufferScaleFactor(session: XRSession): number;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=XRWebGLLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRWebGLLayer.d.ts","sourceRoot":"","sources":["../../src/layers/XRWebGLLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAA6B,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIpE,qBAAa,OAAQ,SAAQ,WAAW;CAAG;AAE3C,eAAO,MAAM,OAAO,eAA0D,CAAC;AAE/E,KAAK,SAAS,GAAG;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAWF,qBAAa,YAAa,SAAQ,OAAO;IACxC,CAAC,OAAO,CAAC,EAAE;QACV,OAAO,EAAE,SAAS,CAAC;QACnB,OAAO,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;QACxD,SAAS,EAAE,OAAO,CAAC;KACnB,CAAC;gBAGD,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,qBAAqB,GAAG,sBAAsB,EACvD,SAAS,GAAE,SAAc;IAqB1B,IAAI,OAAO,mDAEV;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,iBAAiB,YAEpB;IAED,IAAI,WAAW,SAEd;IAED,IAAI,gBAAgB,WAEnB;IAED,IAAI,iBAAiB,WAEpB;IAED,WAAW,CAAC,IAAI,EAAE,MAAM;IAaxB,MAAM,CAAC,+BAA+B,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM;CAclE"}
@@ -0,0 +1,67 @@
1
+ import { PRIVATE as XRSESSION_PRIVATE, XRSession } from '../session/XRSession';
2
+ import { PRIVATE as XRVIEW_PRIVATE } from '../views/XRView';
3
+ import { PRIVATE as XRDEVICE_PRIVATE } from '../device/XRDevice';
4
+ export class XRLayer extends EventTarget {
5
+ }
6
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/XRWebGLLayer');
7
+ const defaultLayerInit = {
8
+ antialias: true,
9
+ depth: true,
10
+ stencil: false,
11
+ alpha: true,
12
+ ignoreDepthValues: false,
13
+ framebufferScaleFactor: 1.0,
14
+ };
15
+ export class XRWebGLLayer extends XRLayer {
16
+ constructor(session, context, layerInit = {}) {
17
+ super();
18
+ if (session[XRSESSION_PRIVATE].ended) {
19
+ throw new DOMException('Session has ended', 'InvalidStateError');
20
+ }
21
+ // TO-DO: Check that the context attribute has xrCompatible set to true
22
+ // may require polyfilling the context and perhaps canvas.getContext
23
+ // Default values for XRWebGLLayerInit, can be overridden by layerInit
24
+ const config = { ...defaultLayerInit, ...layerInit };
25
+ this[PRIVATE] = {
26
+ session,
27
+ context,
28
+ antialias: config.antialias,
29
+ };
30
+ }
31
+ get context() {
32
+ return this[PRIVATE].context;
33
+ }
34
+ get antialias() {
35
+ return this[PRIVATE].antialias;
36
+ }
37
+ get ignoreDepthValues() {
38
+ return true;
39
+ }
40
+ get framebuffer() {
41
+ return null;
42
+ }
43
+ get framebufferWidth() {
44
+ return this[PRIVATE].context.drawingBufferWidth;
45
+ }
46
+ get framebufferHeight() {
47
+ return this[PRIVATE].context.drawingBufferHeight;
48
+ }
49
+ getViewport(view) {
50
+ if (view[XRVIEW_PRIVATE].session !== this[PRIVATE].session) {
51
+ throw new DOMException("View's session differs from Layer's session", 'InvalidStateError');
52
+ }
53
+ // TO-DO: check frame
54
+ return this[PRIVATE].session[XRSESSION_PRIVATE].device[XRDEVICE_PRIVATE].getViewport(this, view);
55
+ }
56
+ static getNativeFramebufferScaleFactor(session) {
57
+ if (!(session instanceof XRSession)) {
58
+ throw new TypeError('getNativeFramebufferScaleFactor must be passed a session.');
59
+ }
60
+ if (session[XRSESSION_PRIVATE].ended) {
61
+ return 0.0;
62
+ }
63
+ // Return 1.0 for simplicity, actual implementation might vary based on the device capabilities
64
+ return 1.0;
65
+ }
66
+ }
67
+ //# sourceMappingURL=XRWebGLLayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRWebGLLayer.js","sourceRoot":"","sources":["../../src/layers/XRWebGLLayer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAU,MAAM,iBAAiB,CAAC;AAEpE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,OAAO,OAAQ,SAAQ,WAAW;CAAG;AAE3C,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,+CAA+C,CAAC,CAAC;AAW/E,MAAM,gBAAgB,GAAc;IACnC,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,IAAI;IACX,iBAAiB,EAAE,KAAK;IACxB,sBAAsB,EAAE,GAAG;CAC3B,CAAC;AAEF,MAAM,OAAO,YAAa,SAAQ,OAAO;IAOxC,YACC,OAAkB,EAClB,OAAuD,EACvD,YAAuB,EAAE;QAEzB,KAAK,EAAE,CAAC;QAER,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE;YACrC,MAAM,IAAI,YAAY,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;SACjE;QAED,uEAAuE;QACvE,oEAAoE;QAEpE,sEAAsE;QACtE,MAAM,MAAM,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,SAAS,EAAE,CAAC;QAErD,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,OAAO;YACP,OAAO;YACP,SAAS,EAAE,MAAM,CAAC,SAAU;SAC5B,CAAC;IACH,CAAC;IAED,IAAI,OAAO;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,WAAW;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACjD,CAAC;IAED,IAAI,iBAAiB;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,IAAY;QACvB,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;YAC3D,MAAM,IAAI,YAAY,CACrB,6CAA6C,EAC7C,mBAAmB,CACnB,CAAC;SACF;QACD,qBAAqB;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,CACrD,gBAAgB,CAChB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,+BAA+B,CAAC,OAAkB;QACxD,IAAI,CAAC,CAAC,OAAO,YAAY,SAAS,CAAC,EAAE;YACpC,MAAM,IAAI,SAAS,CAClB,2DAA2D,CAC3D,CAAC;SACF;QAED,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE;YACrC,OAAO,GAAG,CAAC;SACX;QAED,+FAA+F;QAC/F,OAAO,GAAG,CAAC;IACZ,CAAC;CACD"}
@@ -0,0 +1,11 @@
1
+ import { XRPose } from './XRPose';
2
+ import { XRRigidTransform } from '../primitives/XRRigidTransform';
3
+ export declare const PRIVATE: unique symbol;
4
+ export declare class XRJointPose extends XRPose {
5
+ [PRIVATE]: {
6
+ radius: number;
7
+ };
8
+ constructor(transform: XRRigidTransform, radius: number, emulatedPosition?: boolean, linearVelocity?: DOMPointReadOnly | undefined, angularVelocity?: DOMPointReadOnly | undefined);
9
+ get radius(): number;
10
+ }
11
+ //# sourceMappingURL=XRJointPose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRJointPose.d.ts","sourceRoot":"","sources":["../../src/pose/XRJointPose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,OAAO,eAA2D,CAAC;AAEhF,qBAAa,WAAY,SAAQ,MAAM;IACtC,CAAC,OAAO,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;gBAGD,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,MAAM,EACd,gBAAgB,GAAE,OAAe,EACjC,cAAc,GAAE,gBAAgB,GAAG,SAAqB,EACxD,eAAe,GAAE,gBAAgB,GAAG,SAAqB;IAM1D,IAAI,MAAM,WAET;CACD"}
@@ -0,0 +1,12 @@
1
+ import { XRPose } from './XRPose';
2
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-joint-pose');
3
+ export class XRJointPose extends XRPose {
4
+ constructor(transform, radius, emulatedPosition = false, linearVelocity = undefined, angularVelocity = undefined) {
5
+ super(transform, emulatedPosition, linearVelocity, angularVelocity);
6
+ this[PRIVATE] = { radius };
7
+ }
8
+ get radius() {
9
+ return this[PRIVATE].radius;
10
+ }
11
+ }
12
+ //# sourceMappingURL=XRJointPose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRJointPose.js","sourceRoot":"","sources":["../../src/pose/XRJointPose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,gDAAgD,CAAC,CAAC;AAEhF,MAAM,OAAO,WAAY,SAAQ,MAAM;IAKtC,YACC,SAA2B,EAC3B,MAAc,EACd,mBAA4B,KAAK,EACjC,iBAA+C,SAAS,EACxD,kBAAgD,SAAS;QAEzD,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC;CACD"}
@@ -0,0 +1,16 @@
1
+ import { XRRigidTransform } from '../primitives/XRRigidTransform';
2
+ export declare const PRIVATE: unique symbol;
3
+ export declare class XRPose {
4
+ [PRIVATE]: {
5
+ transform: XRRigidTransform;
6
+ emulatedPosition: boolean;
7
+ linearVelocity?: DOMPointReadOnly;
8
+ angularVelocity?: DOMPointReadOnly;
9
+ };
10
+ constructor(transform: XRRigidTransform, emulatedPosition?: boolean, linearVelocity?: DOMPointReadOnly | undefined, angularVelocity?: DOMPointReadOnly | undefined);
11
+ get transform(): XRRigidTransform;
12
+ get emulatedPosition(): boolean;
13
+ get linearVelocity(): DOMPointReadOnly | undefined;
14
+ get angularVelocity(): DOMPointReadOnly | undefined;
15
+ }
16
+ //# sourceMappingURL=XRPose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRPose.d.ts","sourceRoot":"","sources":["../../src/pose/XRPose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,eAAO,MAAM,OAAO,eAAqD,CAAC;AAE1E,qBAAa,MAAM;IAClB,CAAC,OAAO,CAAC,EAAE;QACV,SAAS,EAAE,gBAAgB,CAAC;QAC5B,gBAAgB,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,gBAAgB,CAAC;QAClC,eAAe,CAAC,EAAE,gBAAgB,CAAC;KACnC,CAAC;gBAGD,SAAS,EAAE,gBAAgB,EAC3B,gBAAgB,UAAQ,EACxB,cAAc,GAAE,gBAAgB,GAAG,SAAqB,EACxD,eAAe,GAAE,gBAAgB,GAAG,SAAqB;IAU1D,IAAI,SAAS,qBAEZ;IAED,IAAI,gBAAgB,YAEnB;IAED,IAAI,cAAc,iCAEjB;IAED,IAAI,eAAe,iCAElB;CACD"}
@@ -0,0 +1,24 @@
1
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-pose');
2
+ export class XRPose {
3
+ constructor(transform, emulatedPosition = false, linearVelocity = undefined, angularVelocity = undefined) {
4
+ this[PRIVATE] = {
5
+ transform,
6
+ emulatedPosition,
7
+ linearVelocity,
8
+ angularVelocity,
9
+ };
10
+ }
11
+ get transform() {
12
+ return this[PRIVATE].transform;
13
+ }
14
+ get emulatedPosition() {
15
+ return this[PRIVATE].emulatedPosition;
16
+ }
17
+ get linearVelocity() {
18
+ return this[PRIVATE].linearVelocity;
19
+ }
20
+ get angularVelocity() {
21
+ return this[PRIVATE].angularVelocity;
22
+ }
23
+ }
24
+ //# sourceMappingURL=XRPose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRPose.js","sourceRoot":"","sources":["../../src/pose/XRPose.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,0CAA0C,CAAC,CAAC;AAE1E,MAAM,OAAO,MAAM;IAQlB,YACC,SAA2B,EAC3B,gBAAgB,GAAG,KAAK,EACxB,iBAA+C,SAAS,EACxD,kBAAgD,SAAS;QAEzD,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,SAAS;YACT,gBAAgB;YAChB,cAAc;YACd,eAAe;SACf,CAAC;IACH,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC;IACvC,CAAC;IAED,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;IACrC,CAAC;IAED,IAAI,eAAe;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC;IACtC,CAAC;CACD"}
@@ -0,0 +1,12 @@
1
+ import { XRPose } from './XRPose';
2
+ import { XRRigidTransform } from '../primitives/XRRigidTransform';
3
+ import { XRView } from '../views/XRView';
4
+ export declare const PRIVATE: unique symbol;
5
+ export declare class XRViewerPose extends XRPose {
6
+ [PRIVATE]: {
7
+ views: readonly XRView[];
8
+ };
9
+ constructor(transform: XRRigidTransform, views: XRView[], emulatedPosition?: boolean, linearVelocity?: DOMPointReadOnly | undefined, angularVelocity?: DOMPointReadOnly | undefined);
10
+ get views(): readonly XRView[];
11
+ }
12
+ //# sourceMappingURL=XRViewerPose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRViewerPose.d.ts","sourceRoot":"","sources":["../../src/pose/XRViewerPose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,eAAO,MAAM,OAAO,eAEnB,CAAC;AAEF,qBAAa,YAAa,SAAQ,MAAM;IACvC,CAAC,OAAO,CAAC,EAAE;QACV,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;KACzB,CAAC;gBAGD,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,MAAM,EAAE,EACf,gBAAgB,GAAE,OAAe,EACjC,cAAc,GAAE,gBAAgB,GAAG,SAAqB,EACxD,eAAe,GAAE,gBAAgB,GAAG,SAAqB;IAQ1D,IAAI,KAAK,sBAER;CACD"}
@@ -0,0 +1,14 @@
1
+ import { XRPose } from './XRPose';
2
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-viewer-pose');
3
+ export class XRViewerPose extends XRPose {
4
+ constructor(transform, views, emulatedPosition = false, linearVelocity = undefined, angularVelocity = undefined) {
5
+ super(transform, emulatedPosition, linearVelocity, angularVelocity);
6
+ this[PRIVATE] = {
7
+ views: Object.freeze(views),
8
+ };
9
+ }
10
+ get views() {
11
+ return this[PRIVATE].views;
12
+ }
13
+ }
14
+ //# sourceMappingURL=XRViewerPose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRViewerPose.js","sourceRoot":"","sources":["../../src/pose/XRViewerPose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAC5B,iDAAiD,CACjD,CAAC;AAEF,MAAM,OAAO,YAAa,SAAQ,MAAM;IAKvC,YACC,SAA2B,EAC3B,KAAe,EACf,mBAA4B,KAAK,EACjC,iBAA+C,SAAS,EACxD,kBAAgD,SAAS;QAEzD,KAAK,CAAC,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SAC3B,CAAC;IACH,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;IAC5B,CAAC;CACD"}
@@ -0,0 +1,17 @@
1
+ import { mat4, quat, vec3 } from 'gl-matrix';
2
+ export declare const PRIVATE: unique symbol;
3
+ export declare class XRRigidTransform {
4
+ [PRIVATE]: {
5
+ matrix: mat4;
6
+ position: vec3;
7
+ orientation: quat;
8
+ inverse: XRRigidTransform | null;
9
+ };
10
+ constructor(position?: DOMPointInit, orientation?: DOMPointInit);
11
+ private updateMatrix;
12
+ get matrix(): Float32Array;
13
+ get position(): DOMPointReadOnly;
14
+ get orientation(): DOMPointReadOnly;
15
+ get inverse(): XRRigidTransform;
16
+ }
17
+ //# sourceMappingURL=XRRigidTransform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRRigidTransform.d.ts","sourceRoot":"","sources":["../../src/primitives/XRRigidTransform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAI7C,eAAO,MAAM,OAAO,eAEnB,CAAC;AAEF,qBAAa,gBAAgB;IAC5B,CAAC,OAAO,CAAC,EAAE;QACV,MAAM,EAAE,IAAI,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC;QACf,WAAW,EAAE,IAAI,CAAC;QAClB,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;KACjC,CAAC;gBAEU,QAAQ,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,YAAY;IA2B/D,OAAO,CAAC,YAAY;IAQpB,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,IAAI,QAAQ,IAAI,gBAAgB,CAG/B;IAED,IAAI,WAAW,IAAI,gBAAgB,CAGlC;IAED,IAAI,OAAO,IAAI,gBAAgB,CA8B9B;CACD"}
@@ -0,0 +1,54 @@
1
+ import { mat4, quat, vec3 } from 'gl-matrix';
2
+ import { DOMPointReadOnly } from '../utils/DOMPointReadOnly';
3
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-rigid-transform');
4
+ export class XRRigidTransform {
5
+ constructor(position, orientation) {
6
+ // Default values
7
+ const defaultPosition = vec3.fromValues(0, 0, 0);
8
+ const defaultOrientation = quat.create();
9
+ this[PRIVATE] = {
10
+ matrix: mat4.create(),
11
+ position: position
12
+ ? vec3.fromValues(position.x, position.y, position.z)
13
+ : defaultPosition,
14
+ orientation: orientation
15
+ ? quat.normalize(quat.create(), quat.fromValues(orientation.x, orientation.y, orientation.z, orientation.w))
16
+ : defaultOrientation,
17
+ inverse: null,
18
+ };
19
+ this.updateMatrix();
20
+ }
21
+ updateMatrix() {
22
+ mat4.fromRotationTranslation(this[PRIVATE].matrix, this[PRIVATE].orientation, this[PRIVATE].position);
23
+ }
24
+ get matrix() {
25
+ return this[PRIVATE].matrix;
26
+ }
27
+ get position() {
28
+ const pos = this[PRIVATE].position;
29
+ return new DOMPointReadOnly(pos[0], pos[1], pos[2], 1);
30
+ }
31
+ get orientation() {
32
+ const ori = this[PRIVATE].orientation;
33
+ return new DOMPointReadOnly(ori[0], ori[1], ori[2], ori[3]);
34
+ }
35
+ get inverse() {
36
+ if (!this[PRIVATE].inverse) {
37
+ const invMatrix = mat4.create();
38
+ if (!mat4.invert(invMatrix, this[PRIVATE].matrix)) {
39
+ throw new Error('Matrix is not invertible.');
40
+ }
41
+ // Decomposing the inverse matrix into position and orientation
42
+ let invPosition = vec3.create();
43
+ mat4.getTranslation(invPosition, invMatrix);
44
+ let invOrientation = quat.create();
45
+ mat4.getRotation(invOrientation, invMatrix);
46
+ // Creating a new XRRigidTransform for the inverse
47
+ this[PRIVATE].inverse = new XRRigidTransform(new DOMPointReadOnly(invPosition[0], invPosition[1], invPosition[2], 1), new DOMPointReadOnly(invOrientation[0], invOrientation[1], invOrientation[2], invOrientation[3]));
48
+ // Setting the inverse of the inverse to be this transform
49
+ this[PRIVATE].inverse[PRIVATE].inverse = this;
50
+ }
51
+ return this[PRIVATE].inverse;
52
+ }
53
+ }
54
+ //# sourceMappingURL=XRRigidTransform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRRigidTransform.js","sourceRoot":"","sources":["../../src/primitives/XRRigidTransform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { XRWebGLLayer } from '../layers/XRWebGLLayer';
2
+ export declare const PRIVATE: unique symbol;
3
+ export declare class XRRenderState {
4
+ [PRIVATE]: {
5
+ depthNear: number;
6
+ depthFar: number;
7
+ inlineVerticalFieldOfView: number | null;
8
+ baseLayer: XRWebGLLayer | null;
9
+ };
10
+ constructor(init?: Partial<XRRenderStateInit>, oldState?: XRRenderState);
11
+ get depthNear(): number;
12
+ get depthFar(): number;
13
+ get inlineVerticalFieldOfView(): number | null;
14
+ get baseLayer(): XRWebGLLayer | null;
15
+ }
16
+ export interface XRRenderStateInit {
17
+ depthNear?: number;
18
+ depthFar?: number;
19
+ inlineVerticalFieldOfView?: number;
20
+ baseLayer?: XRWebGLLayer;
21
+ }
22
+ //# sourceMappingURL=XRRenderState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRRenderState.d.ts","sourceRoot":"","sources":["../../src/session/XRRenderState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,eAAO,MAAM,OAAO,eAEnB,CAAC;AAEF,qBAAa,aAAa;IACzB,CAAC,OAAO,CAAC,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;QACzC,SAAS,EAAE,YAAY,GAAG,IAAI,CAAC;KAC/B,CAAC;gBAEU,IAAI,GAAE,OAAO,CAAC,iBAAiB,CAAM,EAAE,QAAQ,CAAC,EAAE,aAAa;IAY3E,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAE7C;IAED,IAAI,SAAS,IAAI,YAAY,GAAG,IAAI,CAEnC;CACD;AAGD,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,YAAY,CAAC;CACzB"}
@@ -0,0 +1,26 @@
1
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-render-state');
2
+ export class XRRenderState {
3
+ constructor(init = {}, oldState) {
4
+ this[PRIVATE] = {
5
+ depthNear: init.depthNear || (oldState === null || oldState === void 0 ? void 0 : oldState.depthNear) || 0.1,
6
+ depthFar: init.depthFar || (oldState === null || oldState === void 0 ? void 0 : oldState.depthFar) || 1000.0,
7
+ inlineVerticalFieldOfView: init.inlineVerticalFieldOfView ||
8
+ (oldState === null || oldState === void 0 ? void 0 : oldState.inlineVerticalFieldOfView) ||
9
+ null,
10
+ baseLayer: init.baseLayer || (oldState === null || oldState === void 0 ? void 0 : oldState.baseLayer) || null,
11
+ };
12
+ }
13
+ get depthNear() {
14
+ return this[PRIVATE].depthNear;
15
+ }
16
+ get depthFar() {
17
+ return this[PRIVATE].depthFar;
18
+ }
19
+ get inlineVerticalFieldOfView() {
20
+ return this[PRIVATE].inlineVerticalFieldOfView;
21
+ }
22
+ get baseLayer() {
23
+ return this[PRIVATE].baseLayer;
24
+ }
25
+ }
26
+ //# sourceMappingURL=XRRenderState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRRenderState.js","sourceRoot":"","sources":["../../src/session/XRRenderState.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAC5B,kDAAkD,CAClD,CAAC;AAEF,MAAM,OAAO,aAAa;IAQzB,YAAY,OAAmC,EAAE,EAAE,QAAwB;QAC1E,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,SAAS,EAAE,IAAI,CAAC,SAAS,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAA,IAAI,GAAG;YACvD,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA,IAAI,MAAM;YACvD,yBAAyB,EACxB,IAAI,CAAC,yBAAyB;iBAC9B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,yBAAyB,CAAA;gBACnC,IAAI;YACL,SAAS,EAAE,IAAI,CAAC,SAAS,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAA,IAAI,IAAI;SACxD,CAAC;IACH,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,IAAI,yBAAyB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC;IAChD,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;CACD"}
@@ -0,0 +1,103 @@
1
+ import { XRDevice } from '../device/XRDevice';
2
+ import { XRFrame } from '../frameloop/XRFrame';
3
+ import { XRInputSource, XRInputSourceArray } from '../input/XRInputSource';
4
+ import { XRInputSourcesChangeEventHandler } from '../events/XRInputSourcesChangeEvent';
5
+ import { XRReferenceSpace, XRReferenceSpaceType } from '../spaces/XRReferenceSpace';
6
+ import { XRRenderState, XRRenderStateInit } from './XRRenderState';
7
+ import { XRSessionEventHandler } from '../events/XRSessionEvent';
8
+ import { XREye } from '../views/XRView';
9
+ import { XRInputSourceEventHandler } from '../events/XRInputSourceEvent';
10
+ import { mat4 } from 'gl-matrix';
11
+ export declare enum XRVisibilityState {
12
+ Visible = "visible",
13
+ VisibleBlurred = "visible-blurred",
14
+ Hidden = "hidden"
15
+ }
16
+ export declare enum XRSessionMode {
17
+ Inline = "inline",
18
+ ImmersiveVR = "immersive-vr",
19
+ ImmersiveAR = "immersive-ar"
20
+ }
21
+ export type XRSessionInit = {
22
+ requiredFeatures?: string[];
23
+ optionalFeatures?: string[];
24
+ };
25
+ type XRFrameRequestCallback = (time: DOMHighResTimeStamp, frame: XRFrame) => void;
26
+ type CallbackData = {
27
+ handle: number;
28
+ callback: XRFrameRequestCallback;
29
+ cancelled: boolean;
30
+ };
31
+ export declare const PRIVATE: unique symbol;
32
+ export declare class XRSession extends EventTarget {
33
+ [PRIVATE]: {
34
+ device: XRDevice;
35
+ enabledFeatures: Array<string>;
36
+ isSystemKeyboardSupported: boolean;
37
+ mode: XRSessionMode;
38
+ ended: boolean;
39
+ referenceSpaceIsSupported: (referenceSpaceType: XRReferenceSpaceType) => boolean;
40
+ projectionMatrices: {
41
+ [key in XREye]: mat4;
42
+ };
43
+ getProjectionMatrix: (eye: XREye) => mat4;
44
+ frameHandle: number;
45
+ frameCallbacks: CallbackData[];
46
+ currentFrameCallbacks: CallbackData[] | null;
47
+ onDeviceFrame: () => void;
48
+ deviceFrameHandle?: number;
49
+ renderState: XRRenderState;
50
+ pendingRenderState: XRRenderState | null;
51
+ nominalFrameRate: number;
52
+ referenceSpaces: XRReferenceSpace[];
53
+ inputSourceArray: XRInputSourceArray;
54
+ activeInputSources: XRInputSource[];
55
+ updateActiveInputSources: () => void;
56
+ onend: XRSessionEventHandler | null;
57
+ oninputsourceschange: XRInputSourcesChangeEventHandler | null;
58
+ onselect: XRInputSourceEventHandler | null;
59
+ onselectstart: XRInputSourceEventHandler | null;
60
+ onselectend: XRInputSourceEventHandler | null;
61
+ onsqueeze: XRInputSourceEventHandler | null;
62
+ onsqueezestart: XRInputSourceEventHandler | null;
63
+ onsqueezeend: XRInputSourceEventHandler | null;
64
+ onvisibilitychange: XRSessionEventHandler | null;
65
+ onframeratechange: XRSessionEventHandler | null;
66
+ };
67
+ constructor(device: XRDevice, mode: XRSessionMode, enabledFeatures: string[]);
68
+ get visibilityState(): XRVisibilityState;
69
+ get frameRate(): number | undefined;
70
+ get supportedFrameRates(): Float32Array | undefined;
71
+ get renderState(): XRRenderState;
72
+ get inputSources(): XRInputSourceArray;
73
+ get enabledFeatures(): Array<string>;
74
+ get isSystemKeyboardSupported(): boolean;
75
+ updateRenderState(state?: XRRenderStateInit): void;
76
+ updateTargetFrameRate(rate: number): Promise<void>;
77
+ requestReferenceSpace(type: XRReferenceSpaceType): Promise<XRReferenceSpace>;
78
+ requestAnimationFrame(callback: XRFrameRequestCallback): number;
79
+ cancelAnimationFrame(handle: number): void;
80
+ end(): Promise<void>;
81
+ get onend(): XRSessionEventHandler;
82
+ set onend(callback: XRSessionEventHandler);
83
+ get oninputsourceschange(): XRInputSourcesChangeEventHandler;
84
+ set oninputsourceschange(callback: XRInputSourcesChangeEventHandler);
85
+ get onselect(): XRInputSourceEventHandler;
86
+ set onselect(callback: XRInputSourceEventHandler);
87
+ get onselectstart(): XRInputSourceEventHandler;
88
+ set onselectstart(callback: XRInputSourceEventHandler);
89
+ get onselectend(): XRInputSourceEventHandler;
90
+ set onselectend(callback: XRInputSourceEventHandler);
91
+ get onsqueeze(): XRInputSourceEventHandler;
92
+ set onsqueeze(callback: XRInputSourceEventHandler);
93
+ get onsqueezestart(): XRInputSourceEventHandler;
94
+ set onsqueezestart(callback: XRInputSourceEventHandler);
95
+ get onsqueezeend(): XRInputSourceEventHandler;
96
+ set onsqueezeend(callback: XRInputSourceEventHandler);
97
+ get onvisibilitychange(): XRSessionEventHandler;
98
+ set onvisibilitychange(callback: XRSessionEventHandler);
99
+ get onframeratechange(): XRSessionEventHandler;
100
+ set onframeratechange(callback: XRSessionEventHandler);
101
+ }
102
+ export {};
103
+ //# sourceMappingURL=XRSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRSession.d.ts","sourceRoot":"","sources":["../../src/session/XRSession.ts"],"names":[],"mappings":"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"}