3D MEsh Processing Platform MEPP 3D MEsh Processing Platform Présentation équipe EDP - MEPP - 25/11/2010
Présentation : objectifs Etablir un cadre autour des nouvelles techniques de maillages 3D Fédérer / rassembler / pérenniser les développements de l’équipe M2DISCO Impact minimal d’un système d’exploitation et d’un langage de programmation, dans la mesure du possible (portabilité) Etre orienté vers la modularité (notion de composant) Fournir une IHM et des fonctionnalités de base pour un développement plus rapide (intégration plus facile) Installation simplifiée et rapide Présentation équipe EDP - MEPP - 25/11/2010
Présentation : plateforme Environnement de développement basé sur la classe «Polyhedron» de CGAL Fonctionnalités / maillages chargement : maillages multiples (mode «space», plusieurs objets chargés dans une même scène) séquences de maillages (mode «time», visualisation grâce à un magnétoscope 3D+t) traitement visualisation Public visé ingénieurs, chercheurs étudiants stagiaires (prise en main rapide, facilitée par l’architecture proposée) → MEPP est open source (GPL v3) Forge/svn → https://gforge.liris.cnrs.fr/projects/mepp Machine virtuelle VMware avec Linux Ubuntu 10.04 «ready to start» Présentation équipe EDP - MEPP - 25/11/2010
Librairies / outils utilisés Critères requis C++, open source Multiplateforme (Windows, Linux et Mac OS X) Robuste, flexible, efficace MEPP utilise les librairies : CGAL Qt libQGLViewer Boost MEPP est généré par un système de construction multiplateforme CMake Présentation équipe EDP - MEPP - 25/11/2010
Librairie CGAL : présentation Computational Geometry Algorithms Library Propose une implémentation des objets et des algorithmes utilisés couramment en géométrie algorithmique Librairie Open Source / utilisateurs académiques GeometryFactory / licence commerciale Consortium 7 instituts de recherche en Europe et Israël INRIA Sophia-Antipolis fortement impliqué Robuste, flexible, efficace POO et polymorphisme : généricité / template Présentation équipe EDP - MEPP - 25/11/2010
Librairie CGAL : polyèdre Fournit une représentation des polyèdres (maillages 3D) → 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, navigation rapide et aisée au sein du maillage. Présentation équipe EDP - MEPP - 25/11/2010
Développement composant Problème : comment intégrer les travaux de chaque contributeur au sein de la plateforme ? Solution retenue : héritage multiple « conditionnel » (→ polyhèdre enrichi) Chaque composant peut donc (ou non) ainsi enrichir : les items géométriques (sommets, demi-arêtes, facettes), le polyèdre lui-même, l’IHM du logiciel (menu, toolbar, évènements, …). 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 Présentation équipe EDP - MEPP - 25/11/2010
Développement composant (suite) Sélection des composants à la compilation (CMake) Mise en œuvre sous forme de plugins (.dll/.so/.dylib) avec détection et chargement automatique Possibilité de contribuer à la plateforme par la création de nouveaux composants Création simplifiée à partir de l’exemple fourni Composants disponibles (8 libres / 10 existants) Analyse de courbure Opérations booléennes : union, intersection, soustraction Segmentation (Variational Shape Approximation) Distance perceptuelle ... Présentation équipe EDP - MEPP - 25/11/2010
MEPP: 3D MEsh Processing Platform Présentation équipe EDP - MEPP - 25/11/2010