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.
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^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.