- Librairies de base du C
- gcc
- Librairie Graphique : OpenGL
Le projet est divisé en plusieurs dossiers :
- SRC : contient toute les sources du projet (*.c *.h)
- BIN : contient l'executable généré après compilation (delaunay). Un lien symbolique est également créé dans le repertoire source du projet afin de pourvoir exécuter immédiatement après compilation sans changer de dossier. Généré automatiquement si inexistant.
- OBJ : contient les fichiers binaires compilés mais non linkés (.o). Généré automatiquement si inexistant.
- DATA : contient des images (heightmap) pouvant être donné en entrée de l'algorithme pour obtenir une génération de points non aléatoire sur z.
- DOC : contient l'ensemble des fichiers de documentation. Dossier et fichiers générés automatiquement à l'aide de doxygen.
- RAPPORT : rapport LaTeX du projet.
Les sources du projet sont divisées en plusieurs fichiers (chaque *.c ayant sont *.h associé):
- vertex : Structure et fonctions relatives aux sommets
- simplex : Structure et fonctions relatives aux triangles
- dll : Structure et fonctions relatives aux listes doublement chainées
- fdp : Structure et fonctions relatives aux files de prioritées
- triangulation : Structure et fonctions relatives à la triangulation et la génération du maillage
- math_fn : Fonctions mathématiques (géométriques) utiles au programme (prédicat orientation, signe, déterminant…)
- main : Point de départ de l'algorithme et gestion de l'affichage.
- ressources.h : #define du projet. Pas de *.c associé
Se reporter à la documentation pour plus d'information
- Makefile
- Doxyfile
- README.md
-
Compilation
make
-
Génération de la documentation (optionel)
make dox
-
Lancement du programme
./delaunay [-n NB_PTS] [-i INPUT_FILE | -z] [-f NB_SIMPX | -s GOF(%)] [-c DISPLAY_MODE]
-n NB_PTS
: nombre de points générés aléatoirement en x, y, (et z si l'option -i n'est pas renseignée). Defaut : 10000
Génération sur z
-
-i INPUT_FILE
et-z
: génération des points sur z, optionelles et mutuellement exclusives. Defaut : Génération des z selon une équation de chapeau mexicain.-
-i
: de la formeDATA/heightmap
. Oùheightmap
est une image d'extension quelconque (elle sera automatiquement convertie enheightmap.pgm
). Defaut : NULL -
-z
: génération aléatoire sur z
-
Conditions d'arrêt
-
-f NB_SIMPX
et-s GOF(%)
: conditions d'arrêt, optionnelles et mutuellement exclusives. Defaut : arrêt quand tout les points ont été insérés.-
-f
arrête la triangulation une fois le nombre de facettes générées égal àNB_SIMPX
(ou si le nombre maximum de facettes est atteint). -
-s
arrête la triangulation une fois le point le plus éloigné (en projection verticale) du triangle auquel il appartient inferieur àGOF/(100*zmax)
. Équivalent à un pourcentage d'amplitude maximale atteint. (-s 98
<=> 98% de fitting ).
-
Affichage
-
-c DISPLAY_MODE
: 0 ≤ DISPLAY_MODE ≤ 5. Defaut : 3- 0 : GL_POINTS
- 1 : GL_LINES
- 2 : GL_LINE_STRIP
- 3 : GL_LINE_LOOP
- 4 : GL_POLYGON
- 5 : NO_DISPLAY
-
Interaction avec le programme
-
Souris : Le bouton 1 de la souris une fois enfoncé permet une rotation de la visualisation instinctive. La roulette permet le zoom et le dezoom.
-
Clavier : Différentes touches ont été configurées.
- [SPACE] : 2D <=> 3D
- [C] : Couleur uniforme (verte) <=> Gradient
- [N] : Active/Desactive les normales (utile lors du passage en 2D)
- [NUMPAD{0, 1, 2, 3, 4}] : Changement entre les différents DISPLAY_MODE
- [T] : Active/Desactive l'affichage de ces informations dans la fenêtre.
- [ESCAPE] : Quitte le programme.
Les normales sont automatiquement désactivées (resp. activées) lors du passage en 2D (resp. 3D), mais peuvent être toutefois changées à l'aide de la touche [N] une fois le passage effectué.
-
Maxime Sainlot
Master 2 Informatique Graphique et Image - Projet Géométrie Algorithmique