@needle-tools/engine 2.35.5-pre → 2.36.0-pre

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 (115) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/needle-engine.d.ts +160 -110
  3. package/dist/needle-engine.js +370 -365
  4. package/dist/needle-engine.js.map +4 -4
  5. package/dist/needle-engine.min.js +61 -56
  6. package/dist/needle-engine.min.js.map +4 -4
  7. package/lib/engine/debug/debug_overlay.js +12 -1
  8. package/lib/engine/debug/debug_overlay.js.map +1 -1
  9. package/lib/engine/engine_element_loading.js +1 -1
  10. package/lib/engine/engine_element_loading.js.map +1 -1
  11. package/lib/engine/engine_gameobject.d.ts +1 -0
  12. package/lib/engine/engine_gameobject.js +13 -1
  13. package/lib/engine/engine_gameobject.js.map +1 -1
  14. package/lib/engine/engine_gltf_builtin_components.js +4 -0
  15. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  16. package/lib/engine/engine_mainloop_utils.d.ts +1 -1
  17. package/lib/engine/engine_mainloop_utils.js +7 -3
  18. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  19. package/lib/engine/engine_physics.d.ts +29 -28
  20. package/lib/engine/engine_physics.js +85 -86
  21. package/lib/engine/engine_physics.js.map +1 -1
  22. package/lib/engine/engine_serialization_core.js +14 -6
  23. package/lib/engine/engine_serialization_core.js.map +1 -1
  24. package/lib/engine/engine_setup.js +1 -1
  25. package/lib/engine/engine_setup.js.map +1 -1
  26. package/lib/engine/engine_time.d.ts +1 -0
  27. package/lib/engine/engine_time.js +1 -0
  28. package/lib/engine/engine_time.js.map +1 -1
  29. package/lib/engine/engine_types.d.ts +1 -0
  30. package/lib/engine/engine_types.js.map +1 -1
  31. package/lib/engine/engine_typestore.d.ts +1 -0
  32. package/lib/engine/engine_typestore.js +1 -0
  33. package/lib/engine/engine_typestore.js.map +1 -1
  34. package/lib/engine/engine_utils.js +1 -1
  35. package/lib/engine/engine_utils.js.map +1 -1
  36. package/lib/engine/extensions/NEEDLE_animator_controller_model.js.map +1 -1
  37. package/lib/engine/extensions/NEEDLE_techniques_webgl.js +5 -0
  38. package/lib/engine/extensions/NEEDLE_techniques_webgl.js.map +1 -1
  39. package/lib/engine-components/Animation.d.ts +5 -1
  40. package/lib/engine-components/Animation.js +21 -0
  41. package/lib/engine-components/Animation.js.map +1 -1
  42. package/lib/engine-components/AnimatorController.d.ts +1 -0
  43. package/lib/engine-components/AnimatorController.js +14 -7
  44. package/lib/engine-components/AnimatorController.js.map +1 -1
  45. package/lib/engine-components/BoxHelperComponent.d.ts +2 -2
  46. package/lib/engine-components/BoxHelperComponent.js +27 -9
  47. package/lib/engine-components/BoxHelperComponent.js.map +1 -1
  48. package/lib/engine-components/Component.d.ts +2 -1
  49. package/lib/engine-components/Component.js +11 -5
  50. package/lib/engine-components/Component.js.map +1 -1
  51. package/lib/engine-components/GroundProjection.d.ts +2 -0
  52. package/lib/engine-components/GroundProjection.js +18 -6
  53. package/lib/engine-components/GroundProjection.js.map +1 -1
  54. package/lib/engine-components/ReflectionProbe.d.ts +22 -0
  55. package/lib/engine-components/ReflectionProbe.js +134 -0
  56. package/lib/engine-components/ReflectionProbe.js.map +1 -0
  57. package/lib/engine-components/Renderer.d.ts +13 -2
  58. package/lib/engine-components/Renderer.js +96 -45
  59. package/lib/engine-components/Renderer.js.map +1 -1
  60. package/lib/engine-components/WebARSessionRoot.d.ts +7 -7
  61. package/lib/engine-components/WebARSessionRoot.js +7 -7
  62. package/lib/engine-components/WebARSessionRoot.js.map +1 -1
  63. package/lib/engine-components/WebXR.d.ts +9 -8
  64. package/lib/engine-components/WebXR.js +40 -24
  65. package/lib/engine-components/WebXR.js.map +1 -1
  66. package/lib/engine-components/WebXRAvatar.d.ts +4 -5
  67. package/lib/engine-components/WebXRAvatar.js +9 -8
  68. package/lib/engine-components/WebXRAvatar.js.map +1 -1
  69. package/lib/engine-components/WebXRController.d.ts +21 -21
  70. package/lib/engine-components/WebXRController.js +79 -63
  71. package/lib/engine-components/WebXRController.js.map +1 -1
  72. package/lib/engine-components/WebXRGrabRendering.d.ts +3 -3
  73. package/lib/engine-components/WebXRGrabRendering.js +2 -2
  74. package/lib/engine-components/WebXRGrabRendering.js.map +1 -1
  75. package/lib/engine-components/WebXRSync.d.ts +8 -8
  76. package/lib/engine-components/WebXRSync.js +15 -15
  77. package/lib/engine-components/WebXRSync.js.map +1 -1
  78. package/lib/engine-components/codegen/components.d.ts +1 -0
  79. package/lib/engine-components/codegen/components.js +1 -0
  80. package/lib/engine-components/codegen/components.js.map +1 -1
  81. package/lib/engine-components/ui/EventSystem.d.ts +1 -0
  82. package/lib/engine-components/ui/EventSystem.js +21 -1
  83. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  84. package/package.json +1 -1
  85. package/src/engine/codegen/register_types.js +293 -0
  86. package/src/engine/debug/debug_overlay.ts +9 -2
  87. package/src/engine/engine_element_loading.ts +1 -1
  88. package/src/engine/engine_gameobject.ts +17 -4
  89. package/src/engine/engine_gltf_builtin_components.ts +5 -1
  90. package/src/engine/engine_mainloop_utils.ts +7 -3
  91. package/src/engine/engine_physics.ts +130 -130
  92. package/src/engine/engine_serialization_core.ts +14 -7
  93. package/src/engine/engine_setup.ts +1 -1
  94. package/src/engine/engine_time.ts +2 -0
  95. package/src/engine/engine_types.ts +1 -0
  96. package/src/engine/engine_typestore.ts +2 -0
  97. package/src/engine/engine_utils.ts +3 -2
  98. package/src/engine/extensions/EXT_texture_exr.js +1 -1
  99. package/src/engine/extensions/NEEDLE_animator_controller_model.ts +2 -1
  100. package/src/engine/extensions/NEEDLE_techniques_webgl.ts +7 -0
  101. package/src/engine-components/Animation.ts +16 -1
  102. package/src/engine-components/AnimatorController.ts +19 -9
  103. package/src/engine-components/BoxHelperComponent.ts +29 -9
  104. package/src/engine-components/Component.ts +11 -5
  105. package/src/engine-components/GroundProjection.ts +22 -7
  106. package/src/engine-components/ReflectionProbe.ts +141 -0
  107. package/src/engine-components/Renderer.ts +796 -737
  108. package/src/engine-components/WebARSessionRoot.ts +16 -16
  109. package/src/engine-components/WebXR.ts +53 -48
  110. package/src/engine-components/WebXRAvatar.ts +16 -16
  111. package/src/engine-components/WebXRController.ts +129 -107
  112. package/src/engine-components/WebXRGrabRendering.ts +6 -6
  113. package/src/engine-components/WebXRSync.ts +20 -20
  114. package/src/engine-components/codegen/components.ts +1 -0
  115. package/src/engine-components/ui/EventSystem.ts +26 -3
@@ -1,17 +1,17 @@
1
- import { Behaviour, GameObject } from "./Component";
2
- import * as THREE from "three";
3
- import { SyncedTransform } from "./SyncedTransform";
4
- import { RaycastOptions } from "../engine/engine_physics";
5
- import { XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory.js';
1
+ import { BoxHelper, BufferGeometry, Color, Euler, Layers, Line, Mesh, MeshBasicMaterial, Quaternion, Ray, SphereGeometry, Vector2, Vector3 } from "three";
6
2
  import { OculusHandModel } from 'three/examples/jsm/webxr/OculusHandModel.js';
7
3
  import { OculusHandPointerModel } from 'three/examples/jsm/webxr/OculusHandPointerModel.js';
8
- import { Avatar_POI } from "./avatar/Avatar_Brain_LookAt";
4
+ import { XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory.js';
5
+ import { InstancingUtil } from "../engine/engine_instancing";
9
6
  import { Mathf } from "../engine/engine_math";
10
- import * as utils from "../engine/engine_three_utils";
7
+ import { RaycastOptions } from "../engine/engine_physics";
8
+ import { getWorldPosition, getWorldQuaternion, setWorldPosition, setWorldQuaternion } from "../engine/engine_three_utils";
9
+ import { getParam, getPath } from "../engine/engine_utils";
10
+ import { Avatar_POI } from "./avatar/Avatar_Brain_LookAt";
11
+ import { Behaviour, GameObject } from "./Component";
11
12
  import { Interactable, UsageMarker } from "./Interactable";
12
- import { InstancingUtil } from "../engine/engine_instancing";
13
13
  import { Rigidbody } from "./RigidBody";
14
- import { getParam, getPath } from "../engine/engine_utils";
14
+ import { SyncedTransform } from "./SyncedTransform";
15
15
  import { UIRaycastUtils } from "./ui/RaycastUtils";
16
16
  const debug = getParam("debugwebxrcontroller");
17
17
  export var ControllerType;
@@ -29,26 +29,26 @@ export class TeleportTarget extends Behaviour {
29
29
  }
30
30
  export class WebXRController extends Behaviour {
31
31
  static Factory = new XRControllerModelFactory();
32
- static raycastColor = new THREE.Color(.9, .3, .3);
33
- static raycastNoHitColor = new THREE.Color(.6, .6, .6);
34
- static geometry = new THREE.BufferGeometry().setFromPoints([new THREE.Vector3(0, 0, 0), new THREE.Vector3(0, 0, -1)]);
32
+ static raycastColor = new Color(.9, .3, .3);
33
+ static raycastNoHitColor = new Color(.6, .6, .6);
34
+ static geometry = new BufferGeometry().setFromPoints([new Vector3(0, 0, 0), new Vector3(0, 0, -1)]);
35
35
  static handModels = {};
36
36
  static CreateRaycastLine() {
37
- const line = new THREE.Line(this.geometry);
37
+ const line = new Line(this.geometry);
38
38
  const mat = line.material;
39
39
  mat.color = this.raycastColor;
40
40
  // mat.linewidth = 10;
41
- line.layers.set(1);
41
+ line.layers.set(2);
42
42
  line.name = 'line';
43
43
  line.scale.z = 1;
44
44
  return line;
45
45
  }
46
46
  static CreateRaycastHitPoint() {
47
- const geometry = new THREE.SphereGeometry(.5, 22, 22);
48
- const material = new THREE.MeshBasicMaterial({ color: this.raycastColor });
49
- const sphere = new THREE.Mesh(geometry, material);
47
+ const geometry = new SphereGeometry(.5, 22, 22);
48
+ const material = new MeshBasicMaterial({ color: this.raycastColor });
49
+ const sphere = new Mesh(geometry, material);
50
50
  sphere.visible = false;
51
- sphere.layers.set(1);
51
+ sphere.layers.set(2);
52
52
  return sphere;
53
53
  }
54
54
  static Create(owner, index, addTo, type) {
@@ -57,7 +57,7 @@ export class WebXRController extends Behaviour {
57
57
  ctrl.index = index;
58
58
  ctrl.type = type;
59
59
  const context = owner.context;
60
- // from https://github.com/mrdoob/three.js/blob/master/examples/webxr_vr_dragging.html
60
+ // from https://github.com/mrdoob/js/blob/master/examples/webxr_vr_dragging.html
61
61
  // controllers
62
62
  ctrl.controller = context.renderer.xr.getController(index);
63
63
  ctrl.controllerGrip = context.renderer.xr.getControllerGrip(index);
@@ -65,20 +65,24 @@ export class WebXRController extends Behaviour {
65
65
  ctrl.controllerGrip.add(ctrl.controllerModel);
66
66
  ctrl.hand = context.renderer.xr.getHand(index);
67
67
  const hand = new OculusHandModel(ctrl.hand);
68
- hand["path"] = "/" + getPath(owner.sourceId, "/assets/");
68
+ if (ctrl.webXR.handModelPath && ctrl.webXR.handModelPath !== "")
69
+ hand["path"] = "/" + getPath(owner.sourceId, ctrl.webXR.handModelPath);
69
70
  ctrl.hand.add(hand);
70
71
  ctrl.hand.traverse(x => x.layers.set(2));
71
72
  ctrl.handPointerModel = new OculusHandPointerModel(ctrl.hand, ctrl.controller);
72
- // TODO remove all these once https://github.com/mrdoob/three.js/pull/23279 lands
73
+ // TODO remove all these once https://github.com/mrdoob/js/pull/23279 lands
73
74
  ctrl.controller.addEventListener('connected', (_) => {
74
75
  ctrl.setControllerLayers(ctrl.controllerModel, 2);
75
76
  ctrl.setControllerLayers(ctrl.controllerGrip, 2);
77
+ ctrl.setControllerLayers(ctrl.hand, 2);
76
78
  setTimeout(() => {
79
+ ctrl.setControllerLayers(ctrl.controllerModel, 2);
77
80
  ctrl.setControllerLayers(ctrl.controllerGrip, 2);
81
+ ctrl.setControllerLayers(ctrl.hand, 2);
78
82
  }, 1000);
79
83
  });
80
84
  // TODO: unsubscribe! this should be moved into onenable and ondisable!
81
- // TODO remove all these once https://github.com/mrdoob/three.js/pull/23279 lands
85
+ // TODO remove all these once https://github.com/mrdoob/js/pull/23279 lands
82
86
  ctrl.hand.addEventListener('connected', (event) => {
83
87
  const xrInputSource = event.data;
84
88
  if (xrInputSource.hand) {
@@ -148,13 +152,13 @@ export class WebXRController extends Behaviour {
148
152
  if (!wrist)
149
153
  return null;
150
154
  if (!this._wristQuaternion)
151
- this._wristQuaternion = new THREE.Quaternion();
152
- const wr = utils.getWorldQuaternion(wrist).multiply(this._wristQuaternion.setFromEuler(new THREE.Euler(-Math.PI / 4, 0, 0)));
155
+ this._wristQuaternion = new Quaternion();
156
+ const wr = getWorldQuaternion(wrist).multiply(this._wristQuaternion.setFromEuler(new Euler(-Math.PI / 4, 0, 0)));
153
157
  return wr;
154
158
  }
155
- movementVector = new THREE.Vector3();
156
- worldRot = new THREE.Quaternion();
157
- joystick = new THREE.Vector2();
159
+ movementVector = new Vector3();
160
+ worldRot = new Quaternion();
161
+ joystick = new Vector2();
158
162
  didRotate = false;
159
163
  didTeleport = false;
160
164
  didChangeScale = false;
@@ -294,7 +298,7 @@ export class WebXRController extends Behaviour {
294
298
  break;
295
299
  }
296
300
  }
297
- rayRotation = new THREE.Quaternion();
301
+ rayRotation = new Quaternion();
298
302
  update() {
299
303
  // TODO: we should wait until we actually have models, this is just a workaround
300
304
  if (this.context.time.frameCount % 60 === 0) {
@@ -313,15 +317,19 @@ export class WebXRController extends Behaviour {
313
317
  t = this.context.time.deltaTime / .1;
314
318
  else if (this.isUsingHands && this.handPointerModel.pinched)
315
319
  t = this.context.time.deltaTime / .3;
316
- this.rayRotation.slerp(utils.getWorldQuaternion(this.controller), this.useSmoothing ? t : 1.0);
317
- const wp = utils.getWorldPosition(this.controller);
320
+ this.rayRotation.slerp(getWorldQuaternion(this.controller), this.useSmoothing ? t : 1.0);
321
+ const wp = getWorldPosition(this.controller);
322
+ // hide hand pointer model, it's giant and doesn't really help
323
+ if (this.isUsingHands && this.handPointerModel.cursorObject) {
324
+ this.handPointerModel.cursorObject.visible = false;
325
+ }
318
326
  if (this.raycastLine) {
319
327
  if (this.type === ControllerType.Touch) {
320
328
  this.raycastLine.visible = false;
321
329
  }
322
330
  else if (this.isUsingHands) {
323
331
  this.raycastLine.visible = !this.grabbed;
324
- utils.setWorldPosition(this.raycastLine, wp);
332
+ setWorldPosition(this.raycastLine, wp);
325
333
  const jnts = this.hand['joints'];
326
334
  if (jnts) {
327
335
  const wrist = jnts['wrist'];
@@ -332,12 +340,12 @@ export class WebXRController extends Behaviour {
332
340
  // this.rayRotation.slerp(wr, this.useSmoothing ? t * 2 : 1);
333
341
  }
334
342
  }
335
- utils.setWorldQuaternion(this.raycastLine, this.rayRotation);
343
+ setWorldQuaternion(this.raycastLine, this.rayRotation);
336
344
  }
337
345
  else {
338
346
  this.raycastLine.visible = true;
339
- utils.setWorldQuaternion(this.raycastLine, this.rayRotation);
340
- utils.setWorldPosition(this.raycastLine, wp);
347
+ setWorldQuaternion(this.raycastLine, this.rayRotation);
348
+ setWorldPosition(this.raycastLine, wp);
341
349
  }
342
350
  }
343
351
  this.lastHit = this.updateLastHit();
@@ -417,8 +425,8 @@ export class WebXRController extends Behaviour {
417
425
  if (pinched && this._pinchStartTime && this.context.time.time - this._pinchStartTime > .8) {
418
426
  // hacky approach for basic hand teleportation -
419
427
  // we teleport if we pinch and the back of the hand points down (open hand gesture)
420
- // const v1 = new THREE.Vector3();
421
- // const worldQuaternion = new THREE.Quaternion();
428
+ // const v1 = new Vector3();
429
+ // const worldQuaternion = new Quaternion();
422
430
  // this.controller.getWorldQuaternion(worldQuaternion);
423
431
  // v1.copy(this.controller.up).applyQuaternion(worldQuaternion);
424
432
  // const dotPr = -v1.dot(this.controller.up);
@@ -475,7 +483,7 @@ export class WebXRController extends Behaviour {
475
483
  const hit = rc[0];
476
484
  if (isInMiniatureMode || this.isValidTeleportTarget(hit.object)) {
477
485
  const point = hit.point;
478
- utils.setWorldPosition(rig, point);
486
+ setWorldPosition(rig, point);
479
487
  }
480
488
  }
481
489
  }
@@ -559,14 +567,11 @@ export class WebXRController extends Behaviour {
559
567
  }
560
568
  else
561
569
  intersections = this.raycast();
570
+ if (debug)
571
+ console.log("onHandleSelectStart", "close grab? " + closeGrab, "intersections", intersections);
562
572
  if (intersections && intersections.length > 0) {
563
573
  for (const intersection of intersections) {
564
574
  const object = intersection.object;
565
- // if (!this.testIsVisible(object)) {
566
- // if (debug)
567
- // console.log("not visible");
568
- // continue;
569
- // }
570
575
  this.lastSelectStartObject = object;
571
576
  const args = { selected: object, grab: object };
572
577
  const subs = WebXRController.eventSubs[ControllerEvents.SelectStart];
@@ -644,24 +649,35 @@ export class WebXRController extends Behaviour {
644
649
  }
645
650
  }
646
651
  getRay() {
647
- const ray = new THREE.Ray();
652
+ const ray = new Ray();
648
653
  // this.tempMatrix.identity().extractRotation(this.controller.matrixWorld);
649
654
  // ray.origin.setFromMatrixPosition(this.controller.matrixWorld);
650
- ray.origin.copy(utils.getWorldPosition(this.controller));
655
+ ray.origin.copy(getWorldPosition(this.controller));
651
656
  ray.direction.set(0, 0, -1).applyQuaternion(this.rayRotation);
652
657
  return ray;
653
658
  }
659
+ closeGrabBoundingBoxHelper;
654
660
  overlap() {
655
661
  const overlapCenter = (this.isUsingHands && this.handPointerModel) ? this.handPointerModel.pointerObject : this.controllerGrip;
662
+ if (debug) {
663
+ if (!this.closeGrabBoundingBoxHelper && overlapCenter) {
664
+ this.closeGrabBoundingBoxHelper = new BoxHelper(overlapCenter, 0xffff00);
665
+ this.scene.add(this.closeGrabBoundingBoxHelper);
666
+ }
667
+ if (this.closeGrabBoundingBoxHelper && overlapCenter) {
668
+ this.closeGrabBoundingBoxHelper.setFromObject(overlapCenter);
669
+ }
670
+ }
656
671
  if (!overlapCenter)
657
672
  return new Array();
658
- const wp = utils.getWorldPosition(overlapCenter).clone();
673
+ const wp = getWorldPosition(overlapCenter).clone();
659
674
  return this.context.physics.sphereOverlap(wp, .02);
660
675
  }
661
676
  raycast() {
662
677
  const opts = new RaycastOptions();
663
- opts.layerMask = new THREE.Layers();
678
+ opts.layerMask = new Layers();
664
679
  opts.layerMask.set(0);
680
+ opts.layerMask.disable(2);
665
681
  opts.ray = this.getRay();
666
682
  const hits = this.context.physics.raycast(opts);
667
683
  for (let i = 0; i < hits.length; i++) {
@@ -800,7 +816,7 @@ export class AttachedObject {
800
816
  this.grabUUID = Date.now().toString();
801
817
  this.usageMarker = GameObject.addNewComponent(this.selected, UsageMarker);
802
818
  this.rigidbodies = GameObject.getComponentsInChildren(this.selected, Rigidbody);
803
- utils.getWorldPosition(this.positionSource, this.lastControllerWorldPos);
819
+ getWorldPosition(this.positionSource, this.lastControllerWorldPos);
804
820
  const getGrabPoint = () => closeGrab ? this.lastControllerWorldPos.clone() : intersection.point.clone();
805
821
  this.grabDistance = getGrabPoint().distanceTo(this.lastControllerWorldPos);
806
822
  this.totalChangeAlongDirection = 0.0;
@@ -808,10 +824,10 @@ export class AttachedObject {
808
824
  // we're storing rotation relative to the ray
809
825
  this.localPositionOffsetToGrab = this.selected.worldToLocal(getGrabPoint());
810
826
  const rot = controller.isUsingHands && closeGrab ? this.controller.getWristQuaternion().clone() : controller.rayRotation.clone();
811
- utils.getWorldQuaternion(this.selected, this.localQuaternionToGrab).premultiply(rot.invert());
827
+ getWorldQuaternion(this.selected, this.localQuaternionToGrab).premultiply(rot.invert());
812
828
  const rig = this.controller.webXR.Rig;
813
829
  if (rig)
814
- this.rigPositionLastFrame.copy(utils.getWorldPosition(rig));
830
+ this.rigPositionLastFrame.copy(getWorldPosition(rig));
815
831
  Avatar_POI.Add(controller.context, this.selected);
816
832
  AttachedObject.Register(this);
817
833
  if (this.sync) {
@@ -865,18 +881,18 @@ export class AttachedObject {
865
881
  this.quaternionLerp = null;
866
882
  AttachedObject.Events.DidFree?.forEach(x => x(this, args));
867
883
  }
868
- grabPoint = new THREE.Vector3();
884
+ grabPoint = new Vector3();
869
885
  localPositionOffsetToGrab = null;
870
- localPositionOffsetToGrab_worldSpace = new THREE.Vector3();
871
- localQuaternionToGrab = new THREE.Quaternion(0, 0, 0, 1);
886
+ localPositionOffsetToGrab_worldSpace = new Vector3();
887
+ localQuaternionToGrab = new Quaternion(0, 0, 0, 1);
872
888
  targetDir = null;
873
889
  quaternionLerp = null;
874
- controllerDir = new THREE.Vector3();
875
- controllerWorldPos = new THREE.Vector3();
876
- lastControllerWorldPos = new THREE.Vector3();
877
- controllerPosDelta = new THREE.Vector3();
890
+ controllerDir = new Vector3();
891
+ controllerWorldPos = new Vector3();
892
+ lastControllerWorldPos = new Vector3();
893
+ controllerPosDelta = new Vector3();
878
894
  totalChangeAlongDirection = 0.0;
879
- rigPositionLastFrame = new THREE.Vector3();
895
+ rigPositionLastFrame = new Vector3();
880
896
  controllerMovementSinceLastFrame() {
881
897
  if (!this.positionSource || !this.controller)
882
898
  return 0.0;
@@ -884,13 +900,13 @@ export class AttachedObject {
884
900
  this.controllerDir.set(0, 0, -1);
885
901
  this.controllerDir.applyQuaternion(this.controller.rayRotation);
886
902
  // controller delta
887
- utils.getWorldPosition(this.positionSource, this.controllerWorldPos);
903
+ getWorldPosition(this.positionSource, this.controllerWorldPos);
888
904
  this.controllerPosDelta.copy(this.controllerWorldPos);
889
905
  this.controllerPosDelta.sub(this.lastControllerWorldPos);
890
906
  this.lastControllerWorldPos.copy(this.controllerWorldPos);
891
907
  const rig = this.controller.webXR.Rig;
892
908
  if (rig) {
893
- const rigPos = utils.getWorldPosition(rig);
909
+ const rigPos = getWorldPosition(rig);
894
910
  const rigDelta = this.rigPositionLastFrame.sub(rigPos);
895
911
  this.controllerPosDelta.add(rigDelta);
896
912
  this.rigPositionLastFrame.copy(rigPos);
@@ -932,7 +948,7 @@ export class AttachedObject {
932
948
  if (this.grabDistance / rigScale < 0.8)
933
949
  currentDist = 1.0; // don't accelerate if this is a close grab, want full control
934
950
  if (!this.targetDir) {
935
- this.targetDir = new THREE.Vector3();
951
+ this.targetDir = new Vector3();
936
952
  }
937
953
  this.targetDir.set(0, 0, -this.grabDistance * currentDist);
938
954
  const target = this.targetDir.applyQuaternion(this.controller.rayRotation).add(this.controllerWorldPos);
@@ -942,17 +958,17 @@ export class AttachedObject {
942
958
  this.quaternionLerp = targetQuat.clone();
943
959
  }
944
960
  this.quaternionLerp.slerp(targetQuat, this.controller.useSmoothing ? this.controller.context.time.deltaTime / .03 : 1.0);
945
- utils.setWorldQuaternion(this.selected, this.quaternionLerp);
961
+ setWorldQuaternion(this.selected, this.quaternionLerp);
946
962
  this.selected.updateWorldMatrix(false, false); // necessary so that rotation is correct for the following position update
947
963
  // apply position
948
964
  this.grabPoint.copy(target);
949
965
  // apply local grab offset
950
966
  if (this.localPositionOffsetToGrab) {
951
967
  this.localPositionOffsetToGrab_worldSpace.copy(this.localPositionOffsetToGrab);
952
- this.selected.localToWorld(this.localPositionOffsetToGrab_worldSpace).sub(utils.getWorldPosition(this.selected));
968
+ this.selected.localToWorld(this.localPositionOffsetToGrab_worldSpace).sub(getWorldPosition(this.selected));
953
969
  target.sub(this.localPositionOffsetToGrab_worldSpace);
954
970
  }
955
- utils.setWorldPosition(this.selected, target);
971
+ setWorldPosition(this.selected, target);
956
972
  }
957
973
  if (this.rigidbodies != null) {
958
974
  for (const rb of this.rigidbodies) {
@@ -1 +1 @@
1
- {"version":3,"file":"WebXRController.js","sourceRoot":"","sources":["../../../engine-components/WebXRController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAW,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAqB,wBAAwB,EAAE,MAAM,sDAAsD,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,KAAK,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAS,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,KAAK,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAE/C,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACtB,uEAAkB,CAAA;IAClB,qDAAS,CAAA;AACb,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,gDAA4B,CAAA;IAC5B,4CAAwB,CAAA;IACxB,qCAAiB,CAAA;AACrB,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,OAAO,cAAe,SAAQ,SAAS;CAE5C;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS;IAEnC,MAAM,CAAC,OAAO,GAA6B,IAAI,wBAAwB,EAAE,CAAC;IAEzE,MAAM,CAAC,YAAY,GAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,iBAAiB,GAAgB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,MAAM,CAAC,UAAU,GAAgD,EAAE,CAAC;IAEpE,MAAM,CAAC,iBAAiB;QAC5B,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAmC,CAAC;QACrD,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAC9B,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,qBAAqB;QAChC,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,KAAY,EAAE,KAAa,EAAE,KAAiB,EAAE,IAAoB;QACrF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC;QAEvG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,sFAAsF;QACtF,cAAc;QACd,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3E,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAG/E,iFAAiF;QACjF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAChD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;YAClD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACjD,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC,EAAE,IAAI,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,uEAAuE;QACvE,iFAAiF;QACjF,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC;YACjC,IAAI,aAAa,CAAC,IAAI,EAAE;gBACpB,IAAI,KAAK,CAAC,GAAG;oBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,cAAc,CAAC;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;gBACvE,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpE,kFAAkF;gBAClF,+CAA+C;gBAC/C,wEAAwE;gBACxE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACjC,IAAI,IAAI,EAAE;oBACN,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;wBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,KAAK,CAAC,MAAM;4BAAE,SAAS;wBAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;qBACxB;iBACJ;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sCAAsC;IAC/B,MAAM,CAAC,gBAAgB,CAAC,GAAqB,EAAE,QAA0D;QAC5G,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,sCAAsC;IAC/B,MAAM,CAAC,mBAAmB,CAAC,GAAqB,EAAE,QAA0D;QAC/G,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAC/B,CAAC;IAEO,MAAM,CAAC,SAAS,GAAkC,EAAE,CAAC;IAEtD,KAAK,CAAS;IACd,KAAK,GAAW,CAAC,CAAC,CAAC;IACnB,eAAe,CAAqB;IACpC,UAAU,CAAe;IACzB,cAAc,CAAe;IAC7B,IAAI,CAAe;IACnB,gBAAgB,CAA0B;IAC1C,OAAO,GAA0B,IAAI,CAAC;IACtC,KAAK,GAA+B,IAAI,CAAC;IACzC,IAAI,GAAmB,cAAc,CAAC,cAAc,CAAC;IAE5D,IAAI,YAAY;QACZ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;QAC3B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,KAAK;QACL,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAEO,gBAAgB,GAA4B,IAAI,CAAC;IACzD,kBAAkB;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QAC3E,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7H,OAAO,EAAE,CAAC;IACd,CAAC;IAEO,cAAc,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACpD,QAAQ,GAAqB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IACpD,QAAQ,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC9C,SAAS,GAAY,KAAK,CAAC;IAC3B,WAAW,GAAY,KAAK,CAAC;IAC7B,cAAc,GAAY,KAAK,CAAC;IAChC,MAAM,CAAC,yBAAyB,GAAuB,SAAS,CAAC;IACjE,MAAM,CAAC,mBAAmB,GAAW,CAAC,CAAC;IAEvC,OAAO,GAA8B,IAAI,CAAC;IAE1C,WAAW,GAAsB,IAAI,CAAC;IACtC,gBAAgB,GAA0B,IAAI,CAAC;IAC/C,mBAAmB,GAAe,IAAI,CAAC;IACvC,qBAAqB,GAAe,IAAI,CAAC;IACzC,eAAe,GAAe,IAAI,CAAC;IACnC,aAAa,GAAe,IAAI,CAAC;IAEzC,IAAW,aAAa,KAAc,OAAO,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC1G,IAAW,WAAW,KAAc,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACxG,IAAW,gBAAgB,KAAc,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACzE,IAAW,cAAc,KAAc,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,CAAC;IACxG,IAAW,eAAe,KAA4B,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAE7E,iBAAiB,GAAY,KAAK,CAAC;IACnC,0BAA0B,GAAY,KAAK,CAAC;IAC5C,mBAAmB,GAAW,CAAC,CAAC;IAChC,iBAAiB,GAAW,CAAC,CAAC;IAEtC,IAAW,YAAY,KAAc,OAAO,IAAI,CAAC,aAAa,CAAA,CAAC,CAAC;IAAA,CAAC;IACzD,aAAa,GAAY,IAAI,CAAC;IAEtC,KAAK;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO;SACV;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC5E,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACjF,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACrE;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACrE;IACL,CAAC;IAED,SAAS;QACL,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC/E,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACpF,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACxE;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACzE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEM,QAAQ;QACX,IAAI,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QAC5B,IAAI,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAChD,IAAI,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,YAAY,CAAC;QACxC,IAAI,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,cAAc,CAAA;QAE1C,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,IAAI,CAAC,WAAW;YACjB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;QAC3D,IAAI,CAAC,IAAI,CAAC,gBAAgB;YACtB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,qBAAqB,EAAE,CAAC;QAEpE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrC,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhD,iEAAiE;IACrE,CAAC;IAED,SAAS;QACL,+CAA+C;QAC/C,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,EAAE,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;QAC1C,gFAAgF;QAChF,kFAAkF;QAClF,uFAAuF;QAEvF,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,sBAAsB;IACtB,4CAA4C;IAC5C,IAAI;IAEI,YAAY,GAAY,KAAK,CAAC;IAE9B,iBAAiB,CAAC,CAAuC;QAC7D,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,mEAAmE,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACjG,OAAO;SACV;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC;QAEpB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;SACnC;IACL,CAAC;IAEO,oBAAoB,CAAC,EAAO;QAChC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,iEAAiE,EAAE,EAAE,CAAC,CAAC;YACpF,OAAO;SACV;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACtB,CAAC;IAEO,kBAAkB,CAAC,IAAY;QACnC,QAAQ,IAAI,EAAE;YACV,KAAK,MAAM;gBACP,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClI,MAAM;YACV,KAAK,MAAM;gBACP,MAAM;YACV,KAAK,IAAI;gBACL,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChI,MAAM;SACb;IACL,CAAC;IAED,WAAW,GAAqB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IAEvD,MAAM;QAEF,gFAAgF;QAChF,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,EAAE;YACzC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACpB,GAAG,CAAC,IAAI,CAAC,CAAC;aACb;SACJ;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;YAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;aACjF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO;YAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAClG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/F,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,KAAK,EAAE;gBACpC,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;aACpC;iBACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACxB,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAK,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,IAAI,EAAE;oBACN,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5B,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;wBACnD,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACrC,IAAI,EAAE;4BACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC9B,6DAA6D;qBAChE;iBACJ;gBACD,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAChE;iBACI;gBACD,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;gBAChC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7D,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;aAChD;SACJ;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACzB;QAED,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEzD,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;IACL,CAAC;IAEO,eAAe,GAAuB,SAAS,CAAC;IAExD,QAAQ,CAAC,OAAkB;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;YACvD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO;SACV;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;YAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC5D,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;QAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QAE7C,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YAC3B,KAAK,MAAM;gBACP,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC;gBAC5D,MAAM,SAAS,GAAG,CAAC,CAAC;gBACpB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;gBAExD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChD,IAAI,IAAI,OAAO,CAAC;gBAChB,IAAI,IAAI,KAAK,CAAC;gBAGd,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACnD,OAAO,IAAI,UAAU,CAAC;gBACtB,IAAI,IAAI,KAAK,CAAC;gBAEd,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC1C,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACrE,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9E,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAEtC,IAAI,IAAI,CAAC,YAAY;oBACjB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACnC,MAAM;YAEV,KAAK,OAAO;gBACR,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAChC,IAAI,MAAM,GAAG,GAAG,EAAE;oBACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;iBAC1B;qBACI,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBACrC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;iBACzB;gBAED,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAE/B,MAAM;SACb;IACL,CAAC;IAEO,WAAW,CAAC,GAAG,EAAE,OAAO;QAC5B,IAAI,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;YAClD,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;gBAC/C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;aACjD;YACD,IAAI,OAAO,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,GAAG,EAAE,EAAE;gBACvF,iDAAiD;gBACjD,mFAAmF;gBACnF,kCAAkC;gBAClC,kDAAkD;gBAClD,uDAAuD;gBACvD,gEAAgE;gBAChE,6CAA6C;gBAC7C,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD;YACD,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;SAClD;;YACI,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QAEtC,IAAI,UAAU,GAAG,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACpD,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjF,IAAI,WAAW,GAAkB,IAAI,CAAC;QAEtC,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBACvB,sGAAsG;gBACtG,iFAAiF;gBACjF,IAAI,CAAC,KAAK,CAAC,EAAE;oBACT,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;wBAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;wBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;wBAC3B,IAAI,GAAG,EAAE;4BACL,IAAI,CAAC,iBAAiB,EAAE;gCACpB,iBAAiB,GAAG,IAAI,CAAC;gCACzB,UAAU,GAAG,IAAI,CAAC;gCAClB,WAAW,GAAG,EAAE,CAAC;gCACjB,eAAe,CAAC,mBAAmB,GAAG,WAAW,GAAG,CAAC,CAAC;gCACtD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAqC,CAAC;gCAC/D,eAAe,CAAC,yBAAyB,GAAG,GAAG,CAAC,GAAG,CAAC;gCACpD,GAAG,CAAC,GAAG,IAAI,WAAW,CAAC;6BAC1B;iCACI;gCACD,iBAAiB,GAAG,KAAK,CAAC;gCAC1B,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gCACvB,WAAW,GAAG,CAAC,CAAC;gCAChB,eAAe,CAAC,mBAAmB,GAAG,CAAC,CAAC;gCACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAqC,CAAC;gCAC/D,IAAI,eAAe,CAAC,yBAAyB;oCACzC,GAAG,CAAC,GAAG,GAAG,eAAe,CAAC,yBAAyB,CAAC;6BAC3D;yBACJ;qBACJ;yBACI,IAAI,CAAC,GAAG,CAAC,OAAO;wBACjB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;iBACnC;aACJ;SACJ;QAED,IAAI,UAAU,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrB,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBAClB,IAAI,iBAAiB,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;wBAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;wBACxB,KAAK,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;qBACtC;iBACJ;aACJ;SACJ;aACI,IAAI,QAAQ,GAAG,EAAE,EAAE;YACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;QAED,IAAI,WAAW,KAAK,IAAI,EAAE;YACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACrD,GAAG,CAAC,iBAAiB,EAAE,CAAC;SAC3B;IACL,CAAC;IAEO,qBAAqB,CAAC,GAAmB;QAC7C,OAAO,UAAU,CAAC,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC;IACxE,CAAC;IAEO,WAAW,CAAC,WAAgC;QAChD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;YAAE,OAAO;QACzF,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAEO,aAAa;QACjB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;YAChB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;SACpC;QACD,wBAAwB;QAExB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAmC,CAAC;YACjE,IAAI,GAAG,IAAI,IAAI;gBAAE,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,YAAY,CAAC;;gBACrD,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,iBAAiB,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,0BAA0B;gBAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1E,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;aACxD;YACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC;SACvF;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAEO,aAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY;YAAE,OAAO;QAClD,uCAAuC;QACvC,sDAAsD;QACtD,qFAAqF;QACrF,6CAA6C;QAC7C,mEAAmE;QACnE,6CAA6C;QAC7C,IAAI,CAAC,mBAAmB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAChE,CAAC;IAEO,mBAAmB,GAAoB,IAAI,CAAC;IAC5C,qBAAqB,GAA0B,IAAI,CAAC;IAAA,CAAC;IAErD,mBAAmB;QACvB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,8DAA8D;QAE9D,wDAAwD;QACxD,IAAI,aAAa,GAAgC,IAAI,CAAC;QACtD,IAAI,SAAS,GAAY,KAAK,CAAC;QAC/B,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,SAAS,GAAG,KAAK,CAAC;aACrB;iBACI;gBACD,SAAS,GAAG,IAAI,CAAC;aACpB;SACJ;;YACI,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAEpC,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;gBACtC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;gBACnC,qCAAqC;gBACrC,iBAAiB;gBACjB,sCAAsC;gBACtC,gBAAgB;gBAChB,IAAI;gBACJ,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC;gBACpC,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;gBACrE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;wBACpB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;qBACnB;iBACJ;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK;oBAC7B,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChF,IAAI,IAAI,CAAC,IAAI,EAAE;oBACX,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;iBACnF;gBACD,MAAM;aACT;SACJ;aACI;YACD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;oBACpB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;iBACnB;aACJ;SACJ;IACL,CAAC;IAEO,mBAAmB,GAAY,KAAK,CAAC;IAErC,WAAW;QACf,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC/B,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,OAAO;aACV;SACJ;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAAE,OAAO;QACpC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEhD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5E,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;gBACpB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACnB;SACJ;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;IACL,CAAC;IAEO,aAAa,CAAC,GAA0B;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,IAAI,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,cAAc,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YAC9C,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;QACZ,kCAAkC;QAClC,yCAAyC;IAC7C,CAAC;IAEO,mBAAmB,CAAC,GAAmB,EAAE,KAAa;QAC1D,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,GAAG,CAAC,QAAQ,EAAE;YACd,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAC3B,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,KAAK,EAAE,EAAE;oBACpE,SAAS;iBACZ;gBACD,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;aACvC;SACJ;IACL,CAAC;IAEM,MAAM;QACT,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,2EAA2E;QAC3E,iEAAiE;QACjE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,OAAO;QACV,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;QAC/H,IAAI,CAAC,aAAa;YACd,OAAO,IAAI,KAAK,EAAsB,CAAC;QAE3C,MAAM,EAAE,GAAG,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClB,CAAC,EAAE,CAAC;gBACJ,SAAS;aACZ;YACD,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM;SACT;QACD,wBAAwB;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;;AAIL,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;IACnB,6CAAqB,CAAA;IACrB,2CAAmB,CAAA;AACvB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,OAAO,cAAc;IAEhB,MAAM,CAAC,MAAM,GAAkC,EAAE,CAAC;IAClD,MAAM,CAAC,gBAAgB,CAAC,KAA2B,EAAE,QAAkB;QAC1E,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACrE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,QAAQ,CAAC;IACpB,CAAC;IACM,MAAM,CAAC,mBAAmB,CAAC,KAA2B,EAAE,QAAyB;QACpF,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1C,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,GAAG,IAAI,CAAC;YAAE,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC9D,CAAC;IAGM,MAAM,CAAC,OAAO,GAAqB,EAAE,CAAC;IAErC,MAAM,CAAC,QAAQ,CAAC,GAAmB;QAEvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1B;IACL,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,GAAmB;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,EAAE;YACR,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC7B;IACL,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,UAA2B,EAAE,SAAyB,EAAE,YAAgC,EAAE,SAAkB;QAC9H,MAAM,YAAY,GAAG,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,EAAE;YACf,IAAI,KAAK;gBACL,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,SAAS,CAAC,CAAC;YAChF,OAAO,IAAI,CAAC;SACf;;YACI,SAAS,GAAG,YAAY,CAAC,UAAU,CAAC;QAGzC,IAAI,cAAc,GAAG,SAAS,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,oBAAoB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QACzE,IAAI,IAAI,EAAE;YACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;SACpC;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,CAAC,QAAQ,KAAK,cAAc,EAAE;gBAC/B,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU;oBAAE,OAAO,CAAC,CAAC;gBAC1C,CAAC,CAAC,IAAI,EAAE,CAAC;gBACT,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;gBAC3F,OAAO,CAAC,CAAC;aACZ;SACJ;QAED,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;QACjC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAC7F,OAAO,GAAG,CAAC;IACf,CAAC;IAGM,IAAI,GAA2B,IAAI,CAAC;IACpC,QAAQ,GAA0B,IAAI,CAAC;IACvC,cAAc,GAA0B,IAAI,CAAC;IAC7C,YAAY,GAAsB,IAAI,CAAC;IACvC,UAAU,GAA2B,IAAI,CAAC;IAC1C,QAAQ,GAAW,CAAC,CAAC;IACrB,QAAQ,GAAW,EAAE,CAAC;IACtB,WAAW,GAAY,KAAK,CAAC,CAAC,wCAAwC;IAErE,gBAAgB,GAA6C,IAAI,CAAC;IAClE,WAAW,GAAuB,IAAI,CAAC;IACvC,WAAW,GAAuB,IAAI,CAAC;IACvC,WAAW,GAAY,KAAK,CAAC;IAC7B,YAAY,GAAW,CAAC,CAAC;IACzB,YAAY,GAAwB,IAAI,CAAC;IACzC,cAAc,GAA0B,IAAI,CAAC;IAE7C,IAAI,CAAC,UAA2B,EAAE,IAAoB,EAAE,GAAmB,EAAE,IAA4B,EAAE,aAA2B,EAC1I,YAAgC,EAAE,SAAkB;QAEpD,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,qCAAqC,EAAE,IAAI,CAAC,CAAC;QAE3E,IAAI,UAAU,CAAC,YAAY,EAAE;YACzB,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;SAC9E;aACI;YACD,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC;SAC/C;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACf;QAED,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;QAC1E,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAG5D,MAAM,IAAI,GAAG,GAAiB,CAAC;QAC/B,IAAI,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAC/B,IAAI,CAAC,QAAQ,GAAI,IAAI,CAAC,QAA2B,CAAC,KAAK,EAAE,CAAC;gBAC1D,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC1C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;aACxC;SACJ;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;SACrC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,8BAA8B;QAC9B,+BAA+B;QAC/B,2CAA2C;QAC3C,IAAI;QACJ,QAAQ;QACR,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAGzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAChF,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzE,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxG,IAAI,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC3E,IAAI,CAAC,yBAAyB,GAAG,GAAG,CAAC;QAErC,oDAAoD;QACpD,6CAA6C;QAC7C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAClI,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9F,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,IAAI,GAAG;YACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAA;QAE/D,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClD,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SAC7B;QAED,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE3B,MAAM,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QAC3H,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAE5D,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3D,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SAC9B;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC/B,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;SACzC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,iDAAiD;QACjD,qDAAqD;QACrD,IAAI,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC;YACvC,IAAI,UAAU;gBAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;gBACrC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtD;QAED,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAGjB,6BAA6B;QAC7B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC/B,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,EAAE,CAAC,gBAAgB;oBAAE,SAAS;gBACnC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACvF;SACJ;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,SAAS,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAE9C,yBAAyB,GAAyB,IAAI,CAAC;IACvD,oCAAoC,GAAkB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1E,qBAAqB,GAAqB,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,SAAS,GAAyB,IAAI,CAAC;IACvC,cAAc,GAA4B,IAAI,CAAC;IAE/C,aAAa,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACpC,kBAAkB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACzC,sBAAsB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7C,kBAAkB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IACzC,yBAAyB,GAAG,GAAG,CAAC;IAChC,oBAAoB,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;IAE3C,gCAAgC;QACpC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QAEzD,uBAAuB;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEhE,mBAAmB;QACnB,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,IAAI,GAAG,EAAE;YACL,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1C;QAED,kCAAkC;QAClC,MAAM,8BAA8B,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEvF,OAAO,8BAA8B,CAAC;IAC1C,CAAC;IAEM,MAAM;QACT,0CAA0C;QAC1C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7E,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7D,oCAAoC;YACpC,kFAAkF;YAClF,IAAI;YACJ,IAAI,EAAE,GAAG,CAAC,EAAE;gBACR,oCAAoC;gBACpC,4CAA4C;gBAC5C,IAAI;gBACJ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE;oBACpC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxD,IAAI,CAAC,IAAI,EAAE,CAAC;iBACf;aACJ;SACJ;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO;YAAE,OAAO;QAE5D,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC;YAE3D,IAAI,CAAC,yBAAyB,IAAI,IAAI,CAAC,gCAAgC,EAAE,CAAC;YAC1E,+CAA+C;YAE/C,iFAAiF;YACjF,IAAI,WAAW,GAAG,GAAG,CAAC;YACtB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc,EAAE,qEAAqE;aACjI;gBACI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,yBAAyB,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;gBACjF,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;aACzD;YACD,IAAI,IAAI,CAAC,YAAY,GAAG,QAAQ,GAAG,GAAG;gBAAE,WAAW,GAAG,GAAG,CAAC,CAAC,8DAA8D;YAEzH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACjB,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;aACxC;YACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAExG,iBAAiB;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACpI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;aAC5C;YACD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACzH,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7D,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,0EAA0E;YAEzH,iBAAiB;YACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,0BAA0B;YAC1B,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAChC,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;gBAC/E,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;aACzD;YACD,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;SACjD;QAGD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC1B,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;gBAC/B,EAAE,CAAC,MAAM,EAAE,CAAC;gBACZ,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aAClD;SACJ;QAED,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC"}
1
+ {"version":3,"file":"WebXRController.js","sourceRoot":"","sources":["../../../engine-components/WebXRController.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Behaviour } from "./Component";
2
- import * as THREE from "three";
2
+ import { Object3D, Vector3 } from "three";
3
3
  import { Context } from "../engine/engine_setup";
4
4
  import { IModel } from "../engine/engine_networking_types";
5
5
  export declare class XRGrabModel implements IModel {
@@ -17,10 +17,10 @@ export declare class XRGrabModel implements IModel {
17
17
  z: number;
18
18
  };
19
19
  target: string | undefined;
20
- update(context: Context, point: THREE.Vector3, source: THREE.Vector3, target?: string | undefined): void;
20
+ update(context: Context, point: Vector3, source: Vector3, target?: string | undefined): void;
21
21
  }
22
22
  export declare class XRGrabRendering extends Behaviour {
23
- prefab: THREE.Object3D | null;
23
+ prefab: Object3D | null;
24
24
  private _grabModels;
25
25
  private _grabModelsUpdateTime;
26
26
  private _addOrUpdateSub;
@@ -1,7 +1,7 @@
1
1
  import { getWorldPosition, setWorldPosition } from "../engine/engine_three_utils";
2
2
  import { Behaviour, GameObject } from "./Component";
3
3
  import { AttachedObject, AttachedObjectEvents } from "./WebXRController";
4
- import * as THREE from "three";
4
+ import { Vector3 } from "three";
5
5
  import { PlayerColor } from "./PlayerColor";
6
6
  import { SendQueue } from "../engine/engine_networking_types";
7
7
  var XRGrabEvent;
@@ -120,7 +120,7 @@ export class XRGrabRendering extends Behaviour {
120
120
  const targetObject = att.selected["guid"];
121
121
  model.update(this.context, att.grabPoint, att.controller.worldPosition, targetObject);
122
122
  }
123
- temp = new THREE.Vector3();
123
+ temp = new Vector3();
124
124
  updateRendering() {
125
125
  const step = this.context.time.deltaTime / .5;
126
126
  for (const key in this._instances) {
@@ -1 +1 @@
1
- {"version":3,"file":"WebXRGrabRendering.js","sourceRoot":"","sources":["../../../engine-components/WebXRGrabRendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebXRGrabRendering.js","sourceRoot":"","sources":["../../../engine-components/WebXRGrabRendering.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,23 @@
1
1
  import { Behaviour } from "./Component";
2
2
  import { NetworkConnection } from "../engine/engine_networking";
3
3
  import { WebXR } from "./WebXR";
4
- import * as THREE from "three";
4
+ import { Group, Quaternion, Vector3, Vector4 } from "three";
5
5
  import { Builder } from "flatbuffers";
6
6
  import { VrUserStateBuffer } from "../engine-schemes/vr-user-state-buffer";
7
7
  export declare class VRUserState {
8
8
  guid: string;
9
9
  time: number;
10
10
  avatarId: string;
11
- position: THREE.Vector3;
12
- rotation: THREE.Vector4;
11
+ position: Vector3;
12
+ rotation: Vector4;
13
13
  scale: number;
14
- posLeftHand: THREE.Vector3;
15
- posRightHand: THREE.Vector3;
16
- rotLeftHand: THREE.Quaternion;
17
- rotRightHand: THREE.Quaternion;
14
+ posLeftHand: Vector3;
15
+ posRightHand: Vector3;
16
+ rotLeftHand: Quaternion;
17
+ rotRightHand: Quaternion;
18
18
  constructor(guid: string);
19
19
  private static invertRotation;
20
- update(rig: THREE.Group, pos: DOMPointReadOnly, rot: DOMPointReadOnly, webXR: WebXR, avatarId: string): void;
20
+ update(rig: Group, pos: DOMPointReadOnly, rot: DOMPointReadOnly, webXR: WebXR, avatarId: string): void;
21
21
  private static quat0;
22
22
  private static quat1;
23
23
  sendAsBuffer(builder: Builder, net: NetworkConnection): void;