<!DOCTYPE html>
<html lang="it">
	<head>
		<meta charset="utf-8" />
		<base href="../../../" />
		<script src="page.js"></script>
		<link type="text/css" rel="stylesheet" href="page.css" />
	</head>
	<body>
		<h1>[name]</h1>

		<p class="desc">
			Rappresenta un bounding box (rettangolo di selezione) allineato all'asse (AABB) nello spazio 2D.
		</p>


		<h2>Costruttore</h2>


		<h3>[name]( [param:Vector2 min], [param:Vector2 max] )</h3>
		<p>
		[page:Vector2 min] - (opzionale) [page:Vector2] che rappresenta il limite inferiore (x, y) del box.
		Il valore predefinito è ( + Infinito, + Infinito ).<br>

		[page:Vector2 max] - (opzionale) [page:Vector2] che rappresenta il limite superiore (x, y) del box.
		Il valore predefinito è ( - Infinito, - Infinito ).<br /><br />

		Crea un [name] delimitato da min e max.
		</p>

		<h2>Proprietà</h2>

		<h3>[property:Vector2 min]</h3>
		<p>
			[page:Vector2] che rappresenta il limite inferiore (x, y) del box.<br />
			Il valore predefinito è ( + Infinito, + Infinito ).
		</p>

		<h3>[property:Vector2 max]</h3>
		<p>
			[page:Vector2] che rappresenta il limite superiore (x, y) del box.<br />
			Il valore predefinito è ( - Infinito, - Infinito ).
		</p>

		<h2>Metodi</h2>

		<h3>[method:Vector2 clampPoint]( [param:Vector2 point], [param:Vector2 target] )</h3>
		<p>
		[page:Vector2 point] - [page:Vector2] da bloccare. <br>
		[page:Vector2 target] - il risultato sarà copiato in questo Vector2.<br /><br />

		[link:https://en.wikipedia.org/wiki/Clamping_(graphics) Blocca] il [page:Vector2 punto] entro i limiti di questo box.<br />
		</p>

		<h3>[method:Box2 clone]()</h3>
		<p>Restituisce un nuovo [page:Box2] con lo stesso [page:.min min] e [page:.max max] di questo.</p>

		<h3>[method:Boolean containsBox]( [param:Box2 box] )</h3>
		<p>
		[page:Box2 box] - [page:Box2 Box2] per testare l'inclusione.<br /><br />

		Restituisce true se questo box include la totalità del [page:Box2 box]. Se questo e il [page:Box2 box] sono identici, 
		questa funzione tornerà comunque true.
		</p>

		<h3>[method:Boolean containsPoint]( [param:Vector2 point] )</h3>
		<p>
		[page:Vector2 point] - [page:Vector2] per verificare l'inclusione.<br /><br />

		Restituisce true se il [page:Vector2 punto] specificato si trova all'interno o sui limiti di questo box.
		</p>

		<h3>[method:this copy]( [param:Box2 box] )</h3>
		<p>
			Copia il [page:.min min] e il [page:.max max] da [page:Box2 box] a questo box.
		</p>

		<h3>[method:Float distanceToPoint]( [param:Vector2 point] )</h3>
		<p>
		[page:Vector2 point] - [page:Vector2] per misurare la distanza.<br /><br />

		Restituisce la distanza da qualsiasi arco di questo box al punto specificato.
		Se il [page:Vector2 punto] si trova all'interno di questo box, la distanza sarà 0.
		</p>

		<h3>[method:Boolean equals]( [param:Box2 box] )</h3>
		<p>
		[page:Box2 box] - Box da confrontare con questo.<br /><br />

		Restituisce true se questo box e il [page:Box2 box] condividono gli stessi limiti inferiori e superiori.
		</p>

		<h3>[method:this expandByPoint]( [param:Vector2 point] )</h3>
		<p>
		[page:Vector2 point] - [page:Vector2] che dovrebbe essere incluso nel box.<br /><br />

		Espande i limiti di questo box in modo da includere il [page:Vector2 punto].
		</p>

		<h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
		<p>
		[page:Float scalar] - Distanza di cui espandere il box.<br /><br />

		Espande ogni dimensione del box per lo [page:Float scalare]. Se negativo, le dimensioni del box saranno contratte.
		</p>

		<h3>[method:this expandByVector]( [param:Vector2 vector] )</h3>
		<p>
		[page:Vector2 vector] - [page:Vector2] per il quale espandere il box.<br /><br />

		Espande questo box in modo equilatero per [page:Vector2 vettore]. La larghezza di questo box sarà estesa
		dal componente x del [page:Vector2 vettore] in entrambe le direzioni. L'altezza di questo box 
		sarà estesa dal componente y del [page:Vector2 vettore] in entrambe le direzioni.
		</p>

		<h3>[method:Vector2 getCenter]( [param:Vector2 target] )</h3>
		<p>
		[page:Vector2 target] — il risultato sarà copiato in questo Vector2.<br /><br />

		Restituisce il punto centrale del box come [page:Vector2]. 
		</p>

		<h3>[method:Vector2 getParameter]( [param:Vector2 point], [param:Vector2 target] ) </h3>
		<p>
		[page:Vector2 point] - [page:Vector2].<br/>
		[page:Vector2 target] - il risultato sarà copiato in questo Vector2.<br /><br />

		Restituisce un punto come proporzione della larghezza e dell'altezza di questo box.
		</p>

		<h3>[method:Vector2 getSize]( [param:Vector2 target] )</h3>
		<p>
		[page:Vector2 target] - il risultato sarà copiato in questo Vector2.<br /><br />

		Restituisce la larghezza e l'altezza di questo box.
		</p>

		<h3>[method:this intersect]( [param:Box2 box] )</h3>
		<p>
		[page:Box2 box] - Box con cui intersecare.<br /><br />

		Restituisce l'intersezione di questo box e [page:Box2 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.
		</p>

		<h3>[method:Boolean intersectsBox]( [param:Box2 box] )</h3>
		<p>
		[page:Box2 box] - Box per il controllo dell'intersezione.<br /><br />

		Determina se questo box interseca [page:Box2 box] oppure no.
		</p>

		<h3>[method:Boolean isEmpty]()</h3>
		<p>
			Restituisce true se questo box include zero punti entro i suoi limiti.<br>
			Si noti che un box con i limiti superiore e inferiore uguali include ancora un punto,
			quello condiviso da entrambi i limiti.
		</p>

		<h3>[method:this makeEmpty]()</h3>
		<p>Rende questo box vuoto.</p>


		<h3>[method:this set]( [param:Vector2 min], [param:Vector2 max] )</h3>
		<p>
			[page:Vector2 min] - (obbligatorio) [page:Vector2] che rappresenta il limite inferiore (x, y) del box. <br>
			[page:Vector2 max]  - (obbligatorio) [page:Vector2] che rappresenta il limite superiore (x, y) del box. <br /><br />

			Imposta i limiti inferiore e superiore (x, y) di questo box.<br>
			Si noti che questo metodo copia solo i valori dagli oggetti dati.
		</p>

		<h3>[method:this setFromCenterAndSize]( [param:Vector2 center], [param:Vector2 size] )</h3>
		<p>
		[page:Vector2 center] - Posizione centrale desiderata del box ([page:Vector2]). <br>
		[page:Vector2 size] - Dimensioni x e y desiderati per il box ([page:Vector2]).<br /><br />

		Centra questo box nel [page:Vector2 centro] e imposta la larghezza e l'altezza di questo box ai valori 
		specificati in [page:Vector2 size].
		</p>

		<h3>[method:this setFromPoints]( [param:Array points] )</h3>
		<p>
		[page:Array points] - Array di [page:Vector2 Vector2] che conterrà il box risultante.<br /><br />

		Imposta i limiti inferiore e superiore di questo box per includere tutti i punti in [page:Array points].
		</p>

		<h3>[method:this translate]( [param:Vector2 offset] )</h3>
		<p>
		[page:Vector2 offset] - Direzione e distanza dell'offset.<br /><br />

		Aggiunge l'[page:Vector2 offset] ad entrambi i limiti inferiore e superiore di questo box, spostando efficacemente
		le unità di [page:Vector2 offset] di questo box nello spazio 2D.
		</p>

		<h3>[method:this union]( [param:Box2 box] )</h3>
		<p>
		[page:Box2 box] - Box che verrà unito con questo box.<br /><br />

		Unisce questo box con [page:Box2 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.
		</p>

		<h2>Source</h2>

		<p>
			[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
		</p>
	</body>
</html>