# [name]

Rappresenta un bounding box (rettangolo di selezione) allineato all'asse (AABB) nello spazio 3D.

## Codice di Esempio

`const box = new THREE.Box3(); const mesh = new THREE.Mesh( new THREE.SphereGeometry(), new THREE.MeshBasicMaterial() ); // assicurarsi che il bounding box sia calcolato per la sua geometria // questo dovrebbe essere fatto una sola volta (supponendo geometrie statiche) mesh.geometry.computeBoundingBox(); // ... // nel ciclo di animazione, calcola il bounding box corrente con la matrice world box.copy( mesh.geometry.boundingBox ).applyMatrix4( mesh.matrixWorld );`

## Costruttore

### [name]( [param:Vector3 min], [param:Vector3 max] )

[page:Vector3 min] - (opzionale) [page:Vector3] che rappresenta il limite inferiore (x, y, z) del box. Il valore predefinito è ( + Infinito, + Infinito, + Infinito ).
[page:Vector3 max] - (opzionale) [page:Vector3] che rappresenta il limite superiore (x, y, z) del box. Il valore predefinito è ( - Infinito, - Infinito, - Infinito ).
Crea un [name] delimitato da min e max.

## Proprietà

### [property:Boolean isBox3]

Flag di sola lettura per verificare se l'oggetto dato è di tipo [name].

### [property:Vector3 min]

[page:Vector3] rappresenta il limite inferiore (x, y, z) del box.
Il valore predefinito è ( + Infinito, + Infinito, + Infinito ).

### [property:Vector3 max]

[page:Vector3] che rappresenta il limite superiore (x, y, z) del box.
Il valore predefinito è ( - Infinito, - Infinito, - Infinito ).

## Metodi

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

[page:Matrix4 matrix] - La [page:Matrix4] da applicare
Trasforma questo Box3 con la matrice fornita.

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

[page:Vector3 point] - [page:Vector3] da bloccare.
[page:Vector3 target] - il risultato sarà copiato in questo Vector3.
[link:https://en.wikipedia.org/wiki/Clamping_(graphics) Blocca] il [page:Vector3 punto] entro i limiti di questo box.

### [method:Box3 clone]()

Restituisce un nuovo [page:Box3] con lo stesso [page:.min min] e [page:.max max] di questo.

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

[page:Box3 box] - [page:Box3 Box3] per testare l'inclusione.
Restituisce true se questo box include la totalità del [page:Box3 box]. Se questo e il [page:Box3 box] sono identici, questa fuonzione tornerà comunque true.

### [method:Boolean containsPoint]( [param:Vector3 point] )

[page:Vector3 point] - [page:Vector3] per verificare l'inclusione.
Restituisce true se il [page:Vector3 punto] specificato si trova all'interno o sui limiti di questo box.

### [method:this copy]( [param:Box3 box] )

[page:Box3 box] - [page:Box3] da copiare.
Copia il [page:.min min] e il [page:.max max] da [page:Box3 box] a questo box.

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

[page:Vector3 point] - [page:Vector3] per misurare la distanza.
Restituisce la distanza da qualsiasi arco di questo box al punto specificato. Se il [page:Vector3 punto] si trova all'interno di questo box, la distanza sarà 0.

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

[page:Box3 box] - Box da confrontare con questo.
Restituisce true se questo box e il [page:Box3 box] condividono gli stessi limiti inferiore e superiore.

### [method:this expandByObject]( [param:Object3D object], [param:Boolean precise] )

[page:Object3D object] - [page:Object3D] per espandere il box.
precise - (opzionale) espande il bounding box il meno possibile a scapito di ulteriori calcoli. L'impostazione predefinita è `false`.
Espande i limiti di questo box per includere l'[page:Object3D oggetto] e i suoi figli, tenendo conto delle trasformazioni del mondo dell'oggetto e dei figli. La funzione può risultare in un box più grande del necessario (a meno che il parametro non sia impostato su true).

### [method:this expandByPoint]( [param:Vector3 point] )

[page:Vector3 point] - [page:Vector3] che dovrebbe essere incluso nel box.
Espande i limiti di questo box in modo da includere il [page:Vector3 punto].

### [method:this expandByScalar]( [param:Float scalar] )

[page:Float scalar] - Distanza di cui espandere il box.
Espande ogni dimensione del box per lo [page:Float scalare]. Se negativo, le dimensioni del box saranno contratte.

### [method:this expandByVector]( [param:Vector3 vector] )

[page:Vector3 vector] - [page:Vector3] per il quale espandere il box.
Espande questo box in modo equilatero per [page:Vector3 vettore]. La larghezza di questo box sarà estesa dal componente x del [page:Vector3 vettore] in entrambe le direzioni. L'altezza di questo box sarà estesa dal componente y del [page:Vector3 vettore] in entrambe le direzioni. La profondità di questo box sarà estesa dal componente z del [page:Vector3 vettore] in entrambe le direzioni.

### [method:Sphere getBoundingSphere]( [param:Sphere target] )

[page:Sphere target] - il risultato sarà copiato in questa sfera.
Ottiene una [page:Sphere Sfera] che delimita il box.

### [method:Vector3 getCenter]( [param:Vector3 target] )

[page:Vector3 target] - il risultato sarà copiato in questo Vector3.
Restituisce il punto centrale del box come un [page:Vector3].

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

[page:Vector3 point] - [page:Vector3].
[page:Vector3 target] - il risultato sarà copiato in questo Vector3.
Restituisce un punto come proporzione della larghezza, dell'altezza e della profondità di questo box.

### [method:Vector3 getSize]( [param:Vector3 target] )

[page:Vector3 target] - il risultato sarà copiato in questo Vector3.
Restituisce la larghezza, l'altezza e la profondità di questo box.

### [method:this intersect]( [param:Box3 box] )

[page:Box3 box] - Box con cui intersecare.
Restituisce l'intersezione di questo box e [page:Box3 box], impostando il limite superiore di questo box al minore dei limiti superiori dei due box e il limite inferiore di questo box al maggiore dei limiti inferiori dei due box. Se non ci sono sovrapposizioni, rende il box vuoto.

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

[page:Box3 box] - Box per il controllo dell'intersezione.
Determina se questo box interseca [page:Box3 box] oppure no.

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

[page:Plane plane] - [page:Plane] per il controllo dell'intersezione.
Determina se questo box interseca il [page:Plane plane] oppure no.

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

[page:Sphere sphere] - [page:Sphere] per il controllo dell'intersezione.
Determina se questo box interseca la [page:Sphere sphere] oppure no.

### [method:Boolean intersectsTriangle]( [param:Triangle triangle] )

[page:Triangle triangle] - [page:Triangle] per il controllo dell'intersezione.
Determina se questo box interseca il [page:Triangle triangle] oppure no.

### [method:Boolean isEmpty]()

Restituisce true se questo box include zero punti entro i suoi limiti.
Si noti che un box con i limiti superiore e inferiore uguali include ancora un punto, quello condiviso da entrambi i limiti.

### [method:this makeEmpty]()

Rende questo box vuoto.

### [method:this set]( [param:Vector3 min], [param:Vector3 max] )

[page:Vector3 min] - [page:Vector3] rappresenta il limite inferiore (x, y, z) del box.
[page:Vector3 max] - [page:Vector3] rappresenta il limite superiore (x, y, z) del box.
Imposta i limiti inferiore e superiore (x, y, z) di questo box.
Si noti che questo metodo copia solo i valori dagli oggetti dati.

### [method:this setFromArray]( [param:Array array] )

array -- Un array di dati di posizione che il box risultante avvolgerà.
Imposta i limiti inferiore e superiore di questo box per includere tutti i dati nell'`array`.

### [method:this setFromBufferAttribute]( [param:BufferAttribute attribute] )

[page:BufferAttribute attribute] - Un attributo buffer di dati di posizione che il box risultante avvolgerà.
Imposta i limiti inferiore e superiore di questo box per includere tutti i dati nell'[page:BufferAttribute attribute].

### [method:this setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )

[page:Vector3 center] - Posizione centrale desiderata del box.
[page:Vector3 size] - Dimensioni x, y e z desiderati per il box.
Centra questo box nel [page:Vector3 centro] e imposta la larghezza e l'altezza di questo box ai valori specificati in [page:Vector3 size].

### [method:this setFromObject]( [param:Object3D object], [param:Boolean precise] )

[page:Object3D object] - [page:Object3D] di cui calcolare il bounding box.
precise - (opzionale) calcola il più piccolo bounding box all'asse world a scapito di più calcoli. L'impostazione predefinita è `false`.
Calcola il bounding box allineato all'asse world di un [page:Object3D] (inclusi i suoi figli), tenendo conto delle trasformazioni del mondo dell'oggetto e dei bambini. La funzione può comportare un box più grande del necessario.

### [method:this setFromPoints]( [param:Array points] )

[page:Array points] - Array di [page:Vector3 Vector3] che conterrà il box risultante.
Imposta i limiti inferiore e superiore di questo box per includere tutti i punti in [page:Array points].

### [method:this translate]( [param:Vector3 offset] )

[page:Vector3 offset] - Direzione e distanza dell'offset.
Aggiunge l'[page:Vector3 offset] ad entrambi i limiti inferiore e superiore di questo box, spostando efficacemente le unità di page:Vector3 offset] di questo box nello spazio 3D.

### [method:this union]( [param:Box3 box] )

[page:Box3 box] - Box che verrà unito con questo box.
Calcola l'unione di questo box con [page:Box3 box], impostando il limite superiore di questo box al maggiore dei limiti superiori di entrambi i box e il limite inferiore di questo box al minore dei limiti inferiori di entrambi i box.

## Source

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