Begin forwarded message:
From: Igor Stasenko <siguctua(a)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(a)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.