17.06.2013 Views

Analisi e sintesi dei gesti comunicativi per gli - Maurizio Mancini

Analisi e sintesi dei gesti comunicativi per gli - Maurizio Mancini

Analisi e sintesi dei gesti comunicativi per gli - Maurizio Mancini

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capitolo VI, Tools di supporto<br />

class Joint:<br />

Joint* sons;<br />

//puntatore alla giuntura padre<br />

Joint* parent;<br />

//nome della giuntura<br />

CString name;<br />

//posizione(offset) della giuntura rispetto al padre<br />

coord3d translation;<br />

//rotazione della giuntura<br />

coord3d rotation;<br />

//vincoli sui gradi di libertà della giuntura<br />

bool enableX,enableY,enableZ;<br />

In fase di inizializzazione l’editor scorre il contenuto di un file in cui abbiamo me-<br />

morizzato la descrizione dello scheletro H-Anim (Appendice C)[10].<br />

Per ogni giuntura incontrata vengono eseguite le o<strong>per</strong>azioni:<br />

1. istanziazione di un nuovo oggetto di classe Joint;<br />

2. memorizzazione del nome della giuntura;<br />

3. memorizzazione dell’offset della giuntura rispetto al padre;<br />

4. azzeramento della rotazione della giuntura;<br />

5. inserimento della giuntura nella corretta posizione all’interno<br />

dell’albero (scheletro) finora creato;<br />

Una volta immagazzinati i dati di tutte le giunture e costruito l’albero che corri-<br />

sponde allo scheletro dell’agente è molto semplice ottenere la visualizzazione dello<br />

scheletro.<br />

In pratica <strong>per</strong> ogni giuntura occorre tracciare le ossa che vanno verso quelle fi<strong>gli</strong>e e<br />

poi spostarsi in ciascuna di loro e ripetere il procedimento.<br />

Ecco il metodo (ricorsivo) che abbiamo implementato:<br />

metodo Draw:<br />

input: una giuntura dello scheletro<br />

disegnare una piccola sfera;<br />

effettuare la rotazione R associata alla giuntura;<br />

for(ogni giuntura s fi<strong>gli</strong>a di quella in input):<br />

disegnare il segmento che unisce la giuntura in input ad s;<br />

spostare con una traslazione T il sistema di riferimento in<br />

modo che l’origine si trovi nella posizione di s;<br />

s.Draw;<br />

93

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!