Tesi Robotica Analisi, progettazione e implementazione... | Page 184

i i “LP_Tesi” — 2013/10/17 — 18:27 — page 184 — #184 i 184 i 8. VISUALIZZATORE DISPARITÀ del blocco if. Per questione di codifica le immagini vengono caricate in formato BGR anziché RGB, si rende quindi necessario uno swap fra le componenti. A questo punto non resta che ritornare il vettore dei colori. Per concludere la generazione viene presentato quindi Alg:8.4. Nel codice è presente la logica che andrà a produrre la sequenza di numeri mostrata prima zig-zagando fra le varie righe della mesh. Prima di tutto istanzia un array di int per contenere gli indici, dopo di che parte un ciclo for che scandisce le righe, una condizione if interna discerne fra righe pari e dispari stabilendo il senso di percorrenza del modello, gli indici in particolare vengono generati a coppie. Algoritmo 8.4 Generatore di indici 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 int* getIndices( int width, int height ) { indices = new int[getIndicesCount(width, height)]; int i = 0; for ( int row=0; row0; col-- ) { indices[i++] = col + (row+1) * width; indices[i++] = col - 1 + + row * width; } return indices; } 8.2.2 Funzione display A questo punto in Alg:8.5 è mostrata la funzione di renderizzazione, per come funziona OpenGL questa funzione viene chiamata automaticamente ogni volta che il sistema è pronto per renderizzare un nuovo frame. Come prima cosa viene pulito il frame buffer e riportata la matrice del