# [name]

Questa classe rappresenta un'astrazione dell'API WebXR Device ed è utilizzata internamente da [page:WebGLRenderer]. [name] inoltre fornisce un'interfaccia pubblica che permette agli utenti di abilitare e disabilitare XR ed eseguire attività relative a XR come ad esempio il recupero dei controller.

## Proprietà

### [property:Boolean cameraAutoUpdate]

Indica se la telecamera XR del manager deve essere aggiornata automaticamente o no. Il valore predefinito è `true`.

### [property:Boolean enabled]

Questo flag notifica al renderer di essere pronto per il rendering XR. L'impostazione predefinita è `false`. Impostalo a `true` se stai utilizzando XR nella tua applicazione.

### [property:Boolean isPresenting]

Indica se la presentazione XR è attiva o meno. Il valore predefinito è `false`. Questo flag è di sola lettura e impostato automaticamente da [name].

## Metodi

### [method:ArrayCamera getCamera]()

Restituisce un'istanza di [page:ArrayCamera] che rappresenta la telecamera XR sessione XR attiva. Per ogni vista contiene un oggetto telecamera separato nella sua proprietà [page:ArrayCamera.cameras telecamere].

Il `fov` della telecamera non viene utilizzato attualmente e non riflette il fov della telecamera XR. Se hai bisogno del fov a livello di app, devi calcolare manualmente dalle matrici di proiezione della telecamera XR.

### [method:Group getController]( [param:Integer index] )

[page:Integer index] — L'indice del controller.
Restituisce un [page:Group gruppo] che rappresenta il cosidetto spazio *target ray* del controller XR. Utilizza questo spazio per visualizzare gli oggetti 3D che supportano l'utente nel puntare attività come l'intersezione dell'interfaccia utente.

### [method:Group getControllerGrip]( [param:Integer index] )

[page:Integer index] — L'indice del controller.
Restituisce un [page:Group gruppo] che rappresenta il cosidetto spazio `grip` del controller XR. Utilizza questo spazio se l'utente terrà altri oggetti 3D come una spada laser.

Nota: Se vuoi mostrare qualcosa nella mano dell'utente e offrire un raggio di puntamento allo stesso tempo, ti consigliamo di allegare l'oggetto tenuto in mano al gruppo restituito da [page:.getControllerGrip]() e il raggio al gruppo restituito da [page:.getController](). L'idea è quella di avere due gruppi diversi in due coordinate delle spazio diverse per lo stesso controller WebXR.

### [method:Float getFoveation]()

Restituisce la quantità di foveazione utilizzata dal compositore XR per il livello di proiezione.

### [method:Group getHand]( [param:Integer index] )

[page:Integer index] — L'indice del controller.
Restituisce un [page:Group gruppo] che rappresenta il cosidetto spazio `hand` o `joint` per il controller XR. Utilizza questo spazio per visualizzare le mani dell'utente quando vengono utilizzati i controller non fisici.

### [method:String getReferenceSpace]()

Restituisce lo spazio di riferimento.

### [method:XRSession getSession]()

Restituisce l'oggetto `XRSession` il quale permette una maggiore gestione delle sessioni WebXR attive a livello di applicazione.

### [method:undefined setFoveation]( [param:Float foveation] )

[page:Float foveation] — Il foveazione da impostare.
Specifica la quantità di foveazione utilizzata dal compositore XR per il livello. Deve essere un valore tra `0` e `1`.

### [method:undefined setFramebufferScaleFactor]( [param:Float factor], [param:Boolean limited] )

[page:Float factor] — Il fattore di scala del framebuffer da impostare.
[page:Boolean limited] — Indica se il fattore di scala del framebuffer deve essere ridotto al limite nativo se il valore risulta superiore alle capacità del dispositivo. Il valore predefinito è `false`.
Specifica il fattore di ridimensionamento da utilizzare per determinare la dimensione del framebuffer durante il rendering su un dispositivo XR. Il valore è relativo alla risoluzione del dispositivo XR predefinito. Il valore predefinito è `1`. Un valore di `0.5` specificherebbe un framebuffer con il 50% della risoluzione nativa del display.

Nota: Non è possibile modificare il fattore di scala del framebuffer durante la presentazione del contenuto.

### [method:undefined setReferenceSpace]( [param:XRReferenceSpace referenceSpace] )

[page:XRReferenceSpace referenceSpace] — Uno spazio personalizzato di riferimento.
Può essere utilizzato per configurare uno spazio personalizzato di riferimento il quale sovrascrive lo spazio di riferimento predefinito.

### [method:undefined setReferenceSpaceType]( [param:String referenceSpaceType] )

[page:String referenceSpaceType] — Il tipo dello spazio di riferimento da impostare.
Può essere utilizzare per configurare una relazione spaziale con l'ambiente fisico dell'utente. A seconda di come l'utente si muove nello spazio 3D, l'impostazione di uno spazio di riferimento appropriato può migliorare il tracciamento. Il valore predefinito è `local-floor`. Consultare l'[link:https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpaceType MDN] per i possibli valori e i relativi casi d'uso.

### [method:undefined updateCamera]( [param:PerspectiveCamera camera] )

Aggiorna lo stato della telecamera XR. Utilizza questo metodo a livello di app, se imposti [page:.cameraAutoUpdate] a `false`. Questo metodo richiede la telecamera non XR della scena come parametro. La trasformazione della telecamera passata viene automaticamente regolata sulla posizione della telecamera XR quando si chiama questo metodo.

Nota: Non è possibile modificare il tipo dello spazio di riferimento durante la presentazione del contenuto XR.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]