NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 107: AlternateAppearance.

 

L'oggetto AlternateAppearance permette di definire, come suggerisce il nome, più Appearance 'alternativi' (o l'uno o l'altro, non insieme) per una mesh.

 

Dal punto di vista dello Scene Graph, un AlternateAppearance non è un NodeComponent (come Appearance), ma una vera e propria Leaf.

 

 

Costruttori:

  • AlternateAppearance();

  • AlternateAppearance(Appearance a); .

 

 

E' necessario impostare, poi, la BoundingRegion o la BoundingLeaf d'influenza.

Il funzionamento di AA è il seguente: ogni oggetto ha un suo Appearance, ma se collegato ad un AA e posizionato dentro il bound d'azione dell'AA, il suo Appearance 'nativo' verrà sovrascritto da quello dell'AA.

 

Esempio 'Esempio AlternateAppearance'; il Content Branch Graph di tale esempio è descritto nella figura seguente.

Java 3D utilizzo di AlternateAppearance

 

 

Oltre al bound, è possibile impostare lo scope di validità di un AA, il che significa che anche se un oggetto entra nel bound d'azione dell'AA, se non è discendente di un Gruppo inserito nella lista dei gruppi di scope di AA, non subirà l'effetto di tale oggetto.

 

Di default, la lista di scope di AA è vuota, ed in tal caso lo scope di AA è tutto lo Scene Graph, per cui tutti gli oggetti della scena presenti nel bound d'azione dell'oggetto ne subiranno l'effetto.

I metodi che permettono di impostare, rimuovere o recuperare un gruppo nella/dalla lista degli scope di AA sono diversi; tra questi, abbiamo ad esempio:

 

  • addScope(Group g);

  • numScopes();

  • removeAllScopes();

  • getAllScopes(), che restituisce un oggetto di tipo Enumeration.

 

 

Un esempio di 'selezione logica' dell'area di influenza di un AA mediante bound e scope lo si ha nel file 'Esempio AlternateAppearanceApp2', simile ad 'Esempio AlternateAppearance', con la differenza che in questo caso sono presenti due sfere in movimento, che condividono la stessa Appearance ma appartenenti a TG diversi; l'AA ha, nella lista dei gruppi di scope, il TG antenato di una sola delle sfere, l'altra è esclusa (anche se passa nella BoundingSphere d'azione dell'AA, non ne subirà gli effetti).

Il lettore provi a commentare l'istruzione aa.addScope(sfera1), ricompilare ed eseguire il file d'esempio per impostare, come scope dell'AA, tutto lo Scene Graph.

 

NOTA: se le regioni di influenza di più AA si intersecano (overlapping), la scelta di quale AA utilizzare è fatta da Java 3D, con un criterio definito dall'implementazione in uso.

In generale, comunque, verrà scelto l'AA più 'vicino' all'oggetto.

 

 
Vai all'inizio della pagina