@galacean/engine-xr 0.0.0-experimental-1.3-xr.9 → 0.0.0-experimental-1.4-small-language.0

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.
package/dist/browser.js CHANGED
@@ -5,17 +5,18 @@
5
5
  })(this, (function (exports, engine) { 'use strict';
6
6
 
7
7
  function _is_native_reflect_construct() {
8
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
9
- if (Reflect.construct.sham) return false;
10
- if (typeof Proxy === "function") return true;
11
-
8
+ // Since Reflect.construct can't be properly polyfilled, some
9
+ // implementations (e.g. core-js@2) don't set the correct internal slots.
10
+ // Those polyfills don't allow us to subclass built-ins, so we need to
11
+ // use our fallback implementation.
12
12
  try {
13
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
14
-
15
- return true;
16
- } catch (e) {
17
- return false;
18
- }
13
+ // If the internal slots aren't set, this throws an error similar to
14
+ // TypeError: this is not a Boolean object.
15
+ var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
16
+ } catch (_) {}
17
+ return (_is_native_reflect_construct = function() {
18
+ return !!result;
19
+ })();
19
20
  }
20
21
 
21
22
  function _set_prototype_of(o, p) {
@@ -82,28 +83,28 @@
82
83
 
83
84
  /**
84
85
  * Enumerates some input devices that can be tracked.(including status, posture and other information)
85
- */ exports.XRTrackedInputDevice = void 0;
86
- (function(XRTrackedInputDevice) {
87
- XRTrackedInputDevice[XRTrackedInputDevice[/** Controller */ "Controller"] = 0] = "Controller";
88
- XRTrackedInputDevice[XRTrackedInputDevice[/** Left controller */ "LeftController"] = 1] = "LeftController";
89
- XRTrackedInputDevice[XRTrackedInputDevice[/** Right controller */ "RightController"] = 2] = "RightController";
90
- XRTrackedInputDevice[XRTrackedInputDevice[/** Camera */ "Camera"] = 3] = "Camera";
91
- XRTrackedInputDevice[XRTrackedInputDevice[/** Left camera */ "LeftCamera"] = 4] = "LeftCamera";
92
- XRTrackedInputDevice[XRTrackedInputDevice[/** Right camera */ "RightCamera"] = 5] = "RightCamera";
93
- XRTrackedInputDevice[XRTrackedInputDevice[/** Head */ "LeftHand"] = 6] = "LeftHand";
94
- XRTrackedInputDevice[XRTrackedInputDevice[/** Right hand */ "RightHand"] = 7] = "RightHand";
95
- })(exports.XRTrackedInputDevice || (exports.XRTrackedInputDevice = {}));
86
+ */ var XRTrackedInputDevice = /*#__PURE__*/ function(XRTrackedInputDevice) {
87
+ /** Controller */ XRTrackedInputDevice[XRTrackedInputDevice["Controller"] = 0] = "Controller";
88
+ /** Left controller */ XRTrackedInputDevice[XRTrackedInputDevice["LeftController"] = 1] = "LeftController";
89
+ /** Right controller */ XRTrackedInputDevice[XRTrackedInputDevice["RightController"] = 2] = "RightController";
90
+ /** Camera */ XRTrackedInputDevice[XRTrackedInputDevice["Camera"] = 3] = "Camera";
91
+ /** Left camera */ XRTrackedInputDevice[XRTrackedInputDevice["LeftCamera"] = 4] = "LeftCamera";
92
+ /** Right camera */ XRTrackedInputDevice[XRTrackedInputDevice["RightCamera"] = 5] = "RightCamera";
93
+ /** Head */ XRTrackedInputDevice[XRTrackedInputDevice["LeftHand"] = 6] = "LeftHand";
94
+ /** Right hand */ XRTrackedInputDevice[XRTrackedInputDevice["RightHand"] = 7] = "RightHand";
95
+ return XRTrackedInputDevice;
96
+ }({});
96
97
 
97
98
  /**
98
99
  * The state of an XRSession.
99
- */ exports.XRSessionState = void 0;
100
- (function(XRSessionState) {
101
- XRSessionState[XRSessionState[/** Not initialized. */ "None"] = 0] = "None";
102
- XRSessionState[XRSessionState[/** Initializing session. */ "Initializing"] = 1] = "Initializing";
103
- XRSessionState[XRSessionState[/** Initialized but not started. */ "Initialized"] = 2] = "Initialized";
104
- XRSessionState[XRSessionState[/** Running. */ "Running"] = 3] = "Running";
105
- XRSessionState[XRSessionState[/** Paused. */ "Paused"] = 4] = "Paused";
106
- })(exports.XRSessionState || (exports.XRSessionState = {}));
100
+ */ var XRSessionState = /*#__PURE__*/ function(XRSessionState) {
101
+ /** Not initialized. */ XRSessionState[XRSessionState["None"] = 0] = "None";
102
+ /** Initializing session. */ XRSessionState[XRSessionState["Initializing"] = 1] = "Initializing";
103
+ /** Initialized but not started. */ XRSessionState[XRSessionState["Initialized"] = 2] = "Initialized";
104
+ /** Running. */ XRSessionState[XRSessionState["Running"] = 3] = "Running";
105
+ /** Paused. */ XRSessionState[XRSessionState["Paused"] = 4] = "Paused";
106
+ return XRSessionState;
107
+ }({});
107
108
 
108
109
  /**
109
110
  * The manager of XR camera.
@@ -124,15 +125,15 @@
124
125
  // @ts-ignore
125
126
  preCamera && (preCamera._cameraType = engine.CameraType.Normal);
126
127
  switch(type){
127
- case exports.XRTrackedInputDevice.Camera:
128
+ case XRTrackedInputDevice.Camera:
128
129
  // @ts-ignore
129
130
  camera._cameraType = engine.CameraType.XRCenterCamera;
130
131
  break;
131
- case exports.XRTrackedInputDevice.LeftCamera:
132
+ case XRTrackedInputDevice.LeftCamera:
132
133
  // @ts-ignore
133
134
  camera._cameraType = engine.CameraType.XRLeftCamera;
134
135
  break;
135
- case exports.XRTrackedInputDevice.RightCamera:
136
+ case XRTrackedInputDevice.RightCamera:
136
137
  // @ts-ignore
137
138
  camera._cameraType = engine.CameraType.XRRightCamera;
138
139
  break;
@@ -185,9 +186,9 @@
185
186
  */ _proto._onSessionExit = function _onSessionExit() {};
186
187
  /**
187
188
  * @internal
188
- */ _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(cameraType) {
189
+ */ _proto._getIgnoreClearFlags = function _getIgnoreClearFlags(cameraType) {
189
190
  if (cameraType === engine.CameraType.XRCenterCamera) {
190
- if (this._xrManager.sessionManager.state === exports.XRSessionState.Running) {
191
+ if (this._xrManager.sessionManager.state === XRSessionState.Running) {
191
192
  return engine.CameraClearFlags.Color;
192
193
  } else {
193
194
  return engine.CameraClearFlags.None;
@@ -236,28 +237,25 @@
236
237
 
237
238
  /**
238
239
  * Enum for XR tracking state.
239
- */ exports.XRTrackingState = void 0;
240
- (function(XRTrackingState) {
241
- XRTrackingState[XRTrackingState[/** Not tracking */ "NotTracking"] = 0] = "NotTracking";
242
- XRTrackingState[XRTrackingState[/** Tracking */ "Tracking"] = 1] = "Tracking";
243
- XRTrackingState[XRTrackingState[/** Lost track */ "TrackingLost"] = 2] = "TrackingLost";
244
- })(exports.XRTrackingState || (exports.XRTrackingState = {}));
240
+ */ var XRTrackingState = /*#__PURE__*/ function(XRTrackingState) {
241
+ /** Not tracking */ XRTrackingState[XRTrackingState["NotTracking"] = 0] = "NotTracking";
242
+ /** Tracking */ XRTrackingState[XRTrackingState["Tracking"] = 1] = "Tracking";
243
+ /** Lost track */ XRTrackingState[XRTrackingState["TrackingLost"] = 2] = "TrackingLost";
244
+ return XRTrackingState;
245
+ }({});
245
246
 
246
247
  var XRInput = function XRInput(type) {
247
248
  this.type = type;
248
- this./** The tracking state of xr input. */ trackingState = exports.XRTrackingState.NotTracking;
249
+ this./** The tracking state of xr input. */ trackingState = XRTrackingState.NotTracking;
249
250
  };
250
251
 
251
252
  /**
252
253
  * The XR camera.
253
- */ var XRCamera = /*#__PURE__*/ function(XRInput1) {
254
- _inherits(XRCamera, XRInput1);
254
+ */ var XRCamera = /*#__PURE__*/ function(XRInput) {
255
+ _inherits(XRCamera, XRInput);
255
256
  function XRCamera() {
256
257
  var _this;
257
- _this = XRInput1.apply(this, arguments) || this;
258
- /** The pose of the camera in XR space. */ _this.pose = new XRPose();
259
- /** The viewport of the camera. */ _this.viewport = new engine.Rect();
260
- /** The projection matrix of the camera. */ _this.projectionMatrix = new engine.Matrix();
258
+ _this = XRInput.apply(this, arguments) || this, /** The pose of the camera in XR space. */ _this.pose = new XRPose(), /** The viewport of the camera. */ _this.viewport = new engine.Rect(), /** The projection matrix of the camera. */ _this.projectionMatrix = new engine.Matrix();
261
259
  return _this;
262
260
  }
263
261
  return XRCamera;
@@ -265,29 +263,24 @@
265
263
 
266
264
  /**
267
265
  * Enum for XR input button.
268
- */ exports.XRInputButton = void 0;
269
- (function(XRInputButton) {
270
- XRInputButton[XRInputButton[/** None */ "None"] = 0x0] = "None";
271
- XRInputButton[XRInputButton[/** Select */ "Select"] = 0x1] = "Select";
272
- XRInputButton[XRInputButton[/** Select */ "Trigger"] = 0x1] = "Trigger";
273
- XRInputButton[XRInputButton[/** Squeeze */ "Squeeze"] = 0x2] = "Squeeze";
274
- XRInputButton[XRInputButton[/** TouchPad */ "TouchPad"] = 0x4] = "TouchPad";
275
- XRInputButton[XRInputButton[/** A */ "AButton"] = 0x8] = "AButton";
276
- XRInputButton[XRInputButton[/** B */ "BButton"] = 0x10] = "BButton";
277
- })(exports.XRInputButton || (exports.XRInputButton = {}));
266
+ */ var XRInputButton = /*#__PURE__*/ function(XRInputButton) {
267
+ /** None */ XRInputButton[XRInputButton["None"] = 0] = "None";
268
+ /** Select */ XRInputButton[XRInputButton["Select"] = 1] = "Select";
269
+ /** Select */ XRInputButton[XRInputButton["Trigger"] = 1] = "Trigger";
270
+ /** Squeeze */ XRInputButton[XRInputButton["Squeeze"] = 2] = "Squeeze";
271
+ /** TouchPad */ XRInputButton[XRInputButton["TouchPad"] = 4] = "TouchPad";
272
+ /** A */ XRInputButton[XRInputButton["AButton"] = 8] = "AButton";
273
+ /** B */ XRInputButton[XRInputButton["BButton"] = 16] = "BButton";
274
+ return XRInputButton;
275
+ }({});
278
276
 
279
277
  /**
280
278
  * The XR controller.
281
- */ var XRController = /*#__PURE__*/ function(XRInput1) {
282
- _inherits(XRController, XRInput1);
279
+ */ var XRController = /*#__PURE__*/ function(XRInput) {
280
+ _inherits(XRController, XRInput);
283
281
  function XRController() {
284
282
  var _this;
285
- _this = XRInput1.apply(this, arguments) || this;
286
- /** The grip space pose of the controller in XR space. */ _this.gripPose = new XRPose();
287
- /** The target ray space pose of the controller in XR space. */ _this.targetRayPose = new XRPose();
288
- /** The currently pressed buttons of this controller. */ _this.pressedButtons = exports.XRInputButton.None;
289
- /** Record button lifted. */ _this.down = exports.XRInputButton.None;
290
- /** Record button pressed. */ _this.up = exports.XRInputButton.None;
283
+ _this = XRInput.apply(this, arguments) || this, /** The grip space pose of the controller in XR space. */ _this.gripPose = new XRPose(), /** The target ray space pose of the controller in XR space. */ _this.targetRayPose = new XRPose(), /** The currently pressed buttons of this controller. */ _this.pressedButtons = XRInputButton.None, /** Record button lifted. */ _this.down = XRInputButton.None, /** Record button pressed. */ _this.up = XRInputButton.None;
291
284
  return _this;
292
285
  }
293
286
  var _proto = XRController.prototype;
@@ -316,22 +309,22 @@
316
309
  return XRController;
317
310
  }(XRInput);
318
311
 
319
- exports.XRInputEventType = void 0;
320
- (function(XRInputEventType) {
312
+ var XRInputEventType = /*#__PURE__*/ function(XRInputEventType) {
321
313
  XRInputEventType[XRInputEventType["SelectStart"] = 0] = "SelectStart";
322
314
  XRInputEventType[XRInputEventType["Select"] = 1] = "Select";
323
315
  XRInputEventType[XRInputEventType["SelectEnd"] = 2] = "SelectEnd";
324
316
  XRInputEventType[XRInputEventType["SqueezeStart"] = 3] = "SqueezeStart";
325
317
  XRInputEventType[XRInputEventType["Squeeze"] = 4] = "Squeeze";
326
318
  XRInputEventType[XRInputEventType["SqueezeEnd"] = 5] = "SqueezeEnd";
327
- })(exports.XRInputEventType || (exports.XRInputEventType = {}));
319
+ return XRInputEventType;
320
+ }({});
328
321
 
329
- exports.XRTargetRayMode = void 0;
330
- (function(XRTargetRayMode) {
322
+ var XRTargetRayMode = /*#__PURE__*/ function(XRTargetRayMode) {
331
323
  XRTargetRayMode[XRTargetRayMode["Gaze"] = 0] = "Gaze";
332
324
  XRTargetRayMode[XRTargetRayMode["TrackedPointer"] = 1] = "TrackedPointer";
333
325
  XRTargetRayMode[XRTargetRayMode["Screen"] = 2] = "Screen";
334
- })(exports.XRTargetRayMode || (exports.XRTargetRayMode = {}));
326
+ return XRTargetRayMode;
327
+ }({});
335
328
 
336
329
  /**
337
330
  * The manager of XR input.
@@ -345,23 +338,23 @@
345
338
  this._removed = [];
346
339
  this._trackedDevices = [];
347
340
  this._statusSnapshot = [];
348
- this._listeners = [];
341
+ this._listeners = new engine.SafeLoopArray();
349
342
  var _this = this, trackedDevices = _this._trackedDevices, controllers = _this._controllers, cameras = _this._cameras;
350
343
  for(var i = 0; i < 6; i++){
351
344
  switch(i){
352
- case exports.XRTrackedInputDevice.Camera:
353
- case exports.XRTrackedInputDevice.LeftCamera:
354
- case exports.XRTrackedInputDevice.RightCamera:
345
+ case XRTrackedInputDevice.Camera:
346
+ case XRTrackedInputDevice.LeftCamera:
347
+ case XRTrackedInputDevice.RightCamera:
355
348
  cameras.push(trackedDevices[i] = new XRCamera(i));
356
349
  break;
357
- case exports.XRTrackedInputDevice.Controller:
358
- case exports.XRTrackedInputDevice.LeftController:
359
- case exports.XRTrackedInputDevice.RightController:
350
+ case XRTrackedInputDevice.Controller:
351
+ case XRTrackedInputDevice.LeftController:
352
+ case XRTrackedInputDevice.RightController:
360
353
  controllers.push(trackedDevices[i] = new XRController(i));
361
354
  break;
362
355
  }
363
356
  }
364
- this._statusSnapshot.fill(exports.XRTrackingState.NotTracking, 0, trackedDevices.length);
357
+ this._statusSnapshot.fill(XRTrackingState.NotTracking, 0, trackedDevices.length);
365
358
  }
366
359
  var _proto = XRInputManager.prototype;
367
360
  /**
@@ -375,22 +368,22 @@
375
368
  * Add a listener for tracked device changes.
376
369
  * @param listener - The listener to add
377
370
  */ _proto.addTrackedDeviceChangedListener = function addTrackedDeviceChangedListener(listener) {
378
- this._listeners.push(listener);
371
+ this._listeners.push({
372
+ fn: listener
373
+ });
379
374
  };
380
375
  /**
381
376
  * Remove a listener of tracked device changes.
382
377
  * @param listener - The listener to remove
383
378
  */ _proto.removeTrackedDeviceChangedListener = function removeTrackedDeviceChangedListener(listener) {
384
- var _this = this, listeners = _this._listeners;
385
- var index = listeners.indexOf(listener);
386
- if (index >= 0) {
387
- listeners.splice(index, 1);
388
- }
379
+ this._listeners.findAndRemove(function(value) {
380
+ return value.fn === listener ? value.destroyed = true : false;
381
+ });
389
382
  };
390
383
  /**
391
384
  * @internal
392
385
  */ _proto._onUpdate = function _onUpdate() {
393
- var _this = this, added = _this._added, removed = _this._removed, listeners = _this._listeners, statusSnapshot = _this._statusSnapshot;
386
+ var _this = this, added = _this._added, removed = _this._removed, statusSnapshot = _this._statusSnapshot;
394
387
  var _this1 = this, trackedDevices = _this1._trackedDevices, controllers = _this1._controllers;
395
388
  // Reset data
396
389
  added.length = removed.length = 0;
@@ -410,12 +403,12 @@
410
403
  var input = trackedDevices[i2];
411
404
  if (!input) continue;
412
405
  var nowState = input.trackingState;
413
- if (statusSnapshot[i2] === exports.XRTrackingState.Tracking) {
414
- if (nowState !== exports.XRTrackingState.Tracking) {
406
+ if (statusSnapshot[i2] === XRTrackingState.Tracking) {
407
+ if (nowState !== XRTrackingState.Tracking) {
415
408
  removed.push(input);
416
409
  }
417
410
  } else {
418
- if (nowState === exports.XRTrackingState.Tracking) {
411
+ if (nowState === XRTrackingState.Tracking) {
419
412
  added.push(input);
420
413
  }
421
414
  }
@@ -423,40 +416,44 @@
423
416
  }
424
417
  // Dispatch change event
425
418
  if (added.length > 0 || removed.length > 0) {
419
+ var listeners = this._listeners.getLoopArray();
426
420
  for(var i3 = 0, n3 = listeners.length; i3 < n3; i3++){
427
- listeners[i3](added, removed);
421
+ var listener = listeners[i3];
422
+ !listener.destroyed && listener.fn(added, removed);
428
423
  }
429
424
  }
430
425
  };
431
426
  /**
432
427
  * @internal
433
428
  */ _proto._onDestroy = function _onDestroy() {
434
- this._listeners.length = 0;
429
+ this._listeners.findAndRemove(function(value) {
430
+ return value.destroyed = true;
431
+ });
435
432
  };
436
433
  _proto._handleEvent = function _handleEvent(event) {
437
434
  var input = this._trackedDevices[event.input];
438
435
  switch(event.targetRayMode){
439
- case exports.XRTargetRayMode.TrackedPointer:
436
+ case XRTargetRayMode.TrackedPointer:
440
437
  switch(event.type){
441
- case exports.XRInputEventType.SelectStart:
442
- input.down |= exports.XRInputButton.Select;
443
- input.pressedButtons |= exports.XRInputButton.Select;
438
+ case XRInputEventType.SelectStart:
439
+ input.down |= XRInputButton.Select;
440
+ input.pressedButtons |= XRInputButton.Select;
444
441
  break;
445
- case exports.XRInputEventType.SelectEnd:
446
- input.up |= exports.XRInputButton.Select;
447
- input.pressedButtons &= ~exports.XRInputButton.Select;
442
+ case XRInputEventType.SelectEnd:
443
+ input.up |= XRInputButton.Select;
444
+ input.pressedButtons &= ~XRInputButton.Select;
448
445
  break;
449
- case exports.XRInputEventType.SqueezeStart:
450
- input.down |= exports.XRInputButton.Squeeze;
451
- input.pressedButtons |= exports.XRInputButton.Squeeze;
446
+ case XRInputEventType.SqueezeStart:
447
+ input.down |= XRInputButton.Squeeze;
448
+ input.pressedButtons |= XRInputButton.Squeeze;
452
449
  break;
453
- case exports.XRInputEventType.SqueezeEnd:
454
- input.up |= exports.XRInputButton.Squeeze;
455
- input.pressedButtons &= ~exports.XRInputButton.Squeeze;
450
+ case XRInputEventType.SqueezeEnd:
451
+ input.up |= XRInputButton.Squeeze;
452
+ input.pressedButtons &= ~XRInputButton.Squeeze;
456
453
  break;
457
454
  }
458
455
  break;
459
- case exports.XRTargetRayMode.Screen:
456
+ case XRTargetRayMode.Screen:
460
457
  var _this = this, engine = _this._engine;
461
458
  // @ts-ignore
462
459
  var target = engine.inputManager._pointerManager._target;
@@ -467,13 +464,13 @@
467
464
  var clientY = clientHeight * (event.y + 1) * 0.5;
468
465
  // @ts-ignore
469
466
  switch(event.type){
470
- case exports.XRInputEventType.SelectStart:
467
+ case XRInputEventType.SelectStart:
471
468
  target.dispatchEvent(this._makeUpPointerEvent("pointerdown", event.id, clientX, clientY));
472
469
  break;
473
- case exports.XRInputEventType.Select:
470
+ case XRInputEventType.Select:
474
471
  target.dispatchEvent(this._makeUpPointerEvent("pointermove", event.id, clientX, clientY));
475
472
  break;
476
- case exports.XRInputEventType.SelectEnd:
473
+ case XRInputEventType.SelectEnd:
477
474
  target.dispatchEvent(this._makeUpPointerEvent("pointerup", event.id, clientX, clientY));
478
475
  target.dispatchEvent(this._makeUpPointerEvent("pointerleave", event.id, clientX, clientY));
479
476
  break;
@@ -512,12 +509,12 @@
512
509
 
513
510
  /**
514
511
  * The type of XR session.
515
- */ exports.XRSessionMode = void 0;
516
- (function(XRSessionMode) {
512
+ */ var XRSessionMode = /*#__PURE__*/ function(XRSessionMode) {
517
513
  XRSessionMode[XRSessionMode["None"] = 0] = "None";
518
514
  XRSessionMode[XRSessionMode["AR"] = 1] = "AR";
519
515
  XRSessionMode[XRSessionMode["VR"] = 2] = "VR";
520
- })(exports.XRSessionMode || (exports.XRSessionMode = {}));
516
+ return XRSessionMode;
517
+ }({});
521
518
 
522
519
  /**
523
520
  * XRSessionManager manages the life cycle of XR sessions.
@@ -525,8 +522,8 @@
525
522
  function XRSessionManager(_xrManager, _engine) {
526
523
  this._xrManager = _xrManager;
527
524
  this._engine = _engine;
528
- this._mode = exports.XRSessionMode.None;
529
- this._state = exports.XRSessionState.None;
525
+ this._mode = XRSessionMode.None;
526
+ this._state = XRSessionState.None;
530
527
  this._listeners = new engine.SafeLoopArray();
531
528
  // @ts-ignore
532
529
  this._rhi = _engine._hardwareRenderer;
@@ -550,7 +547,7 @@
550
547
  throw new Error("Without session to run.");
551
548
  }
552
549
  platformSession.start();
553
- this._setState(exports.XRSessionState.Running);
550
+ this._setState(XRSessionState.Running);
554
551
  this._xrManager._onSessionStart();
555
552
  if (!engine.isPaused) {
556
553
  engine.pause();
@@ -564,13 +561,13 @@
564
561
  if (!platformSession) {
565
562
  throw new Error("Without session to stop.");
566
563
  }
567
- if (this._state !== exports.XRSessionState.Running) {
564
+ if (this._state !== XRSessionState.Running) {
568
565
  throw new Error("Session is not running.");
569
566
  }
570
567
  rhi._mainFrameBuffer = null;
571
568
  rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
572
569
  platformSession.stop();
573
- this._setState(exports.XRSessionState.Paused);
570
+ this._setState(XRSessionState.Paused);
574
571
  this._xrManager._onSessionStop();
575
572
  if (!engine.isPaused) {
576
573
  engine.pause();
@@ -618,7 +615,7 @@
618
615
  xrManager._platformDevice.requestSession(_this._rhi, mode, platformFeatures).then(function(platformSession) {
619
616
  _this._mode = mode;
620
617
  _this._platformSession = platformSession;
621
- _this._setState(exports.XRSessionState.Initialized);
618
+ _this._setState(XRSessionState.Initialized);
622
619
  platformSession.setSessionExitCallBack(_this._onSessionExit);
623
620
  platformSession.addEventListener();
624
621
  xrManager._onSessionInit();
@@ -637,7 +634,7 @@
637
634
  /**
638
635
  * @internal
639
636
  */ _proto._getRequestAnimationFrame = function _getRequestAnimationFrame() {
640
- if (this._state === exports.XRSessionState.Running) {
637
+ if (this._state === XRSessionState.Running) {
641
638
  return this._platformSession.requestAnimationFrame;
642
639
  } else {
643
640
  return this._raf;
@@ -646,7 +643,7 @@
646
643
  /**
647
644
  * @internal
648
645
  */ _proto._getCancelAnimationFrame = function _getCancelAnimationFrame() {
649
- if (this._state === exports.XRSessionState.Running) {
646
+ if (this._state === XRSessionState.Running) {
650
647
  return this._platformSession.cancelAnimationFrame;
651
648
  } else {
652
649
  return this._caf;
@@ -667,7 +664,7 @@
667
664
  rhi._mainFrameWidth = rhi._mainFrameHeight = 0;
668
665
  platformSession.removeEventListener();
669
666
  this._platformSession = null;
670
- this._setState(exports.XRSessionState.None);
667
+ this._setState(XRSessionState.None);
671
668
  this._xrManager._onSessionExit();
672
669
  if (!engine.isPaused) {
673
670
  engine.pause();
@@ -721,13 +718,10 @@
721
718
 
722
719
  /**
723
720
  * @internal
724
- */ var XRManagerExtended = /*#__PURE__*/ function(XRManager1) {
725
- _inherits(XRManagerExtended, XRManager1);
721
+ */ var XRManagerExtended = /*#__PURE__*/ function(XRManager) {
722
+ _inherits(XRManagerExtended, XRManager);
726
723
  function XRManagerExtended() {
727
- var _this;
728
- _this = XRManager1.apply(this, arguments) || this;
729
- _this.features = [];
730
- return _this;
724
+ return XRManager.apply(this, arguments) || this;
731
725
  }
732
726
  var _proto = XRManagerExtended.prototype;
733
727
  _proto.isSupportedFeature = function isSupportedFeature(feature) {
@@ -747,7 +741,9 @@
747
741
  for(var i = 0, n = features.length; i < n; i++){
748
742
  if (_instanceof(features[i], type)) throw new Error("The feature has been added");
749
743
  }
750
- var feature = _construct(type, [].concat(this, args));
744
+ var feature = _construct(type, [].concat([
745
+ this
746
+ ], args));
751
747
  features.push(feature);
752
748
  return feature;
753
749
  };
@@ -761,8 +757,8 @@
761
757
  }
762
758
  };
763
759
  _proto.enterXR = function enterXR(sessionMode, autoRun) {
764
- if (autoRun === void 0) autoRun = true;
765
760
  var _this = this;
761
+ if (autoRun === void 0) autoRun = true;
766
762
  var sessionManager = this.sessionManager;
767
763
  if (sessionManager._platformSession) {
768
764
  throw new Error("Please exit XR immersive mode first.");
@@ -773,7 +769,7 @@
773
769
  return new Promise(function(resolve, reject) {
774
770
  // 1. Check if this xr mode is supported
775
771
  sessionManager.isSupportedMode(sessionMode).then(function() {
776
- sessionManager._setState(exports.XRSessionState.Initializing);
772
+ sessionManager._setState(XRSessionState.Initializing);
777
773
  // 2. Initialize session
778
774
  sessionManager._initialize(sessionMode, _this.features).then(function() {
779
775
  autoRun && sessionManager.run();
@@ -791,6 +787,7 @@
791
787
  });
792
788
  };
793
789
  _proto._initialize = function _initialize(engine, xrDevice) {
790
+ this._features = [];
794
791
  this._platformDevice = xrDevice;
795
792
  this.sessionManager = new XRSessionManager(this, engine);
796
793
  this.inputManager = new XRInputManager(this, engine);
@@ -798,7 +795,7 @@
798
795
  };
799
796
  _proto._update = function _update() {
800
797
  var sessionManager = this.sessionManager;
801
- if (sessionManager.state !== exports.XRSessionState.Running) return;
798
+ if (sessionManager.state !== XRSessionState.Running) return;
802
799
  sessionManager._onUpdate();
803
800
  this.inputManager._onUpdate();
804
801
  this.cameraManager._onUpdate();
@@ -828,8 +825,8 @@
828
825
  _proto._getCancelAnimationFrame = function _getCancelAnimationFrame() {
829
826
  return this.sessionManager._getCancelAnimationFrame();
830
827
  };
831
- _proto._getCameraClearFlagsMask = function _getCameraClearFlagsMask(type) {
832
- return this.cameraManager._getCameraClearFlagsMask(type);
828
+ _proto._getCameraIgnoreClearFlags = function _getCameraIgnoreClearFlags(type) {
829
+ return this.cameraManager._getIgnoreClearFlags(type);
833
830
  };
834
831
  /**
835
832
  * @internal
@@ -872,6 +869,12 @@
872
869
  features.length = 0;
873
870
  };
874
871
  _create_class(XRManagerExtended, [
872
+ {
873
+ key: "features",
874
+ get: function get() {
875
+ return this._features;
876
+ }
877
+ },
875
878
  {
876
879
  key: "origin",
877
880
  get: function get() {
@@ -887,9 +890,7 @@
887
890
  ]);
888
891
  return XRManagerExtended;
889
892
  }(engine.XRManager);
890
- (function() {
891
- /** @internal */ XRManagerExtended._featureMap = new Map();
892
- })();
893
+ /** @internal */ XRManagerExtended._featureMap = new Map();
893
894
  /**
894
895
  * @internal
895
896
  */ function registerXRFeature(type) {
@@ -920,7 +921,9 @@
920
921
  this._xrManager = _xrManager;
921
922
  this._type = _type;
922
923
  this._enabled = true;
923
- this._platformFeature = (_xrManager__platformDevice = _xrManager._platformDevice).createPlatformFeature.apply(_xrManager__platformDevice, [].concat(_type, args));
924
+ this._platformFeature = (_xrManager__platformDevice = _xrManager._platformDevice).createPlatformFeature.apply(_xrManager__platformDevice, [].concat([
925
+ _type
926
+ ], args));
924
927
  this._onEnable();
925
928
  }
926
929
  var _proto = XRFeature.prototype;
@@ -967,38 +970,31 @@
967
970
  return XRFeature;
968
971
  }();
969
972
 
970
- exports.XRFeatureType = void 0;
971
- (function(XRFeatureType) {
973
+ var XRFeatureType = /*#__PURE__*/ function(XRFeatureType) {
972
974
  XRFeatureType[XRFeatureType["AnchorTracking"] = 0] = "AnchorTracking";
973
975
  XRFeatureType[XRFeatureType["ImageTracking"] = 1] = "ImageTracking";
974
976
  XRFeatureType[XRFeatureType["PlaneTracking"] = 2] = "PlaneTracking";
975
977
  XRFeatureType[XRFeatureType["HitTest"] = 3] = "HitTest";
976
- })(exports.XRFeatureType || (exports.XRFeatureType = {}));
978
+ return XRFeatureType;
979
+ }({});
977
980
 
978
- exports.XRRequestTrackingState = void 0;
979
- (function(XRRequestTrackingState) {
981
+ var XRRequestTrackingState = /*#__PURE__*/ function(XRRequestTrackingState) {
980
982
  XRRequestTrackingState[XRRequestTrackingState["None"] = 0] = "None";
981
983
  XRRequestTrackingState[XRRequestTrackingState["Submitted"] = 1] = "Submitted";
982
984
  XRRequestTrackingState[XRRequestTrackingState["Resolved"] = 2] = "Resolved";
983
985
  XRRequestTrackingState[XRRequestTrackingState["Rejected"] = 3] = "Rejected";
984
986
  XRRequestTrackingState[XRRequestTrackingState["Destroyed"] = 4] = "Destroyed";
985
987
  XRRequestTrackingState[XRRequestTrackingState["WaitingDestroy"] = 5] = "WaitingDestroy";
986
- })(exports.XRRequestTrackingState || (exports.XRRequestTrackingState = {}));
988
+ return XRRequestTrackingState;
989
+ }({});
987
990
 
988
991
  /**
989
992
  * The base class of XR trackable manager.
990
- */ var XRTrackableFeature = /*#__PURE__*/ function(XRFeature1) {
991
- _inherits(XRTrackableFeature, XRFeature1);
993
+ */ var XRTrackableFeature = /*#__PURE__*/ function(XRFeature) {
994
+ _inherits(XRTrackableFeature, XRFeature);
992
995
  function XRTrackableFeature() {
993
996
  var _this;
994
- _this = XRFeature1.apply(this, arguments) || this;
995
- _this._requestTrackings = [];
996
- _this._tracked = [];
997
- _this._added = [];
998
- _this._updated = [];
999
- _this._removed = [];
1000
- _this._statusSnapshot = {};
1001
- _this._listeners = new engine.SafeLoopArray();
997
+ _this = XRFeature.apply(this, arguments) || this, _this._requestTrackings = [], _this._tracked = [], _this._added = [], _this._updated = [], _this._removed = [], _this._statusSnapshot = {}, _this._listeners = new engine.SafeLoopArray();
1002
998
  return _this;
1003
999
  }
1004
1000
  var _proto = XRTrackableFeature.prototype;
@@ -1033,33 +1029,33 @@
1033
1029
  for(var i = 0, n = requestTrackings.length; i < n; i++){
1034
1030
  var requestTracking = requestTrackings[i];
1035
1031
  switch(requestTracking.state){
1036
- case exports.XRRequestTrackingState.Destroyed:
1032
+ case XRRequestTrackingState.Destroyed:
1037
1033
  var destroyedTracked = requestTracking.tracked;
1038
1034
  for(var j = 0, n1 = destroyedTracked.length; j < n1; j++){
1039
1035
  var tracked = destroyedTracked[j];
1040
1036
  var trackId = tracked.id;
1041
- if (statusSnapshot[trackId] === exports.XRTrackingState.Tracking) {
1037
+ if (statusSnapshot[trackId] === XRTrackingState.Tracking) {
1042
1038
  removed.push(tracked);
1043
1039
  allTracked.splice(allTracked.indexOf(tracked), 1);
1044
1040
  }
1045
- statusSnapshot[trackId] = exports.XRTrackingState.NotTracking;
1041
+ statusSnapshot[trackId] = XRTrackingState.NotTracking;
1046
1042
  }
1047
1043
  break;
1048
- case exports.XRRequestTrackingState.Resolved:
1044
+ case XRRequestTrackingState.Resolved:
1049
1045
  var tracked1 = requestTracking.tracked;
1050
1046
  for(var j1 = 0, n2 = tracked1.length; j1 < n2; j1++){
1051
1047
  var trackedObject = tracked1[j1];
1052
1048
  var trackId1 = trackedObject.id;
1053
- if (trackedObject.state === exports.XRTrackingState.Tracking) {
1054
- if (statusSnapshot[trackId1] === exports.XRTrackingState.Tracking) {
1049
+ if (trackedObject.state === XRTrackingState.Tracking) {
1050
+ if (statusSnapshot[trackId1] === XRTrackingState.Tracking) {
1055
1051
  updated.push(trackedObject);
1056
1052
  } else {
1057
1053
  added.push(trackedObject);
1058
- statusSnapshot[trackId1] = exports.XRTrackingState.Tracking;
1054
+ statusSnapshot[trackId1] = XRTrackingState.Tracking;
1059
1055
  allTracked.push(trackedObject);
1060
1056
  }
1061
1057
  } else {
1062
- if (statusSnapshot[trackId1] === exports.XRTrackingState.Tracking) {
1058
+ if (statusSnapshot[trackId1] === XRTrackingState.Tracking) {
1063
1059
  removed.push(trackedObject);
1064
1060
  allTracked.splice(allTracked.indexOf(trackedObject), 1);
1065
1061
  }
@@ -1070,7 +1066,7 @@
1070
1066
  }
1071
1067
  }
1072
1068
  for(var i1 = requestTrackings.length - 1; i1 >= 0; i1--){
1073
- requestTrackings[i1].state === exports.XRRequestTrackingState.Destroyed && requestTrackings.splice(i1, 1);
1069
+ requestTrackings[i1].state === XRRequestTrackingState.Destroyed && requestTrackings.splice(i1, 1);
1074
1070
  }
1075
1071
  if (added.length > 0 || updated.length > 0 || removed.length > 0) {
1076
1072
  var listeners = this._listeners.getLoopArray();
@@ -1093,7 +1089,7 @@
1093
1089
  _proto._addRequestTracking = function _addRequestTracking(requestTracking) {
1094
1090
  var _this = this, platformFeature = _this._platformFeature;
1095
1091
  if (this._xrManager.sessionManager._platformSession && !platformFeature.canModifyRequestTrackingAfterInit) {
1096
- throw new Error(exports.XRFeatureType[this._type] + " request tracking cannot be modified after initialization.");
1092
+ throw new Error(XRFeatureType[this._type] + " request tracking cannot be modified after initialization.");
1097
1093
  }
1098
1094
  this._requestTrackings.push(requestTracking);
1099
1095
  platformFeature.onAddRequestTracking(requestTracking);
@@ -1101,14 +1097,14 @@
1101
1097
  _proto._removeRequestTracking = function _removeRequestTracking(requestTracking) {
1102
1098
  var _this = this, platformFeature = _this._platformFeature;
1103
1099
  if (this._xrManager.sessionManager._platformSession && !platformFeature.canModifyRequestTrackingAfterInit) {
1104
- throw new Error(exports.XRFeatureType[this._type] + " request tracking cannot be modified after initialization.");
1100
+ throw new Error(XRFeatureType[this._type] + " request tracking cannot be modified after initialization.");
1105
1101
  }
1106
1102
  platformFeature.onDelRequestTracking(requestTracking);
1107
1103
  };
1108
1104
  _proto._removeAllRequestTrackings = function _removeAllRequestTrackings() {
1109
1105
  var _this = this, platformFeature = _this._platformFeature;
1110
1106
  if (this._xrManager.sessionManager._platformSession && !platformFeature.canModifyRequestTrackingAfterInit) {
1111
- throw new Error(exports.XRFeatureType[this._type] + " request tracking cannot be modified after initialization.");
1107
+ throw new Error(XRFeatureType[this._type] + " request tracking cannot be modified after initialization.");
1112
1108
  }
1113
1109
  var _this1 = this, requestTrackings = _this1._requestTrackings;
1114
1110
  for(var i = 0, n = requestTrackings.length; i < n; i++){
@@ -1117,25 +1113,23 @@
1117
1113
  };
1118
1114
  return XRTrackableFeature;
1119
1115
  }(XRFeature);
1120
- (function() {
1121
- XRTrackableFeature._uuid = 0;
1122
- })();
1116
+ XRTrackableFeature._uuid = 0;
1123
1117
 
1124
1118
  /**
1125
1119
  * The base class of XR tracked object.
1126
1120
  */ var XRTracked = function XRTracked() {
1127
1121
  /** The pose of the trackable in XR space. */ this.pose = new XRPose();
1128
- /** The tracking state of the trackable. */ this.state = exports.XRTrackingState.NotTracking;
1122
+ /** The tracking state of the trackable. */ this.state = XRTrackingState.NotTracking;
1129
1123
  };
1130
1124
 
1131
1125
  /**
1132
1126
  * Enum for the types of hit test that can be performed.
1133
1127
  * Note: currently only supports plane.
1134
- */ exports.TrackableType = void 0;
1135
- (function(TrackableType) {
1136
- TrackableType[TrackableType[/** Tracked plane. */ "Plane"] = 0x1] = "Plane";
1137
- TrackableType[TrackableType[/** All tracked objects. */ "All"] = 0x1] = "All";
1138
- })(exports.TrackableType || (exports.TrackableType = {}));
1128
+ */ var TrackableType = /*#__PURE__*/ function(TrackableType) {
1129
+ /** Tracked plane. */ TrackableType[TrackableType["Plane"] = 1] = "Plane";
1130
+ /** All tracked objects. */ TrackableType[TrackableType["All"] = 1] = "All";
1131
+ return TrackableType;
1132
+ }({});
1139
1133
 
1140
1134
  /**
1141
1135
  * XR hit result.
@@ -1174,29 +1168,28 @@
1174
1168
 
1175
1169
  /**
1176
1170
  * Enumerates modes of plane in XR.
1177
- */ exports.XRPlaneMode = void 0;
1178
- (function(XRPlaneMode) {
1179
- XRPlaneMode[XRPlaneMode[/** None. */ "None"] = 0] = "None";
1180
- XRPlaneMode[XRPlaneMode[/** Horizontal */ "Horizontal"] = 1] = "Horizontal";
1181
- XRPlaneMode[XRPlaneMode[/** Vertical */ "Vertical"] = 2] = "Vertical";
1182
- XRPlaneMode[XRPlaneMode[/** Includes horizontal and vertical. */ "EveryThing"] = 3] = "EveryThing";
1183
- })(exports.XRPlaneMode || (exports.XRPlaneMode = {}));
1171
+ */ var XRPlaneMode = /*#__PURE__*/ function(XRPlaneMode) {
1172
+ /** None. */ XRPlaneMode[XRPlaneMode["None"] = 0] = "None";
1173
+ /** Horizontal */ XRPlaneMode[XRPlaneMode["Horizontal"] = 1] = "Horizontal";
1174
+ /** Vertical */ XRPlaneMode[XRPlaneMode["Vertical"] = 2] = "Vertical";
1175
+ /** Includes horizontal and vertical. */ XRPlaneMode[XRPlaneMode["EveryThing"] = 3] = "EveryThing";
1176
+ return XRPlaneMode;
1177
+ }({});
1184
1178
 
1185
1179
  /**
1186
1180
  * @internal
1187
1181
  */ var XRRequestTracking = function XRRequestTracking() {
1188
- /** The status of the current request tracking. */ this.state = exports.XRRequestTrackingState.None;
1182
+ /** The status of the current request tracking. */ this.state = XRRequestTrackingState.None;
1189
1183
  /** Tracked instances, make up from the tracking data returned by Session. */ this.tracked = [];
1190
1184
  };
1191
1185
 
1192
1186
  /**
1193
1187
  * The request plane in XR space.
1194
- */ var XRRequestPlane = /*#__PURE__*/ function(XRRequestTracking1) {
1195
- _inherits(XRRequestPlane, XRRequestTracking1);
1188
+ */ var XRRequestPlane = /*#__PURE__*/ function(XRRequestTracking) {
1189
+ _inherits(XRRequestPlane, XRRequestTracking);
1196
1190
  function XRRequestPlane(detectionMode) {
1197
1191
  var _this;
1198
- _this = XRRequestTracking1.call(this) || this;
1199
- _this.detectionMode = detectionMode;
1192
+ _this = XRRequestTracking.call(this) || this, _this.detectionMode = detectionMode;
1200
1193
  return _this;
1201
1194
  }
1202
1195
  return XRRequestPlane;
@@ -1204,16 +1197,14 @@
1204
1197
 
1205
1198
  /**
1206
1199
  * The tracked plane in XR space.
1207
- */ var XRTrackedPlane = /*#__PURE__*/ function(XRTracked1) {
1208
- _inherits(XRTrackedPlane, XRTracked1);
1200
+ */ var XRTrackedPlane = /*#__PURE__*/ function(XRTracked) {
1201
+ _inherits(XRTrackedPlane, XRTracked);
1209
1202
  function XRTrackedPlane() {
1210
1203
  var _this;
1211
- _this = XRTracked1.apply(this, arguments) || this;
1212
- /** The points that make up this plane.
1204
+ _this = XRTracked.apply(this, arguments) || this, /** The points that make up this plane.
1213
1205
  * Note: These points are in the plane coordinate system,
1214
1206
  * and their Y coordinates are all zero.
1215
- */ _this.polygon = [];
1216
- /**
1207
+ */ _this.polygon = [], /**
1217
1208
  * Whether this frame changes the attributes of the plane.
1218
1209
  * Note: Includes `polygon` but no `pose`.
1219
1210
  */ _this.attributesDirty = false;
@@ -1225,9 +1216,9 @@
1225
1216
  exports.XRPlaneTracking = /*#__PURE__*/ function(XRTrackableFeature1) {
1226
1217
  _inherits(XRPlaneTracking, XRTrackableFeature1);
1227
1218
  function XRPlaneTracking(xrManager, detectionMode) {
1228
- if (detectionMode === void 0) detectionMode = exports.XRPlaneMode.EveryThing;
1219
+ if (detectionMode === void 0) detectionMode = XRPlaneMode.EveryThing;
1229
1220
  var _this;
1230
- _this = XRTrackableFeature1.call(this, xrManager, exports.XRFeatureType.PlaneTracking, detectionMode) || this;
1221
+ _this = XRTrackableFeature1.call(this, xrManager, XRFeatureType.PlaneTracking, detectionMode) || this;
1231
1222
  _this._addRequestTracking(new XRRequestPlane(detectionMode));
1232
1223
  return _this;
1233
1224
  }
@@ -1258,23 +1249,14 @@
1258
1249
  return XRPlaneTracking;
1259
1250
  }(XRTrackableFeature);
1260
1251
  exports.XRPlaneTracking = __decorate([
1261
- registerXRFeature(exports.XRFeatureType.PlaneTracking)
1252
+ registerXRFeature(XRFeatureType.PlaneTracking)
1262
1253
  ], exports.XRPlaneTracking);
1263
1254
 
1264
- exports.XRHitTest = /*#__PURE__*/ function(XRFeature1) {
1265
- _inherits(XRHitTest, XRFeature1);
1255
+ exports.XRHitTest = /*#__PURE__*/ function(XRFeature) {
1256
+ _inherits(XRHitTest, XRFeature);
1266
1257
  function XRHitTest(xrManager) {
1267
1258
  var _this;
1268
- _this = XRFeature1.call(this, xrManager, exports.XRFeatureType.HitTest) || this;
1269
- _this._tempRay = new engine.Ray();
1270
- _this._tempPlane = new engine.Plane();
1271
- _this._tempVec2 = new engine.Vector2();
1272
- _this._tempVec30 = new engine.Vector3();
1273
- _this._tempVec31 = new engine.Vector3();
1274
- _this._tempVec32 = new engine.Vector3();
1275
- _this._tempVec33 = new engine.Vector3();
1276
- _this._tempVec34 = new engine.Vector3();
1277
- _this._tempVec35 = new engine.Vector3();
1259
+ _this = XRFeature.call(this, xrManager, XRFeatureType.HitTest) || this, _this._tempRay = new engine.Ray(), _this._tempPlane = new engine.Plane(), _this._tempVec2 = new engine.Vector2(), _this._tempVec30 = new engine.Vector3(), _this._tempVec31 = new engine.Vector3(), _this._tempVec32 = new engine.Vector3(), _this._tempVec33 = new engine.Vector3(), _this._tempVec34 = new engine.Vector3(), _this._tempVec35 = new engine.Vector3();
1278
1260
  return _this;
1279
1261
  }
1280
1262
  var _proto = XRHitTest.prototype;
@@ -1285,7 +1267,7 @@
1285
1267
  * @returns The hit result
1286
1268
  */ _proto.hitTest = function hitTest(ray, type) {
1287
1269
  var result = [];
1288
- if (type & exports.TrackableType.Plane) {
1270
+ if (type & TrackableType.Plane) {
1289
1271
  this._hitTestPlane(ray, result);
1290
1272
  }
1291
1273
  return result;
@@ -1298,10 +1280,10 @@
1298
1280
  * @returns The hit result
1299
1281
  */ _proto.screenHitTest = function screenHitTest(x, y, type) {
1300
1282
  var _this = this, xrManager = _this._xrManager;
1301
- if (xrManager.sessionManager.mode !== exports.XRSessionMode.AR) {
1283
+ if (xrManager.sessionManager.mode !== XRSessionMode.AR) {
1302
1284
  throw new Error("Only AR mode supports using screen ray hit test.");
1303
1285
  }
1304
- var _xrManager_inputManager_getTrackedDevice = xrManager.inputManager.getTrackedDevice(exports.XRTrackedInputDevice.Camera), camera = _xrManager_inputManager_getTrackedDevice._camera;
1286
+ var _xrManager_inputManager_getTrackedDevice = xrManager.inputManager.getTrackedDevice(XRTrackedInputDevice.Camera), camera = _xrManager_inputManager_getTrackedDevice._camera;
1305
1287
  if (!camera) {
1306
1288
  throw new Error("No camera available.");
1307
1289
  }
@@ -1331,7 +1313,7 @@
1331
1313
  hitResult.normal.copyFrom(normal);
1332
1314
  hitResult.distance = distance;
1333
1315
  hitResult.trackedObject = trackedPlane;
1334
- hitResult.trackableType = exports.TrackableType.Plane;
1316
+ hitResult.trackableType = TrackableType.Plane;
1335
1317
  result.push(hitResult);
1336
1318
  }
1337
1319
  }
@@ -1367,28 +1349,26 @@
1367
1349
  return XRHitTest;
1368
1350
  }(XRFeature);
1369
1351
  exports.XRHitTest = __decorate([
1370
- registerXRFeature(exports.XRFeatureType.HitTest)
1352
+ registerXRFeature(XRFeatureType.HitTest)
1371
1353
  ], exports.XRHitTest);
1372
1354
 
1373
1355
  /**
1374
1356
  * The anchor in XR space.
1375
- */ var XRAnchor = /*#__PURE__*/ function(XRTracked1) {
1376
- _inherits(XRAnchor, XRTracked1);
1357
+ */ var XRAnchor = /*#__PURE__*/ function(XRTracked) {
1358
+ _inherits(XRAnchor, XRTracked);
1377
1359
  function XRAnchor() {
1378
- return XRTracked1.apply(this, arguments);
1360
+ return XRTracked.apply(this, arguments) || this;
1379
1361
  }
1380
1362
  return XRAnchor;
1381
1363
  }(XRTracked);
1382
1364
 
1383
1365
  /**
1384
1366
  * The request anchor in XR space.
1385
- */ var XRRequestAnchor = /*#__PURE__*/ function(XRRequestTracking1) {
1386
- _inherits(XRRequestAnchor, XRRequestTracking1);
1367
+ */ var XRRequestAnchor = /*#__PURE__*/ function(XRRequestTracking) {
1368
+ _inherits(XRRequestAnchor, XRRequestTracking);
1387
1369
  function XRRequestAnchor(position, rotation) {
1388
1370
  var _this;
1389
- _this = XRRequestTracking1.call(this) || this;
1390
- _this.position = position;
1391
- _this.rotation = rotation;
1371
+ _this = XRRequestTracking.call(this) || this, _this.position = position, _this.rotation = rotation;
1392
1372
  return _this;
1393
1373
  }
1394
1374
  return XRRequestAnchor;
@@ -1398,8 +1378,7 @@
1398
1378
  _inherits(XRAnchorTracking, XRTrackableFeature1);
1399
1379
  function XRAnchorTracking(xrManager) {
1400
1380
  var _this;
1401
- _this = XRTrackableFeature1.call(this, xrManager, exports.XRFeatureType.AnchorTracking) || this;
1402
- _this._anchors = [];
1381
+ _this = XRTrackableFeature1.call(this, xrManager, XRFeatureType.AnchorTracking) || this, _this._anchors = [];
1403
1382
  return _this;
1404
1383
  }
1405
1384
  var _proto = XRAnchorTracking.prototype;
@@ -1469,17 +1448,16 @@
1469
1448
  return XRAnchorTracking;
1470
1449
  }(XRTrackableFeature);
1471
1450
  exports.XRAnchorTracking = __decorate([
1472
- registerXRFeature(exports.XRFeatureType.AnchorTracking)
1451
+ registerXRFeature(XRFeatureType.AnchorTracking)
1473
1452
  ], exports.XRAnchorTracking);
1474
1453
 
1475
1454
  /**
1476
1455
  * The request image in XR space.
1477
- */ var XRRequestImage = /*#__PURE__*/ function(XRRequestTracking1) {
1478
- _inherits(XRRequestImage, XRRequestTracking1);
1456
+ */ var XRRequestImage = /*#__PURE__*/ function(XRRequestTracking) {
1457
+ _inherits(XRRequestImage, XRRequestTracking);
1479
1458
  function XRRequestImage(image) {
1480
1459
  var _this;
1481
- _this = XRRequestTracking1.call(this) || this;
1482
- _this.image = image;
1460
+ _this = XRRequestTracking.call(this) || this, _this.image = image;
1483
1461
  return _this;
1484
1462
  }
1485
1463
  return XRRequestImage;
@@ -1487,10 +1465,10 @@
1487
1465
 
1488
1466
  /**
1489
1467
  * A tracked image in XR space.
1490
- */ var XRTrackedImage = /*#__PURE__*/ function(XRTracked1) {
1491
- _inherits(XRTrackedImage, XRTracked1);
1468
+ */ var XRTrackedImage = /*#__PURE__*/ function(XRTracked) {
1469
+ _inherits(XRTrackedImage, XRTracked);
1492
1470
  function XRTrackedImage() {
1493
- return XRTracked1.apply(this, arguments);
1471
+ return XRTracked.apply(this, arguments) || this;
1494
1472
  }
1495
1473
  return XRTrackedImage;
1496
1474
  }(XRTracked);
@@ -1499,7 +1477,7 @@
1499
1477
  _inherits(XRImageTracking, XRTrackableFeature1);
1500
1478
  function XRImageTracking(xrManager, trackingImages) {
1501
1479
  var _this;
1502
- _this = XRTrackableFeature1.call(this, xrManager, exports.XRFeatureType.ImageTracking, trackingImages) || this;
1480
+ _this = XRTrackableFeature1.call(this, xrManager, XRFeatureType.ImageTracking, trackingImages) || this;
1503
1481
  _this._trackingImages = trackingImages;
1504
1482
  var imageLength = trackingImages ? trackingImages.length : 0;
1505
1483
  if (imageLength > 0) {
@@ -1538,7 +1516,7 @@
1538
1516
  return XRImageTracking;
1539
1517
  }(XRTrackableFeature);
1540
1518
  exports.XRImageTracking = __decorate([
1541
- registerXRFeature(exports.XRFeatureType.ImageTracking)
1519
+ registerXRFeature(XRFeatureType.ImageTracking)
1542
1520
  ], exports.XRImageTracking);
1543
1521
 
1544
1522
  /**
@@ -1551,8 +1529,8 @@
1551
1529
 
1552
1530
  exports.XRReferenceImageDecoder = /*#__PURE__*/ function() {
1553
1531
  function XRReferenceImageDecoder() {}
1554
- XRReferenceImageDecoder.decode = function decode(engine, bufferReader) {
1555
- return new Promise(function(resolve, reject) {
1532
+ XRReferenceImageDecoder.decode = function decode(engine$1, bufferReader) {
1533
+ return new engine.AssetPromise(function(resolve, reject) {
1556
1534
  var physicalWidth = bufferReader.nextFloat32();
1557
1535
  bufferReader.nextUint8();
1558
1536
  var img = new Image();
@@ -1583,16 +1561,16 @@
1583
1561
  return _extends.apply(this, arguments);
1584
1562
  }
1585
1563
 
1586
- exports.XRReferenceImageLoader = /*#__PURE__*/ function(Loader1) {
1587
- _inherits(XRReferenceImageLoader, Loader1);
1564
+ exports.XRReferenceImageLoader = /*#__PURE__*/ function(Loader) {
1565
+ _inherits(XRReferenceImageLoader, Loader);
1588
1566
  function XRReferenceImageLoader() {
1589
- return Loader1.apply(this, arguments);
1567
+ return Loader.apply(this, arguments) || this;
1590
1568
  }
1591
1569
  var _proto = XRReferenceImageLoader.prototype;
1592
1570
  _proto.load = function load(item, resourceManager) {
1593
- var _this = this;
1594
1571
  return new engine.AssetPromise(function(resolve, reject) {
1595
- _this.request(item.url, _extends({}, item, {
1572
+ resourceManager// @ts-ignore
1573
+ ._request(item.url, _extends({}, item, {
1596
1574
  type: "arraybuffer"
1597
1575
  })).then(function(data) {
1598
1576
  engine.decode(data, resourceManager.engine).then(function(referenceImage) {
@@ -1607,20 +1585,31 @@
1607
1585
  engine.resourceLoader("XRReferenceImage", [])
1608
1586
  ], exports.XRReferenceImageLoader);
1609
1587
 
1588
+ exports.TrackableType = TrackableType;
1610
1589
  exports.XRAnchor = XRAnchor;
1611
1590
  exports.XRCamera = XRCamera;
1612
1591
  exports.XRCameraManager = XRCameraManager;
1613
1592
  exports.XRController = XRController;
1614
1593
  exports.XRFeature = XRFeature;
1594
+ exports.XRFeatureType = XRFeatureType;
1615
1595
  exports.XRHitResult = XRHitResult;
1596
+ exports.XRInputButton = XRInputButton;
1597
+ exports.XRInputEventType = XRInputEventType;
1616
1598
  exports.XRInputManager = XRInputManager;
1599
+ exports.XRPlaneMode = XRPlaneMode;
1617
1600
  exports.XRPose = XRPose;
1618
1601
  exports.XRReferenceImage = XRReferenceImage;
1602
+ exports.XRRequestTrackingState = XRRequestTrackingState;
1619
1603
  exports.XRSessionManager = XRSessionManager;
1604
+ exports.XRSessionMode = XRSessionMode;
1605
+ exports.XRSessionState = XRSessionState;
1606
+ exports.XRTargetRayMode = XRTargetRayMode;
1620
1607
  exports.XRTrackableFeature = XRTrackableFeature;
1621
1608
  exports.XRTracked = XRTracked;
1622
1609
  exports.XRTrackedImage = XRTrackedImage;
1610
+ exports.XRTrackedInputDevice = XRTrackedInputDevice;
1623
1611
  exports.XRTrackedPlane = XRTrackedPlane;
1612
+ exports.XRTrackingState = XRTrackingState;
1624
1613
 
1625
1614
  Object.defineProperty(exports, '__esModule', { value: true });
1626
1615