Questa classe memorizza i dati per un attributo (come le posizioni dei vertici, gli indici delle facce, le normali, i colori, le coordinate UV e alcuni attributi personalizzati) associato ad una [page:BufferGeometry], che consente un passaggio più efficiente dei dati alla GPU. Consulta questa pagina per i dettagli ed un esempo di utilizzo. Quando si lavora con dati di tipo vettoriale, i metodi helper .fromBufferAttribute( attribute, index ) sulle classi [page:Vector2.fromBufferAttribute Vector2], [page:Vector3.fromBufferAttribute Vector3], [page:Vector4.fromBufferAttribute Vector4] e [page:Color.fromBufferAttribute Color] possono essere utili.
[page:TypedArray array] -- Deve essere un [link:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/TypedArray TypedArray].
Utilizzato per istanziare il buffer.
Questo array dovrebbe avere gli elementi itemSize * numVertices
dove numVertices è il numero di vertici della [page:BufferGeometry BufferGeometry] associata.
[page:Integer itemSize] -- il numero di valori dell'array che deve essere associato ad un particolare vertice.
Per esempio, se questo atttibuto memorizza un vettore a 3 componenti (come posizione, normale o colore),
itemSize dovrebbe essere 3.
[page:Boolean normalized] -- (opzionale) Si applica solo ai dati interi. Indica il modo in cui i dati sottostanti
del buffer si adattano ai valori del codice GLSL. Ad esempio, se l'[page:TypedArray array] è un'istanza di UInt16Array,
e [page:Boolean normalized] è a true, i valori `0 - +65535` nei dati dell'array saranno mappati su 0.0f - +1.0f nell'attributo GLSL.
Un Int16Array (con segno) sarà mappato da -32768 - +32767 a -1.0f - +1.0f. Se [page:Boolean normalized] è a false, i valori
verranno convertiti in float non modificati, p.e. 32767 diventa 32767.0f.
L'[page:TypedArray array] contente i dati memorizzati nel buffer.
Memorizza la lunghezza dell'[page:BufferAttribute.array array] divisa per [page:BufferAttribute.itemSize itemSize].
Se il buffer memorizza un vettore a 3 componenti (come una posizione, una normale o un colore),
questo conterà il numero dei vettori memorizzati.
Flag di sola lettura per verificare se un dato oggetto è di tipo [name].
La lunghezza dei vettori che vengono memorizzati nell'[page:BufferAttribute.array array].
Un nome opzionale per questa istanza dell'attributo. Il valore predefinito è una stringa vuota.
Flag che indica che questo attributo è stato modificato e deve essere rinviato alla GPU.
Impostalo a true quando modifichi il valore dell'array.
Impostando questa proprietà a true incrementa, inoltre, la [page:BufferAttribute.version versione].
Indica il modo in cui i dati sottostanti del buffer si adattano ai valori del codice shader GLSL. Vedi il costruttore sopra per i dettagli.
Una funzione di callback che viene eseguita dopo che il Renderer ha trasferito i dati dell'array dell'attributo alla GPU.
Oggetto contenente:
[page:Integer offset]: Il valore predefinito è `0`. Posizione da cui inizia l'aggiornamento.
[page:Integer count]: Il valore predefinito è `-1`, il che significa non utilizzare intervalli di aggiornamento.
Può essere utilizzato solo per aggiornare alcuni componenti dei vettori memorizzati (per esempio, solo
il componente relativo al colore).
Definisce il modello di utilizzo previsto per l'archivio dati a fini di ottimizzazione. Corrisponde al paramentro `usage`
di [link:https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData WebGLRenderingContext.bufferData]().
Il valore predefinito è [page:BufferAttributeUsage StaticDrawUsage]. Vedi le [page:BufferAttributeUsage costanti] di utilizzo
per tutti i valori possibili.
Nota: Dopo l'utilizzo iniziale di un buffer, il suo utilizzo non può essere modificato. Invece, istanziane uno nuovo e imposta
l'utilizzo desiderato prima del rendering successivo.
Un numero di versione, incrementato ogni volta che la proprietà [page:BufferAttribute.needsUpdate needsUpdate] viene impostata a true.
Applica la matrice [page:Matrix3 m] ad ogni elemento Vector3 di questo BufferAttribute.
Applica la matrice [page:Matrix4 m] ad ogni elemento Vector3 di questo BufferAttribute.
Applica la matrice normale [page:Matrix3 m] ad ogni elemento Vector3 di questo BufferAttribute.
Applica la matrice [page:Matrix4 m] ad ogni elemento Vector3 di questo BufferAttribute, interpretando gli elementi come vettori direzionali.
Restituisce una copia di questo bufferAttribute.
Copia un altro BufferAttribute in questo BufferAttribute.
Copia l'array fornito qui (il quale può essere un normale array o un array tipizzato)
nell'[page:BufferAttribute.array array].
Vedi [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]
per le note sui requisiti se si copia un TypedArray.
Copia un vettore da bufferAttribute[index2] a [page:BufferAttribute.array array][index1].
Restituisce il componente x del vettore in corrispondenza dell'indice specificato.
Restituisce il componente y del vettore in corrispondenza dell'indice specificato.
Restituisce il componente z del vettore in corrispondenza dell'indice specificato.
Restituisce il componente w del vettore in corrispondenza dell'indice specificato.
Imposta il valore della proprietà onUploadCallback.
Nel [example:webgl_buffergeometry WebGL / Buffergeometry] questo metodo viene utilizzato per
liberare memoria dopo che il buffer è stato trasferito alla GPU.
value -- un [page:Array] o [page:TypedArray] dal quale copiare i valori.
offset -- (opzionale) indice dell'[page:BufferAttribute.array array] da cui iniziare la copia.
Chiama [link:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set TypedArray.set]( [page:Array value], [page:Integer offset] )
sull'[page:BufferAttribute.array array].
In particolare, si veda questa pagina per i requisiti sul [page:Array value]
che deve essere un [page:TypedArray].
Imposta [page:BufferAttribute.usage usage] a value. Vedi le [page:BufferAttributeUsage costanti] di utilizzo per tutti i possibili valori di input.
Nota: Dopo l'utilizzo iniziale di un buffer, il suo utilizzo non può cambiare. Invece, istanziane uno nuovo e
imposta l'utilizzo desiderato prima del rendering successivo.
Imposta il componente x del vettore in corrispondenza dell'indice specificato.
Imposta il componente y del vettore in corrispondenza dell'indice specificato.
Imposta il componente z del vettore in corrispondenza dell'indice specificato.
Imposta il componente w del vettore in corrispondenza dell'indice specificato.
Imposta i componenti x e y del vettore in corrispondenza dell'indice specificato.
Imposta i componenti x, y e z del vettore in corrispondenza dell'indice specificato.
Imposta i componenti x, y, z e w del vettore in corrispondenza dell'indice specificato.
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]