![]() | ![]() | ![]() | ![]() |
box | polygon | ellipse | circle |
![]() | ![]() | ![]() | ![]() |
point | egg | triangle | plaintext |
![]() | ![]() | ![]() | ![]() |
diamond | trapezium | parallelogram | house |
![]() | ![]() | ![]() | ![]() |
pentagon | hexagon | septagon | octagon |
![]() | ![]() | ![]() | ![]() |
doublecircle | doubleoctagon | tripleoctagon | invtriangle |
![]() | ![]() | ![]() | ![]() |
invtrapezium | invhouse | Mdiamond | Msquare |
![]() | ![]() | ![]() | |
Mcircle | rect | rectangle |
The geometries of polygon-based shapes are also affected by the node attributes regular, peripheries and orientation. If shape="polygon", the attributes sides, skew and distortion are also used. If unset, they default to 4, 0.0 and 0.0, respectively. In addition, the 3 M* shapes support auxiliary labels using the toplabel and bottomlabel attributes. On the other hand, the point shape is special in that it is only affected by the peripheries, width and height attributes.
rlabel | = | field ( '|' field )* |
where field | = | fieldId or '{' rlabel '}' |
and fieldId | = | ( '<' string '>') ( string } |
The first string in fieldId gives a name to the field and can be combined with the node name to denote the end of an edge. The second string is used as the text for the field; it supports the usual escape sequences \n, \l and \r.
Visually, a record is a box, with fields represented by alternating rows of horizontal or vertical subboxes. The Mrecord shape is identical to a record shape, except that the outermost box has rounded corners. Flipping between horizontal and vertical layouts is done by nesting fields in braces "{...}". The top-level orientation in a record is horizontal. Thus, a record with label "A | B | C | D" will have 4 fields oriented left to right, while "{A | B | C | D}" will have them from top to bottom and "A | { B | C } | D" will have "B" over "C", with "A" to the left and "D" to the right of "B" and "C".
As an example of a record node, the dot input