async onSessionStarted() {
    // Add the `ar` class to our body, which will hide our 2D components
    document.body.classList.add('ar');

    // To help with working with 3D on the web, we'll use three.js.
    this.setupThreeJs();

    // Setup an XRReferenceSpace using the "local" coordinate system.
    this.localReferenceSpace = await this.xrSession.requestReferenceSpace('local');

    // Start a rendering loop using this.onXRFrame.
    this.xrSession.requestAnimationFrame(this.onXRFrame);
  }
/**
   * Called when the XRSession has begun. Here we set up our three.js
   * renderer, scene, and camera and attach our XRWebGLLayer to the
   * XRSession and kick off the render loop.
   */
Called when the XRSession has begun. Here we set up our three.js
renderer, scene, and camera and attach our XRWebGLLayer to the
XRSession and kick off the render loop.
Called when the XRSession has begun . Here we set up our three . js renderer scene and camera and attach our XRWebGLLayer to the XRSession and kick off the render loop .
async onSessionStarted() {
    document.body.classList.add('ar');
    this.setupThreeJs();
    this.localReferenceSpace = await this.xrSession.requestReferenceSpace('local');
    this.xrSession.requestAnimationFrame(this.onXRFrame);
  }
async onSessionStarted ( ) { document . body . classList . add ( 'ar' ) ; this . setupThreeJs ( ) ; this . localReferenceSpace = await this . xrSession . requestReferenceSpace ( 'local' ) ; this . xrSession . requestAnimationFrame ( this . onXRFrame ) ; }
Called when the XRSession has begun.
Called when the XRSession has begun .
// Add the `ar` class to our body, which will hide our 2D components // To help with working with 3D on the web, we'll use three.js. // Setup an XRReferenceSpace using the "local" coordinate system. // Start a rendering loop using this.onXRFrame.