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,45 @@
1
+ import { mat4, vec3 } from 'gl-matrix';
2
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-space');
3
+ export class XRSpace extends EventTarget {
4
+ constructor(parentSpace, offsetMatrix) {
5
+ super();
6
+ this[PRIVATE] = {
7
+ parentSpace,
8
+ offsetMatrix: offsetMatrix ? mat4.clone(offsetMatrix) : mat4.create(),
9
+ emulated: true,
10
+ };
11
+ }
12
+ }
13
+ export class GlobalSpace extends XRSpace {
14
+ constructor() {
15
+ super(undefined, mat4.create()); // GlobalSpace has no parent
16
+ }
17
+ }
18
+ export class XRSpaceUtils {
19
+ // Update the position component of the offsetMatrix of a given XRSpace
20
+ static updateOffsetPosition(space, position) {
21
+ const offsetMatrix = space[PRIVATE].offsetMatrix;
22
+ mat4.fromTranslation(offsetMatrix, position);
23
+ }
24
+ // Update the rotation component of the offsetMatrix of a given XRSpace using a quaternion
25
+ static updateOffsetQuaternion(space, quaternion) {
26
+ const offsetMatrix = space[PRIVATE].offsetMatrix;
27
+ const translation = vec3.create();
28
+ mat4.getTranslation(translation, offsetMatrix);
29
+ mat4.fromRotationTranslation(offsetMatrix, quaternion, translation);
30
+ }
31
+ // Update the offsetMatrix of a given XRSpace directly
32
+ static updateOffsetMatrix(space, matrix) {
33
+ const offsetMatrix = space[PRIVATE].offsetMatrix;
34
+ mat4.copy(offsetMatrix, matrix);
35
+ }
36
+ // Calculate the global offset matrix for a given XRSpace
37
+ static calculateGlobalOffsetMatrix(space, globalOffset = mat4.create()) {
38
+ const parentOffset = space[PRIVATE].parentSpace
39
+ ? XRSpaceUtils.calculateGlobalOffsetMatrix(space[PRIVATE].parentSpace)
40
+ : mat4.create(); // Identity matrix for GlobalSpace
41
+ mat4.multiply(globalOffset, parentOffset, space[PRIVATE].offsetMatrix);
42
+ return globalOffset;
43
+ }
44
+ }
45
+ //# sourceMappingURL=XRSpace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRSpace.js","sourceRoot":"","sources":["../../src/spaces/XRSpace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAQ,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,2CAA2C,CAAC,CAAC;AAE3E,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAOvC,YAAY,WAAqB,EAAE,YAAmB;QACrD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,WAAW;YACX,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE;YACrE,QAAQ,EAAE,IAAI;SACd,CAAC;IACH,CAAC;CACD;AAED,MAAM,OAAO,WAAY,SAAQ,OAAO;IACvC;QACC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,4BAA4B;IAC9D,CAAC;CACD;AAED,MAAM,OAAO,YAAY;IACxB,uEAAuE;IACvE,MAAM,CAAC,oBAAoB,CAAC,KAAc,EAAE,QAAc;QACzD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,0FAA0F;IAC1F,MAAM,CAAC,sBAAsB,CAAC,KAAc,EAAE,UAAgB;QAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,sDAAsD;IACtD,MAAM,CAAC,kBAAkB,CAAC,KAAc,EAAE,MAAY;QACrD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,yDAAyD;IACzD,MAAM,CAAC,2BAA2B,CACjC,KAAc,EACd,eAAqB,IAAI,CAAC,MAAM,EAAE;QAElC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW;YAC9C,CAAC,CAAC,YAAY,CAAC,2BAA2B,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC;YACtE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,kCAAkC;QAEpD,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC;QACvE,OAAO,YAAY,CAAC;IACrB,CAAC;CACD"}
@@ -0,0 +1,17 @@
1
+ declare class PolyfillDOMPointReadOnly {
2
+ readonly x: number;
3
+ readonly y: number;
4
+ readonly z: number;
5
+ readonly w: number;
6
+ constructor(x?: number, y?: number, z?: number, w?: number);
7
+ static fromPoint(other: DOMPointInit): PolyfillDOMPointReadOnly;
8
+ matrixTransform(_matrix: DOMMatrixReadOnly): DOMPointReadOnly;
9
+ toJSON(): any;
10
+ }
11
+ export declare const DOMPointReadOnly: typeof PolyfillDOMPointReadOnly | {
12
+ new (x?: number | undefined, y?: number | undefined, z?: number | undefined, w?: number | undefined): DOMPointReadOnly;
13
+ prototype: DOMPointReadOnly;
14
+ fromPoint(other?: DOMPointInit | undefined): DOMPointReadOnly;
15
+ };
16
+ export {};
17
+ //# sourceMappingURL=DOMPointReadOnly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DOMPointReadOnly.d.ts","sourceRoot":"","sources":["../../src/utils/DOMPointReadOnly.ts"],"names":[],"mappings":"AAAA,cAAM,wBAAwB;IAC7B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;gBAEP,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI,EAAE,CAAC,SAAI;IAQtC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,wBAAwB;IAI/D,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB;IAM7D,MAAM,IAAI,GAAG;CAKb;AAED,eAAO,MAAM,gBAAgB;;;;CAGD,CAAC"}
@@ -0,0 +1,26 @@
1
+ class PolyfillDOMPointReadOnly {
2
+ constructor(x = 0, y = 0, z = 0, w = 1) {
3
+ this.x = x;
4
+ this.y = y;
5
+ this.z = z;
6
+ this.w = w;
7
+ Object.freeze(this);
8
+ }
9
+ static fromPoint(other) {
10
+ return new PolyfillDOMPointReadOnly(other.x, other.y, other.z, other.w);
11
+ }
12
+ matrixTransform(_matrix) {
13
+ // Implement matrix transformation logic here
14
+ // This is a placeholder implementation
15
+ return new PolyfillDOMPointReadOnly();
16
+ }
17
+ toJSON() {
18
+ // Implement toJSON logic here
19
+ // This is a placeholder implementation
20
+ return { x: this.x, y: this.y, z: this.z, w: this.w };
21
+ }
22
+ }
23
+ export const DOMPointReadOnly = typeof globalThis.DOMPointReadOnly !== 'undefined'
24
+ ? globalThis.DOMPointReadOnly
25
+ : PolyfillDOMPointReadOnly;
26
+ //# sourceMappingURL=DOMPointReadOnly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DOMPointReadOnly.js","sourceRoot":"","sources":["../../src/utils/DOMPointReadOnly.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB;IAM7B,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAmB;QACnC,OAAO,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,eAAe,CAAC,OAA0B;QACzC,6CAA6C;QAC7C,uCAAuC;QACvC,OAAO,IAAI,wBAAwB,EAAE,CAAC;IACvC,CAAC;IAED,MAAM;QACL,8BAA8B;QAC9B,uCAAuC;QACvC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;CACD;AAED,MAAM,CAAC,MAAM,gBAAgB,GAC5B,OAAO,UAAU,CAAC,gBAAgB,KAAK,WAAW;IACjD,CAAC,CAAC,UAAU,CAAC,gBAAgB;IAC7B,CAAC,CAAC,wBAAwB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { quat } from 'gl-matrix';
2
+ import { vec3 } from 'gl-matrix';
3
+ /**
4
+ * Wrapper class for gl-matrix vec3
5
+ * Minimal interoperable interface to Vector3 in Three.js and Babylon.js
6
+ */
7
+ export declare class Vector3 {
8
+ vec3: vec3;
9
+ private tempVec3;
10
+ constructor(x?: number, y?: number, z?: number);
11
+ get x(): number;
12
+ set x(value: number);
13
+ get y(): number;
14
+ set y(value: number);
15
+ get z(): number;
16
+ set z(value: number);
17
+ set(x: number, y: number, z: number): this;
18
+ clone(): Vector3;
19
+ copy(v: Vector3): this;
20
+ round(): this;
21
+ normalize(): this;
22
+ add(v: Vector3): this;
23
+ applyQuaternion(q: Quaternion): this;
24
+ }
25
+ /**
26
+ * Wrapper class for gl-matrix quat4
27
+ * Minimal interoperable interface to Vector3 in Three.js and Babylon.js
28
+ */
29
+ export declare class Quaternion {
30
+ quat: quat;
31
+ private tempQuat;
32
+ constructor(x?: number, y?: number, z?: number, w?: number);
33
+ get x(): number;
34
+ set x(value: number);
35
+ get y(): number;
36
+ set y(value: number);
37
+ get z(): number;
38
+ set z(value: number);
39
+ get w(): number;
40
+ set w(value: number);
41
+ set(x: number, y: number, z: number, w: number): this;
42
+ clone(): Quaternion;
43
+ copy(q: Quaternion): this;
44
+ normalize(): this;
45
+ invert(): this;
46
+ multiply(q: Quaternion): this;
47
+ setFromAxisAngle(axis: Vector3, angle: number): this;
48
+ }
49
+ //# sourceMappingURL=Math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Math.d.ts","sourceRoot":"","sources":["../../src/utils/Math.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;GAGG;AACH,qBAAa,OAAO;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,QAAQ,CAAO;gBAEX,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAKvD,IAAI,CAAC,IAIQ,MAAM,CAFlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAIQ,MAAM,CAFlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAIQ,MAAM,CAFlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK1C,KAAK,IAAI,OAAO;IAIhB,IAAI,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAOtB,KAAK,IAAI,IAAI;IAOb,SAAS,IAAI,IAAI;IAMjB,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI;IAMrB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;CAKpC;AAED;;;GAGG;AACH,qBAAa,UAAU;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,CAAC,QAAQ,CAAO;gBAEX,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU;IAKtE,IAAI,CAAC,IAIQ,MAAM,CAFlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAIQ,MAAM,CAFlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAIQ,MAAM,CAFlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,IAAI,CAAC,IAIQ,MAAM,CAFlB;IAED,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAElB;IAED,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKrD,KAAK,IAAI,UAAU;IAInB,IAAI,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAKzB,SAAS,IAAI,IAAI;IAMjB,MAAM,IAAI,IAAI;IAMd,QAAQ,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAM7B,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAIpD"}
@@ -0,0 +1,129 @@
1
+ import { quat } from 'gl-matrix';
2
+ import { vec3 } from 'gl-matrix';
3
+ /**
4
+ * Wrapper class for gl-matrix vec3
5
+ * Minimal interoperable interface to Vector3 in Three.js and Babylon.js
6
+ */
7
+ export class Vector3 {
8
+ constructor(x = 0, y = 0, z = 0) {
9
+ this.vec3 = vec3.fromValues(x, y, z);
10
+ this.tempVec3 = vec3.create();
11
+ }
12
+ get x() {
13
+ return this.vec3[0];
14
+ }
15
+ set x(value) {
16
+ this.vec3[0] = value;
17
+ }
18
+ get y() {
19
+ return this.vec3[1];
20
+ }
21
+ set y(value) {
22
+ this.vec3[1] = value;
23
+ }
24
+ get z() {
25
+ return this.vec3[2];
26
+ }
27
+ set z(value) {
28
+ this.vec3[2] = value;
29
+ }
30
+ set(x, y, z) {
31
+ vec3.set(this.vec3, x, y, z);
32
+ return this;
33
+ }
34
+ clone() {
35
+ return new Vector3(this.x, this.y, this.z);
36
+ }
37
+ copy(v) {
38
+ this.x = v.x;
39
+ this.y = v.y;
40
+ this.z = v.z;
41
+ return this;
42
+ }
43
+ round() {
44
+ this.x = Math.round(this.x);
45
+ this.y = Math.round(this.y);
46
+ this.z = Math.round(this.z);
47
+ return this;
48
+ }
49
+ normalize() {
50
+ vec3.copy(this.tempVec3, this.vec3);
51
+ vec3.normalize(this.vec3, this.tempVec3);
52
+ return this;
53
+ }
54
+ add(v) {
55
+ vec3.copy(this.tempVec3, this.vec3);
56
+ vec3.add(this.vec3, this.tempVec3, v.vec3);
57
+ return this;
58
+ }
59
+ applyQuaternion(q) {
60
+ vec3.copy(this.tempVec3, this.vec3);
61
+ vec3.transformQuat(this.vec3, this.tempVec3, q.quat);
62
+ return this;
63
+ }
64
+ }
65
+ /**
66
+ * Wrapper class for gl-matrix quat4
67
+ * Minimal interoperable interface to Vector3 in Three.js and Babylon.js
68
+ */
69
+ export class Quaternion {
70
+ constructor(x = 0, y = 0, z = 0, w = 1) {
71
+ this.quat = quat.fromValues(x, y, z, w);
72
+ this.tempQuat = quat.create();
73
+ }
74
+ get x() {
75
+ return this.quat[0];
76
+ }
77
+ set x(value) {
78
+ this.quat[0] = value;
79
+ }
80
+ get y() {
81
+ return this.quat[1];
82
+ }
83
+ set y(value) {
84
+ this.quat[1] = value;
85
+ }
86
+ get z() {
87
+ return this.quat[2];
88
+ }
89
+ set z(value) {
90
+ this.quat[2] = value;
91
+ }
92
+ get w() {
93
+ return this.quat[3];
94
+ }
95
+ set w(value) {
96
+ this.quat[3] = value;
97
+ }
98
+ set(x, y, z, w) {
99
+ quat.set(this.quat, x, y, z, w);
100
+ return this;
101
+ }
102
+ clone() {
103
+ return new Quaternion(this.x, this.y, this.z, this.w);
104
+ }
105
+ copy(q) {
106
+ quat.set(this.quat, q.x, q.y, q.z, q.w);
107
+ return this;
108
+ }
109
+ normalize() {
110
+ quat.copy(this.tempQuat, this.quat);
111
+ quat.normalize(this.quat, this.tempQuat);
112
+ return this;
113
+ }
114
+ invert() {
115
+ quat.copy(this.tempQuat, this.quat);
116
+ quat.conjugate(this.quat, this.tempQuat);
117
+ return this;
118
+ }
119
+ multiply(q) {
120
+ quat.copy(this.tempQuat, this.quat);
121
+ quat.multiply(this.quat, this.tempQuat, q.quat);
122
+ return this;
123
+ }
124
+ setFromAxisAngle(axis, angle) {
125
+ quat.setAxisAngle(this.quat, axis.vec3, angle);
126
+ return this;
127
+ }
128
+ }
129
+ //# sourceMappingURL=Math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Math.js","sourceRoot":"","sources":["../../src/utils/Math.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION = "0.0.1";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC"}
package/lib/version.js ADDED
@@ -0,0 +1,2 @@
1
+ export const VERSION = "0.0.1";
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { XRRigidTransform } from '../primitives/XRRigidTransform';
2
+ import { XRSession } from '../session/XRSession';
3
+ export declare const PRIVATE: unique symbol;
4
+ export declare enum XREye {
5
+ None = "none",
6
+ Left = "left",
7
+ Right = "right"
8
+ }
9
+ export declare class XRView {
10
+ [PRIVATE]: {
11
+ eye: XREye;
12
+ projectionMatrix: Float32Array;
13
+ transform: XRRigidTransform;
14
+ recommendedViewportScale: number | null;
15
+ requestedViewportScale: number;
16
+ session: XRSession;
17
+ };
18
+ constructor(eye: XREye, projectionMatrix: Float32Array, transform: XRRigidTransform, session: XRSession);
19
+ get eye(): XREye;
20
+ get projectionMatrix(): Float32Array;
21
+ get transform(): XRRigidTransform;
22
+ get recommendedViewportScale(): number | null;
23
+ requestViewportScale(scale: number | null): void;
24
+ }
25
+ //# sourceMappingURL=XRView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRView.d.ts","sourceRoot":"","sources":["../../src/views/XRView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,eAAO,MAAM,OAAO,eAAqD,CAAC;AAE1E,oBAAY,KAAK;IAChB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;CACf;AAED,qBAAa,MAAM;IAClB,CAAC,OAAO,CAAC,EAAE;QACV,GAAG,EAAE,KAAK,CAAC;QACX,gBAAgB,EAAE,YAAY,CAAC;QAC/B,SAAS,EAAE,gBAAgB,CAAC;QAC5B,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;QACxC,sBAAsB,EAAE,MAAM,CAAC;QAC/B,OAAO,EAAE,SAAS,CAAC;KACnB,CAAC;gBAGD,GAAG,EAAE,KAAK,EACV,gBAAgB,EAAE,YAAY,EAC9B,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,SAAS;IAYnB,IAAI,GAAG,IAAI,KAAK,CAEf;IAED,IAAI,gBAAgB,IAAI,YAAY,CAEnC;IAED,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED,IAAI,wBAAwB,IAAI,MAAM,GAAG,IAAI,CAE5C;IAED,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;CAOhD"}
@@ -0,0 +1,39 @@
1
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-view');
2
+ export var XREye;
3
+ (function (XREye) {
4
+ XREye["None"] = "none";
5
+ XREye["Left"] = "left";
6
+ XREye["Right"] = "right";
7
+ })(XREye || (XREye = {}));
8
+ export class XRView {
9
+ constructor(eye, projectionMatrix, transform, session) {
10
+ this[PRIVATE] = {
11
+ eye,
12
+ projectionMatrix,
13
+ transform,
14
+ recommendedViewportScale: null,
15
+ requestedViewportScale: 1.0,
16
+ session,
17
+ };
18
+ }
19
+ get eye() {
20
+ return this[PRIVATE].eye;
21
+ }
22
+ get projectionMatrix() {
23
+ return this[PRIVATE].projectionMatrix;
24
+ }
25
+ get transform() {
26
+ return this[PRIVATE].transform;
27
+ }
28
+ get recommendedViewportScale() {
29
+ return this[PRIVATE].recommendedViewportScale;
30
+ }
31
+ requestViewportScale(scale) {
32
+ if (scale === null || scale <= 0 || scale > 1) {
33
+ console.warn('Invalid scale value. Scale must be > 0 and <= 1.');
34
+ return;
35
+ }
36
+ this[PRIVATE].requestedViewportScale = scale;
37
+ }
38
+ }
39
+ //# sourceMappingURL=XRView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRView.js","sourceRoot":"","sources":["../../src/views/XRView.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,0CAA0C,CAAC,CAAC;AAE1E,MAAM,CAAN,IAAY,KAIX;AAJD,WAAY,KAAK;IAChB,sBAAa,CAAA;IACb,sBAAa,CAAA;IACb,wBAAe,CAAA;AAChB,CAAC,EAJW,KAAK,KAAL,KAAK,QAIhB;AAED,MAAM,OAAO,MAAM;IAUlB,YACC,GAAU,EACV,gBAA8B,EAC9B,SAA2B,EAC3B,OAAkB;QAElB,IAAI,CAAC,OAAO,CAAC,GAAG;YACf,GAAG;YACH,gBAAgB;YAChB,SAAS;YACT,wBAAwB,EAAE,IAAI;YAC9B,sBAAsB,EAAE,GAAG;YAC3B,OAAO;SACP,CAAC;IACH,CAAC;IAED,IAAI,GAAG;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,IAAI,gBAAgB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC;IACvC,CAAC;IAED,IAAI,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;IAED,IAAI,wBAAwB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,wBAAwB,CAAC;IAC/C,CAAC;IAED,oBAAoB,CAAC,KAAoB;QACxC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;YAC9C,OAAO,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;YACjE,OAAO;SACP;QACD,IAAI,CAAC,OAAO,CAAC,CAAC,sBAAsB,GAAG,KAAK,CAAC;IAC9C,CAAC;CACD"}
@@ -0,0 +1,15 @@
1
+ export declare const PRIVATE: unique symbol;
2
+ export declare class XRViewport {
3
+ [PRIVATE]: {
4
+ x: number;
5
+ y: number;
6
+ width: number;
7
+ height: number;
8
+ };
9
+ constructor(x: number, y: number, width: number, height: number);
10
+ get x(): number;
11
+ get y(): number;
12
+ get width(): number;
13
+ get height(): number;
14
+ }
15
+ //# sourceMappingURL=XRViewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRViewport.d.ts","sourceRoot":"","sources":["../../src/views/XRViewport.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,eAAyD,CAAC;AAE9E,qBAAa,UAAU;IACtB,CAAC,OAAO,CAAC,EAAE;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;gBAEU,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAI/D,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,CAAC,IAAI,MAAM,CAEd;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACD"}
@@ -0,0 +1,19 @@
1
+ export const PRIVATE = Symbol('@immersive-web-emulation-runtime/xr-viewport');
2
+ export class XRViewport {
3
+ constructor(x, y, width, height) {
4
+ this[PRIVATE] = { x, y, width, height };
5
+ }
6
+ get x() {
7
+ return this[PRIVATE].x;
8
+ }
9
+ get y() {
10
+ return this[PRIVATE].y;
11
+ }
12
+ get width() {
13
+ return this[PRIVATE].width;
14
+ }
15
+ get height() {
16
+ return this[PRIVATE].height;
17
+ }
18
+ }
19
+ //# sourceMappingURL=XRViewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XRViewport.js","sourceRoot":"","sources":["../../src/views/XRViewport.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,8CAA8C,CAAC,CAAC;AAE9E,MAAM,OAAO,UAAU;IAQtB,YAAY,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QAC9D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,KAAK;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC7B,CAAC;CACD"}
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "iwer",
3
+ "version": "0.0.1",
4
+ "description": "Javascript WebXR Runtime for Emulation",
5
+ "type": "module",
6
+ "main": "lib/index.js",
7
+ "types": "lib/index.d.ts",
8
+ "files": [
9
+ "build",
10
+ "lib"
11
+ ],
12
+ "scripts": {
13
+ "prebuild": "node -p \"'export const VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
14
+ "build": "tsc && rollup -c",
15
+ "doc": "typedoc",
16
+ "lint": "eslint 'src/**/*.{js,ts,tsx}' --fix",
17
+ "format": "prettier --write ./src/**/*",
18
+ "test": "jest",
19
+ "prepublishOnly": "npm run build",
20
+ "docs:dev": "vitepress dev docs",
21
+ "docs:build": "vitepress build docs",
22
+ "docs:preview": "vitepress preview docs"
23
+ },
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/meta-quest/immersive-web-emulation-runtime.git"
27
+ },
28
+ "keywords": [],
29
+ "author": "Felix Zhang <fe1ix@meta.com>",
30
+ "license": "MIT",
31
+ "bugs": {
32
+ "url": "https://github.com/meta-quest/immersive-web-emulation-runtime/issues"
33
+ },
34
+ "homepage": "https://github.com/meta-quest/immersive-web-emulation-runtime#readme",
35
+ "devDependencies": {
36
+ "@rollup/plugin-commonjs": "^25.0.7",
37
+ "@rollup/plugin-node-resolve": "^15.2.3",
38
+ "@rollup/plugin-terser": "^0.4.4",
39
+ "@types/gl-matrix": "^3.2.0",
40
+ "@types/jest": "^29.5.11",
41
+ "@types/node": "^18.7.13",
42
+ "@types/three": "^0.149.0",
43
+ "@types/uuid": "^9.0.8",
44
+ "@types/webxr": "^0.5.8",
45
+ "@typescript-eslint/eslint-plugin": "^5.55.0",
46
+ "@typescript-eslint/parser": "^5.55.0",
47
+ "eslint": "^8.36.0",
48
+ "eslint-config-prettier": "^8.10.0",
49
+ "eslint-plugin-prettier": "^5.0.1",
50
+ "jest": "^29.7.0",
51
+ "jest-environment-jsdom": "^29.7.0",
52
+ "prettier": "^3.0.3",
53
+ "renamer": "^4.0.0",
54
+ "rimraf": "^5.0.5",
55
+ "rollup": "^2.79.1",
56
+ "ts-jest": "^29.1.1",
57
+ "typescript": "^4.9.5",
58
+ "vitepress": "1.0.1"
59
+ },
60
+ "dependencies": {
61
+ "gl-matrix": "^3.4.3"
62
+ }
63
+ }