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 18: Le Capability.

 

Quando si compila un Branch Group (o quando un oggetto è live, vivo, come vedremo a breve) si ha un effetto collaterale non sempre piacevole: i valori delle trasformazioni e di alcuni oggetti dello Scene Graph vengono 'bloccati'.

 

Quando dobbiamo creare, per esempio, un'animazione, modificando i valori di un TransformGroup, dobbiamo 'sbloccare' alcuni campi dello stesso, o meglio: dobbiamo permettere delle operazioni su tali campi, impostare delle capability.

 

 

Le varie componenti di un universo virtuale di Java 3D hanno le relative capability e, se estendono delle classi, ereditano le capability degli 'antenati'.

 

Ad esempio, per permettere l'impostazione dinamica di una trasformazione 3D in un oggetto di tipo TransformGroup, scriveremo:

 

TransformGroup tg1 = new TransformGroup();

tg1.setCapability(Transform.ALLOW TRANSFORM WRITE); .

 

ALLOW TRANSFORM WRITE è, quindi, una costante (un intero, a livello implementativo) della classe Transform.

 

L'istruzione mostrata precedentemente permetterà l'esecuzione dell'istruzione:

 

tg1.setTransform3D(t3d1);

ma non dell'istruzione

tg1.getTransform3D(t3d1);

 

per la quale bisognerà impostare una capability di READ.

 

In generale, se vi è una capability WRITE ve ne sarà una READ, e viceversa.

 

 
Vai all'inizio della pagina