1 / 16

MEPP

MEPP. 3D MEsh Processing Platform. MEPP : MEsh Processing Platform. Présentation Plateforme Objectifs Historique & réalisation Librairie CGAL Présentation Noyau, polyèdre Polyèdre enrichi Développement composant Déploiement environnement dév. (Windows & Linux)

moswen
Download Presentation

MEPP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MEPP 3D MEsh Processing Platform Martial TOLA - 03/02/2009

  2. MEPP : MEsh Processing Platform • Présentation • Plateforme • Objectifs • Historique & réalisation • Librairie CGAL • Présentation • Noyau, polyèdre • Polyèdre enrichi • Développement composant • Déploiement environnement dév. (Windows & Linux) • Création composant (CGAL, IHM, …) • Démonstration/utilisation • Orientations futures MEPP - 03/02/2009

  3. Présentation : plateforme • 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. MEPP - 03/02/2009

  4. Présentation : plateforme • Principes généraux • Impact minimal d’un système d’exploitation et d’un langage de programmation, dans la mesure du possible. • Ouverture : • basée sur une architecture modulaire, • pouvoir s’enrichir facilement avec des nouvelles fonctionnalités/modules. • 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). MEPP - 03/02/2009

  5. Présentation : objectifs • 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 MEPP - 03/02/2009

  6. Présentation : historique & réalisation • 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). MEPP - 03/02/2009

  7. Présentation : historique & réalisation • 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). MEPP - 03/02/2009

  8. Présentation : historique & réalisation • 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. MEPP - 03/02/2009

  9. Librairie CGAL : présentation • 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… MEPP - 03/02/2009

  10. Librairie CGAL : noyau, polyèdre • 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. MEPP - 03/02/2009

  11. Librairie CGAL : polyèdre enrichi • 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. MEPP - 03/02/2009

  12. Développement composant : déploiement environnement dév. • 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. MEPP - 03/02/2009

  13. Développement composant : création composant (CGAL) • 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. MEPP - 03/02/2009

  14. Développement composant : création composant (IHM) • 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. MEPP - 03/02/2009

  15. Démonstration/utilisation MEPP - 03/02/2009

  16. Orientations futures • 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 ? MEPP - 03/02/2009

More Related