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 82: PickMouseBehavior.

 

La classe 'PickMouseBehavior', appartenente al package com.sun.j3d.utils.picking.behaviors (esiste anche un altro package, deprecato), è la superclasse per il Picking.

 

 

Il costruttore è il seguente:

PickMouseBehavior(Canvas3D canvas, BranchGroup root, Bounds bounds);.

 

'BranchGroup root' serve ad identificare la radice dell'albero / porzione di Scene Graph da considerare quando si fa il test del Picking.

Selezionando un oggetto posto fuori dall'albero radicato in root, il picking non restituirà nulla.

Per rendere 'pickable' tutta la scena, impostare come root la radice del Content Branch Graph.

 

FIGLIE DI PICKMOUSEBEHAVIOR

Sono figlie di PickMouseBehavior:

  • PickTranslateBehavior;

  • PickRotateBehavior;

  • PickZoomBehavior.

 

 

E' possibile usarle tutte e tre contemporaneamente, in quanto riguardano pulsanti del mouse diversi, proprio come avveniva con MouseBehavior.

 

E' altresì possibile creare classi di picking personalizzate.

 

 

Un esempio di utilizzo di PickMouseBehavior è quello mostrato nel file 'EsempioPicking.java'.

Leggendo il codice è possibile notare che qui il Behavior viene creato in fase di definizione della scena, non dentro il metodo che crea il Content Branch Graph.

Questo avviene principalmente perchè, per definire questo particolare Behavior, servono la Canvas3D e la radice del Branch Graph (è possibile passare questi parametri a 'createSceneGraph' e creare il Behavior dentro quel metodo, ma questa rappresenta una soluzione meno 'pulita').

Si noti, infine, la nuova capability introdotta per i Transform Group: ENABLE PICK REPORTING, che include il TG nel path del picking. MOUSEBEHAVIOR e PICKMOUSEBEHAVIOR.

 

Dagli esempi visti per MouseBehavior e per PickMouseBehavior le differenze tra queste due entità possono sembrare non rilevanti.

In realtà, i MouseBehavior hanno come target un TransformGroup.

PickMouseBehavior prende come parametri la Canvas3D e un BranchGroup che fa da 'tetto' allo stack di elementi che è possibile selezionare con PickMouseBehavior; inoltre, è anche possibile disattivare il Picking per alcuni Transform Group figli del Branch Group 'tetto', semplicemente non impostando le Capability del Picking.

 

 
Vai all'inizio della pagina