Drawable::getDrawable() pour éclaircir la gestion de la mémoire. Ce lien est en effet ennuyeux puisqu'il permet de lier le pipeline VTK d'un objet à celui d'un autre. Quand on veut supprimer un objet de la fenêtre graphique, on ne sait plus trop ce qui est partagé. Lorsque getDrawable sera définitivement supprimée, on pourra alors ajouter de nouvelles fonctionnalités facilement sans avoir peur d'exploser la RAM.DBSet et DBSet3 qui géraient auparavant les champs affichés (scalaires et vecteurs). C'est maintenant le ElementSetDrawable qui s'en occupe.CurrentPositionsSets et PositionSetDrawable. Gère la postion courante des points pour VTK. Tout ceci est maintenant géré en une seule fonction dans ElementSetDrawable.Drawables. La nouvelle philosophie est la suivante: un Drawable gère complètement l'affichage de ses composants. Il ne va donc plus piocher des acteurs à gauche et à droite (pour les raisons de mémoire données ci-dessus). Autrement dit, le SideSetDrawable affiche toutes les faces. Le SideDrawable affiche une seule face. On voit donc que le SideDrawable est un cas particulier du SideSetDrawable. En allant plus loin, on peut même dire que le SkinDrawable et le SkinSetDrawable ont la même fonction: afficher une liste de faces. Il est donc logique de définir une classe commune à toutes celles-ci. De même, une série de Drawables affichent des ensembles de lignes (CurveDrawable, CurveSetDrawable, WireDrawable et WiresSetDrawable). J'ai nommé les classes de base MachinCloud (parce que ma première classe de base était PointCloud, nuage de points). On a donc au final PointCloud, WireCloud, SkinCloud etSolidCloud.vtkDataSet de VTK) affichées à l'écran. Auparavant, je construisais soit un ensemble de points qui correspondait à la liste complète des noeuds/points de la géométrie, soit une liste propre au Drawable concerné. Les deux méthodes avaient des inconvénients: std::map au niveau du Drawable.Labeled s'en charge.WithNormal s'en charge. J'ai ajouté une normale aux courbes indiquant leur sens. Pour les autres entités (surfaces, contours), je n'ai tracé qu'une seule normale au milieu (c'est plus léger et c'est même plus clair dans certains cas). Les faces n'ont plus de normales (pour l'instant).VTKManager: création d'une classe qui gère l'axe (Axe), une qui gère le titre (Title), une qui gère le plan de coupe (CuttingPlane) et la scalarbar (ScalarBar). C'est plus clair et moins gourmand en mémoire (les acteurs sont désalloués si on n'affiche pas ces objets).R mtDrawables/ArcDrawable.cpp R mtDrawables/ArcDrawable.h R mtDrawables/BezierCurveDrawable.cpp R mtDrawables/BezierCurveDrawable.h R mtDrawables/CircleDrawable.cpp R mtDrawables/CircleDrawable.h R mtDrawables/Cloud.cpp R mtDrawables/Cloud.h R mtDrawables/CoonsDrawable.cpp R mtDrawables/CoonsDrawable.h R mtDrawables/CubicSplineDrawable.cpp R mtDrawables/CubicSplineDrawable.h R mtDrawables/CubicSplineSegDrawable.cpp R mtDrawables/CubicSplineSegDrawable.h R mtDrawables/DBSet3Drawable.cpp R mtDrawables/DBSet3Drawable.h R mtDrawables/DBSetDrawable.cpp R mtDrawables/DBSetDrawable.h R mtDrawables/LineDrawable.cpp R mtDrawables/LineDrawable.h R mtDrawables/NurbsCurveDrawable.cpp R mtDrawables/NurbsCurveDrawable.h R mtDrawables/NurbsSurfaceDrawable.cpp R mtDrawables/NurbsSurfaceDrawable.h R mtDrawables/PlaneDrawable.cpp R mtDrawables/PlaneDrawable.h A mtDrawables/PointCloud.cpp A mtDrawables/PointCloud.h R mtDrawables/PositionSetDrawable.cpp R mtDrawables/PositionSetDrawable.h R mtDrawables/PythonCurveDrawable.cpp R mtDrawables/PythonCurveDrawable.h R mtDrawables/RevolutionSurfaceDrawable.cpp R mtDrawables/RevolutionSurfaceDrawable.h A mtDrawables/SkinCloud.cpp A mtDrawables/SkinCloud.h A mtDrawables/SolidCloud.cpp A mtDrawables/SolidCloud.h R mtDrawables/SplineSurfaceDrawable.cpp R mtDrawables/SplineSurfaceDrawable.h A mtDrawables/SurfaceCloud.cpp A mtDrawables/SurfaceCloud.h R mtDrawables/Tm2Volume2DElementDrawable.cpp R mtDrawables/Tm2Volume2DElementDrawable.h R mtDrawables/Tm2Volume3DElementDrawable.cpp R mtDrawables/Tm2Volume3DElementDrawable.h A mtDrawables/VolumeDrawable.cpp A mtDrawables/VolumeDrawable.h A mtDrawables/VolumeSetDrawable.cpp A mtDrawables/VolumeSetDrawable.h A mtDrawables/WireCloud.cpp A mtDrawables/WireCloud.h A mtDrawables/WithNormal.cpp A mtDrawables/WithNormal.h A mtViz/Axes.cpp A mtViz/Axes.h R mtViz/CurrentPositionsSets.cpp R mtViz/CurrentPositionsSets.h A mtViz/CuttingPlane.cpp A mtViz/CuttingPlane.h A mtViz/ScalarBar.cpp A mtViz/ScalarBar.h A mtViz/Title.cpp A mtViz/Title.h
— Romain BOMAN 2006/05/10 16:24