updateUserCamera method

void updateUserCamera(
  1. Camera camera,
  2. ArrayCamera cameraXR,
  3. Object3D? parent
)

Implementation

void updateUserCamera(Camera camera, ArrayCamera cameraXR, Object3D? parent ) {
  if ( parent == null ) {
    camera.matrix.setFrom( cameraXR.matrixWorld );
  }
  else {
    camera.matrix.setFrom( parent.matrixWorld );
    camera.matrix.invert();
    camera.matrix.multiply( cameraXR.matrixWorld );
  }

  camera.matrix.decompose( camera.position, camera.quaternion, camera.scale );
  camera.updateMatrixWorld( true );

  camera.projectionMatrix.setFrom( cameraXR.projectionMatrix );
  camera.projectionMatrixInverse.setFrom( cameraXR.projectionMatrixInverse );

  if ( camera is PerspectiveCamera ) {
    camera.fov = 180 / math.pi;/// 2/// Math.atan( 1 / camera.projectionMatrix.elements[ 5 ] );
    camera.zoom = 1;
  }
}