Ho cominciato a scrivere del codice
codice:
void CMesh::GenerateAdjacency()
{
UINT *pAdjacency = new UINT[2 * this->MeshData.ColladaBuffer.Indici];
for (unsigned int i = 0; i < this->MeshData.ColladaBuffer.Indici; i++)
{
for (unsigned int z = 0; i < this->MeshData.ColladaBuffer.Indici; z++)
{
if ((this->MeshData.Indices[i] == this->MeshData.Indices[z]) && (this->MeshData.Indices[i+1] == this->MeshData.Indices[z+1]) && (this->MeshData.Indices[i+2] == this->MeshData.Indices[z+2]))
{
//Sto leggendo lo stesso indice, vai avanti.
continue;
}
else
{
if (this->MeshData.Indices[i] == this->MeshData.Indices[z])
{
if (this->MeshData.Indices[i+1] == this->MeshData.Indices[z+1])
{
//Edge
continue;
}
if (this->MeshData.Indices[i+1] == this->MeshData.Indices[z+2])
{
//Edge
continue;
}
if (this->MeshData.Indices[i+2] == this->MeshData.Indices[z+1])
{
//Edge
continue;
}
if (this->MeshData.Indices[i+2] == this->MeshData.Indices[z+2])
{
//Edge
continue;
}
}
if (this->MeshData.Indices[i+1] == this->MeshData.Indices[z])
{
if (this->MeshData.Indices[i+2] == this->MeshData.Indices[z+1])
{
//Edge
continue;
}
if (this->MeshData.Indices[i+2] == this->MeshData.Indices[z+2])
{
//Edge
continue;
}
if (this->MeshData.Indices[i-1] == this->MeshData.Indices[z+1])
{
//Edge
continue;
}
if (this->MeshData.Indices[i-2] == this->MeshData.Indices[z+2])
{
//Edge
continue;
}
}
}
}
}
delete[] pAdjacency;
}
La logica c'è, ma sembra che tutti quest if (che non sono ancora finiti) possano essere raggruppati in un unico ciclo for...che ne dite?