Offviewer

Soyez le premier à donner votre avis sur cette source.

Vue 36 fois - Téléchargée 2 fois

Description


En 2003 la très célèbre université de Princeton a publié un catalogue d'objets numériques tridimensionnels définis en format off, le plus simple des formats 3d : http://shape.cs.princeton.edu/benchmark/

Avec ces modèles toujours disponibles et bien connus, on peut obtenir les sources de quelques utilitaires où offviewer.cpp sert à afficher les objets en format off. Ce programme a déjà été repris et publié à l'identique ou en variante de nombreuses fois.

La variante que je propose ajoute un mode d'emploi, et plusieurs commandes complémentaires pour afficher ou effacer les faces, les arêtes ou les deux, pour éteindre ou allumer l'une ou l'autre des deux sources lumineuses, pour afficher les statistiques du modèle, pour afficher les faces en mode plat ou continu et surtout pour sauvegarder en format bmp l'image actuellement affichée après avoir fait des translations, rotations ou zooms du modèle. On peut sauvergarder plusieurs images. La lettre <M> donne accès au mode d'emploi.

D'un point de vue mode de programmation, il y a des formulations qui ne sont plus recommandées : les variables globales et la forme maintenant obsolète d'OpenGL avec glBegin et glEnd. On peut aussi revoir cela, c'est conservé ici par fidélité à l'original.

L'intérêt principal de ce programme est de montrer comment OpenGL en programmation via glut permet d'afficher un messagebox et de connaître ou de commander les données caractéristiques de la fenêtre visualisée. Quant à l'intérêt du format off c'est d'être très facile à renseigner à partir des autres formats d'objets 3d : il comprend uniquement une liste de sommets et une liste simple de faces polygonales.

Source :

int main(int argc, char **argv) {   
   // Initialize GLUT   
   GLUTInit(&argc, argv);   
   
   // Parse program arguments   
   if(!ParseArgs(argc, argv)) exit(1);   
     
   // Read file   
   mesh = ReadOffFile(filename);   
   if(!mesh) exit(1);   
     
   // Run GLUT interface   
   GLUTMainLoop();   
   
   // Return success    
   return 0;   
}   

Conclusion :

Au moment de cet envoi le bug CCM-CS du backslash n'est pas corrigé. Pour afficher le source il est préférable d'utiliser le téléchargement du projet.

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.