From e76dd8a5b9342e824d34390723842f43529fbce8 Mon Sep 17 00:00:00 2001 From: erg Date: Wed, 6 Aug 2008 20:09:21 +0000 Subject: [PATCH] Add new attributes for sfdp; fix some typos --- doc/infosrc/Makefile.old | 11 +-- doc/infosrc/attrs | 34 ++++++--- doc/infosrc/dflts | 140 -------------------------------------- doc/infosrc/outputs | 5 ++ doc/infosrc/sdlshapes.png | Bin 44374 -> 0 bytes doc/infosrc/types | 8 +++ 6 files changed, 44 insertions(+), 154 deletions(-) delete mode 100644 doc/infosrc/dflts delete mode 100644 doc/infosrc/sdlshapes.png diff --git a/doc/infosrc/Makefile.old b/doc/infosrc/Makefile.old index 3f3ac3e77..dfdf14b89 100644 --- a/doc/infosrc/Makefile.old +++ b/doc/infosrc/Makefile.old @@ -17,6 +17,9 @@ # The files listed after each give the main data files used to # generate the page. +INSTALL = cp +INSTALL_DIR = ../info + XGIF = forward.gif back.gif both.gif nohead.gif MGIF = constraint.gif record.gif html1.gif html2.gif fill.gif round.gif \ @@ -52,7 +55,7 @@ GIF = $(SGIF) $(AGIF) $(MGIF) $(A2GIF) DOTS = html2.dot html3.dot html4.dot HTML = attrs.html colors.html command.html lang.html output.html shapes.html \ arrows.html -INSTALL_FILES = $(HTML) $(DOTS) $(SGIF) $(AGIF) $(A2GIF) $(MGIF) $(XGIF) $(MPNG) +INSTALL_FILES = $(HTML) $(DOTS) $(SGIF) $(AGIF) $(A2GIF) $(MGIF) $(XGIF) $(MJPG) .SUFFIXES: .gif .dot @@ -62,7 +65,7 @@ INSTALL_FILES = $(HTML) $(DOTS) $(SGIF) $(AGIF) $(A2GIF) $(MGIF) $(XGIF) $(MPNG) all : $(HTML) $(GIF) install : all - $(INSTALL) $(INSTALL_FILES) + $(INSTALL) $(INSTALL_FILES) $(INSTALL_DIR) record2.gif : record.dot dot -Tgif -Grankdir=LR -o $@ $< @@ -102,7 +105,7 @@ shapes : shapelist mkshapes.sh mkshapes.sh touch shapes -shapes.html : shapes shapes.1 mkshhtml.sh shapes.2 html.html shapes.3 record.gif sdlshapes.png record2.gif +shapes.html : shapes shapes.1 mkshhtml.sh shapes.2 html.html shapes.3 record.gif record2.gif sdlshapes.jpg cat shapes.1 > shapes.html mkshhtml.sh >> shapes.html cat shapes.2 >> shapes.html @@ -143,7 +146,7 @@ clean : distclean : clean rm -f attrs.html colors.html output.html shapes.html lang.html arrows.html - rm -f $(A2GIF) $(AGIF) $(SGIF) $(MPNG) $(MGIF) shapes + rm -f $(A2GIF) $(AGIF) $(SGIF) $(MJPG) $(MGIF) shapes (for s in $$(cat shapelist); do rm -f $$s.gif; done) EXTRA_DIST = $(XGIF) mklang.y mkarrows.sh mkattrs.sh mkshapes.sh \ diff --git a/doc/infosrc/attrs b/doc/infosrc/attrs index b290b9eab..1555b1cb2 100644 --- a/doc/infosrc/attrs +++ b/doc/infosrc/attrs @@ -26,7 +26,7 @@ # the notes field, if present, consists of a comma-separated list of: # # bitmap cmap map ps svg - attribute limited to specified output formats -# dot neato twopi circo fdp - attribute limited to specified layouts +# dot neato twopi circo fdp sfdp - attribute limited to specified layouts # notdot - attribute use in all layouts but dot # write - attribute is write-only # obsolete - attribute is obsolete @@ -184,10 +184,10 @@ Only applicable if pack=false. :decorate:E:bool:false; If true, attach edge label to edge by a 2-segment polyline, underlining the label, then going to the closest point of spline. -:dim:G:int:2:2; neato,fdp +:dim:G:int:2:2; neato,fdp,sfdp Set the number of dimensions used for the layout. The maximum value allowed is 10. -:dimen:G:int:2:2; neato,fdp +:dimen:G:int:2:2; neato,fdp,sfdp Set the number of dimensions used for rendering. The maximum value allowed is 10. If both dimen and dim are set, the latter specifies @@ -392,7 +392,7 @@ corresponding dimension of the node, that dimension of the image is scaled down to fit the node. As with the case of expansion, if imagescale=true, width and height are scaled uniformly. -:K:GC:double:0.3:0; fdp +:K:GC:double:0.3:0; fdp,sfdp Spring constant used in virtual physical model. It roughly corresponds to an ideal edge length (in inches), in that increasing K tends to increase the distance between nodes. @@ -487,6 +487,8 @@ Specifies the separator characters used to split the layers attribute into a list of layer names. :len:E:double:1.0(neato)/0.3(fdp); neato,fdp Preferred edge length, in inches. +:levels:G:int:MAXINT:0.0; sfdp +Number of levels allowed in the multilevel scheme. :levelsgap:G:double:0.0; neato Specifies strictness of level constraints in neato when mode="ipsep" or "hier". @@ -739,8 +741,8 @@ Position of node, or spline control points. For nodes, the position indicates the center of the node. On output, the coordinates are in points.

-In neato and fdp, pos can be used to set the initial position of a node. -By default, the coordinates are assumed to be in inches. However, the +In neato, fdp and sfdp, pos can be used to set the initial position of a node. +By default, the coordinates are assumed to be in points. However, the -s command line flag can be used to specify different units.

@@ -749,6 +751,13 @@ neato, it is assumed the positions have been set by one of the layout programs, and are therefore in points. Thus, neato -n can accept input correctly without requiring a -s flag and, in fact, ignores any such flag. +:quadtree:G:quadType/bool:"normal"; sfdp +Quadtree scheme to use. +

+A TRUE bool value corresponds to "normal"; +a FALSE bool value corresponds to "none". +As a slight exception to the normal interpretation of bool, +a value of "2" corresponds to "fast". :quantum:G:double:0.0:0.0; If quantum > 0.0, node label dimensions will be rounded to integral multiples of the quantum. @@ -821,6 +830,10 @@ If true, force polygon to be regular. :remincross:G:bool:false; dot If true and there are multiple clusters, run cross minimization a second time. +:repulsiveforce:G:double:1.0:0.0; sfdp +The power of the repulsive force used in an extended Fruchterman-Reingold +force directed model. Values larger than 1 tend to reduce +the warping effect at the expense of less clustering. :resolution:G:double:96.0/0.0; bitmap,svg This is a synonym for the dpi attribute. :root:GN:string/bool:""(graphs)/false(nodes); twopi,circo @@ -907,6 +920,9 @@ Note that there is some interaction between the size and :skew:N:double:0.0:-100.0; Skew factor for shape=polygon. Positive values skew top of polygon to right; negative to left. +:smoothing:G:smoothType:"none"; sfdp +Specifies a post-processing step used to smooth out an uneven distribution +of nodes. :splines:G:bool/string; Controls how, and if, edges are represented. If true, edges are drawn as splines routed around nodes; if false, edges are drawn as line segments. @@ -1009,11 +1025,9 @@ Voronoi technique. dim' = (1+2*margin)*dim. # Obsolete, replaced by sep #w:E:double:1.0; neato # Redundant definition of weight in neato, cf. bug 9. -:weight:E:double:1.0:0(dot)/1(neato); +:weight:E:double:1.0:0(dot)/1(neato,fdp,sfdp); Weight of edge. In dot, the heavier the weight, the shorter, -straighter and more vertical the edge is. In neato, the heavier the -weight, the more neato will try to place the end points so that the -length of the edge is len. +straighter and more vertical the edge is. :width:N:double:0.75:0.01; Width of node, in inches. This is taken as the initial, minimum width of the node. If fixedsize is true, this diff --git a/doc/infosrc/dflts b/doc/infosrc/dflts deleted file mode 100644 index 00b46c3af..000000000 --- a/doc/infosrc/dflts +++ /dev/null @@ -1,140 +0,0 @@ -0.99 -; map,ps,svg -normal; -1.0 -normal; - -; -false; -"UTF-8"; -local; dot -black; -""; -""; -false; dot -false; dot -true; dot -1+(avg. len)*sqrt(|V|) -false; -2 -forward(directed)/none(undirected); -false; neato -0.0 -96.0/0.0; bitmap,svg -""; map,svg -""; map,svg -; map,svg -""; cmap,svg -.0001 * # nodes(mode == KK)/.0001(mode == major); neato -0.8*sep; notdot -lightgrey(nodes)/black(clusters); -false; -black; -""; svg -"Times-Roman"; -system-dependent; -14.0 -""; dot -""; map,svg -true; -""; map,svg -""; -center; -; map,svg -""; cmap,svg -0.5 -""; map,ps,svg -""; -false -0.3 -"\\\\N" (nodes)/"" (otherwise); -""; map,svg --25.0 -1.0 -false; -black; -"Times-Roman"; -14.0 -""; map,svg -"c"; -"t"(clusters)/"b"(root graphs); -; map,svg -""; cmap,svg -false; -""; -""; -" -1.0(neato)/0.3(fdp); neato,fdp -0.0; neato -""; dot - -""; dot -; -100 \\* # nodes(mode == KK)/200(mode == major)/600(fdp); neato,fdp -1.0; dot -1.0 -1 -"major"; neato -"shortpath"; neato -false; neato -0.25 -false; -false; notdot - -""; dot -0.0 -""; -breadthfirst; -true; notdot -false; notdot -node; notdot -1/18; - -BL; -black; -1.0 -shape default(nodes)/1(clusters) -false; neato,fdp - -0.0 -; dot -TB; dot -0.5(dot)/1.0(twopi) - - -false; -false; dot -96.0/0.0; bitmap,svg -""(graphs)/false(nodes); twopi,circo -0; -""; dot -""; dot -8(output)/20(overlap and image maps); -30; dot -0.1; notdot -ellipse; -""; -0 -4 - -0.0 - -""; neato,fdp -; -""; svg -""; map,svg -true; -""; map,svg -""; -center; -; map,svg -""; cmap,svg -; map,svg -""; cmap,svg -; bitmap - -""; ps,map,cmap,bitmap -0.05 -1.0 -0.75 -0.0 diff --git a/doc/infosrc/outputs b/doc/infosrc/outputs index bb45cefbe..853c02702 100644 --- a/doc/infosrc/outputs +++ b/doc/infosrc/outputs @@ -5,6 +5,11 @@ # The long description is just text. # The items are alphabetized when the page is created. # +:eps:Encapsulated PostScript +Produces Encapsulated PostScript output. +At present, this is only guaranteed to be correct for a single +input graph since the Bounding Box information has to appear +at the beginning of the output, and this will be based on the first graph. :ps:PostScript Produces PostScript output.

diff --git a/doc/infosrc/sdlshapes.png b/doc/infosrc/sdlshapes.png deleted file mode 100644 index 6240a826df0a440e55368a6283813b6ecd27eda9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44374 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 diff --git a/doc/infosrc/types b/doc/infosrc/types index 8749ca51c..fc5513cad 100644 --- a/doc/infosrc/types +++ b/doc/infosrc/types @@ -220,6 +220,11 @@ the port. Thus, if node A has a port w, then headport=w will refer to the port and not the compass point. At present, in this case, there is no way to specify that the compass point should be used. +:quadType +"normal", "fast", "none". +

+Using "fast" gives about a 2-4 times overall speedup compared with "normal", +though layout quality can suffer a little. :rankdir "TB", "LR", "BT", "RL", corresponding to directed graphs drawn from top to bottom, from left to right, from bottom to top, and from @@ -243,6 +248,9 @@ If a spline has points p1 p2 p3 ... pn -- 2.40.0