<!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"> Questa è la classe base di molti oggetti in three.js e fornisce un insieme di proprietà e metodi per manipolare gli oggetti 3D nello spazio.<br /><br /> Si noti che questa classe può essere utilizzata per raggruppare gli oggetti tramite il metodo [page:.add]( object ) il quale aggiunge l'oggetto come figlio, tuttavia è meglio usare [page:Group] per questo. </p> <h2>Costruttore</h2> <h3>[name]()</h3> <p> Il cotruttore non prende argomenti. </p> <h2>Proprietà</h2> <h3>[property:AnimationClip animations]</h3> <p>Array con clip di animazione dell'oggetto.</p> <h3>[property:Boolean castShadow]</h3> <p>Se l'oggetto viene renderizzato nella mappa delle ombre. Il valore predefinito è `false`.</p> <h3>[property:Array children]</h3> <p>Array con i children dell'oggetto. Vedi [page:Group] per informazioni su come raggrupare manualmente gli oggetti.</p> <h3>[property:Material customDepthMaterial]</h3> <p> Materiale depth personalizzato da utilizzare durante il rendering della mappa di depth. Può essere utilizzato solo nel contesto delle mesh. Quando si proietta un'ombra con [page:DirectionalLight] o [page:SpotLight], se si modificano le posizioni dei vertici nello shader dei vertici è necessario specificare un customDepthMaterial per le shadow corrette. Il valore predefinito è `undefined`. </p> <h3>[property:Material customDistanceMaterial]</h3> <p> Lo stesso di [page:.customDepthMaterial customDepthMaterial], ma viene utilizzato con [page:PointLight]. Il valore predefinito è `undefined`. </p> <h3>[property:Boolean frustumCulled]</h3> <p> Quando questo è impostato, controlla ogni fotogramma, se l'oggetto è nel frustrum della telecamera prima renderizzare l'oggetto. Se è impostato a `false` l'oggetto viene renderizzato ad ogni fotogramma anche se non si trova nel frustrum della telecamera. Il valore predefinito è `true`. </p> <h3>[property:Integer id]</h3> <p>sola lettura – Numero univoco per questa istanza.</p> <h3>[property:Boolean isObject3D]</h3> <p> Flag di sola lettura per controllare se un dato oggetto è di tipo [name]. </p> <h3>[property:Layers layers]</h3> <p> Il layer di appartenenza dell'oggetto. L'oggetto è visibile solo se ha al più un layer in comune con la [page:Camera telecamera] utilizzata. Questa proprietà può anche essere utilizata per filtrare gli oggetti non voluti nell'intersezione di test del reycasting quando si usa il [page:Raycaster]. </p> <h3>[property:Matrix4 matrix]</h3> <p>La matrice di trasformazione locale.</p> <h3>[property:Boolean matrixAutoUpdate]</h3> <p> Quando viene settato calcola la matrice di posizione, (rotazione o quaternione) e ridimensiona ogni fotogramma ed inoltre ricalcola la proprietà matrixWorld. L'impostazione predefinita è [page:Object3D.DEFAULT_MATRIX_AUTO_UPDATE] (true). </p> <h3>[property:Matrix4 matrixWorld]</h3> <p> La trasformazione globale dell'oggetto. Se l'Object3D non ha un genitore, è identico al [page:.matrix] della trasformazione locale. </p> <h3>[property:Boolean matrixWorldAutoUpdate]</h3> <p> Se impostato, il renderer controlla ogni frame se l'oggetto e i suo figli necessitano di aggiornare la matrice. Quando non lo è, devi mantenere tu stesso tutte le matrici nell'oggetto e i suoi figli. Default is [page:Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE] (true). </p> <h3>[property:Boolean matrixWorldNeedsUpdate]</h3> <p> Quando viene settato calcola la matrixWorld in quel frame e reimposta questa proprietà a false. Il valore predefinito è `false`. </p> <h3>[property:Matrix4 modelViewMatrix]</h3> <p>Questo viene passato allo shader e utilizzato per calcolare la posizione dell'oggetto.</p> <h3>[property:String name]</h3> <p>Nome opzionale dell'oggetto (non è necessario che sia univoco). Il valore predefinito è una stringa vuota.</p> <h3>[property:Matrix3 normalMatrix]</h3> <p> Questo viene passato allo shader e utilizzato per calcolare l'illuminazione per l'oggetto. È la trasposizione dell'inverso della sottomatrice 3x3 in alto a sinistra di modelViewMatrix di questo oggetto.<br /><br /> Il motivo di questa matrice speciale è che il semplice utilizzo della matrice modelViewMatrix potrebbe causare una lunghezza non unitaria delle normali (in caso di scalatura) o una direzione non perpendicolare (in caso di scalatura non uniforme).<br /><br /> Dall'altra parte, la parte di traslazione della matrice modelViewMatrix non è rilevante per il calcolo delle normali. Quindi una Matrix3 è sufficiente. </p> <h3>[property:Function onAfterRender]</h3> <p> Una callback opzionale che viene eseguita immediatamente dopo che un oggetto 3D è stato renderizzato. Questa funzione è chiamata con i seguenti parametri: renderer, scene, camera, geometry, material, group. </p> <p> Si noti che questa funzione di callback viene eseguita per oggi 3D `renderizzabili` (renderable). Ovvero oggetti 3D che definiscono il loro aspetto visivo con geometrie e materiali come istanze di [page:Mesh], [page:Line], [page:Points] o [page:Sprite]. Invece, le istanze di [page:Object3D], [page:Group] o [page:Bone] non sono renderizzabili e quindi questa callback non viene eseguita su questi oggetti. </p> <h3>[property:Function onBeforeRender]</h3> <p> Una callback opzionale che viene eseguita immediatamente prima che un oggetto 3D è stato renderizzato. Questa funzione è chiamata con i seguenti parametri: renderer, scene, camera, geometry, material, group. </p> <p> Si noti che questa funzione di callback viene eseguita per oggi 3D `renderizzabili` (renderable). Ovvero oggetti 3D che definiscono il loro aspetto visivo con geometrie e materiali come istanze di [page:Mesh], [page:Line], [page:Points] o [page:Sprite]. Invece, le istanze di [page:Object3D], [page:Group] o [page:Bone] non sono renderizzabili e quindi questa callback non viene eseguita su questi oggetti. </p> <h3>[property:Object3D parent]</h3> <p>Genitore dell'oggetto nel [link:https://en.wikipedia.org/wiki/Scene_graph grafo della scena]. Un oggetto può avere più di un genitore.</p> <h3>[property:Vector3 position]</h3> <p>Un [page:Vector3] che rappresenta la posizione locale dell'oggetto. Il valore predefinito è `(0, 0, 0)`.</p> <h3>[property:Quaternion quaternion]</h3> <p>Rotazione locale dell'oggetto come un [page:Quaternion Quaternion].</p> <h3>[property:Boolean receiveShadow]</h3> <p>Se il materiale riceve ombre. Il valore predefinito è `false`.</p> <h3>[property:Number renderOrder]</h3> <p> Questo valore consente di sovrascrivere l'ordine di rendering predefinito degli oggetti del [link:https://en.wikipedia.org/wiki/Scene_graph grafico di scena] sebbene gli oggetti opachi e trasparenti rimangano ordinati in modo indipendente. Quando questa proprietà viene impostata per un'istanza di [page:Group Group], tutti gli oggetti discendenti saranno ordinati e renderizzati insieme. L'ordinamento è dal più piccolo al più grande renderOrder. Il valore predefinito è `0`. </p> <h3>[property:Euler rotation]</h3> <p> La rotazione locale dell'oggetto (vedi [link:https://en.wikipedia.org/wiki/Euler_angles gli angoli di Eulero]), in radianti. </p> <h3>[property:Vector3 scale]</h3> <p> La scala locale dell'oggetto. Il valore predefinito è [page:Vector3]( 1, 1, 1 ). </p> <h3>[property:Vector3 up]</h3> <p> Questa proprietà viene utilizzata dal metodo [page:.lookAt lookAt], per esempio, per determinare l'orientamento del risultato.<br /> L'impostazione predefinita è [page:Object3D.DEFAULT_UP] - che è, `( 0, 1, 0 )`. </p> <h3>[property:Object userData]</h3> <p> Un oggetto che può essere utilizzato per memorizzare i dati personalizzati di un Object3D. Non dovrebbe contenere riferimenti a funzioni poiché queste non verranno clonate. </p> <h3>[property:String uuid]</h3> <p> [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] dell'istanza dell'oggetto. Viene assegnato automaticamente, non dovrebbe essere modificato. </p> <h3>[property:Boolean visible]</h3> <p>L'oggetto viene visualizzato se `true`. Il valore predefinito è `true`.</p> <h2>Proprietà Statiche</h2> <p> Le proprietà statiche e i metodi sono definiti per classe piuttosto che per istanza della classe. Questo significa che modificando [page:Object3D.DEFAULT_UP] o [page:Object3D.DEFAULT_MATRIX_AUTO_UPDATE] verranno modificati i valori di [page:.up up] e [page:.matrixAutoUpdate matrixAutoUpdate] per `ogni` istanza di Object3D (o classi derivate) creata dopo che la modifica è stata fatta (gli Object3D già creati non saranno interessati). </p> <h3>[property:Vector3 DEFAULT_UP]</h3> <p> La direzione predefinita di [page:.up up] per gli oggetti, utilizzata anche come posizione predefinita per [page:DirectionalLight], [page:HemisphereLight] e [page:Spotlight] (che crea luci che brillano dall'alto verso il basso).<br /> Impostare su ( 0, 1, 0 ) per impostazione predefinita. </p> <h3>[property:Boolean DEFAULT_MATRIX_AUTO_UPDATE]</h3> <p> L'impostazione predefinita per [page:.matrixAutoUpdate matrixAutoUpdate] per Object3D appena creati.<br /> </p> <h3>[property:Boolean DEFAULT_MATRIX_WORLD_AUTO_UPDATE]</h3> <p> L'impostazione predefinita per[page:.matrixWorldAutoUpdate matrixWorldAutoUpdate] per Object3D appena creati.<br /> </p> <h2>Metodi</h2> <p>I metodi [page:EventDispatcher EventDispatcher] sono disponibili in questa classe.</p> <h3>[method:this add]( [param:Object3D object], ... )</h3> <p> Aggiunge l'`object` come figlio di questo oggetto. È possibile aggiungere un numero arbitrario di oggetti. Qualsiasi genitore corrente su un oggetto passato qui verrà rimosso, poiché un oggetto può avere al più un genitore.<br /><br /> Vedi [page:Group] per avere informazioni per raggruppare manualmente gli oggetti. </p> <h3>[method:undefined applyMatrix4]( [param:Matrix4 matrix] )</h3> <p>Applica la matrice di trasformazione all'oggetto e aggiorna la posizione, la rotazione e la scala dell'oggetto.</p> <h3>[method:this applyQuaternion]( [param:Quaternion quaternion] )</h3> <p>Applica la rotazione rappresentata dal quaternione dell'oggetto.</p> <h3>[method:this attach]( [param:Object3D object] )</h3> <p> Aggiunge l'`object` come figlio di questo oggetto, mantenendo la trasformazione world dell'oggetto.<br/><br/> Nota: Questo metodo non supporta i grafici della scena con nodi con scalatura non uniforme. </p> <h3>[method:Object3D clone]( [param:Boolean recursive] )</h3> <p> recursive -- se true, anche i discendenti dell'oggetto vengono clonati. Il valore predefinito è true.<br /><br /> Restituisce un clone di questo oggetto e opzionalmente tutti i discendenti. </p> <h3>[method:this copy]( [param:Object3D object], [param:Boolean recursive] )</h3> <p> recursive -- se true, anche i discendenti dell'oggetto vengono copiati. Il valore predefinito è true.<br /><br /> Copia l'oggetto passato in questo oggetto. Nota: Gli event listener e le callback definite dall'utente ([page:.onAfterRender] e [page:.onBeforeRender]) non vengono copiate. </p> <h3>[method:Object3D getObjectById]( [param:Integer id] )</h3> <p> id -- Numero univoco dell'istanza dell'oggetto<br /><br /> Cerca in un oggetto e nei suoi figli, partendo dall'oggetto stesso, e restituisce il primo con l'id corrispondente.<br /> Si noti che gli id sono assegnati in ordine cronologico: 1, 2, 3, ..., incrementando di uno per ogni nuovo oggetto. </p> <h3>[method:Object3D getObjectByName]( [param:String name] )</h3> <p> name -- Stringa da abbinare alla proprietà Object3D.name dei figli. <br /><br /> Cerca in un oggetto e nei suoi figli, partendo dall'oggetto stesso, e restituisce il primo con il nome corrispondente.<br /> Si noti che per molti oggetti il nome è una stringa vuota da impostazione predefinita. Dovrai impostarlo manualmente per utilizzare questo metodo. </p> <h3>[method:Object3D getObjectByProperty]( [param:String name], [param:Any value] )</h3> <p> name -- il nome della proprietà da cercare. <br /> value -- il valore della proprietà data. <br /><br /> Cerca in un oggetto e nei suoi figli, partendo dall'oggetto stesso, e restituisce il primo con la proprietà che corrisponde al valore passato. </p> <h3>[method:Object3D getObjectsByProperty]( [param:String name], [param:Any value] )</h3> <p> name -- il nome della proprietà da cercare. <br /> value -- il valore della proprietà data. <br /><br /> Cerca in un oggetto e nei suoi figli, partendo dall'oggetto stesso, e restituisce tutti gli oggetti con la proprietà che corrisponde al valore passato. </p> <h3>[method:Vector3 getWorldPosition]( [param:Vector3 target] )</h3> <p> [page:Vector3 target] — il risultato verrà copiato in questo Vector3. <br /><br /> Restituisce un vettore che rappresenta la posizione dell'oggetto nello spazio world. </p> <h3>[method:Quaternion getWorldQuaternion]( [param:Quaternion target] )</h3> <p> [page:Quaternion target] — il risultato sarà copiato in questo Quaternione. <br /><br /> Restituisce un quaternione che rappreseta la rotazione dell'oggetto nello spazio world. </p> <h3>[method:Vector3 getWorldScale]( [param:Vector3 target] )</h3> <p> [page:Vector3 target] — il risultato sarà copiato in questo Vector3. <br /><br /> Restituisce un vettore dei fattori di scala applicati all'oggetto per ciascun asse nello spazio world. </p> <h3>[method:Vector3 getWorldDirection]( [param:Vector3 target] )</h3> <p> [page:Vector3 target] — il risultato sarà copiato in questo Vector3. <br /><br /> Restituisce un vettore che rappresenta la direzione dell'asse z positivo dell'oggetto nello spazio world. </p> <h3>[method:Vector3 localToWorld]( [param:Vector3 vector] )</h3> <p> vector - Un vettore che rappresenta la posizione nello spazio locale di questo oggetto.<br /><br /> Converte il vettore dallo spazio locale dell'oggetto allo spazio world. </p> <h3>[method:undefined lookAt]( [param:Vector3 vector] )<br /> [method:undefined lookAt]( [param:Float x], [param:Float y], [param:Float z] )</h3> <p> vector - Un vettore che rappresenta la posizione nello spazio world.<br /><br /> Facoltativamente, le componenti [page:.x x], [page:.y y] e [page:.z z] della posizione nello spazio world.<br /><br /> Ruota l'oggetto in modo che sia rivolto verso un punto nello spazio world.<br /><br /> Questo metodo non supporta oggetti con genitore/i con scalabilità non uniforme. </p> <h3>[method:undefined raycast]( [param:Raycaster raycaster], [param:Array intersects] )</h3> <p> Metodo astratto (vuoto) per ottenere le intersezioni tra un raggio casted e questo oggetto. Sottoclassi come [page:Mesh], [page:Line], e [page:Points] implementano questo metodo per utilizzare il raycasting. </p> <h3>[method:this remove]( [param:Object3D object], ... )</h3> <p> Rimuove `object` come figlio di questo oggetto. Può essere rimosso un numero arbitrario di oggetti. </p> <h3>[method:this removeFromParent]()</h3> <p> Rimuove questo oggetto dal suo attuale genitore. </p> <h3>[method:this clear]()</h3> <p> Rimuove tutti i figli dall'oggetto. </p> <h3>[method:this rotateOnAxis]( [param:Vector3 axis], [param:Float angle] )</h3> <p> axis -- Un vettore normalizzato nello spazio dell'oggetto.<br /> angle -- L'angolo in radianti.<br /><br /> Ruota un oggetto lungo l'asse nello spazio dell'oggetto. Si presume che l'asse sia normalizzato. </p> <h3>[method:this rotateOnWorldAxis]( [param:Vector3 axis], [param:Float angle] )</h3> <p> axis -- Un vettore normalizzato nello spazio world. <br /> angle -- L'angolo in radianti.<br /><br /> Ruota un oggetto lungo l'asse nello spazio world. Si presume che l'asse sia normalizzato. Presuppone che nessun genitore sia ruotato. </p> <h3>[method:this rotateX]( [param:Float rad] )</h3> <p> rad - l'angolo di rotazione in radianti.<br /><br /> Ruota l'oggetto attorno all'asse x nello spazio locale. </p> <h3>[method:this rotateY]( [param:Float rad] )</h3> <p> rad - l'angolo di rotazione in radianti.<br /><br /> Ruota l'oggetto attorno all'asse y nello spazio locale. </p> <h3>[method:this rotateZ]( [param:Float rad] )</h3> <p> rad - l'angolo di rotazione in radianti.<br /><br /> Ruota l'oggetto attorno all'asse z nello spazio locale. </p> <h3>[method:undefined setRotationFromAxisAngle]( [param:Vector3 axis], [param:Float angle] )</h3> <p> axis -- Un vettore normalizzato nello spazio dell'oggetto.<br /> angle -- l'angolo in radianti<br /><br /> Chiama [page:Quaternion.setFromAxisAngle setFromAxisAngle]( [page:Float axis], [page:Float angle] ) sul [page:.quaternion quaternione]. </p> <h3>[method:undefined setRotationFromEuler]( [param:Euler euler] )</h3> <p> euler -- L'angolo di Eulero che specifica la quantità di rotazione.<br /> Chiama [page:Quaternion.setRotationFromEuler setRotationFromEuler]( [page:Euler euler] ) sul [page:.quaternion quaternione]. </p> <h3>[method:undefined setRotationFromMatrix]( [param:Matrix4 m] )</h3> <p> m -- ruota il quaternione della componente rotazione della matrice.<br /> Chiama [page:Quaternion.setFromRotationMatrix setFromRotationMatrix]( [page:Matrix4 m] ) sul [page:.quaternion quaternione].<br /><br /> Si noti che questo presuppone che il 3x3 superiore di m è una matrice di rotazione pura (cioè non ridimnsionata). </p> <h3>[method:undefined setRotationFromQuaternion]( [param:Quaternion q] )</h3> <p> q -- Quaternione normalizzato.<br /><br /> Copia il quaternione passato nel [page:.quaternion quaternione]. </p> <h3>[method:Object toJSON]( [param:Object meta] )</h3> <p> meta -- oggetto contentene metadati come i materiali, le texture o le immagini per l'oggetto.<br /> Converte l'oggetto al formato three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene]. </p> <h3>[method:this translateOnAxis]( [param:Vector3 axis], [param:Float distance] )</h3> <p> axis -- Un vettore normalizzato nello spazio dell'oggetto.<br /> distance -- La distanza da traslare.<br /><br /> Trasla un oggetto in base alla distanza lungo un asse nello spazio dell'oggetto. Questo asse si presuppone sia normalizzato. </p> <h3>[method:this translateX]( [param:Float distance] )</h3> <p>Trasla l'oggetto lungo l'asse x nello spazio dell'ogetto per unità di `distance`.</p> <h3>[method:this translateY]( [param:Float distance] )</h3> <p>Trasla l'oggetto lungo l'asse y nello spazio dell'ogetto per unità di `distance`.</p> <h3>[method:this translateZ]( [param:Float distance] )</h3> <p>Trasla l'oggetto lungo l'asse z nello spazio dell'ogetto per unità di `distance`.</p> <h3>[method:undefined traverse]( [param:Function callback] )</h3> <p> callback - Una funzione con primo argomento un oggetto Object3D.<br /><br /> Esegue la callback su questo oggetto e tutti i discendenti.<br/> Nota: È sconsigliato modificare il grafico della scena all'interno della callback. </p> <h3>[method:undefined traverseVisible]( [param:Function callback] )</h3> <p> callback - Una funzione con primo argomento un oggetto Object3D.<br /><br /> Simile a traverse, ma la callback viene eseguita solo su oggetti visibili. I discendenti di oggetti invisibili non vengono attraversati.<br/> Nota: È sconsigliato modificare il grafico della scena all'interno della callback. </p> <h3>[method:undefined traverseAncestors]( [param:Function callback] )</h3> <p> callback - Una funzione con primo argomento un oggetto Object3D..<br /><br /> Esegue la callback su tutti i predecessori.<br/> Nota: È sconsigliato modificare il grafico della scena all'interno della callback. </p> <h3>[method:undefined updateMatrix]()</h3> <p>Aggiorna la trasformazione locale.</p> <h3>[method:undefined updateMatrixWorld]( [param:Boolean force] )</h3> <p>Aggiorna la trasformazione globale di un oggetto e i suoi discendenti.</p> <h3>[method:undefined updateWorldMatrix]( [param:Boolean updateParents], [param:Boolean updateChildren] )</h3> <p> updateParents - aggiorna ricorsivamente la trasformazione globale dei predecessori.<br /> updateChildren - aggiorna ricorsivamente la trasformazione globale dei discendenti.<br /><br /> Aggiorna la trasformazione globale dell'oggetto. </p> <h3>[method:Vector3 worldToLocal]( [param:Vector3 vector] )</h3> <p> vector - Un vettore che rappresenta una posizione nello spazio world.<br /><br /> Converte il vettore dallo spazio world allo spazio locale di questo oggetto. </p> <h2>Source</h2> <p> [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js] </p> </body> </html>