Begin forwarded message:
From: Igor Stasenko siguctua@gmail.com Subject: Re: Else I can do a mail to the moose mailing... Date: May 4, 2013 12:45:36 AM GMT+02:00 To: Stéphane Ducasse stephane.ducasse@inria.fr
So i spent a little time to make an experiment, how fast i can render the tree visualization.
(gray screenshot) This one i can zoom& pan in real time without even noticing any sort of delay:
(AthensTreeView openOn: Collection extentBlock: [ :cls | (cls allInstVarNames size+1)*5 @ (cls methodDict size + 1) ] childsBlock: [ :cls | cls subclasses ]).
(white screenshot) This one a bit sluggish, because of drawing too many curves (but if you comment curve drawing - connecting each child with its parent, and leave drawing only boxes.. it will be quite fast.. for real-time zoom & pan)
(AthensTreeView openOn: Object extentBlock: [ :cls | (cls allInstVarNames size+1)*5 @ (cls methodDict size + 1) ] childsBlock: [ :cls | cls subclasses ]). And sure, smart people usually employ different visualizations for such large trees, since it makes no sense: Object withAllSubclasses size 6882
but even without it, if you limit max zoom, you can go very fast ( there is a lot of literature how you can do geometry culling (by occluding unnecessary geometry to not waste cycles on it, since it is outside of view anyways)
-- Best regards, Igor Stasenko.