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