Trabalho - Parte I



      
Criar um programa que gere e exiba um modelo volumétrico a partir de um objeto poliédrico.
       Para carregar o  modelo poliédrico deve ser usada a SmallVR ou qualquer outra biblioteca capaz de carregar objetos poliédricos tridimensionais.
       Para acessar as faces e vértices de um objeto da SmallVR, use os métodos GetVertices e GetFace e GetNFaces da classe SmVR_COBJLoader:

                TVertices *GetVertices()
        void GetFace(int n, int v[3]);
        int GetNFaces();

       Onde TVertices é definido abaixo:

typedef struct
{
    float x,y,z;
} TVertices;


     Exemplo de uso dos Métodos: (Navegacao.cpp)

    // Adiciona o objeto recém criado ao grafo de cena
    RootObject->AddChild(TestObject);
   

    int v[3]; // vetor para armazenar os números dis vértices de uma face

    // Obtém um apontador para todos os vértices
    TVertices *Vert  = obj1->GetVertices();
    // Obtém o número de faces
    int nFaces = obj1->GetNFaces();
   
    for (int f= 0; f< nFaces; f++) // para cada face
    {
        printf ("Face %d\n", f);

        // Obtém os números dos vértices da face "f"
        obj1->GetFace(f,v);

        for (int n=0; n<3; n++) // para cada vértice
        {           
            printf ("\tVertice %d: x = %6.3f    y = %6.3f  z = %6.3f\n", n,
                Vert[v[n]].x, Vert[v[n]].y, Vert[v[n]].z);
        }
        printf("\n");
    }

      Para obter as dimensões do objeto use o método GetBoundaries. Veja outros métodos no arquivo SmVR_COBJLoader.h da SmallVR.

     O programa DrawVoxel.cpp permite a exibição de um conjunto de voxels. Para o trabalho você terá de modificar as rotinas DrawCube e IsInside.Use as teclas de setas para  gira o modelo na tela.