[Pharo-project] Using Athens for real ...
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.
Yes that view is very neat! Especially for debugging, maintaining the Smalltalk immediate feedback principle :0 On 2013-05-04, at 09:41, 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>
On 4 May 2013 12:31, Camillo Bruni <camillobruni@gmail.com> wrote:
Yes that view is very neat! Especially for debugging, maintaining the Smalltalk immediate feedback principle :0
and after i finish with path geometry calcucations, you can implement "clickable" things, no matter what their shape :) -- Best regards, Igor Stasenko.
On May 4, 2013, at 7:22 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 4 May 2013 12:31, Camillo Bruni <camillobruni@gmail.com> wrote:
Yes that view is very neat! Especially for debugging, maintaining the Smalltalk immediate feedback principle :0
and after i finish with path geometry calcucations, you can implement "clickable" things, no matter what their shape :)
arghhhhhh this is too cool :) I want that ;D The future will be massively fun :) Stef
Indeed. This is so exciting! Doru On May 4, 2013, at 8:00 PM, stephane ducasse <stephane.ducasse@free.fr> wrote:
On May 4, 2013, at 7:22 PM, Igor Stasenko <siguctua@gmail.com> wrote:
On 4 May 2013 12:31, Camillo Bruni <camillobruni@gmail.com> wrote:
Yes that view is very neat! Especially for debugging, maintaining the Smalltalk immediate feedback principle :0
and after i finish with path geometry calcucations, you can implement "clickable" things, no matter what their shape :)
arghhhhhh this is too cool :) I want that ;D The future will be massively fun :) Stef
-- www.tudorgirba.com "In a world where everything is moving ever faster, one might have better chances to win by moving slower."
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
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
participants (6)
-
Alexandre Bergel -
Camillo Bruni -
Igor Stasenko -
stephane ducasse -
Stéphane Ducasse -
Tudor Girba