Programmation dans Anatomist: liste des commandes et syntaxe


Syntaxe des commandes

Les commandes peuvent être
  • lues dans un fichier de config. depuis le menu "File / Replay scenario" de la fenêtre de contrôle
  • lues dans un fichier depuis le démarrage d'Anatomist: "anatomist -f fichier.his"
  • lues sur un "pipe nommé" ouvert au démarrage et sur lequel on peut écrire n'importe quand (-> télécommande): "anatomist -p nom_pipe"

  • La syntaxe des commandes est celle des arbres de la librairie graph de Dimitri Papadopoulos:

    *BEGIN TREE syntaxe
    attribut1    valeur1
    attribut2    valeur2
    ...
    *END
    La syntaxe est connue d'Anatomist (chaque commande déclare la syntaxe qu'elle attend).
    Chaque type syntaxique (ou type d'arbre, attribut donné après "*BEGIN TREE") décide des attributs qu'il est possible de trouver dans cet élément (arbre).
    Les attributs ont chacun un type, et peuvent être obligatoires ou non.
    Les types de base pour les attributs sont:
     
    Type Example
    int 12
    float -134.654
    string toto et tutu
    int_vector 1 20 -2 4 87
    float_vector 1.2 -3.4 0.123 -12.
    dictionary { '__syntax__' : 'dictionary', 'an_attribute' : [ 1, 5.3, 'value' ] }

    Les commandes sont encapsulées dans des arbres imbriqués a priori sur 2 niveaux: le premier précise si la commande doit être exécutée ou annulée: syntaxe EXECUTE ou UNDO. Le second niveau est la commande elle-même. Ex:

    *BEGIN TREE EXECUTE
    *BEGIN TREE LoadObject
    filename        toto.ima
    res_pointer    1
    *END
    *END
    Les objets et fenêtres sont manipulées en interne dans Anatomist par leurs pointeurs. Evidemment ce format n'est pas exportable dans les entrées/sorties disque. On passe donc par une conversion pointeur - identifiant entier, effectuée par les classes Serializer et Unserializer. Le principe est qu'un pointeur en mémoire est identifié depuis les commandes par un entier. L'entier est attribué au pointeur depuis sa création, par la commande qui résulte en la création de pointeur (nouvel objet chargé ou crée par fusion, nouvelle fenêtre ouverte, etc.). Ces commandes ont généralement un attribut "res_pointer " qui donne l'identifiant entier qui sera ensuite utilisé pour référer à ce pointeur (objet, fenêtre, référentiel...).
    Dans la suite, à chaque fois qu'on manipule des objets, des fenêtre, des référentiels, on les désigne par cet identifiant.
    Ex: la commande suivante met les objets d'identifiants 1, 2 et 3 dans les fenêtres d'identifiants 100 et 101.
    *BEGIN TREE EXECUTE
    *BEGIN TREE AddObject
    objects        1 2 3
    windows        100 101
    *END
    *END
    Attention: dans les "scripts" de commande, ne jamais confondre des identifiants d'éléments de types différents (par exemple un ID de fenêtre dans une liste d'objets), c'est pas du tout blindé pour le moment et ça doit pouvoir faire planter méchamment.

    Précisions sur les identifiants:

  • Il sont locaux à un "flux d'entrée" donné dans Anatomist: un fichier scénario, ou un pipe. En clair ça veut dire que lorsqu'on lit 2 fichiers de scénario à la suite, le second ne peut pas réutiliser les ID du premier sans les redéfinir. Par contre ils restent valables sur un pipe pendant toute sa durée de vie: on peut envoyer à la suite des fichiers sur le pipe ("cat fichier.his >> pipe" sous Unix) en réutilisant les mêmes ID pour désigner les mêmes éléments.
  • En principe rien n'empêche de redéfinir un ID déja utilisé. A ce moment-là l'ancienne affectation de cet entier disparaît et l'objet auquel il correspondait n'est plus accessible par les commandes. L'avantage c'est que ça permet de faire facilement des "scénarios génériques": appliquer une même série de commandes à des objets différents, en utilisant des fichiers de scénario tout faits, en initialisant juste l'ID par un nouveau chargement d'objet. Par ex. sur un pipe nommé, on peut envoyer d'abord une commande LoadObject définissant l'ID 1, puis un fichier de scénario tout fait utilisant (sans le définir) l'objet 1. Ensuite il est possible de lancer une autre commande LoadObject redéfinissant le même ID 1 et ré-envoyer le même scénario: il sera alors appliqué de la même façon au nouvel objet. Le système peut bien sur être amélioré, mais ça permet déjà de faire des choses.
  • Commandes génériques du coeur d'Anatomist:

    ActivateAction

    Triggers window action activation.

    AddObject

    Ajoute un objet dans une fenêtre

    ApplyBuiltinReferential has now been renamed LoadReferentialFromHeader

    AskTexExtrema

    Provoque l'affichage dans la sortie standard d'Anatomist des valeurs extrêmes de la texture de l'objet
    object int objet dont on demande les bornes de la texture

    AssignReferential

    Attribue (et crée au besoin) un référential à des objets et des fenêtres.
    ref_id int ID du référentiel (s'il n'existe pas, un nouveau référentiel est créé)
    objects int_vector (optionnel)
    windows int_vector (optionnel)
    central_ref int non nul si on désigne le référentiel central (indestructible) d'Anatomist
    filename string (optionnel) Nouveau dans Anatomist 3.1
    fichier contenant des information supplémentaires sur le référentiel: en particulier un nom et un UUID (identifiant unique). Si l'UUID lu depuis ce fichier existe déjà dans anatomist, le référentiel n'est pas recréé (sinon l'identifiant ne serait plus unique).
    On peut donc utiliser la commande AssignReferential juste pour charger des informations complémentaires sur un repère existant. Ce fichier est au format de type .minf (bien que l'extension soit généralement .referential).
    ref_uuid string (optionnel) Nouveau dans Anatomist 3.1
    Précise optionnellement qu'on veut utiliser un référentiel précis, d'identifiant unique (et persistant) connu, et déjà présent dans Anatomist. Ce paramètre est généralement incompatible avec le paramètre filename parce que l'UUID trouvé dans le fichier est potentiellement différent de celui précisé ici.

    Camera

    ChangePalette

    Modifie une palette de la liste (panneau de gauche de la fenêtre de palettes)
    name string nom de la palette dans la liste
    colors int_vector vecteurs de couleurs RGB (composantes à la suite)
    color_mode
    string (optionnel)
    "RGB" ou "RGBA"

    ClosePipe

    Ferme le pipe de lecture sur lequel cette commande est envoyée - fermeture de la télécommande, en d'autres termes.
    remove_file int flag présisant si Anatomist doit effacer le fichier pipe nommé après fermeture

    CloseWindow

    Ferme des fenêtres
    windows int_vector

    ControlsParams

    Ouvre ou ferme la fenête de paramètres ds contrôles
    window int Fenêtre depuis laquelle les paramètres des contrôles doivent être ouverts
    show int 0: fermer, 1: ouvrir

    CreateControlWindow

    Crée la fenêtre de contrôle. Comme c'est fait automatiquement dans l'appli, cette commande ne sert en fait à rien...

    CreateWindow

    Ouvre une nouvelle fenêtre

    DeleteAll

    New in Anatomist 3.1.7
    Deletes all elements loaded in Anatomist (objects, windows, referentials, transformations).
    No parameters.

    DeleteElement

    Détruit n'importe quel type d'élément anatomist connu (objets, fenêtres, référentiels)
    elements int_vector

    DeleteObject

    Détruit des objets
    objects int_vector

    DuplicateObject

    EventFilter

    Active/désactive et règle le filtre d'événement sur le canal de sortie associé à ce canal de commandes (cf commande Outpout)
    filter
    string
    liste d'événements à filtrer (c.a.d. à laiser voir si le filtrage par défaut est actif, ou au contraire à ne pas voir si le filtrage par défaut est inactif). filter est une liste de chaines séparées par des espaces
    unfilter
    string
    liste d'événements à ne plus filtrer: ceux-ci sont enlevés de la liste "filter" précédente du filtre.
    default_filtering
    int (0 ou 1)
    Le filtrage par défaut définit si le filtre fonctionne par "addition" ou par "soustraction". En mode de filtrage par défaut actif (ce qui est le cas au démarrrage), tous les événements sont filtrés par défaut (c.a.d. invisibles), la liste "filter" permet de voir les événements choisis (mode soustraction en quelque sorte).
    En mode de filtrage par défaut inactif, c'est l'inverse; tous les événements sont déclenchés sauf ceux donnés par la liste "filter" (mode addition).
    Si default_filtering est spécifié, le filtre est remis à zéro: listes de d'événements activés auparavant sont effacées.

    Exit

    Sort d'Anatomist

    ExportTexture

    Extrait la texture d'un objet texturé et l'écrit sur disque sous forme de texture
    filename
    string
    fichier de texture à écrire
    object
    int
    objet dont on veut exporter la texture
    time
    float (optionnel)
    temps auquel on veut extraire la texture (dans le cas d'objets temporels). Si time < 0 ou s'il n'est pas précisé, tous les temps seront extraits, la texture écrite sera temporelle (seuls le temps de la texture compte: par ex. une fusion maillage temporel + texture fixe ne donnera qu'un seul instant)

    ExternalReference

    ExtractTexture

    Nouveau dans Anatomist 3.0
    Extrait la texture d'un objet texturé et en fait un nouvel objet texture
    object
    int
    objet dont on veut exporter la texture
    time
    float (optionnel)
    temps auquel on veut extraire la texture (dans le cas d'objets temporels). Si time < 0 ou s'il n'est pas précisé, tous les temps seront extraits, la texture écrite sera temporelle (seuls le temps de la texture compte: par ex. une fusion maillage temporel + texture fixe ne donnera qu'un seul instant)
    res_pointer
    int (optionnel)
    objet résultat

    FusionInfo

    FusionObjects

    Crée un objet fusion à partir de plusieurs autres
    objects int_vector
    res_pointer int ID de l'objet fusion nouvellement crée
    method string méthode de fusion utilisée

    GenerateTexture

    Nouveau dans Anatomist 3.0
    Génère une texture vierge (valeur 0 partout) correspondant à un objet maillé (maillage, bucket...). La texture sera créée en mode "auto-généré" (c'est à dire que les valeurs seront générées par OpenGL à l'affichage, voir TexturingParams)
    object
    int (optionnel)
    objet sur lequel on construit la texture. S'il n'est pas donné, la texture n'aura qu'un seul point et ne sera utilisable qu'en mode "généré par OpenGL".
    dimension int (optionnel) dimension de la texture: 1 ou 2.
    Défaut: 1
    res_pointer (optionnel)
    int (optionnel)
    objet résultat

    GetInfo

    Demande à Anatomist des informations sur l'état de l'application (objets, fenêtres, ...). 
    Les informations sont données entre accolades sous forme de dictionnaire python (directement utilisable par un interpréteur python). 
    Pour obtenir des infos précises sur des objets ou fenêtres, utiliser la commande ObjectInfo.
    Si filename n'est pas précisé, les informations sont écrites sur la sortie courante (réglable avec la commande Output)
    aims_info int (bool) (optionnel) Nouveau dans Anatomist 3.1
    donne des informations sur la librairie AIMS (texte non structuré)
    filename string (optionnel) fichier ou du "pipe nommé" dans lequel Anatomist écrit les informations demandées
    linkcursor_lastpos
    int (bool) (optionnel)
    donne la dernière position cliquée pour le curseur lié (tous groupes confondus), dans le repère donné par le paramètre linkcursor_referential s'il est précisé
    linkcursor_referential
    int (optionnel)
    repère dans lequel la position du curseur lié doit être donnée (utilse seulement avec le paramètre linkcursor_lastpos). S'il n'est pas précisé, le "repère central" d'anatomist est utilisé
    list_commands int (bool) (optionnel) Nouveau dans Anatomist 3.1
    donne la liste des commandes connues par Anatomist, et leurs paramètres
    modules_info int (bool) (optionnel) Nouveau dans Anatomist 3.1
    donne la liste des modules et leur description
    name_objects
    string (optionnel)
    Permet de donner des noms (id) aux objets qui n'en ont pas dans le contexte courant.
    "top"
    : assigne des noms aux objets "toplevel" seulement (ceux qui n'ont pas de parent).
    "all", "yes", "1": assigne des noms à tous les objets contenus dans Anatomist
    name_referentials
    int (bool) (optionnel)
    Nouveau dans Anatomist 3.0
    assigne des noms (id) aux référentiels qui n'en ont pas dans le contexte courant
    name_transformations
    int (bool) (optionnel)
    Nouveau dans Anatomist 3.0
    assigne des noms (id) aux transformations qui n'en ont pas dans le contexte courant
    name_windows
    int (bool) (optionnel)
    assigne des noms (id) aux fenêtres qui n'en ont pas dans le contexte courant
    objects int (bool) (optionnel) demande la liste des ID des objets concernant le canal de communication courant
    palettes int (bool) (optionnel) demande la liste des palettes (noms)
    referentials int (bool) (optionnel) demande la liste des référentiels
    request_id string (optionnel) Nouveau dans Anatomist 3.0.3
    ID utilisé dans la réponse d'Anatomist pour identifier la requête. Cette option est utilisée par exemple par BrainVisa pour identifier les réponses à ses requêtes, qui ne sont pas nécéssairement traitées dans le bon ordre dans un contexte "multi-threadé"
    selections
    int (bool) (optionnel)
    donne les listes d'objets sélectionnés (par groupe)
    transformations int (bool) (optionnel) demande la liste des transformations
    version int (bool) (optionnel) Nouveau dans Anatomist 3.1
    demande la version d'Anatomist
    windows int (bool) (optionnel) demande la liste des ID des fenêtres

    GraphDisplayProperties

    GraphParams

    Change les options globales relatives aux graphes et aux sélections
    display_mode
    string (optionnel)
    Mode d'affichage des sous-objets contenus dans les noeuds de graphes: "mesh", "bucket", "all ", "first"
    label_attribute
    string (optionnel)
    Attribut des noeuds de graphes utilisé comme filtre de sélection, généralement "label " ou "name"
    save_only_modified
    int (optionnel)
    La sauvegarde d'un graphe sauve soit tous les sous-objets, soit essaie de ne sauver que ceux qui ont été modifiés (si le graphe est réécrit et pas déplacé)
    saving_mode
    string (optionnel)
    Mode de sauvegarde: "unchanged " (comme il a été lu), "global" (1 fichier pour tous les sous-objets de la même catégorie), ou "local" (1 fichier par sous-objet)
    selection_color
    int_vector  (optionnel)
    Couleur de sélection, sous la forme R G B [A [nA]], où A est l'opacité et NA (0 ou 1) est un booléen qui précise si l'opacité s'applique ou si on utilise celle de l'objet sélectionné.
    selection_color_inverse
    int  (optionnel)
    booléen, s'il est mis, la sélection inverse les couleurs plutôt que d'utiliser une couleur fixe
    set_base_directory
    int  (optionnel)
    booléen, s'il est mis les sous-objets d'un graphe sont sauvés dans un répertoire qui porte le même nom qui lui, avec l'extension ".data". Sinon l'ancien nom est gardé même si on change le nom du graphe
    show_tooltips
    int  (optionnel)
    Active ou invalide l'affichage des bulles qui indiquent les noms des noeuds de graphes dans les fenêtres 2D/3D
    use_hierarchy int (optionnel) déprécié depuis Anatomist 3.0: utilisez use_nomenclature maintenant.
    use_nomenclature int (optionnel)
    Nouveau dans Anatomist 3.0. Active ou invalide la colorisation des graphes en fonction de la nomenclature

    GroupObjects

    Crée une liste d'objets (groupe simple)
    objects int_vector
    res_pointer int ID de l'objet groupe nouvellement créé

    LinkedCursor

    Déplace le curseur lié sur les fenêtres du même groupe
    window int fenêtre déclenchant l'action
    position float_vector position 3D ou 4D

    LinkWindows

    Lie les fenêtres en un groupe
    windows int_vector fenêtres à lier
    group int (optionnel) Nouveau dans Anatomist 3.1. Numéro du groupe. -1 (défaut) signifie un nouveau groupe. On peut réutiliser un groupe existant.

    LoadGraphsubObjects

    LoadObject

    Charge un objet à partir d'un fichier disque

    LoadTransformation

    Initialise une transformation entre deux référentiels, soit à partir d'un fichier disque (matrice de translation et rotation, format ASCII), soit avec une matrice donnée directement.
    Il faut préciser soit le nom de fichier, soit la matrice de transformation. Si les deux sont donnés, seul le fichier est pris en compte.
    origin int Optionnel depuis Anatomist 3.1
    ID du référentiel de départ
    Lorsqu'il n'est pas précisé, il peut être donné par le fichier associé.
    S'il n'y a pas de fichier associé, ou qu'il ne contient pas d'information d'origine, alors un nouveau repère est créé.
    destination int Optionnel depuis Anatomist 3.1
    ID du référentiel d'arrivée
    Comme pour l'origine, le référentiel peut être donné par le fichier associé, ou créé à la volée.
    filename string (optionnel) nom du fichier de transformation
    matrix float_vector (optionnel) matrice de transformation: elle doit avoir 12 éléments à la suite (représentant 4 lignes de 3 colonnes). La 1ère ligne est la translation, le reste la matrice de rotation (même format que les fichiers)
    res_pointer int ID de la transformation résultante

    LoadReferentialFromHeader

    NewId

    Nouveau dans Anatomist 3.0.2
    Génère de nouveaux numéros d'ID pour des objets
    num_ids int (optionnel) nombre d'IDs à générer (1 par défaut)
    request_id string (optionnel) Nouveau dans Anatomist 3.0.3
    ID utilisé dans la réponse d'Anatomist pour identifier la requête. Cette option est utilisée par exemple par BrainVisa pour identifier les réponses à ses requêtes, qui ne sont pas nécéssairement traitées dans le bon ordre dans un contexte "multi-threadé"

    NewPalette

    Ajoute une nouvelle palette vierge dans la liste des palettes (liste de gauche dans les fenêtres de palettes). Contrairement aux autres éléments d'Anatomist, les palettes ne sont pas identifiées par un numéro mais par leur nom.
    name string nom donné à la nouvelle palette

    ObjectInfo

    Décrit aussi précisément que possible les éléments donnés par leur ID. Il peut s'agir d'objets anatomist, de fenêtres, de référentiels, de transformations, ... 
    La description est faite sous forme de dictionnaire python.
    Si filename n'est pas précisé, les informations sont écrites sur la sortie courante (réglable avec la commande Output)
    filename string (optionnel) fichier ou "pipe nommé" dans lequel Anatomist écrit les informations
    objects int_vector IDs des éléments à décrire
    name_children int (optionnel) si ce flag est non-nul, un ID est assigné à chaque sous-objet qui n'en a pas
    name_referentials int (optionnel) si ce flag est non-nul, un ID est assigné à chaque reférentiel qui n'en a pas et qui est cité par les infos
    request_id string (optionnel) Nouveau dans Anatomist 3.0.3
    ID utilisé dans la réponse d'Anatomist pour identifier la requête. Cette option est utilisée par exemple par BrainVisa pour identifier les réponses à ses requêtes, qui ne sont pas nécéssairement traitées dans le bon ordre dans un contexte "multi-threadé"

    Output

    Ouvre un "flux" de sortie, soit par un nom de fichier, soit par une connexion réseau TCP/IP (adresse internet + port)
    filename string (optionnel) fichier ou "pipe nommé"
    ip string (optionnel) adresse tcp/ip réseau de la machine à contacter
    port int (optionnel) port tcp/ip sur lequel se connecter par réseau
    default_context int (optionnel) indique s'il faut changer la sortie du contexte par défaut plutôt que le contexte courant

    PopupPalette

    Ouvre une fenêtre de réglage de palette pour les objets donnés
    objects int_vector

    ReloadObject

    Recharge des objets déjà en mémoire à partir de leurs fichiers disque (s'ils ont changé). Attention, ça ne marche pas pour tous les objets.
    objects int_vector

    RemoveObject

    SaveObject

    Sauvegarde un objet sur disque
    object int
    filename string (optionnel) s'il n'est pas donné, l'ancien nom de fichier de l'objet est utilisé

    SaveTransformation

    Ecrit un fichier de transformation
    filename
    string
    nom du fichier à écrire
    transformation
    int
    ID de la transformation

    Select

    Sélectionne et/ou désélectionne des objets
    objects int_vector (optionnel) objets à sélectionner
    unselect_objects int_vector (optionnel) objets à dé-sélectionner
    group int (optionnel) groupe de sélection concerné - par défaut, 0
    modifiers string (optionnel) attributs de la sélection: set, add ou toggle. Par défaut le mode est set si unselect_objects est vide, et add sinon.

    SelectByHierarchy

    Déprécié à partir d'Anatomist 3.0: cette commande est renommée SelectByNomenclature.

    SelectByNomenclature

    Nouveau dans Anatomist 3.0 et remplace SelectByHierarchy.
    Sélectionne par une nomenclature (action correspondant à un click sur une nomenclature dans un browser)
    nomenclature int Nouveau dans Anatomist 3.0. nomenclature à utiliser pour la sélection
    hierarchy int déprécié à partir d'Anatomist 3.0: remplacé par nomenclature
    names string liste des éléments de la nomenclature à sélectionner. Pour le moment on utilise l'espace pour séparer les noms (ce qui signifie qu'on ne peur pas mettre d'espaces dans les noms)
    group int (optionnel) groupe de fenêtres concerné
    modifiers string (optionnel) comme pour la commande Select
    Nouveau dans la version 1.30b (corrigée): nouveau mode "remove", qui permet d'enlever les noeuds concernés des fenêtres concernées pour les faire disparaître.

    Server

    Passe Anatomist en mode serveur. Dans ce mode, Anatomist écoute les connexions réseau. Chaque connexion est une source de commandes indépendante.
    port
    int
    port TCP à écouter

    SetControl

    Fixe le contrôle actif sur les fenêtres données
    windows int_vector
    control string

    SetMaterial

    SetObjectPalette

    Affecte une palette à des objets. Les paramètres (tous optionnels) permettent de régler le mode d'utilisation de la palette par les objets.
    objects int_vector
    palette string (optionnel depuis la version 3.2) nom de la palette principale à appliquer
    palette2 string (optionnel) palette secondaire (utile uniquement dans le cas de textures 2D)
    min float (optionnel) proportion min de la palette correspondant au min des valeurs de la texture de l'objet associées
    max float (optionnel) pareil pour le max. min max peuvent être négatifs (utilisation d'une sous-partie de lapalette) et max peut être supérieur à min (->palette inversée)
    min2 float (optionnel) pareil pour l'affectation de la 2ème palette sur la 2ème composante de texture (objets avec texture 2D)
    max2 float (optionnel) idem
    mixMethod string (optionnel) Mode de mélange des 2 palettes pour former une palette 2D: "LINEAR" ou "GEOMETRIC" pour le moment
    linMixFactor float (optionnel) facteur de mélange entre les 2 palettes en mode linéaire
    palette1Dmapping string (optionnel) Mode de parcours d'une palette 2D (image) pour une texture 1D: FirstLine (1ère ligne de l'image) ou Diagonal
    absoluteMode int (optionnel) Nouveau dans Anatomist 3.1.4
    Si ce flag est non-nul, les valeurs min, max, min2 et max2 sont des valeurs absolues dans la texture des objets concernés. Sinon (par défaut) on est en mode proportionnel.
    sizex int (optionnel) Nouveau dans Anatomist 3.2
    Taille X de la palette/texture interne utilisée par OpenGL.
    Ce paramètre peut être utile pour avoir une bonne précision de texture sur certains objets.
    sizey int (optionnel) Nouveau dans Anatomist 3.2
    Taille Y de la palette/texture interne utilisée par OpenGL.
    Ce paramètre peut être utile pour avoir une bonne précision de texture sur certains objets.

    ShowObject

    SliceParams

    TexturingParams

    WindowBlock

    WindowConfig

    Fixe les paramètres de configuration des fenêtres données (ça peut être varié)

    Commandes plus spécifiques:

    Fusion2DParams

    Règle les paramètres d'une fusion 2D. Cette commande est en grande partie obsolète à partir d'Anatomist 3.0. En fait, seul le paramètre reorder_objects a encore une utilité propre. Les autres paramètres sont maintenant dans la commande TexturingParams (puisqu'ils ne sont plus spécifiques aux fusions 2D).
    object int
    mode string (optionnel) linear, geometric ou linear_on_defined. This obsolete parameter is replaced by the one in TexturingParams, which supports many more modes.
    rate float (optionnel) taux de fusion (entre 0 et 1)
    reorder_objects int_vector (optionnel) numéros des objets dans le bon ordre

    Fusion3DParams

    Commandes des modules:

  • Module ROI :

  • AddNode

    Ajoute un noeud dans un graphe, avec éventuellement un bucket vide à l'intérieur
    graph int graphe auquel on ajoute un noeud
    res_pointer int ID du nouveau noeud créé
    name string (optionnel) nom de l'objet noeud 
    défaut: RoiArg
    syntax string (optionnel) attribut syntaxique du noeud 
    défaut: roi
    with_bucket int (optionnel) précise s'il faut créer un bucket dans le noeud 
    défaut: oui
    res_bucket int (optionnel) ID du bucket crée (s'il est crée)
    no_duplicate int (optionnel) si mis à 1, empêche de recréer des noeuds qui ont le même attribut "name". Défaut: 0

    CreateGraph

    Crée un graphe associé à un objet 2D (par ex. un volume). L'objet de départ donne ses dimensions (taille de voxel, extrêma) au nouveau graphe.
    object int objet 2D servant de "modèle" au graphe
    res_pointer int ID du nouveau graphe créé
    name string (optionnel) nom de l'objet graphe. Défaut: RoiArg.
    filename string (optionnel) Nouveau dans Anatomist 3.1.4
    nom de fichier associé au graphe. Défaut: aucun.
    syntax string (optionnel) attribut syntaxique du graphe. Défaut: RoiArg.

    PaintParams