1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
-- Copyright 2013 by Till Tantau
--
-- This file may be distributed an/or modified
--
-- 1. under the LaTeX Project Public License and/or
-- 2. under the GNU Public License
--
-- See the file doc/generic/pgf/licenses/LICENSE for more information
-- @release $Header$
local key = require 'pgf.gd.doc'.key
local documentation = require 'pgf.gd.doc'.documentation
local summary = require 'pgf.gd.doc'.summary
local example = require 'pgf.gd.doc'.example
--------------------------------------------------------------------------------
key "SugiyamaLayout"
summary "The OGDF implementation of the Sugiyama algorithm."
documentation
[[
This layout represents a customizable implementation of Sugiyama's
layout algorithm. The implementation used in |SugiyamaLayout| is based
on the following publications:
\begin{itemize}
\item Emden R. Gansner, Eleftherios Koutsofios, Stephen
C. North, Kiem-Phong Vo: A technique for drawing directed
graphs. \emph{IEEE Trans. Software Eng.} 19(3):214--230, 1993.
\item Georg Sander: \emph{Layout of compound directed graphs.}
Technical Report, Universität des Saarlandes, 1996.
\end{itemize}
]]
example
[[
\tikz \graph [SugiyamaLayout] { a -- {b,c,d} -- e -- a };
]]
example
[[
\tikz \graph [SugiyamaLayout, grow=right] {
a -- {b,c,d} -- e -- a
};
]]
example
[[
\tikz [nodes={text height=.7em, text depth=.2em,
draw=black!20, thick, fill=white, font=\footnotesize},
>=spaced stealth', rounded corners, semithick]
\graph [SugiyamaLayout, FastSimpleHierarchyLayout, grow=-80,
level distance=1.5cm, sibling distance=7mm] {
"5th Edition" -> { "6th Edition", "PWB 1.0" };
"6th Edition" -> { "LSX", "1 BSD", "Mini Unix", "Wollongong", "Interdata" };
"Interdata" -> { "Unix/TS 3.0", "PWB 2.0", "7th Edition" };
"7th Edition" -> { "8th Edition", "32V", "V7M", "Ultrix-11", "Xenix", "UniPlus+" };
"V7M" -> "Ultrix-11";
"8th Edition" -> "9th Edition";
"1 BSD" -> "2 BSD" -> "2.8 BSD" -> { "Ultrix-11", "2.9 BSD" };
"32V" -> "3 BSD" -> "4 BSD" -> "4.1 BSD" -> { "4.2 BSD", "2.8 BSD", "8th Edition" };
"4.2 BSD" -> { "4.3 BSD", "Ultrix-32" };
"PWB 1.0" -> { "PWB 1.2" -> "PWB 2.0", "USG 1.0" -> { "CB Unix 1", "USG 2.0" }};
"CB Unix 1" -> "CB Unix 2" -> "CB Unix 3" -> { "Unix/TS++", "PDP-11 Sys V" };
{ "USG 2.0" -> "USG 3.0", "PWB 2.0", "Unix/TS 1.0" } -> "Unix/TS 3.0";
{ "Unix/TS++", "CB Unix 3", "Unix/TS 3.0" } ->
"TS 4.0" -> "System V.0" -> "System V.2" -> "System V.3";
};
]]
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
key "SugiyamaLayout.runs"
summary "Determines, how many times the crossing minimization is repeated."
documentation
[[
Each repetition (except for the first) starts with
randomly permuted nodes on each layer. Deterministic behaviour can
be achieved by setting |SugiyamaLayout.runs| to 1.
]]
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
key "SugiyamaLayout.transpose"
documentation
[[
Determines whether the transpose step is performed
after each 2-layer crossing minimization; this step tries to
reduce the number of crossings by switching neighbored nodes on
a layer.
]]
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
key "SugiyamaLayout.fails"
documentation
[[
The number of times that the number of crossings may
not decrease after a complete top-down bottom-up traversal,
before a run is terminated.
]]
--------------------------------------------------------------------------------
-- Local Variables:
-- mode:latex
-- End:
|