# [name]

Un raggio che parte da un'origine e si dirige in una determinata direzione. Questo viene utilizzato dal [page:Raycaster] per assistere il raycasting. Il raycasting viene utilizzato per selezionare con il mouse (elaborare su quali oggetti nello spazio 3D si trova il mouse) tra le altre cose.

## Costruttore

### [name]( [param:Vector3 origin], [param:Vector3 direction] )

[page:Vector3 origin] - (opzionale) l'origine del [page:Ray raggio]. Il valore predefinito è un [page:Vector3] a (0, 0, 0).
[page:Vector3 direction] - [page:Vector3] La direzione del [page:Ray raggio]. Deve essere normalizzato (con [page:Vector3.normalize]) affinchè i metodi funzionino correttamente. Il valore predefinito è [page:Vector3] a (0, 0, -1).
Crea un nuovo [name].

## Proprietà

### [property:Vector3 origin]

L'origine del [page:Ray raggio]. Il valore predefinito è un [page:Vector3] a `(0, 0, 0)`.

### [property:Vector3 direction]

La direzione del [page:Ray raggio]. Deve essere normalizzato (con [page:Vector3.normalize]) affinchè i metodi funzionino correttamente. Il valore predefinito è un [page:Vector3] a (0, 0, -1).

## Metodi

### [method:this applyMatrix4]( [param:Matrix4 matrix4] )

[page:Matrix4 matrix4] - la [page:Matrix4] da applicare a questo [page:Ray raggio].
Trasforma questo [page:Ray raggio] con [page:Matrix4].

### [method:Vector3 at]( [param:Float t], [param:Vector3 target] )

[page:Float t] - la distanza lungo il [page:Ray raggio] per la quale recuperare una posizione.
[page:Vector3 target] — il risultato sarà copiato in questo Vector3.
Ottiene un [page:Vector3] che corrisponde a una determinata distanza lungo questo [page:Ray raggio].

### [method:Ray clone]()

Crea un nuovo raggio con [page:.origin origine] e [page:.direction direzione] identiche a questo.

### [method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )

[page:Vector3 point] - il punto a cui avvicinarsi di più.
[page:Vector3 target] — il risultato verrà copiato in questo Vector3.
Ottiene il punto lungo questo [page:Ray raggio] che è il più vicino al [page:Vector3] fornito.

### [method:this copy]( [param:Ray ray] )

Copia le proprietà [page:.origin origine] e [page:.direction direzione] del [page:Ray raggio] in questo raggio.

### [method:Float distanceSqToPoint]( [param:Vector3 point] )

[page:Vector3 point] - il [page:Vector3] per calcolare una distanza.
Ottiene la distanza al quadrato dell'avvicinamento più vicino tra il [page:Ray raggio] e il [page:Vector3].

### [method:Float distanceSqToSegment]( [param:Vector3 v0], [param:Vector3 v1], [param:Vector3 optionalPointOnRay], [param:Vector3 optionalPointOnSegment] )

[page:Vector3 v0] - l'inizio del segmento.
[page:Vector3 v1] - la fine del segmento.
optionalPointOnRay - (opzionale) se viene fornito, riceve il punto su questo [page:Ray raggio] più vicino al segmento.
optionalPointOnSegment - (opzionale) se viene fornito, riceve il punto sul segmento più vicino al [page:Ray raggio].
Ottiene la distanza al quadrato tra questo [page:Ray raggio] e un segmento.

### [method:Float distanceToPlane]( [param:Plane plane] )

[page:Plane plane] - il [page:Plane] per ottenere la distanza.
Ottiene la distanza tra l'[page:.origin origine] e il [page:Plane piano], o `null` se il [page:Ray raggio] non interseca il [page:Plane piano].

### [method:Float distanceToPoint]( [param:Vector3 point] )

[page:Vector3 point] - Il [page:Vector3] su cui calcolare la distanza.
Ottiene la distanza dell'avvicinamento più vicino tra il [page:Ray raggio] e il [page:Vector3 punto].

### [method:Boolean equals]( [param:Ray ray] )

[page:Ray ray] - il [page:Ray raggio] su cui confrontare.
Restituisce true se questo e l'altro [page:Ray raggio] hanno [page:.origin origine] e [page:.direction direzione] uguali.

### [method:Vector3 intersectBox]( [param:Box3 box], [param:Vector3 target] )

[page:Box3 box] - il [page:Box3] con cui intersecare.
[page:Vector3 target] — il risultato verrà copiato in questo Vector3.
Interseca questo [page:Ray raggio] con un [page:Box3], restituendo il punto di intersezione o `null` se non ci sono intersezioni.

### [method:Vector3 intersectPlane]( [param:Plane plane], [param:Vector3 target] )

[page:Plane plane] - il [page:Plane] con cui intersecare.
[page:Vector3 target] — il risultato verrà copiato in questo Vector3.
Interseca questo [page:Ray raggio] con un [page:Plane], restituendo il punto di intersezione o `null` se non ci sono intersezioni.

### [method:Vector3 intersectSphere]( [param:Sphere sphere], [param:Vector3 target] )

[page:Sphere sphere] - la [page:Sphere] con cui intersecare.
[page:Vector3 target] — il risultato verrà copiato in questo Vector3.
Interseca questo [page:Ray raggio] con una [page:Sphere], restituendo il punto di intersezione o `null` se non ci sono intersezioni.

### [method:Vector3 intersectTriangle]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c], [param:Boolean backfaceCulling], [param:Vector3 target] )

[page:Vector3 a], [page:Vector3 b], [page:Vector3 c] - I punti [page:Vector3] che compongono il triangolo.
[page:Boolean backfaceCulling] - se utilizzare backface culling o meno.
[page:Vector3 target] — il risultato verrà copiato in questo Vector3.
Interseca questo [page:Ray raggio] con un triangolo, restituendo il punto di intersezione o `null` se non ci sono intersezioni.

### [method:Boolean intersectsBox]( [param:Box3 box] )

[page:Box3 box] - il [page:Box3] con cui intersecare.
Restituisce true se questo [page:Ray raggio] si interseca con il [page:Box3].

### [method:Boolean intersectsPlane]( [param:Plane plane] )

[page:Plane plane] - il [page:Plane] con cui intersecare.
Restituisce true se questo [page:Ray raggio] si interseca con il [page:Plane].

### [method:Boolean intersectsSphere]( [param:Sphere sphere] )

[page:Sphere sphere] - la [page:Sphere] con cui intersecare.
Restituisce true se questo [page:Ray raggio] si interseca con la [page:Sphere].

### [method:this lookAt]( [param:Vector3 v] )

[page:Vector3 v] - Il [page:Vector3] da guardare.
Regola la direzione del raggio in modo che punti al vettore nelle coordinate world.

### [method:this recast]( [param:Float t] )

[page:Float t] - La distanza lungo il [page:Ray raggio] da interpolare.
Sposta l'origine di questo [page:Ray raggio] lungo le sue direzione per la distanza data.

### [method:this set]( [param:Vector3 origin], [param:Vector3 direction] )

[page:Vector3 origin] - l'[page:.origin origine] del [page:Ray raggio].
[page:Vector3 direction] - la [page:.direction direzione] del [page:Ray raggio]. Deve essere normalizzato (con [page:Vector3.normalize]) affinchè i metodi funzionino correttamente.
Imposta le proprietà [page:.origin origine] e [page:.direction direzione] di questo raggio copiando i valori dagli oggetti dati.

## Source

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