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.