| Node attributs list. structure that describes a node. |
`------------------------------------------------------*/
| Node attributs list. structure that describes a node. |
`------------------------------------------------------*/
100) percent. Note that the actual scale value is determined by the
scale value of a node relatively to a scale value of the graph,
100) percent. Note that the actual scale value is determined by the
scale value of a node relatively to a scale value of the graph,
- i.e. if (stretch,shrink) = (2,1) for the graph and (stretch,shrink)
+ i.e. if (expand,shrink) = (2,1) for the graph and (expand,shrink)
= (2,1) for the node of the graph, then the node is scaled by the
factor 4 compared to the normal size. The scale value can also be
specified by scaling: float.
Default are 1,1. */
int shrink;
= (2,1) for the node of the graph, then the node is scaled by the
factor 4 compared to the normal size. The scale value can also be
specified by scaling: float.
Default are 1,1. */
int shrink;
/* folding specifies the default folding of the nodes. The folding k
(with k ? 0) means that the graph part that is reachable via edges
/* folding specifies the default folding of the nodes. The folding k
(with k ? 0) means that the graph part that is reachable via edges
/* textmode specifies the adjustment of the text within the border of a
node. The possibilities are center, left.justify and right.justify.
Default is center. */
/* textmode specifies the adjustment of the text within the border of a
node. The possibilities are center, left.justify and right.justify.
Default is center. */
/* borderwidth specifies the thickness of the node's border in pixels.
color is the background color of the node. If none is given, the
/* borderwidth specifies the thickness of the node's border in pixels.
color is the background color of the node. If none is given, the
/* textcolor is the color for the label text. bordercolor is the color
of the border. Default color is the textcolor. info1, info2, info3
combines additional text labels with a node or a folded graph. info1,
Default is black. */
/* textcolor is the color for the label text. bordercolor is the color
of the border. Default color is the textcolor. info1, info2, info3
combines additional text labels with a node or a folded graph. info1,
Default is black. */
/* info2, info3 can be selected from the menu. The corresponding text
labels can be shown by mouse clicks on nodes.\f
/* info2, info3 can be selected from the menu. The corresponding text
labels can be shown by mouse clicks on nodes.\f
/*-------------------------------------------------------.
| Edge attributs list. Structure that describes an edge. |
/*-------------------------------------------------------.
| Edge attributs list. Structure that describes an edge. |
drawn. The attributes of its shape (color, thickness) are ignored.
To draw a dashed or dotted line needs more time than solid lines.
Default is continuous. */
drawn. The attributes of its shape (color, thickness) are ignored.
To draw a dashed or dotted line needs more time than solid lines.
Default is continuous. */
/* textcolor is the color of the label of the edge. arrowcolor,
backarrowcolor is the color of the arrow head and of the backarrow
/* textcolor is the color of the label of the edge. arrowcolor,
backarrowcolor is the color of the arrow head and of the backarrow
of edges that pull a node into its position. The priority of an edges
corresponds to the strength of the rubberband.
Default is color. */
of edges that pull a node into its position. The priority of an edges
corresponds to the strength of the rubberband.
Default is color. */
/* arrowsize, backarrowsize The arrow head is a right-angled, isosceles
triangle and the cathetuses have length arrowsize.
/* arrowsize, backarrowsize The arrow head is a right-angled, isosceles
triangle and the cathetuses have length arrowsize.
backarrowstyle is the style of the backarrow head. Styles are none,
i.e. no arrow head, solid, and line.
Default is solid. */
backarrowstyle is the style of the backarrow head. Styles are none,
i.e. no arrow head, solid, and line.
Default is solid. */
/*--------------------------------------------------------.
| Graph attributs list. Structure that describes a graph. |
`--------------------------------------------------------*/
/*--------------------------------------------------------.
| Graph attributs list. Structure that describes a graph. |
`--------------------------------------------------------*/
folded graph. info1, info2, info3 can be selected from the menu
interactively. The corresponding text labels can be shown by mouse
clicks on nodes.
folded graph. info1, info2, info3 can be selected from the menu
interactively. The corresponding text labels can be shown by mouse
clicks on nodes.
index 2, green has index 3, etc.
Default is white for background and white or transparent for summary
nodes. */
index 2, green has index 3, etc.
Default is white for background and white or transparent for summary
nodes. */
/* Bordercolor is the color of the summary node's border. Default color
is the textcolor. width, height are width and height of the
displayed part of the window of the outermost graph in pixels, or
width and height of the summary node of inner subgraphs.
/* Bordercolor is the color of the summary node's border. Default color
is the textcolor. width, height are width and height of the
displayed part of the window of the outermost graph in pixels, or
width and height of the summary node of inner subgraphs.
/* Width, height are width and height of the displayed part of the
window of the outermost graph in pixels, or width and height of the
summary node of inner subgraphs.
/* Width, height are width and height of the displayed part of the
window of the outermost graph in pixels, or width and height of the
summary node of inner subgraphs.
/* folding of a subgraph is 1, if the subgraph is fused, and 0, if the
subgraph is visualized explicitly. There are commands to unfold such
summary nodes.
/* folding of a subgraph is 1, if the subgraph is fused, and 0, if the
subgraph is visualized explicitly. There are commands to unfold such
summary nodes.
- /* Shrink, stretch gives the shrinking and stretching factor for the
- graph's representation (default is 1, 1). ((stretch=shrink) \Lambda
+ /* Shrink, expand gives the shrinking and expanding factor for the
+ graph's representation (default is 1, 1). ((expand=shrink) \Lambda
- (stretch,shrink) = (1,1) or (2,2) or (3,3) : : : is normal size,
- (stretch,shrink) = (1,2) is half size, (stretch,shrink) = (2,1) is
+ (expand,shrink) = (1,1) or (2,2) or (3,3) : : : is normal size,
+ (expand,shrink) = (1,2) is half size, (expand,shrink) = (2,1) is
double size. For subgraphs, it is also the scaling factor of the
summary node. The scaling factor can also be specified by scaling:
float (here, scaling 1.0 means normal size). */
int shrink;
double size. For subgraphs, it is also the scaling factor of the
summary node. The scaling factor can also be specified by scaling:
float (here, scaling 1.0 means normal size). */
int shrink;
/* textmode specifies the adjustment of the text within the border of a
summary node. The possibilities are center, left.justify and
right.justify.
Default value is center.*/
/* textmode specifies the adjustment of the text within the border of a
summary node. The possibilities are center, left.justify and
right.justify.
Default value is center.*/
/* Shape can be specified for subgraphs only. It is the shape of the
subgraph summary node that appears if the subgraph is folded: box,
/* Shape can be specified for subgraphs only. It is the shape of the
subgraph summary node that appears if the subgraph is folded: box,
algorithm for downward laid out trees is used, the horizontal order
influences only the order of the child nodes at a node, but not the
order of the whole level.
algorithm for downward laid out trees is used, the horizontal order
influences only the order of the child nodes at a node, but not the
order of the whole level.
- Defalut is box, other: rhomb, ellipse, triangle. */
- enum shape_e shape;
+ Default is box, other: rhomb, ellipse, triangle. */
+ enum shape shape;
- /* Vertical order is the level position (rank) of the summary node of an
- inner subgraph, if this subgraph is folded. We can also specify
- level: int. The level is only recognized, if an automatical layout is
+ /* Vertical order is the level position (rank) of the summary node of an
+ inner subgraph, if this subgraph is folded. We can also specify
+ level: int. The level is only recognized, if an automatical layout is
- /* Horizontal order is the horizontal position of the summary node within
- a level. The nodes which are specified with horizontal positions are
- ordered according to these positions within the levels. The nodes which
- do not have this attribute are inserted into this ordering by the
- crossing reduction mechanism. Note that connected components are
- handled separately, thus it is not possible to intermix such components
- by specifying a horizontal order. If the algorithm for downward laid
- out trees is used, the horizontal order influences only the order of
+ /* Horizontal order is the horizontal position of the summary node within
+ a level. The nodes which are specified with horizontal positions are
+ ordered according to these positions within the levels. The nodes which
+ do not have this attribute are inserted into this ordering by the
+ crossing reduction mechanism. Note that connected components are
+ handled separately, thus it is not possible to intermix such components
+ by specifying a horizontal order. If the algorithm for downward laid
+ out trees is used, the horizontal order influences only the order of
the nodes. The center of a node is aligned to this raster. xlraster
is the horizontal raster for the positions of the line control
points (the dummy nodes). It should be a divisor of xraster.
the nodes. The center of a node is aligned to this raster. xlraster
is the horizontal raster for the positions of the line control
points (the dummy nodes). It should be a divisor of xraster.
additional text labels. The names are used in the menus.
defaults are 1,2,3...
By default, no class names. */
additional text labels. The names are used in the menus.
defaults are 1,2,3...
By default, no class names. */
- /* Infoname allows to introduce names for the additional text labels.
- The names are used in the menus.
- Infoname is given by an integer and a string.
+ /* Infoname allows to introduce names for the additional text labels.
+ The names are used in the menus.
+ Infoname is given by an integer and a string.
- struct infoname_s *infoname;
-
- /* Colorentry allows to fill the color map. A color is a triplet of integer
- values for the red/green/blue-part. Each integer is between 0 (off) and
- 255 (on), e.g., 0 0 0 is black and 255 255 255 is white. For instance
- colorentry 75 : 70 130 180 sets the map entry 75 to steel blue. This
+ struct infoname *infoname;
+
+ /* Colorentry allows to fill the color map. A color is a triplet of integer
+ values for the red/green/blue-part. Each integer is between 0 (off) and
+ 255 (on), e.g., 0 0 0 is black and 255 255 255 is white. For instance
+ colorentry 75 : 70 130 180 sets the map entry 75 to steel blue. This
/* layoutalgorithm chooses different graph layout algorithms
Possibilities are maxdepth, mindepth, maxdepthslow, mindepthslow,
/* layoutalgorithm chooses different graph layout algorithms
Possibilities are maxdepth, mindepth, maxdepthslow, mindepthslow,
/* Layout downfactor, layout upfactor, layout nearfactor The layout
algorithm partitions the set of edges into edges pointing upward,
/* Layout downfactor, layout upfactor, layout nearfactor The layout
algorithm partitions the set of edges into edges pointing upward,
layout.nearfactor is large, then the positions of the nodes is
mainly determined by the edges pointing sidewards. These attributes
have no effect, if the method for downward laid out trees is used.
layout.nearfactor is large, then the positions of the nodes is
mainly determined by the edges pointing sidewards. These attributes
have no effect, if the method for downward laid out trees is used.
labels and then partitions the graph, which yield a more compact
layout, but may have more crossings.
Default is no. */
labels and then partitions the graph, which yield a more compact
layout, but may have more crossings.
Default is no. */
/* Dirty edge labels yes enforces a fast layout of edge labels, which
may very ugly because several labels may be drawn at the same place.
Dirty edge labels cannot be used if splines are used.
Default is no.
*/
/* Dirty edge labels yes enforces a fast layout of edge labels, which
may very ugly because several labels may be drawn at the same place.
Dirty edge labels cannot be used if splines are used.
Default is no.
*/
/* Finetuning no switches the fine tuning phase of the graph layout
algorithm off, while it is on as default. The fine tuning phase
tries to give all edges the same length.
Default is yes. */
/* Finetuning no switches the fine tuning phase of the graph layout
algorithm off, while it is on as default. The fine tuning phase
tries to give all edges the same length.
Default is yes. */
/* Ignore singles yes hides all nodes which would appear single and
unconnected from the remaining graph. Such nodes have no edge at all
and are sometimes very ugly. Default is to show all nodes.
Default is no. */
/* Ignore singles yes hides all nodes which would appear single and
unconnected from the remaining graph. Such nodes have no edge at all
and are sometimes very ugly. Default is to show all nodes.
Default is no. */
- enum decision_e ignore_singles;
-
- /* Straight phase yes initiates an additional phase that tries to avoid
- bendings in long edges.
- Long edges are laid out by long straight vertical lines with
- gradient 90 degree. Thus, this phase is not very appropriate for
- normal layout, but it is recommended, if an orthogonal layout is
- selected (see manhattan.edges).
- Default is no. */
- enum decision_e straight_phase;
+ enum decision ignore_singles;
/* priority phase yes replaces the normal pendulum method by a
specialized method: It forces straight long edges with 90 degree,
/* priority phase yes replaces the normal pendulum method by a
specialized method: It forces straight long edges with 90 degree,
tune phase of the priority method. This phase is also recommended,
if an orthogonal layout is selected (see manhattan.edges).
Default is no. */
tune phase of the priority method. This phase is also recommended,
if an orthogonal layout is selected (see manhattan.edges).
Default is no. */
/* manhattan edges yes switches the orthogonal layout on. Orthogonal
layout (or manhattan layout) means that all edges consist of line
/* manhattan edges yes switches the orthogonal layout on. Orthogonal
layout (or manhattan layout) means that all edges consist of line
/* Smanhattan edges yes switches a specialized orthogonal layout on:
Here, all horizontal edge segments between two levels share the same
/* Smanhattan edges yes switches a specialized orthogonal layout on:
Here, all horizontal edge segments between two levels share the same
looks nice for trees but might be too confusing in general, because
the location of an edge might be ambiguously.
Default is no. */
looks nice for trees but might be too confusing in general, because
the location of an edge might be ambiguously.
Default is no. */
/* Orientation specifies the orientation of the graph: top.to.bottom,
bottom.to.top, left.to.right or right.to.left. Note: the normal
/* Orientation specifies the orientation of the graph: top.to.bottom,
bottom.to.top, left.to.right or right.to.left. Note: the normal
is left to right, the attribute xlspace is not the horizontal but
the vertical distance between lines, etc.
Default is to_to_bottom. */
is left to right, the attribute xlspace is not the horizontal but
the vertical distance between lines, etc.
Default is to_to_bottom. */
/* Node alignment specified the vertical alignment of nodes at the
horizontal reference line of the levels. If top is specified, the
/* Node alignment specified the vertical alignment of nodes at the
horizontal reference line of the levels. If top is specified, the
/* Port sharing no suppresses the sharing of ports of edges at the
nodes. Normally, if multiple edges are adjacent to the same node,
/* Port sharing no suppresses the sharing of ports of edges at the
nodes. Normally, if multiple edges are adjacent to the same node,
/* Arrow mode fixed (default) should be used, if port sharing is used,
because then, only a fixed set of rotations for the arrow heads are
/* Arrow mode fixed (default) should be used, if port sharing is used,
because then, only a fixed set of rotations for the arrow heads are
arrow mode is fixed, then the arrow head is rotated only in steps of
45 degree, and only one arrow head occurs at each port.
Default is fixed. */
arrow mode is fixed, then the arrow head is rotated only in steps of
45 degree, and only one arrow head occurs at each port.
Default is fixed. */
/* Treefactor The algorithm tree for downward laid out trees tries to
produce a medium dense, balanced tree-like layout. If the tree
/* Treefactor The algorithm tree for downward laid out trees tries to
produce a medium dense, balanced tree-like layout. If the tree
different nodes are not very probable, thus the crossing reduction
phase 2 might be very fast.
Default is bary. */
different nodes are not very probable, thus the crossing reduction
phase 2 might be very fast.
Default is bary. */
/* Crossing phase2 is the most time consuming phase of the crossing
reduction. In this phase, the nodes that happen to have equal
crossing weights are permuted. By specifying no, this phase is
suppressed.
Default is yes. */
/* Crossing phase2 is the most time consuming phase of the crossing
reduction. In this phase, the nodes that happen to have equal
crossing weights are permuted. By specifying no, this phase is
suppressed.
Default is yes. */
/* Crossing optimization is a postprocessing phase after the normal
crossing reduction: we try to optimize locally, by exchanging pairs
of nodes to reduce the crossings. Although this phase is not very
time consuming, it can be suppressed by specifying no.
Default is yes. */
/* Crossing optimization is a postprocessing phase after the normal
crossing reduction: we try to optimize locally, by exchanging pairs
of nodes to reduce the crossings. Although this phase is not very
time consuming, it can be suppressed by specifying no.
Default is yes. */
/* View allows to select the fisheye views. Because
of the fixed size of the window that shows the graph, we normally
/* View allows to select the fisheye views. Because
of the fixed size of the window that shows the graph, we normally
are recognizable. With pfish the self adaptable polar fisheye is
selected that shows the whole graph, and with fpfish the fixed
radius polar fisheye is selected.
are recognizable. With pfish the self adaptable polar fisheye is
selected that shows the whole graph, and with fpfish the fixed
radius polar fisheye is selected.
/* Splines specifies whether splines are used to draw edges (yes or no).
As default, polygon segments are used to draw edges, because this is
/* Splines specifies whether splines are used to draw edges (yes or no).
As default, polygon segments are used to draw edges, because this is
validated, and is very slow. Its use is mainly to prepare high
quality PostScript output for very small graphs.
Default is no. */
validated, and is very slow. Its use is mainly to prepare high
quality PostScript output for very small graphs.
Default is no. */
-void new_graph PARAMS ((graph_t *g));
-void new_node PARAMS ((node_t *node));
-void new_edge PARAMS ((edge_t *edge));
+void new_graph (graph *g);
+void new_node (node *n);
+void new_edge (edge *e);
-void add_node PARAMS ((graph_t *graph, node_t *node));
-void add_edge PARAMS ((graph_t *graph, edge_t *edge));
+void add_node (graph *g, node *n);
+void add_edge (graph *g, edge *e);
-void add_colorentry PARAMS ((graph_t *g, int color_idx, int red_cp,
- int green_cp, int blue_cp));
-void add_classname PARAMS ((graph_t *g, int val, const char *name));
-void add_infoname PARAMS ((graph_t *g, int val, const char *name));
+void add_colorentry (graph *g, int color_idx, int red_cp,
+ int green_cp, int blue_cp);
+void add_classname (graph *g, int val, const char *name);
+void add_infoname (graph *g, int val, const char *name);
-void open_node PARAMS ((FILE *fout));
-void output_node PARAMS ((node_t *node, FILE *fout));
-void close_node PARAMS ((FILE *fout));
+void open_node (FILE *fout);
+void output_node (node *n, FILE *fout);
+void close_node (FILE *fout);
-void open_edge PARAMS ((edge_t *edge, FILE *fout));
-void output_edge PARAMS ((edge_t *edge, FILE *fout));
-void close_edge PARAMS ((FILE *fout));
+void open_edge (edge *e, FILE *fout);
+void output_edge (edge *e, FILE *fout);
+void close_edge (FILE *fout);
-void open_graph PARAMS ((FILE *fout));
-void output_graph PARAMS ((graph_t *graph, FILE *fout));
-void close_graph PARAMS ((graph_t *graph, FILE *fout));
+void open_graph (FILE *fout);
+void output_graph (graph *g, FILE *fout);
+void close_graph (graph *g, FILE *fout);