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