
- PieceWiseLinearFunction::setdata devient setData. A vos Powergreps...
- Nettoyage du main:
- Ajout de l'option "-help" pour l'aide sur les options
- "-novtk" devient "-nogui"
- Nouvelle sortie TSC-MEM:
- J'ai ajouté un extracteur concernant la mémoire utilisée
(la valeur "peak"). Cette info est également disponible
sous python par la commande wrap.metafor.getPeakMem()
Une nouvelle lib est nécessaire : psapi.lib (à ajouter à votre ligne de link)
- Cercle fermé 2D:
- Il est opérationnel. Définition : curset.copy(Circle(no, centerNo, radius)) avec no = numéro donné au nouveau cercle, centerNo = numéro du point "centre" et radius, un scalaire définissant la valeur du rayon. Question perfs, j'obtiens pas le gain attendu (169 sec au lieu de 177 pour apps.qs.nine par expl.) ; par contre, la facilité d'utilisation est bien là... J'ai changé "nine" pour qu'il utilise ces nouvelles entités géométriques.
- Le cercle fermé est paramétré de 0 à 1 (comme toutes les courbes de Metafor) dans le sens horlogique. Ca permet d'obtenir une normale qui pointe vers l'extérieur par défaut (ça donne un cylindre plein pour le contact). Pour l'instant , j'ai pas programmé une manière de "renverser" le cercle et obtenir une normale intérieure (pour obtenir un conteneur cylindrique creux en contact). Si qqun en a besoin, "on" le fera.
- Courbes "python":
- Ajout de l'objet PythonCurve qui permet de définir des nouvelles courbes géométriques par l'intermédiaire de l'interpréteur python. Par exemple, s'il vous faut une courbe du type "parabole" pour définir une géométrie d'un cas test où une matrice de contact, il est maintenant inutile de rentrer dans le code source de Metafor: une simple définition sous python suffit (c'est magique). Pour pouvoir voir et mailler la courbe, il faut définir une fonction d'évaluation. Pour faire du contact, il faut en plus une fonction de calcul de la tangente, de sa dérivée et de l'abscisse curviligne. Pour plus de détails, voir le module toolbox.curves. Il contient déjà un objet Parabola que vous pouvez utiliser (voir apps.qs.parabola) comme une autre courbe. Pour définir une parabole : curset.copy( Parabola(no, p1, p2, p3)) où no est le numéro et p1, p2, p3 sont les numéros des 3 points de passage. Cet exemple montre aussi comment dériver une classe python d'une classe C++. Le résultat est assez impressionnant (en tout cas, moi ça m'impressionne) et c'est plutôt rapide malgré le passage dans python.
- Bref, inutile de demander un nouveau type de courbe aux programmeurs Metafor; l'utilisateur peut le faire lui-même. Les excuses bidons du type "j'attends que ça existe dans Metafor pour travailler" ne tiennent plus!
- Je compte faire ça pour les surfaces dans le futur.
- La doc a été mise à jour : voir ici!
- Petit problème dans la mise à jour de l'affichage VTK d'une PythonCurve via la fenêtre BWin : l'interpreteur python plante lamentablement lorsqu'on appuie sur "update"... Faudra que je règle ça mais je vois pas trop la cause pour l'instant (des conflits de threads certainement).
Fichiers ajoutés
A mtViz/vtk/CircleDrawable.cpp
A mtViz/vtk/CircleDrawable.h
A mtViz/vtk/PythonCurveDrawable.cpp
A mtViz/vtk/PythonCurveDrawable.h
A toolbox/curves.py
A mtGeo/mtGeoPythonCurve.cpp
A mtGeo/mtGeoPythonCurve.h
A apps/qs/parabola.py
A mtGlobal/systemCmds.cpp
A mtGlobal/systemCmds.h