Emden R. Gansner [Tue, 17 Jun 2014 19:11:30 +0000 (15:11 -0400)]
Try an experiment using the default line join style postscript, quartz and cairo.
This will be a miter join, which will give a sharp corner for most reasonable line widths.
We were using default join in postscript but by setting the miter limit to 1, this was equivalent
to a bevel join.
Fix coding hole when packing disconnected components when clusters are used. We need to
recreate the cluster tree in the top-level graph, and copy position info from a cloned
cluster in a component to the real cluster in the top-level graph. (The clusters in a
component are really copies.);
use graph granularity by default when packing;
clean up layout info in the clusters before deleting them;
add comments on functions;
free cluster labels (this has never been done).
Fix cccomps to provide a mapping from the cloned clusters in the derived components to the
original clusters. This allows an application to easily reconstruct the cluster tree and to
move info from the cloned cluster to its real counterpart.
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.