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.3405434...
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 ] ]].