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.
Do make it work you load Athens 2.1 but this is really cool. I love vector graphics :)
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.
<Screen Shot 2013-05-04 at 12.33.02 AM.png> <Screen Shot 2013-05-04 at 12.35.35 AM.png> <AthensTreeView.st> <AthensSimpleTreeNode.st>
Yes, looks exciting!
Alexandre
On May 4, 2013, at 3:41 AM, Stéphane Ducasse stephane.ducasse@inria.fr wrote:
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.
<Screen Shot 2013-05-04 at 12.33.02 AM.png> <Screen Shot 2013-05-04 at 12.35.35 AM.png> <AthensTreeView.st> <AthensSimpleTreeNode.st>
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev