Boh, io non capisco, ora vi posto il ciclo...
Codice:
Color clInvalid = new Color();
clInvalid = Color.FromArgb(0, Color.Black); //colore trasparente
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
switch (validazioneVertici[x,y])
{
case 0://se non sono validi assegno il colore bianco e la componente alpha a 0 (trasparenza assoluta)
vertici[x + y * width].Color = clInvalid.ToArgb();
vertici[x + y * width].Z = 100;
break;
case 1://se sono validi gli assegno un colore e l'altezza
vertici[x + y * width].Color = cl.ToArgb();
vertici[x + y * width].Position = new Vector3(x, y, (float)functionHeightData[x, y]);
break;
case 2:
vertici[x + y * width].Color = clInvalid.ToArgb();
vertici[x + y * width].Position = new Vector3(x, y, (float)functionHeightData[x, y]);
break;
case 3:
vertici[x + y * width].Color = clInvalid.ToArgb();
vertici[x + y * width].Position = new Vector3(x, y, (float)functionHeightData[x, y]);
break;
}
if (avanzaCalcolo != null)
avanzaCalcolo(this);
}
Questo č il ciclo che passa tutti i vertici per assegnarli l'altezza e il colore, a seconda che siano validi o meno... Con l'istruzione che ho aggiunto nel case 0 ( vertici[x + y * width].Z = 100; ) i vertici non validi vengono, oltre che cambiati di colore e resi trasparenti, alzati all'altezza 100. Ora, provando il programma in questo modo noto che il vertice che non dovrebbe vedersi si alza come previsto, quindi il ciclo non salta il vertice, ed entra anche nel case, ma quindi cosa succede, l'istruzione prima non viene eseguita!!??!?!?!?!?