Partial fix for trouble in init_rank bug. When clusters occur, mincross
does not save and restore the best layout since is relied on GD_nlist, which
is not being set up for clusters. We use the rank arrays instead to get the
relevant nodes.
Remove extraneous expression from line 1681;
remove shortcut tests added in cd45ebb0c3015556d782bbbfdee1658f227b3eef, as they were too aggressive;
fix bugs 2445, 2430, 2427, 2421. These were due to the conversion to cgraph, so there may be more
bugs fixed than these. The problem is that with cgraph, edges always come in pairs. In particular,
to access the head and tail of an edge, both parts need to be set. This wasn't being done for
the temporary hack edges in make_regular_edge.
Merge pull request #21 from yak1ex/missing_include_path_for_cmd_edgepaint
Add missing include path lib/common for cmd/edgepaint.
Odd that configure on linux and osx automatically adds -Ilib/common. I guess the cyqwin processing is different. In any case, it is a benign change and makes dependencies more explicit.
Add (undocumented) prototype implementation of edge labels that align
with the edge. This only works with ordinary labels; only in svg; there
is no handling of space or geometry issues.
Emden R. Gansner [Thu, 27 Mar 2014 16:49:39 +0000 (12:49 -0400)]
Replace scaling from overlap=scale, and make it a general option
before overlap removal. Thus, we remove the special-purpose code
from twopi. In time, this might take on the semantics of overlap_scaling.
Emden R. Gansner [Tue, 25 Mar 2014 13:50:01 +0000 (09:50 -0400)]
Simplify gvusershape_find();
fix bug 2425. With the use of cgraph, the strings used in attributes are attached to
the root graph, so file name pointers being stored in the image cache are no longer
valid when the graph is deleted. The image cache needs to use the global string cache.
As this could lead to many unsed image cache items, we might consider limiting the cache
size, or starting afresh with each new graph.
Emden R. Gansner [Tue, 25 Mar 2014 13:42:05 +0000 (09:42 -0400)]
Fix for bug 2425 is incorrect. First, the users' graph should never cause
the code to enter the if (ND_shape(n)->usershape) {} block, as the nodes
just use the image attribute. Second, the logic fails to handle the case
of postscript library shapes.
Emden R. Gansner [Fri, 21 Mar 2014 13:39:59 +0000 (09:39 -0400)]
Fix gvpr.h to provide definition for ssize_t for Windows;
we removed use of ast_common.h which we don't export, so for
unix systems we assume everyone uses the system's ssize_t.
Emden R. Gansner [Wed, 19 Mar 2014 14:20:59 +0000 (10:20 -0400)]
Modify dot to using packing rather than the built-in component handling, which
places all the components on a single row;
as a side-effect, parameterize dot_layout to distinguish between the absolute root graph
(for various parameters) and the local root used for layout, which will hold the various
rank information.
Emden R. Gansner [Wed, 19 Mar 2014 14:18:21 +0000 (10:18 -0400)]
Add function for finding connected components using both edges and clusters;
remove unused code;
combine dfs functions, using structure of functions to tailor semantics.
We try to make a multi spline when there are multiple edges between two
nodes. We only make create this multi spline for the leader of these
edges.
If the leader already has a spline set and we are supposed to use given
splines (Nop > 1), then no multi spline will be created at all,
also not for other splines.
So we don't include these splines in the search for equivalent edges.
There seem to be cases where edges don't get a position in the layout.
Not sure where this bug is exactly, but we should give a warning,
rather than crash completely.
Emden R. Gansner [Mon, 10 Mar 2014 19:28:48 +0000 (15:28 -0400)]
Remove remnants of dpi use in svg output; all output should be based on
device-independent unit of points. It is the role of the svg viewer to
correctly handle point to pixel conversion.