You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							319 lines
						
					
					
						
							13 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							319 lines
						
					
					
						
							13 KiB
						
					
					
				
								<!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>
							 | 
						|
								      Una rappresentazione della geometria di mesh, di linee o di punti. Include posizioni di vertici, indici della faccia,
							 | 
						|
								      normali, colori, coordinate UV, e attributi personalizzati all'interno dei buffer, riducendo il costo del passaggio
							 | 
						|
								      di tutti questi dati alla GPU.
							 | 
						|
										</p>
							 | 
						|
										<p>
							 | 
						|
								      Per leggere e modificare dati negli attributi della BufferGeometry, vedi la documentazione di [page:BufferAttribute].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h2>Codice di Esempio</h2>
							 | 
						|
										<code>
							 | 
						|
										const geometry = new THREE.BufferGeometry();
							 | 
						|
										// crea una semplice figura quadrata. Duplichiamo i vertici top left e bottom right
							 | 
						|
										// perché ogni vertice ha bisogno di apparire una volta per triangolo.
							 | 
						|
										const vertices = new Float32Array( [
							 | 
						|
											-1.0, -1.0,  1.0,
							 | 
						|
											 1.0, -1.0,  1.0,
							 | 
						|
											 1.0,  1.0,  1.0,
							 | 
						|
								
							 | 
						|
											 1.0,  1.0,  1.0,
							 | 
						|
											-1.0,  1.0,  1.0,
							 | 
						|
											-1.0, -1.0,  1.0
							 | 
						|
										] );
							 | 
						|
								
							 | 
						|
										// itemSize = 3 perché ci osno 3 valori (componenti) per vertice
							 | 
						|
										geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
							 | 
						|
										const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
							 | 
						|
										const mesh = new THREE.Mesh( geometry, material );
							 | 
						|
										</code>
							 | 
						|
								
							 | 
						|
										<h2>Esempi</h2>
							 | 
						|
										<p>
							 | 
						|
											[example:webgl_buffergeometry Mesh with non-indexed faces]<br />
							 | 
						|
											[example:webgl_buffergeometry_indexed Mesh with indexed faces]<br />
							 | 
						|
											[example:webgl_buffergeometry_lines Lines]<br />
							 | 
						|
											[example:webgl_buffergeometry_lines_indexed Indexed Lines]<br />
							 | 
						|
											[example:webgl_buffergeometry_custom_attributes_particles Particles]<br />
							 | 
						|
											[example:webgl_buffergeometry_rawshader Raw Shaders]
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h2>Costruttore</h2>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h3>[name]()</h3>
							 | 
						|
										<div>
							 | 
						|
								      Crea un nuovo [name]. Inoltre imposta alcune proprietà al valore predefinito.
							 | 
						|
										</div>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h2>Proprietà</h2>
							 | 
						|
								
							 | 
						|
										<h3>[property:Object attributes]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Questo hashmap ha come id il nome dell'attributo da impostare e come valore il [page:BufferAttribute buffer] su cui impostarlo.
							 | 
						|
								      Piuttosto che accedere a questa proprietà direttamente, usa [page:.setAttribute] e [page:.getAttribute] per accedere agli attributi
							 | 
						|
								      della geometria.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Box3 boundingBox]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Bounding box per la bufferGeometry, che può essere calcolato con 
							 | 
						|
								      [page:.computeBoundingBox](). Il valore predefinito è `null`.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Sphere boundingSphere]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Bounding sphere per la bufferGeometry, che può essere calcolato con 
							 | 
						|
								      [page:.computeBoundingSphere](). Il valore predefinito è `null`.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Object drawRange]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Determina la parte della geometria da visualizzare. Non dovrebbe essere impostato
							 | 
						|
								      direttamente, usa invece [page:.setDrawRange]. Il valore predefinito è
							 | 
						|
											<code>
							 | 
						|
												{ start: 0, count: Infinity }
							 | 
						|
											</code>
							 | 
						|
								      Per la BufferGeometry non indicizzata, count è il numero di vertici da visualizzare.
							 | 
						|
								      Per la BufferGeometry indicizzata, count è il numero di indici da visualizzare.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Array groups]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Divide la geometria in gruppi, ognuno dei quali verrà renderizzato in una chimata draw WebGL separata.
							 | 
						|
								      Ci permette che un array di materiali venga usato con una geometria.<br /><br />
							 | 
						|
								
							 | 
						|
								      Ogni gruppo è un oggetto della forma:
							 | 
						|
								      <code>{ start: Integer, count: Integer, materialIndex: Integer }</code>
							 | 
						|
								      dove start specifica il primo elemento nella chiamata draw - il primo vertice per la geometria non
							 | 
						|
								      indicizzata, altrimenti il primo indice del triangolo. Count specifica quanti vertici (o indici) sono
							 | 
						|
								      inclusi, e materialIndex specifica l'indice dell'array del materiale da utilizzare.<br /><br />
							 | 
						|
								
							 | 
						|
								      Usa [page:.addGroup] per aggiungere gruppi, piuttosto che modificare questo array direttamente.<br /><br />
							 | 
						|
								
							 | 
						|
								      Ogni vertice e indice deve appartenere esattamente ad un gruppo - i gruppi non devono condividere vertici o
							 | 
						|
								      indici, e non devono lasciare vertici o indici inutilizzati.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<!-- Note: groups used to be called drawCalls
							 | 
						|
								
							 | 
						|
										<h3>[property:Array drawcalls]</h3>
							 | 
						|
										<p>
							 | 
						|
										For geometries that use indexed triangles, this Array can be used to split the object
							 | 
						|
										into multiple WebGL draw calls. Each draw call will draw some subset of the vertices
							 | 
						|
										in this geometry using the configured [page:Material shader]. This may be necessary if,
							 | 
						|
										for instance, you have more than 65535 vertices in your object.
							 | 
						|
										</p> -->
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										<h3>[property:Integer id]</h3>
							 | 
						|
										<p>Numero univoco per questa istanza della bufferGeometry.</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:BufferAttribute index]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Consente di riutilizzare i vertici su più triangoli; viene chiamato "indexed triangles".
							 | 
						|
								      Ogni triangolo è associato con gli indici di tre vertici. Questo attributo quindi memorizza 
							 | 
						|
								      l'indice di ogni vertice per ogni faccia del triangolo.
							 | 
						|
								
							 | 
						|
								      Se questo attributo non è impostato, il [page:WebGLRenderer renderer] assume che ogni 3 posizioni contigue
							 | 
						|
								      rappresentano un singolo triangolo.
							 | 
						|
								
							 | 
						|
								      Il valore predefinito è `null`.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Boolean isBufferGeometry]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Flag di sola lettura per verificare se un dato oggetto è di tipo [name].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Object morphAttributes]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Hashmap di BufferAttribute contenente i dettagli dei target morph delle geometrie.<br />
							 | 
						|
								      Nota: Una volta che la geometria è stata renderizzata, i dati dell'attributo morph non possono essere modificati.
							 | 
						|
								      Dovrai chiamare [page:.dispose](), e creare una nuova istanza della [name].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Boolean morphTargetsRelative]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Usato per controllare il comportamento del target morph: quando è impostato a true, i dati del target morph vengono
							 | 
						|
								      trattati come offset relativi, anziché come posizioni/normali assoluti. 
							 | 
						|
								      
							 | 
						|
								      L'impostazione predefinita è `false`.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:String name]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Nome opzionale per questa istanza di bufferGeometry. Il valore predefinito è una stringa vuota.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:Object userData]</h3>
							 | 
						|
										<p>
							 | 
						|
								      Un oggetto che può essere utilizzato per memorizzare i dati relativi alla BufferGeometry.
							 | 
						|
								      Non dovrebbe contenere i riferimenti alle funzioni poiché queste non verranno clonate. 
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[property:String uuid]</h3>
							 | 
						|
										<p>
							 | 
						|
										[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] di questa istanza.
							 | 
						|
								    Viene assegnato automaticamente e non deve essere modificato.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h2>Metodi</h2>
							 | 
						|
								
							 | 
						|
										<p>[page:EventDispatcher EventDispatcher] i metodi sono disponibili in questa classe.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined addGroup]( [param:Integer start], [param:Integer count], [param:Integer materialIndex] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Aggiunge un gruppo a questa geometria; vedi la proprietà [page:BufferGeometry.groups groups]
							 | 
						|
								      per maggiori dettagli.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
							 | 
						|
										<p>Applica la matrice di trasformazione alla geometria.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3>
							 | 
						|
										<p>Applica la rotazione rappresentata dal quaternione alla geometria.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this center] ()</h3>
							 | 
						|
										<p>Centra la geometria basandosi sul bounding box.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined clearGroups]( )</h3>
							 | 
						|
										<p>Cancella tutti i gruppi.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:BufferGeometry clone]()</h3>
							 | 
						|
										<p>Crea un clone di questa BufferGeometry.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined computeBoundingBox]()</h3>
							 | 
						|
										<p>
							 | 
						|
								      Calcola il bounding box della geometria, aggiornando l'attributo [page:.boundingBox]. <br />
							 | 
						|
								      I Bounding box non sono calcolati per impostazione predefinita. Devono essere calcolati esplicitamente,
							 | 
						|
								      altrimenti sono `null`.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined computeBoundingSphere]()</h3>
							 | 
						|
										<p>
							 | 
						|
								      Calcola il bounding sphere della geometria, aggiornando l'attributo [page:.boundingSphere]. <br />
							 | 
						|
								      I Bounding sphere non sono calcolati per impostazione predefinita. Devono essere calcolati esplicitamente,
							 | 
						|
								      altrimenti sono `null`.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined computeTangents]()</h3>
							 | 
						|
										<p>
							 | 
						|
								      Calcola e aggiunge un attributo tangent a questa geometria.<br />
							 | 
						|
								      Il calcolo è supportato solo per geometrie indicizzate e se la posizione, la normale e gli attributi uv sono definiti.
							 | 
						|
								      Quando si usa una mappa normale dello spazio tangente, meglio usare l'algoritmo MikkTSpace fornito da [page:BufferGeometryUtils.computeMikkTSpaceTangents].
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined computeVertexNormals]()</h3>
							 | 
						|
										<p>Calcola la normale dei vertici calcolando la media delle normali delle facce.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this copy]( [param:BufferGeometry bufferGeometry] )</h3>
							 | 
						|
										<p>Copia un'altra BufferGeometry in questa BufferGeometry.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
							 | 
						|
										<p>Cancella l'[page:BufferAttribute attributo] con il nome specificato.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined dispose]()</h3>
							 | 
						|
										<p>
							 | 
						|
								      Elimina l'oggetto dalla memoria.<br />
							 | 
						|
								      È necessario chiamarlo quando si desidera rimuovere BufferGeometry mentre l'applicazione è in esecuzione.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:BufferAttribute getAttribute]( [param:String name] )</h3>
							 | 
						|
										<p>Restituisce l'[page:BufferAttribute attributo] con il nome specificato.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:BufferAttribute getIndex] ()</h3>
							 | 
						|
										<p>Restituisce il buffer di [page:.index].</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
							 | 
						|
										<p>Restituisce `true` se l'attributo con il nome specificato esiste.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this lookAt] ( [param:Vector3 vector] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      vector - Un vettore world da guardare.<br /><br />
							 | 
						|
								
							 | 
						|
								      Ruota la geometria in modo che sia rivolta verso un punto dello spazio. In genere, questa operazione viene 
							 | 
						|
								      eseguita una sola volta e non durante un ciclo. 
							 | 
						|
								      Usare [page:Object3D.lookAt] per l'uso tipico della mesh in tempo reale.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined normalizeNormals]()</h3>
							 | 
						|
										<p>
							 | 
						|
								      Ogni vettore normale, in una geometria, deve avere magnitudine 1.
							 | 
						|
								      Ciò correggerà l'illuminazione sulle superfici geometriche.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this rotateX] ( [param:Float radians] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Ruota la geometria attorno all'asse X. In genere, questa operazione viene eseguita una sola volta e non durante un ciclo. 
							 | 
						|
								      Usare [page:Object3D.rotation] per la tipica rotazione della mesh in tempo reale.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this rotateY] ( [param:Float radians] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Ruota la geometria attorno all'asse Y. In genere, questa operazione viene eseguita una sola volta e non durante un ciclo.
							 | 
						|
								      Usare [page:Object3D.rotation] per la tipica rotazione della mesh in tempo reale.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this rotateZ] ( [param:Float radians] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Ruota la geometria attorno all'asse Z. In genere, questa operazione viene eseguita una sola volta e non durante un ciclo.
							 | 
						|
								      Usare [page:Object3D.rotation] per la tipica rotazione della mesh in tempo reale.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Scala i dati della geometria. In genere, questa operazione viene eseguita una sola volta e non durante un ciclo.
							 | 
						|
								      Usare [page:Object3D.scale] per il tipico ridimensionamento della mesh in tempo reale.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Imposta un attributo per questa geometria. Utilizzare questo metodo piuttosto che la proprietà attributes,
							 | 
						|
								      perché viene mantenuta una hashmap interna di .attributes per accelerare l'iterazione sugli attributi. 
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:undefined setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Imposta la proprietà [page:.drawRange]. Per BufferGeometry non indicizzate, count è il numero di vertici da visualizzare.
							 | 
						|
								      Per BufferGeometry indicizzate, count è il numero di indici da visualizzare.
							 | 
						|
								    </p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this setFromPoints] ( [param:Array points] )</h3>
							 | 
						|
										<p>Imposta gli attributi per questa BufferGeometry da un array di punti.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this setIndex] ( [param:BufferAttribute index] )</h3>
							 | 
						|
										<p>Imposta il buffer [page:.index].</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:Object toJSON]()</h3>
							 | 
						|
										<p>Converte la buffer geometry al formato three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene].</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:BufferGeometry toNonIndexed]()</h3>
							 | 
						|
										<p>Restituisce una versione non indicizzata di una BufferGeometry indicizzata.</p>
							 | 
						|
								
							 | 
						|
										<h3>[method:this translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
							 | 
						|
										<p>
							 | 
						|
								      Trasla la geometria. In genere, questa operazione viene eseguita una sola volta e non durante un ciclo.
							 | 
						|
								      Usare [page:Object3D.position] per la tipica traslazione della mesh in tempo reale.
							 | 
						|
										</p>
							 | 
						|
								
							 | 
						|
										<h2>Source</h2>
							 | 
						|
								
							 | 
						|
										<p>
							 | 
						|
											[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
							 | 
						|
										</p>
							 | 
						|
									</body>
							 | 
						|
								</html>
							 | 
						|
								
							 |