2010-08-25 36 views
0

Je dois lire une liste de polygones à partir d'un fichier Object File Format (.off) (en C++). Le format des fichiers .off est essentiellement comme suit:Lecture dans des polygones à partir d'un fichier Format de fichier objet (.off)

 
Header infomation 
x y z //co-ords for each vertex 
... 
NVertices v1 v2 v3 ... vN //Number of vertices for each polygon, 
          //followed by each vertex's index 
... 

fichiers .off permettent un certain nombre de sommets par polygone, ce qui me amène à ma question. Comment savez-vous quels sommets sont connectés à quoi? Pour exemple, si le fichier .off lu:

 
Header stuff 
-0.500000 -0.500000 0.500000 
0.500000 -0.500000 0.500000 
-0.500000 0.500000 0.500000 
0.500000 0.500000 0.500000 
-0.500000 0.500000 -0.500000 
0.500000 0.500000 -0.500000 
-0.500000 -0.500000 -0.500000 
0.500000 -0.500000 -0.500000 
4 0 1 3 2 
4 2 3 5 4 
4 4 5 7 6 
4 6 7 1 0 
4 1 7 5 3 
4 6 0 2 4 

Les polygones sont quatre côtés, mais pas tous les sommets sont reliés. Si vous connectez simplement chaque sommet à un autre sommet, vous obtenez quatre polygones à trois côtés au lieu d'un polygone à quatre côtés. J'espérais que les sommets étaient listés d'une manière similaire à la notation de cycle, mais je n'arrive pas à trouver d'informations à ce sujet, donc je suppose que non.

Donc ma question est:
Y at-il un format que les fichiers .off utilisent pour montrer cette connexion? Sinon, existe-t-il un autre moyen de déterminer quels sommets sont connectés dans un fichier .off?

Répondre

1

Dans un fichier .off, les sommets de chaque polygone sont connectés séquentiellement dans l'ordre indiqué, le dernier se connectant à la première. Dans votre exemple, le premier polygone a 4 sommets, listés comme "0 1 3 2", ce qui signifie qu'il y a des connexions de 0 à 1, de 1 à 3, de 3 à 2 et de 2 à 0