Hi!
The BSpline package allows one to define hierarchical bundle edges.
These screenshots have been made using the script below, runnable in a Glamour-based
Roassal Easel open on a class group in Moose.
More screenshot on :
https://www.facebook.com/media/set/?set=a.511442275609041.1073741827.340543…
Cheers,
Alexandre
|bs superclassEdges lastlevel|
view shape circle size: 10.
view nodes: classGroup.
superclassEdges := view edgesFrom: #superclass.
"
view treeLayout userDefinedEdges: superclassEdges.
"
view radialTreeLayout userDefinedEdges: superclassEdges.
"
view forceBasedLayout userDefinedEdges: superclassEdges.
"
lastlevel := classGroup select: [ :cls | (cls subclassHierarchy size) == 0 ].
"Blue"
bs := (ROBSplineLine new).
bs alpha: 0.8.
bs setDiscovery: [ :cls | cls superclass ].
bs color: (Color blue alpha: 0.3).
view shape: bs.
view edges: lastlevel from: #yourself toAll: [ :cls | (cls queryAllOutgoingInvocations
atTypeScope) select: [:clsa | (clsa subclassHierarchy size) == 0 and: [ cls name size odd
] ]].
"Red"
bs := (ROBSplineLine new).
bs alpha: 0.8.
bs setDiscovery: [ :cls | cls superclass ].
bs color: (Color red alpha: 0.3).
view shape: bs.
view edges: lastlevel from: #yourself toAll: [ :cls | (cls queryAllOutgoingInvocations
atTypeScope) select: [:clsa | (clsa subclassHierarchy size) == 0 and: [ cls name size even
] ]].
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel
http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.