Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

gv-tcl (3)

Name

gv-tcl - graph manipulation in tcl

Synopsis

#!/usr/bin/tclsh
package require gv

Description

gv(3)                      Library Functions Manual                      gv(3)



NAME
       gv_tcl - graph manipulation in tcl


SYNOPSIS
       #!/usr/bin/tclsh
       package require gv


USAGE
       Requires tcl8.3 or later.


INTRODUCTION
       gv_tcl  is  a dynamically loaded extension for tcl that provides access
       to the graph facilities of graphviz.


COMMANDS
       New graphs

       New empty graph
              <graph_handle> gv::graph <name>
              <graph_handle> gv::digraph <name>
              <graph_handle> gv::strictgraph <name>
              <graph_handle> gv::strictdigraph <name>

       New graph from a dot-syntax string or file
              <graph_handle> gv::readstring <string>
              <graph_handle> gv::read <string> filename
              <graph_handle> gv::read <channel>

       Add new subgraph to existing graph
              <graph_handle> gv::graph <graph_handle> <name>

       New nodes

       Add new node to existing graph
              <node_handle> gv::node <graph_handle> <name>

       New edges

       Add new edge between existing nodes
              <edge_handle> gv::edge <tail_node_handle> <head_node_handle>

       Add a new edge between an existing tail node, and  a  named  head  node
       which will be induced in the graph if it doesn't already exist
              <edge_handle> gv::edge <tail_node_handle> <head_name>

       Add  a  new  edge  between an existing head node, and a named tail node
       which will be induced in the graph if it doesn't already exist
              <edge_handle> gv::edge <tail_name> <head_node_handle>

       Add a new edge between named tail  and head nodes which will be induced
       in the graph if they don't already exist
              <edge_handle> gv::edge <graph_handle> <tail_name> <head_name>

       Setting attribute values

       Set value of named attribute of graph/node/edge - creating attribute if
       necessary
              <string> gv::setv <graph_handle> <attr_name> <attr_value>
              <string> gv::setv <node_handle> <attr_name> <attr_value>
              <string> gv::setv <edge_handle> <attr_name> <attr_value>

       Set value of existing attribute  of  graph/node/edge  (using  attribute
       handle)
              <string> gv::setv <graph_handle> <attr_handle> <attr_value>
              <string> gv::setv <node_handle> <attr_handle> <attr_value>
              <string> gv::setv <edge_handle> <attr_handle> <attr_value>

       Getting attribute values

       Get value of named attribute of graph/node/edge
              <string> gv::getv <graph_handle> <attr_name>
              <string> gv::getv <node_handle> <attr_name>
              <string> gv::getv <edge_handle> <attr_name>

       Get value of attribute of graph/node/edge (using attribute handle)
              <string> gv::getv <graph_handle> <attr_handle>
              <string> gv::getv <node_handle> <attr_handle>
              <string> gv::getv <edge_handle> <attr_handle>

       Obtain names from handles
              <string> gv::nameof <graph_handle>
              <string> gv::nameof <node_handle>
              <string> gv::nameof <attr_handle>

       Find handles from names
              <graph_handle> gv::findsubg <graph_handle> <name>
              <node_handle> gv::findnode <graph_handle> <name>
              <edge_handle> gv::findedge <tail_node_handle> <head_node_handle>
              <attr_handle> gv::findattr <graph_handle> <name>
              <attr_handle> gv::findattr <node_handle> <name>
              <attr_handle> gv::findattr <edge_handle> <name>

       Misc graph navigators returning handles
              <node_handle> gv::headof <edge_handle>
              <node_handle> gv::tailof <edge_handle>
              <graph_handle> gv::graphof <graph_handle>
              <graph_handle> gv::graphof <edge_handle>
              <graph_handle> gv::graphof <node_handle>
              <graph_handle> gv::rootof <graph_handle>

       Obtain handles of proto node/edge for setting default attribute values
              <node_handle> gv::protonode <graph_handle>
              <edge_handle> gv::protoedge <graph_handle>

       Iterators

       Iteration termination tests
              <boolean_string> gv::ok <graph_handle>
              <boolean_string> gv::ok <node_handle>
              <boolean_string> gv::ok <edge_handle>
              <boolean_string> gv::ok <attr_handle>

       Iterate over subgraphs of a graph
              <graph_handle> gv::firstsubg <graph_handle>
              <graph_handle> gv::nextsubg <graph_handle> <subgraph_handle>

       Iterate over supergraphs of a graph (obscure and rarely useful)
              <graph_handle> gv::firstsupg <graph_handle>
              <graph_handle> gv::nextsupg <graph_handle> <subgraph_handle>

       Iterate over edges of a graph
              <edge_handle> gv::firstedge <graph_handle>
              <edge_handle> gv::nextedge <graph_handle> <edge_handle>

       Iterate over outedges of a graph
              <edge_handle> gv::firstout <graph_handle>
              <edge_handle> gv::nextout <graph_handle> <edge_handle>

       Iterate over edges of a node
              <edge_handle> gv::firstedge <node_handle>
              <edge_handle> gv::nextedge <node_handle> <edge_handle>

       Iterate over out-edges of a node
              <edge_handle> gv::firstout <node_handle>
              <edge_handle> gv::nextout <node_handle> <edge_handle>

       Iterate over head nodes reachable from out-edges of a node
              <node_handle> gv::firsthead <node_handle>
              <node_handle> gv::nexthead <node_handle> <head_node_handle>

       Iterate over in-edges of a graph
              <edge_handle> gv::firstin <graph_handle>
              <edge_handle> gv::nextin <node_handle> <edge_handle>

       Iterate over in-edges of a node
              <edge_handle> gv::firstin <node_handle>
              <edge_handle> gv::nextin <graph_handle> <edge_handle>

       Iterate over tail nodes reachable from in-edges of a node
              <node_handle> gv::firsttail <node_handle>
              <node_handle> gv::nexttail <node_handle> <tail_node_handle>

       Iterate over nodes of a graph
              <node_handle> gv::firstnode <graph_handle>
              <node_handle> gv::nextnode <graph_handle> <node_handle>

       Iterate over nodes of an edge
              <node_handle> gv::firstnode <edge_handle>
              <node_handle> gv::nextnode <edge_handle> <node_handle>

       Iterate over attributes of a graph
              <attr_handle> gv::firstattr <graph_handle>
              <attr_handle> gv::nextattr <graph_handle> <attr_handle>

       Iterate over attributes of an edge
              <attr_handle> gv::firstattr <edge_handle>
              <attr_handle> gv::nextattr <edge_handle> <attr_handle>

       Iterate over attributes of a node
              <attr_handle> gv::firstattr <node_handle>
              <attr_handle> gv::nextattr <node_handle> <attr_handle>

       Remove graph objects
              <boolean_string> gv::rm <graph_handle>
              <boolean_string> gv::rm <node_handle>
              <boolean_string> gv::rm <edge_handle>

       Layout

       Annotate  a  graph  with  layout attributes and values using a specific
       layout engine
              <boolean_string> gv::layout <graph_handle> <string> engine

       Render

       Render a layout into attributes of the graph
              <boolean_string> gv::render <graph_handle>

       Render a layout to stdout
              <boolean_string> gv::render <graph_handle> <string> format

       Render to an open file
              <boolean_string>  gv::render  <graph_handle>   <string>   format
              <channel> fout

       Render a layout to an unopened file by name
              <boolean_string>   gv::render   <graph_handle>  <string>  format
              <string> filename

       Render to a string result
              <string> gv::renderresult <graph_handle> ing <string> format
              gv::renderresult <graph_handle> <string> format <string> outdata

       Render to an open channel
              <boolean_string> gv::renderchannel <graph_handle> <string>  for-
              mat <string> channelname

       Render a layout to a malloc'ed string, to be free'd by the caller

       (deprecated - too easy to leak memory)

       (still needed for "eval [gv::renderdata $G tk]" )
              <string> gv::renderdata <graph_handle> <string> format

       Writing graph back to file
              <boolean_string> gv::write <graph_handle> <string> filename
              <boolean_string> gv::write <graph_handle> <channel>

       Graph transformation tools
              <boolean_string> gv::tred <graph_handle>


KEYWORDS
       graph, dot, neato, fdp, circo, twopi, tcl.




ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+-----------------------------+
       |ATTRIBUTE TYPE |      ATTRIBUTE VALUE        |
       +---------------+-----------------------------+
       |Availability   | image/graphviz/graphviz-tcl |
       +---------------+-----------------------------+
       |Stability      | Volatile                    |
       +---------------+-----------------------------+

NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source  was  downloaded from  http://gitlab.com/graphviz/graphviz/-/ar-
       chive/2.47.1/graphviz-2.47.1.tar.gz.

       Further information about this software can be found on the open source
       community website at http://www.graphviz.org/.



                                 28 June 2022                            gv(3)