ciao.
1)Nell importazione di un file scketchup devo distinguere i seguenti casi:
1)materiale front
2)materiale back
3)materialefront_materialeback
4)materiale front texture back ec....
ho 4 variabili boleane da cui estrapolare tutte le combinazioni:
bMaterialFront, bMaterialBack, bTextureFront, bTextureBack.
dovrebbero essere 16 combinazioni 2^4 giusto?
io avevo pensato di utilizzare un sistema a bit accesi/spenti per creare tutte le combinazioni possibili ed uno switch per creare il materiale giusto(che è una classe cMaterialxxx che deriva da cmaterialbase)e associarlgli i valori(path se texture Color se è colore).
oppure ma non l'ho capito molto bene potrei utilizzare il double dispatch
2)sempre stesso progetto:
devo riuscire comparare tutte le possibilità dei materiali di sopra , mi serve per un sistema di batch in opengl:
in pratica ho un vector di oggetti CMesh ai quali(oggetti cmesh) è associato un materiale del tipo cMaterialxxx ,confronto ogni materiale con un altro per vedere se ci sono differenze se ci sono o è l'inizio creo e aggiungo il batch con quel materiale , il batch sarà confrontato con tutti i materiali del vettore e se non c'è nessuna differenza aggiungo semplicemente a quel batch la geometria, ragruppo per materiale e faccio il merge della geometria per risparmiare le chiamate draw a opengl in pratica.
oppure ma non ho capito bene come,potrei utilizzare il double dispatch
ps. il double dispatch anddrebbe benissimo , ma in questo caso accoppiato con un visitor non fa quello che vorrei , io vorrei che la chiamata double(col process(this)) per intenderci) fosse elaborata da un altro oggetto Cmaterial(materiale relativo) in modo da confrontare i due.
ho un po di confusione
grazie