[email protected] - laboratoire d'informatique en image et systèmes...

16
[email protected] - http://liris.cnrs.fr/martial.tola Laboratoire d'InfoRmatique en Image et Systèmes d'information UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université Lumière Lyon 2/Ecole Centrale d Université Claude Bernard Lyon 1, bâtiment Nautibus 43, boulevard du 11 novembre 1918 — F-69622 Villeurbanne cedex http://liris.cnrs.fr UMR 5205 Martial TOLA - 03/02/2009 MEPP - 03/02/2009 MEPP 3D MEsh Processing Platform

Upload: guinevere-bour

Post on 03-Apr-2015

102 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

[email protected] - http://liris.cnrs.fr/martial.tola

Laboratoire d'InfoRmatique en Image et Systèmes d'informationLIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université Lumière Lyon 2/Ecole Centrale de Lyon

Université Claude Bernard Lyon 1, bâtiment Nautibus43, boulevard du 11 novembre 1918 — F-69622 Villeurbanne cedex

http://liris.cnrs.fr

UMR 5205

Martial TOLA - 03/02/2009

MEPP - 03/02/2009

MEPP

3D MEsh Processing Platform

Page 2: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

MEPP - 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

Page 3: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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.

Page 4: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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).

Page 5: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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

Page 6: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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).

Page 7: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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).

Page 8: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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.

Page 9: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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…

Page 10: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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.

Page 11: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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.

Page 12: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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.

Page 13: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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.

Page 14: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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.

Page 15: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

MEPP - 03/02/2009 15

Démonstration/utilisation

Page 16: Martial.tola@liris.cnrs.fr -  Laboratoire d'InfoRmatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de

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 ?