digraph vector_alias { rankdir=LR; subgraph types { rank = same; vector [fontsize=10,label="type\nvector"]; float [fontsize=10,label="type\nfloat"]; } subgraph alias { vec [fontsize=10,shape=record,label="vec|next|type|alias|alias_defs|offset ?|..."]; vec_x [fontsize=10,shape=record,label="vec.x|next|type|alias|alias_defs|offset 0|..."]; vec_y [fontsize=10,shape=record,label="vec.y|next|type|alias|alias_defs|offset 1|..."]; vec_z [fontsize=10,shape=record,label= "vec.z|next|type|alias|alias_defs|offset 2|..."]; } vector -> float [style=invis]; vec:t -> vector [weight=2]; vec_x:t -> float [weight=2]; vec_y:t -> float [weight=2]; vec_z:t -> float [weight=2]; vec:d -> vec_z:v [weight=5]; vec_z:n -> vec_y:v [weight=15]; vec_y:n -> vec_x:v [weight=15]; vec:v -> vec_z:a [dir=back,weight=4]; vec:v -> vec_y:a [dir=back,weight=4]; vec:v -> vec_x:a [dir=back,weight=4]; }