[Sorry for having part of this email in French, we are talking about
optimizing and graph traversal in SqMondrian]
J'ai compris comment fonctionnait la traversée et
le dessin des
éléments/shapes dans Mondrian. En fait, les deux sont mixés
A chaque fois que tu fais le display sur une shape, tu as :
Shape>>display: anElement on: aCanvas
(...)
next display: anElement on: aCanvas
Sauf que next est toujours à nil dans la version actuelle de
Mondrian !
Legacy code.
Yes, I fixed this.
et là c'est bon, on repart sur
GraphElement>>display: anElement on: aCanvas
aCanvas translateBy: self bounds origin during: [ :canvas |
self nodes do: [ :each | each displayOn: canvas ].
self edges do: [ :each | each displayOn: canvas ]
]
NB: anElement est inutile dans les Element
You're right. We should fix this.
La cerise sur le gateau : quand on lance le dessin sur
le root node,
on a
Element>>shape
display: self
on: aCanvas
mais shape est nil pour le Root node, donc on passe par
UndefinedObject et là c'est bon :)
OK il devrait y avoir moyen de clarifier ça pour faire la traversée
directement niveau node dans displayOn: et pas via les Shape.
Yes, the shape knows nothing about the graph structure.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.