3d mesh Processing Platform Présentation
tarix 03.01.2018 ölçüsü 445 b. #36862
Présentation Présentation Plateforme Objectifs Historique & réalisation Librairie CGAL Présentation Noyau, polyèdre Polyèdre enrichi Déploiement environnement dév. (Windows & Linux) Création composant (CGAL, IHM, …) Démonstration/utilisation Orientations futures
Définition Définition Objectif principal : fournir les outils & bases nécessaires pour que des développeurs (doctorants, stagiaires, ...) puissent développer rapidement des nouvelles applications. Effets immédiats : réalisation plus facile de démonstrations, collaborations entre équipes, etc.
Principes généraux Principes généraux Impact minimal d’un système d’exploitation et d’un langage de programmation, dans la mesure du possible. Ouverture : Intégration facile : pouvoir facilement utiliser/enrichir la plateforme, en utilisant la documentation associée. Identification claire des contributeurs et du responsable (un seul responsable par plateforme).
Etablir un cadre autour des nouvelles techniques de maillages 3D Etablir un cadre autour des nouvelles techniques de maillages 3D Etre orienté vers la portabilité et la modularité (notion de composant) Fournir une IHM et des fonctionnalités de base Fédérer/rassembler/pérenniser les développements de l’équipe M2DISCO
Historique (CDD 10 mois ingénieur) Historique (CDD 10 mois ingénieur) Point de départ : « A Tutorial on CGAL Polyhedron for Subdivision Algorithms ». Ajout modularité : notion de composant. Modification IHM : remplacement MFC (Windows) par wxWidgets (Windows/Linux/Mac OS X).
Réalisation (depuis fin septembre 2008) : 1/2 Réalisation (depuis fin septembre 2008) : 1/2 Finalisation version Linux, projet Codeblocks. 1er portage version Mac OS X , projet Codeblocks. Kit de déploiement/installation pour Linux et Windows. Machines virtuelles VMware Linux et Windows préinstallées. Tutoriels « déploiement/installation facile » MEPP pour Linux et Windows (GForge, Visual C++ Express, Codeblocks, SVN, CGAL, Boost, Xerces, wxWidgets).
Réalisation (depuis fin septembre 2008) : 2/2 Réalisation (depuis fin septembre 2008) : 2/2 Débogage. Résolution fuites mémoire. Jeux d’essai de maillages « fiables ». Apprentissage CGAL. Création « composant exemple CGAL » et tutoriel CGAL (en 4 étapes), maj. tutoriel développement composant. Rajout gestion évènements souris/clavier au niveau des composants. Ajout « cartouche uniforme » pour les composants : Help/About & Documentation/Notes/Change Log.
Computational Geometry Algorithms Library Librairie Open Source / utilisateurs académiques. GeometryFactory / licence commerciale. Consortium 7 instituts de recherche en Europe et Israël. INRIA Sophia-Antipolis fortement impliqué. Propose une implémentation des objets et des algorithmes utilisés couramment en géométrie algorithmique. Robuste, flexible, efficace. POO et polymorphisme : généricité / template. Utilise le paradigme de la librairie STL : conteneurs, itérateurs, circulateurs…
Noyau : Noyau : espace euclidien à 2 ou 3 dimensions , coordonnées cartésiennes ou homogènes, différents types de données (double, int, …). Représentation des polyèdres Construction incrémentale / lecture fichier : sommets puis connectivités (facettes). Structure de données basée sur le concept des demi-arêtes (orientées) : sommets / arêtes / facettes, relations d’incidence et d’adjacence.
Polyèdre enrichi : personnalisation de la classe de base CGAL::Polyhedron_3 Polyèdre enrichi : personnalisation de la classe de base CGAL::Polyhedron_3 Nouveaux attributs et méthodes associés au polyèdre : boite englobante, « pure quad », « pure triangle », etc. Items géométriques (sommets, demi-arêtes et facettes) également « enrichis » : normale, couleur, tag / sommets, normale, couleur, tag / facettes, tag / demi-arêtes.
Inscription à la Forge du LIRIS : http://gforge.liris.cnrs.fr . Inscription à la Forge du LIRIS : http://gforge.liris.cnrs.fr . Demande d’adhésion au projet MEPP. Installation et configuration de SVN1 / TortoiseSVN2. Récupération du projet MEPP. Installation des dépendances (wxWidgets, CGAL, Boost, Xerces)1. Installation et configuration de Code::Blocks1 / Visual C++ 2005 Express Edition2. Machines virtuelles VMware Linux et Windows* préinstallées. 1 pour Linux. 2 pour Windows. * pb licence.
Principe retenu : héritage multiple « conditionnel » Principe retenu : héritage multiple « conditionnel » Chaque composant peut (ou non) être inclus au moment de la compilation / biais d’un « #define ». Chaque composant peut donc (ou non) ainsi enrichir : les facettes, les demi-arêtes, les sommets, le polyèdre lui-même. Le polyèdre enrichi ainsi que ses items géométriques héritent donc de tous les enrichissements amenés par l’héritage respectif de chaque composant.
Principe retenu : liste de composants avec « insertion conditionnelle » Principe retenu : liste de composants avec « insertion conditionnelle » Selon le même principe que pour la partie CGAL , chaque composant peut (ou ne pas) être inclus au moment de la compilation / biais d’un « #define ». Chaque composant est (ou n’est pas) inséré dans la liste de composants « actifs ». Au moment de la création de l’IHM de base de MEPP, chaque composant « enrichit » donc le menu et la toolbar ainsi que les évènements associés. Tout au long de l’exécution de MEPP, chaque composant reçoit les évènements suivants : pre_draw, post_draw, OnMouseLeftDown, OnMouseLeftUp, OnMouseRightDown, OnMouseRightUp, OnMouseMotion, OnMouseWheel, OnChar.
Capture image/image vectorielle/vidéo Capture image/image vectorielle/vidéo Documenter : y compris développeurs composants ! Diffuser MEPP à l’extérieur : partenaires académiques, industriels, web, étudier problèmes licence. Log « séquence interaction » / replay & démo 4ème dimension : séquence de maillages / t ?
Dostları ilə paylaş: