3d mesh Processing Platform Présentation



Yüklə 445 b.
tarix03.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éveloppement composant

    • 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

  • 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 ?



Yüklə 445 b.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin