Etablir un cadre autour des nouvelles techniques de maillages 3D 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
Environnement de développement basé sur la classe «Polyhedron» de CGAL Environnement de développement basé sur la classe «Polyhedron» de CGAL - 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»
Critères requis 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
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
Fournit une représentation des polyèdres (maillages 3D) 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.
Problème : comment intégrer les travaux de chaque contributeur au sein de la plateforme ? 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
Sélection des composants à la compilation (CMake) 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
- ...
Dostları ilə paylaş: |