- Domain devient MetaDomain lors de la création des fichiers .py.

- Suppression de quelques dépendances Metafor (principalement celles relatives aux fichiers "patchs" inclus entre des _WITH_METAFOR_) du code Oofelie: les classes Domain (création des objets "sets" par défauts), Set (VTK), Set3 (VTK), PositionSet (VTK), Element (VTK), ElementSet (VTK+autres) ne dépendent plus de Metafor
- Ajout de _WITH_METAFOR_ dans les fonctions de forme (oo_ff). Cette modif est temporaire vu qu'on utilisera bientôt plus ces classes.
- Les dépendances suivantes ne peuvent pas être évitées (faire un grep _WITH_METAFOR_ pour les voir):
- Le destructeur de Domain est foireux - plante avec python: on le compile pas dans Metafor.
- Les dépendances du kernel vis-à-vis de l'interpréteur OE qu'on ne veut pas compiler: vu le peu de modularité d'Oofelie, j'ai dû couper pas mal de code partout où on faisait référence à l'objet Function (dans Prop, MultiProp, ValidCodeList, Material)
- Des infos qu'on veut pas voir à l'écran (pivots négatifs, etc) - Skymatrix.
Quand serons nous "indépendants" d'Oofelie? (c'est-à-dire qu'on devra plus modifier les sources et qu'il n'y aura plus de traces de Metafor dans Oofelie)
- Il faut que OE se décide à faire une gestion dynamique de l'identification des PhySets. Autrement dit, une sorte d'object factory qui permet d'identifier chaque objet et lui associer un _PO. C'est ce qui va être le plus dur. Vu comme ça avance dans ce sens, on risque de devoir faire ça nous-même.
- Il faut que OE permette la compilation conditionnelle de l'interpréteur en modifiant nos _WITH_METAFOR_ par des _WITH_INTERPRETER_. Ou, encore mieux, en faire une lib facultative. Pour ça, il suffit de faire dériver l'ancien Funct et Function d'un même objet défini dans oeTools (simple).
- Il faut que OE paramètre les sorties standards (paraméter ce qu'on veut voir apparaitre à l'écran). Ca pourrait être fait simplement en généralisant l'utilisation de la variable debug ou, mieux, paramétrer chaque classe individuellement.
- Il faut que OE nettoie le destructeur de Domain qui est mauvais (ne marche qu'à cause des mémory leaks de l'interpréteur).
- Il faut que Luc commite l'élément avec les nouvelles fonctions de forme.
Mon but est d'y voir plus clair dans la gestion de mémoire de Metafor. Pour ce faire, j'aimerais ajouter des fonctions membres à nos objets qui permettent d'imprimer leur contenu et la taille mémoire associée. Ce travail revient à mettre sur papier (ou dans le code) quels sont les objets qui sont responsables d'autres. L'étape suivante est d'écrire (tous) les destructeurs. On pourra ainsi ajouter et supprimer des éléments et réorganiser la DB en conséquence (c'est un des objectifs du projet RW Prometa). Le but ultime est de faire un del domain sous python et la mémoire retombe à 0 (naïf le mec).
- Création des classes suivantes:
- MetaDomain: pour gérer la création des objets "par défaut". L'utilisateur Metafor doit utiliser un MetaDomain à partir de maintenant (sinon ça plante!). MetaDomain crée l'analyse Metafor et les autres objets Meta* ci-dessous...
- MetaAnalysis: pour créer une DB Metafor (MetaSet, MetaSet3). Metafor dérive de MetaAnalysis.
- MetaSet: remplace Set en ajoutant des fonctions VTK et bientôt des destructeurs de DB!
- MetaSet3: idem à MetaSet pour les Set3
- MetaElementSet: pour gérer le lien VTK de ElementSet. On pourra ajouter des fonctions propres à Metafor dans cette classe enrichie.
- MetaPositionSet: pour gérer le lien VTK de PositionSet.
- Déplacement des classes Dimension dans le kernel de Metafor. Ce sont des classes à nous, données par erreur à OE. Vu qu'on ne compile plus SFTK de OE, les deux versions peuvent coexister. Pour rappel, notre version est enrichie avec les tenseurs du 4ème ordre.
- Gestion du lien VTK (getDrawable) dans une classe à nous (c'était fait dans PhySet avant). J'ai donc défini une classe WithDrawable de laquelle dérivent les Objets qui peuvent se dessiner.
- Suppression de tous les fichiers "patchs" sauf mt_bit_pos.h qui gère nos identificateurs de PhySet.
Modifs du projet:
Ne plus compiler SFTK!
Fichiers supprimés:
mtGlobal/hasDrawable.h
mtPatch/mt_dim1d.h
mtPatch/mt_dim2d.h
mtPatch/mt_dim3d.h
mtPatch/mt_dimension_h.h
mtPatch/mt_domain_cpp.h
mtPatch/mt_domain_dom_add.h
mtPatch/mt_domain_if_not_found_int.h
mtPatch/mt_domain_set_analysis.h
mtPatch/mt_DoublePropElem_init.h
mtPatch/mt_DoublePropMater_init.h
mtPatch/mt_drawable.h
mtPatch/mt_drawable_h.h
mtPatch/mt_element.cpp
mtPatch/mt_element.h
mtPatch/mt_element_h.h
mtPatch/mt_elemenum_h.h
mtPatch/mt_elemset.cpp
mtPatch/mt_elemset.h
mtPatch/mt_materenum_h.h
mtPatch/mt_physet.cpp
mtPatch/mt_physet.h
mtPatch/mt_physet_constructor.h
mtPatch/mt_physet_copyconstructor.h
mtPatch/mt_physet_cpp.h
mtPatch/mt_physet_h.h
mtPatch/mt_positset_h.h
mtPatch/mt_propelem_init.h
mtPatch/mt_propmater_init.h
Nouveaux fichiers:
mtElements/MetaPropElem.cpp
mtElements/MetaPropElem.h
mtElements/mtDoublePropElemInit.cpp
mtKernel/Dimension.cpp
mtKernel/Dimension.h
mtKernel/Dimension1D.h
mtKernel/Dimension2D.cpp
mtKernel/Dimension2D.h
mtKernel/Dimension3D.h
mtKernel/MetaAnalysis.cpp
mtKernel/MetaAnalysis.h
mtKernel/MetaDomain.cpp
mtKernel/MetaDomain.h
mtKernel/MetaElementSet.cpp
mtKernel/MetaElementSet.h
mtKernel/MetaPositionSet.cpp
mtKernel/MetaPositionSet.h
mtKernel/MetaSet.cpp
mtKernel/MetaSet.h
mtKernel/MetaSet3.cpp
mtKernel/MetaSet3.h
mtKernel/MetaStep.cpp
mtKernel/MetaStep.h
mtKernel/WithDrawable.cpp
mtKernel/WithDrawable.h
mtMaterials/MetaPropMater.cpp
mtMaterials/MetaPropMater.h
mtMaterials/mtDoublePropMaterInit.cpp