@needle-tools/engine 4.3.0-alpha → 4.3.0-alpha.3

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 (122) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/needle-engine.bundle.js +6683 -5393
  3. package/dist/needle-engine.bundle.light.js +6687 -5397
  4. package/dist/needle-engine.bundle.light.min.js +121 -118
  5. package/dist/needle-engine.bundle.light.umd.cjs +128 -125
  6. package/dist/needle-engine.bundle.min.js +119 -116
  7. package/dist/needle-engine.bundle.umd.cjs +124 -121
  8. package/dist/needle-engine.d.ts +9 -9
  9. package/dist/needle-engine.light.d.ts +9 -9
  10. package/lib/engine/engine_context.js +1 -1
  11. package/lib/engine/engine_context.js.map +1 -1
  12. package/lib/engine/engine_mainloop_utils.js +2 -4
  13. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  14. package/lib/engine/engine_serialization_core.js +1 -1
  15. package/lib/engine/engine_serialization_core.js.map +1 -1
  16. package/lib/engine/engine_types.d.ts +162 -17
  17. package/lib/engine/xr/NeedleXRSession.d.ts +6 -1
  18. package/lib/engine/xr/NeedleXRSession.js +6 -1
  19. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  20. package/lib/engine-components/Animator.d.ts +129 -21
  21. package/lib/engine-components/Animator.js +115 -21
  22. package/lib/engine-components/Animator.js.map +1 -1
  23. package/lib/engine-components/AnimatorController.d.ts +161 -32
  24. package/lib/engine-components/AnimatorController.js +176 -29
  25. package/lib/engine-components/AnimatorController.js.map +1 -1
  26. package/lib/engine-components/AudioListener.d.ts +16 -5
  27. package/lib/engine-components/AudioListener.js +16 -5
  28. package/lib/engine-components/AudioListener.js.map +1 -1
  29. package/lib/engine-components/AudioSource.d.ts +120 -28
  30. package/lib/engine-components/AudioSource.js +121 -40
  31. package/lib/engine-components/AudioSource.js.map +1 -1
  32. package/lib/engine-components/AvatarLoader.d.ts +61 -0
  33. package/lib/engine-components/AvatarLoader.js +61 -1
  34. package/lib/engine-components/AvatarLoader.js.map +1 -1
  35. package/lib/engine-components/AxesHelper.d.ts +19 -1
  36. package/lib/engine-components/AxesHelper.js +19 -1
  37. package/lib/engine-components/AxesHelper.js.map +1 -1
  38. package/lib/engine-components/BoxHelperComponent.d.ts +26 -0
  39. package/lib/engine-components/BoxHelperComponent.js +26 -0
  40. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  41. package/lib/engine-components/Camera.d.ts +126 -37
  42. package/lib/engine-components/Camera.js +139 -37
  43. package/lib/engine-components/Camera.js.map +1 -1
  44. package/lib/engine-components/CameraUtils.js +20 -0
  45. package/lib/engine-components/CameraUtils.js.map +1 -1
  46. package/lib/engine-components/Collider.d.ts +95 -21
  47. package/lib/engine-components/Collider.js +100 -23
  48. package/lib/engine-components/Collider.js.map +1 -1
  49. package/lib/engine-components/Component.d.ts +554 -106
  50. package/lib/engine-components/Component.js +352 -81
  51. package/lib/engine-components/Component.js.map +1 -1
  52. package/lib/engine-components/DragControls.d.ts +95 -21
  53. package/lib/engine-components/DragControls.js +126 -32
  54. package/lib/engine-components/DragControls.js.map +1 -1
  55. package/lib/engine-components/DropListener.d.ts +99 -16
  56. package/lib/engine-components/DropListener.js +119 -14
  57. package/lib/engine-components/DropListener.js.map +1 -1
  58. package/lib/engine-components/Light.d.ts +102 -5
  59. package/lib/engine-components/Light.js +102 -44
  60. package/lib/engine-components/Light.js.map +1 -1
  61. package/lib/engine-components/NeedleMenu.d.ts +28 -11
  62. package/lib/engine-components/NeedleMenu.js +28 -11
  63. package/lib/engine-components/NeedleMenu.js.map +1 -1
  64. package/lib/engine-components/Networking.d.ts +37 -5
  65. package/lib/engine-components/Networking.js +37 -5
  66. package/lib/engine-components/Networking.js.map +1 -1
  67. package/lib/engine-components/SceneSwitcher.js +44 -0
  68. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  69. package/lib/engine-components/SpatialTrigger.d.ts +66 -1
  70. package/lib/engine-components/SpatialTrigger.js +74 -2
  71. package/lib/engine-components/SpatialTrigger.js.map +1 -1
  72. package/lib/engine-components/SpectatorCamera.d.ts +66 -4
  73. package/lib/engine-components/SpectatorCamera.js +132 -6
  74. package/lib/engine-components/SpectatorCamera.js.map +1 -1
  75. package/lib/engine-components/SyncedTransform.d.ts +45 -6
  76. package/lib/engine-components/SyncedTransform.js +45 -6
  77. package/lib/engine-components/SyncedTransform.js.map +1 -1
  78. package/lib/engine-components/TransformGizmo.d.ts +49 -3
  79. package/lib/engine-components/TransformGizmo.js +49 -3
  80. package/lib/engine-components/TransformGizmo.js.map +1 -1
  81. package/lib/engine-components/particlesystem/ParticleSystem.js +1 -1
  82. package/lib/engine-components/particlesystem/ParticleSystem.js.map +1 -1
  83. package/lib/engine-components/webxr/WebARSessionRoot.d.ts +8 -3
  84. package/lib/engine-components/webxr/WebARSessionRoot.js +30 -9
  85. package/lib/engine-components/webxr/WebARSessionRoot.js.map +1 -1
  86. package/lib/engine-components/webxr/WebXR.d.ts +156 -25
  87. package/lib/engine-components/webxr/WebXR.js +160 -26
  88. package/lib/engine-components/webxr/WebXR.js.map +1 -1
  89. package/lib/engine-components-experimental/networking/PlayerSync.d.ts +82 -9
  90. package/lib/engine-components-experimental/networking/PlayerSync.js +76 -11
  91. package/lib/engine-components-experimental/networking/PlayerSync.js.map +1 -1
  92. package/package.json +1 -1
  93. package/src/engine/engine_context.ts +1 -1
  94. package/src/engine/engine_mainloop_utils.ts +2 -4
  95. package/src/engine/engine_serialization_core.ts +1 -1
  96. package/src/engine/engine_types.ts +179 -18
  97. package/src/engine/xr/NeedleXRSession.ts +7 -1
  98. package/src/engine-components/Animator.ts +142 -22
  99. package/src/engine-components/AnimatorController.ts +184 -34
  100. package/src/engine-components/AudioListener.ts +16 -5
  101. package/src/engine-components/AudioSource.ts +127 -39
  102. package/src/engine-components/AvatarLoader.ts +61 -2
  103. package/src/engine-components/AxesHelper.ts +21 -1
  104. package/src/engine-components/BoxHelperComponent.ts +26 -0
  105. package/src/engine-components/Camera.ts +147 -41
  106. package/src/engine-components/CameraUtils.ts +20 -0
  107. package/src/engine-components/Collider.ts +102 -27
  108. package/src/engine-components/Component.ts +605 -129
  109. package/src/engine-components/DragControls.ts +134 -38
  110. package/src/engine-components/DropListener.ts +143 -23
  111. package/src/engine-components/Light.ts +105 -44
  112. package/src/engine-components/NeedleMenu.ts +29 -11
  113. package/src/engine-components/Networking.ts +37 -6
  114. package/src/engine-components/SceneSwitcher.ts +48 -1
  115. package/src/engine-components/SpatialTrigger.ts +80 -3
  116. package/src/engine-components/SpectatorCamera.ts +136 -18
  117. package/src/engine-components/SyncedTransform.ts +50 -7
  118. package/src/engine-components/TransformGizmo.ts +49 -4
  119. package/src/engine-components/particlesystem/ParticleSystem.ts +2 -2
  120. package/src/engine-components/webxr/WebARSessionRoot.ts +31 -8
  121. package/src/engine-components/webxr/WebXR.ts +173 -29
  122. package/src/engine-components-experimental/networking/PlayerSync.ts +85 -13
@@ -40,18 +40,23 @@ export class WebARSessionRoot extends Behaviour {
40
40
  this._eventListeners[event].splice(index, 1);
41
41
  };
42
42
  }
43
- /** The scale of a user in AR:
44
- * Note: a large value makes the scene appear smaller
43
+ static _hasPlaced = false;
44
+ /**
45
+ * @returns true if the scene has been placed in AR by the user or automatic placement
46
+ */
47
+ static get hasPlaced() {
48
+ return this._hasPlaced;
49
+ }
50
+ /** The scale of the user in AR.
51
+ * **NOTE**: a large value makes the scene appear smaller
45
52
  * @default 1
46
53
  */
47
54
  get arScale() {
48
55
  return this._arScale;
49
56
  }
50
57
  set arScale(val) {
51
- if (val === this._arScale)
52
- return;
53
- this._arScale = val;
54
- this.onScaleChanged();
58
+ this._arScale = Math.max(0.000001, val);
59
+ this.onSetScale();
55
60
  }
56
61
  _arScale = 1;
57
62
  /** When enabled the placed scene forward direction will towards the XRRig
@@ -110,6 +115,7 @@ export class WebARSessionRoot extends Behaviour {
110
115
  if (debug)
111
116
  console.log("ENTER WEBXR: SessionRoot start...");
112
117
  this._anchor = null;
118
+ WebARSessionRoot._hasPlaced = false;
113
119
  // if (_args.xr.session.enabledFeatures?.includes("image-tracking")) {
114
120
  // console.warn("Image tracking is enabled - will not place scene");
115
121
  // return;
@@ -163,6 +169,7 @@ export class WebARSessionRoot extends Behaviour {
163
169
  this.onRevertSceneChanges();
164
170
  // this._anchor?.delete();
165
171
  this._anchor = null;
172
+ WebARSessionRoot._hasPlaced = false;
166
173
  this._rigPlacementMatrix = undefined;
167
174
  }
168
175
  onUpdateXR(args) {
@@ -351,6 +358,7 @@ export class WebARSessionRoot extends Behaviour {
351
358
  reticle.position.copy(reticle["lastPos"]);
352
359
  reticle.quaternion.copy(reticle["lastQuat"]);
353
360
  this.onApplyPose(reticle);
361
+ WebARSessionRoot._hasPlaced = true;
354
362
  if (this.useXRAnchor) {
355
363
  this.onCreateAnchor(NeedleXRSession.active, hit);
356
364
  }
@@ -360,8 +368,17 @@ export class WebARSessionRoot extends Behaviour {
360
368
  }
361
369
  }
362
370
  };
363
- onScaleChanged() {
364
- // TODO: implement
371
+ onSetScale() {
372
+ if (!WebARSessionRoot._hasPlaced)
373
+ return;
374
+ const rig = NeedleXRSession.active?.rig?.gameObject;
375
+ if (rig) {
376
+ const currentScale = NeedleXRSession.active?.rigScale || 1;
377
+ const newScale = (1 / this._arScale) * currentScale;
378
+ const scaleMatrix = new Matrix4().makeScale(newScale, newScale, newScale).invert();
379
+ rig.matrix.premultiply(scaleMatrix);
380
+ rig.matrix.decompose(rig.position, rig.quaternion, rig.scale);
381
+ }
365
382
  }
366
383
  onRevertSceneChanges() {
367
384
  for (const ret of this._reticle) {
@@ -447,7 +464,7 @@ export class WebARSessionRoot extends Behaviour {
447
464
  console.warn("No rig object to place");
448
465
  return;
449
466
  }
450
- const rigScale = NeedleXRSession.active?.rigScale || 1;
467
+ // const rigScale = NeedleXRSession.active?.rigScale || 1;
451
468
  // save the previous rig parent
452
469
  const previousParent = rigObject.parent || this.context.scene;
453
470
  // if we have placed this rig before and this is just "replacing" with the anchor
@@ -493,6 +510,9 @@ class WebXRSessionRootUserInput {
493
510
  plane;
494
511
  _scale = 1;
495
512
  _hasChanged = false;
513
+ get scale() {
514
+ return this._scale;
515
+ }
496
516
  // readonly translate: Vector3 = new Vector3();
497
517
  // readonly rotation: Quaternion = new Quaternion();
498
518
  // readonly scale: Vector3 = new Vector3(1, 1, 1);
@@ -506,6 +526,7 @@ class WebXRSessionRootUserInput {
506
526
  reset() {
507
527
  this._scale = 1;
508
528
  this.offset.identity();
529
+ this._hasChanged = true;
509
530
  }
510
531
  get hasChanged() { return this._hasChanged; }
511
532
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"WebARSessionRoot.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebARSessionRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3I,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGnF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAkB,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAsD,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACpI,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAExD,8HAA8H;AAE9H,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAErC,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAGjE;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAEnC,MAAM,CAAC,eAAe,GAA6E,EAAE,CAAC;IAC9G;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,EAAkD;QAC9D,MAAM,KAAK,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACnE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACR,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC,CAAA;IACL,CAAC;IAGD;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,CAAC,GAAW;QACnB,IAAI,GAAG,KAAK,IAAI,CAAC,QAAQ;YAAE,OAAO;QAClC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACO,QAAQ,GAAW,CAAC,CAAC;IAE7B;;;MAGE;IACF,aAAa,GAAY,KAAK,CAAC;IAE/B;;OAEG;IACH,aAAa,CAAkB;IAE/B;;OAEG;IACH,gBAAgB,GAAY,IAAI,CAAC;IAEjC;;OAEG;IACH,SAAS,GAAY,KAAK,CAAC;IAE3B,mGAAmG;IACnG,UAAU,GAAY,KAAK,CAAC;IAE5B;;;QAGI;IACJ,WAAW,GAAY,KAAK,CAAC;IAE7B,gDAAgD;IACxC,UAAU,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACc,YAAY,GAAY,IAAI,OAAO,EAAE,CAAC;IAE/C,uBAAuB,GAAoB,IAAI,CAAC;IACvC,qBAAqB,GAA6D,EAAE,CAAC;IAEtG,yIAAyI;IACzI,4DAA4D;IAC5D,qHAAqH;IACpG,eAAe,GAAU,IAAI,KAAK,EAAE,CAAC;IAEtD,sCAAsC;IACrB,QAAQ,GAAkB,EAAE,CAAC;IAC9C,4CAA4C;IAC3B,KAAK,GAAsB,EAAE,CAAC;IAEvC,mBAAmB,GAAW,CAAC,CAAC,CAAC;IACjC,mBAAmB,CAAW;IACtC,8GAA8G;IACtG,OAAO,GAAoB,IAAI,CAAC;IACxC,gDAAgD;IACxC,SAAS,CAA6B;IAE9C,QAAQ;QACJ,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,IAAmB;QAC1B,OAAO,IAAI,KAAK,cAAc,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,KAAwB;QAC9B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,sEAAsE;QACtE,wEAAwE;QACxE,cAAc;QACd,IAAI;QAEJ,yFAAyF;QACzF,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEpD,6DAA6D;QAC7D,mFAAmF;QACnF,MAAM,UAAU,GAAG,IAAI,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,uBAAuB,GAAG,UAAU,CAAC;QAC1C,UAAU,CAAC,IAAI,GAAG,iBAAiB,CAAC;QACpC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACtC;QAED,sBAAsB;QACtB,6EAA6E;QAC7E,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACjF,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC1C,qDAAqD;QACrD,eAAe;QACf,0FAA0F;QAC1F,kDAAkD;QAClD,8DAA8D;QAC9D,IAAI;QAEJ,8CAA8C;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC;SAChB;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,qIAAqI;QACrI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,SAAS;QACL,iHAAiH;QACjH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACzG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,0BAA0B;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;IACzC,CAAC;IACD,UAAU,CAAC,IAAuB;QAE9B,2DAA2D;QAC3D,IAAI,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE;YAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ;gBAC3B,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YACxB,OAAO;SACV;QAED,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC;YAC1C,wDAAwD;YACxD,kGAAkG;YAClG,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aACrC;YAED,yEAAyE;YACzE,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,gDAAgD;YAChD,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC5E,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;oBACpC,yEAAyE;oBACzE,6GAA6G;oBAC7G,4EAA4E;oBAC5E,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;oBAC9B,IAAI,GAAG,EAAE;wBACL,iBAAiB,GAAG,IAAI,CAAC;wBACzB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;qBACzE;iBACJ;aACJ;YACD,4HAA4H;YAC5H,IAAI,CAAC,iBAAiB,EAAE;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;gBACjC,IAAI,GAAG,EAAE;oBACL,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;iBAChE;aACJ;SAEJ;aACI;YACD,yBAAyB;YACzB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,cAAc,EAAE;gBACxC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC;gBACrF,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,CAAC,EAAE;oBAC5C,+CAA+C;oBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACvD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACjC,IAAI,OAAO,EAAE;wBACT,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;wBAC1C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;wBAC9C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;qBAC7B;iBACJ;aACJ;YAED,wBAAwB;YACxB,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClF,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;aAC5B;;gBACI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE;gBACrD,IAAI,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE;oBACb,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;oBACnC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC/C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC9D,iEAAiE;oBACjE,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;iBACvC;gBACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAC1B;SACJ;IACL,CAAC;IAEO,oBAAoB,CAAC,GAAoB,EAAE,CAAS,EAAE,GAA0B,EAAE,KAAa;QACnG,oBAAoB;QACpB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;QACxB,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;oBAC1B,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;iBACnD;qBACI;oBACD,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;oBACpC,OAAO;iBACV;aACJ;iBACI;gBACD,OAAO,GAAG,IAAI,IAAI,CACd,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EACvD,IAAI,iBAAiB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAC7G,CAAC;gBACxB,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;aACzC;YACD,IAAI,KAAK,EAAE;gBACP,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACrB;YACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;YAC3B,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;YACjC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;SAC3B;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACpE,uEAAuE;QACvE,2EAA2E;QAE3E,mGAAmG;QACnG,iGAAiG;QACjG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/F,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC;QACtG,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE7C,sGAAsG;QACtG,qDAAqD;QACrD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAEvC,4BAA4B;QAC5B,gCAAgC;QAChC,IAAI;QAEJ,8FAA8F;QAC9F,0BAA0B;QAC1B,IAAI,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAE1C,OAAO,CAAC,YAAY,EAAE,CAAC;QACvB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK;YACrC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC;SACrE;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAC1D,IAAI,IAAI,EAAE;gBACN,iHAAiH;gBACjH,IAAI,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBACtD,IAAI,eAAe,IAAI,CAAC,EAAE;oBACtB,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;oBACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;iBAC3B;qBACI;oBACD,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;oBAC/C,OAAO,CAAC,iBAAiB,CAAC,GAAG,eAAe,CAAC;iBAChD;aACJ;iBACI;gBACD,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;aAClC;SACJ;IACL,CAAC;IAEO,YAAY,GAAG,CAAC,GAA0B,EAAE,EAAE;QAClD,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK;YAAE,OAAO;QACrC,IAAI,GAAG,EAAE,IAAI;YAAE,OAAO;QAEtB,IAAI,OAAO,GAA4B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvC,OAAO;SACV;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACvD,OAAO;SACV;QAED,IAAI,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE;YAC1C,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAC3E,OAAO;SACV;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,YAAY,kBAAkB,EAAE;YACjD,gIAAgI;YAChI,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,iBAAiB,EAAE;gBACnB,OAAO,GAAG,iBAAiB,CAAC;gBAC5B,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACtC;SACJ;QAED,iLAAiL;QACjL,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,wBAAwB,EAAE,CAAC;YAC/B,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,EAAE,CAAC;SACb;QAED,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvE,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,2EAA2E;QAC3E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAO,EAAE,GAAG,CAAC,CAAC;SACrD;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;YACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE;gBAC5C,IAAI,CAAC,mBAAmB,EAAE,CAAC;aAC9B;SACJ;IACL,CAAC,CAAA;IAEO,cAAc;QAClB,kBAAkB;IACtB,CAAC;IAEO,oBAAoB;QACxB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC7B,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;YACpB,GAAG,EAAE,gBAAgB,EAAE,CAAC;SAC3B;QACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAEzB,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAChE,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAC9B;QACD,IAAI,CAAC,uBAAuB,EAAE,gBAAgB,EAAE,CAAC;QAEjD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,qBAAqB,EAAE;YACjD,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;SACvE;IACL,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAwB,EAAE,GAAoB;QACvE,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAC;YAC7D,IAAI,gBAAgB,EAAE;gBAAE,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;YACtF,OAAO;SACV;aACI;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,UAAW,CAAC,SAAS,CAAC,CAAC;YACrE,wCAAwC;YACxC,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE;gBAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;aACzB;SACJ;IACL,CAAC;IAEO,KAAK,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,SAAS,GAAY,IAAI,OAAO,EAAE,CAAC;IACnC,UAAU,GAAY,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3C,uBAAuB,CAAC,OAAiB;QAE7C,+EAA+E;QAC/E,0EAA0E;QAC1E,0GAA0G;QAC1G,2EAA2E;QAC3E,8DAA8D;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAoC,CAAC;QAChE,MAAM,SAAS,GAAG,OAAqB,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;QAClC,MAAM,SAAS,GAAG,SAAS,CAAC,aAAa,CAAC;QAE1C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE5D,4EAA4E;QAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC;QACnC,IAAI,MAAM,EAAE;YACR,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE;gBACrB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACvB;SACJ;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;QACpE,4CAA4C;QAC5C,8DAA8D;QAC9D,+DAA+D;QAE/D,MAAM,qBAAqB,GAAG,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,qBAAqB,IAAI,OAAO,GAAG,GAAG,GAAG,qBAAqB,CAAC;YAC1E,CAAC,OAAO,GAAG,CAAC,qBAAqB,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,qBAAqB,CAAC,EAAE;YAE9E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;aACI;YACD,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzB;QAED,0HAA0H;QAC1H,+DAA+D;QAC/D;;;;UAIE;IACN,CAAC;IAEO,WAAW,CAAC,OAAiB;QACjC,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC;QAC1D,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvC,OAAO;SACV;QACD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;QAEvD,+BAA+B;QAC/B,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAE9D,iFAAiF;QACjF,8FAA8F;QAC9F,sFAAsF;QACtF,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;SAClG;aACI;YACD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;SACvD;QAED,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,YAAY,EAAE,CAAC;QACvB,sIAAsI;QACtI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1B,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAE3B,uCAAuC;QACvC,8BAA8B;QAC9B,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhD,SAAS,CAAC,YAAY,EAAE,CAAC;QACzB,uEAAuE;QACvE,4GAA4G;QAC5G,IAAI,IAAI,CAAC,aAAa;YAClB,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACtD,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEhD,qEAAqE;QACrE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACtF,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAElC,CAAC;;AAML,MAAM,yBAAyB;IACnB,MAAM,CAAC,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjC,MAAM,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1C,aAAa,GAAY,IAAI,CAAC;IAC9B,eAAe,GAAY,IAAI,CAAC;IAChC,cAAc,GAAY,IAAI,CAAC;IAE/B,MAAM,GAAW,CAAC,CAAC;IAEV,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,KAAK,CAAQ;IAEd,MAAM,GAAW,CAAC,CAAC;IACnB,WAAW,GAAY,KAAK,CAAC;IAErC,+CAA+C;IAC/C,oDAAoD;IACpD,kDAAkD;IAElD,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,EAAE,CAAA;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,EAAE,EAAE,yBAAyB,CAAC,IAAI,CAAC,CAAC;IAC3G,CAAC;IAEO,QAAQ,GAAY,KAAK,CAAC;IAElC,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IACD,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7C;;;;OAIG;IACH,aAAa,CAAC,MAAe,EAAE,MAAe;QAC1C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,MAAM,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACrB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC;;YAEG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,yBAAyB;QACzB,2BAA2B;QAC3B,4CAA4C;QAC5C,oEAAoE;IACxE,CAAC;IAGgB,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/D,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM;QACF,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QAE1G,8DAA8D;QAC9D,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QACjH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/G,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;QAE7G,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAEO,kBAAkB,GAAG,CAAC,CAAiB,EAAE,EAAE;QAC/C,IAAI,IAAI,CAAC,QAAQ;YAAE,CAAC,CAAC,eAAe,EAAE,CAAC;IAC3C,CAAC,CAAC;IACM,iBAAiB,GAAG,CAAC,CAAiB,EAAE,EAAE;QAC9C,IAAI,CAAC,CAAC,IAAI;YAAE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACrD,IAAI,IAAI,CAAC,uBAAuB,CAAC,IAAI,IAAI,CAAC;YAAE,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrG,CAAC,CAAC;IACM,gBAAgB,GAAG,CAAC,CAAiB,EAAE,EAAE;QAC7C,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC,CAAC;IAEF,wCAAwC;IACxC,oDAAoD;IACpD,2BAA2B;IAC3B,iCAAiC;IACjC,sEAAsE;IACtE,yEAAyE;IACzE,iEAAiE;IACjE,2CAA2C;IAC3C,sDAAsD;IACtD,sDAAsD;IACtD,sDAAsD;IACtD,uCAAuC;IACvC,+BAA+B;IAC/B,uEAAuE;IACvE,IAAI;IAEI,IAAI,GAA6F,IAAI,GAAG,EAAE,CAAC;IAC3G,cAAc,GAAY,KAAK,CAAC;IAEhC,UAAU,GAAG,CAAC,GAAe,EAAE,EAAE;QACrC,IAAI,GAAG,CAAC,gBAAgB;YAAE,OAAO;QAEjC,2BAA2B;QAC3B,4GAA4G;QAC5G,uBAAuB;QACvB,cAAc;QACd,IAAI;QAEJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACpC,yDAAyD;YACzD,4CAA4C;YAC5C,eAAe;YACf,MAAM,MAAM,GAAG,eAAe,CAAC,eAAe,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE;oBAC5B,MAAM;oBACN,CAAC,EAAE,CAAC;oBACJ,CAAC,EAAE,CAAC;oBACJ,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;iBACb,CAAC,CAAC;YACP,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,IAAI,EAAE;gBACN,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBAClE,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;aAChC;SACJ;IACL,CAAC,CAAA;IACO,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;QACnC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE;YACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;SACtC;IACL,CAAC,CAAA;IACO,SAAS,GAAG,CAAC,GAAe,EAAE,EAAE;QACpC,IAAI,GAAG,CAAC,gBAAgB;YAAE,OAAO;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC1B,oEAAoE;YACpE,4EAA4E;YAC5E,8CAA8C;YAC9C,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,OAAO;aACV;YACD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAClE,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC1B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;gBAAE,OAAO;YACjC,IAAI,IAAI,CAAC,aAAa;gBAClB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC7B,OAAO;SACV;aACI,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK;gBAAE,OAAO;YAE7B,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC5F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3F,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;gBACrC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE;oBAC7B,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;iBAC/B;aACJ;YAED,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;gBACtD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAChD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;gBAC1E,MAAM,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC;gBACjC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACxB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;iBAC1B;aACJ;YAED,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;SAClC;IACL,CAAC,CAAA;IAEgB,UAAU,GAAc,IAAI,SAAS,EAAE,CAAC;IACxC,aAAa,GAAY,IAAI,OAAO,EAAE,CAAC;IACvC,UAAU,GAAY,IAAI,OAAO,EAAE,CAAC;IAE7C,kBAAkB,CAAC,EAAU,EAAE,EAAU;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAW,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC;QAEtB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAEO,WAAW,CAAC,EAAU,EAAE,EAAU;QACtC,0BAA0B;QAC1B,0BAA0B;QAC1B,4BAA4B;QAC5B,SAAS;QAET,6CAA6C;QAC7C,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;QAClB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;QAElB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;QAClB,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC;QAElB,WAAW;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC,CAAC;IAAA,CAAC;IAEe,WAAW,GAAY,IAAI,OAAO,EAAE,CAAC;IAE9C,QAAQ,CAAC,IAAY;QACzB,IAAI,IAAI,MAAM,CAAC,UAAU,CAAA;QACzB,IAAI,IAAI,CAAC,CAAC,CAAC;QAEX,4BAA4B;QAC5B,4BAA4B;QAC5B,4BAA4B;QAC5B,4BAA4B;QAC5B,UAAU;QAGV,0EAA0E;QAC1E,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;QACxB,kBAAkB;QAClB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,CAAC;YACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC,CAAC;IAGO,WAAW,CAAC,GAAW;QAC3B,GAAG,IAAI,CAAC,CAAC,CAAC;QACV,gGAAgG;QAChG,4BAA4B;QAC5B,UAAU;QACV,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,CAAC;YACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChC,CAAC"}
1
+ {"version":3,"file":"WebARSessionRoot.js","sourceRoot":"","sources":["../../../src/engine-components/webxr/WebARSessionRoot.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { WebXRButtonFactory } from "../../engine/webcomponents/WebXRButtons.js";
5
5
  import { Behaviour } from "../Component.js";
6
6
  import { XRControllerModel } from "./controllers/XRControllerModel.js";
7
7
  import { XRControllerMovement } from "./controllers/XRControllerMovement.js";
8
+ import { WebARSessionRoot } from "./WebARSessionRoot.js";
8
9
  /**
9
10
  * WebXR component to enable VR, AR and Quicklook on iOS in your scene.
10
11
  * It provides a simple wrapper around the {@link NeedleXRSession} API and adds some additional features like creating buttons or enabling default movement behaviour.
@@ -12,90 +13,220 @@ import { XRControllerMovement } from "./controllers/XRControllerMovement.js";
12
13
  * @group Components
13
14
  */
14
15
  export declare class WebXR extends Behaviour {
15
- /** When enabled a button will be added to the UI to enter VR */
16
+ /**
17
+ * When enabled, a button will be automatically added to {@link NeedleMenu} that allows users to enter VR mode.
18
+ */
16
19
  createVRButton: boolean;
17
- /** When enabled a button will be added to the UI to enter AR */
20
+ /**
21
+ * When enabled, a button will be automatically added to {@link NeedleMenu} that allows users to enter AR mode.
22
+ */
18
23
  createARButton: boolean;
19
- /** When enabled a send to quest button will be shown if the device does not support VR */
24
+ /**
25
+ * When enabled, a button to send the experience to an Oculus Quest will be shown if the current device does not support VR.
26
+ * This helps direct users to compatible devices for optimal VR experiences.
27
+ */
20
28
  createSendToQuestButton: boolean;
21
- /** When enabled a QRCode will be created to open the website on a mobile device */
29
+ /**
30
+ * When enabled, a QR code will be generated and displayed on desktop devices to allow easy opening of the experience on mobile devices.
31
+ */
22
32
  createQRCode: boolean;
23
- /** When enabled default movement behaviour will be added */
33
+ /**
34
+ * When enabled, default movement controls will be automatically added to the scene when entering VR.
35
+ * This includes teleportation and smooth locomotion options for VR controllers.
36
+ */
24
37
  useDefaultControls: boolean;
25
- /** When enabled controller models will automatically be created and updated when you are using controllers in WebXR */
38
+ /**
39
+ * When enabled, 3D models representing the user's VR controllers will be automatically created and rendered in the scene.
40
+ */
26
41
  showControllerModels: boolean;
27
- /** When enabled hand models will automatically be created and updated when you are using hands in WebXR */
42
+ /**
43
+ * When enabled, 3D models representing the user's hands will be automatically created and rendered when hand tracking is available.
44
+ */
28
45
  showHandModels: boolean;
29
- /** When enabled the scene must be placed in AR */
46
+ /**
47
+ * When enabled, a reticle will be displayed to help place the scene in AR. The user must tap on a detected surface to position the scene.
48
+ */
30
49
  usePlacementReticle: boolean;
31
- /** When assigned this object will be used as the AR placement reticle */
50
+ /**
51
+ * Optional custom 3D object to use as the AR placement reticle instead of the default one.
52
+ */
32
53
  customARPlacementReticle?: AssetReference;
33
- /** When enabled you can position, rotate or scale your AR scene with one or two fingers */
54
+ /**
55
+ * When enabled, users can adjust the position, rotation, and scale of the AR scene with one or two fingers after initial placement.
56
+ */
34
57
  usePlacementAdjustment: boolean;
35
- /** Used when `usePlacementReticle` is enabled. This is the scale of the user in the scene in AR. Larger values make the 3D content appear smaller */
58
+ /**
59
+ * Determines the scale of the user relative to the scene in AR. Larger values make the 3D content appear smaller.
60
+ * Only applies when `usePlacementReticle` is enabled.
61
+ */
36
62
  arScale: number;
37
- /** Experimental: When enabled an XRAnchor will be created for the AR scene and the position will be updated to the anchor position every few frames */
63
+ /**
64
+ * When enabled, an XRAnchor will be created for the AR scene and its position will be regularly updated to match the anchor.
65
+ * This can help with spatial persistence in AR experiences.
66
+ * @experimental
67
+ */
38
68
  useXRAnchor: boolean;
39
69
  /**
40
- * When enabled the scene will be placed automatically when a point in the real world is found
70
+ * When enabled, the scene will be automatically placed as soon as a suitable surface is detected in AR,
71
+ * without requiring the user to tap to confirm placement.
41
72
  */
42
73
  autoPlace: boolean;
43
- /** When enabled the AR session root center will be automatically adjusted to place the center of the scene */
74
+ /**
75
+ * When enabled, the AR session root center will be automatically adjusted to place the center of the scene.
76
+ * This helps ensure the scene is properly aligned with detected surfaces.
77
+ */
44
78
  autoCenter: boolean;
45
- /** When enabled a USDZExporter component will be added to the scene (if none is found) */
79
+ /**
80
+ * When enabled, a USDZExporter component will be automatically added to the scene if none is found.
81
+ * This allows iOS and visionOS devices to view 3D content using Apple's AR QuickLook.
82
+ */
46
83
  useQuicklookExport: boolean;
47
- /** Preview feature enabling occlusion (when available: https://github.com/cabanier/three.js/commit/b6ee92bcd8f20718c186120b7f19a3b68a1d4e47)
48
- * Enables the 'depth-sensing' WebXR feature to provide realtime depth occlusion. Only supported on Oculus Quest right now.
84
+ /**
85
+ * When enabled, the 'depth-sensing' WebXR feature will be requested to provide real-time depth occlusion.
86
+ * Currently only supported on Oculus Quest devices.
87
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/XRDepthInformation
88
+ * @experimental
49
89
  */
50
90
  useDepthSensing: boolean;
51
91
  /**
52
- * When enabled the spatial grab raycaster will be added or enabled in the scene
92
+ * When enabled, a {@link SpatialGrabRaycaster} will be added or enabled in the scene,
93
+ * allowing users to interact with objects at a distance in VR/AR.
53
94
  * @default true
54
95
  */
55
96
  useSpatialGrab: boolean;
56
- /** This avatar representation will be spawned when you enter a webxr session */
97
+ /**
98
+ * Specifies the avatar representation that will be created when entering a WebXR session.
99
+ * Can be a reference to a 3D model or a boolean to use the default avatar.
100
+ */
57
101
  defaultAvatar?: AssetReference | boolean;
58
102
  private _playerSync?;
59
103
  /** these components were created by the WebXR component on session start and will be cleaned up again in session end */
60
104
  private readonly _createdComponentsInSession;
61
105
  private _usdzExporter?;
62
106
  static activeWebXRComponent: WebXR | null;
107
+ /**
108
+ * Initializes the WebXR component by obtaining the XR sync object for this context.
109
+ * @internal
110
+ */
63
111
  awake(): void;
112
+ /**
113
+ * Sets up the WebXR component when it's enabled. Checks for HTTPS connection,
114
+ * sets up USDZ export if enabled, creates UI buttons, and configures avatar settings.
115
+ * @internal
116
+ */
64
117
  onEnable(): void;
118
+ /**
119
+ * Cleans up resources when the component is disabled.
120
+ * Destroys the USDZ exporter if one was created and removes UI buttons.
121
+ * @internal
122
+ */
65
123
  onDisable(): void;
124
+ /**
125
+ * Checks if WebXR is supported and offers an appropriate session.
126
+ * This is used to show the WebXR session joining prompt in browsers that support it.
127
+ * @returns A Promise that resolves to true if a session was offered, false otherwise
128
+ */
66
129
  private handleOfferSession;
67
130
  /** the currently active webxr input session */
68
131
  get session(): NeedleXRSession | null;
69
132
  /** immersive-vr or immersive-ar */
70
133
  get sessionMode(): XRSessionMode | null;
71
- /** Call to start an WebVR session */
134
+ /** While AR: this will return the currently active WebARSessionRoot component.
135
+ * You can also query this component in your scene with `findObjectOfType(WebARSessionRoot)`
136
+ */
137
+ get arSessionRoot(): WebARSessionRoot | null;
138
+ /** Call to start an WebVR session.
139
+ *
140
+ * This is a shorthand for `NeedleXRSession.start("immersive-vr", init, this.context)`
141
+ */
72
142
  enterVR(init?: XRSessionInit): Promise<NeedleXRSession | null>;
73
- /** Call to start an WebAR session */
143
+ /** Call to start an WebAR session
144
+ *
145
+ * This is a shorthand for `NeedleXRSession.start("immersive-ar", init, this.context)`
146
+ */
74
147
  enterAR(init?: XRSessionInit): Promise<NeedleXRSession | null>;
75
- /** Call to end a WebXR (AR or VR) session */
148
+ /** Call to end a WebXR (AR or VR) session.
149
+ *
150
+ * This is a shorthand for `NeedleXRSession.stop()`
151
+ */
76
152
  exitXR(): void;
77
153
  private _exitXRMenuButton?;
78
154
  private _previousXRState;
79
155
  private _spatialGrabRaycaster?;
156
+ private _activeWebARSessionRoot;
80
157
  private get isActiveWebXR();
158
+ /**
159
+ * Called before entering a WebXR session. Sets up optional features like depth sensing, if needed.
160
+ * @param _mode The XR session mode being requested (immersive-ar or immersive-vr)
161
+ * @param args The XRSessionInit object that will be passed to the WebXR API
162
+ * @internal
163
+ */
81
164
  onBeforeXR(_mode: XRSessionMode, args: XRSessionInit): void;
165
+ /**
166
+ * Called when a WebXR session begins. Sets up the scene for XR by configuring controllers,
167
+ * AR placement, and other features based on component settings.
168
+ * @param args Event arguments containing information about the started XR session
169
+ * @internal
170
+ */
82
171
  onEnterXR(args: NeedleXREventArgs): Promise<void>;
172
+ /**
173
+ * Called every frame during an active WebXR session.
174
+ * Updates components that depend on the current XR state.
175
+ * @param _args Event arguments containing information about the current XR session frame
176
+ * @internal
177
+ */
83
178
  onUpdateXR(_args: NeedleXREventArgs): void;
179
+ /**
180
+ * Called when a WebXR session ends. Restores pre-session state,
181
+ * removes temporary components, and cleans up resources.
182
+ * @param _ Event arguments containing information about the ended XR session
183
+ * @internal
184
+ */
84
185
  onLeaveXR(_: NeedleXREventArgs): void;
85
186
  /** Call to enable or disable default controller behaviour */
86
187
  setDefaultMovementEnabled(enabled: boolean): XRControllerMovement | null;
87
188
  /** Call to enable or disable default controller rendering */
88
189
  setDefaultControllerRenderingEnabled(enabled: boolean): XRControllerModel | null;
190
+ /**
191
+ * Creates and instantiates the user's avatar representation in the WebXR session.
192
+ * @param xr The active session
193
+ */
89
194
  protected createLocalAvatar(xr: NeedleXRSession): Promise<void>;
195
+ /**
196
+ * Event handler called when a player avatar is spawned.
197
+ * Ensures the avatar has the necessary Avatar component.
198
+ * @param instance The spawned avatar 3D object
199
+ */
90
200
  private onAvatarSpawned;
91
- /** @deprecated use `getButtonsFactory()` or access `WebXRButtonFactory.getOrCreate()` directory */
201
+ /** @deprecated use {@link getButtonsFactory} or directly access {@link WebXRButtonFactory.getOrCreate} */
92
202
  getButtonsContainer(): WebXRButtonFactory;
93
- /** Calling this function will get the Needle WebXR button factory (it will be created if it doesnt exist yet)
94
- * @returns the Needle WebXR button factory */
203
+ /**
204
+ * Returns the WebXR button factory, creating one if it doesn't exist.
205
+ * Use this to access and modify WebXR UI buttons.
206
+ * @returns The WebXRButtonFactory instance
207
+ */
95
208
  getButtonsFactory(): WebXRButtonFactory;
209
+ /**
210
+ * Reference to the WebXR button factory used by this component.
211
+ */
96
212
  private _buttonFactory?;
213
+ /**
214
+ * Creates and sets up UI elements for WebXR interaction based on component settings
215
+ * and device capabilities. Handles creating AR, VR, QuickLook buttons and utility buttons like QR codes.
216
+ */
97
217
  private handleCreatingHTML;
218
+ /**
219
+ * Storage for UI buttons created by this component.
220
+ */
98
221
  private readonly _buttons;
222
+ /**
223
+ * Adds a button to the UI with the specified priority.
224
+ * @param button The HTML element to add
225
+ * @param priority The button's priority value (lower numbers appear first)
226
+ */
99
227
  private addButton;
228
+ /**
229
+ * Removes all buttons created by this component from the UI.
230
+ */
100
231
  private removeButtons;
101
232
  }