Classes used to place entities and relations and to route connection using different methods in Vergil.

Graph layout support using Kieler, from University of Kiel.

Graph -> Automatic Layout [Ctrl/Cmd-T] (Recommended)

Automatic placement of nodes and routing of edges by specifying bendpoints in layoutHints attributes at relations. Only connected nodes are placed. Others are not moved. This can be used to place unconnected nodes like Director, text attributes, etc. manually, e.g. to place documentation. The Nodes are placed starting at the top left corner of the former bounding box of the nodes.

This option uses a new feature of explicitly routing edges. The additional routing information will be deleted automatically when nodes are moved manually afterwards to allow manual editing. Therefore manual editing always only uses the standard Manhattan router.

Graph -> Advanced Layout Dialog (Experimental)

The advanced layout dialog shows different experimental options to compare different layout integrations. The buttons implement the following behavior:

Place all
Place all nodes, do no routing. Placement is done for connected and unconnected nodes, i.e. also text attributes, Director, etc. This can be used to get an initial placement of everything to avoid node overlaps. No automatic routing is done so there likely will be connection overlaps.
Place only connected nodes
Place only connected node, do not move unconnected nodes like attributes, do no routing. This can be used if you want to manually place unconnected nodes, e.g. to place text annotations near some actors.
Place and Route connected nodes (EXPERIMENTAL)
Places connected nodes and routes edges by inserting new relation vertices for each bend point that the layout algorithm has calculated. By this the layout might get quite crowded with new relation vertices. This makes a model transformation and really changes the structure of the model. So use with care only!
Remove unnecessary relation vertices
Removes relation vertices that semantically are not required, e.g. that have been introduced for routing purposes only. Will do a model transformation that tries to directly connect ports if possible and remove as many vertices as possible while keeping the original structure.
Hide unnecessary relation vertices
Toggles the visibility of semantically irrelevant relation vertices. Can be used to hide vertices that have been introduced for routing purposes only.
The advanced layout dialog can be used to show the different features of layout. The following would be a typical use case:
  1. Place all nodes initially.
  2. Move textual annotations manually.
  3. Place and route connected nodes. The view gets crowded with new vertices.
  4. Hide unnecessary relation vertices to get a clean and beautiful view. Last routing errors of the default Manhattan Router will vanish.
  5. To edit the diagram again, make toggle the visibility again, to show all superflous vertices.
  6. If the amount of vertices is annoying for editing, remove all unnecessary vertices.
  7. Edit and call place and route in between with the other steps as you like.

Still, we recommend to mainly use the more advanced menu entry "Automatic Layout" mentioned above, because it offers a whole new approach to route edges.

@since Ptolemy II 8.0 @author Miro Spoenemann (University of Kiel), Hauke Fuhrmann (University of Kiel)