Tesi Robotica Analisi, progettazione e implementazione... | Page 179
i
i
“LP_Tesi” — 2013/10/17 — 18:27 — page 179 — #179
i
8.2. IMPLEMENTAZIONE
i
179
verrà applicata la disparità relativa al pixel che rappresenta, come prima questa
nuova modalità è applicabile a tutte le viste (Fig:8.1.3), per eliminare la disparità
basta semplicemente ripremere il tasto ’j’.
Come ulteriore funzionalità è possibile visualizzare la struttura della mesh che
costituisce il modello 3D premendo il tasto ’g’, come verrà spiegato meglio nel
seguito la mesh è costituita da una strip di triangoli unica che compone un
rettangolo utilizzando un ordine a zig-zag (Fig:8.1.4). Questo spiega anche
Figura 8.1.4: Mesh di triangoli del modello
perché prima si è detto che non sono state istanziate texture nel vero senso
del termine, infatti ad ogni vertice viene semplicemente assegnato il colore del
rispettivo pixel, è il motore di OpenGL che si occupa di colorare gli spazi fra i
punti interpolando il colore delle posizioni non note.
8.2
Implementazione
Nel main del programma (Alg:8.1) sono presenti tutte le inizializzazioni necessarie, quali per esempio il display mode, le dimensioni e il titolo della finestra,
successivamente si definiscono quali saranno i gestori delle callback passando
una serie di puntatori a funzione, le funzioni gestiranno gli eventi di movimento
del mouse, pressione dei tasti, cicle idle ecc. Adesso è necessario definire l’input
del programma, come esempio in Alg:8.1 sono riportate tre chiamate a funzione
il cui valore di ritorno è un array monodimensionale di pixel. In base alle dimensioni delle immagini due variabili globali vengono modificate, la variabile width
e la variabile height, queste vengono successivamente utilizzate per generare i
vertici che costituiranno la mesh, gli indici che indicano come utilizzare i vertici
e i colori da associargli. Infine viene istanziato il view manager che consentirà
la gestione della telecamera attraverso al tastiera e il mouse (il codice di tale
i
i
i
i