Skip to content
This repository has been archived by the owner on Oct 17, 2021. It is now read-only.

Edge_Attributes

mattt edited this page Nov 16, 2020 · 2 revisions

Edge.Attributes

public struct Attributes: Hashable

Inheritance

Hashable

Properties

comment

Comments are inserted into output. Device-dependent

var comment: String?

`class`

Unofficial, but supported by certain output formats, like svg.

var `class`: String?

constraint

If false, the edge is not used in ranking the nodes.

var constraint: Bool?

Normally, edges are used to place the nodes on ranks. In the second graph below, all nodes were placed on different ranks. In the first example, the edge b -> c does not add a constraint during rank assignment, so the only constraints are that a be above b and c.

If false, the edge is not used in ranking the nodes. For example, in the graph digraph G { a -> c; a -> b; b -> c [constraint=false]; }

the edge b -> c does not add a constraint during rank assignment, so the only constraints are that a be above b and c, yielding the graph:

ordering

If the value of the attribute is "out", then the outedges of a node, that is, edges with the node as its tail node, must appear left-to-right in the same order in which they are defined in the input. If the value of the attribute is "in", then the inedges of a node must appear left-to-right in the same order in which they are defined in the input. If defined as a graph or subgraph attribute, the value is applied to all nodes in the graph or subgraph. Note that the graph attribute takes precedence over the node attribute.

var ordering: Ordering?

weight

Weight of edge. In dot, the heavier the weight, the shorter, straighter and more vertical the edge is. N.B. Weights in dot must be integers. For twopi, a weight of 0 indicates the edge should not be used in constructing a spanning tree from the root. For other layouts, a larger weight encourages the layout to make the edge length closer to that specified by the len attribute.

var weight: Double?

weight E int double 1 0(dot,twopi) 1(neato,fdp)

style

Set style information for components of the graph. For cluster subgraphs, if style="filled", the cluster box's background is filled. If the default style attribute has been set for a component, an individual component can use style="" to revert to the normal default. For example, if the graph has

var style: Style?

edge [style="invis"]

making all edges invisible, a specific edge can overrride this via:

a -> b [style=""]

Of course, the component can also explicitly set its style attribute to the desired value.

strokeColor

var strokeColor: Color?

Basic drawing color for graphics.

strokeWidth

penwidth Specifies the width of the pen, in points, used to draw lines and curves, including the boundaries of edges and clusters. The value is inherited by subclusters. It has no effect on text.

var strokeWidth: Double?

arrowSize

Multiplicative scale factor for arrowheads.

var arrowSize: Double?

fontName

var fontName: String?

The name of the used font. (System dependend) The font size for object labels.

fontSize

var fontSize: Double?

textColor

var textColor: Color?

The font color for object labels.

labelURL

var labelURL: URL?

labelDistance

labeldistance Multiplicative scaling factor adjusting the distance that the headlabel(taillabel) is from the head(tail) node. The default distance is 10 points. See labelangle for more details.

var labelDistance: Double?

labelAngle

This, along with labeldistance, determine where the headlabel (taillabel) are placed with respect to the head (tail) in polar coordinates. The origin in the coordinate system is the point where the edge touches the node. The ray of 0 degrees goes from the origin back along the edge, parallel to the edge at the origin. The angle, in degrees, specifies the rotation from the 0 degree ray, with positive angles moving counterclockwise and negative angles moving clockwise.

var labelAngle: Double?

labelWidth

Width of graph or cluster label, in inches.

var labelWidth: Double?

labelFloat

var labelFloat: Bool?

If true, allows edge labels to be less constrained in position. In particular, it may appear on top of other edges

exteriorLabel

External label for a node or edge. For nodes, the label will be placed outside of the node but near it. For edges, the label will be placed near the center of the edge. This can be useful in dot to avoid the occasional problem when the use of edge labels distorts the layout. For other layouts, the xlabel attribute can be viewed as a synonym for the label attribute. These labels are added after all nodes and edges have been placed. The labels will be placed so that they do not overlap any node or label. This means it may not be possible to place all of them. To force placing all of them, use the forcelabels attribute.

var exteriorLabel: String?

exteriorLabelPosition

Position of an exterior label, in points. The position indicates the center of the label.

var exteriorLabelPosition: Point?

decorate

If true, attach edge label to edge by a 2-segment polyline, underlining the label, then going to the closest point of spline.

var decorate: Bool?

noJustify

By default, the justification of multi-line labels is done within the largest context that makes sense. Thus, in the label of a polygonal node, a left-justified line will align with the left side of the node (shifted by the prescribed margin). In record nodes, left-justified line will line up with the left side of the enclosing column of fields. If nojustify is "true", multi-line labels will be justified in the context of itself. For example, if the attribute is set, the first label line is long, and the second is shorter and left-justified, the second will align with the left-most character in the first line, regardless of how large the node might be.

var noJustify: Bool?

href

var href: String?

url

var url: URL?

tooltip

Tooltip annotation attached to the non-label part of an edge. This is used only if the edge has a URL or edgeURL attribute.

var tooltip: String?

E escString "" svg, cmap only

head

var head: Arrow?

headPort

Indicates where on the head node to attach the head of the edge. In the default case, the edge is aimed towards the center of the node, and then clipped at the node boundary. See limitation.

var headPort: Port?

headLabel

var headLabel: String?

headLabelPosition

Position of an edge's head label, in points. The position indicates the center of the label.

var headLabelPosition: Point?

headClip

If true, the head of an edge is clipped to the boundary of the head node; otherwise, the end of the edge goes to the center of the node, or the center of a port, if applicable.

var headClip: Bool?

headURL

var headURL: URL?

headTarget

If the edge has a headURL, this attribute determines which window of the browser is used for the URL. Setting it to "_graphviz" will open a new window if it doesn't already exist, or reuse it if it does. If undefined, the value of the target is used.

var headTarget: String?

headTooltip

Tooltip annotation attached to the head of an edge. This is used only if the edge has a headURL attribute.

var headTooltip: String?

logicalHead

Logical head of an edge. When compound is true, if lhead is defined and is the name of a cluster containing the real head, the edge is clipped to the boundary of the cluster. See limitation.

var logicalHead: String?

sameHead

Edges with the same head and the same samehead value are aimed at the same point on the head. This has no effect on loops. Each node can have at most 5 unique samehead values. See limitation.

var sameHead: String?
dot only

tail

var tail: Arrow?

tailClip

If true, the tail of an edge is clipped to the boundary of the tail node; otherwise, the end of the edge goes to the center of the node, or the center of a port, if applicable.

var tailClip: Bool?

tailURL

var tailURL: URL?

tailTarget

If the edge has a tailURL, this attribute determines which window of the browser is used for the URL. Setting it to "_graphviz" will open a new window if it doesn't already exist, or reuse it if it does. If undefined, the value of the target is used.

var tailTarget: String?

tailTooltip

var tailTooltip: String?

logicalTail

Logical tail of an edge. When compound is true, if ltail is defined and is the name of a cluster containing the real head, the edge is clipped to the boundary of the cluster. See limitation.

var logicalTail: String?

sameTail

Edges with the same tail and the same sametail value are aimed at the same point on the tail. This has no effect on loops. Each node can have at most 5 unique sametail values. See limitation.

var sameTail: String?
dot only

tailLabel

var tailLabel: String?

minimumRankDifference

minlen Minimum edge length (rank difference between head and tail).

var minimumRankDifference: Int?

E int 1 0 dot only

guideBoxLocation

showboxes Print guide boxes in PostScript at the beginning of routesplines if 1, or at the end if 2. (Debugging)

var guideBoxLocation: Location?
ENG    int    0    0    dot only

preferredEdgeLength

len Preferred edge length, in inches.

var preferredEdgeLength: Double?

dictionaryValue

var dictionaryValue: [String: Any]
Clone this wiki locally