Programmation dans Anatomist:
fabriquer un nouveau module


(mise à jour: 27/07/2001)

C'est relativement simple: il faut créer une classe dérivant de Module et l'instancier une fois:

  #include <anatomist/application/module.h>

  namespace anatomist
  {

    class MyModule: public Module
    {
    public:
      MyModule();
      virtual ~MyModule();
      virtual std::string name() const { return "MyModule"; }
      virtual std::string description() const { return "Performs lots of marvelous things" }
    };

  }

Pour instancier un module depuis une librairie dynamique, utilizez une variable statique (un booléen ou un pointeur, éviter d'utiliser un objet Module statique), par ex. dans le source du module en question:

  static bool myModuleInitialized = initMyModule();

  static bool initMyModule()
  {
    new MyModule;
    return true;
  }

Si le module apporte des nouveaux types d'objets, de fenêtres, de contrôles, ou des nouvelles options pour certains objets, on peut surcharger les fonctions correspondantes de la classe Module et leur faire faire les initialisations nécéssaires. Voir les pages de docs correspondantes pour plus de détails (quand elles seront à jour...)