From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../dist/lib/graphviz/share/man/man1/acyclic.1 | 62 ++ .../dist/lib/graphviz/share/man/man1/bcomps.1 | 76 ++ .../dist/lib/graphviz/share/man/man1/ccomps.1 | 99 +++ .../dist/lib/graphviz/share/man/man1/circo.1 | 669 ++++++++++++++ .../dist/lib/graphviz/share/man/man1/dijkstra.1 | 59 ++ .../TestApp/dist/lib/graphviz/share/man/man1/dot.1 | 669 ++++++++++++++ .../dist/lib/graphviz/share/man/man1/dotty.1 | 49 ++ .../TestApp/dist/lib/graphviz/share/man/man1/fdp.1 | 669 ++++++++++++++ .../TestApp/dist/lib/graphviz/share/man/man1/gc.1 | 83 ++ .../dist/lib/graphviz/share/man/man1/gv2gxl.1 | 92 ++ .../dist/lib/graphviz/share/man/man1/gvcolor.1 | 58 ++ .../dist/lib/graphviz/share/man/man1/gvpack.1 | 101 +++ .../dist/lib/graphviz/share/man/man1/gvpr.1 | 967 +++++++++++++++++++++ .../dist/lib/graphviz/share/man/man1/gxl2gv.1 | 92 ++ .../dist/lib/graphviz/share/man/man1/lefty.1 | 120 +++ .../dist/lib/graphviz/share/man/man1/lneato.1 | 49 ++ .../dist/lib/graphviz/share/man/man1/mm2gv.1 | 47 + .../dist/lib/graphviz/share/man/man1/neato.1 | 669 ++++++++++++++ .../TestApp/dist/lib/graphviz/share/man/man1/nop.1 | 31 + .../dist/lib/graphviz/share/man/man1/prune.1 | 155 ++++ .../dist/lib/graphviz/share/man/man1/sccmap.1 | 55 ++ .../dist/lib/graphviz/share/man/man1/tred.1 | 42 + .../dist/lib/graphviz/share/man/man1/twopi.1 | 669 ++++++++++++++ .../dist/lib/graphviz/share/man/man1/unflatten.1 | 58 ++ .../TestApp/dist/lib/graphviz/share/man/man3/cdt.3 | 483 ++++++++++ .../dist/lib/graphviz/share/man/man3/cgraph.3 | 486 +++++++++++ .../dist/lib/graphviz/share/man/man3/graph.3 | 270 ++++++ .../TestApp/dist/lib/graphviz/share/man/man3/gvc.3 | 66 ++ .../dist/lib/graphviz/share/man/man3/pathplan.3 | 97 +++ .../dist/lib/graphviz/share/man/man7/graphviz.7 | 106 +++ 30 files changed, 7148 insertions(+) create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/acyclic.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/bcomps.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/ccomps.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/circo.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dijkstra.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dot.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dotty.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/fdp.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gc.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gv2gxl.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvcolor.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpack.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpr.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gxl2gv.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lefty.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lneato.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/mm2gv.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/neato.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/nop.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/prune.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/sccmap.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/tred.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/twopi.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/unflatten.1 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cdt.3 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cgraph.3 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/graph.3 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/gvc.3 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/pathplan.3 create mode 100644 Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man7/graphviz.7 (limited to 'Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man') diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/acyclic.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/acyclic.1 new file mode 100644 index 0000000..fd3ae07 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/acyclic.1 @@ -0,0 +1,62 @@ +.TH ACYCLIC 1 "21 March 2001" +.SH NAME +acyclic \- make directed graph acyclic +.SH SYNOPSIS +.B acyclic +[ +.B \-nv? +] [ +.B \-o +.I outfile +] +[ +.I file +] +.SH DESCRIPTION +.B acyclic +is a filter that takes a directed graph as input and outputs +a copy of the graph with sufficient edges reversed to make +the graph acyclic. The reversed edge inherits all of the attributes +of the original edge. The optional file argument specifies where the +the input graph is stored; by default, the program reads from \fBstdin\fP. +.SH OPTIONS +The following options are supported: +.TP +.B \-n +No output is produced, though the return value +will indicate whether the graph is acyclic or not. +.TP +.B \-v +Print information about whether the file is acyclic, has a cycle or +is undirected. +.TP +.BI \-o " outfile" +causes the output to be written to the specified file; by default, +output is written to \fBstdout\fP. +.TP +.B \-? +option causes the program to print usage information. +.SH RETURN CODES +.B acyclic +returns +.B 0 +if the graph is acyclic; +.B 1 +if the graph has a cycle; +.B 2 +if the graph is undirected; and +.B 255 +if there are any errors. +.SH BUGS +If the graph is strict and there is a cycle of length 2, +the attributes of the reversed edge are lost. +.PP +Some edge attributes are non-symmetric, referring to either the head +or tail node. At present, there is no mechanism or convention for +for correctly switching or renaming these. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.SH "SEE ALSO" +gc(1), dot(1), gvpr(1), gvcolor(1), ccomps(1), sccmap(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/bcomps.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/bcomps.1 new file mode 100644 index 0000000..ea4ae5e --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/bcomps.1 @@ -0,0 +1,76 @@ +.TH BCOMPS 1 "18 November 2003" +.SH NAME +bcomps \- biconnected components filter for graphs +.SH SYNOPSIS +.B bcomps +[ +.B \-stvx? +] +[ +.BI -o outfile +] +[ +.I files +] +.SH DESCRIPTION +.B bcomps +decomposes graphs into their biconnected components, +printing the components to standard output. +.SH OPTIONS +The following options are supported: +.TP +.B \-s +No output graph is printed. Implies the +.B \-v +flag. +.TP +.B \-t +Print the underlying block-cutvertex tree. +.TP +.B \-x +Each biconnected component is printed as a separate root graph. +.TP +.B \-v +Prints number of blocks and cutvertices. +.TP +.BI \-o " outfile" +If specified, each root graph will be written to a different file +with the names derived from \fIoutfile\fP. In particular, +if both \fB-o\fP and \fB-x\fP flags are used, then each +block is written to a different file. If \fIoutfile\fP does +not have a suffix, the nth block of the ith graph is written +to \fIoutfile_n_i\fP. However, the 0th block of the 0th graph is written to +\fIoutfile\fP. +.sp +If \fIoutfile\fP has a suffix, i.e., has the form \fIbase.sfx\fP, +then the files will have the same name as above, except appended with \fI.sfx\fP. +.sp +The block-cutvertex tree of ith graph is written to \fIoutfile_n_T\fP, +with an appended suffix if specified. +.LP +By default, each input graph is printed, with each +block given as a subgraph whose name is a concatenation of +the name of the input graph, the string "_bcc_" and the +number of the block. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in dot format. +If no +.I files +operand is specified, +the standard input will be used. +.SH RETURN CODES +.B bcomps +returns +.B 0 +if all the input graphs are biconnected; and +non-zero if any graph has multiple blocks, or any error occurred. +.SH "BUGS" +It is possible, though unlikely, that the names used for connected +components and their subgraphs may conflict with existing subgraph names. +.SH AUTHORS +Emden R. Gansner +.SH "SEE ALSO" +ccomps(1), gc(1), dot(1), gvpr(1), gvcolor(1), acyclic(1), sccmap(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/ccomps.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/ccomps.1 new file mode 100644 index 0000000..4ee62ee --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/ccomps.1 @@ -0,0 +1,99 @@ +.TH CCOMPS 1 "21 March 2001" +.SH NAME +ccomps \- connected components filter for graphs +.SH SYNOPSIS +.B ccomps +[ +.B \-sxv? +] +[ +.BI -o outfile +] +[ +.I files +] +.SH DESCRIPTION +.B ccomps +decomposes graphs into their connected components, +printing the components to standard output. +.SH OPTIONS +The following options are supported: +.TP +.B \-s +No output graph is printed. The return value can be used to +check if the graph is connected or not. +.TP +.B \-x +Only the connected components are printed, as separate graphs. +.TP +.B \-v +Counts of nodes, edges and connected components are printed. +.TP +.B \-C +Use clusters in computing components in addition to normal edge +connectivity. In essence, this gives the connected components of the +derived graph in which nodes top-level clusters and nodes in the +original graph. This maintains all subgraph structure within a +component, even if a subgraph does not contain any nodes. +.TP +.B \-n +Do not project subgraph structure. Normally, if +.B ccomps +produces components as graphs distinct from the input graph, it will +define subgraphs which are projections of subgraphs of the input graph +onto the component. (If the projection is empty, no subgraph is produced.) +If this flag is set, the component contains only the relevant nodes and +edges. +.TP +.BI \-X " node_name" +Prints only the component containing the node \fInode_name\fP, +if any. +.TP +.BI \-X# " index" +Prints only component number \fIindex\fP, if any, starting at 0. +.TP +.BI \-o " outfile" +If specified, each graph will be written to a different file +with the names derived from \fIoutfile\fP. In particular, +if both \fB-o\fP and \fB-x\fP flags are used, then each connected +component is written to a different file. If \fIoutfile\fP does +not have a suffix, the first file will have the name \fIoutfile\fP; +then next \fIoutfile_1\fP, then next \fIoutfile_2\fP, and so on. +If \fIoutfile\fP has a suffix, i.e., has the form \fIbase.sfx\fP, +then the files will be named \fIbase.sfx\fP, \fIbase_1.sfx\fP, +\fIbase_2.sfx\fP, etc. +.LP +By default, each input graph is printed, with each connected +component given as a subgraph whose name is a concatenation of +the name of the input graph, the string "_component_" and the +number of the component. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in dot format. +If no +.I files +operand is specified, +the standard input will be used. +.SH RETURN CODES +Unless used to extract a single connected component, +.B ccomps +returns +.B 0 +if all the input graphs are connected; and +non-zero if any graph has multiple components, or any error occurred. +If just extracting a single component, +.B ccomps +returns +.B 0 +on success and non-zero if an error occurred. +.SH "BUGS" +It is possible, though unlikely, that the names used for connected +components and their subgraphs may conflict with existing subgraph names. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.SH "SEE ALSO" +gc(1), dot(1), gvpr(1), gvcolor(1), acyclic(1), sccmap(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/circo.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/circo.1 new file mode 100644 index 0000000..6ef258f --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/circo.1 @@ -0,0 +1,669 @@ +.TH DOT 1 "23 August 2004" \*(eX +.SH NAME +dot \- filter for drawing directed graphs +.br +neato \- filter for drawing undirected graphs +.br +twopi \- filter for radial layouts of graphs +.br +circo \- filter for circular layout of graphs +.br +fdp \- filter for drawing undirected graphs +.SH SYNOPSIS +\fBdot\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBneato\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-n\fR[\fB1\fR|\fB2\fR]] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBtwopi\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBcirco\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBfdp\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.SH DESCRIPTION +.I dot +draws directed graphs. It works well on DAGs and other graphs +that can be drawn as hierarchies. +It reads attributed graph files and writes drawings. +By default, the output format +.I dot +is the input file with layout coordinates appended. +.PP +.I neato +draws undirected graphs using ``spring'' models (see Kamada and Kawai, +Information Processing Letters 31:1, April 1989). Input files must be +formatted in the +.I dot +attributed graph language. +By default, the output of +.I neato +is the input graph with layout coordinates appended. +.PP +.I twopi +draws graphs using a radial layout (see G. Wills, +Symposium on Graph Drawing GD'97, September, 1997). +Basically, one node is chosen as the center and put at the origin. +The remaining nodes are placed on a sequence of concentric circles +centered about the origin, each a fixed radial distance from the +previous circle. +All nodes distance 1 from the center are placed on the first circle; +all nodes distance 1 from a node on the first circle are placed on +the second circle; and so forth. +.PP +.I circo +draws graphs using a circular layout (see +Six and Tollis, GD '99 and ALENEX '99, and +Kaufmann and Wiese, GD '02.) +The tool identifies biconnected components and draws the nodes of +the component on a circle. The block\(hycutpoint tree +is then laid out using a recursive radial algorithm. Edge +crossings within a circle are minimized by placing as many edges on +the circle's perimeter as possible. +In particular, if the component is outerplanar, the component will +have a planar layout. +.PP +If a node belongs to multiple non\(hytrivial biconnected components, +the layout puts the node in one of them. By default, this is the first +non\(hytrivial component found in the search from the root component. +.PP +.I fdp +draws undirected graphs using a ``spring'' model. It relies on a +force\(hydirected approach in the spirit of Fruchterman and Reingold +(cf. Software\(hyPractice & Experience 21(11), 1991, pp. 1129\(hy1164). +.SH OUTPUT FORMATS +Dot uses an extensible plugin mechanism for its output renderers, +so to see what output formats your installation of dot supports +you can use ``dot \-Txxx'' (where xxx is an unlikely format) +and check the warning message. +Also, The plugin mechanism supports multiple implementations +of the output formats. +To see what variants are available, use, for example: ``dot \-Tpng:'' +and to force a particular variant, use, for example: ``dot \-Tpng:gd'' +.P +Traditionally, dot supports the following: +\fB\-Tps\fP (PostScript), +\fB\-Tsvg\fP \fB\-Tsvgz\fP (Structured Vector Graphics), +\fB\-Tfig\fP (XFIG graphics), +\fB\-Tmif\fP (FrameMaker graphics), +\fB\-Thpgl\fP (HP pen plotters), and \fB\-Tpcl\fP (Laserjet printers), +\fB\-Tpng\fP \fB\-Tgif\fP (bitmap graphics), +\fB\-Tdia\fP (GTK+ based diagrams), +\fB\-Timap\fP (imagemap files for httpd servers for each node or edge +that has a non(hynull "href" attribute.), +\fB\-Tcmapx\fP (client\(hyside imagemap for use in html and xhtml). +Additional less common or more special\(hypurpose output formats +can be found at http://www.graphviz.org/cvs/doc/info/output.html.) +.SH GRAPH FILE LANGUAGE +Here is a synopsis of the graph file language, traditionally using the extension \fB.dot\fR, for graphs: +.PP +[\fBstrict\fR] (\fBgraph\fR|\fBdigraph\fR) \fIname\fP { \fIstatement\(hylist\fP }\fR +.br +Is the top level graph. If the graph is \fBstrict\fR then multiple edges are +not allowed between the same pairs of nodes. +If it is a directed graph, indicated by \fBdigraph\fR, +then the \fIedgeop\fR must be "\->". If it is an undirected \fBgraph\fR +then the \fIedgeop\fR must be "\-\-". +Statements may be: +.PP +\fIname\fB=\fIval\fB;\fR +.br +\fBnode [\fIname\fB=\fIval\fB];\fR +.br +\fBedge [\fIname\fB=\fIval\fB];\fR +.br +Set default graph, node, or edge attribute \fIname\fP to \fIval\fP. +Any subgraph, node, or edge appearing after this inherits the new +default attributes. +.PP +\fBn0 [\fIname0=val0,name1=val1,...\fB];\fR +Creates node \fBn0\fP (if it does not already exist) +and sets its attributes according to the optional list. +.PP +\fBn0 \fIedgeop\fR n1 \fIedgeop\fR \fI...\fB \fIedgeop\fR nn [\fIname0=val0,name1=val1,...\fB];\fR +.br +Creates edges between nodes \fBn0\fP, \fBn1\fP, ..., \fBnn\fP and sets +their attributes according to the optional list. +Creates nodes as necessary. +.PP +[\fBsubgraph \fIname\fB] { \fIstatement\(hylist \fB}\fR +.br +Creates a subgraph. Subgraphs may be used in place +of \fBn0\fP, ..., \fBnn\fP in the above statements to create edges. +[\fBsubgraph \fIname\fR] is optional; +if missing, the subgraph is assigned an internal name. +.PP +Comments may be /*C\(hylike*/ or //C++\(hylike. + +.PP +Attribute names and values are ordinary (C\(hystyle) strings. +The following sections describe attributes that control graph layout. + +.SH "GRAPH ATTRIBUTES" +.PP +\fBsize="\fIx,y\fP"\fR sets bounding box of drawing in inches. +.PP +\fBpage="\fIx,y\fP"\fR sets the PostScript pagination unit. +.PP +\fBratio=\fIf\fR sets the aspect ratio to \fIf\fP which may be +a floating point number, or one of the keywords \fBfill\fP, +\fBcompress\fP, or \fBauto\fP. +.PP +\fBmargin=\fIf\fR sets the page margin (included in the page size). +.PP +\fBnodesep=\fIf\fR sets the minimum separation between nodes. +.PP +\fBranksep=\fIf\fR sets the minimum separation between ranks. +.PP +\fBordering=out\fR constrains order of out\(hyedges in a subgraph +according to their file sequence. +.PP +\fBrankdir=LR|RL|BT\fR requests a left\(hyto\(hyright, right\(hyto\(hyleft, or bottom\(hyto\(hytop, drawing. +.PP +\fBpagedir=\fR[TBLR][TBLR] sets the major and minor order of pagination. +.PP +\fBrank=same\fR (or \fBmin\fP or \fBmax\fP) in a subgraph +constrains the rank assignment of its nodes. If a subgraph's +name has the prefix \fBcluster\fP, its nodes are drawn in +a distinct rectangle of the layout. Clusters may be nested. +.PP +\fBrotate=90\fR sets landscape mode. +(\fBorientation=land\fR is backward compatible but obsolete.) +.PP +\fBcenter=\fIn\fR a non\(hyzero value centers the drawing on the page. +.PP +\fBnslimit=\fIf\fR or \fBmclimit=\fIf\fR adjusts the bound on the +number of network simplex or mincross iterations by the given ratio. +For example, \fBmclimit=2.0\fP runs twice as long. +.PP +\fBlayers="\fIid:id:id:id\fR" is a sequence of layer identifiers for +overlay diagrams. The PostScript array variable \fIlayercolorseq\fR +sets the assignment of colors to layers. The least index is 1 and +each element must be a 3\(hyelement array to be interpreted as a color coordinate. +.PP +\fBcolor=\fIcolorvalue\fR sets foreground color (\fBbgcolor\fP for background). +.PP +\fBhref=\fI"url"\fR the default url for image map files; in PostScript files, +the base URL for all relative URLs, as recognized by Acrobat Distiller +3.0 and up. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBstylesheet=\fI"file.css"\fR includes a reference to a stylesheet +in \-Tsvg and \-Tsvgz outputs. Ignored by other formats. + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBstart=\fIval\fR. Requests random initial placement and seeds +the random number generator. If \fIval\fP is not an integer, +the process ID or current time is used as the seed. +.PP +\fBepsilon=\fIn\fR. Sets the cutoff for the solver. +The default is 0.1. +.PP +\fBsplines=\fIboolean\fR. Setting this to \fItrue\fR causes edges to be +drawn as splines if nodes don't overlap. The default is \fIfalse\fR. + +.PP +\fB(twopi\(hyspecific attributes)\fR +.br +\fBroot=\fIctr\fR. This specifies the node to be used as the center of +the layout. If not specified, \fItwopi\fP will randomly pick one of the +nodes that are furthest from a leaf node, where a leaf node is a node +of degree 1. If no leaf nodes exists, an arbitrary node is picked as center. +.PP +\fBranksep=\fIval\fR. Specifies the radial distance in inches between +the sequence of rings. The default is 0.75. +.PP +\fBoverlap=\fImode\fR. This specifies what \fItwopi\fP should do if +any nodes overlap. If mode is \fI"false"\fP, the program uses Voronoi +diagrams to adjust the nodes to eliminate overlaps. If mode is \fI"scale"\fP, +the layout is uniformly scaled up, preserving node sizes, until nodes no +longer overlap. The latter technique removes overlaps while preserving +symmetry and structure, while the former removes overlaps more compactly +but destroys symmetries. +If mode is \fI"true"\fP (the default), no repositioning is done. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fItwopi\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fInodename\fR. Specifies the name of a node occurring in the +root block. If the graph is disconnected, the \fBroot\fP node attribute +can be used to specify additional root blocks. +.PP +\fBmindist=\fIvalue\fR. Sets the minimum separation between all nodes. If not +specified then \fIcirco\fP uses a default value of 1.0. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fIcirco\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBK=\fIval\fR. Sets the default ideal node separation +in the layout. +.PP +\fBmaxiter=\fIval\fR. Sets the maximum number of iterations used to +layout the graph. +.PP +\fBstart=\fIval\fR. Adjusts the random initial placement of nodes +with no specified position. If \fIval\fP is is an integer, +it is used as the seed for the random number generator. +If \fIval\fP is not an integer, a random system\(hygenerated integer, +such as the process ID or current time, is used as the seed. +.PP +\fBsplines=\fIval\fR. If \fIval\fR is "true", edges are drawn +as splines to avoid nodes. By default, edges are draw as line segments. +.PP + +.SH "NODE ATTRIBUTES" +.PP +\fBheight=\fId\fR or \fBwidth=\fId\fR sets minimum height or width. +Adding \fBfixedsize=true\fP forces these to be the actual size +(text labels are ignored). +.PP +\fBshape=record polygon epsf \fIbuiltin_polygon\fR +.br +\fIbuiltin_polygon\fR is one of: \fBplaintext ellipse oval circle egg +triangle box diamond trapezium parallelogram house hexagon octagon +note tab box3d component.\fR +(Polygons are defined or modified by the following node attributes: +\fBregular\fR, \fBperipheries\fR, \fBsides\fR, \fBorientation\fR, +\fBdistortion\fR and \fBskew\fR.) \fBepsf\fR uses the node's +\fBshapefile\fR attribute as the path name of an external +EPSF file to be automatically loaded for the node shape. +.PP +\fBlabel=\fItext\fR where \fItext\fP may include escaped newlines +\\\|n, \\\|l, or \\\|r for center, left, and right justified lines. +The string '\\N' value will be replaced by the node name. +Record labels may contain recursive box lists delimited by { | }. +Port identifiers in labels are set off by angle brackets < >. +In the graph file, use colon (such as, \fBnode0:port28\fR). +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBcolor=\fIcolorvalue\fR sets the outline color, and the default fill color +if style=filled and \fBfillcolor\fR is not specified. +.PP +\fBfillcolor=\fIcolorvalue\fR sets the fill color +when style=filled. If not specified, the fillcolor when style=filled defaults +to be the same as the outline color. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +A \fIcolorvalue\fP may be "\fIh,s,v\fB"\fR (hue, saturation, brightness) +floating point numbers between 0 and 1, or an X11 color name such as +\fBwhite black red green blue yellow magenta cyan\fR or \fBburlywood\fR, +or a "\fI#rrggbb" (red, green, blue, 2 hex characters each) value. +.PP +\fBstyle=filled solid dashed dotted bold invis\fP or any Postscript code. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the node's active layers. +The empty string means no layers (invisible). +.PP +The following attributes apply only to polygon shape nodes: +.PP +\fBregular=\fIn\fR if \fIn\fR is non\(hyzero then the polygon is made +regular, i.e. symmetric about the x and y axis, otherwise the +polygon takes on the aspect ratio of the label. +\fIbuiltin_polygons\fR that are not already regular are made regular +by this attribute. +\fIbuiltin_polygons\fR that are already regular are not affected (i.e. +they cannot be made asymmetric). +.PP +\fBperipheries=\fIn\fR sets the number of periphery lines drawn around +the polygon. This value supersedes the number of periphery lines +of \fIbuiltin_polygons\fR. +.PP +\fBsides=\fIn\fR sets the number of sides to the polygon. \fIn\fR<3 +results in an ellipse. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBorientation=\fIf\fR sets the orientation of the first apex of the +polygon counterclockwise from the vertical, in degrees. +\fIf\fR may be a floating point number. +The orientation of labels is not affected by this attribute. +This attribute is added to the initial orientation of \fIbuiltin_polygons.\fR +.PP +\fBdistortion=\fIf\fR sets the amount of broadening of the top and +narrowing of the bottom of the polygon (relative to its orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBskew=\fIf\fR sets the amount of right\(hydisplacement of the top and +left\(hydisplacement of the bottom of the polygon (relative to its +orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. +The target string is used to determine which window of the browser is used +for the URL. Setting it to "_graphviz" will open a new window if it doesn't +already exist, or reuse it if it does. +If the target string is empty, the default, +then no target attribute is included in the output. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. The tooltip string defaults to be the +same as the label string, but this attribute permits nodes without +labels to still have tooltips thus permitting denser graphs. +The substring '\\N' is substituted in the same manner as +for the node label attribute. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fItrue/false\fR. This specifies that the block containing the given +node be treated as the root of the spanning tree in the layout. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBpin=\fIval\fR. If \fIval\fR is "true", the node will remain at +its initial position. + +.SH "EDGE ATTRIBUTES" +\fBminlen=\fIn\fR where \fIn\fP is an integer factor that applies +to the edge length (ranks for normal edges, or minimum node separation +for flat edges). +.PP +\fBweight=\fIn\fR where \fIn\fP is the integer cost of the edge. +Values greater than 1 tend to shorten the edge. Weight 0 flat +edges are ignored for ordering nodes. +.PP +\fBlabel=\fItext\fR where \fItext\fR may include escaped newlines +\\\|n, \\\|l, or \\\|r for centered, left, or right justified lines. +If the substring '\\T' is found in a label it will be replaced by the tail_node name. +If the substring '\\H' is found in a label it will be replaced by the head_node name. +If the substring '\\E' value is found in a label it will be replaced by: tail_node_name\->head_node_name +or by: tail_node_name\-\-head_node_name for undirected graphs. +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +\fBstyle=solid dashed dotted bold invis\fP +.PP +\fBcolor=\fIcolorvalue\fR sets the line color for edges. +.PP +\fBcolor=\fIcolorvaluelist\fR a ':' separated list of \fIcolorvalue\fR creates +parallel edges, one edge for each color. +.PP +\fBdir=forward back both none\fP controls arrow direction. +.PP +\fBtailclip,headclip=false\fP disables endpoint shape clipping. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edges have a URL. +If the target string is empty, the default, +then no target attribute is included in the output. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when edges have a URL. The tooltip string defaults to be the +same as the edge label string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBarrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, +tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow\fP. +.PP +\fBarrowsize\fP (norm_length=10,norm_width=5, +inv_length=6,inv_width=7,dot_radius=2) +.PP +\fBheadlabel,taillabel=string\fP for port labels. +\fBlabelfontcolor\fP,\fBlabelfontname\fP,\fBlabelfontsize\fP +for head and tail labels. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadhref=\fI"url"\fR sets the url for the head port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadURL=\fI"url"\fR ("headURL" is a synonym for "headhref".) +.PP +\fBheadtarget=\fI"headtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge heads have a URL. +The headtarget string is used to determine which window of the browser is used +for the URL. If the headtarget string is empty, the default, +then headtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when head ports have a URL. The tooltip string defaults to be the +same as the headlabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailhref=\fI"url"\fR sets the url for the tail port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailURL=\fI"url"\fR ("tailURL" is a synonym for "tailhref".) +.PP +\fBtailtarget=\fI"tailtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge tails have a URL. +The tailtarget string is used to determine which window of the browser is used +for the URL. If the tailtarget string is empty, the default, +then tailtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when tail ports have a URL. The tooltip string defaults to be the +same as the taillabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBlabeldistance\fP and \fPport_label_distance\fP set distance; also +\fBlabelangle\fP (in degrees CCW) +.PP +\fBdecorate\fP draws line from edge to label. +.PP +\fBsamehead,sametail\fP aim edges having the same value to the +same port, using the average landing point. +.PP +\fBconstraint=false\fP causes an edge to be ignored for rank assignment. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the edgess active layers. +The empty string means no layers (invisible). + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBw=\fIf\fR sets the weight (spring constant) of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.PP +\fBlen=\fIf\fR sets the optimal length of an edge. +The default is 1.0. +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBweight=\fIf\fR sets the weight of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.SH "COMMAND LINE OPTIONS" +\fB\-G\fP sets a default graph attribute. +.br +\fB\-N\fP sets a default node attribute. +.br +\fB\-E\fP sets a default edge attribute. +Example: \fB\-Gsize="7,8" \-Nshape=box \-Efontsize=8\fR +.PP +\fB\-l\fIfile\fR loads custom PostScript library files. +Usually these define custom shapes or styles. +If \fB\-l\fP is given by itself, the standard library is omitted. +.PP +\fB\-T\fIlang\fR sets the output language as described above. + +.PP +\fB\-n\fR[\fB1\fR|\fB2\fR] (no\(hyop) +If set, neato assumes nodes have already been positioned and all +nodes have a pos attribute giving the positions. +It then performs an optional adjustment to remove node\(hynode overlap, +depending on the value of the overlap attribute, +computes the edge layouts, depending on the value of the \fBsplines\fR attribute, +and emits the graph in the appropriate format. +If num is supplied, the following actions occur: +.nf + num = 1 +.fi +Equivalent to \-n. +.nf + num > 1 +.fi +Use node positions as specified, +with no adjustment to remove node\(hynode overlaps, +and use any edge layouts already specified by the pos attribute. +neato computes an edge layout for any edge that does not have a pos attribute. +As usual, edge layout is guided by the \fBsplines\fR attribute. +.PP +\fB\-v\fP (verbose) prints delta energy every 100th iteration. +.PP +\fB\-V\fP (version) prints version information and exits. +.PP +\fB\-?\fP prints the usage and exits. +.SH "EXAMPLES" +.nf +digraph test123 { + a \-> b \-> c; + a \-> {x y}; + b [shape=box]; + c [label="hello\\\|nworld",color=blue,fontsize=24, + fontname="Palatino\-Italic",fontcolor=red,style=filled]; + a \-> z [label="hi", weight=100]; + x \-> z [label="multi\-line\\\|nlabel"]; + edge [style=dashed,color=red]; + b \-> x; + {rank=same; b x} +} +.fi +.PP +.nf +graph test123 { + a \-\- b \-\- c; + a \-\- {x y}; + x \-\- c [w=10.0]; + x \-\- y [w=5.0,len=3]; +} +.fi +.SH "CAVEATS" +Edge splines can overlap unintentionally. +.PP +Flat edge labels are slightly broken. +Intercluster edge labels are totally broken. +.PP +Because unconstrained optimization is employed, node boxes can +possibly overlap or touch unrelated edges. All existing +spring embedders seem to have this limitation. +.PP +Apparently reasonable attempts to pin nodes or adjust edge lengths +and weights can cause instability. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.br +John C. Ellson +.PP +The bitmap driver (PNG, GIF etc) is by Thomas Boutell, +.PP +The Truetype font renderer is from +the Freetype Project (David Turner, Robert Wilhelm, and Werner Lemberg) +(who can be contacted at freetype\-devel@lists.lrz\-muenchen.de). +.SH "SEE ALSO" +This man page contains only a small amount of the information related +to the Graphviz layout programs. The most complete information can be +found at http://www.graphviz.org/Documentation.php, especially in the +on\(hyline reference pages. Most of these documents are also available in the +\fIdoc\fP and \fIdoc/info\fP subtrees in the source and binary distributions. +.PP +dotty(1) +.br +tcldot(n) +.br +xcolors(1) +.br +libgraph(3) +.PP +E. R. Gansner, S. C. North, K. P. Vo, "DAG \(hy A Program to Draw Directed Graphs", Software \(hy Practice and Experience 17(1), 1988, pp. 1047\(hy1062. +.br +E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp. 214\(hy230. +.br +S. North and E. Koutsofios, "Applications of graph visualization", +Graphics Interface 94, pp. 234\(hy245. +.br +E. Koutsofios and S. C. North, "Drawing Graphs with dot," +Available on research.att.com in dist/drawdag/dotguide.ps.Z. +.br +S. C. North, "NEATO User's Manual". +Available on research.att.com in dist/drawdag/neatodoc.ps.Z. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dijkstra.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dijkstra.1 new file mode 100644 index 0000000..4fceaf5 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dijkstra.1 @@ -0,0 +1,59 @@ +.TH DIJKSTRA 1 "21 March 2001" +.SH NAME +dijkstra \- single-source distance filter +.SH SYNOPSIS +.B dijkstra +[ +.B \-a? +] +[ +.I sourcenode file +] +.SH DESCRIPTION +.B dijkstra +reads a stream of graphs and for each computes the distance of every +node from +.I sourcenode. +Edge length is given in the +.I len +attribute, and the default is 1. The +.I dist +attribute of every node is set to its distance from +.I sourcenode. +The graph attribute +.I maxdist +is set to the maximum +.I dist +of all nodes in the graph. +.P +By default, if the graph is disconnected, the +.I dist +attribute of nodes unreachable from +.I sourcenode +are left untouched, and +.I maxdist +is set to the maximum of any previous value and the largest +distance recorded in this run. On the other hand, if +the \fB-a\fP flag is used, the +.I dist +attribute of an unreachable node is assigned a very large value, +and +.I maxdist +records the maximum distance found in the component containing +.I sourcenode. +.P +Any number of +.I sourcenode file +pairs may be given. +If the last +.I file +is missing, \fBstdin\fP is used. +All output is written to \fBstdout\fP. +.P +In a typical application, +.I dist +and +.I maxdist +can drive a downstream calculation of color or some other attribute. +.SH "SEE ALSO" +gvpr(1), gvcolor(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dot.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dot.1 new file mode 100644 index 0000000..6ef258f --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dot.1 @@ -0,0 +1,669 @@ +.TH DOT 1 "23 August 2004" \*(eX +.SH NAME +dot \- filter for drawing directed graphs +.br +neato \- filter for drawing undirected graphs +.br +twopi \- filter for radial layouts of graphs +.br +circo \- filter for circular layout of graphs +.br +fdp \- filter for drawing undirected graphs +.SH SYNOPSIS +\fBdot\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBneato\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-n\fR[\fB1\fR|\fB2\fR]] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBtwopi\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBcirco\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBfdp\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.SH DESCRIPTION +.I dot +draws directed graphs. It works well on DAGs and other graphs +that can be drawn as hierarchies. +It reads attributed graph files and writes drawings. +By default, the output format +.I dot +is the input file with layout coordinates appended. +.PP +.I neato +draws undirected graphs using ``spring'' models (see Kamada and Kawai, +Information Processing Letters 31:1, April 1989). Input files must be +formatted in the +.I dot +attributed graph language. +By default, the output of +.I neato +is the input graph with layout coordinates appended. +.PP +.I twopi +draws graphs using a radial layout (see G. Wills, +Symposium on Graph Drawing GD'97, September, 1997). +Basically, one node is chosen as the center and put at the origin. +The remaining nodes are placed on a sequence of concentric circles +centered about the origin, each a fixed radial distance from the +previous circle. +All nodes distance 1 from the center are placed on the first circle; +all nodes distance 1 from a node on the first circle are placed on +the second circle; and so forth. +.PP +.I circo +draws graphs using a circular layout (see +Six and Tollis, GD '99 and ALENEX '99, and +Kaufmann and Wiese, GD '02.) +The tool identifies biconnected components and draws the nodes of +the component on a circle. The block\(hycutpoint tree +is then laid out using a recursive radial algorithm. Edge +crossings within a circle are minimized by placing as many edges on +the circle's perimeter as possible. +In particular, if the component is outerplanar, the component will +have a planar layout. +.PP +If a node belongs to multiple non\(hytrivial biconnected components, +the layout puts the node in one of them. By default, this is the first +non\(hytrivial component found in the search from the root component. +.PP +.I fdp +draws undirected graphs using a ``spring'' model. It relies on a +force\(hydirected approach in the spirit of Fruchterman and Reingold +(cf. Software\(hyPractice & Experience 21(11), 1991, pp. 1129\(hy1164). +.SH OUTPUT FORMATS +Dot uses an extensible plugin mechanism for its output renderers, +so to see what output formats your installation of dot supports +you can use ``dot \-Txxx'' (where xxx is an unlikely format) +and check the warning message. +Also, The plugin mechanism supports multiple implementations +of the output formats. +To see what variants are available, use, for example: ``dot \-Tpng:'' +and to force a particular variant, use, for example: ``dot \-Tpng:gd'' +.P +Traditionally, dot supports the following: +\fB\-Tps\fP (PostScript), +\fB\-Tsvg\fP \fB\-Tsvgz\fP (Structured Vector Graphics), +\fB\-Tfig\fP (XFIG graphics), +\fB\-Tmif\fP (FrameMaker graphics), +\fB\-Thpgl\fP (HP pen plotters), and \fB\-Tpcl\fP (Laserjet printers), +\fB\-Tpng\fP \fB\-Tgif\fP (bitmap graphics), +\fB\-Tdia\fP (GTK+ based diagrams), +\fB\-Timap\fP (imagemap files for httpd servers for each node or edge +that has a non(hynull "href" attribute.), +\fB\-Tcmapx\fP (client\(hyside imagemap for use in html and xhtml). +Additional less common or more special\(hypurpose output formats +can be found at http://www.graphviz.org/cvs/doc/info/output.html.) +.SH GRAPH FILE LANGUAGE +Here is a synopsis of the graph file language, traditionally using the extension \fB.dot\fR, for graphs: +.PP +[\fBstrict\fR] (\fBgraph\fR|\fBdigraph\fR) \fIname\fP { \fIstatement\(hylist\fP }\fR +.br +Is the top level graph. If the graph is \fBstrict\fR then multiple edges are +not allowed between the same pairs of nodes. +If it is a directed graph, indicated by \fBdigraph\fR, +then the \fIedgeop\fR must be "\->". If it is an undirected \fBgraph\fR +then the \fIedgeop\fR must be "\-\-". +Statements may be: +.PP +\fIname\fB=\fIval\fB;\fR +.br +\fBnode [\fIname\fB=\fIval\fB];\fR +.br +\fBedge [\fIname\fB=\fIval\fB];\fR +.br +Set default graph, node, or edge attribute \fIname\fP to \fIval\fP. +Any subgraph, node, or edge appearing after this inherits the new +default attributes. +.PP +\fBn0 [\fIname0=val0,name1=val1,...\fB];\fR +Creates node \fBn0\fP (if it does not already exist) +and sets its attributes according to the optional list. +.PP +\fBn0 \fIedgeop\fR n1 \fIedgeop\fR \fI...\fB \fIedgeop\fR nn [\fIname0=val0,name1=val1,...\fB];\fR +.br +Creates edges between nodes \fBn0\fP, \fBn1\fP, ..., \fBnn\fP and sets +their attributes according to the optional list. +Creates nodes as necessary. +.PP +[\fBsubgraph \fIname\fB] { \fIstatement\(hylist \fB}\fR +.br +Creates a subgraph. Subgraphs may be used in place +of \fBn0\fP, ..., \fBnn\fP in the above statements to create edges. +[\fBsubgraph \fIname\fR] is optional; +if missing, the subgraph is assigned an internal name. +.PP +Comments may be /*C\(hylike*/ or //C++\(hylike. + +.PP +Attribute names and values are ordinary (C\(hystyle) strings. +The following sections describe attributes that control graph layout. + +.SH "GRAPH ATTRIBUTES" +.PP +\fBsize="\fIx,y\fP"\fR sets bounding box of drawing in inches. +.PP +\fBpage="\fIx,y\fP"\fR sets the PostScript pagination unit. +.PP +\fBratio=\fIf\fR sets the aspect ratio to \fIf\fP which may be +a floating point number, or one of the keywords \fBfill\fP, +\fBcompress\fP, or \fBauto\fP. +.PP +\fBmargin=\fIf\fR sets the page margin (included in the page size). +.PP +\fBnodesep=\fIf\fR sets the minimum separation between nodes. +.PP +\fBranksep=\fIf\fR sets the minimum separation between ranks. +.PP +\fBordering=out\fR constrains order of out\(hyedges in a subgraph +according to their file sequence. +.PP +\fBrankdir=LR|RL|BT\fR requests a left\(hyto\(hyright, right\(hyto\(hyleft, or bottom\(hyto\(hytop, drawing. +.PP +\fBpagedir=\fR[TBLR][TBLR] sets the major and minor order of pagination. +.PP +\fBrank=same\fR (or \fBmin\fP or \fBmax\fP) in a subgraph +constrains the rank assignment of its nodes. If a subgraph's +name has the prefix \fBcluster\fP, its nodes are drawn in +a distinct rectangle of the layout. Clusters may be nested. +.PP +\fBrotate=90\fR sets landscape mode. +(\fBorientation=land\fR is backward compatible but obsolete.) +.PP +\fBcenter=\fIn\fR a non\(hyzero value centers the drawing on the page. +.PP +\fBnslimit=\fIf\fR or \fBmclimit=\fIf\fR adjusts the bound on the +number of network simplex or mincross iterations by the given ratio. +For example, \fBmclimit=2.0\fP runs twice as long. +.PP +\fBlayers="\fIid:id:id:id\fR" is a sequence of layer identifiers for +overlay diagrams. The PostScript array variable \fIlayercolorseq\fR +sets the assignment of colors to layers. The least index is 1 and +each element must be a 3\(hyelement array to be interpreted as a color coordinate. +.PP +\fBcolor=\fIcolorvalue\fR sets foreground color (\fBbgcolor\fP for background). +.PP +\fBhref=\fI"url"\fR the default url for image map files; in PostScript files, +the base URL for all relative URLs, as recognized by Acrobat Distiller +3.0 and up. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBstylesheet=\fI"file.css"\fR includes a reference to a stylesheet +in \-Tsvg and \-Tsvgz outputs. Ignored by other formats. + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBstart=\fIval\fR. Requests random initial placement and seeds +the random number generator. If \fIval\fP is not an integer, +the process ID or current time is used as the seed. +.PP +\fBepsilon=\fIn\fR. Sets the cutoff for the solver. +The default is 0.1. +.PP +\fBsplines=\fIboolean\fR. Setting this to \fItrue\fR causes edges to be +drawn as splines if nodes don't overlap. The default is \fIfalse\fR. + +.PP +\fB(twopi\(hyspecific attributes)\fR +.br +\fBroot=\fIctr\fR. This specifies the node to be used as the center of +the layout. If not specified, \fItwopi\fP will randomly pick one of the +nodes that are furthest from a leaf node, where a leaf node is a node +of degree 1. If no leaf nodes exists, an arbitrary node is picked as center. +.PP +\fBranksep=\fIval\fR. Specifies the radial distance in inches between +the sequence of rings. The default is 0.75. +.PP +\fBoverlap=\fImode\fR. This specifies what \fItwopi\fP should do if +any nodes overlap. If mode is \fI"false"\fP, the program uses Voronoi +diagrams to adjust the nodes to eliminate overlaps. If mode is \fI"scale"\fP, +the layout is uniformly scaled up, preserving node sizes, until nodes no +longer overlap. The latter technique removes overlaps while preserving +symmetry and structure, while the former removes overlaps more compactly +but destroys symmetries. +If mode is \fI"true"\fP (the default), no repositioning is done. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fItwopi\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fInodename\fR. Specifies the name of a node occurring in the +root block. If the graph is disconnected, the \fBroot\fP node attribute +can be used to specify additional root blocks. +.PP +\fBmindist=\fIvalue\fR. Sets the minimum separation between all nodes. If not +specified then \fIcirco\fP uses a default value of 1.0. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fIcirco\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBK=\fIval\fR. Sets the default ideal node separation +in the layout. +.PP +\fBmaxiter=\fIval\fR. Sets the maximum number of iterations used to +layout the graph. +.PP +\fBstart=\fIval\fR. Adjusts the random initial placement of nodes +with no specified position. If \fIval\fP is is an integer, +it is used as the seed for the random number generator. +If \fIval\fP is not an integer, a random system\(hygenerated integer, +such as the process ID or current time, is used as the seed. +.PP +\fBsplines=\fIval\fR. If \fIval\fR is "true", edges are drawn +as splines to avoid nodes. By default, edges are draw as line segments. +.PP + +.SH "NODE ATTRIBUTES" +.PP +\fBheight=\fId\fR or \fBwidth=\fId\fR sets minimum height or width. +Adding \fBfixedsize=true\fP forces these to be the actual size +(text labels are ignored). +.PP +\fBshape=record polygon epsf \fIbuiltin_polygon\fR +.br +\fIbuiltin_polygon\fR is one of: \fBplaintext ellipse oval circle egg +triangle box diamond trapezium parallelogram house hexagon octagon +note tab box3d component.\fR +(Polygons are defined or modified by the following node attributes: +\fBregular\fR, \fBperipheries\fR, \fBsides\fR, \fBorientation\fR, +\fBdistortion\fR and \fBskew\fR.) \fBepsf\fR uses the node's +\fBshapefile\fR attribute as the path name of an external +EPSF file to be automatically loaded for the node shape. +.PP +\fBlabel=\fItext\fR where \fItext\fP may include escaped newlines +\\\|n, \\\|l, or \\\|r for center, left, and right justified lines. +The string '\\N' value will be replaced by the node name. +Record labels may contain recursive box lists delimited by { | }. +Port identifiers in labels are set off by angle brackets < >. +In the graph file, use colon (such as, \fBnode0:port28\fR). +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBcolor=\fIcolorvalue\fR sets the outline color, and the default fill color +if style=filled and \fBfillcolor\fR is not specified. +.PP +\fBfillcolor=\fIcolorvalue\fR sets the fill color +when style=filled. If not specified, the fillcolor when style=filled defaults +to be the same as the outline color. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +A \fIcolorvalue\fP may be "\fIh,s,v\fB"\fR (hue, saturation, brightness) +floating point numbers between 0 and 1, or an X11 color name such as +\fBwhite black red green blue yellow magenta cyan\fR or \fBburlywood\fR, +or a "\fI#rrggbb" (red, green, blue, 2 hex characters each) value. +.PP +\fBstyle=filled solid dashed dotted bold invis\fP or any Postscript code. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the node's active layers. +The empty string means no layers (invisible). +.PP +The following attributes apply only to polygon shape nodes: +.PP +\fBregular=\fIn\fR if \fIn\fR is non\(hyzero then the polygon is made +regular, i.e. symmetric about the x and y axis, otherwise the +polygon takes on the aspect ratio of the label. +\fIbuiltin_polygons\fR that are not already regular are made regular +by this attribute. +\fIbuiltin_polygons\fR that are already regular are not affected (i.e. +they cannot be made asymmetric). +.PP +\fBperipheries=\fIn\fR sets the number of periphery lines drawn around +the polygon. This value supersedes the number of periphery lines +of \fIbuiltin_polygons\fR. +.PP +\fBsides=\fIn\fR sets the number of sides to the polygon. \fIn\fR<3 +results in an ellipse. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBorientation=\fIf\fR sets the orientation of the first apex of the +polygon counterclockwise from the vertical, in degrees. +\fIf\fR may be a floating point number. +The orientation of labels is not affected by this attribute. +This attribute is added to the initial orientation of \fIbuiltin_polygons.\fR +.PP +\fBdistortion=\fIf\fR sets the amount of broadening of the top and +narrowing of the bottom of the polygon (relative to its orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBskew=\fIf\fR sets the amount of right\(hydisplacement of the top and +left\(hydisplacement of the bottom of the polygon (relative to its +orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. +The target string is used to determine which window of the browser is used +for the URL. Setting it to "_graphviz" will open a new window if it doesn't +already exist, or reuse it if it does. +If the target string is empty, the default, +then no target attribute is included in the output. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. The tooltip string defaults to be the +same as the label string, but this attribute permits nodes without +labels to still have tooltips thus permitting denser graphs. +The substring '\\N' is substituted in the same manner as +for the node label attribute. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fItrue/false\fR. This specifies that the block containing the given +node be treated as the root of the spanning tree in the layout. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBpin=\fIval\fR. If \fIval\fR is "true", the node will remain at +its initial position. + +.SH "EDGE ATTRIBUTES" +\fBminlen=\fIn\fR where \fIn\fP is an integer factor that applies +to the edge length (ranks for normal edges, or minimum node separation +for flat edges). +.PP +\fBweight=\fIn\fR where \fIn\fP is the integer cost of the edge. +Values greater than 1 tend to shorten the edge. Weight 0 flat +edges are ignored for ordering nodes. +.PP +\fBlabel=\fItext\fR where \fItext\fR may include escaped newlines +\\\|n, \\\|l, or \\\|r for centered, left, or right justified lines. +If the substring '\\T' is found in a label it will be replaced by the tail_node name. +If the substring '\\H' is found in a label it will be replaced by the head_node name. +If the substring '\\E' value is found in a label it will be replaced by: tail_node_name\->head_node_name +or by: tail_node_name\-\-head_node_name for undirected graphs. +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +\fBstyle=solid dashed dotted bold invis\fP +.PP +\fBcolor=\fIcolorvalue\fR sets the line color for edges. +.PP +\fBcolor=\fIcolorvaluelist\fR a ':' separated list of \fIcolorvalue\fR creates +parallel edges, one edge for each color. +.PP +\fBdir=forward back both none\fP controls arrow direction. +.PP +\fBtailclip,headclip=false\fP disables endpoint shape clipping. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edges have a URL. +If the target string is empty, the default, +then no target attribute is included in the output. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when edges have a URL. The tooltip string defaults to be the +same as the edge label string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBarrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, +tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow\fP. +.PP +\fBarrowsize\fP (norm_length=10,norm_width=5, +inv_length=6,inv_width=7,dot_radius=2) +.PP +\fBheadlabel,taillabel=string\fP for port labels. +\fBlabelfontcolor\fP,\fBlabelfontname\fP,\fBlabelfontsize\fP +for head and tail labels. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadhref=\fI"url"\fR sets the url for the head port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadURL=\fI"url"\fR ("headURL" is a synonym for "headhref".) +.PP +\fBheadtarget=\fI"headtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge heads have a URL. +The headtarget string is used to determine which window of the browser is used +for the URL. If the headtarget string is empty, the default, +then headtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when head ports have a URL. The tooltip string defaults to be the +same as the headlabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailhref=\fI"url"\fR sets the url for the tail port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailURL=\fI"url"\fR ("tailURL" is a synonym for "tailhref".) +.PP +\fBtailtarget=\fI"tailtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge tails have a URL. +The tailtarget string is used to determine which window of the browser is used +for the URL. If the tailtarget string is empty, the default, +then tailtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when tail ports have a URL. The tooltip string defaults to be the +same as the taillabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBlabeldistance\fP and \fPport_label_distance\fP set distance; also +\fBlabelangle\fP (in degrees CCW) +.PP +\fBdecorate\fP draws line from edge to label. +.PP +\fBsamehead,sametail\fP aim edges having the same value to the +same port, using the average landing point. +.PP +\fBconstraint=false\fP causes an edge to be ignored for rank assignment. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the edgess active layers. +The empty string means no layers (invisible). + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBw=\fIf\fR sets the weight (spring constant) of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.PP +\fBlen=\fIf\fR sets the optimal length of an edge. +The default is 1.0. +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBweight=\fIf\fR sets the weight of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.SH "COMMAND LINE OPTIONS" +\fB\-G\fP sets a default graph attribute. +.br +\fB\-N\fP sets a default node attribute. +.br +\fB\-E\fP sets a default edge attribute. +Example: \fB\-Gsize="7,8" \-Nshape=box \-Efontsize=8\fR +.PP +\fB\-l\fIfile\fR loads custom PostScript library files. +Usually these define custom shapes or styles. +If \fB\-l\fP is given by itself, the standard library is omitted. +.PP +\fB\-T\fIlang\fR sets the output language as described above. + +.PP +\fB\-n\fR[\fB1\fR|\fB2\fR] (no\(hyop) +If set, neato assumes nodes have already been positioned and all +nodes have a pos attribute giving the positions. +It then performs an optional adjustment to remove node\(hynode overlap, +depending on the value of the overlap attribute, +computes the edge layouts, depending on the value of the \fBsplines\fR attribute, +and emits the graph in the appropriate format. +If num is supplied, the following actions occur: +.nf + num = 1 +.fi +Equivalent to \-n. +.nf + num > 1 +.fi +Use node positions as specified, +with no adjustment to remove node\(hynode overlaps, +and use any edge layouts already specified by the pos attribute. +neato computes an edge layout for any edge that does not have a pos attribute. +As usual, edge layout is guided by the \fBsplines\fR attribute. +.PP +\fB\-v\fP (verbose) prints delta energy every 100th iteration. +.PP +\fB\-V\fP (version) prints version information and exits. +.PP +\fB\-?\fP prints the usage and exits. +.SH "EXAMPLES" +.nf +digraph test123 { + a \-> b \-> c; + a \-> {x y}; + b [shape=box]; + c [label="hello\\\|nworld",color=blue,fontsize=24, + fontname="Palatino\-Italic",fontcolor=red,style=filled]; + a \-> z [label="hi", weight=100]; + x \-> z [label="multi\-line\\\|nlabel"]; + edge [style=dashed,color=red]; + b \-> x; + {rank=same; b x} +} +.fi +.PP +.nf +graph test123 { + a \-\- b \-\- c; + a \-\- {x y}; + x \-\- c [w=10.0]; + x \-\- y [w=5.0,len=3]; +} +.fi +.SH "CAVEATS" +Edge splines can overlap unintentionally. +.PP +Flat edge labels are slightly broken. +Intercluster edge labels are totally broken. +.PP +Because unconstrained optimization is employed, node boxes can +possibly overlap or touch unrelated edges. All existing +spring embedders seem to have this limitation. +.PP +Apparently reasonable attempts to pin nodes or adjust edge lengths +and weights can cause instability. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.br +John C. Ellson +.PP +The bitmap driver (PNG, GIF etc) is by Thomas Boutell, +.PP +The Truetype font renderer is from +the Freetype Project (David Turner, Robert Wilhelm, and Werner Lemberg) +(who can be contacted at freetype\-devel@lists.lrz\-muenchen.de). +.SH "SEE ALSO" +This man page contains only a small amount of the information related +to the Graphviz layout programs. The most complete information can be +found at http://www.graphviz.org/Documentation.php, especially in the +on\(hyline reference pages. Most of these documents are also available in the +\fIdoc\fP and \fIdoc/info\fP subtrees in the source and binary distributions. +.PP +dotty(1) +.br +tcldot(n) +.br +xcolors(1) +.br +libgraph(3) +.PP +E. R. Gansner, S. C. North, K. P. Vo, "DAG \(hy A Program to Draw Directed Graphs", Software \(hy Practice and Experience 17(1), 1988, pp. 1047\(hy1062. +.br +E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp. 214\(hy230. +.br +S. North and E. Koutsofios, "Applications of graph visualization", +Graphics Interface 94, pp. 234\(hy245. +.br +E. Koutsofios and S. C. North, "Drawing Graphs with dot," +Available on research.att.com in dist/drawdag/dotguide.ps.Z. +.br +S. C. North, "NEATO User's Manual". +Available on research.att.com in dist/drawdag/neatodoc.ps.Z. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dotty.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dotty.1 new file mode 100644 index 0000000..996e661 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/dotty.1 @@ -0,0 +1,49 @@ +.TH DOTTY 1 +.SH NAME +dotty \- A Customizable Graph Editor +.SH SYNOPSIS +.B dotty +[ +.B -V +] [ +.I file +] +.SH DESCRIPTION +.B dotty +is a graph editor for the X Window System. It may be run as a standalone +editor, or as a front end for applications that use graphs. It can control +multiple windows viewing different graphs. + +.B dotty +is written on top of +.B dot +and +.BR lefty . +.B lefty +is a general-purpose programmable editor for technical pictures. It has an +interpretive programming language similar to AWK and C. The user interface and +graph editing operations of +.B dotty +are written as +.B lefty +functions. +Programmer-defined graph operations may be loaded as well. Graph layouts are +made by +.BR dot , +which runs as a separate process that communicates with +.B lefty +through pipes. +.SH USAGE +The file name is optional. If present, the graph contained in that file is +displayed in the +.B dotty +window. +.SH OPTIONS +.TP +.B -V +Prints the version. +.SH SEE ALSO +dot(1), lefty(1) +.br +.I dotty +user guide. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/fdp.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/fdp.1 new file mode 100644 index 0000000..6ef258f --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/fdp.1 @@ -0,0 +1,669 @@ +.TH DOT 1 "23 August 2004" \*(eX +.SH NAME +dot \- filter for drawing directed graphs +.br +neato \- filter for drawing undirected graphs +.br +twopi \- filter for radial layouts of graphs +.br +circo \- filter for circular layout of graphs +.br +fdp \- filter for drawing undirected graphs +.SH SYNOPSIS +\fBdot\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBneato\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-n\fR[\fB1\fR|\fB2\fR]] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBtwopi\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBcirco\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBfdp\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.SH DESCRIPTION +.I dot +draws directed graphs. It works well on DAGs and other graphs +that can be drawn as hierarchies. +It reads attributed graph files and writes drawings. +By default, the output format +.I dot +is the input file with layout coordinates appended. +.PP +.I neato +draws undirected graphs using ``spring'' models (see Kamada and Kawai, +Information Processing Letters 31:1, April 1989). Input files must be +formatted in the +.I dot +attributed graph language. +By default, the output of +.I neato +is the input graph with layout coordinates appended. +.PP +.I twopi +draws graphs using a radial layout (see G. Wills, +Symposium on Graph Drawing GD'97, September, 1997). +Basically, one node is chosen as the center and put at the origin. +The remaining nodes are placed on a sequence of concentric circles +centered about the origin, each a fixed radial distance from the +previous circle. +All nodes distance 1 from the center are placed on the first circle; +all nodes distance 1 from a node on the first circle are placed on +the second circle; and so forth. +.PP +.I circo +draws graphs using a circular layout (see +Six and Tollis, GD '99 and ALENEX '99, and +Kaufmann and Wiese, GD '02.) +The tool identifies biconnected components and draws the nodes of +the component on a circle. The block\(hycutpoint tree +is then laid out using a recursive radial algorithm. Edge +crossings within a circle are minimized by placing as many edges on +the circle's perimeter as possible. +In particular, if the component is outerplanar, the component will +have a planar layout. +.PP +If a node belongs to multiple non\(hytrivial biconnected components, +the layout puts the node in one of them. By default, this is the first +non\(hytrivial component found in the search from the root component. +.PP +.I fdp +draws undirected graphs using a ``spring'' model. It relies on a +force\(hydirected approach in the spirit of Fruchterman and Reingold +(cf. Software\(hyPractice & Experience 21(11), 1991, pp. 1129\(hy1164). +.SH OUTPUT FORMATS +Dot uses an extensible plugin mechanism for its output renderers, +so to see what output formats your installation of dot supports +you can use ``dot \-Txxx'' (where xxx is an unlikely format) +and check the warning message. +Also, The plugin mechanism supports multiple implementations +of the output formats. +To see what variants are available, use, for example: ``dot \-Tpng:'' +and to force a particular variant, use, for example: ``dot \-Tpng:gd'' +.P +Traditionally, dot supports the following: +\fB\-Tps\fP (PostScript), +\fB\-Tsvg\fP \fB\-Tsvgz\fP (Structured Vector Graphics), +\fB\-Tfig\fP (XFIG graphics), +\fB\-Tmif\fP (FrameMaker graphics), +\fB\-Thpgl\fP (HP pen plotters), and \fB\-Tpcl\fP (Laserjet printers), +\fB\-Tpng\fP \fB\-Tgif\fP (bitmap graphics), +\fB\-Tdia\fP (GTK+ based diagrams), +\fB\-Timap\fP (imagemap files for httpd servers for each node or edge +that has a non(hynull "href" attribute.), +\fB\-Tcmapx\fP (client\(hyside imagemap for use in html and xhtml). +Additional less common or more special\(hypurpose output formats +can be found at http://www.graphviz.org/cvs/doc/info/output.html.) +.SH GRAPH FILE LANGUAGE +Here is a synopsis of the graph file language, traditionally using the extension \fB.dot\fR, for graphs: +.PP +[\fBstrict\fR] (\fBgraph\fR|\fBdigraph\fR) \fIname\fP { \fIstatement\(hylist\fP }\fR +.br +Is the top level graph. If the graph is \fBstrict\fR then multiple edges are +not allowed between the same pairs of nodes. +If it is a directed graph, indicated by \fBdigraph\fR, +then the \fIedgeop\fR must be "\->". If it is an undirected \fBgraph\fR +then the \fIedgeop\fR must be "\-\-". +Statements may be: +.PP +\fIname\fB=\fIval\fB;\fR +.br +\fBnode [\fIname\fB=\fIval\fB];\fR +.br +\fBedge [\fIname\fB=\fIval\fB];\fR +.br +Set default graph, node, or edge attribute \fIname\fP to \fIval\fP. +Any subgraph, node, or edge appearing after this inherits the new +default attributes. +.PP +\fBn0 [\fIname0=val0,name1=val1,...\fB];\fR +Creates node \fBn0\fP (if it does not already exist) +and sets its attributes according to the optional list. +.PP +\fBn0 \fIedgeop\fR n1 \fIedgeop\fR \fI...\fB \fIedgeop\fR nn [\fIname0=val0,name1=val1,...\fB];\fR +.br +Creates edges between nodes \fBn0\fP, \fBn1\fP, ..., \fBnn\fP and sets +their attributes according to the optional list. +Creates nodes as necessary. +.PP +[\fBsubgraph \fIname\fB] { \fIstatement\(hylist \fB}\fR +.br +Creates a subgraph. Subgraphs may be used in place +of \fBn0\fP, ..., \fBnn\fP in the above statements to create edges. +[\fBsubgraph \fIname\fR] is optional; +if missing, the subgraph is assigned an internal name. +.PP +Comments may be /*C\(hylike*/ or //C++\(hylike. + +.PP +Attribute names and values are ordinary (C\(hystyle) strings. +The following sections describe attributes that control graph layout. + +.SH "GRAPH ATTRIBUTES" +.PP +\fBsize="\fIx,y\fP"\fR sets bounding box of drawing in inches. +.PP +\fBpage="\fIx,y\fP"\fR sets the PostScript pagination unit. +.PP +\fBratio=\fIf\fR sets the aspect ratio to \fIf\fP which may be +a floating point number, or one of the keywords \fBfill\fP, +\fBcompress\fP, or \fBauto\fP. +.PP +\fBmargin=\fIf\fR sets the page margin (included in the page size). +.PP +\fBnodesep=\fIf\fR sets the minimum separation between nodes. +.PP +\fBranksep=\fIf\fR sets the minimum separation between ranks. +.PP +\fBordering=out\fR constrains order of out\(hyedges in a subgraph +according to their file sequence. +.PP +\fBrankdir=LR|RL|BT\fR requests a left\(hyto\(hyright, right\(hyto\(hyleft, or bottom\(hyto\(hytop, drawing. +.PP +\fBpagedir=\fR[TBLR][TBLR] sets the major and minor order of pagination. +.PP +\fBrank=same\fR (or \fBmin\fP or \fBmax\fP) in a subgraph +constrains the rank assignment of its nodes. If a subgraph's +name has the prefix \fBcluster\fP, its nodes are drawn in +a distinct rectangle of the layout. Clusters may be nested. +.PP +\fBrotate=90\fR sets landscape mode. +(\fBorientation=land\fR is backward compatible but obsolete.) +.PP +\fBcenter=\fIn\fR a non\(hyzero value centers the drawing on the page. +.PP +\fBnslimit=\fIf\fR or \fBmclimit=\fIf\fR adjusts the bound on the +number of network simplex or mincross iterations by the given ratio. +For example, \fBmclimit=2.0\fP runs twice as long. +.PP +\fBlayers="\fIid:id:id:id\fR" is a sequence of layer identifiers for +overlay diagrams. The PostScript array variable \fIlayercolorseq\fR +sets the assignment of colors to layers. The least index is 1 and +each element must be a 3\(hyelement array to be interpreted as a color coordinate. +.PP +\fBcolor=\fIcolorvalue\fR sets foreground color (\fBbgcolor\fP for background). +.PP +\fBhref=\fI"url"\fR the default url for image map files; in PostScript files, +the base URL for all relative URLs, as recognized by Acrobat Distiller +3.0 and up. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBstylesheet=\fI"file.css"\fR includes a reference to a stylesheet +in \-Tsvg and \-Tsvgz outputs. Ignored by other formats. + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBstart=\fIval\fR. Requests random initial placement and seeds +the random number generator. If \fIval\fP is not an integer, +the process ID or current time is used as the seed. +.PP +\fBepsilon=\fIn\fR. Sets the cutoff for the solver. +The default is 0.1. +.PP +\fBsplines=\fIboolean\fR. Setting this to \fItrue\fR causes edges to be +drawn as splines if nodes don't overlap. The default is \fIfalse\fR. + +.PP +\fB(twopi\(hyspecific attributes)\fR +.br +\fBroot=\fIctr\fR. This specifies the node to be used as the center of +the layout. If not specified, \fItwopi\fP will randomly pick one of the +nodes that are furthest from a leaf node, where a leaf node is a node +of degree 1. If no leaf nodes exists, an arbitrary node is picked as center. +.PP +\fBranksep=\fIval\fR. Specifies the radial distance in inches between +the sequence of rings. The default is 0.75. +.PP +\fBoverlap=\fImode\fR. This specifies what \fItwopi\fP should do if +any nodes overlap. If mode is \fI"false"\fP, the program uses Voronoi +diagrams to adjust the nodes to eliminate overlaps. If mode is \fI"scale"\fP, +the layout is uniformly scaled up, preserving node sizes, until nodes no +longer overlap. The latter technique removes overlaps while preserving +symmetry and structure, while the former removes overlaps more compactly +but destroys symmetries. +If mode is \fI"true"\fP (the default), no repositioning is done. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fItwopi\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fInodename\fR. Specifies the name of a node occurring in the +root block. If the graph is disconnected, the \fBroot\fP node attribute +can be used to specify additional root blocks. +.PP +\fBmindist=\fIvalue\fR. Sets the minimum separation between all nodes. If not +specified then \fIcirco\fP uses a default value of 1.0. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fIcirco\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBK=\fIval\fR. Sets the default ideal node separation +in the layout. +.PP +\fBmaxiter=\fIval\fR. Sets the maximum number of iterations used to +layout the graph. +.PP +\fBstart=\fIval\fR. Adjusts the random initial placement of nodes +with no specified position. If \fIval\fP is is an integer, +it is used as the seed for the random number generator. +If \fIval\fP is not an integer, a random system\(hygenerated integer, +such as the process ID or current time, is used as the seed. +.PP +\fBsplines=\fIval\fR. If \fIval\fR is "true", edges are drawn +as splines to avoid nodes. By default, edges are draw as line segments. +.PP + +.SH "NODE ATTRIBUTES" +.PP +\fBheight=\fId\fR or \fBwidth=\fId\fR sets minimum height or width. +Adding \fBfixedsize=true\fP forces these to be the actual size +(text labels are ignored). +.PP +\fBshape=record polygon epsf \fIbuiltin_polygon\fR +.br +\fIbuiltin_polygon\fR is one of: \fBplaintext ellipse oval circle egg +triangle box diamond trapezium parallelogram house hexagon octagon +note tab box3d component.\fR +(Polygons are defined or modified by the following node attributes: +\fBregular\fR, \fBperipheries\fR, \fBsides\fR, \fBorientation\fR, +\fBdistortion\fR and \fBskew\fR.) \fBepsf\fR uses the node's +\fBshapefile\fR attribute as the path name of an external +EPSF file to be automatically loaded for the node shape. +.PP +\fBlabel=\fItext\fR where \fItext\fP may include escaped newlines +\\\|n, \\\|l, or \\\|r for center, left, and right justified lines. +The string '\\N' value will be replaced by the node name. +Record labels may contain recursive box lists delimited by { | }. +Port identifiers in labels are set off by angle brackets < >. +In the graph file, use colon (such as, \fBnode0:port28\fR). +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBcolor=\fIcolorvalue\fR sets the outline color, and the default fill color +if style=filled and \fBfillcolor\fR is not specified. +.PP +\fBfillcolor=\fIcolorvalue\fR sets the fill color +when style=filled. If not specified, the fillcolor when style=filled defaults +to be the same as the outline color. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +A \fIcolorvalue\fP may be "\fIh,s,v\fB"\fR (hue, saturation, brightness) +floating point numbers between 0 and 1, or an X11 color name such as +\fBwhite black red green blue yellow magenta cyan\fR or \fBburlywood\fR, +or a "\fI#rrggbb" (red, green, blue, 2 hex characters each) value. +.PP +\fBstyle=filled solid dashed dotted bold invis\fP or any Postscript code. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the node's active layers. +The empty string means no layers (invisible). +.PP +The following attributes apply only to polygon shape nodes: +.PP +\fBregular=\fIn\fR if \fIn\fR is non\(hyzero then the polygon is made +regular, i.e. symmetric about the x and y axis, otherwise the +polygon takes on the aspect ratio of the label. +\fIbuiltin_polygons\fR that are not already regular are made regular +by this attribute. +\fIbuiltin_polygons\fR that are already regular are not affected (i.e. +they cannot be made asymmetric). +.PP +\fBperipheries=\fIn\fR sets the number of periphery lines drawn around +the polygon. This value supersedes the number of periphery lines +of \fIbuiltin_polygons\fR. +.PP +\fBsides=\fIn\fR sets the number of sides to the polygon. \fIn\fR<3 +results in an ellipse. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBorientation=\fIf\fR sets the orientation of the first apex of the +polygon counterclockwise from the vertical, in degrees. +\fIf\fR may be a floating point number. +The orientation of labels is not affected by this attribute. +This attribute is added to the initial orientation of \fIbuiltin_polygons.\fR +.PP +\fBdistortion=\fIf\fR sets the amount of broadening of the top and +narrowing of the bottom of the polygon (relative to its orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBskew=\fIf\fR sets the amount of right\(hydisplacement of the top and +left\(hydisplacement of the bottom of the polygon (relative to its +orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. +The target string is used to determine which window of the browser is used +for the URL. Setting it to "_graphviz" will open a new window if it doesn't +already exist, or reuse it if it does. +If the target string is empty, the default, +then no target attribute is included in the output. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. The tooltip string defaults to be the +same as the label string, but this attribute permits nodes without +labels to still have tooltips thus permitting denser graphs. +The substring '\\N' is substituted in the same manner as +for the node label attribute. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fItrue/false\fR. This specifies that the block containing the given +node be treated as the root of the spanning tree in the layout. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBpin=\fIval\fR. If \fIval\fR is "true", the node will remain at +its initial position. + +.SH "EDGE ATTRIBUTES" +\fBminlen=\fIn\fR where \fIn\fP is an integer factor that applies +to the edge length (ranks for normal edges, or minimum node separation +for flat edges). +.PP +\fBweight=\fIn\fR where \fIn\fP is the integer cost of the edge. +Values greater than 1 tend to shorten the edge. Weight 0 flat +edges are ignored for ordering nodes. +.PP +\fBlabel=\fItext\fR where \fItext\fR may include escaped newlines +\\\|n, \\\|l, or \\\|r for centered, left, or right justified lines. +If the substring '\\T' is found in a label it will be replaced by the tail_node name. +If the substring '\\H' is found in a label it will be replaced by the head_node name. +If the substring '\\E' value is found in a label it will be replaced by: tail_node_name\->head_node_name +or by: tail_node_name\-\-head_node_name for undirected graphs. +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +\fBstyle=solid dashed dotted bold invis\fP +.PP +\fBcolor=\fIcolorvalue\fR sets the line color for edges. +.PP +\fBcolor=\fIcolorvaluelist\fR a ':' separated list of \fIcolorvalue\fR creates +parallel edges, one edge for each color. +.PP +\fBdir=forward back both none\fP controls arrow direction. +.PP +\fBtailclip,headclip=false\fP disables endpoint shape clipping. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edges have a URL. +If the target string is empty, the default, +then no target attribute is included in the output. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when edges have a URL. The tooltip string defaults to be the +same as the edge label string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBarrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, +tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow\fP. +.PP +\fBarrowsize\fP (norm_length=10,norm_width=5, +inv_length=6,inv_width=7,dot_radius=2) +.PP +\fBheadlabel,taillabel=string\fP for port labels. +\fBlabelfontcolor\fP,\fBlabelfontname\fP,\fBlabelfontsize\fP +for head and tail labels. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadhref=\fI"url"\fR sets the url for the head port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadURL=\fI"url"\fR ("headURL" is a synonym for "headhref".) +.PP +\fBheadtarget=\fI"headtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge heads have a URL. +The headtarget string is used to determine which window of the browser is used +for the URL. If the headtarget string is empty, the default, +then headtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when head ports have a URL. The tooltip string defaults to be the +same as the headlabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailhref=\fI"url"\fR sets the url for the tail port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailURL=\fI"url"\fR ("tailURL" is a synonym for "tailhref".) +.PP +\fBtailtarget=\fI"tailtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge tails have a URL. +The tailtarget string is used to determine which window of the browser is used +for the URL. If the tailtarget string is empty, the default, +then tailtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when tail ports have a URL. The tooltip string defaults to be the +same as the taillabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBlabeldistance\fP and \fPport_label_distance\fP set distance; also +\fBlabelangle\fP (in degrees CCW) +.PP +\fBdecorate\fP draws line from edge to label. +.PP +\fBsamehead,sametail\fP aim edges having the same value to the +same port, using the average landing point. +.PP +\fBconstraint=false\fP causes an edge to be ignored for rank assignment. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the edgess active layers. +The empty string means no layers (invisible). + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBw=\fIf\fR sets the weight (spring constant) of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.PP +\fBlen=\fIf\fR sets the optimal length of an edge. +The default is 1.0. +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBweight=\fIf\fR sets the weight of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.SH "COMMAND LINE OPTIONS" +\fB\-G\fP sets a default graph attribute. +.br +\fB\-N\fP sets a default node attribute. +.br +\fB\-E\fP sets a default edge attribute. +Example: \fB\-Gsize="7,8" \-Nshape=box \-Efontsize=8\fR +.PP +\fB\-l\fIfile\fR loads custom PostScript library files. +Usually these define custom shapes or styles. +If \fB\-l\fP is given by itself, the standard library is omitted. +.PP +\fB\-T\fIlang\fR sets the output language as described above. + +.PP +\fB\-n\fR[\fB1\fR|\fB2\fR] (no\(hyop) +If set, neato assumes nodes have already been positioned and all +nodes have a pos attribute giving the positions. +It then performs an optional adjustment to remove node\(hynode overlap, +depending on the value of the overlap attribute, +computes the edge layouts, depending on the value of the \fBsplines\fR attribute, +and emits the graph in the appropriate format. +If num is supplied, the following actions occur: +.nf + num = 1 +.fi +Equivalent to \-n. +.nf + num > 1 +.fi +Use node positions as specified, +with no adjustment to remove node\(hynode overlaps, +and use any edge layouts already specified by the pos attribute. +neato computes an edge layout for any edge that does not have a pos attribute. +As usual, edge layout is guided by the \fBsplines\fR attribute. +.PP +\fB\-v\fP (verbose) prints delta energy every 100th iteration. +.PP +\fB\-V\fP (version) prints version information and exits. +.PP +\fB\-?\fP prints the usage and exits. +.SH "EXAMPLES" +.nf +digraph test123 { + a \-> b \-> c; + a \-> {x y}; + b [shape=box]; + c [label="hello\\\|nworld",color=blue,fontsize=24, + fontname="Palatino\-Italic",fontcolor=red,style=filled]; + a \-> z [label="hi", weight=100]; + x \-> z [label="multi\-line\\\|nlabel"]; + edge [style=dashed,color=red]; + b \-> x; + {rank=same; b x} +} +.fi +.PP +.nf +graph test123 { + a \-\- b \-\- c; + a \-\- {x y}; + x \-\- c [w=10.0]; + x \-\- y [w=5.0,len=3]; +} +.fi +.SH "CAVEATS" +Edge splines can overlap unintentionally. +.PP +Flat edge labels are slightly broken. +Intercluster edge labels are totally broken. +.PP +Because unconstrained optimization is employed, node boxes can +possibly overlap or touch unrelated edges. All existing +spring embedders seem to have this limitation. +.PP +Apparently reasonable attempts to pin nodes or adjust edge lengths +and weights can cause instability. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.br +John C. Ellson +.PP +The bitmap driver (PNG, GIF etc) is by Thomas Boutell, +.PP +The Truetype font renderer is from +the Freetype Project (David Turner, Robert Wilhelm, and Werner Lemberg) +(who can be contacted at freetype\-devel@lists.lrz\-muenchen.de). +.SH "SEE ALSO" +This man page contains only a small amount of the information related +to the Graphviz layout programs. The most complete information can be +found at http://www.graphviz.org/Documentation.php, especially in the +on\(hyline reference pages. Most of these documents are also available in the +\fIdoc\fP and \fIdoc/info\fP subtrees in the source and binary distributions. +.PP +dotty(1) +.br +tcldot(n) +.br +xcolors(1) +.br +libgraph(3) +.PP +E. R. Gansner, S. C. North, K. P. Vo, "DAG \(hy A Program to Draw Directed Graphs", Software \(hy Practice and Experience 17(1), 1988, pp. 1047\(hy1062. +.br +E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp. 214\(hy230. +.br +S. North and E. Koutsofios, "Applications of graph visualization", +Graphics Interface 94, pp. 234\(hy245. +.br +E. Koutsofios and S. C. North, "Drawing Graphs with dot," +Available on research.att.com in dist/drawdag/dotguide.ps.Z. +.br +S. C. North, "NEATO User's Manual". +Available on research.att.com in dist/drawdag/neatodoc.ps.Z. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gc.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gc.1 new file mode 100644 index 0000000..ad4cd70 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gc.1 @@ -0,0 +1,83 @@ +.TH GC 1 "21 March 2001" +.SH NAME +gc \- count graph components +.SH SYNOPSIS +.B gc +[ +.B \-necCaDUrs? +] +[ +.I files +] +.SH DESCRIPTION +.B gc +is a graph analogue to +.B wc +in that it prints to standard output +the number of nodes, edges, connected components or clusters contained +in the input files. +It also prints a total count for +all graphs if more than one graph is given. +.SH OPTIONS +The following options are supported: +.TP +.B \-n +Count nodes. +.TP +.B \-e +Count edges. +.TP +.B \-c +Count connected components. +.TP +.B \-C +Count clusters. By definition, a cluster is a graph or +subgraph whose name begins with "cluster". +.TP +.B \-a +Count all. Equivalent to +.B \-encC +.TP +.B \-r +Recursively analyze subgraphs. +.TP +.B \-s +Print no output. Only exit value is important. +.TP +.B \-D +Only analyze directed graphs. +.TP +.B \-U +Only analyze undirected graphs. +.TP +.B \-? +Print usage information. +.LP +By default, +.I gc +returns the number of nodes and edges. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in dot format. +If no +.I files +operand is specified, +the standard input will be used. +.SH "EXIT STATUS" +The following exit values are returned: +.TP 4 +.B 0 +Successful completion. +.TP +.B 1 +The +.B \-U +or +.B \-E +option was used, and a graph of the wrong type was encountered. +.SH AUTHOR +Emden R. Gansner +.SH "SEE ALSO" +wc(1), acyclic(1), gvpr(1), gvcolor(1), ccomps(1), sccmap(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gv2gxl.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gv2gxl.1 new file mode 100644 index 0000000..d801368 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gv2gxl.1 @@ -0,0 +1,92 @@ +.TH GXL2GV,GV2GXL 1 "20 December 2002" +.SH NAME +gxl2gv,gv2gxl \- GXL-GV converters +.SH SYNOPSIS +.B gxl2gv +[ +.B \-gd? +] +[ +.BI -o outfile +] +[ +.I files +] +.br +.B gv2gxl +[ +.B \-gd? +] +[ +.BI -o outfile +] +[ +.I files +] +.SH DESCRIPTION +.B gxl2gv +converts between graphs represented in GXL and in the +GV language. Unless a conversion type is specified using +a flag, +.B gxl2gv +will deduce the type of conversion from the suffix of +the input file, a ".gv" (or a ".dot") suffix causing a conversion from GV +to GXL, and a ".gxl" suffix causing a conversion from GXL to GV. +If no suffix is available, e.g. when the input is from a pipe, +and no flags are used then +.B gxl2gv +assumes the type of the input file from its executable name +so that +.B gxl2gv +converts from GXL to GV, and +.B gv2gxl +converts from GV to GXL. +.PP +GXL supports a much richer graph model than GV. \fBgxl2gv\fP +will attempt to map GXL constructs into the analogous GV construct +when this is possible. If not, the GXL information is stored as +an attribute. The intention is that applying \fBgxl2gv|gv2gxl\fP +is semantically equivalent to the identity operator. +.SH OPTIONS +The following options are supported: +.TP +.B \-g +The command name and input file extensions are ignored, the +input is taken as a GV file and a GXL file is generated. +.TP +.B \-d +The command name and input file extensions are ignored, the +input is taken as a GXL file and a GV file is generated. +.TP +.B \-? +Prints usage information and exits. +.TP +.BI \-o " outfile" +If specified, the output will be written into the file +\fIoutfile\fP. Otherwise, output is written to standard out. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in GXL or GV. +If no +.I files +operand is specified, +the standard input will be used. +.SH RETURN CODES +Both \fBgxl2gv\fP and \fBgv2gxl\fP return \fB0\fP +if there were no problems during conversion; +and non-zero if any error occurred. +.SH "BUGS" +\fBgxl2gv\fP will only convert in one direction even if given multiple files +with varying suffixes. +.PP +The conversion can only handle one graph per GXL file. +.PP +There are some GXL constructs which \fBgxl2gv\fP cannot handle. +.SH AUTHORS +Krishnam Pericherla +.br +Emden R. Gansner +.SH "SEE ALSO" +dot(1), libgraph(3), libagraph(3), neato(1), twopi(1) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvcolor.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvcolor.1 new file mode 100644 index 0000000..2355166 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvcolor.1 @@ -0,0 +1,58 @@ +.TH GVCOLOR 1 "21 March 2001" +.SH NAME +gvcolor \- flow colors through a ranked digraph +.br +( previously known as +.B colorize +) +.SH SYNOPSIS +.B gvcolor +[ +.I files +] +.SH "USAGE" +.ft 5 +dot file.dot | gvcolor | dot \-T\fI\fP +.ft +.SH DESCRIPTION +.B gvcolor +is a filter that sets node colors from initial seed values. +Colors flow along edges from tail to head, and are averaged +(as HSB vectors) at nodes. +\fIThe graph must already have been processed by dot.\fP +Appropriate choice of initial colors yields drawings in which node +colors help to emphasize logical relationships between nodes, even +when they are spread far apart in the layout. +.PP +Initial colors must be set externally, using the \fBcolor\fP +attribute of a node. It is often effective to +assign colors to a few key source or sink nodes, manually setting +their colors by editing the graph file. +Color names are as in \fIdot(1)\fP: symbolic names or RGB triples. +It is best to choose some easily\(hydistinguished but related colors; +not necessarily spaced evenly around the color wheel. For example, +blue_green, green, and light_yellow looks better than red, green, blue. +.PP +Certain graph attributes control the \fIgvcolor\fP algorithm. +\fBflow=back\fP reverses the flow of colors from heads to tails. +\fBsaturation=.1,.9\fP (or any two numbers between 0 and 1) +adjusts the color saturation linearly from least to greatest rank. +If \fBDefcolor\fP is set, this color value is applied to any +node not otherwise colored. +.SH "EXIT STATUS" +The following exit values are returned: +.TP 4 +.B 0 +Successful completion. +.TP +.B 1 +If nodes of the graph do not possess a ``pos'' attribute. +.SH BUGS +It would be nice to make the program work without relying on +an initial pass through \fBdot\fP. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.SH "SEE ALSO" +gc(1), dot(1), gvpr(1), ccomps(1), sccmap(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpack.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpack.1 new file mode 100644 index 0000000..9ab64c6 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpack.1 @@ -0,0 +1,101 @@ +.TH GVPACK 1 "8 April 2003" +.SH NAME +gvpack \- merge and pack disjoint graphs +.SH SYNOPSIS +.B gvpack +[ +.B \-nguv? +] +[ +.BI \-m margin +] +[ +.BI \-o outfile +] +[ +.BI \-G name\fB=\fPvalue +] +[ +.I files +] +.SH DESCRIPTION +.B gvpack +reads in a stream of graphs, combines the graphs into a single +layout, and produces a single graph serving as the union of the +input graphs. The input graphs must be in dot format, and must have +all necessary layout information. Acceptable input is produced +by applying a Graphviz layout program, such as \fBdot\fP or \fBneato\fP, +with no \fB\-T\fP flag. +.P +By default, the packing is done at the cluster level. Thus, parts of +one graph will not intrude into any top\(hylevel clusters or overlap +any nodes or edges of another. +.P +The output of \fBgvpack\fP can be used to produce concrete output +by applying \fBneato \-s \-n2\fP with the desired \fB\-T\fP flag. +.SH OPTIONS +The following options are supported: +.TP +.B \-g +Combines the graphs at the graph level. This uses more space, but prevents +parts of one graph from occurring between parts of another. +.TP +.BI \-G "name\fB=\fPvalue" +Specifies attributes to be added to the resulting union graph. For +example, this can be used to specify a graph label. +.TP +.BI \-m "margin" +Packs the graphs allowing a margin of \fIoutput\fP points around +the parts. +.TP +.B \-n +Combines the graphs at the node level. Clusters are ignored in the packing. +.TP +.BI \-o "output" +Prints output to the file \fIoutput\fP. If not given, \fBgvpack\fP +uses stdout. +.TP +.B \-u +Don't pack the graphs. Just combine them into a single graph. +.TP +.B \-v +Verbose mode. +.TP +.B \-? +Prints usage information and exit. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in dot format. +If no +.I files +operand is specified, +the standard input will be used. +.SH RETURN CODES +.B gvpack +returns +.B 0 +if there were no problems, and non\(hyzero otherwise. +.SH EXAMPLES +.EX +ccomps \-x abc.dot | dot | gvpack | neato \-s \-n2 \-Tps +.EE +This pipeline decomposes the graph in \fIabc.dot\fP into its +connected components, lays out each using \fBdot\fP, packs them all together +again, and produces the final drawing in PostScript. Of course, +there is nothing to prevent one from using different layouts for +each component. +.SH "BUGS" +All the input graphs must be directed or undirected. +.P +An input graph should not have a label, since this will be used in its +layout. Since \fBgvpack\fP ignores root graph labels, resulting layout +may contain some extra space. +.P +\fBgvpack\fP unsets the bounding box attribute of all non\(hycluster +subgraphs. +.SH AUTHORS +Emden R. Gansner +.SH "SEE ALSO" +gvpr(1), dot(1), neato(1), twopi(1), ccomps(1), libpack(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpr.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpr.1 new file mode 100644 index 0000000..ada8f74 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gvpr.1 @@ -0,0 +1,967 @@ +.TH GVPR 1 "24 April 2008" +.SH NAME +gvpr \- graph pattern scanning and processing language +.br +( previously known as +.B gpr +) +.SH SYNOPSIS +.B gvpr +[\fB\-icV?\fP] +[ +.BI \-o +.I outfile +] +[ +.BI \-a +.I args +] +[ +.I 'prog' +| +.BI \-f +.I progfile +] +[ +.I files +] +.SH DESCRIPTION +.B gvpr +is a graph stream editor inspired by \fBawk\fP. +It copies input graphs to its +output, possibly transforming their structure and attributes, +creating new graphs, or printing arbitrary information. +The graph model is that provided by +.IR libagraph (3). +In particular, \fBgvpr\fP reads and writes graphs using the +dot language. +.PP +Basically, +.B gvpr +traverses each input graph, denoted by \fB$G\fP, visiting each node and edge, +matching it with the predicate\(hyaction rules supplied in the input program. +The rules are evaluated in order. +For each predicate evaluating to true, the corresponding +action is performed. +During the traversal, the current node or edge being visited +is denoted by \fB$\fP. +.PP +For each input graph, there is a target subgraph, denoted by +\fB$T\fP, initially empty and used to accumulate +chosen entities, and an output graph, \fB$O\fP, used for final processing +and then written to output. +By default, the output graph is the target graph. +The output graph can be set in the program or, in a limited sense, +on the command line. +.SH OPTIONS +The following options are supported: +.TP +.BI \-a " args" +The string \fIargs\fP is split into whitespace\(hyseparated tokens, +with the individual tokens +available as strings in the \fBgvpr\fP program +as \fBARGV[\fI0\fP],...,ARGV[ARGC\-1]\fR. +Whitespace characters within single or double quoted substrings, or +preceded by a backslash, are ignored as separators. +In general, a backslash character turns off any special meaning of the +following character. +Note that the tokens derived from multiple \fB\-a\fP flags are concatenated. +.TP +.B \-c +Use the source graph as the output graph. +.TP +.B \-i +Derive the node\(hyinduced subgraph extension of the output graph in the context +of its root graph. +.TP +.BI \-o " outfile" +Causes the output stream to be written to the specified file; by default, +output is written to \fBstdout\fP. +.TP +.BI \-f " progfile" +Use the contents of the specified file as the program to execute +on the input. If \fIprogfile\fP contains a slash character, the name is taken +as the pathname of the file. Otherwise, \fBgvpr\fP will use the +directories specified in the environment variable \fBGPRPATH\fP to look +for the file. If +.B \-f +is not given, +.B gvpr +will use the first non\(hyoption argument as the program. +.TP +.B \-V +Causes the program to print version information and exit. +.TP +.B \-? +Causes the program to print usage information and exit. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in the dot language. +If no +.B \-f +option is given, the first name is removed from the list and used +as the input program. If the list of files is empty, \fBstdin\fP will be used. +.SH PROGRAMS +A +.B gvpr +program consists of a list of predicate\(hyaction clauses, having one +of the forms: +.IP +.BI "BEGIN { " action " }" +.IP +.BI "BEG_G { " action " }" +.IP +.BI "N [ " predicate " ] { " action " } +.IP +.BI "E [ " predicate " ] { " action " } +.IP +.BI "END_G { " action " }" +.IP +.BI "END { " action " }" +.PP +A program can contain at most one of each of the \fBBEGIN\fP, \fBBEG_G\fP, +\fBEND_G\fP and \fBEND\fP clauses. +There can be any number of \fBN\fP and \fBE\fP statements, +the first applied to nodes, the second to edges. +The top\(hylevel semantics of a \fBgvpr\fP program are: +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +Evaluate the \fBBEGIN\fP clause, if any. +For each input graph \fIG\fP { + Set \fIG\fP as the current graph and current object. + Evaluate the \fBBEG_G\fP clause, if any. + For each node and edge in \fIG\fP { + Set the node or edge as the current object. + Evaluate the \fBN\fP or \fBE\fP clauses, as appropriate. + } + Set \fIG\fP as the current object. + Evaluate the \fBEND_G\fP clause, if any. +} +Evaluate the \fBEND\fP clause, if any. +.fi +.RE +.DT +.PP +The actions of the \fBBEGIN\fP, \fBBEG_G\fP, \fBEND_G\fP and \fBEND\fP clauses +are performed when the clauses are evaluated. +For \fBN\fP or \fBE\fP clauses, +either the predicate or action may be omitted. +If there is no predicate with an action, the action is +performed on every node or edge, as appropriate. +If there is no action and the predicate evaluates to true, +the associated node or edge is added to the target graph. +.PP +Predicates and actions are sequences of statements in the C dialect +supported by the +.IR libexpr (3) +library. +The only difference between predicates and actions is that the former +must have a type that may interpreted as either true or false. +Here the usual C convention is followed, in which a non\(hyzero value is +considered true. This would include non\(hyempty strings and non\(hyempty +references to nodes, edges, etc. However, if a string can be +converted to an integer, this value is used. +.PP +In addition to the usual C base types +(\fBvoid\fP, \fBint\fP, \fBchar\fP, \fBfloat\fP, \fBlong\fP, +\fBunsigned\fP and \fBdouble\fP), +\fBgvpr\fP \fRprovides \fBstring\fP as a synonym for \fBchar*\fP, and +the graph\(hybased types \fBnode_t\fP, +\fBedge_t\fP, \fBgraph_t\fP and \fBobj_t\fP. +The \fBobj_t\fP type can be viewed as a supertype of the other 3 concrete types; +the correct base type is maintained dynamically. +Besides these base types, the only other supported type expressions +are (associative) arrays. +.PP +Constants follow C syntax, but strings may be quoted with either +\fB"..."\fP or \fB'...'\fP. In certain contexts, string values are +interpreted as patterns for the purpose of regular expression matching. +Patterns use +.IR ksh (1) +file match pattern syntax. +\fBgvpr\fP accepts C++ comments as well as cpp\(hytype comments. +For the latter, if a line begins with a '#' character, the rest of +the line is ignored. +.PP +A statement can be a declaration of a function, a variable +or an array, or an executable statement. For declarations, there +is a single scope. Array declarations have the form: +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fI type array \fB[\fP type0 \fB]\fR +.fi +.RE +.DT +.PP +where \fI type0 \fP is optional. If it is supplied, the parser will +enforce that all array subscripts have the specified type. If it is +not supplied, objects of all types can be used as subscripts. +As in C, variables and arrays must +be declared. In particular, an undeclared variable will be interpreted +as the name of an attribute of a node, edge or graph, depending on the +context. +.PP +Executable statements can be one of the following: +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fB{\fR [\fI statement ... \fR] \fB}\fR +\fIexpression\fP \fR// commonly\fP\fI var \fB=\fP expression\fR +\fBif(\fI expression \fP)\fI statement \fR[ \fBelse\fI statement \fR] +\fBfor(\fI expression \fP;\fI expression \fP;\fI expression \fP)\fI statement\fP +\fBfor(\fI array \fP[\fI var \fP])\fI statement\fP +\fBwhile(\fI expression \fP)\fI statement\fP +\fBswitch(\fI expression \fP)\fI case statements\fP +\fBbreak [\fI expression \fP] +\fBcontinue [\fI expression \fP] +\fBreturn [\fI expression \fP]\fR +.fi +.RE +.ST +Items in brackets are optional. +.PP +In the second form of the \fBfor\fP statement, the variable \fIvar\fP +is set to each value used as an index in the specified array and then +the associated \fIstatement\fP is evaluated. Function definitions can +only appear in the \fBBEGIN\fP clause. +.PP +Expressions include the usual C expressions. +String comparisons using \fB==\fP and \fB!=\fP +treat the right hand operand as a pattern. +\fBgvpr\fP will attempt to use an expression as a string or numeric value +as appropriate. +.PP +Expressions of graphical type (i.e., \fBgraph_t, node_t, +edge_t, obj_t\fP) may be followed by a field reference in the +form of \fB.\fP\fIname\fP. The resulting value is the value +of the attribute named \fIname\fP of the given object. +In addition, in certain contexts an undeclared, unmodified +identifier is taken to be an +attribute name. Specifically, such identifiers denote attributes +of the current node or edge, respectively, in \fBN\fP +and \fBE\fP clauses, and the current graph in \fBBEG_G\fP and \fBEND_G\fP +clauses. +.PP +As usual in the +.IR libagraph (3) +model, attributes are string\(hyvalued. +In addition, +.B gvpr +supports certain pseudo\(hyattributes of graph objects, not necessarily +string\(hyvalued. These reflect intrinsic properties of the graph objects +and cannot be set by the user. +.TP +\fBhead\fR : \fBnode_t\fR +the head of an edge. +.TP +\fBtail\fR : \fBnode_t\fR +the tail of an edge. +.TP +\fBname\fR : \fBstring\fR +the name of an edge, node or graph. The name of an edge has the +form "\fI\fB[\fI\fB]\fR", +where \fI\fP is "\fB\->\fP" or "\fB\-\-\fP" depending on +whether the graph is directed or not. The bracket part \fB[\fI\fB]\fR +only appears if the edge has a non\(hytrivial key. +.TP +\fBindegree\fR : \fBint\fR +the indegree of a node. +.TP +\fBoutdegree\fR : \fBint\fR +the outdegree of a node. +.TP +\fBdegree\fR : \fBint\fR +the degree of a node. +.TP +\fBroot\fR : \fBgraph_t\fR +the root graph of an object. The root of a root graph +is itself. +.TP +\fBparent\fR : \fBgraph_t\fR +the parent graph of a subgraph. The parent of a root graph +is \fBNULL\fP +.TP +\fBn_edges\fR : \fBint\fR +the number of edges in the graph +.TP +\fBn_nodes\fR : \fBint\fR +the number of nodes in the graph +.TP +\fBdirected\fR : \fBint\fR +true (non\(hyzero) if the graph is directed +.TP +\fBstrict\fR : \fBint\fR +true (non\(hyzero) if the graph is strict +.SH "BUILT\(hyIN FUNCTIONS" +.PP +The following functions are built into \fBgvpr\fP. Those functions +returning references to graph objects return \fBNULL\fP in case of failure. +.SS "Graphs and subgraph" +.TP +\fBgraph\fP(\fIs\fP : \fBstring\fP, \fIt\fP : \fBstring\fP) : \fBgraph_t\fP +creates a graph whose name is \fIs\fP and whose type is +specified by the string \fIt\fP. Ignoring case, the characters +\fBU, D, S, N\fR have the interpretation undirected, directed, +strict, and non\(hystrict, respectively. If \fIt\fP is empty, +a directed, non\(hystrict graph is generated. +.TP +\fBsubg\fP(\fIg\fP : \fBgraph_t\fP, \fIs\fP : \fBstring\fP) : \fBgraph_t\fP +creates a subgraph in graph \fIg\fP with name \fIs\fP. If the subgraph +already exists, it is returned. +.TP +\fBisSubg\fP(\fIg\fP : \fBgraph_t\fP, \fIs\fP : \fBstring\fP) : \fBgraph_t\fP +returns the subgraph in graph \fIg\fP with name \fIs\fP, if it exists, +or \fBNULL\fP otherwise. +.TP +\fBfstsubg\fP(\fIg\fP : \fBgraph_t\fP) : \fBgraph_t\fP +returns the first subgraph in graph \fIg\fP, or \fBNULL\fP if none exists. +.TP +\fBnxtsubg\fP(\fIsg\fP : \fBgraph_t\fP) : \fBgraph_t\fP +returns the next subgraph after \fIsg\fP, or \fBNULL\fP. +.TP +\fBisDirect\fP(\fIg\fP : \fBgraph_t\fP) : \fBint\fP +returns true if and only if \fIg\fP is directed. +.TP +\fBisStrict\fP(\fIg\fP : \fBgraph_t\fP) : \fBint\fP +returns true if and only if \fIg\fP is strict. +.TP +\fBnNodes\fP(\fIg\fP : \fBgraph_t\fP) : \fBint\fP +returns the number of nodes in \fIg\fP. +.TP +\fBnEdges\fP(\fIg\fP : \fBgraph_t\fP) : \fBint\fP +returns the number of edges in \fIg\fP. +.SS "Nodes" +.TP +\fBnode\fP(\fIsg\fP : \fBgraph_t\fP, \fIs\fP : \fBstring\fP) : \fBnode_t\fP +creates a node in graph \fIg\fP of name \fIs\fP. If such a node +already exists, it is returned. +.TP +\fBsubnode\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBnode_t\fP +inserts the node \fIn\fP into the subgraph \fIg\fP. Returns the node. +.TP +\fBfstnode\fP(\fIg\fP : \fBgraph_t\fP) : \fBnode_t\fP +returns the first node in graph \fIg\fP, or \fBNULL\fP if none exists. +.TP +\fBnxtnode\fP(\fIn\fP : \fBnode_t\fP) : \fBnode_t\fP +returns the next node after \fIn\fP in the root graph, or \fBNULL\fP. +.TP +\fBnxtnode_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBnode_t\fP +returns the next node after \fIn\fP in \fIsg\fP, or \fBNULL\fP. +.TP +\fBisNode\fP(\fIsg\fP : \fBgraph_t\fP, \fIs\fP : \fBstring\fP) : \fBnode_t\fP +looks for a node in (sub)graph \fIsg\fP of name \fIs\fP. If such a node +exists, it is returned. Otherwise, \fBNULL\fP is returned. +.TP +\fBisSubnode\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBint\fP +returns non-zero if node \fIn\fP is in (sub)graph \fIsg\fP, or zero +otherwise. +.TP +\fBindegreeOf\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBint\fP +returns the indegree of node \fIn\fP in (sub)graph \fIsg\fP. +.TP +\fBoutdegreeOf\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBint\fP +returns the outdegree of node \fIn\fP in (sub)graph \fIsg\fP. +.TP +\fBdegreeOf\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBint\fP +returns the degree of node \fIn\fP in (sub)graph \fIsg\fP. +.SS "Edges" +.TP +\fBedge\fP(\fIt\fP : \fBnode_t\fP, \fIh\fP : \fBnode_t\fP, \fIs\fP : \fBstring\fP) : \fBedge_t\fP +creates an edge with tail node \fIt\fP, head node \fIh\fP and +name \fIs\fP in the root graph. If the graph is undirected, the +distinction between head and tail nodes is unimportant. +If such an edge already exists, it is returned. +.TP +\fBedge_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIt\fP : \fBnode_t\fP, \fIh\fP : \fBnode_t\fP, \fIs\fP : \fBstring\fP) : \fBedge_t\fP +creates an edge with tail node \fIt\fP, head node \fIh\fP and name \fIs\fP +in (sub)graph \fIsg\fP (and all parent graphs). If the graph is undirected, the distinction between +head and tail nodes is unimportant. +If such an edge already exists, it is returned. +.TP +\fBsubedge\fP(\fIg\fP : \fBgraph_t\fP, \fIe\fP : \fBedge_t\fP) : \fBedge_t\fP +inserts the edge \fIe\fP into the subgraph \fIg\fP. Returns the edge. +.TP +\fBisEdge\fP(\fIt\fP : \fBnode_t\fP, \fIh\fP : \fBnode_t\fP, \fIs\fP : \fBstring\fP) : \fBedge_t\fP +looks for an edge with tail node \fIt\fP, head node \fIh\fP and +name \fIs\fP. If the graph is undirected, the distinction between +head and tail nodes is unimportant. +If such an edge exists, it is returned. Otherwise, \fBNULL\fP is returned. +.TP +\fBisEdge_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIt\fP : \fBnode_t\fP, \fIh\fP : \fBnode_t\fP, \fIs\fP : \fBstring\fP) : \fBedge_t\fP +looks for an edge with tail node \fIt\fP, head node \fIh\fP and +name \fIs\fP in (sub)graph \fIsg\fP. If the graph is undirected, the distinction between +head and tail nodes is unimportant. +If such an edge exists, it is returned. Otherwise, \fBNULL\fP is returned. +.TP +\fBisSubedge\fP(\fIg\fP : \fBgraph_t\fP, \fIe\fP : \fBedge_t\fP) : \fBint\fP +returns non-zero if edge \fIe\fP is in (sub)graph \fIsg\fP, or zero +otherwise. +.TP +\fBfstout\fP(\fIn\fP : \fBnode_t\fP) : \fBedge_t\fP +returns the first outedge of node \fIn\fP in the root graph. +.TP +\fBfstout_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBedge_t\fP +returns the first outedge of node \fIn\fP in (sub)graph \fIsg\fP. +.TP +\fBnxtout\fP(\fIe\fP : \fBedge_t\fP) : \fBedge_t\fP +returns the next outedge after \fIe\fP in the root graph. +.TP +\fBnxtout_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIe\fP : \fBedge_t\fP) : \fBedge_t\fP +returns the next outedge after \fIe\fP in graph \fIsg\fP. +.TP +\fBfstin\fP(\fIn\fP : \fBnode_t\fP) : \fBedge_t\fP +returns the first inedge of node \fIn\fP in the root graph. +.TP +\fBfstin_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBedge_t\fP +returns the first inedge of node \fIn\fP in graph \fIsg\fP. +.TP +\fBnxtin\fP(\fIe\fP : \fBedge_t\fP) : \fBedge_t\fP +returns the next inedge after \fIe\fP in the root graph. +.TP +\fBnxtin_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIe\fP : \fBedge_t\fP) : \fBedge_t\fP +returns the next inedge after \fIe\fP in graph \fIsg\fP. +.TP +\fBfstedge\fP(\fIn\fP : \fBnode_t\fP) : \fBedge_t\fP +returns the first edge of node \fIn\fP in the root graph. +.TP +\fBfstedge_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBedge_t\fP +returns the first edge of node \fIn\fP in graph \fIsg\fP. +.TP +\fBnxtedge\fP(\fIe\fP : \fBedge_t\fP, \fBnode_t\fP) : \fBedge_t\fP +returns the next edge after \fIe\fP in the root graph. +.TP +\fBnxtedge_sg\fP(\fIsg\fP : \fBgraph_t\fP, \fIe\fP : \fBedge_t\fP, \fBnode_t\fP) : \fBedge_t\fP +returns the next edge after \fIe\fP in the graph \fIsg\fP. +.SS "Graph I/O" +.TP +\fBwrite\fP(\fIg\fP : \fBgraph_t\fP) : \fBvoid\fP +prints \fIg\fP in dot format onto the output stream. +.TP +\fBwriteG\fP(\fIg\fP : \fBgraph_t\fP, \fIfname\fP : \fBstring\fP) : \fBvoid\fP +prints \fIg\fP in dot format into the file \fIfname\fP. +.TP +\fBfwriteG\fP(\fIg\fP : \fBgraph_t\fP, \fIfd\fP : \fBint\fP) : \fBvoid\fP +prints \fIg\fP in dot format onto the open stream denoted +by the integer \fIfd\fP. +.TP +\fBreadG\fP(\fIfname\fP : \fBstring\fP) : \fBgraph_t\fP +returns a graph read from the file \fIfname\fP. The graph should be +in dot format. If no graph can be read, \fBNULL\fP is returned. +.TP +\fBfreadG\fP(\fIfd\fP : \fBint\fP) : \fBgraph_t\fP +returns the next graph read from the open stream \fIfd\fP. +Returns \fBNULL\fP at end of file. +.SS "Graph miscellany" +.TP +\fBdelete\fP(\fIg\fP : \fBgraph_t\fP, \fIx\fP : \fBobj_t\fP) : \fBvoid\fP +deletes object \fIx\fP from graph \fIg\fP. +If \fIg\fP is \fBNULL\fP, the function uses the root graph of \fIx\fP. +If \fIx\fP is a graph or subgraph, it is closed unless \fIx\fP is locked. +.TP +\fBisIn\fP(\fIg\fP : \fBgraph_t\fP, \fIx\fP : \fBobj_t\fP) : \fBint\fP +returns true if \fIx\fP is in subgraph \fIg\fP. +If \fIx\fP is a graph, this indicates that \fIg\fP is the immediate parent +graph of \fIx\fP. +.TP +\fBclone\fP(\fIg\fP : \fBgraph_t\fP, \fIx\fP : \fBobj_t\fP) : \fBobj_t\fP +creates a clone of object \fIx\fP in graph \fIg\fP. +In particular, the new object has the same name/value attributes +and structure as the original object. +If an object with the same key as \fIx\fP already exists, its attributes +are overlaid by those of \fIx\fP and the object is returned. +If an edge is cloned, both endpoints are implicitly cloned. +If a graph is cloned, all nodes, edges and subgraphs are implicitly +cloned. +If \fIx\fP is a graph, \fIg\fP may be \fBNULL\fP, in which case the cloned +object will be a new root graph. +.TP +\fBcopy\fP(\fIg\fP : \fBgraph_t\fP, \fIx\fP : \fBobj_t\fP) : \fBobj_t\fP +creates a copy of object \fIx\fP in graph \fIg\fP, +where the new object has the same name/value attributes +as the original object. +If an object with the same key as \fIx\fP already exists, its attributes +are overlaid by those of \fIx\fP and the object is returned. +Note that this is a shallow copy. If \fIx\fP is a graph, none of its nodes, +edges or subgraphs are copied into the new graph. If \fIx\fP is an edge, +the endpoints are created if necessary, but they are not cloned. +If \fIx\fP is a graph, \fIg\fP may be \fBNULL\fP, in which case the cloned +object will be a new root graph. +.TP +\fBcopyA\fP(\fIsrc\fP : \fBobj_t\fP, \fItgt\fP : \fBobj_t\fP) : \fBint\fP +copies the attributes of object \fIsrc\fP to object \fItgt\fP, overwriting +any attribute values \fItgt\fP may initially have. +.TP +\fBinduce\fP(\fIg\fP : \fBgraph_t\fP) : \fBvoid\fP +extends \fIg\fP to its node\(hyinduced subgraph extension in its root graph. +.TP +\fBaget\fP(\fIsrc\fP : \fBobj_t\fP, \fIname\fP : \fBstring\fP) : \fBstring\fP +returns the value of attribute \fIname\fP in object \fIsrc\fP. This is +useful for those cases when \fIname\fP conflicts with one of the keywords +such as "head" or "root". +Returns \fBNULL\fP on failure or if the attribute is not defined. +.TP +\fBaset\fP(\fIsrc\fP : \fBobj_t\fP, \fIname\fP : \fBstring\fP, \fIvalue\fP : \fBstring\fP) : \fBint\fP +sets the value of attribute \fIname\fP in object \fIsrc\fP to \fIvalue\fP. +Returns 0 on success, non\(hyzero on failure. See \fBaget\fP above. +.TP +\fBgetDflt\fP(\fIg\fP : \fBgraph_t\fP, \fIkind\fP : \fBstring\fP, \fIname\fP : \fBstring\fP) : \fBstring\fP +returns the default value of attribute \fIname\fP in objects in \fIg\fP of +the given \fIkind\fP. For nodes, edges, and graphs, \fIkind\fP +should be "N", "E", and "G", respectively. +Returns \fBNULL\fP on failure or if the attribute is not defined. +.TP +\fBsetDflt\fP(\fIg\fP : \fBgraph_t\fP, \fIkind\fP : \fBstring\fP, \fIname\fP : \fBstring\fP, \fIvalue\fP : \fBstring\fP) : \fBint\fP +sets the default value of attribute \fIname\fP to \fIvalue\fP in +objects in \fIg\fP of +the given \fIkind\fP. For nodes, edges, and graphs, \fIkind\fP +should be "N", "E", and "G", respectively. +Returns 0 on success, non\(hyzero on failure. See \fBsetDflt\fP above. +.TP +\fBcompOf\fP(\fIg\fP : \fBgraph_t\fP, \fIn\fP : \fBnode_t\fP) : \fBgraph_t\fP +returns the connected component of the graph \fIg\fP containing node \fIn\fP, +as a subgraph of \fIg\fP. The subgraph only contains the nodes. One can +use \fIinduce\fP to add the edges. The function fails and returns \fBNULL\fP +if \fIn\fP is not in \fIg\fP. Connectivity is based on the underlying +undirected graph of \fIg\fP. +.TP +\fBkindOf\fP(\fIobj\fP : \fBobj_t\fP) : \fBstring\fP +returns an indication of what kind of graph object is the argument. +For nodes, edges, and graphs, it returns +should be "N", "E", and "G", respectively. +.TP +\fBlock\fP(\fIg\fP : \fBgraph_t\fP, \fIv\fP : \fBint\fP) : \fBint\fP +implements graph locking on root graphs. If the integer \fIv\fP is positive, the +graph is set so that future calls to \fBdelete\fP have no immediate effect. +If \fIv\fP is zero, the graph is unlocked. If there has been a call +to delete the graph while it was locked, the graph is closed. +If \fIv\fP is negative, nothing is done. +In all cases, the previous lock value is returned. +.SS "Strings" +.TP +\fBsprintf\fP(\fIfmt\fP : \fBstring\fP, \fI...\fP) : \fBstring\fP +returns the string resulting from formatting +the values of the expressions occurring after \fIfmt\fP +according to the +.IR printf (3) +format +.I fmt +.TP +\fBgsub\fP(\fIstr\fP : \fBstring\fP, \fIpat\fP : \fBstring\fP) : \fBstring\fP +.TP +\fBgsub\fP(\fIstr\fP : \fBstring\fP, \fIpat\fP : \fBstring\fP, \fIrepl\fP : \fBstring\fP) : \fBstring\fP +returns \fIstr\fP with all substrings matching \fIpat\fP +deleted or replaced by \fIrepl\fP, respectively. +.TP +\fBsub\fP(\fIstr\fP : \fBstring\fP, \fIpat\fP : \fBstring\fP) : \fBstring\fP +.TP +\fBsub\fP(\fIstr\fP : \fBstring\fP, \fIpat\fP : \fBstring\fP, \fIrepl\fP : \fBstring\fP) : \fBstring\fP +returns \fIstr\fP with the leftmost substring matching \fIpat\fP +deleted or replaced by \fIrepl\fP, respectively. The +characters '^' and '$' +may be used at the beginning and end, respectively, +of \fIpat\fP to anchor the pattern to the beginning or end of \fIstr\fP. +.TP +\fBsubstr\fP(\fIstr\fP : \fBstring\fP, \fIidx\fP : \fBint\fP) : \fBstring\fP +.TP +\fBsubstr\fP(\fIstr\fP : \fBstring\fP, \fIidx\fP : \fBint\fP, \fIlen\fP : \fBint\fP) : \fBstring\fP +returns the substring of \fIstr\fP starting at position \fIidx\fP to +the end of the string or of length \fIlen\fP, respectively. +Indexing starts at 0. If \fIidx\fP is negative or \fIidx\fP is greater than +the length of \fIstr\fP, a fatal error occurs. Similarly, in the second +case, if \fIlen\fP is negative or \fIidx\fP + \fIlen\fP is greater than the +length of \fIstr\fP, a fatal error occurs. +.TP +\fBlength\fP(\fIs\fP : \fBstring\fP) : \fBint\fP +returns the length of the string \fIs\fP. +.TP +\fBindex\fP(\fIs\fP : \fBstring\fP, \fIt\fP : \fBstring\fP) : \fBint\fP +returns the index of the character in string \fIs\fP where the leftmost +copy of string \fIt\fP can be found, or \-1 if \fIt\fP is not a +substring of \fIs\fP. +.TP +\fBmatch\fP(\fIs\fP : \fBstring\fP, \fIp\fP : \fBstring\fP) : \fBint\fP +returns the index of the character in string \fIs\fP where the leftmost +match of pattern \fIp\fP can be found, or \-1 if no substring of \fIs\fP +matches \fIp\fP. +.TP +\fBcanon\fP(\fIs\fP : \fBstring\fP) : \fBstring\fP +returns a version of \fIs\fP appropriate to be used as an identifier +in a dot file. +.TP +\fBxOf\fP(\fIs\fP : \fBstring\fP) : \fBstring\fP +returns the string "\fIx\fP" if \fIs\fP has the form "\fIx\fP,\fIy\fP", +where both \fIx\fP and \fIy\fP are numeric. +.TP +\fByOf\fP(\fIs\fP : \fBstring\fP) : \fBstring\fP +returns the string "\fIy\fP" if \fIs\fP has the form "\fIx\fP,\fIy\fP", +where both \fIx\fP and \fIy\fP are numeric. +.TP +\fBllOf\fP(\fIs\fP : \fBstring\fP) : \fBstring\fP +returns the string "\fIllx\fP,\fIlly\fP" if \fIs\fP has the form +"\fIllx\fP,\fIlly\fP,\fIurx\fP,\fIury\fP", +where all of \fIllx\fP, \fIlly\fP, \fIurx\fP, and \fIury\fP are numeric. +.TP +.BI urOf( s ) +\fBurOf\fP(\fIs\fP : \fBstring\fP) : \fBstring\fP +returns the string "\fIurx\fP,\fIury\fP" if \fIs\fP has the form +"\fIllx\fP,\fIlly\fP,\fIurx\fP,\fIury\fP", +where all of \fIllx\fP, \fIlly\fP, \fIurx\fP, and \fIury\fP are numeric. +.TP +\fBsscanf\fP(\fIs\fP : \fBstring\fP, \fIfmt\fP : \fBstring\fP, \fI...\fP) : \fBint\fP +scans the string \fIs\fP, extracting values +according to the +.IR sscanf (3) +format +.IR fmt . +The values are stored in the addresses following \fIfmt\fP, +addresses having the form \fB&\fP\fIv\fP, where \fIv\fP is some declared +variable of the correct type. +Returns the number of items successfully scanned. +.SS "I/O" +.TP +\fBprint\fP(\fI...\fP) : \fBvoid\fP +.BI print( " expr" , " ...\fB ) +prints a string representation of each argument in turn onto +\fBstdout\fP, followed by a newline. +.TP +\fBprintf\fP(\fIfmt\fP : \fBstring\fP, \fI...\fP) : \fBint\fP +.TP +\fBprintf\fP(\fIfd\fP : \fBint\fP, \fIfmt\fP : \fBstring\fP, \fI...\fP) : \fBint\fP +prints the string resulting from formatting +the values of the expressions following \fIfmt\fP +according to the +.IR printf (3) +format +.IR fmt . +Returns 0 on success. +By default, it prints on \fBstdout\fP. +If the optional integer \fIfd\fP is given, output is written on the open +stream associated with \fIfd\fP. +.TP +\fBscanf\fP(\fIfmt\fP : \fBstring\fP, \fI...\fP) : \fBint\fP +.TP +\fBscanf\fP(\fIfd\fP : \fBint\fP, \fIfmt\fP : \fBstring\fP, \fI...\fP) : \fBint\fP +scans in values from an input stream according to the +.IR scanf (3) +format +.IR fmt . +The values are stored in the addresses following \fIfmt\fP, +addresses having the form \fB&\fP\fIv\fP, where \fIv\fP is some declared +variable of the correct type. +By default, it reads from \fBstdin\fP. +If the optional integer \fIfd\fP is given, input is read from the open +stream associated with \fIfd\fP. +Returns the number of items successfully scanned. +.TP +\fBopenF\fP(\fIs\fP : \fBstring\fP, \fIt\fP : \fBstring\fP) : \fBint\fP +opens the file \fIs\fP as an I/O stream. The string argument \fIt\fP +specifies how the file is opened. The arguments are the same as for +the C function +.IR fopen (3). +It returns an integer denoting the stream, or \-1 on error. +.sp +As usual, streams 0, 1 and 2 are already open as \fBstdin\fP, \fBstdout\fP, +and \fBstderr\fP, respectively. Since \fBgvpr\fP may use \fBstdin\fP to +read the input graphs, the user should avoid using this stream. +.TP +\fBcloseF\fP(\fIfd\fP : \fBint\fP) : \fBint\fP +closes the open stream denoted by the integer \fIfd\fP. +Streams 0, 1 and 2 cannot be closed. +Returns 0 on success. +.TP +\fBreadL\fP(\fIfd\fP : \fBint\fP) : \fBstring\fP +returns the next line read from the input stream \fIfd\fP. It returns +the empty string "" on end of file. Note that the newline character is +left in the returned string. +.SS "Math" +.TP +\fBexp\fP(\fId\fP : \fBdouble\fP) : \fBdouble\fP +returns e to the \fId\fPth power. +.TP +\fBlog\fP(\fId\fP : \fBdouble\fP) : \fBdouble\fP +returns the natural log of \fId\fP. +.TP +\fBsqrt\fP(\fId\fP : \fBdouble\fP) : \fBdouble\fP +returns the square root of the double \fId\fP. +.TP +\fBpow\fP(\fId\fP : \fBdouble\fP, \fIx\fP : \fBdouble\fP) : \fBdouble\fP +returns \fId\fP raised to the \fIx\fPth power. +.TP +\fBcos\fP(\fId\fP : \fBdouble\fP) : \fBdouble\fP +returns the cosine of \fId\fP. +.TP +\fBsin\fP(\fId\fP : \fBdouble\fP) : \fBdouble\fP +returns the sine of \fId\fP. +.TP +\fBatan2\fP(\fIy\fP : \fBdouble\fP, \fIx\fP : \fBdouble\fP) : \fBdouble\fP +returns the arctangent of \fIy/x\fP in the range \-pi to pi. +.SS "Miscellaneous" +.TP +\fBexit\fP() : \fBvoid\fP +.TP +\fBexit\fP(\fIv\fP : \fBint\fP) : \fBvoid\fP +causes +.B gvpr +to exit with the exit code +.IR v . +.I v +defaults to 0 if omitted. +.TP +\fBrand\fP() : \fBdouble\fP +returns a pseudo\(hyrandom double between 0 and 1. +.TP +\fBsrand\fP() : \fBint\fP +.TP +\fBsrand\fP(\fIv\fP : \fBint\fP) : \fBint\fP +sets a seed for the random number generator. The optional argument gives +the seed; if it is omitted, the current time is used. The previous seed +value is returned. \fBsrand\fP should be called before any calls to +\fBrand\fP. +.SH "BUILT\(hyIN VARIABLES" +.PP +.B gvpr +provides certain special, built\(hyin variables, whose values are set +automatically by \fBgvpr\fP depending on the context. Except as noted, +the user cannot modify their values. +.TP +\fB$\fP : \fBobj_t\fP +denotes the current object (node, edge, graph) depending on the +context. It is not available in \fBBEGIN\fP or \fBEND\fP clauses. +.TP +\fB$F\fP : \fBstring\fP +is the name of the current input file. +.TP +\fB$G\fP : \fBgraph_t\fP +denotes the current graph being processed. It is not available +in \fBBEGIN\fP or \fBEND\fP clauses. +.TP +\fB$O\fP : \fBgraph_t\fP +denotes the output graph. Before graph traversal, it is initialized +to the target graph. After traversal and any \fBEND_G\fP actions, +if it refers to a non\(hyempty graph, that graph is printed onto the output stream. +It is only valid in \fBN\fP, \fBE\fP and \fBEND_G\fP clauses. +The output graph may be set by the user. +.TP +\fB$T\fP : \fBgraph_t\fP +denotes the current target graph. It is a subgraph of \fB$G\fP +and is available only in \fBN\fP, \fBE\fP and \fBEND_G\fP clauses. +.TP +\fB$tgtname\fP : \fBstring\fP +denotes the name of the target graph. +By default, it is set to \fB"gvpr_result"\fP. +If used multiple times during the execution of +.BR gvpr , +the name will be appended with an integer. +This variable may be set by the user. +.TP +\fB$tvroot\fP : \fBnode_t\fP +indicates the starting node for a (directed or undirected) +depth\(hyfirst traversal of the +graph (cf. \fB$tvtype\fP below). +The default value is \fBNULL\fP for each input graph. +.TP +\fB$tvtype\fP : \fBtvtype_t\fP +indicates how \fBgvpr\fP traverses a graph. At present, it can only take +one of six values: \fBTV_flat\fP, \fBTV_dfs\fP, \fBTV_fwd\fP, +\fBTV_ref\fP, \fBTV_bfs\fP, \fBTV_ne\fP, and \fBTV_en\fP. +\fBTV_flat\fP is the default. +The meaning of these values is discussed below. +.TP +\fBARGC\fP : \fBint\fP +denotes the number of arguments specified by the +\fB\-a\fP \fIargs\fP command\(hyline argument. +.TP +\fBARGV\fP : \fBstring array\fP +denotes the array of arguments specified by the +\fB\-a\fP \fIargs\fP +command\(hyline argument. The \fIi\fPth argument is given +by \fBARGV[\fIi\fP]\fR. +.SH "BUILT\(hyIN CONSTANTS" +.PP +There are several symbolic constants defined by \fBgvpr\fP. +.TP +\fBNULL\fR : \fIobj_t\fR +a null object reference, equivalent to 0. +.TP +\fBTV_flat\fR : \fItvtype_t\fR +a simple, flat traversal, with graph objects visited in +seemingly arbitrary order. +.TP +\fBTV_ne\fR : \fItvtype_t\fR +a traversal which first visits all of the nodes, then all +of the edges. +.TP +\fBTV_en\fR : \fItvtype_t\fR +a traversal which first visits all of the edges, then all +of the nodes. +.TP +\fBTV_dfs\fR : \fItvtype_t\fR +a traversal of the graph using a depth\(hyfirst search on the +underlying undirected graph. +To do the traversal, \fBgvpr\fP will check the value of +\fB$tvroot\fP. If this has the same value that it had previously +(at the start, the previous value is initialized to \fBNULL\fP.), \fBgvpr\fP +will simply look for some unvisited node and traverse its connected +component. On the other hand, if \fB$tvroot\fP has changed, its connected +component will be toured, assuming it has not been previously visited or, +if \fB$tvroot\fP is \fBNULL\fP, the traversal will stop. Note that using +\fBTV_dfs\fP and \fB$tvroot\fP, it is possible to create an infinite loop. +.TP +\fBTV_fwd\fR : \fItvtype_t\fR +a traversal of the graph using a depth\(hyfirst search on the +graph following only forward arcs. In +.TP +\fBTV_bfs\fR : \fItvtype_t\fR +a traversal of the graph using a bread\(hyfirst search on the +graph ignoring edge directions. See the item on \fBTV_dfs\fR above +for the role of \fB$tvroot\fP. +.IR libagraph (3), +edges in undirected graphs are given an arbitrary direction, which is +used for this traversal. The choice of roots for the traversal is the +same as described for \fBTV_dfs\fR above. +.TP +\fBTV_rev\fR : \fItvtype_t\fR +a traversal of the graph using a depth\(hyfirst search on the +graph following only reverse arcs. In +.IR libagraph (3), +edges in undirected graphs are given an arbitrary direction, which is +used for this traversal. The choice of roots for the traversal is the +same as described for \fBTV_dfs\fR above. +.SH EXAMPLES +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fBgvpr \-i 'N[color=="blue"]' file.dot\fP +.fi +.RE +.DT +.PP +Generate the node\(hyinduced subgraph of all nodes with color blue. +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fBgvpr \-c 'N[color=="blue"]{color = "red"}' file.dot\fP +.fi +.RE +.DT +.PP +Make all blue nodes red. +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fBBEGIN { int n, e; int tot_n = 0; int tot_e = 0; } +BEG_G { + n = nNodes($G); + e = nEdges($G); + printf ("%d nodes %d edges %s\n", n, e, $G.name); + tot_n += n; + tot_e += e; +} +END { printf ("%d nodes %d edges total\n", tot_n, tot_e) }\fP +.fi +.RE +.DT +.PP +Version of the program \fBgc\fP. +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fBgvpr \-c ""\fP +.fi +.RE +.DT +.PP +Equivalent to \fBnop\fP. +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fBBEG_G { graph_t g = graph ("merge", "S"); } +E { + node_t h = clone(g,$.head); + node_t t = clone(g,$.tail); + edge_t e = edge(t,h,""); + e.weight = e.weight + 1; +} +END_G { $O = g; }\fP +.fi +.RE +.DT +.PP +Produces a strict version of the input graph, where the weight attribute +of an edge indicates how many edges from the input graph the edge represents. +.PP +.ta \w'\f(CWdelete array[expression]'u +.RS +.nf +\fBBEGIN {node_t n; int deg[]} +E{deg[head]++; deg[tail]++; } +END_G { + for (deg[n]) { + printf ("deg[%s] = %d\n", n.name, deg[n]); + } +}\fP +.fi +.RE +.DT +.PP +Computes the degrees of nodes with edges. +.SH ENVIRONMENT +.TP +.B GPRPATH +Colon\(hyseparated list of directories to be searched to find +the file specified by the \-f option. +.SH BUGS AND WARNINGS +When the program is given as a command line argument, the usual +shell interpretation takes place, which may affect some of the +special names in \fBgvpr\fP. To avoid this, it is best to wrap the +program in single quotes. +.PP +As of 24 April 2008, \fBgvpr\fP switched to using a new, underlying +graph library, which uses the simpler model that there is only one +copy of a node, not one copy for each subgraph logically containing +it. This means that iterators such as \Inxtnode\P cannot traverse +a subgraph using just a node argument. For this reason, subgraph +traversal requires new functions ending in "_sg", which also take +a subgraph argument. The versions without that suffix will always +traverse the root graph. +.PP +There is a single global scope, except for formal function parameters, +and even these can interfere with the type system. Also, the +extent of all variables is the entire life of the program. +It might be preferable for scope +to reflect the natural nesting of the clauses, or for the program +to at least reset locally declared variables. +For now, it is advisable to use distinct names for all variables. +.PP +If a function ends with a complex statement, such as an +IF statement, with each branch doing a return, type checking may fail. +Functions should use a return at the end. +.PP +The expr library does not support string values of (char*)0. +This means we can't distinguish between "" and (char*)0 edge keys. +For the purposes of looking up and creating edges, we translate "" +to be (char*)0, since this latter value is +necessary in order to look up any edge with a matching head and tail. +.PP +Related to this, strings converted to integers act like char pointers, +getting the value 0 or 1 depending on whether the string consists +solely of zeroes or not. Thus, the ((int)"2") evaluates to 1. +.PP +The language inherits the usual C problems such as dangling references +and the confusion between '=' and '=='. +.SH AUTHOR +Emden R. Gansner +.SH "SEE ALSO" +.PP +awk(1), gc(1), dot(1), nop(1), libexpr(3), libagraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gxl2gv.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gxl2gv.1 new file mode 100644 index 0000000..d801368 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/gxl2gv.1 @@ -0,0 +1,92 @@ +.TH GXL2GV,GV2GXL 1 "20 December 2002" +.SH NAME +gxl2gv,gv2gxl \- GXL-GV converters +.SH SYNOPSIS +.B gxl2gv +[ +.B \-gd? +] +[ +.BI -o outfile +] +[ +.I files +] +.br +.B gv2gxl +[ +.B \-gd? +] +[ +.BI -o outfile +] +[ +.I files +] +.SH DESCRIPTION +.B gxl2gv +converts between graphs represented in GXL and in the +GV language. Unless a conversion type is specified using +a flag, +.B gxl2gv +will deduce the type of conversion from the suffix of +the input file, a ".gv" (or a ".dot") suffix causing a conversion from GV +to GXL, and a ".gxl" suffix causing a conversion from GXL to GV. +If no suffix is available, e.g. when the input is from a pipe, +and no flags are used then +.B gxl2gv +assumes the type of the input file from its executable name +so that +.B gxl2gv +converts from GXL to GV, and +.B gv2gxl +converts from GV to GXL. +.PP +GXL supports a much richer graph model than GV. \fBgxl2gv\fP +will attempt to map GXL constructs into the analogous GV construct +when this is possible. If not, the GXL information is stored as +an attribute. The intention is that applying \fBgxl2gv|gv2gxl\fP +is semantically equivalent to the identity operator. +.SH OPTIONS +The following options are supported: +.TP +.B \-g +The command name and input file extensions are ignored, the +input is taken as a GV file and a GXL file is generated. +.TP +.B \-d +The command name and input file extensions are ignored, the +input is taken as a GXL file and a GV file is generated. +.TP +.B \-? +Prints usage information and exits. +.TP +.BI \-o " outfile" +If specified, the output will be written into the file +\fIoutfile\fP. Otherwise, output is written to standard out. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in GXL or GV. +If no +.I files +operand is specified, +the standard input will be used. +.SH RETURN CODES +Both \fBgxl2gv\fP and \fBgv2gxl\fP return \fB0\fP +if there were no problems during conversion; +and non-zero if any error occurred. +.SH "BUGS" +\fBgxl2gv\fP will only convert in one direction even if given multiple files +with varying suffixes. +.PP +The conversion can only handle one graph per GXL file. +.PP +There are some GXL constructs which \fBgxl2gv\fP cannot handle. +.SH AUTHORS +Krishnam Pericherla +.br +Emden R. Gansner +.SH "SEE ALSO" +dot(1), libgraph(3), libagraph(3), neato(1), twopi(1) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lefty.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lefty.1 new file mode 100644 index 0000000..7006ae9 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lefty.1 @@ -0,0 +1,120 @@ +.TH LEFTY 1 +.SH NAME +lefty \- A Programmable Graphics Editor +.SH SYNOPSIS +.B lefty +[ +.I options +] [ +.I file +] +.SH DESCRIPTION +.B lefty +is a two-view graphics editor for technical pictures. This editor has +no hardwired knowledge about specific picture layouts or editing operations. +Each picture is described by a program that contains functions to draw the +picture and functions to perform editing operations that are appropriate for +the specific picture. Primitive user actions, like mouse and keyboard events, +are also bound to functions in this program. Besides the graphical view of the +picture itself, the editor presents a textual view of the program that +describes the picture. Programmability and the two-view interface allow the +editor to handle a variety of pictures, but are particularly useful for +pictures used in technical contexts, e.g., graphs and trees. Also, +.B lefty +can communicate with other processes. This feature allows it to use existing +tools to compute specific picture layouts and allows external processes to use +the editor as a front end to display their data structures graphically. +.SH USAGE +The file name is optional. It may be +.BR - , +for reading from standard input. +.B lefty +uses two environment variables, +.B LEFTYPATH +and +.BR LEFTYOPTIONS . +.B LEFTYPATH +is a colon separated list of directories. When +.B lefty +tries to open a file, it searches that path for the file. When +.B lefty +tries to start up another process, it searches +.B LEFTYPATH +first, then the standard +.B PATH +variable. +.B LEFTYOPTIONS +can be used to set specific options. Options specified on the command line +override options set through this variable. +.SH OPTIONS +.TP +.B -x +Instructs the editor to exit after processing +.BR file . +.TP +.B "-e " +.B +is parsed and executed. +.TP +.B -el +Set error reporting level. The default value is +.BR 0 . +.B 0 +never prints any messages. +.B 1 +prints severe errors, such as trying to return from a non function. +.B 2 +is the most useful: it reports function calls that cannot be executed, either +because there is no function, or because of argument mismatches. +.B 3 +also warns about bad variable names. +.B 4,5 +warn about expressions that do not return a value. Only level +.B 1 +messages are real errors. The rest arise from legal +.B lefty +statements, but may be cased by some logic errors. +.TP +.B "-sd " +Specifies how much of the stack to show, when an error message is to be +printed. The default value is +.BR 2 . +With +.BR 0 , +no part of the stack is shown. With +.BR 1 , +only the top stack frame is printed. With +.BR 2 , +the full stack is printed. +.TP +.B "-sb " +Specifies how much of each function in the stack to show, when an error message +is to be printed. The default value is +.BR 2 . +With +.BR 0 , +no part of the function is shown. With +.BR 1 , +only the line around the error is printed. With +.BR 2 , +the full function body is printed. +.TP +.B "-df " +Sets the default font. This font is used whenever a requested font cannot be +found. The string must be a legal X font. If string is +.BR "''" , +.B lefty +will draw small boxes instead of text. +.TP +.B "-ps " +Specifies a default file name for postscript files. This name is used when no +name is specified in the +.B createwidget +call. The default file name is +.BR out.ps . +.TP +.B -V +Prints the version. +.SH SEE ALSO +.I lefty +user guide. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lneato.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lneato.1 new file mode 100644 index 0000000..95ab644 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/lneato.1 @@ -0,0 +1,49 @@ +.TH LNEATO 1 +.SH NAME +lneato \- A Customizable Graph Editor +.SH SYNOPSIS +.B lneato +[ +.B -V +] [ +.I file +] +.SH DESCRIPTION +.B lneato +is a graph editor for the X Window System. It may be run as a standalone +editor, or as a front end for applications that use graphs. It can control +multiple windows viewing different graphs. + +.B lneato +is written on top of +.B neato +and +.BR lefty . +.B lefty +is a general-purpose programmable editor for technical pictures. It has an +interpretive programming language similar to AWK and C. The user interface and +graph editing operations of +.B lneato +are written as +.B lefty +functions. +Programmer-defined graph operations may be loaded as well. Graph layouts are +made by +.BR neato , +which runs as a separate process that communicates with +.B lefty +through pipes. +.SH USAGE +The file name is optional. If present, the graph contained in that file is +displayed in the +.B lneato +window. +.SH OPTIONS +.TP +.B -V +Prints the version. +.SH SEE ALSO +neato(1), lefty(1), dotty(1), +.br +.I dotty +user guide. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/mm2gv.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/mm2gv.1 new file mode 100644 index 0000000..5745223 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/mm2gv.1 @@ -0,0 +1,47 @@ +.TH MM2GV 1 "31 July 2008" +.SH NAME +mm2gv \- Matrix Market-DOT converters +.SH SYNOPSIS +.B mm2gv +[ +.B \-u? +] +[ +.BI -o outfile +] +[ +.I file +] +.br +.SH DESCRIPTION +.B mm2gv +converts a sparse matrix of the Matrix Market format to a graph in the GV (formerly DOT) format. +.SH OPTIONS +The following options are supported: +.TP +.B \-u +If specified, the graph is assumed to be undirected. By default the graph generated is directed. +.TP +.BI \-o "outfile" +Prints output to the file \fIoutfile\fP. If not given, \fBmm2gv\fP +uses stdout. +.TP +.SH OPERANDS +The following operand is supported: +.TP 8 +.I file +Name of the file in MatrixMarket format. +If no +.I file +operand is specified, +the standard input will be used. +.SH RETURN CODES +Return \fB0\fP +if there were no problems during conversion; +and non-zero if any error occurred. +.SH "LIMITATIONS" +Currently the matrix entry values are not used. +.SH AUTHORS +Yifan Hu +.SH ADDITIONAL INFO +See http://math.nist.gov/MatrixMarket/ for description of the format and http://www.cise.ufl.edu/research/sparse/matrices/ for a large collection of sparse matrices in this format. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/neato.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/neato.1 new file mode 100644 index 0000000..6ef258f --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/neato.1 @@ -0,0 +1,669 @@ +.TH DOT 1 "23 August 2004" \*(eX +.SH NAME +dot \- filter for drawing directed graphs +.br +neato \- filter for drawing undirected graphs +.br +twopi \- filter for radial layouts of graphs +.br +circo \- filter for circular layout of graphs +.br +fdp \- filter for drawing undirected graphs +.SH SYNOPSIS +\fBdot\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBneato\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-n\fR[\fB1\fR|\fB2\fR]] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBtwopi\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBcirco\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBfdp\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.SH DESCRIPTION +.I dot +draws directed graphs. It works well on DAGs and other graphs +that can be drawn as hierarchies. +It reads attributed graph files and writes drawings. +By default, the output format +.I dot +is the input file with layout coordinates appended. +.PP +.I neato +draws undirected graphs using ``spring'' models (see Kamada and Kawai, +Information Processing Letters 31:1, April 1989). Input files must be +formatted in the +.I dot +attributed graph language. +By default, the output of +.I neato +is the input graph with layout coordinates appended. +.PP +.I twopi +draws graphs using a radial layout (see G. Wills, +Symposium on Graph Drawing GD'97, September, 1997). +Basically, one node is chosen as the center and put at the origin. +The remaining nodes are placed on a sequence of concentric circles +centered about the origin, each a fixed radial distance from the +previous circle. +All nodes distance 1 from the center are placed on the first circle; +all nodes distance 1 from a node on the first circle are placed on +the second circle; and so forth. +.PP +.I circo +draws graphs using a circular layout (see +Six and Tollis, GD '99 and ALENEX '99, and +Kaufmann and Wiese, GD '02.) +The tool identifies biconnected components and draws the nodes of +the component on a circle. The block\(hycutpoint tree +is then laid out using a recursive radial algorithm. Edge +crossings within a circle are minimized by placing as many edges on +the circle's perimeter as possible. +In particular, if the component is outerplanar, the component will +have a planar layout. +.PP +If a node belongs to multiple non\(hytrivial biconnected components, +the layout puts the node in one of them. By default, this is the first +non\(hytrivial component found in the search from the root component. +.PP +.I fdp +draws undirected graphs using a ``spring'' model. It relies on a +force\(hydirected approach in the spirit of Fruchterman and Reingold +(cf. Software\(hyPractice & Experience 21(11), 1991, pp. 1129\(hy1164). +.SH OUTPUT FORMATS +Dot uses an extensible plugin mechanism for its output renderers, +so to see what output formats your installation of dot supports +you can use ``dot \-Txxx'' (where xxx is an unlikely format) +and check the warning message. +Also, The plugin mechanism supports multiple implementations +of the output formats. +To see what variants are available, use, for example: ``dot \-Tpng:'' +and to force a particular variant, use, for example: ``dot \-Tpng:gd'' +.P +Traditionally, dot supports the following: +\fB\-Tps\fP (PostScript), +\fB\-Tsvg\fP \fB\-Tsvgz\fP (Structured Vector Graphics), +\fB\-Tfig\fP (XFIG graphics), +\fB\-Tmif\fP (FrameMaker graphics), +\fB\-Thpgl\fP (HP pen plotters), and \fB\-Tpcl\fP (Laserjet printers), +\fB\-Tpng\fP \fB\-Tgif\fP (bitmap graphics), +\fB\-Tdia\fP (GTK+ based diagrams), +\fB\-Timap\fP (imagemap files for httpd servers for each node or edge +that has a non(hynull "href" attribute.), +\fB\-Tcmapx\fP (client\(hyside imagemap for use in html and xhtml). +Additional less common or more special\(hypurpose output formats +can be found at http://www.graphviz.org/cvs/doc/info/output.html.) +.SH GRAPH FILE LANGUAGE +Here is a synopsis of the graph file language, traditionally using the extension \fB.dot\fR, for graphs: +.PP +[\fBstrict\fR] (\fBgraph\fR|\fBdigraph\fR) \fIname\fP { \fIstatement\(hylist\fP }\fR +.br +Is the top level graph. If the graph is \fBstrict\fR then multiple edges are +not allowed between the same pairs of nodes. +If it is a directed graph, indicated by \fBdigraph\fR, +then the \fIedgeop\fR must be "\->". If it is an undirected \fBgraph\fR +then the \fIedgeop\fR must be "\-\-". +Statements may be: +.PP +\fIname\fB=\fIval\fB;\fR +.br +\fBnode [\fIname\fB=\fIval\fB];\fR +.br +\fBedge [\fIname\fB=\fIval\fB];\fR +.br +Set default graph, node, or edge attribute \fIname\fP to \fIval\fP. +Any subgraph, node, or edge appearing after this inherits the new +default attributes. +.PP +\fBn0 [\fIname0=val0,name1=val1,...\fB];\fR +Creates node \fBn0\fP (if it does not already exist) +and sets its attributes according to the optional list. +.PP +\fBn0 \fIedgeop\fR n1 \fIedgeop\fR \fI...\fB \fIedgeop\fR nn [\fIname0=val0,name1=val1,...\fB];\fR +.br +Creates edges between nodes \fBn0\fP, \fBn1\fP, ..., \fBnn\fP and sets +their attributes according to the optional list. +Creates nodes as necessary. +.PP +[\fBsubgraph \fIname\fB] { \fIstatement\(hylist \fB}\fR +.br +Creates a subgraph. Subgraphs may be used in place +of \fBn0\fP, ..., \fBnn\fP in the above statements to create edges. +[\fBsubgraph \fIname\fR] is optional; +if missing, the subgraph is assigned an internal name. +.PP +Comments may be /*C\(hylike*/ or //C++\(hylike. + +.PP +Attribute names and values are ordinary (C\(hystyle) strings. +The following sections describe attributes that control graph layout. + +.SH "GRAPH ATTRIBUTES" +.PP +\fBsize="\fIx,y\fP"\fR sets bounding box of drawing in inches. +.PP +\fBpage="\fIx,y\fP"\fR sets the PostScript pagination unit. +.PP +\fBratio=\fIf\fR sets the aspect ratio to \fIf\fP which may be +a floating point number, or one of the keywords \fBfill\fP, +\fBcompress\fP, or \fBauto\fP. +.PP +\fBmargin=\fIf\fR sets the page margin (included in the page size). +.PP +\fBnodesep=\fIf\fR sets the minimum separation between nodes. +.PP +\fBranksep=\fIf\fR sets the minimum separation between ranks. +.PP +\fBordering=out\fR constrains order of out\(hyedges in a subgraph +according to their file sequence. +.PP +\fBrankdir=LR|RL|BT\fR requests a left\(hyto\(hyright, right\(hyto\(hyleft, or bottom\(hyto\(hytop, drawing. +.PP +\fBpagedir=\fR[TBLR][TBLR] sets the major and minor order of pagination. +.PP +\fBrank=same\fR (or \fBmin\fP or \fBmax\fP) in a subgraph +constrains the rank assignment of its nodes. If a subgraph's +name has the prefix \fBcluster\fP, its nodes are drawn in +a distinct rectangle of the layout. Clusters may be nested. +.PP +\fBrotate=90\fR sets landscape mode. +(\fBorientation=land\fR is backward compatible but obsolete.) +.PP +\fBcenter=\fIn\fR a non\(hyzero value centers the drawing on the page. +.PP +\fBnslimit=\fIf\fR or \fBmclimit=\fIf\fR adjusts the bound on the +number of network simplex or mincross iterations by the given ratio. +For example, \fBmclimit=2.0\fP runs twice as long. +.PP +\fBlayers="\fIid:id:id:id\fR" is a sequence of layer identifiers for +overlay diagrams. The PostScript array variable \fIlayercolorseq\fR +sets the assignment of colors to layers. The least index is 1 and +each element must be a 3\(hyelement array to be interpreted as a color coordinate. +.PP +\fBcolor=\fIcolorvalue\fR sets foreground color (\fBbgcolor\fP for background). +.PP +\fBhref=\fI"url"\fR the default url for image map files; in PostScript files, +the base URL for all relative URLs, as recognized by Acrobat Distiller +3.0 and up. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBstylesheet=\fI"file.css"\fR includes a reference to a stylesheet +in \-Tsvg and \-Tsvgz outputs. Ignored by other formats. + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBstart=\fIval\fR. Requests random initial placement and seeds +the random number generator. If \fIval\fP is not an integer, +the process ID or current time is used as the seed. +.PP +\fBepsilon=\fIn\fR. Sets the cutoff for the solver. +The default is 0.1. +.PP +\fBsplines=\fIboolean\fR. Setting this to \fItrue\fR causes edges to be +drawn as splines if nodes don't overlap. The default is \fIfalse\fR. + +.PP +\fB(twopi\(hyspecific attributes)\fR +.br +\fBroot=\fIctr\fR. This specifies the node to be used as the center of +the layout. If not specified, \fItwopi\fP will randomly pick one of the +nodes that are furthest from a leaf node, where a leaf node is a node +of degree 1. If no leaf nodes exists, an arbitrary node is picked as center. +.PP +\fBranksep=\fIval\fR. Specifies the radial distance in inches between +the sequence of rings. The default is 0.75. +.PP +\fBoverlap=\fImode\fR. This specifies what \fItwopi\fP should do if +any nodes overlap. If mode is \fI"false"\fP, the program uses Voronoi +diagrams to adjust the nodes to eliminate overlaps. If mode is \fI"scale"\fP, +the layout is uniformly scaled up, preserving node sizes, until nodes no +longer overlap. The latter technique removes overlaps while preserving +symmetry and structure, while the former removes overlaps more compactly +but destroys symmetries. +If mode is \fI"true"\fP (the default), no repositioning is done. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fItwopi\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fInodename\fR. Specifies the name of a node occurring in the +root block. If the graph is disconnected, the \fBroot\fP node attribute +can be used to specify additional root blocks. +.PP +\fBmindist=\fIvalue\fR. Sets the minimum separation between all nodes. If not +specified then \fIcirco\fP uses a default value of 1.0. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fIcirco\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBK=\fIval\fR. Sets the default ideal node separation +in the layout. +.PP +\fBmaxiter=\fIval\fR. Sets the maximum number of iterations used to +layout the graph. +.PP +\fBstart=\fIval\fR. Adjusts the random initial placement of nodes +with no specified position. If \fIval\fP is is an integer, +it is used as the seed for the random number generator. +If \fIval\fP is not an integer, a random system\(hygenerated integer, +such as the process ID or current time, is used as the seed. +.PP +\fBsplines=\fIval\fR. If \fIval\fR is "true", edges are drawn +as splines to avoid nodes. By default, edges are draw as line segments. +.PP + +.SH "NODE ATTRIBUTES" +.PP +\fBheight=\fId\fR or \fBwidth=\fId\fR sets minimum height or width. +Adding \fBfixedsize=true\fP forces these to be the actual size +(text labels are ignored). +.PP +\fBshape=record polygon epsf \fIbuiltin_polygon\fR +.br +\fIbuiltin_polygon\fR is one of: \fBplaintext ellipse oval circle egg +triangle box diamond trapezium parallelogram house hexagon octagon +note tab box3d component.\fR +(Polygons are defined or modified by the following node attributes: +\fBregular\fR, \fBperipheries\fR, \fBsides\fR, \fBorientation\fR, +\fBdistortion\fR and \fBskew\fR.) \fBepsf\fR uses the node's +\fBshapefile\fR attribute as the path name of an external +EPSF file to be automatically loaded for the node shape. +.PP +\fBlabel=\fItext\fR where \fItext\fP may include escaped newlines +\\\|n, \\\|l, or \\\|r for center, left, and right justified lines. +The string '\\N' value will be replaced by the node name. +Record labels may contain recursive box lists delimited by { | }. +Port identifiers in labels are set off by angle brackets < >. +In the graph file, use colon (such as, \fBnode0:port28\fR). +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBcolor=\fIcolorvalue\fR sets the outline color, and the default fill color +if style=filled and \fBfillcolor\fR is not specified. +.PP +\fBfillcolor=\fIcolorvalue\fR sets the fill color +when style=filled. If not specified, the fillcolor when style=filled defaults +to be the same as the outline color. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +A \fIcolorvalue\fP may be "\fIh,s,v\fB"\fR (hue, saturation, brightness) +floating point numbers between 0 and 1, or an X11 color name such as +\fBwhite black red green blue yellow magenta cyan\fR or \fBburlywood\fR, +or a "\fI#rrggbb" (red, green, blue, 2 hex characters each) value. +.PP +\fBstyle=filled solid dashed dotted bold invis\fP or any Postscript code. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the node's active layers. +The empty string means no layers (invisible). +.PP +The following attributes apply only to polygon shape nodes: +.PP +\fBregular=\fIn\fR if \fIn\fR is non\(hyzero then the polygon is made +regular, i.e. symmetric about the x and y axis, otherwise the +polygon takes on the aspect ratio of the label. +\fIbuiltin_polygons\fR that are not already regular are made regular +by this attribute. +\fIbuiltin_polygons\fR that are already regular are not affected (i.e. +they cannot be made asymmetric). +.PP +\fBperipheries=\fIn\fR sets the number of periphery lines drawn around +the polygon. This value supersedes the number of periphery lines +of \fIbuiltin_polygons\fR. +.PP +\fBsides=\fIn\fR sets the number of sides to the polygon. \fIn\fR<3 +results in an ellipse. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBorientation=\fIf\fR sets the orientation of the first apex of the +polygon counterclockwise from the vertical, in degrees. +\fIf\fR may be a floating point number. +The orientation of labels is not affected by this attribute. +This attribute is added to the initial orientation of \fIbuiltin_polygons.\fR +.PP +\fBdistortion=\fIf\fR sets the amount of broadening of the top and +narrowing of the bottom of the polygon (relative to its orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBskew=\fIf\fR sets the amount of right\(hydisplacement of the top and +left\(hydisplacement of the bottom of the polygon (relative to its +orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. +The target string is used to determine which window of the browser is used +for the URL. Setting it to "_graphviz" will open a new window if it doesn't +already exist, or reuse it if it does. +If the target string is empty, the default, +then no target attribute is included in the output. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. The tooltip string defaults to be the +same as the label string, but this attribute permits nodes without +labels to still have tooltips thus permitting denser graphs. +The substring '\\N' is substituted in the same manner as +for the node label attribute. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fItrue/false\fR. This specifies that the block containing the given +node be treated as the root of the spanning tree in the layout. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBpin=\fIval\fR. If \fIval\fR is "true", the node will remain at +its initial position. + +.SH "EDGE ATTRIBUTES" +\fBminlen=\fIn\fR where \fIn\fP is an integer factor that applies +to the edge length (ranks for normal edges, or minimum node separation +for flat edges). +.PP +\fBweight=\fIn\fR where \fIn\fP is the integer cost of the edge. +Values greater than 1 tend to shorten the edge. Weight 0 flat +edges are ignored for ordering nodes. +.PP +\fBlabel=\fItext\fR where \fItext\fR may include escaped newlines +\\\|n, \\\|l, or \\\|r for centered, left, or right justified lines. +If the substring '\\T' is found in a label it will be replaced by the tail_node name. +If the substring '\\H' is found in a label it will be replaced by the head_node name. +If the substring '\\E' value is found in a label it will be replaced by: tail_node_name\->head_node_name +or by: tail_node_name\-\-head_node_name for undirected graphs. +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +\fBstyle=solid dashed dotted bold invis\fP +.PP +\fBcolor=\fIcolorvalue\fR sets the line color for edges. +.PP +\fBcolor=\fIcolorvaluelist\fR a ':' separated list of \fIcolorvalue\fR creates +parallel edges, one edge for each color. +.PP +\fBdir=forward back both none\fP controls arrow direction. +.PP +\fBtailclip,headclip=false\fP disables endpoint shape clipping. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edges have a URL. +If the target string is empty, the default, +then no target attribute is included in the output. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when edges have a URL. The tooltip string defaults to be the +same as the edge label string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBarrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, +tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow\fP. +.PP +\fBarrowsize\fP (norm_length=10,norm_width=5, +inv_length=6,inv_width=7,dot_radius=2) +.PP +\fBheadlabel,taillabel=string\fP for port labels. +\fBlabelfontcolor\fP,\fBlabelfontname\fP,\fBlabelfontsize\fP +for head and tail labels. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadhref=\fI"url"\fR sets the url for the head port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadURL=\fI"url"\fR ("headURL" is a synonym for "headhref".) +.PP +\fBheadtarget=\fI"headtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge heads have a URL. +The headtarget string is used to determine which window of the browser is used +for the URL. If the headtarget string is empty, the default, +then headtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when head ports have a URL. The tooltip string defaults to be the +same as the headlabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailhref=\fI"url"\fR sets the url for the tail port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailURL=\fI"url"\fR ("tailURL" is a synonym for "tailhref".) +.PP +\fBtailtarget=\fI"tailtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge tails have a URL. +The tailtarget string is used to determine which window of the browser is used +for the URL. If the tailtarget string is empty, the default, +then tailtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when tail ports have a URL. The tooltip string defaults to be the +same as the taillabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBlabeldistance\fP and \fPport_label_distance\fP set distance; also +\fBlabelangle\fP (in degrees CCW) +.PP +\fBdecorate\fP draws line from edge to label. +.PP +\fBsamehead,sametail\fP aim edges having the same value to the +same port, using the average landing point. +.PP +\fBconstraint=false\fP causes an edge to be ignored for rank assignment. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the edgess active layers. +The empty string means no layers (invisible). + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBw=\fIf\fR sets the weight (spring constant) of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.PP +\fBlen=\fIf\fR sets the optimal length of an edge. +The default is 1.0. +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBweight=\fIf\fR sets the weight of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.SH "COMMAND LINE OPTIONS" +\fB\-G\fP sets a default graph attribute. +.br +\fB\-N\fP sets a default node attribute. +.br +\fB\-E\fP sets a default edge attribute. +Example: \fB\-Gsize="7,8" \-Nshape=box \-Efontsize=8\fR +.PP +\fB\-l\fIfile\fR loads custom PostScript library files. +Usually these define custom shapes or styles. +If \fB\-l\fP is given by itself, the standard library is omitted. +.PP +\fB\-T\fIlang\fR sets the output language as described above. + +.PP +\fB\-n\fR[\fB1\fR|\fB2\fR] (no\(hyop) +If set, neato assumes nodes have already been positioned and all +nodes have a pos attribute giving the positions. +It then performs an optional adjustment to remove node\(hynode overlap, +depending on the value of the overlap attribute, +computes the edge layouts, depending on the value of the \fBsplines\fR attribute, +and emits the graph in the appropriate format. +If num is supplied, the following actions occur: +.nf + num = 1 +.fi +Equivalent to \-n. +.nf + num > 1 +.fi +Use node positions as specified, +with no adjustment to remove node\(hynode overlaps, +and use any edge layouts already specified by the pos attribute. +neato computes an edge layout for any edge that does not have a pos attribute. +As usual, edge layout is guided by the \fBsplines\fR attribute. +.PP +\fB\-v\fP (verbose) prints delta energy every 100th iteration. +.PP +\fB\-V\fP (version) prints version information and exits. +.PP +\fB\-?\fP prints the usage and exits. +.SH "EXAMPLES" +.nf +digraph test123 { + a \-> b \-> c; + a \-> {x y}; + b [shape=box]; + c [label="hello\\\|nworld",color=blue,fontsize=24, + fontname="Palatino\-Italic",fontcolor=red,style=filled]; + a \-> z [label="hi", weight=100]; + x \-> z [label="multi\-line\\\|nlabel"]; + edge [style=dashed,color=red]; + b \-> x; + {rank=same; b x} +} +.fi +.PP +.nf +graph test123 { + a \-\- b \-\- c; + a \-\- {x y}; + x \-\- c [w=10.0]; + x \-\- y [w=5.0,len=3]; +} +.fi +.SH "CAVEATS" +Edge splines can overlap unintentionally. +.PP +Flat edge labels are slightly broken. +Intercluster edge labels are totally broken. +.PP +Because unconstrained optimization is employed, node boxes can +possibly overlap or touch unrelated edges. All existing +spring embedders seem to have this limitation. +.PP +Apparently reasonable attempts to pin nodes or adjust edge lengths +and weights can cause instability. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.br +John C. Ellson +.PP +The bitmap driver (PNG, GIF etc) is by Thomas Boutell, +.PP +The Truetype font renderer is from +the Freetype Project (David Turner, Robert Wilhelm, and Werner Lemberg) +(who can be contacted at freetype\-devel@lists.lrz\-muenchen.de). +.SH "SEE ALSO" +This man page contains only a small amount of the information related +to the Graphviz layout programs. The most complete information can be +found at http://www.graphviz.org/Documentation.php, especially in the +on\(hyline reference pages. Most of these documents are also available in the +\fIdoc\fP and \fIdoc/info\fP subtrees in the source and binary distributions. +.PP +dotty(1) +.br +tcldot(n) +.br +xcolors(1) +.br +libgraph(3) +.PP +E. R. Gansner, S. C. North, K. P. Vo, "DAG \(hy A Program to Draw Directed Graphs", Software \(hy Practice and Experience 17(1), 1988, pp. 1047\(hy1062. +.br +E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp. 214\(hy230. +.br +S. North and E. Koutsofios, "Applications of graph visualization", +Graphics Interface 94, pp. 234\(hy245. +.br +E. Koutsofios and S. C. North, "Drawing Graphs with dot," +Available on research.att.com in dist/drawdag/dotguide.ps.Z. +.br +S. C. North, "NEATO User's Manual". +Available on research.att.com in dist/drawdag/neatodoc.ps.Z. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/nop.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/nop.1 new file mode 100644 index 0000000..288974c --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/nop.1 @@ -0,0 +1,31 @@ +.TH NOP 1 "21 March 2001" +.SH NAME +nop \- pretty-print graph file +.SH SYNOPSIS +.B nop +[ +.B \-p? +] +[ +.I files +] +.SH DESCRIPTION +.B nop +reads a stream of graphs and prints each in pretty-printed (canonical) format +on stdout. If no +.I files +are given, it reads from stdin. +.SH OPTIONS +The following options are supported: +.TP +.B \-p +Produce no output - just check the input for valid DOT. +.TP +.B \-? +Print usage information. +.SH "EXIT STATUS" +If any errors occurred while processing any input, such as a file +not found or a file containing illegal DOT, a non-zero exit value +is returned. Otherwise, zero is returned. +.SH "SEE ALSO" +wc(1), acyclic(1), gvpr(1), gvcolor(1), ccomps(1), sccmap(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/prune.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/prune.1 new file mode 100644 index 0000000..d69caf6 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/prune.1 @@ -0,0 +1,155 @@ +.\" Copyright (c) 2002 Marcus Harnisch +.\" +.\" This is free documenation. It is provided to you without any +.\" warranty that it is useful or that you can understand it. +.\" +.\" You are granted the right to use and redistribute the source code +.\" or parts of it (even single words and letters), provided that the +.\" copyright notice and the license terms will not be removed. +.\" +.TH prune 1 + +.SH NAME +prune \- Prune directed graphs +.SH SYNOPSIS +.B prune +[ +.BI \-n " node" +] +[ +.BI \-N " attrspec" +] +[ +.I files ... +] +.SH DESCRIPTION +.B prune +reads directed graphs in the same format used by +.B dot(1) +and removes subgraphs rooted at nodes specified on the +command line via options. These nodes themselves will not be removed, +but can be given attributes so that they can be easily located by a +graph stream editor such as +.B gpr(1). +.B prune +correctly handles cycles, loops and multi\(hyedges. + +Both options can appear multiple times on the command line. All +subgraphs rooted at the respective nodes given will then be +processed. If a node does not exist, +.B prune +will skip it and print a warning message to stderr. +If multiple attributes are given, they will be applied to +all nodes that have been processed. +.B prune +writes the result to the stdout. +.SH OPTIONS +.TP +.BI \-n " name" +Specifies name of node to prune. +.TP +.BI \-N " attrspec" +Specifies attribute that will be set (or changed if it exists) for any +pruned node. +.I attrspec +is a string of the form +.IR attr "=" value. + +.SH EXAMPLES +An input graph +.I test.dot +of the form +.PP + digraph DG { +.br + A \-> B; +.br + A \-> C; +.br + +.br + B \-> D; +.br + B \-> E; +.br + } +.br + +, processed by the command +.PP + prune \-n B test.dot +.PP +would produce the following output (the actual code might be formatted +in a slightly different way). +.PP + digraph DG { +.br + A \-> B; +.br + A \-> C; +.br + } +.br + +Another input graph +.I test.dot +of the form +.PP + digraph DG { +.br + A \-> B; +.br + A \-> C; +.br + +.br + B \-> D; +.br + B \-> E; +.br + +.br + C \-> E; +.br + } +.br + +(note the additional edge from +.I C +to +.I E +), processed by the command +.PP + prune \-n B \-N color=red test.dot +.PP +results in +.PP + digraph DG { +.br + B [color=red]; +.br + A \-> B; +.br + A \-> C; +.br + C \-> E; +.br + } +.br + +Node +.I E +has not been removed since its second parent +.I C +is not being pruned. + +.SH "EXIT STATUS" +.B prune +returns 0 on successful completion. +It returns 1 if an error occurs. +.SH SEE ALSO +.BR dot (1), +.BR gpr (1) + +.SH AUTHOR +Marcus Harnisch diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/sccmap.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/sccmap.1 new file mode 100644 index 0000000..b8e8024 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/sccmap.1 @@ -0,0 +1,55 @@ +.TH SCCMAP 1 "21 March 2001" \*(eX +.SH NAME +sccmap \- extract strongly connected components of directed graphs +.SH SYNOPSIS +\fBsccmap\fR +[\fB\-dsv\fR] +[ +.I files +] +.SH DESCRIPTION +.I sccmap +decomposes digraphs into strongly connected components +and an auxiliary map of the relationship between components. +In this map, each component is collapsed into a node. +The resulting graphs are printed to standard out. +The number of nodes, edges and strongly connected components +are printed to standard error. +.B sccmap +is a way of partitioning large graphs into more manageable pieces. +.SH OPTIONS +The following options are supported: +.TP +.B \-d +Preserve degenerate components of only one node. +.TP +.B \-s +Do not print the resulting graphs. Only the statistics are +important. +.TP +.B \-v +Generate additional statistics. In particular, +.B sccmap +prints the number of nodes, edges, connected components, +and strongly connected components, followed by the fraction of +nodes in a non-trivial strongly connected components, +the maximum degree of the graph, and fraction of non-tree edges +in the graph. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in dot format. +If no +.I files +operand is specified, +the standard input will be used. +.SH "DIAGNOSTICS" +\fBsccmap\fP emits a warning if it encounters an undirected graph, +and ignores it. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.SH "SEE ALSO" +gc(1), dot(1), acyclic(1), gvpr(1), gvcolor(1), ccomps(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/tred.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/tred.1 new file mode 100644 index 0000000..e15c3c1 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/tred.1 @@ -0,0 +1,42 @@ +.TH TRED 1 "21 March 2001" +.SH NAME +tred \- transitive reduction filter for directed graphs +.SH SYNOPSIS +.B tred +[ +.I files +] +.SH DESCRIPTION +.B tred +computes the transitive reduction of directed graphs, +and prints the resulting graphs to standard output. +This removes edges implied by transitivity. +Nodes and subgraphs are not otherwise affected. +The ``meaning'' and validity of the reduced graphs +is application dependent. +.B tred +is particularly useful as a preprocessor to +.I dot +to reduce clutter in dense layouts. +.PP +Undirected graphs are silently ignored. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in dot format. +If no +.I files +operand is specified, +the standard input will be used. +.SH "BUGS" +Using bitmaps internally would substantially decrease running time. +.SH "DIAGNOSTICS" +If a graph has cycles, its transitive reduction is not uniquely defined. +In this case \fItred\fP emits a warning. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.SH "SEE ALSO" +gc(1), dot(1), acyclic(1), gvpr(1), gvcolor(1), ccomps(1), sccmap(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/twopi.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/twopi.1 new file mode 100644 index 0000000..6ef258f --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/twopi.1 @@ -0,0 +1,669 @@ +.TH DOT 1 "23 August 2004" \*(eX +.SH NAME +dot \- filter for drawing directed graphs +.br +neato \- filter for drawing undirected graphs +.br +twopi \- filter for radial layouts of graphs +.br +circo \- filter for circular layout of graphs +.br +fdp \- filter for drawing undirected graphs +.SH SYNOPSIS +\fBdot\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBneato\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-n\fR[\fB1\fR|\fB2\fR]] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBtwopi\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBcirco\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.br +\fBfdp\fR +[\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR] +[\fB\-T\fIlang\fR] +[\fB\-l \fIlibfile\fR] +[\fB\-o \fIoutfile\fR] +[\fB\-v\fR] +[\fB\-V\fR] +[files] +.SH DESCRIPTION +.I dot +draws directed graphs. It works well on DAGs and other graphs +that can be drawn as hierarchies. +It reads attributed graph files and writes drawings. +By default, the output format +.I dot +is the input file with layout coordinates appended. +.PP +.I neato +draws undirected graphs using ``spring'' models (see Kamada and Kawai, +Information Processing Letters 31:1, April 1989). Input files must be +formatted in the +.I dot +attributed graph language. +By default, the output of +.I neato +is the input graph with layout coordinates appended. +.PP +.I twopi +draws graphs using a radial layout (see G. Wills, +Symposium on Graph Drawing GD'97, September, 1997). +Basically, one node is chosen as the center and put at the origin. +The remaining nodes are placed on a sequence of concentric circles +centered about the origin, each a fixed radial distance from the +previous circle. +All nodes distance 1 from the center are placed on the first circle; +all nodes distance 1 from a node on the first circle are placed on +the second circle; and so forth. +.PP +.I circo +draws graphs using a circular layout (see +Six and Tollis, GD '99 and ALENEX '99, and +Kaufmann and Wiese, GD '02.) +The tool identifies biconnected components and draws the nodes of +the component on a circle. The block\(hycutpoint tree +is then laid out using a recursive radial algorithm. Edge +crossings within a circle are minimized by placing as many edges on +the circle's perimeter as possible. +In particular, if the component is outerplanar, the component will +have a planar layout. +.PP +If a node belongs to multiple non\(hytrivial biconnected components, +the layout puts the node in one of them. By default, this is the first +non\(hytrivial component found in the search from the root component. +.PP +.I fdp +draws undirected graphs using a ``spring'' model. It relies on a +force\(hydirected approach in the spirit of Fruchterman and Reingold +(cf. Software\(hyPractice & Experience 21(11), 1991, pp. 1129\(hy1164). +.SH OUTPUT FORMATS +Dot uses an extensible plugin mechanism for its output renderers, +so to see what output formats your installation of dot supports +you can use ``dot \-Txxx'' (where xxx is an unlikely format) +and check the warning message. +Also, The plugin mechanism supports multiple implementations +of the output formats. +To see what variants are available, use, for example: ``dot \-Tpng:'' +and to force a particular variant, use, for example: ``dot \-Tpng:gd'' +.P +Traditionally, dot supports the following: +\fB\-Tps\fP (PostScript), +\fB\-Tsvg\fP \fB\-Tsvgz\fP (Structured Vector Graphics), +\fB\-Tfig\fP (XFIG graphics), +\fB\-Tmif\fP (FrameMaker graphics), +\fB\-Thpgl\fP (HP pen plotters), and \fB\-Tpcl\fP (Laserjet printers), +\fB\-Tpng\fP \fB\-Tgif\fP (bitmap graphics), +\fB\-Tdia\fP (GTK+ based diagrams), +\fB\-Timap\fP (imagemap files for httpd servers for each node or edge +that has a non(hynull "href" attribute.), +\fB\-Tcmapx\fP (client\(hyside imagemap for use in html and xhtml). +Additional less common or more special\(hypurpose output formats +can be found at http://www.graphviz.org/cvs/doc/info/output.html.) +.SH GRAPH FILE LANGUAGE +Here is a synopsis of the graph file language, traditionally using the extension \fB.dot\fR, for graphs: +.PP +[\fBstrict\fR] (\fBgraph\fR|\fBdigraph\fR) \fIname\fP { \fIstatement\(hylist\fP }\fR +.br +Is the top level graph. If the graph is \fBstrict\fR then multiple edges are +not allowed between the same pairs of nodes. +If it is a directed graph, indicated by \fBdigraph\fR, +then the \fIedgeop\fR must be "\->". If it is an undirected \fBgraph\fR +then the \fIedgeop\fR must be "\-\-". +Statements may be: +.PP +\fIname\fB=\fIval\fB;\fR +.br +\fBnode [\fIname\fB=\fIval\fB];\fR +.br +\fBedge [\fIname\fB=\fIval\fB];\fR +.br +Set default graph, node, or edge attribute \fIname\fP to \fIval\fP. +Any subgraph, node, or edge appearing after this inherits the new +default attributes. +.PP +\fBn0 [\fIname0=val0,name1=val1,...\fB];\fR +Creates node \fBn0\fP (if it does not already exist) +and sets its attributes according to the optional list. +.PP +\fBn0 \fIedgeop\fR n1 \fIedgeop\fR \fI...\fB \fIedgeop\fR nn [\fIname0=val0,name1=val1,...\fB];\fR +.br +Creates edges between nodes \fBn0\fP, \fBn1\fP, ..., \fBnn\fP and sets +their attributes according to the optional list. +Creates nodes as necessary. +.PP +[\fBsubgraph \fIname\fB] { \fIstatement\(hylist \fB}\fR +.br +Creates a subgraph. Subgraphs may be used in place +of \fBn0\fP, ..., \fBnn\fP in the above statements to create edges. +[\fBsubgraph \fIname\fR] is optional; +if missing, the subgraph is assigned an internal name. +.PP +Comments may be /*C\(hylike*/ or //C++\(hylike. + +.PP +Attribute names and values are ordinary (C\(hystyle) strings. +The following sections describe attributes that control graph layout. + +.SH "GRAPH ATTRIBUTES" +.PP +\fBsize="\fIx,y\fP"\fR sets bounding box of drawing in inches. +.PP +\fBpage="\fIx,y\fP"\fR sets the PostScript pagination unit. +.PP +\fBratio=\fIf\fR sets the aspect ratio to \fIf\fP which may be +a floating point number, or one of the keywords \fBfill\fP, +\fBcompress\fP, or \fBauto\fP. +.PP +\fBmargin=\fIf\fR sets the page margin (included in the page size). +.PP +\fBnodesep=\fIf\fR sets the minimum separation between nodes. +.PP +\fBranksep=\fIf\fR sets the minimum separation between ranks. +.PP +\fBordering=out\fR constrains order of out\(hyedges in a subgraph +according to their file sequence. +.PP +\fBrankdir=LR|RL|BT\fR requests a left\(hyto\(hyright, right\(hyto\(hyleft, or bottom\(hyto\(hytop, drawing. +.PP +\fBpagedir=\fR[TBLR][TBLR] sets the major and minor order of pagination. +.PP +\fBrank=same\fR (or \fBmin\fP or \fBmax\fP) in a subgraph +constrains the rank assignment of its nodes. If a subgraph's +name has the prefix \fBcluster\fP, its nodes are drawn in +a distinct rectangle of the layout. Clusters may be nested. +.PP +\fBrotate=90\fR sets landscape mode. +(\fBorientation=land\fR is backward compatible but obsolete.) +.PP +\fBcenter=\fIn\fR a non\(hyzero value centers the drawing on the page. +.PP +\fBnslimit=\fIf\fR or \fBmclimit=\fIf\fR adjusts the bound on the +number of network simplex or mincross iterations by the given ratio. +For example, \fBmclimit=2.0\fP runs twice as long. +.PP +\fBlayers="\fIid:id:id:id\fR" is a sequence of layer identifiers for +overlay diagrams. The PostScript array variable \fIlayercolorseq\fR +sets the assignment of colors to layers. The least index is 1 and +each element must be a 3\(hyelement array to be interpreted as a color coordinate. +.PP +\fBcolor=\fIcolorvalue\fR sets foreground color (\fBbgcolor\fP for background). +.PP +\fBhref=\fI"url"\fR the default url for image map files; in PostScript files, +the base URL for all relative URLs, as recognized by Acrobat Distiller +3.0 and up. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBstylesheet=\fI"file.css"\fR includes a reference to a stylesheet +in \-Tsvg and \-Tsvgz outputs. Ignored by other formats. + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBstart=\fIval\fR. Requests random initial placement and seeds +the random number generator. If \fIval\fP is not an integer, +the process ID or current time is used as the seed. +.PP +\fBepsilon=\fIn\fR. Sets the cutoff for the solver. +The default is 0.1. +.PP +\fBsplines=\fIboolean\fR. Setting this to \fItrue\fR causes edges to be +drawn as splines if nodes don't overlap. The default is \fIfalse\fR. + +.PP +\fB(twopi\(hyspecific attributes)\fR +.br +\fBroot=\fIctr\fR. This specifies the node to be used as the center of +the layout. If not specified, \fItwopi\fP will randomly pick one of the +nodes that are furthest from a leaf node, where a leaf node is a node +of degree 1. If no leaf nodes exists, an arbitrary node is picked as center. +.PP +\fBranksep=\fIval\fR. Specifies the radial distance in inches between +the sequence of rings. The default is 0.75. +.PP +\fBoverlap=\fImode\fR. This specifies what \fItwopi\fP should do if +any nodes overlap. If mode is \fI"false"\fP, the program uses Voronoi +diagrams to adjust the nodes to eliminate overlaps. If mode is \fI"scale"\fP, +the layout is uniformly scaled up, preserving node sizes, until nodes no +longer overlap. The latter technique removes overlaps while preserving +symmetry and structure, while the former removes overlaps more compactly +but destroys symmetries. +If mode is \fI"true"\fP (the default), no repositioning is done. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fItwopi\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fInodename\fR. Specifies the name of a node occurring in the +root block. If the graph is disconnected, the \fBroot\fP node attribute +can be used to specify additional root blocks. +.PP +\fBmindist=\fIvalue\fR. Sets the minimum separation between all nodes. If not +specified then \fIcirco\fP uses a default value of 1.0. +.PP +\fBsplines=\fItrue/false\fR. If set to true, \fIcirco\fP will use the +graphviz path planning library to draw edges as splines avoiding nodes. +If the value is false, or some nodes overlap, +edges are drawn as straight line segments connecting nodes. +This is also the default style. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBK=\fIval\fR. Sets the default ideal node separation +in the layout. +.PP +\fBmaxiter=\fIval\fR. Sets the maximum number of iterations used to +layout the graph. +.PP +\fBstart=\fIval\fR. Adjusts the random initial placement of nodes +with no specified position. If \fIval\fP is is an integer, +it is used as the seed for the random number generator. +If \fIval\fP is not an integer, a random system\(hygenerated integer, +such as the process ID or current time, is used as the seed. +.PP +\fBsplines=\fIval\fR. If \fIval\fR is "true", edges are drawn +as splines to avoid nodes. By default, edges are draw as line segments. +.PP + +.SH "NODE ATTRIBUTES" +.PP +\fBheight=\fId\fR or \fBwidth=\fId\fR sets minimum height or width. +Adding \fBfixedsize=true\fP forces these to be the actual size +(text labels are ignored). +.PP +\fBshape=record polygon epsf \fIbuiltin_polygon\fR +.br +\fIbuiltin_polygon\fR is one of: \fBplaintext ellipse oval circle egg +triangle box diamond trapezium parallelogram house hexagon octagon +note tab box3d component.\fR +(Polygons are defined or modified by the following node attributes: +\fBregular\fR, \fBperipheries\fR, \fBsides\fR, \fBorientation\fR, +\fBdistortion\fR and \fBskew\fR.) \fBepsf\fR uses the node's +\fBshapefile\fR attribute as the path name of an external +EPSF file to be automatically loaded for the node shape. +.PP +\fBlabel=\fItext\fR where \fItext\fP may include escaped newlines +\\\|n, \\\|l, or \\\|r for center, left, and right justified lines. +The string '\\N' value will be replaced by the node name. +Record labels may contain recursive box lists delimited by { | }. +Port identifiers in labels are set off by angle brackets < >. +In the graph file, use colon (such as, \fBnode0:port28\fR). +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBcolor=\fIcolorvalue\fR sets the outline color, and the default fill color +if style=filled and \fBfillcolor\fR is not specified. +.PP +\fBfillcolor=\fIcolorvalue\fR sets the fill color +when style=filled. If not specified, the fillcolor when style=filled defaults +to be the same as the outline color. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +A \fIcolorvalue\fP may be "\fIh,s,v\fB"\fR (hue, saturation, brightness) +floating point numbers between 0 and 1, or an X11 color name such as +\fBwhite black red green blue yellow magenta cyan\fR or \fBburlywood\fR, +or a "\fI#rrggbb" (red, green, blue, 2 hex characters each) value. +.PP +\fBstyle=filled solid dashed dotted bold invis\fP or any Postscript code. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the node's active layers. +The empty string means no layers (invisible). +.PP +The following attributes apply only to polygon shape nodes: +.PP +\fBregular=\fIn\fR if \fIn\fR is non\(hyzero then the polygon is made +regular, i.e. symmetric about the x and y axis, otherwise the +polygon takes on the aspect ratio of the label. +\fIbuiltin_polygons\fR that are not already regular are made regular +by this attribute. +\fIbuiltin_polygons\fR that are already regular are not affected (i.e. +they cannot be made asymmetric). +.PP +\fBperipheries=\fIn\fR sets the number of periphery lines drawn around +the polygon. This value supersedes the number of periphery lines +of \fIbuiltin_polygons\fR. +.PP +\fBsides=\fIn\fR sets the number of sides to the polygon. \fIn\fR<3 +results in an ellipse. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBorientation=\fIf\fR sets the orientation of the first apex of the +polygon counterclockwise from the vertical, in degrees. +\fIf\fR may be a floating point number. +The orientation of labels is not affected by this attribute. +This attribute is added to the initial orientation of \fIbuiltin_polygons.\fR +.PP +\fBdistortion=\fIf\fR sets the amount of broadening of the top and +narrowing of the bottom of the polygon (relative to its orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBskew=\fIf\fR sets the amount of right\(hydisplacement of the top and +left\(hydisplacement of the bottom of the polygon (relative to its +orientation). +Floating point values between \-1 and +1 are suggested. +This attribute is ignored by \fIbuiltin_polygons\fR. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. +The target string is used to determine which window of the browser is used +for the URL. Setting it to "_graphviz" will open a new window if it doesn't +already exist, or reuse it if it does. +If the target string is empty, the default, +then no target attribute is included in the output. +The substring '\\N' is substituted in the same manner as +for the node label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +and SVG, effective when nodes have a URL. The tooltip string defaults to be the +same as the label string, but this attribute permits nodes without +labels to still have tooltips thus permitting denser graphs. +The substring '\\N' is substituted in the same manner as +for the node label attribute. + +.PP +\fB(circo\(hyspecific attributes)\fR +.br +\fBroot=\fItrue/false\fR. This specifies that the block containing the given +node be treated as the root of the spanning tree in the layout. + +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBpin=\fIval\fR. If \fIval\fR is "true", the node will remain at +its initial position. + +.SH "EDGE ATTRIBUTES" +\fBminlen=\fIn\fR where \fIn\fP is an integer factor that applies +to the edge length (ranks for normal edges, or minimum node separation +for flat edges). +.PP +\fBweight=\fIn\fR where \fIn\fP is the integer cost of the edge. +Values greater than 1 tend to shorten the edge. Weight 0 flat +edges are ignored for ordering nodes. +.PP +\fBlabel=\fItext\fR where \fItext\fR may include escaped newlines +\\\|n, \\\|l, or \\\|r for centered, left, or right justified lines. +If the substring '\\T' is found in a label it will be replaced by the tail_node name. +If the substring '\\H' is found in a label it will be replaced by the head_node name. +If the substring '\\E' value is found in a label it will be replaced by: tail_node_name\->head_node_name +or by: tail_node_name\-\-head_node_name for undirected graphs. +.PP +\fBfontsize=\fIn\fR sets the label type size to \fIn\fP points. +.PP +\fBfontname=\fIname\fR sets the label font family name. +.PP +\fBfontcolor=\fIcolorvalue\fR sets the label text color. +.PP +\fBstyle=solid dashed dotted bold invis\fP +.PP +\fBcolor=\fIcolorvalue\fR sets the line color for edges. +.PP +\fBcolor=\fIcolorvaluelist\fR a ':' separated list of \fIcolorvalue\fR creates +parallel edges, one edge for each color. +.PP +\fBdir=forward back both none\fP controls arrow direction. +.PP +\fBtailclip,headclip=false\fP disables endpoint shape clipping. +.PP +\fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG +files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBURL=\fI"url"\fR ("URL" is a synonym for "href".) +.PP +\fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edges have a URL. +If the target string is empty, the default, +then no target attribute is included in the output. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when edges have a URL. The tooltip string defaults to be the +same as the edge label string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBarrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, +tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow\fP. +.PP +\fBarrowsize\fP (norm_length=10,norm_width=5, +inv_length=6,inv_width=7,dot_radius=2) +.PP +\fBheadlabel,taillabel=string\fP for port labels. +\fBlabelfontcolor\fP,\fBlabelfontname\fP,\fBlabelfontsize\fP +for head and tail labels. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadhref=\fI"url"\fR sets the url for the head port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadURL=\fI"url"\fR ("headURL" is a synonym for "headhref".) +.PP +\fBheadtarget=\fI"headtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge heads have a URL. +The headtarget string is used to determine which window of the browser is used +for the URL. If the headtarget string is empty, the default, +then headtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBheadtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when head ports have a URL. The tooltip string defaults to be the +same as the headlabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailhref=\fI"url"\fR sets the url for the tail port in imagemap, PostScript and SVG files. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailURL=\fI"url"\fR ("tailURL" is a synonym for "tailhref".) +.PP +\fBtailtarget=\fI"tailtarget"\fR is a target string for client\(hyside imagemaps +and SVG, effective when edge tails have a URL. +The tailtarget string is used to determine which window of the browser is used +for the URL. If the tailtarget string is empty, the default, +then tailtarget defaults to the same value as target for the edge. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBtailtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps +effective when tail ports have a URL. The tooltip string defaults to be the +same as the taillabel string. +The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as +for the edge label attribute. +.PP +\fBlabeldistance\fP and \fPport_label_distance\fP set distance; also +\fBlabelangle\fP (in degrees CCW) +.PP +\fBdecorate\fP draws line from edge to label. +.PP +\fBsamehead,sametail\fP aim edges having the same value to the +same port, using the average landing point. +.PP +\fBconstraint=false\fP causes an edge to be ignored for rank assignment. +.PP +\fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the edgess active layers. +The empty string means no layers (invisible). + +.PP +\fB(neato\(hyspecific attributes)\fR +.br +\fBw=\fIf\fR sets the weight (spring constant) of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.PP +\fBlen=\fIf\fR sets the optimal length of an edge. +The default is 1.0. +.PP +\fB(fdp\(hyspecific attributes)\fR +.br +\fBweight=\fIf\fR sets the weight of an edge +to the given floating point value. The default is 1.0; +greater values make the edge tend more toward its optimal length. +.SH "COMMAND LINE OPTIONS" +\fB\-G\fP sets a default graph attribute. +.br +\fB\-N\fP sets a default node attribute. +.br +\fB\-E\fP sets a default edge attribute. +Example: \fB\-Gsize="7,8" \-Nshape=box \-Efontsize=8\fR +.PP +\fB\-l\fIfile\fR loads custom PostScript library files. +Usually these define custom shapes or styles. +If \fB\-l\fP is given by itself, the standard library is omitted. +.PP +\fB\-T\fIlang\fR sets the output language as described above. + +.PP +\fB\-n\fR[\fB1\fR|\fB2\fR] (no\(hyop) +If set, neato assumes nodes have already been positioned and all +nodes have a pos attribute giving the positions. +It then performs an optional adjustment to remove node\(hynode overlap, +depending on the value of the overlap attribute, +computes the edge layouts, depending on the value of the \fBsplines\fR attribute, +and emits the graph in the appropriate format. +If num is supplied, the following actions occur: +.nf + num = 1 +.fi +Equivalent to \-n. +.nf + num > 1 +.fi +Use node positions as specified, +with no adjustment to remove node\(hynode overlaps, +and use any edge layouts already specified by the pos attribute. +neato computes an edge layout for any edge that does not have a pos attribute. +As usual, edge layout is guided by the \fBsplines\fR attribute. +.PP +\fB\-v\fP (verbose) prints delta energy every 100th iteration. +.PP +\fB\-V\fP (version) prints version information and exits. +.PP +\fB\-?\fP prints the usage and exits. +.SH "EXAMPLES" +.nf +digraph test123 { + a \-> b \-> c; + a \-> {x y}; + b [shape=box]; + c [label="hello\\\|nworld",color=blue,fontsize=24, + fontname="Palatino\-Italic",fontcolor=red,style=filled]; + a \-> z [label="hi", weight=100]; + x \-> z [label="multi\-line\\\|nlabel"]; + edge [style=dashed,color=red]; + b \-> x; + {rank=same; b x} +} +.fi +.PP +.nf +graph test123 { + a \-\- b \-\- c; + a \-\- {x y}; + x \-\- c [w=10.0]; + x \-\- y [w=5.0,len=3]; +} +.fi +.SH "CAVEATS" +Edge splines can overlap unintentionally. +.PP +Flat edge labels are slightly broken. +Intercluster edge labels are totally broken. +.PP +Because unconstrained optimization is employed, node boxes can +possibly overlap or touch unrelated edges. All existing +spring embedders seem to have this limitation. +.PP +Apparently reasonable attempts to pin nodes or adjust edge lengths +and weights can cause instability. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.br +John C. Ellson +.PP +The bitmap driver (PNG, GIF etc) is by Thomas Boutell, +.PP +The Truetype font renderer is from +the Freetype Project (David Turner, Robert Wilhelm, and Werner Lemberg) +(who can be contacted at freetype\-devel@lists.lrz\-muenchen.de). +.SH "SEE ALSO" +This man page contains only a small amount of the information related +to the Graphviz layout programs. The most complete information can be +found at http://www.graphviz.org/Documentation.php, especially in the +on\(hyline reference pages. Most of these documents are also available in the +\fIdoc\fP and \fIdoc/info\fP subtrees in the source and binary distributions. +.PP +dotty(1) +.br +tcldot(n) +.br +xcolors(1) +.br +libgraph(3) +.PP +E. R. Gansner, S. C. North, K. P. Vo, "DAG \(hy A Program to Draw Directed Graphs", Software \(hy Practice and Experience 17(1), 1988, pp. 1047\(hy1062. +.br +E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp. 214\(hy230. +.br +S. North and E. Koutsofios, "Applications of graph visualization", +Graphics Interface 94, pp. 234\(hy245. +.br +E. Koutsofios and S. C. North, "Drawing Graphs with dot," +Available on research.att.com in dist/drawdag/dotguide.ps.Z. +.br +S. C. North, "NEATO User's Manual". +Available on research.att.com in dist/drawdag/neatodoc.ps.Z. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/unflatten.1 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/unflatten.1 new file mode 100644 index 0000000..7857cf0 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man1/unflatten.1 @@ -0,0 +1,58 @@ +.TH UNFLATTEN 1 "21 January 2001" +.SH NAME +unflatten \- adjust directed graphs to improve layout aspect ratio +.SH SYNOPSIS +.B unflatten +[\fB\-f\fR] +[\fB\-l\fIlen\fR] +[\fB\-c\fIlen\fR +] [ +.B \-o +.I outfile +] +[ files ] +.SH DESCRIPTION +.B unflatten +is a preprocessor to +.B dot +that is +used to improve the aspect ratio of graphs having many leaves +or disconnected nodes. +The usual layout for such a graph is generally very wide or tall. +.B unflatten +inserts invisible edges or adjusts the \fBminlen\fP on edges +to improve layout compaction. +.SH OPTIONS +The following options are supported: +.TP +.BI \-l " len" +The minimum length of leaf edges is staggered +between 1 and \fIlen\fP (a small integer). +.TP +.B \-f +Enables the staggering of the \fB-l\fP option to fanout nodes whose +indegree and outdegree are both 1. This helps with structures such +as \fIa -> {w x y z} -> b\fP. +This option only works if the \fB-l\fP flag is set. +.TP +.BI \-c " len" +Form disconnected nodes into chains of up to \fIlen\fP nodes. +.TP +.BI \-o " outfile" +causes the output to be written to the specified file; by default, +output is written to \fBstdout\fP. +.SH OPERANDS +The following operand is supported: +.TP 8 +.I files +Names of files containing 1 or more graphs in dot format. +If no +.I files +operand is specified, +the standard input will be used. +.SH AUTHORS +Stephen C. North +.br +Emden R. Gansner +.SH "SEE ALSO" +gc(1), dot(1), acyclic(1), gvpr(1), gvcolor(1), ccomps(1), tred(1), libgraph(3) diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cdt.3 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cdt.3 new file mode 100644 index 0000000..01cb2e0 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cdt.3 @@ -0,0 +1,483 @@ +.TH LIBCDT 3 +.SH NAME +\fBCdt\fR \- container data types +.SH SYNOPSIS +.de Tp +.fl +.ne 2 +.TP +.. +.de Ss +.fl +.ne 2 +.SS "\\$1" +.. +.de Cs +.nf +.ft 5 +.. +.de Ce +.ft 1 +.fi +.. +.ta 1.0i 2.0i 3.0i 4.0i 5.0i +.Cs +#include +.Ce +.Ss "DICTIONARY TYPES" +.Cs +Void_t*; +Dt_t; +Dtdisc_t; +Dtmethod_t; +Dtlink_t; +Dtstat_t; +.Ce +.Ss "DICTIONARY CONTROL" +.Cs +Dt_t* dtopen(Dtdisc_t* disc, Dtmethod_t* meth); +int dtclose(Dt_t* dt); +void dtclear(dt); +Dtmethod_t* dtmethod(Dt_t* dt, Dtmethod_t* meth); +Dtdisc_t* dtdisc(Dt_t* dt, Dtdisc_t* disc, int type); +Dt_t* dtview(Dt_t* dt, Dt_t* view); +.Ce +.Ss "STORAGE METHODS" +.Cs +Dtmethod_t* Dtset; +Dtmethod_t* Dtbag; +Dtmethod_t* Dtoset; +Dtmethod_t* Dtobag; +Dtmethod_t* Dtlist; +Dtmethod_t* Dtstack; +Dtmethod_t* Dtqueue; +.Ce +.Ss "DISCIPLINE" +.Cs +typedef Void_t* (*Dtmake_f)(Dt_t*, Void_t*, Dtdisc_t*); +typedef void (*Dtfree_f)(Dt_t*, Void_t*, Dtdisc_t*); +typedef int (*Dtcompar_f)(Dt_t*, Void_t*, Void_t*, Dtdisc_t*); +typedef unsigned int (*Dthash_f)(Dt_t*, Void_t*, Dtdisc_t*); +typedef Void_t* (*Dtmemory_f)(Dt_t*, Void_t*, size_t, Dtdisc_t*); +typedef int (*Dtevent_f)(Dt_t*, int, Void_t*, Dtdisc_t*); +.Ce +.Ss "OBJECT OPERATIONS" +.Cs +Void_t* dtinsert(Dt_t* dt, Void_t* obj); +Void_t* dtdelete(Dt_t* dt, Void_t* obj); +Void_t* dtsearch(Dt_t* dt, Void_t* obj); +Void_t* dtmatch(Dt_t* dt, Void_t* key); +Void_t* dtfirst(Dt_t* dt); +Void_t* dtnext(Dt_t* dt, Void_t* obj); +Void_t* dtlast(Dt_t* dt); +Void_t* dtprev(Dt_t* dt, Void_t* obj); +Void_t* dtfinger(Dt_t* dt); +Void_t* dtrenew(Dt_t* dt, Void_t* obj); +int dtwalk(Dt_t* dt, int (*userf)(Dt_t*, Void_t*, Void_t*), Void_t*); +Dtlink_t* dtflatten(Dt_t* dt); +Dtlink_t* dtlink(Dt_t*, Dtlink_t* link); +Void_t* dtobj(Dt_t* dt, Dtlink_t* link); +Dtlink_t* dtextract(Dt_t* dt); +int dtrestore(Dt_t* dt, Dtlink_t* link); +.Ce +.Ss "DICTIONARY STATUS" +.Cs +Dt_t* dtvnext(Dt_t* dt); +int dtvcount(Dt_t* dt); +Dt_t* dtvhere(Dt_t* dt); +int dtsize(Dt_t* dt); +int dtstat(Dt_t* dt, Dtstat_t*, int all); +.Ce +.Ss "HASH FUNCTIONS" +.Cs +unsigned int dtstrhash(unsigned int h, char* str, int n); +unsigned int dtcharhash(unsigned int h, unsigned char c); +.Ce +.SH DESCRIPTION +.PP +\fICdt\fP manages run-time dictionaries using standard container data types: +unordered set/multiset, ordered set/multiset, list, stack, and queue. +.PP +.Ss "DICTIONARY TYPES" +.PP +.Ss " Void_t*" +This type is used to pass objects between \fICdt\fP and application code. +\f5Void_t\fP is defined as \f5void\fP for ANSI-C and C++ +and \f5char\fP for other compilation environments. +.PP +.Ss " Dt_t" +This is the type of a dictionary handle. +.PP +.Ss " Dtdisc_t" +This defines the type of a discipline structure which describes +object lay-out and manipulation functions. +.PP +.Ss " Dtmethod_t" +This defines the type of a container method. +.PP +.Ss " Dtlink_t" +This is the type of a dictionary object holder (see \f5dtdisc()\fP.) +.PP +.Ss " Dtstat_t" +This is the type of a structure to return dictionary statistics (see \f5dtstat()\fP.) +.PP +.Ss "DICTIONARY CONTROL" +.PP +.Ss " Dt_t* dtopen(Dtdisc_t* disc, Dtmethod_t* meth)" +This creates a new dictionary. +\f5disc\fP is a discipline structure to describe object format. +\f5meth\fP specifies a manipulation method. +\f5dtopen()\fP returns the new dictionary or \f5NULL\fP on error. +.PP +.Ss " int dtclose(Dt_t* dt)" +This deletes \f5dt\fP and its objects. +Note that \f5dtclose()\fP fails if \f5dt\fP is being viewed by +some other dictionaries (see \f5dtview()\fP). +\f5dtclose()\fP returns \f50\fP on success and \f5-1\fP on error. +.PP +.Ss " void dtclear(Dt_t* dt)" +This deletes all objects in \f5dt\fP without closing \f5dt\fP. +.PP +.Ss " Dtmethod_t dtmethod(Dt_t* dt, Dtmethod_t* meth)" +If \f5meth\fP is \f5NULL\fP, \f5dtmethod()\fP returns the current method. +Otherwise, it changes the storage method of \f5dt\fP to \f5meth\fP. +Object order remains the same during a +method switch among \f5Dtlist\fP, \f5Dtstack\fP and \f5Dtqueue\fP. +Switching to and from \f5Dtset/Dtbag\fP and \f5Dtoset/Dtobag\fP may cause +objects to be rehashed, reordered, or removed as the case requires. +\f5dtmethod()\fP returns the previous method or \f5NULL\fP on error. +.PP +.Ss " Dtdisc_t* dtdisc(Dt_t* dt, Dtdisc_t* disc, int type)" +If \f5disc\fP is \f5NULL\fP, \f5dtdisc()\fP returns the current discipline. +Otherwise, it changes the discipline of \f5dt\fP to \f5disc\fP. +Objects may be rehashed, reordered, or removed as appropriate. +\f5type\fP can be any bit combination of \f5DT_SAMECMP\fP and \f5DT_SAMEHASH\fP. +\f5DT_SAMECMP\fP means that objects will compare exactly the same as before +thus obviating the need for reordering or removing new duplicates. +\f5DT_SAMEHASH\fP means that hash values of objects remain the same +thus obviating the need to rehash. +\f5dtdisc()\fP returns the previous discipline on success +and \f5NULL\fP on error. +.PP +.Ss " Dt_t* dtview(Dt_t* dt, Dt_t* view)" +A viewpath allows a search or walk starting from a dictionary to continue to another. +\f5dtview()\fP first terminates any current view from \f5dt\fP to another dictionary. +Then, if \f5view\fP is \f5NULL\fP, \f5dtview\fP returns the terminated view dictionary. +If \f5view\fP is not \f5NULL\fP, a viewpath from \f5dt\fP to \f5view\fP is established. +\f5dtview()\fP returns \f5dt\fP on success and \f5NULL\fP on error. +.PP +If two dictionaries on the same viewpath have the same values for the discipline fields +\f5Dtdisc_t.link\fP, \f5Dtdisc_t.key\fP, \f5Dtdisc_t.size\fP, and \f5Dtdisc_t.hashf\fP, +it is expected that key hashing will be the same. +If not, undefined behaviors may result during a search or a walk. +.PP +.Ss "STORAGE METHODS" +.PP +Storage methods are of type \f5Dtmethod_t*\fP. +\fICdt\fP supports the following methods: +.PP +.Ss " Dtoset" +.Ss " Dtobag" +Objects are ordered by comparisons. +\f5Dtoset\fP keeps unique objects. +\f5Dtobag\fP allows repeatable objects. +.PP +.Ss " Dtset" +.Ss " Dtbag" +Objects are unordered. +\f5Dtset\fP keeps unique objects. +\f5Dtbag\fP allows repeatable objects and always keeps them together +(note the effect on dictionary walking.) +.PP +.Ss " Dtlist" +Objects are kept in a list. +New objects are inserted either +in front of \fIcurrent object\fP (see \f5dtfinger()\fP) if this is defined +or at list front if there is no current object. +.PP +.Ss " Dtstack" +Objects are kept in a stack, i.e., in reverse order of insertion. +Thus, the last object inserted is at stack top +and will be the first to be deleted. +.PP +.Ss " Dtqueue" +Objects are kept in a queue, i.e., in order of insertion. +Thus, the first object inserted is at queue head +and will be the first to be deleted. +.PP +.Ss "DISCIPLINE" +.PP +Object format and associated management functions are +defined in the type \f5Dtdisc_t\fP: +.Cs + typedef struct + { int key, size; + int link; + Dtmake_f makef; + Dtfree_f freef; + Dtcompar_f comparf; + Dthash_f hashf; + Dtmemory_f memoryf; + Dtevent_f eventf; + } Dtdisc_t; +.Ce +.Ss " int key, size" +Each object \f5obj\fP is identified by a key used for object comparison or hashing. +\f5key\fP should be non-negative and defines an offset into \f5obj\fP. +If \f5size\fP is negative, the key is a null-terminated +string with starting address \f5*(Void_t**)((char*)obj+key)\fP. +If \f5size\fP is zero, the key is a null-terminated string with starting address +\f5(Void_t*)((char*)obj+key)\fP. +Finally, if \f5size\fP is positive, the key is a byte array of length \f5size\fP +starting at \f5(Void_t*)((char*)obj+key)\fP. +.PP +.Ss " int link" +Let \f5obj\fP be an object to be inserted into \f5dt\fP as discussed below. +If \f5link\fP is negative, an internally allocated object holder is used +to hold \f5obj\fP. Otherwise, \f5obj\fP should have +a \f5Dtlink_t\fP structure embedded \f5link\fP bytes into it, +i.e., at address \f5(Dtlink_t*)((char*)obj+link)\fP. +.PP +.Ss " Void_t* (*makef)(Dt_t* dt, Void_t* obj, Dtdisc_t* disc)" +If \f5makef\fP is not \f5NULL\fP, +\f5dtinsert(dt,obj)\fP will call it +to make a copy of \f5obj\fP suitable for insertion into \f5dt\fP. +If \f5makef\fP is \f5NULL\fP, \f5obj\fP itself will be inserted into \f5dt\fP. +.PP +.Ss " void (*freef)(Dt_t* dt, Void_t* obj, Dtdisc_t* disc)" +If not \f5NULL\fP, +\f5freef\fP is used to destroy data associated with \f5obj\fP. +.PP +.Ss "int (*comparf)(Dt_t* dt, Void_t* key1, Void_t* key2, Dtdisc_t* disc)" +If not \f5NULL\fP, \f5comparf\fP is used to compare two keys. +Its return value should be \f5<0\fP, \f5=0\fP, or \f5>0\fP to indicate +whether \f5key1\fP is smaller, equal to, or larger than \f5key2\fP. +All three values are significant for method \f5Dtoset\fP and \f5Dtobag\fP. +For other methods, a zero value +indicates equality and a non-zero value indicates inequality. +If \f5(*comparf)()\fP is \f5NULL\fP, an internal function is used +to compare the keys as defined by the \f5Dtdisc_t.size\fP field. +.PP +.Ss " unsigned int (*hashf)(Dt_t* dt, Void_t* key, Dtdisc_t* disc)" +If not \f5NULL\fP, +\f5hashf\fP is used to compute the hash value of \f5key\fP. +It is required that keys compared equal will also have same hash values. +If \f5hashf\fP is \f5NULL\fP, an internal function is used to hash +the key as defined by the \f5Dtdisc_t.size\fP field. +.PP +.Ss " Void_t* (*memoryf)(Dt_t* dt, Void_t* addr, size_t size, Dtdisc_t* disc)" +If not \f5NULL\fP, \f5memoryf\fP is used to allocate and free memory. +When \f5addr\fP is \f5NULL\fP, a memory segment of size \f5size\fP is requested. +If \f5addr\fP is not \f5NULL\fP and \f5size\fP is zero, \f5addr\fP is to be freed. +If \f5addr\fP is not \f5NULL\fP and \f5size\fP is positive, +\f5addr\fP is to be resized to the given size. +If \f5memoryf\fP is \f5NULL\fP, \fImalloc(3)\fP is used. +When dictionaries share memory, +a record of the first allocated memory segment should be kept +so that it can be used to initialize new dictionaries (see below.) +.PP +.Ss " int (*eventf)(Dt_t* dt, int type, Void_t* data, Dtdisc_t* disc)" +If not \f5NULL\fP, \f5eventf\fP announces various events. +If it returns a negative value, the calling operation will terminate with failure. +Unless noted otherwise, a non-negative return value let the +calling function proceed normally. Following are the events: +.Tp +\f5DT_OPEN\fP: +\f5dt\fP is being opened. +If \f5eventf\fP returns zero, the opening process proceeds normally. +A positive return value indicates that \f5dt\fP +uses memory already initialized by a different dictionary. +In that case, \f5*(Void_t**)data\fP should be set to +the first allocated memory segment as discussed in \f5memoryf\fP. +\f5dtopen()\fP may fail if this segment is not returned or +if it has not been properly initialized. +.Tp +\f5DT_CLOSE\fP: +\f5dt\fP is being closed. +.Tp +\f5DT_DISC\fP: +The discipline of \f5dt\fP is being changed to a new one given in +\f5(Dtdisc_t*)data\fP. +.Tp +\f5DT_METH\fP: +The method of \f5dt\fP is being changed to a new one given in +\f5(Dtmethod_t*)data\fP. +.PP +.Ss "OBJECT OPERATIONS" +.PP +.Ss " Void_t* dtinsert(Dt_t* dt, Void_t* obj)" +This inserts an object prototyped by \f5obj\fP into \f5dt\fP. +If there is an existing object in \f5dt\fP matching \f5obj\fP +and the storage method is \f5Dtset\fP or \f5Dtoset\fP, +\f5dtinsert()\fP will simply return the matching object. +Otherwise, a new object is inserted according to the method in use. +See \f5Dtdisc_t.makef\fP for object construction. +\f5dtinsert()\fP returns the new object, a matching object as noted, +or \f5NULL\fP on error. +.PP +.Ss " Void_t* dtdelete(Dt_t* dt, Void_t* obj)" +If \f5obj\fP is not \f5NULL\fP, the first object matching it is deleted. +If \f5obj\fP is \f5NULL\fP, methods \f5Dtstack\fP and \f5Dtqueue\fP +delete respectively stack top or queue head while other methods do nothing. +See \f5Dtdisc_t.freef\fP for object destruction. +\f5dtdelete()\fP returns the deleted object (even if it was deallocated) +or \f5NULL\fP on error. +.PP +.Ss " Void_t* dtsearch(Dt_t* dt, Void_t* obj)" +.Ss " Void_t* dtmatch(Dt_t* dt, Void_t* key)" +These functions find an object matching \f5obj\fP or \f5key\fP either from \f5dt\fP or +from some dictionary accessible from \f5dt\fP via a viewpath (see \f5dtview()\fP.) +\f5dtsearch()\fP and \f5dtmatch()\fP return the matching object or +\f5NULL\fP on failure. +.PP +.Ss " Void_t* dtfirst(Dt_t* dt)" +.Ss " Void_t* dtnext(Dt_t* dt, Void_t* obj)" +\f5dtfirst()\fP returns the first object in \f5dt\fP. +\f5dtnext()\fP returns the object following \f5obj\fP. +Objects are ordered based on the storage method in use. +For \f5Dtoset\fP and \f5Dtobag\fP, objects are ordered by object comparisons. +For \f5Dtstack\fP, objects are ordered in reverse order of insertion. +For \f5Dtqueue\fP, objects are ordered in order of insertion. +For \f5Dtlist\fP, objects are ordered by list position. +For \f5Dtset\fP and \f5Dtbag\fP, +objects use some internal ordering which +may change on any search, insert, or delete operations. +Therefore, these operations should not be used +during a walk on a dictionary using either \f5Dtset\fP or \f5Dtbag\fP. +.PP +Objects in a dictionary or a viewpath can be walked using +a \f5for(;;)\fP loop as below. +Note that only one loop can be used at a time per dictionary. +Concurrent or nested loops may result in unexpected behaviors. +.Cs + for(obj = dtfirst(dt); obj; obj = dtnext(dt,obj)) +.Ce +.Ss " Void_t* dtlast(Dt_t* dt)" +.Ss " Void_t* dtprev(Dt_t* dt, Void_t* obj)" +\f5dtlast()\fP and \f5dtprev()\fP are like \f5dtfirst()\fP and \f5dtnext()\fP +but work in reverse order. +Note that dictionaries on a viewpath are still walked in order +but objects in each dictionary are walked in reverse order. +.PP +.Ss " Void_t* dtfinger(Dt_t* dt)" +This function returns the \fIcurrent object\fP of \f5dt\fP, if any. +The current object is defined after a successful call to one of +\f5dtsearch()\fP, \f5dtmatch()\fP, \f5dtinsert()\fP, +\f5dtfirst()\fP, \f5dtnext()\fP, \f5dtlast()\fP, or \f5dtprev()\fP. +As a side effect of this implementation of \fICdt\fP, +when a dictionary is based on \f5Dtoset\fP and \f5Dtobag\fP, +the current object is always defined and is the root of the tree. +.PP +.Ss " Void_t* dtrenew(Dt_t* dt, Void_t* obj)" +This function repositions and perhaps rehashes +an object \f5obj\fP after its key has been changed. +\f5dtrenew()\fP only works if \f5obj\fP is the current object (see \f5dtfinger()\fP). +.PP +.Ss " dtwalk(Dt_t* dt, int (*userf)(Dt_t*, Void_t*, Void_t*), Void_t* data)" +This function calls \f5(*userf)(walk,obj,data)\fP on each object in \f5dt\fP and +other dictionaries viewable from it. +\f5walk\fP is the dictionary containing \f5obj\fP. +If \f5userf()\fP returns a \f5<0\fP value, +\f5dtwalk()\fP terminates and returns the same value. +\f5dtwalk()\fP returns \f50\fP on completion. +.PP +.Ss " Dtlink_t* dtflatten(Dt_t* dt)" +.Ss " Dtlink_t* dtlink(Dt_t* dt, Dtlink_t* link)" +.Ss " Void_t* dtobj(Dt_t* dt, Dtlink_t* link)" +Using \f5dtfirst()/dtnext()\fP or \f5dtlast()/dtprev()\fP +to walk a single dictionary can incur significant cost due to function calls. +For efficient walking of a single directory (i.e., no viewpathing), +\f5dtflatten()\fP and \f5dtlink()\fP can be used. +Objects in \f5dt\fP are made into a linked list and walked as follows: +.Cs + for(link = dtflatten(dt); link; link = dtlink(dt,link) ) +.Ce +.PP +Note that \f5dtflatten()\fP returns a list of type \f5Dtlink_t*\fP, +not \f5Void_t*\fP. That is, it returns a dictionary holder pointer, +not a user object pointer +(although both are the same if the discipline field \f5link\fP is non-negative.) +The macro function \f5dtlink()\fP +returns the dictionary holder object following \f5link\fP. +The macro function \f5dtobj(dt,link)\fP +returns the user object associated with \f5link\fP, +Beware that the flattened object list is unflattened on any +dictionary operations other than \f5dtlink()\fP. +.PP +.Ss " Dtlink_t* dtextract(Dt_t* dt)" +.Ss " int dtrestore(Dt_t* dt, Dtlink_t* link)" +\f5dtextract()\fP extracts all objects from \f5dt\fP and makes it appear empty. +\f5dtrestore()\fP repopulates \f5dt\fP with +objects previously obtained via \f5dtextract()\fP. +\f5dtrestore()\fP will fail if \f5dt\fP is not empty. +These functions can be used +to share a same \f5dt\fP handle among many sets of objects. +They are useful to reduce dictionary overhead +in an application that creates concurrently many dictionaries. +It is important that the same discipline and method are in use at both +extraction and restoration. Otherwise, undefined behaviors may result. +.PP +.Ss "DICTIONARY INFORMATION" +.PP +.Ss " Dt_t* dtvnext(Dt_t* dt)" +This returns the dictionary that \f5dt\fP is viewing, if any. +.Ss " int dtvcount(Dt_t* dt)" +This returns the number of dictionaries that view \f5dt\fP. +.Ss " Dt_t* dtvhere(Dt_t* dt)" +This returns the dictionary \f5v\fP viewable from \f5dt\fP +where an object was found from the most recent search or walk operation. +.Ss " int dtsize(Dt_t* dt)" +This function returns the number of objects stored in \f5dt\fP. +.PP +.Ss " int dtstat(Dt_t *dt, Dtstat_t* st, int all)" +This function reports dictionary statistics. +If \f5all\fP is non-zero, all fields of \f5st\fP are filled. +Otherwise, only the \f5dt_type\fP and \f5dt_size\fP fields are filled. +It returns \f50\fP on success and \f5-1\fP on error. +.PP +\f5Dtstat_t\fP contains the below fields: +.Tp +\f5int dt_type\fP: +This is one of \f5DT_SET\fP, \f5DT_BAG\fP, \f5DT_OSET\fP, \f5DT_OBAG\fP, +\f5DT_LIST\fP, \f5DT_STACK\fP, and \f5DT_QUEUE\fP. +.Tp +\f5int dt_size\fP: +This contains the number of objects in the dictionary. +.Tp +\f5int dt_n\fP: +For \f5Dtset\fP and \f5Dtbag\fP, +this is the number of non-empty chains in the hash table. +For \f5Dtoset\fP and \f5Dtobag\fP, +this is the deepest level in the tree (counting from zero.) +Each level in the tree contains all nodes of equal distance from the root node. +\f5dt_n\fP and the below two fields are undefined for other methods. +.Tp +\f5int dt_max\fP: +For \f5Dtbag\fP and \f5Dtset\fP, this is the size of a largest chain. +For \f5Dtoset\fP and \f5Dtobag\fP, this is the size of a largest level. +.Tp +\f5int* dt_count\fP: +For \f5Dtset\fP and \f5Dtbag\fP, +this is the list of counts for chains of particular sizes. +For example, \f5dt_count[1]\fP is the number of chains of size \f51\fP. +For \f5Dtoset\fP and \f5Dtobag\fP, this is the list of sizes of the levels. +For example, \f5dt_count[1]\fP is the size of level \f51\fP. +.PP +.Ss "HASH FUNCTIONS" +.PP +.Ss " unsigned int dtcharhash(unsigned int h, char c)" +.Ss " unsigned int dtstrhash(unsigned int h, char* str, int n)" +These functions compute hash values from bytes or strings. +\f5dtcharhash()\fP computes a new hash value from byte \f5c\fP and seed value \f5h\fP. +\f5dtstrhash()\fP computes a new hash value from string \f5str\fP and seed value \f5h\fP. +If \f5n\fP is positive, \f5str\fP is a byte array of length \f5n\fP; +otherwise, \f5str\fP is a null-terminated string. +.PP +.SH IMPLEMENTATION NOTES +\f5Dtset\fP and \f5Dtbag\fP are based on hash tables with +move-to-front collision chains. +\f5Dtoset\fP and \f5Dtobag\fP are based on top-down splay trees. +\f5Dtlist\fP, \f5Dtstack\fP and \f5Dtqueue\fP are based on doubly linked list. +.PP +.SH AUTHOR +Kiem-Phong Vo, kpv@research.att.com diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cgraph.3 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cgraph.3 new file mode 100644 index 0000000..7c72459 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/cgraph.3 @@ -0,0 +1,486 @@ +.de P0 +.nf +\f5 +.. +.de P1 +\fP +.fi +.. +.de Ss +.fl +.ne 2 +.SS "\\$1" +.. +.TH LIBCGRAPH 3 "30 JULY 2007" +.SH "NAME" +\fBlibcgraph\fR \- abstract graph library +.SH "SYNOPSIS" +."ta .75i 1.5i 2.25i 3i 3.75i 4.5i 5.25i 6i +.PP +.nf +.P0 +#include +.P1 +.SS "TYPES" +.P0 +Agraph_t; +Agnode_t; +Agedge_t; +Agdesc_t; +Agdisc_t; +Agsym_t; +.P1 +.SS "GRAPHS" +.P0 +Agraph_t *agopen(char *name, Agdesc_t kind, Agdisc_t *disc); +int agclose(Agraph_t *g); +Agraph_t *agread(void *channel, Agdisc_t *); +Agraph_t *agconcat(Agraph_t *g, void *channel, Agdisc_t *disc) +int agwrite(Agraph_t *g, void *channel); +int agnnodes(Agraph_t *g),agnedges(Agraph_t *g); +void agreadline(int line_no); +void agsetfile(char *file_name); +int agisdirected(Agraph_t * g),agisundirected(Agraph_t * g),agisstrict(Agraph_t * g); +.SS "SUBGRAPHS" +.P0 +Agraph_t *agsubg(Agraph_t *g, char *name, int createflag); +Agraph_t *agidsubg(Agraph_t * g, unsigned long id, int cflag); +Agraph_t *agfstsubg(Agraph_t *g), agnxtsubg(Agraph_t *); +Agraph_t *agparent(Agraph_t *g),*agroot(Agraph_t *g); +int agdelsubg(Agraph_t * g, Agraph_t * sub); /* same as agclose() */ +.P1 +.SS "NODES" +.P0 +Agnode_t *agnode(Agraph_t *g, char *name, int createflag); +Agnode_t *agidnode(Agraph_t *g, ulong id, int createflag); +Agnode_t *agsubnode(Agraph_t *g, Agnode_t *n, int createflag); +Agnode_t *agfstnode(Agraph_t *g); +Agnode_t *agnxtnode(Agnode_t *n); +Agnode_t *agprvnode(Agnode_t *n); +Agnode_t *aglstnode(Agnode_t *n); +int agdelnode(Agraph_t *g, Agnode_t *n); +int agdegree(Agnode_t *n, int use_inedges, int use_outedges); +.P1 +.SS "EDGES" +.P0 +Agedge_t *agedge(Agnode_t *t, Agnode_t *h, char *name, int createflag); +Agedge_t *agidedge(Agraph_t * g, Agnode_t * t, Agnode_t * h, unsigned long id, int createflag); +Agedge_t *agsubedge(Agraph_t *g, Agedge_t *e, int createflag); +Agnode_t *aghead(Agedge_t *e), *agtail(Agedge_t *e); +Agedge_t *agfstedge(Agnode_t *n); +Agedge_t *agnxtedge(Agedge_t *e, Agnode_t *n); +Agedge_t *agfstin(Agnode_t *n); +Agedge_t *agnxtin(Agedge_t *e); +Agedge_t *agfstout(Agnode_t *n); +Agedge_t *agnxtout(Agedge_t *e); +int agdeledge(Agraph_t *g, Agedge_t *e); +.SS "STRING ATTRIBUTES" +.P0 +Agsym_t *agattr(Agraph_t *g, int kind, char *name, char *value); +Agsym_t *agattrsym(void *obj, char *name); +Agsym_t *agnxtattr(Agraph_t *g, int kind, Agsym_t *attr); +char *agget(void *obj, char *name); +char *agxget(void *obj, Agsym_t *sym); +int agset(void *obj, char *name, char *value); +int agxset(void *obj, Agsym_t *sym, char *value); +int agsafeset(void *obj, char *name, char *value, char *def); +.P1 +.SS "RECORDS" +.P0 +void *agbindrec(void *obj, char *name, unsigned int size, move_to_front); +Agrec_t *aggetrec(void *obj, char *name, int move_to_front); +int agdelrec(Agraph_t *g, void *obj, char *name); +int agcopyattr(void *, void *); +void aginit(Agraph_t * g, int kind, char *rec_name, int rec_size, int move_to_front); +void agclean(Agraph_t * g, int kind, char *rec_name); +.P1 +.SS "CALLBACKS" +.P0 +Agcbdisc_t *agpopdisc(Agraph_t *g); +void agpushdisc(Agraph_t *g, Agcbdisc_t *disc); +void agmethod(Agraph_t *g, void *obj, Agcbdisc_t *disc, int initflag); +.P1 +.SS "MEMORY" +.P0 +void *agalloc(Agraph_t *g, size_t request); +void *agrealloc(Agraph_t *g, void *ptr, size_t oldsize, size_t newsize); +void agfree(Agraph_t *g, void *ptr); +.P1 +.SS "GENERIC OBJECTS" +.P0 +Agraph_t *agraphof(void*); +char *agnameof(void*); +void agdelete(Agraph_t *g, void *obj); +Agrec_t *AGDATA(void *obj); +ulong AGID(void *obj); +int AGTYPE(void *obj); +.P1 +.SH "DESCRIPTION" +Libcgraph supports graph programming by maintaining graphs in memory +and reading and writing graph files. +Graphs are composed of nodes, edges, and nested subgraphs. +These graph objects may be attributed with string name-value pairs +and programmer-defined records (see Attributes). +.PP +All of Libcgraph's global symbols have the prefix \fBag\fR (case varying). +.SH "GRAPH AND SUBGRAPHS" +.PP +A ``main'' or ``root'' graph defines a namespace for a collection of +graph objects (subgraphs, nodes, edges) and their attributes. +Objects may be named by unique strings or by 32-bit IDs. +.PP +\fBagopen\fP creates a new graph with the given name and kind. +(Graph kinds are \fBAgdirected\fP, \fBAgundirected\fP, +\fBAgstrictdirected\fP, and \fBAgstrictundirected\fP. +A strict graph cannot have multi-edges or self-arcs.) +\fBagclose\fP deletes a graph, freeing its associated storage. +\fBagread\fP, \fBagwrite\fP, and \fBagconcat\fP perform file I/O +using the graph file language described below. \fBagread\fP +constructs a new graph while \fBagconcat\fP merges the file +contents with a pre-existing graph. Though I/O methods may +be overridden, the default is that the channel argument is +a stdio FILE pointer. \fBagsetfile\fP and \fBagreadline\fP +are helper functions that simply set the current file name +and input line number for subsequent error reporting. +.PP +\fBagsubg\fP finds or creates +a subgraph by name. A new subgraph is is initially empty and +is of the same kind as its parent. Nested subgraph trees may be created. +A subgraph's name is only interpreted relative to its parent. +A program can scan subgraphs under a given graph +using \fBagfstsubg\fP and \fRagnxtsubg\fP. A subgraph is +deleted with \fBagdelsubg\fP (or \fBagclose\fP). +.PP +By default, nodes are stored in ordered sets for efficient random +access to insert, find, and delete nodes. +The edges of a node are also stored in ordered sets. +The sets are maintained internally as splay tree dictionaries +using Phong Vo's cdt library. +.PP +\fBagnnodes\fP, \fBagnedges\fP, and \fBagdegree\fP return the +sizes of node and edge sets of a graph. The \fBagdegree\fP returns +the size of the edge set of a nodes, and takes flags +to select in-edges, out-edges, or both. +.PP +An \fBAgdisc_t\fP defines callbacks to be invoked by libcgraph when +initializing, modifying, or finalizing graph objects. (Casual users can ignore +the following.) Disciplines are kept on a stack. Libcgraph automatically +calls the methods on the stack, top-down. Callbacks are installed +with \fBagpushdisc\fP, uninstalled with \fBagpopdisc\fP, and +can be held pending or released via \fBagcallbacks\fP. +.PP +(Casual users may ignore the following. +When Libcgraph is compiled with Vmalloc (which is not the default), +each graph has its own heap. +Programmers may allocate application-dependent data within the +same heap as the rest of the graph. The advantage is that +a graph can be deleted by atomically freeing its entire heap +without scanning each individual node and edge. +.SH "NODES" +A node is created by giving a unique string name or +programmer defined 32-bit ID, and is represented by a +unique internal object. (Node equality can checked +by pointer comparison.) +.PP +\fBagnode\fP searches in a graph or subgraph for a node +with the given name, and returns it if found. +If not found, if \fBcreateflag\fP is boolean true +a new node is created and returned, otherwise a nil +pointer is returned. +\fBagidnode\fP allows a programmer to specify the node +by a unique 32-bit ID. +\fBagsubnode\fP performs a similar operation on +an existing node and a subgraph. +.Pp +\fBagfstnode\fP and \fBagnxtnode\fP scan node lists. +\fBagprvnode\fP and \fPaglstnode\fP are symmetric but scan backward. +The default sequence is order of creation (object timestamp.) +\fBagdelnode\fP removes a node from a graph or subgraph. +.SH "EDGES" +.PP +An abstract edge has two endpoint nodes called tail and head +where the all outedges of the same node have it as the tail +value and similarly all inedges have it as the head. +In an undirected graph, head and tail are interchangable. +If a graph has multi-edges between the same pair of nodes, +the edge's string name behaves as a secondary key. +.Pp +\fBagedge\fP searches in a graph of subgraph for an +edge between the given endpoints (with an optional +multi-edge selector name) and returns it if found. +Otherwise, if \fBcreateflag\fP is boolean true, +a new edge is created and returned: otherwise +a nil pointer is returned. If the \fBname\fP +is \f5(char*)0\fP then an anonymous internal +value is generated. \fBagidedge\fP allows a programmer +to create an edge by giving its unique 32-bit ID. +\fBagfstin\fP, \fBagnxtint\fP, \fBagfstout\fP, and +\fBagnxtout\fP visit directed in- and out- edge lists, +and ordinarily apply only in directed graphs. +\fBagfstedge\fP and \fBagnxtedge\fP visit all edges +incident to a node. \fBagtail\fP and \fBaghead\fP +get the endpoint of an edge. +.SH "INTERNAL ATTRIBUTES" +Programmer-defined values may be dynamically +attached to graphs, subgraphs, nodes, and edges. +Such values are either uninterpreted binary records +(for implementing efficient algorithms) +or character string data (for I/O). +.SH "STRING ATTRIBUTES" +String attributes are handled automatically in reading +and writing graph files. +A string attribute is identified by name and by +an internal symbol table entry (\fBAgsym_t\fP) created by Libcgraph. +Attributes of nodes, edges, and graphs (with their subgraphs) +have separate namespaces. The contents of an \fBAgsym_t\fP +is listed below, followed by primitives to operate on string +attributes. +.P0 +typedef struct Agsym_s { /* symbol in one of the above dictionaries */ + Dtlink_t link; + char *name; /* attribute's name */ + char *defval; /* its default value for initialization */ + int id; /* its index in attr[] */ + unsigned char kind; /* referent object type */ + unsigned char fixed; /* immutable value */ +} Agsym_t; +.P1 +.PP +\fBagattr\fP creates or looks up attributes. +\fBkind\fP may be \fBAGRAPH\fP, \fBAGNODE\fP, or \fBAGEDGE\fP. +If \fBvalue\fP is \fB(char*)0)\fP, the request is to search +for an existing attribute of the given kind and name. +Otherwise, if the attribute already exists, its default +for creating new objects is set to the given value; +if it does not exist, a new attribute is created with the +given default, and the default is applied to all pre-existing +objects of the given kind. \fBagattrsym\fP is a helper function +that looks up an attribute for a graph object given as an argument. +\fBagnxtattr\P permits traversing the list of attributes of +a given type. If \fBNIL\fP is passed as an argument it gets +the first attribute, otherwise it returns the next one in +succession or returns \fBNIL\fP at the end of the list. +\fBagget\fP and \fPagset\fP allow fetching and updating a +string attribute for an object taking the attribute name as +an argument. \fBagxget\fP and \fBagxset\fP do this but with +an attribute symbol table entry as an argument (to avoid +the cost of the string lookup). \fBagsafeset\fP is a +convenience function that ensures the given attribute is +declared before setting it locally on an object. + +Note that Libcgraph performs its own storage management of strings. +The caller does not need to dynamically allocate storage. + +.SH "RECORDS" +Uninterpreted records may be attached to graphs, subgraphs, nodes, +and edges for efficient operations on values such as marks, weights, +counts, and pointers needed by algorithms. Application programmers +define the fields of these records, but they must be declared with +a common header as shown below. +.P0 +typedef struct Agrec_s { + Agrec_t header; + /* programmer-defined fields follow */ +} Agrec_t; +.P1 +Records are created and managed by Libcgraph. A programmer must +explicitly attach them to the objects in a graph, either to +individual objects one at a time via \fBagbindrec\fP, or to +all the objects of the same class in a graph via \fBaginit\fP. +The \fBname\fP argument a record distinguishes various types of records, +and is programmer defined (Libcgraph reserves the prefix \fB_ag\fR). +If size is 0, the call to \fBagbindrec\fP is simply a lookup. +\fBagdelrec\fP is the deletes records one at a time. +\fBagclean\fP does the same for all objects of the same +class in an entire graph. + +Internally, records are maintained in circular linked lists +attached to graph objects. +To allow referencing application-dependent data without function +calls or search, Libcgraph allows setting and locking the list +pointer of a graph, node, or edge on a particular record. +This pointer can be obtained with the macro \fBAGDATA(obj)\fP. +A cast, generally within a macro or inline function, +is usually applied to convert the list pointer to +an appropriate programmer-defined type. + +To control the setting of this pointer, +the \fBmove_to_front\fP flag may be \fBAG_MTF_FALSE\fP, +\fBAG_MTF_SOFT\fP, or \fBAG_MTF_HARD\fP accordingly. +The \fBAG_MTF_SOFT\fP field is only a hint that decreases +overhead in subsequent calls of \fBaggetrec\fP; +\fBAG_MTF_HARD\fP guarantees that a lock was obtained. +To release locks, use \fBAG_MTF_SOFT\fP or \fBAG_MTF_FALSE\fP. +Use of this feature implies cooperation or at least isolation +from other functions also using the move-to-front convention. + +.SH "DISCIPLINES" +(The following is not intended for casual users.) +Programmer-defined disciplines customize certain resources- +ID namespace, memory, and I/O - needed by Libcgraph. +A discipline struct (or NIL) is passed at graph creation time. +.P0 +struct Agdisc_s { /* user's discipline */ + Agmemdisc_t *mem; + Agiddisc_t *id; + Agiodisc_t *io; +} ; +.P1 +A default discipline is supplied when NIL is given for +any of these fields. + +An ID allocator discipline allows a client to control assignment +of IDs (uninterpreted 32-bit values) to objects, and possibly how +they are mapped to and from strings. + +.P0 +struct Agiddisc_s { /* object ID allocator */ + void *(*open)(Agraph_t *g); /* associated with a graph */ + int (*map)(void *state, int objtype, char *str, ulong *id, int createflag); + int (*alloc)(void *state, int objtype, ulong id); + void (*free)(void *state, int objtype, ulong id); + char *(*print)(void *state, int objtype, ulong id); + void (*close)(void *state); +} ; +.P1 + +\f5open\fP permits the ID discipline to initialize any data +structures that maintains per individual graph. +Its return value is then passed as the first argument to +all subsequent ID manager calls. + +\f5alloc\fP informs the ID manager that Libcgraph is attempting +to create an object with a specific ID that was given by a client. +The ID manager should return TRUE (nonzero) if the ID can be +allocated, or FALSE (which aborts the operation). + +\f5free\fP is called to inform the ID manager that the +object labeled with the given ID is about to go out of existence. + +\f5map\fP is called to create or look-up IDs by string name +(if supported by the ID manager). Returning TRUE (nonzero) +in all cases means that the request succeeded (with a valid +ID stored through \f5result\fP. There are four cases: +.PP +\f5name != NULL\fP and \f5createflag == 1\fP: +This requests mapping a string (e.g. a name in a graph file) into a new ID. +If the ID manager can comply, then it stores the result and returns TRUE. +It is then also responsible for being able to \f5print\fP the ID again +as a string. Otherwise the ID manager may return FALSE but it must +implement the following (at least for graph file reading and writing to work): +.PP +\f5name == NULL\fP and \f5createflag == 1\fP: +The ID manager creates a unique new ID of its own choosing. +Although it may return FALSE if it does not support anonymous objects, +but this is strongly discouraged (to support "local names" in graph files.) +.PP +\f5name != NULL\fP and \f5createflag == 0\fP: +This is a namespace probe. If the name was previously mapped into +an allocated ID by the ID manager, then the manager must return this ID. +Otherwise, the ID manager may either return FALSE, or may store +any unallocated ID into result. (This is convenient, for example, +if names are known to be digit strings that are directly converted into 32 bit values.) +.PP +\f5name == NULL\fP and \f5createflag == 0\fP: forbidden. +.PP +\f5print\fP should return +\f5print\fP is allowed to return a pointer to a static buffer; +a caller must copy its value if needed past subsequent calls. +\f5NULL\fP should be returned by ID managers that do not map names. +.PP +The \f5map\fP and \f5alloc\fP calls do not pass a pointer to the +newly allocated object. If a client needs to install object +pointers in a handle table, it can obtain them via +new object callbacks. +.P0 +struct Agiodisc_s { + int (*fread)(void *chan, char *buf, int bufsize); + int (*putstr)(void *chan, char *str); + int (*flush)(void *chan); /* sync */ + /* error messages? */ +} ; + +struct Agmemdisc_s { /* memory allocator */ + void *(*open)(void); /* independent of other resources */ + void *(*alloc)(void *state, size_t req); + void *(*resize)(void *state, void *ptr, size_t old, size_t req); + void (*free)(void *state, void *ptr); + void (*close)(void *state); +} ; +.P1 + +.SH "EXAMPLE PROGRAM" +.P0 +#include +typedef struct mydata_s {Agrec_t hdr; int x,y,z;} mydata; + +main(int argc, char **argv) +{ + Agraph_t *g; + Agnode_t *v; + Agedge_t *e; + Agsym_t *attr; + Dict_t *d + int cnt; + mydata *p; + + if (g = agread(stdin,NIL(Agdisc_t*))) { + cnt = 0; attr = 0; + while (attr = agnxtattr(g, AGNODE, attr)) cnt++; + printf("The graph %s has %d attributes\n",agnameof(g),cnt); + + /* make the graph have a node color attribute, default is blue */ + attr = agattr(g,AGNODE,"color","blue"); + + /* create a new graph of the same kind as g */ + h = agopen("tmp",g->desc); + + /* this is a way of counting all the edges of the graph */ + cnt = 0; + for (v = agfstnode(g); v; v = agnxtnode(g,v)) + for (e = agfstout(g,v); e; e = agnxtout(g,e)) + cnt++; + + /* attach records to edges */ + for (v = agfstnode(g); v; v = agnxtnode(g,v)) + for (e = agfstout(g,v); e; e; = agnxtout(g,e)) { + p = (mydata*) agbindrec(g,e,"mydata",sizeof(mydata),TRUE); + p->x = 27; /* meaningless data access example */ + ((mydata*)(AGDATA(e)))->y = 999; /* another example */ + } + } +} +.P1 +.SH "EXAMPLE GRAPH FILES" +.P0 +digraph G { + a -> b; + c [shape=box]; + a -> c [weight=29,label="some text]; + subgraph anything { + /* the following affects only x,y,z */ + node [shape=circle]; + a; x; y -> z; y -> z; /* multiple edges */ + } +} + +strict graph H { + n0 -- n1 -- n2 -- n0; /* a cycle */ + n0 -- {a b c d}; /* a star */ + n0 -- n3; + n0 -- n3 [weight=1]; /* same edge because graph is strict */ +} +.P1 +.SH "SEE ALSO" +Libcdt(3) + +.SH "BUGS" +It is difficult to change endpoints of edges, delete string attributes or +modify edge keys. The work-around is to create a new object and copy the +contents of an old one (but new object obviously has a different ID, +internal address, and object creation timestamp). + +The API lacks convenient functions to substitute programmer-defined ordering of +nodes and edges but in principle this can be supported. +.SH "AUTHOR" +Stephen North, north@research.att.com, AT&T Research. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/graph.3 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/graph.3 new file mode 100644 index 0000000..0d7ba91 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/graph.3 @@ -0,0 +1,270 @@ +.TH LIBGRAPH 3 "01 MARCH 1993" +.SH NAME +\fBlibgraph\fR \- abstract graph library +.SH SYNOPSIS +.ta .75i 1.5i 2.25i 3i 3.75i 4.5i 5.25i 6i +.PP +.nf +\f5 +#include +void aginit(); +Agraph_t *agread(FILE*); +int agwrite(Agraph_t*, FILE*); +int agerrors(); +Agraph_t *agopen(char *name, int kind); +void agclose(Agraph_t *g); +Agraph_t *agsubg(Agraph_t *g, char *name); +Agraph_t *agfindsubg(Agraph_t *g, char *name); +Agnode_t *agmetanode(Agraph_t *g); +Agraph_t *agusergraph(Agnode_t *metanode); +int agnnodes(Agraph_t *g), agnedges(Agraph_t *g); +.sp .i1 +int agcontains(Agraph_t *g, void *obj); +int aginsert(Agraph_t *g, void *obj); +int agdelete(Agraph_t *g, void *obj); +.sp .1i +Agnode_t *agnode(Agraph_t *g, char *name); +Agnode_t *agfindnode(Agraph_t *g, char *name); +Agnode_t *agfstnode(Agraph_t *g); +Agnode_t *agnxtnode(Agraph_t *g, Agnode_t *n); +Agnode_t *aglstnode(Agraph_t *g); +Agnode_t *agprvnode(Agraph_t *g, Agnode_t *n); +.sp .1i +Agedge_t *agedge(Agraph_t *g, Agnode_t *tail, Agnode_t *head); +Agedge_t *agfindedge(Agraph_t *g, Agnode_t *tail, Agnode_t *head); +Agedge_t *agfstedge(Agraph_t *g, Agnode_t *n); +Agedge_t *agnxtedge(Agraph_t *g, Agedge_t *e, Agnode_t *n); +Agedge_t *agfstin(Agraph_t *g, Agnode_t *n); +Agedge_t *agnxtin(Agraph_t *g, Agedge_t *e); +Agedge_t *agfstout(Agraph_t *g, Agnode_t *n); +Agedge_t *agnxtout(Agraph_t *g, Agedge_t *e); +.sp .1i +char *agget(void *obj, char *name); +char *agxget(void *obj, int index); +void agset(void *obj, char *name, char *value); +void agxset(void *obj, int index, char *value); +int agindex(void *obj, char *name); +.sp .1i +Agsym_t* agraphattr(Agraph_t *g,char *name,char *value); +Agsym_t* agnodeattr(Agraph_t *g,char *name,char *value); +Agsym_t* agedgeattr(Agraph_t *g,char *name,char *value); +Agsym_t* agfindattr(void *obj,char *name); +\fP +.fi +.SH DESCRIPTION +\fIlibgraph\fP maintains directed and undirected attributed graphs +in memory and reads and writes graph files. Graphs are composed of +nodes, edges, and nested subgraphs. A subgraph may contain any +nodes and edges of its parents, and may be passed to any +\fIlibgraph\fP function taking a graph pointer, except the three +that create new attributes (where a main graph is required). + +Attributes are internal or external. +Internal attributes are fields in the graph, node and edge structs +defined at compile time. +These allow efficient representation and direct access to values +such as marks, weights, and pointers for writing graph algorithms. +External attributes, on the other hand, are character strings +(name\(hyvalue pairs) dynamically allocated at runtime and accessed +through \fIlibgraph\fP calls. External attributes are used in +graph file I/O; internal attributes are not. Conversion between +internal and external attributes must be explicitly programmed. + +The subgraphs in a main graph are represented by an auxiliary directed +graph (a meta\(hygraph). Meta\(hynodes correspond to subgraphs, and meta\(hyedges +signify containment of one subgraph in another. +\f5agmetanode\fP and \f5agusergraph\fP map between +subgraphs and meta\(hynodes. The nodes and edges of the meta\(hygraph may +be traversed by the usual \fIlibgraph\fP functions for this purpose. + +.SH USE +1. Define types \f5Agraphinfo_t\fP, \f5Agnodeinfo_t\fP, +and \f5Agedgeinfo_t\fP (usually in a header file) before +including \f5\fP. + +2. Call \f5aginit()\fP before any other \fIlibgraph\fP functions. +(This is a macro that calls \f5aginitlib()\fP to define the sizes +of Agraphinfo_t, Agnodeinfo_t, and Agedgeinfo_t.) + +3. Compile with \-lgraph \-lcdt. + +Except for the \fBu\fP fields, \fIlibgraph\fP +data structures must be considered read\(hyonly. +Corrupting their contents by direct updates can cause +catastrophic errors. + +.SH "GRAPHS" +.nf +\f5 +typedef struct Agraph_t { + char kind; + char *name; + Agraph_t *root; + char **attr; + graphdata_t *univ; + Dict_t *nodes,*inedges,*outedges; + proto_t *proto; + Agraphinfo_t u; +} Agraph_t; + +typedef struct graphdata_t { + Dict_t *node_dict; + attrdict_t *nodeattr, *edgeattr, *globattr; +} graphdata_t; + +typedef struct proto_t { + Agnode_t *n; + Agedge_t *e; + proto_t *prev; +} proto_t; +\fP +.fi +A graph \fIkind\fP is one of: +AGRAPH, AGRAPHSTRICT, AGDIGRAPH, or AGDIGRAPHSTRICT. +There are related macros for testing the properties of a graph: +AG_IS_DIRECTED(g) and AG_IS_STRICT(g). +Strict graphs cannot have self\(hyarcs or multi\(hyedges. +\fBattr\fP is the array of external attribute values. +\fBuniv\fP points to values shared by all subgraphs of a main graph. +\fBnodes\fP, \fBinedges\fP, and \fBoutedges\fP are sets maintained +by \fBcdt(3)\fP. Normally you don't access these dictionaries +directly, though the edge dictionaries may be re\(hyordered to support +programmer\(hydefined ordered edges (see \f5dtreorder\fP in \fIcdt(3)\fP). +\fBproto\fP is a stack of templates for node and edge initialization. +The attributes of these nodes and edges are set in the usual way (\f5agget\fP, +\f5agset\fP, etc.) to set defaults. +.PP +\f5agread\fP reads a file and returns a new graph if one +was succesfully parsed, otherwise returns NULL if +\f5EOF\fP or a syntax error was encountered. +Errors are reported on stderr and a count is returned from +\g5agerrors()\fP. +\f5write_graph\fP prints a graph on a file. +\f5agopen\fP and \f5agsubg\fP create new empty graph and subgraphs. +\f5agfindsubg\fP searches for a subgraph by name, returning NULL +when the search fails. + +.SH ALL OBJECTS +\f5agcontains\fP, \f5aginsert\fP, \f5agdelete\fP are generic functions +for nodes, edges, and graphs. \f5gcontains\fP is a predicate that tests +if an object belongs to the given graph. \f5aginsert\fP inserts an +object in a graph and \f5agdelete\fP undoes this operation. +A node or edge is destroyed (and its storage freed) at the time it +is deleted from the main graph. Likewise a subgraph is destroyed +when it is deleted from its last parent or when its last parent is deleted. + +.SH NODES +.nf +\f5 +typedef struct Agnode_t { + char *name; + Agraph_t *graph; + char **attr; + Agnodeinfo_t u; +} Agnode_t; +\fP +.fi + +\f5agnode\fP attempts to create a node. +If one with the requested name already exists, the old node +is returned unmodified. +Otherwise a new node is created, with attributed copied from g\->proto\->n. +\f5agfstnode\fP (\f5agnxtnode\fP) return the first (next) element +in the node set of a graph, respectively, or NULL. +\f5aglstnode\fP (\f5agprvnode\fP) return the last (previous) element +in the node set of a graph, respectively, or NULL. + +.SH EDGES +.nf +\f5 +typedef struct Agedge_t { + Agnode_t *head,*tail; + char **attr; + Agedgeinfo_t u; +} Agedge_t; +\fP +.fi +\f5agedge\fP creates a new edge with the attributes of g\->proto\->e +including its key if not empty. +\f5agfindedge\fP finds the first (u,v) edge in \f5g\fP. +\f5agfstedge\fP (\f5agnxtedge\fP) return the first (next) element +in the edge set of a graph, respectively, or NULL. +\f5agfstin\fP, \f5agnxtin\fP, \f5agfstout\fP, \f5agnxtout\fP +refer to in\(hy or out\(hyedge sets. +The idiomatic usage in a directed graph is: +.sp +\f5 for (e = agfstout(g,n); e; e = agnextout(g,e)) your_fun(e);\fP +.P +An edge is uniquely identified by its endpoints and its \f5key\fP +attribute (if there are multiple edges). +If the \f5key\fP of \f5g\->proto\->e\fP is empty, +new edges are assigned an internal value. +Edges also have \f5tailport\fP and \f5headport\fP values. +These have special syntax in the graph file language but are +not otherwise interpreted. +.PP +.SH ATTRIBUTES +.nf +\f5 +typedef struct attrsym_t { + char *name,*value; + int index; + unsigned char printed; +} attrsym_t; +.bp +typedef struct attrdict_t { + char *name; + Dict_t *dict; + attrsym_t **list; +} attrdict_t; +\fP +.fi +\f5agraphattr\fP, \f5agnodeattr\fP, and \f5agedgeattr\fP make new attributes. +\f5g\fP should be a main graph, or \f5NULL\fP for declarations +applying to all graphs subsequently read or created. +\f5agfindattr\fP searches for an existing attribute. +.PP +External attributes are accessed by \f5agget\fP and \f5agset\fP +These take a pointer to any graph, node, or edge, and an attribute name. +Also, each attribute has an integer index. For efficiency this index +may be passed instead of the name, by calling \f5agxget\fP and \f5agxset\fP. +The \f5printed\fP flag of an attribute may be set to 0 to skip it +when writing a graph file. +.PP +The \f5list\fP in an attribute dictionary is maintained in order of creation +and is NULL terminated. +Here is a program fragment to print node attribute names: +.nf + \f5attrsym_t *aptr; + for (i = 0; aptr = g\->univ\->nodedict\->list[i]; i++) puts(aptr\->name);\fP +.fi +.SH EXAMPLE GRAPH FILES +.nf +graph any_name { /* an undirected graph */ + a \-\- b; /* a simple edge */ + a \-\- x1 \-\- x2 \-\- x3; /* a chain of edges */ + "x3.a!" \-\- a; /* quotes protect special characters */ + b \-\- {q r s t}; /* edges that fan out */ + b [color="red",size=".5,.5"]; /* set various node attributes */ + node [color=blue]; /* set default attributes */ + b \-\- c [weight=25]; /* set edge attributes */ + subgraph sink_nodes {a b c}; /* make a subgraph */ +} + +digraph G { + size="8.5,11"; /* sets a graph attribute */ + a \-> b; /* makes a directed edge */ + chip12.pin1 \-> chip28.pin3; /* uses named node "ports" */ +} +.fi + +.SH SEE ALSO +.BR dot (1), +.BR neato (1), +.BR libdict (3) +.br +S. C. North and K. P. Vo, "Dictionary and Graph Libraries'' +1993 Winter USENIX Conference Proceedings, pp. 1\(hy11. + +.SH AUTHOR +Stephen North (north@ulysses.att.com), AT&T Bell Laboratories. diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/gvc.3 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/gvc.3 new file mode 100644 index 0000000..f35385f --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/gvc.3 @@ -0,0 +1,66 @@ +.TH LIBGVC 3 +.SH NAME +\fBlibgvc\fR \- Graphviz context library +.SH SYNOPSIS +.ta .75i 1.5i 2.25i 3i 3.75i 4.5i 5.25i 6i +.PP +.nf +\f5 +#include + +/* set up a graphviz context */ +extern GVC_t *gvNEWcontext(char **info, char *user); +extern char *gvUsername(void); + +/* set up a graphviz context \(hy alternative */ +/* (wraps the above two functions using info built into libgvc) */ +extern GVC_t *gvContext(void); + +/* parse command line args \(hy minimally argv[0] sets layout engine */ +extern int gvParseArgs(GVC_t *gvc, int argc, char **argv); +extern graph_t *gvNextInputGraph(GVC_t *gvc); + +/* Compute a layout using a specified engine */ +extern int gvLayout(GVC_t *gvc, graph_t *g, char *engine); + +/* Compute a layout using layout engine from command line args */ +extern int gvLayoutJobs(GVC_t *gvc, graph_t *g); + +/* Render layout into string attributes of the graph */ +extern void attach_attrs(graph_t *g); + +/* Parse an html string */ +extern char *agstrdup_html(char *s); +extern int aghtmlstr(char *s); + +/* Render layout in a specified format to an open FILE */ +extern int gvRender(GVC_t *gvc, graph_t *g, char *format, FILE *out); + +/* Render layout in a specified format to an open FILE */ +extern int gvRenderFilename(GVC_t *gvc, graph_t *g, char *format, char *filename); + +/* Render layout according to \-T and \-o options found by gvParseArgs */ +extern int gvRenderJobs(GVC_t *gvc, graph_t *g); + +/* Clean up layout data structures \(hy layouts are not nestable (yet) */ +extern int gvFreeLayout(GVC_t *gvc, graph_t *g); + +/* Clean up graphviz context */ +extern int gvFreeContext(GVC_t *gvc); + +\fP +.fi +.SH DESCRIPTION +\fIlibgvc\fP provides a context for applications wishing to manipulate +and render graphs. It provides a command line parsing, common rendering code, +and a plugin mechanism for renderers. + +.SH SEE ALSO +.BR dot (1), +.BR neato (1), +.BR libcdt (3) +.BR libgraph (3) +.br + +.SH AUTHOR +John Ellson (ellson@research.att.com), AT&T diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/pathplan.3 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/pathplan.3 new file mode 100644 index 0000000..90591b8 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man3/pathplan.3 @@ -0,0 +1,97 @@ +.TH LIBPATH 3 "01 APRIL 1997" +.SH NAME +\fBlibpathplan\fR \- finds and smooths shortest paths +.SH SYNOPSIS +.ta .75i 1.5i 2.25i 3i 3.75i 4.5i 5.25i 6i +.PP +.nf +\f5 +#include + +typedef struct Pxy_t { + double x, y; +} Pxy_t; + +typedef struct Pxy_t Ppoint_t; +typedef struct Pxy_t Pvector_t; + +typedef struct Ppoly_t { + Ppoint_t *ps; + int pn; +} Ppoly_t; + +typedef Ppoly_t Ppolyline_t; + +typedef struct Pedge_t { + Ppoint_t a, b; +} Pedge_t; + +typedef struct vconfig_s vconfig_t; + +#define POLYID_NONE +#define POLYID_UNKNOWN + +\fP +.fi +.SH FUNCTIONS + +.nf +\f5 +int Pshortestpath(Ppoly_t *boundary, Ppoint_t endpoints[2], Ppolyline_t *output_route); +\fP +.fi +Finds a shortest path between two points in a simple polygon. +You pass endpoints interior to the polygon boundary. +A shortest path connecting the points that remains in the polygon +is returned in output_route. If either endpoint does not lie in +the polygon, an error code is returned. (what code!!) + +.nf +\f5 +vconfig_t *Pobsopen(Ppoly_t **obstacles, int n_obstacles); +.br +int Pobspath(vconfig_t *config, Ppoint_t p0, int poly0, Ppoint_t p1, int poly1, Ppolyline_t *output_route); +.br +void Pobsclose(vconfig_t *config); +\fP +.fi +These functions find a shortest path between two points in a +simple polygon that possibly contains polygonal obstacles (holes). +\f5Pobsopen\fP creates a configuration (an opaque struct of type +\f5vconfig_t\fP) on a set of obstacles. \f5Pobspath\fP finds +a shortest path between the endpoints that remains outside the +obstacles. If the endpoints are known to lie inside obstacles, +\f5poly0\fP or \f5poly1\fP should be set to the index in the +\f5obstacles\fP array. If an endpoint is definitely not inside +an obstacle, then \f5POLYID_NONE\fP should be passed. If the +caller has not checked, then \f5POLYID_UNKNOWN\fP should be passed, +and the path library will perform the test. + +(!! there is no boundary polygon in this model?!!!) + +.nf +\f5 +int Proutespline (Pedge_t *barriers, int n_barriers, Ppolyline_t input_route, Pvector_t endpoint_slopes[2], + Ppolyline_t *output_route); +\fP +.fi + +This function fits a Bezier curve to a polyline path. +The curve must avoid a set of barrier segments. The polyline +is usually the \f5output_route\fP of one of the shortest path +finders, but it can be any simple path that doesn't cross +any obstacles. The input also includes endpoint slopes and +0,0 means unconstrained slope. + +Finally, this utility function converts an input list of polygons +into an output list of barrier segments: +.nf +\f5 +int Ppolybarriers(Ppoly_t **polys, int n_polys, Pedge_t **barriers, int *n_barriers); +\fP +.fi + +.SH AUTHORS +David Dobkin (dpd@cs.princeton.edu), +Eleftherios Koutsofios (ek@research.att.com), +Emden Gansner (erg@research.att.com). diff --git a/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man7/graphviz.7 b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man7/graphviz.7 new file mode 100644 index 0000000..eda8315 --- /dev/null +++ b/Master/Agile Software Development/TestApp/dist/lib/graphviz/share/man/man7/graphviz.7 @@ -0,0 +1,106 @@ +.\" -*- nroff -*- +.\" This manual is for graphviz, a rich set of graph drawing tools, and it +.\" can be distributed under the same terms as the graphviz package. +.\" +.\" Copyright (C) 2006 Cyril Brulebois +.\" +.TH GRAPHVIZ 7 "November 19, 2006" +.SH "NAME" +graphviz \- rich set of graph drawing tools + +.SH "SYNOPSIS" +This manpage has been written to fulfil the need of a centralized documentation +presenting all available tools in the graphviz package. + +.SH "AVAILABLE TOOLS" + +.SS "Graph layout programs" +.TP +.B dot +filter for hierarchical layouts of graphs +.TP +.B neato +filter for symmetric layouts of graphs +.TP +.B twopi +filter for radial layouts of graphs +.TP +.B circo +filter for circular layout of graphs +.TP +.B fdp +filter for symmetric layouts of graphs +.PP +All of the filters work with either directed or undirected graphs, though +.B dot +is typically used for directed graphs and +.B neato +for undirected graphs. +Note also that \fBneato \-n[2]\fP can be used to render layouts produced +by the other filters. +.SS "Graph drawing programs" +.TP +.B lefty +A Programmable Graphics Editor +.TP +.B lneato +lefty + neato +.TP +.B dotty +lefty + dot + + +.SS "Graph layout enhancement" +.TP +.B gvcolor +flow colors through a ranked digraph +.TP +.B unflatten +adjust directed graphs to improve layout aspect ratio +.TP +.B gvpack +merge and pack disjoint graphs + +.SS "Graph information and transformation" +.TP +.B gc +count graph components +.TP +.B acyclic +make directed graph acyclic +.TP +.B nop +pretty-print graph file +.TP +.B ccomps +connected components filter for graphs +.TP +.B sccmap +extract strongly connected components of directed graphs +.TP +.B tred +transitive reduction filter for directed graphs +.TP +.B dijkstra +single-source distance filter +.TP +.B bcomps +biconnected components filter for graphs +.TP +.B gvpr +graph pattern scanning and processing language +.TP +.B prune +prune directed graphs + +.SS "Other" +.TP +.B "gxl2dot, dot2gxl" +GXL-DOT converters + +.SH "AUTHOR" +This manual page was written by Cyril Brulebois + in november 2006, based on an initial +documentation effort by Joachim Berdal Haga . It can be +distributed under the same terms as the graphviz package. + -- cgit v1.2.3