xvcg man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

VCG | XVCG(1l)							VCG | XVCG(1l)

NAME
       VCG tool - visualization of compiler graphs

SYNOPSIS
       vcg [options] [filename]
       xvcg [options] [filename]

SYNOPSIS FOR SEQUENCES OF GRAPH SPECIFICATIONS
       vcg -multi [options] [filename] [options] [filename] ...
       xvcg -multi [options] [filename] [options] [filename] ...

DESCRIPTION
       The  VCG	 tool  reads a VCG specification and visualizes the graph.  If
       not all positions of nodes are fixed, the tool lays the graph out using
       several	heuristics as reducing the number of crossings, minimizing the
       size of edges, centering of nodes.  The specification language  of  the
       VCG  tool  is  nearly compatible to GRL, the language of the Edge tool,
       but contains many extensions.  The VCG tool allows folding  of  dynami‐
       cally or statically specified regions of the graph.  It uses colors and
       runs on X11.  (An older version runs on Sunview.)

GENERAL OPTIONS
       -	      The input is stdin instead of a file.

       -h | -?	      Print a help message about the usage of the tool.

       -v | -version  Print a version and copyright message.

       -silent	      Be silent during the layout.  No	messages  or  warnings
		      are produced.

       -nocolors | -blackwhite
		      Do  not  use  colors  on a color screen.	On a monochrom
		      screen the graph is drawn in black & white even if it is
		      specified	 with colors.  On a color screen, this mode is
		      simulated, if this option is selected.   The  option  is
		      useful,  if  the	VCG tool conflicts with other programs
		      that need colors.

       -e <num> | -error <num>
		      Stop after <num> errors during parsing of the specifica‐
		      tion (default: 16).

       -a <num> | -animation <num>
		      Start  the tool as animation handler.  This implies that
		      the tool is controlled  by  signals  (USRSIG1,  USRSIG2)
		      from an external program.	 The signal USRSIG1 causes the
		      VCG tool to open the display window and reload its input
		      file.   The  signal USRSIG2 causes the VCG tool to close
		      the display window.  The tool processes  the  input  and
		      indicates	 the  completion of the processing to the con‐
		      trolling program.	 If <num> is greater 0,	 this  indica‐
		      tion  is done by sleeping <num> seconds and touching the
		      input file  afterwards  such  that  its  time  stamp  is
		      refreshed.   If <num> is less than 0, this indication is
		      done by sleeping - <num> seconds and sending signal USR‐
		      SIG1 to the caller process afterwards.

       -m | -multi    Read  multiple  files  one  after	 another  to display a
		      sequence of graphs.  Instead of an exit of the tool, the
		      next  file is read.  The option -multi must be specified
		      before the first input file.

       -bary	      Use bary centering to reduce the number of  edge	cross‐
		      ings (default).

       -median	      Use median centering instead of bary centering to reduce
		      the number of crossings.	On graphs with	large  average
		      degree of edges, bary centering might be faster.

       -barymedian    Use  a hybrid method to reduce the number of edge cross‐
		      ings.  Bary centering is used for all nodes with differ‐
		      ent  bary	 values.  For nodes with same bary values, the
		      crossing reduction  heuristics  normally	has  a	random
		      effect.  With this hybrid method, the crossing reduction
		      of nodes with same bary values is done by median center‐
		      ing.

       -medianbary    Use  a hybrid method to reduce the number of edge cross‐
		      ings.  Median centering is used for all nodes with  dif‐
		      ferent  median  values.  For nodes with same median val‐
		      ues, the crossing reduction heuristics  normally	has  a
		      random  effect.	With  this hybrid method, the crossing
		      reduction of nodes with same median values  is  done  by
		      bary centering.

       -notune | -nofinetune
		      Switch the fine tuning layout phase off.	Fine tuning is
		      a postprocessing phase after partitioning of nodes  into
		      layers.  Fine tuning changes the layers of nodes to min‐
		      imize the length of edges.  If this  phase  is  switched
		      off,  it	yield  a less compact distribution of nodes in
		      the levels.

       -manhattan | -orthogonal
		      Switch the orthogonal manhattan layout on.  This	forces
		      edges  of	 gradient  0 or 90 degree.  The result of this
		      layout might be more aesthetical,	 if  additionally  the
		      priority layout phase with straight line tuning is used.
		      Thus, these phases are switched on, too, unless priority
		      layout  and  straight line tuning is switched explicitly
		      off.

       -nomanhattan | -noorthogonal
		      Switch the orthogonal manhattan layout explicitly off.

       -smanhattan    Use the orthogonal manhattan layout  without  separation
		      of  horizontal  line segments.  Horizontal line segments
		      are shared between different edges.  This looks nice for
		      trees  but  might	 be  confusing in general, because the
		      location of an edge might be ambiguously.

       -nosmanhattan  Switch the orthogonal manhattan layout  without  separa‐
		      tion explicitly off.

       -prio	      Switch  the  priority  layout  on.  This forces straight
		      long edges with  gradient	 90  degree  during  the  node
		      placement	 phase.	 The straight line tuning phase can be
		      used to improve the priority layout.  Thus,  this	 phase
		      is  switched  on,	 too,  unless  straight line tuning is
		      switched explicitly off.

       -noprio	      Switch the priority layout explicitly off.

       -straight      Switch the straight line tuning  phase  on.  This	 phase
		      forces  straight	long edges with gradient 90 degree. It
		      can be used to improve the priority layout.

       -nostraight    Switch the straight line tuning phase explicitly off.

       -nonearedge    Do not allow near edges in the layout.

       -l | -latelabels
		      Create the labels after the partitioning of edges.  This
		      has  only	 an  effect  if labels are shown in a nondirty
		      way.  If labels are created after	 the  partitioning  of
		      edges,  the  layout  will	 be a little bit wider and may
		      have less crossings.  But note that sometimes this  lay‐
		      out may also be worser than the normal layout.

       -hidesingles | -ignoresingles
		      Ignore  single nodes (nodes without visible edges)  that
		      are not connected with the remaining graph.  These nodes
		      are sometimes not of interest, but would spread the lay‐
		      out if they were visible.

       -s | -summarize
		      Switch edge summary layout on.  Multiple	edges  between
		      the  same	 source and target node are summarized if they
		      have the same visible appearance.	 This reduces the num‐
		      ber of visible edges.

OPTIONS FOR THE LAYOUT SPEED
       The  speed  of  the  layout process can be influenced by selecting time
       limits and iteration bounds of the different layout  phases.   Optional
       layout phases can completely be skipped.	 But note that we need a mini‐
       mal time for each graph, in  order  to  initialize  the	internal  data
       structures.   Furthermore,  a fast layout is probably also an ugly lay‐
       out.

       -t <num> | -timelimit <num>
		      Set the time limit to <num> seconds of  real  time.   If
		      the  time limit is exceeded, the fastest possible layout
		      mode is switched on.  This may yield a very ugly layout.
		      Of  course,  a  time limit does not mean that the layout
		      really needs so much time: The  layout  may  be  faster,
		      because the graph structure is very simple, or it may be
		      slower, because even the fastest possible layout already
		      exceeds  the  time limit.	 Further note, that the layout
		      depends on the real time, i.e. on the load of  the  com‐
		      puter. Thus, given a time limit, two identical trys need
		      not to give identical results.

       -f | -fast     Switch the fast and dirty and ugly mode on.  The	layout
		      phase  will  be  very fast, but the layout will be ugly.
		      This is helpful on very  large  graphs  where  aesthetic
		      visibility  is  of  minor	 importance.  The option -fast
		      implies -bmax 2 -cmax 2 -pmax 2 -rmax 2 -smax 2.

       -b <num> | -bmax <num> | -bending <num>
		      Set the maximal number of iterations used for the reduc‐
		      tion  of edge bendings to <num>.	Edge bendings are used
		      to avoid that edges are drawn  across  nodes.   Reducing
		      the  number  of  iterations results in a faster but ugly
		      layout, i.e. to much bendings occur.  The default	 value
		      is 100.

       -c <num> | -cmax <num> | -crossing <num>
		      Set the maximal number of iterations used for the reduc‐
		      tion of edge crossings  to  <num>.   The	edge  crossing
		      reduction method is called bary centering or median cen‐
		      tering.  These may  be  very  time  consuming  on	 large
		      graphs.	Reducing the number of iterations results in a
		      faster but ugly layout.  As default, the method is iter‐
		      ated as long as improvements are possible.

       -cmin <num>    Set the minimal number of iterations used for the reduc‐
		      tion of edge crossings to <num>.	The crossing reduction
		      method  tries  to detect improvements of the layout.  If
		      an iteration of that method does not  yield  an  improv‐
		      ment,  the  method  normally  stops.  But this situation
		      might be a local minimum of the quality of  the  layout,
		      i.e.  further  iterations	 might	find  a better layout.
		      Thus, the minimal number of iterations can be specified.
		      The default value is 0.

       -p <num> | -pmax <num> | -pendulum <num>
		      Set  the	maximal number of iterations used for the bal‐
		      ancing  by the pendulum method to <num>.	 The  pendulum
		      method  calculates the x co-ordinates of nodes such that
		      the layout is medium dense and balanced.	 It  tries  to
		      avoid  extreme gradients of edges.  It works like a pen‐
		      dulum where the nodes are the balls, the edges  are  the
		      strings  and  uppermost  nodes are fixed on the ceiling.
		      Reducing the number of iterations results	 in  a	faster
		      but ugly layout.	The default value is 100.

       -pmin <num>    Set  the	minimal number of iterations used for the bal‐
		      ancing  by the pendulum method to <num>.	If  an	itera‐
		      tion  of	that  method does not yield an improvment, the
		      method normally stops.  But this situation  might	 be  a
		      local minimum of the quality of the layout, i.e. further
		      iterations might find a better layout.  Thus, the	 mini‐
		      mal  number of iterations can be specified.  The default
		      value is 0.

       -r <num> | -rmax <num> | -rubberband <num>
		      Set the maximal number of iterations used for  the  bal‐
		      ancing   by the rubberband method to <num>.  The rubber‐
		      band method calculates the x co-ordinates of nodes  such
		      that the nodes are centered relatively to their incoming
		      and outgoing edges.  It works like a network  where  the
		      edges  pull on the nodes like rubberbands.  Reducing the
		      number of iterations results in a faster but  ugly  lay‐
		      out.  The default value is 100.

       -rmin <num>    Set  the	minimal number of iterations used for the bal‐
		      ancing  by the rubberband method to <num>.  If an itera‐
		      tion  of	that  method does not yield an improvment, the
		      method normally stops.  But this situation  might	 be  a
		      local minimum of the quality of the layout, i.e. further
		      iterations might find a better layout.  Thus, the	 mini‐
		      mal  number of iterations can be specified.  The default
		      value is 0.

       -smax <num>    Set the  maximal	number	of  iterations	used  for  the
		      straight	line tuning phase to <num>.  This phase forces
		      straight long edges with gradient 90 degree.  It can  be
		      used  to	improve	 the  priority layout or the manhattan
		      layout.

       -nocopt | -nocopt2
		      Skip the optimization phase 2 during the crossing reduc‐
		      tion.   This  phase  takes  very long time on very large
		      graphs.  Before reducing the number of iterations of the
		      crossing	reduction  phase (see option -cmax <num> ) you
		      should first try to skip this optimization phase 2.

       -nocoptl | -nocoptlocal
		      Switch a local crossing optimization  off.   This	 phase
		      additionally  examines  pairs of edge polygons and tries
		      to unwind them.  It slows down  if  the  degree  of  the
		      nodes is large.

OPTIONS FOR THE DISTRIBUTION OF NODES
       The  quality  of the layout is mainly influenced by the distribution of
       the nodes into the hierarchy levels.  Nodes  of	the  same  level  will
       appear  in  the	same  row.   Since it depends on the application which
       hierarchy is the best, there are different algorithms for this phase.

       -d normal      Normal   distribution   of  nodes	   into	  the	levels
		      (default).   This algorithm is based on  the calculation
		      of the strongly connected components.

       -d dfs	      Depth first search  distribution of nodes	 into the lev‐
		      els.  This is the fastest method.

       -d 0 | -d minbackward
		      Reduce  the  number of backward edges heuristically.  If
		      the graph is acyclic, no backward edges will occur, i.e.
		      all edges point into the same direction.

       -d + | -d maxdepth
		      Maximize	the  depth  of	the  layout heuristically.  It
		      should be used if the layout is too wide in x direction.
		      This algorithm is very fast.

       -d - | -d mindepth
		      Minimize	the  depth  of	the  layout heuristically.  It
		      should be used if the layout is too wide in y direction.
		      This algorithm is very fast.

       -d ++ | -d maxdepthslow
		      Maximize	the  depth  of	the  layout heuristically. See
		      above.  This algorithm is very slow, but may give better
		      results.

       -d -- | -d mindepthslow
		      Minimize	the  depth  of	the  layout heuristically. See
		      above.  This algorithm is very slow, but may give better
		      results.

       -d minindeg | -d minindegree
		      Prepare  the  nodes by sorting them according increasing
		      indegree (number of incoming edges).  The nodes with the
		      minimal  indegree	 come  first.	This  may have various
		      effects on the layout.

       -d maxindeg | -d maxindegree
		      Prepare the nodes by sorting them	 according  decreasing
		      indegree.	  The  nodes  with  the	 maximal indegree come
		      first.  This may have various effects on the layout.

       -d minoutdeg | -d minoutdegree
		      Prepare the nodes by sorting them	 according  increasing
		      outdegree	 (number  of  outgoing edges).	The nodes with
		      the minimal outdegree come first.	 This may have various
		      effects on the layout.

       -d maxoutdeg | -d maxoutdegree
		      Prepare  the  nodes by sorting them according decreasing
		      outdegree.  The nodes with the  maximal  outdegree  come
		      first.  This may have various effects on the layout.

       -d mindeg | -d mindegree
		      Prepare  the  nodes by sorting them according increasing
		      degree (number of incoming  and  outgoing	 edges).   The
		      nodes with the minimal degree come first.	 This may have
		      various effects on the layout.

       -d maxdeg | -D maxdeg
		      Prepare the nodes by sorting them	 according  decreasing
		      degree.	The  nodes with the maximal degree come first.
		      This may have various effects on the layout.

       -d tree	      Use a specialized layout for trees.  It  does  not  work
		      with non-trees.

OPTIONS FOR THE VIEW
       The  view  of  a	 graph	is the method of the visual appearance	of the
       graph in the window after the  layout.	Changing  the  view  does  not
       require	a  relayout  of the graph.  Views are transformations that are
       done during the drawing.

       -view normal   Normal view onto the graph. No distortion.

       -view cfish    Cartesian fisheye view.  The graph is   distorted	  such
		      that the whole graph is visible.	Horizontal  and verti‐
		      cal lines don't change their direction.

       -view fcfish   Cartesian fisheye view with fixed size focus.  The graph
		      is  distorted,  but  not	necessarily the whole graph is
		      visible.

       -view pfish    Polar fisheye view.  The graph is	 distorted  such  that
		      the  whole graph is visible.  Even horizontal and verti‐
		      cal lines might be distorted.

       -view fpfish   Polar fisheye view  with	fixed size  focus.  The	 graph
		      is  distorted,  but  not	necessarily the whole graph is
		      visible.

       -spline	      Use splines instead of polygons to draw edges.  This  is
		      mainly  useful  if  you  want to export the graph into a
		      high  quality  PostScript	 picture.   WARNING:   Drawing
		      splines is very slow.

       -nonodes	      Suppress drawing of nodes.

       -noedges	      Suppress drawing of edges.

       -xpos <num>    Set  the	x-coordinate of the initial point of the graph
		      that appears at the window  origin  or  of  the  initial
		      focus point to <num>.

       -ypos <num>    Set  the	y-coordinate of the initial point of the graph
		      that appears at the window  origin  or  of  the  initial
		      focus point to <num>.

PRINTER DRIVER INTERFACE
       The  printer  driver  interface allows to produce an output file of the
       visualized graph without the need of interaction.  The VCG tool acts as
       a kind of converter program in this case: it converts a VCG file into a
       PostScript or bitmap file.  It is recommended to use the option -silent
       in combination to one of the options -vcgoutput, -psoutput, -pbmoutput,
       or -ppmoutput.  Example:

       xvcg -silent -color -scale 75 -psoutput test.ps test.vcg

       converts the VCG file test.vcg into a PostScript file that  contains  a
       color  picture  of the graph scaled by 75 %.  In this case the interac‐
       tive display is suppressed.  If the graph does not fit on the page, the
       output might be nonsense.

PRINTER DRIVER OPTIONS
       -vcgoutput <filename>
		      Produce  a  VCG  file named <filename> that contains the
		      graph laid out, i.e. including information about the co-
		      ordinates of the visible nodes.  The most of the follow‐
		      ing format options have no effect for the VCG file  for‐
		      mat.

       -psoutput <filename>
		      Produce a PostScript file named <filename> that contains
		      the graph.

       -pbmoutput <filename>
		      Produce a bitmap file named  <filename>  in  PBM	format
		      that contains the graph in black and white.

       -ppmoutput <filename>
		      Produce  a  bitmap  file	named <filename> in PPM format
		      that contains the graph in colors.

       -paper <papertype>
		      Select the paper type. Default is	 a4.   <papertype>  is
		      one of:

		      a4	din A4 (21 x 30 cm)
		      A4	din A4 (21 x 30 cm)
		      b5	din B5 (18.5 x 27 cm)
		      B5	din B5 (18.5 x 27 cm)
		      a5	din A5 (15 x 21 cm)
		      A5	din A5 (15 x 21 cm)
		      11x17	tabloid (11 x 17 in)
		      tabloid	tabloid (11 x 17 in)
		      8x11	letter (8.5 x 11 in)
		      letter	letter (8.5 x 11 in)
		      8x14	legal (8.5 x 14 in)
		      legal	legal (8.5 x 14 in)

       -noBoundingBox Suppress	the  calculation  of a BoundingBox (PostScript
		      format).

       -color	      Select a color file output.  This option works only with
		      the PostScript format.

       -grey	      Select a greyscaled file output.	This option works only
		      with the PostScript format.

       -blackwhite    Select a monochromatic file output.  This is the default
		      color.   This option works only with the PostScript for‐
		      mat.

       -portrait      Select the paper orientation `Portrait' (default).

       -landscape     Select the paper orientation `Landscape'.

       -split <num>   Split the graph into <num>  pages.   This	 option	 works
		      only  with  the  PostScript format.  The number of pages
		      must be one of 1, 4, 9, 16, or 25.

       -xdpi <num>    Set the horizontal resolution for the PPM and  PBM  for‐
		      mat.   This  allows  to  adapt the bitmap formats to the
		      resolutions of the printer.

       -ydpi <num>    Set the vertical resolution for the PPM and PBM  format.
		      This  allows  to adapt the bitmap formats to the resolu‐
		      tions of the printer.

       -scale <num>   Scale the graph to <num> percent for  the	 file  output.
		      The  default  scaling fits the graph with maximal aspect
		      ratio to the paper size.

       -width <float> <units>
		      Fit the graph  such  that	 its  width  is	 smaller  than
		      <float> <units>.	This works only if no scaling is spec‐
		      ified.  <units> are:

		      in	Inches
		      inch	Inches
		      ft	Foot
		      foot	Foot
		      feet	Foot
		      mm	Millimeter
		      cm	Centimeter
		      dm	Decimeter
		      m		Meter

       -height <float> <units>
		      Fit the graph such  that	its  height  is	 smaller  than
		      <float> <units>.	This works only if no scaling is spec‐
		      ified.

       -lm <float> <units>
		      Set the left margin of the output	 to  <float>  <units>.
		      This  works  only	 if no right margin is specified.  The
		      default position is centered on the page.	 In some cases
		      the  BoundingBox	of  the	 PostScript  output  meight be
		      wrong.  If a BoundingBox is needed   then	 we  recommend
		      the options -lm 0 cm -bm 0 cm.

       -rm <float> <units>
		      Set  the	right margin of the output to <float> <units>.
		      This works only if no left  margin  is  specified.   The
		      default position is centered on the page.

       -tm <float> <units>
		      Set  the	top  margin  of the output to <float> <units>.
		      This works only if no bottom margin is  specified.   The
		      default position is centered on the page.

       -bm <float> <units>
		      Set  the bottom margin of the output to <float> <units>.
		      This works only if no  top  margin  is  specified.   The
		      default position is centered on the page.

X11 OPTIONS
       -display <host:dpy>
		      Set  the	remote X11 server to host:dpy.	This is analo‐
		      gous to xterm(1l).

       -geometry <geom>
		      Specify the hint of size and location of the X11 window.
		      This is analogous to xterm(1l).

       -bw <num>      Set  the border width of the X11 window to <num> pixels.
		      This is analogous to xterm(1l).

       -font <xfont>  Set the font used for messages and menu items in the X11
		      window.  This is analogous to xterm(1l).

       -grabinputfocus
		      Switch setting of InputFocus on or off (depending on the
		      default).	 Cause the VCG tool to execute a  XSetInputFo‐
		      cus, or to avoid to execute a XSetInputFocus on initial‐
		      ization.

GRAMMAR
       The grammar of the specification language is the following:

       graph
	    ::=	 "graph:" '{' graph_entry_list '}'
	    ;

       graph_entry_list
	    ::=	 graph_entry_list graph_entry
	    | graph_entry
	    ;

       graph_entry
	    ::=	 graph_attribute
	    | node_defaults
	    | edge_defaults
	    | foldnode_defaults
	    | foldedge_defaults
	    | graph
	    | node
	    | edge
	    | nearedge
	    | bentnearedge
	    | backedge
	    ;

       graph_attribute
	    ::=	 "title" ':' string
	    | "label" ':' string
	    | "info1" ':' string
	    | "info2" ':' string
	    | "info3" ':' string
	    | "color" ':' enum_color
	    | "textcolor" ':'enum_color
	    | "bordercolor" ':'enum_color
	    | "width" ':' integer
	    | "height" ':' integer
	    | "borderwidth" ':' integer
	    | 'x' ':' integer
	    | 'y' ':' integer
	    | "loc:" '{' 'x' ':' integer 'y' ':' integer '}'
	    | "folding" ':' integer
	    | "scaling" ':' float
	    | "shrink" ':' integer
	    | "stretch" ':' integer
	    | "textmode" ':' enum_textmode
	    | "shape" ':' enum_shape
	    | "level" ':' integer
	    | "vertical_order" ':' integer
	    | "horizontal_order" ':' integer
	    | "status" ':' enum_status
	    | "xmax" ':' integer
	    | "ymax" ':' integer
	    | "xbase" ':' integer
	    | "ybase" ':' integer
	    | "xspace" ':' integer
	    | "xlspace" ':' integer
	    | "yspace" ':' integer
	    | "xraster" ':' integer
	    | "xlraster" ':' integer
	    | "yraster" ':' integer
	    | "invisible" ':' integer
	    | "hidden" ':' integer
	    | "classname" integer ':' string
	    | "infoname" integer ':' string
	    | "colorentry" integer ':' integer integer integer
	    | "layoutalgorithm" ':' enum_layoutalgorithm
	    | "layout_downfactor" ':' integer
	    | "layout_upfactor" ':' integer
	    | "layout_nearfactor" ':' integer
	    | "splinefactor" ':' integer
	    | "late_edge_labels" ':' enum_yes_no
	    | "display_edge_labels" ':' enum_yes_no
	    | "dirty_edge_labels" ':' enum_yes_no
	    | "finetuning" ':' enum_yes_no
	    | "ignoresingles"  ':' enum_yes_no
	    | "straight_phase" ':'  enum_yes_no
	    | "priority_phase" ':'  enum_yes_no
	    | "manhattan_edges" ':'  enum_yes_no
	    | "smanhattan_edges" ':'  enum_yes_no
	    | "nearedges" ':' enum_yes_no
	    | "orientation" ':' enum_orientation
	    | "node_alignment" ':' enum_node_align
	    | "port_sharing" ':' enum_yes_no
	    | "arrowmode" ':' enum_arrow_mode
	    | "spreadlevel" ':' integer
	    | "treefactor" ':' float
	    | "crossingphase2" ':' enum_yes_no
	    | "crossingoptimization" ':' enum_yes_no
	    | "crossingweight" ':' enum_cross_weight
	    | "view" ':'  enum_view
	    | "edges" ':' enum_yes_no
	    | "nodes" ':' enum_yes_no
	    | "splines" ':' enum_yes_no
	    | "bmax" ':' integer
	    | "cmax" ':' integer
	    | "cmin" ':' integer
	    | "pmax" ':' integer
	    | "pmin" ':' integer
	    | "rmax" ':' integer
	    | "rmin" ':' integer
	    | "smax" ':' integer
	    ;

       enum_color
	    ::=	 "aquamarine"
	    | "black"
	    | "blue"
	    | "cyan"
	    | "darkblue"
	    | "darkcyan"
	    | "darkgreen"
	    | "darkgrey"
	    | "darkmagenta"
	    | "darkred"
	    | "darkyellow"
	    | "gold"
	    | "green"
	    | "khaki"
	    | "lightblue"
	    | "lightcyan"
	    | "lightgreen"
	    | "lightgrey"
	    | "lightmagenta"
	    | "lightred"
	    | "lightyellow"
	    | "lilac"
	    | "magenta"
	    | "orange"
	    | "orchid"
	    | "pink"
	    | "purple"
	    | "red"
	    | "turquoise"
	    | "white"
	    | "yellow"
	    | "yellowgreen"
	    | integer
	    ;

       enum_orientation
	    ::=	 "top_to_bottom"
	    | "bottom_to_top"
	    | "left_to_right"
	    | "right_to_left"
	    ;

       enum_layoutalgorithm
	    ::=
	    | "tree"
	    | "maxdepth"
	    | "mindepth"
	    | "maxdepthslow"
	    | "mindepthslow"
	    | "maxdegree"
	    | "mindegree"
	    | "maxindegree"
	    | "minindegree"
	    | "maxoutdegree"
	    | "minoutdegree"
	    | "minbackward"
	    | "dfs"
	    ;

       enum_status
	    ::=	 "black"
	    | "grey"
	    | "white"
	    ;

       enum_yes_no
	    ::=	 "yes"
	    | "no"
	    ;

       enum_cross_weight
	    ::=	 "bary"
	    | "median"
	    | "barymedian"
	    | "medianbary"
	    ;

       enum_view
	    ::=	 "cfish"
	    | "fcfish"
	    | "pfish"
	    | "fpfish"
	    ;

       enum_arrow_mode
	    ::= "fixed"
	    | "free"
	    ;

       foldnode_defaults
	    ::=	 "foldnode." node_attribute
	    ;

       foldedge_defaults
	    ::=	 "foldedge." edge_attribute
	    ;

       node_defaults
	    ::=	 "node." node_attribute
	    ;

       edge_defaults
	    ::=	 "edge." edge_attribute
	    ;

       node ::=	 "node:" '{' node_attribute_list '}'
	    ;

       node_attribute_list
	    ::=	 node_attribute_list node_attribute
	    | node_attribute
	    ;

       edge ::=	 "edge:" '{' edge_attribute_list '}'
	    ;

       nearedge
	    ::=	 "nearedge:" '{' edge_attribute_list '}'
	    ;

       bentnearedge
	    ::=	 "bentnearedge:" '{' edge_attribute_list '}'
	    ;

       backedge
	    ::=	 "backedge:" '{' edge_attribute_list '}'
	    ;

       edge_attribute_list
	    ::=	 edge_attribute_list edge_attribute
	    | edge_attribute
	    ;

       node_attribute
	    ::=	 "title" ':' string
	    | "label" ':' string
	    | "info1" ':' string
	    | "info2" ':' string
	    | "info3" ':' string
	    | "color" ':' enum_color
	    | "textcolor" ':'enum_color
	    | "bordercolor" ':'enum_color
	    | "width" ':' integer
	    | "height" ':' integer
	    | "borderwidth" ':' integer
	    | "loc:" '{' 'x' ':' integer 'y' ':' integer '}'
	    | "folding" ':' integer
	    | "scaling" ':' float
	    | "shrink" ':' integer
	    | "stretch" ':' integer
	    | "textmode" ':' enum_textmode
	    | "shape" ':' enum_shape
	    | "level" ':' integer
	    | "vertical_order" ':' integer
	    | "horizontal_order" ':' integer
	    ;

       enum_textmode
	    ::=	 "center"
	    | "left_justify"
	    | "right_justify"
	    ;

       enum_shape
	    ::=	 "box"
	    | "rhomb"
	    | "ellipse"
	    | "triangle"
	    ;

       enum_node_align
	    ::=	 "bottom"
	    | "top"
	    | "center"
	    ;

       edge_attribute
	    ::=	 "sourcename" ':' string
	    | "targetname" ':' string
	    | "label" ':' string
	    | "textcolor" ':'enum_color
	    | "color" ':' enum_color
	    | "thickness" ':' integer
	    | "class" ':' integer
	    | "priority" ':' integer
	    | "arrowcolor" ':' enum_color
	    | "backarrowcolor" ':' enum_color
	    | "arrowsize" ':' integer
	    | "backarrowsize" ':' integer
	    | "arrowstyle" ':' enum_arrowstyle
	    | "backarrowstyle" ':' enum_arrowstyle
	    | "linestyle" ':' enum_linestyle
	    | "anchor" ':' integer
	    | "horizontal_order" ':' integer
	    ;

       enum_linestyle
	    ::=	 "continuous"
	    | "solid"
	    | "dotted"
	    | "dashed"
	    | "invisible"
	    ;

       enum_arrowstyle
	    ::=	 none
	    | line
	    | solid
	    ;

WARNINGS
       The VCG tool needs about 200 bytes per edge and node.  Depending on the
       layout,	it  will  produce  a  lot  of additional dummy nodes and dummy
       edges, such that it may run out of memory.  The layout algorithm	 needs
       exponentially time in the worst case.

ACKNOWLEDGEMENTS
       The  Edge  tool	was developed at the University of Karlsruhe.  GRL was
       described by S. Manke and F.N. Paulisch.
       Our colleagues M. Alt and C. Ferdinand found the	 most  bugs  and  gave
       many proposals for improvements.
       The  Institute  of Compiler Construction at the University of Saarland,
       Germany, and the COMPARE Consortium were the first and  most  important
       users  of  the  VCG  tool and gave us the motivation, the time and many
       hints during the development of the tool.

SEE ALSO
       Sunview(1) X11(1l) edge(l)
       vcgdemomaker(l) pbmshift(l) pbmrot90(l) pbm2hp(l)
       VCG - Visualization of Compiler Graphs, Design Report and User Documen‐
       tation,	Ref. Compare, USAAR-1049-visual, January 1994, updated January
       1995

BUGS
       The X11 version has the `InputFocus' problem.  This problem  is	solved
       for 99 % of all cases, but may still occur.
       If  a  graph is written to a file and reload from this file, the layout
       may be different and may be ugly.
       The attribute horizontal_order does only works  for  connected  graphs,
       but not for unconnected graphs.
       For some parameters, negative values are inappropriate even if the tool
       does not crashes in such situations.  However the result will  be  very
       ugly.   For  instance,  the  values of xbase and ybase should always be
       greater than zero.
       The spline routine is still too slow and has some bugs  when  exporting
       to a multi page PostScript file.
       Currently, no further bugs are known.

AUTHORS
       Georg Sander, University of Saarland, Germany.
       Iris Lemke, University of Saarland, Germany.

Release 1.3			  1995/01/05			VCG | XVCG(1l)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net