English version





Présentation
  • Page Principale
  • Opérations et architecture
  • Capture d'écrans

  • Documentations
  • Installation
  • Doc. utilisateur
  • Doc. programmeur

  • Download
  • Sources
  • Exemples

  • Participants
  • Développeurs
  • Remerciements



  • Chef de projet:
  • Guillaume DAMIAND
  •            

    MOKA

    Modeleur topologique 3D
    Contact: guillaume.damiand@liris.cnrs.fr
               

    Opérations et Architecture

    oOpérations

      MOKA contient actuellement plus de 20 types d'opérations différentes, qui se déclinent pour la plupart en plusieurs variantes selon la dimension ou selon plusieurs options. On peut regrouper les principales opérations en grandes catégories :

      • Les opérations de bases : ce sont les créations d'objets de base (polygones, pyramides, cubes, tores, sphères...), les coutures (mise en relation d'objets par identification de cellules), décousures (les opérations inverse) et plaquages ;
      • Les opérations de modifications : par exemple les suppressions et les contractions de cellules, les opérations de triangulations ou quadrangulations, les insertions de cellules ou les fermetures ;
      • Les extrusions qui peuvent être simple, le long d'un chemin ou par révolution ;
      • Le chanfreinage (ou arrondi) de sommets ou d'arêtes
      • Les maillages ou lissage qui permettent de raffiner une subdivision, avec dans le cas des lissages une modification de la géométrie pour obtenir des formes plus douces ;
      • Les opérations booléennes qui sont primordiales dans un modeleur, et qui permettent l'union, l'intersection et la différence d'objets ;
      • Les opérations de calculs topologiques : calcul des nombres de cellules de la caractéristique d'Euler, et des groupes d'homologies. (qui incluent les nombres de Betti.

    oArchitecture

      L'architecture de MOKA s'inspire du schéma classique modèle-vue-contrôleur. De plus, le logiciel est découpé en plusieurs librairies ce qui facilite sa modularité et donc son extension.

      • lib-gmapkernel : le noyau de MOKA c'est à dire la définition des 3-G-cartes et les principales opérations ;
      • lib-controleur : le contrôleur est une surcouche faisant le lien entre un modèle et les éventuelles IHM. Cette partie est générique sans lien avec les cartes ;
      • lib-controleur-gmap : la partie du contrôleur qui est en lien avec le noyau (lib-gmapkernel). Le contrôleur contient toute les opérations du noyau mais avec une surcouche ajoutant la gestion des paramètres des opérations ainsi que des notions de vues permettant de calculer les listes openGL nécessaire à l'affichage. De ce fait, une ihm doit uniquement faire appel aux fonctions du contrôler et n'accède normalement jamais directement au modèle ;
      • les opérations plus évoluées sont séparées dans des modules qui peuvent être activés ou désactivés selon les besoins. Chaque module est défini dans une librairie séparée. Pour le moment nous avons les modules suivants :
        • lib-mesh les opérations de maillage et lissage
        • lib-rounding les opérations d'arrondi (chanfreinage)
        • lib-corefinement les opérations de corafinement (à la base des opérations booléenne)
        • lib-tools quelques opérations utilisées dans d'autres modules

        D'autres modules sont des opérations spécifiques dédié à des thématiques de recherche :
        • lib-spamod un module de visualisation des objets sous forme discrète (pixels en 2D et voxels en 3D)
        • lib-extraction-images un module permettant d'extraire une carte à partir d'une image 3D
        • lib-homology les opérations de calcul des groupes d'homologie

    oBugs

      Les opérations se trouvant dans le noyau (lib-gmapkernel) sont stables et ne doivent pas provoquer de plantage du logiciel. Cependant, envoyez nous un email si vous rencontrez des problèmes.

      Par contre, il est possible que certaines opérations se trouvant dans les modules comportent encore quelques bugs. La aussi, envoyez nous un email pour nous signaler les problèmes que vous avez rencontrés.