Using Athens for real ...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Using Athens for real ...

Stéphane Ducasse


Begin forwarded message:

From: Igor Stasenko <[hidden email]>
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 <[hidden email]>

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.






_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

Screen Shot 2013-05-04 at 12.33.02 AM.png (79K) Download Attachment
Screen Shot 2013-05-04 at 12.35.35 AM.png (99K) Download Attachment
AthensTreeView.st (3K) Download Attachment
AthensSimpleTreeNode.st (5K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Pharo-project] Using Athens for real ...

stephane ducasse
Do make it work you load Athens 2.1 but this is really cool.
I love vector graphics :)





Begin forwarded message:

From: Igor Stasenko <[hidden email]>
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 <[hidden email]>

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
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev

Screen Shot 2013-05-04 at 10.01.41 AM.pdf (73K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Using Athens for real ...

abergel
In reply to this post by Stéphane Ducasse
Yes, looks exciting!

Alexandre


On May 4, 2013, at 3:41 AM, Stéphane Ducasse <[hidden email]> wrote:

>
>
> Begin forwarded message:
>
>> From: Igor Stasenko <[hidden email]>
>> 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 <[hidden email]>
>>
>> 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
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev