(Tcl Dot also pulls in Gdtclft for writing to a gif image.)
dotnew graphtype ?attributeName attributeValue? ?...?
-> graphHandle
graphtype:= (graph|digraph|graphstrict|digraphstrict)
Read a graph.
dotread fileHandle
-> graphHandle
Add a node to a graph
graphHandle addnode ?nodeName? ?attributeName attributeValue? ?...?
-> nodeHandle
If the nodeName parameter is omitted the name of the
node defaults to nodeHandle.
Add an edge to a graph
graphHandle addedge tailnode headnode ?attributeName attributeValue? ?...?
-> edgeHandle
tailnode = (tailnodeHandle|tailnodeName)
headnode = (headnodeHandle|headnodeName)
NodeHandles take precedence, so if nodeName is of the form
"node99" it may conflict. The precedence can be overridden
with code such as:
graphHandle addedge \
[graphHandle findnode tailnodeName] \
[graphHandle findnode headnodeName]
Add a subgraph to a graph
graphHandle addsubgraph ?subgName? ?attributeName attributeValue? ?...?
-> subgHandle
If the subgName parameter is omitted the name of the
node defaults to subgHandle.
Clusters are created by giving a subgraph a name that begins
with "cluster".
Add a edge to a node
tailnodeHandle addedge headnode ?attributeName attributeValue? ?...?
-> edgeHandle
headnode = (headnodeHandle|headnodeName)
Delete a graph/node/edge
graphHandle delete
nodeHandle delete
edgeHandle delete
Count nodes/edges
graphHandle countnodes
-> integer
graphHandle countedges
-> integer
List subgraphs/nodes/edges
graphHandle listnodes
-> {nodeHandle ... }
nodeHandle listedges
-> {edgeHandle ... }
nodeHandle listoutedges
-> {edgeHandle ... }
nodeHandle listinedges
-> {edgeHandle ... }
edgeHandle listnodes
-> tailnodeHandle headnodeHandle
graphHandle listsubgraphs
-> {graphHandle ... }
Find nodes/edges by nodename
graphHandle findnode nodename
-> nodeHandle
graphHandle findedge tailnodename headnodename
-> edgeHandle
nodeHandle findedge nodename
-> edgeHandle
Show graph/node/edge name
graphHandle showname
-> graphname
nodeHandle showname
-> nodename
edgeHandle showname
-> edgename
Set default node/edge attributes
graphHandle setnodeattributes attributeName attributeValue ?...?
graphHandle setedgeattributes attributeName attributeValue ?...?
List node/edge attribute names
graphHandle listnodeattributes
-> {attributeName ... }
graphHandle listedgeattributes
-> {attributeName ... }
Query default node/edge attributes
graphHandle querynodeattributes attributeName ?...?
-> {attributeValue ... }
graphHandle queryedgeattributes attributeName ?...?
-> {attributeValue ... }
Set graph/node/edge attributes
graphHandle setattributes attributeName attributeValue ?...?
nodeHandle setattributes attributeName attributeValue ?...?
edgeHandle setattributes attributeName attributeValue ?...?
List graph/node/edge attribute names
graphHandle listattributes
-> {attributeName ... }
nodeHandle listattributes
-> {attributeName ... }
edgeHandle listattributes
-> {attributeName ... }
Query graph/node/edge attribute values
graphHandle queryattributes attributeName ?attributeName? ?...?
-> {attributeValue ... }
nodeHandle queryattributes attributeName ?attributeName? ?...?
-> {attributeValue ... }
edgeHandle queryattributes attributeName ?attributeName? ?...?
-> {attributeValue ... }
Layout nodes
graphHandle layoutNodes
NOTE: Not yet implemented. Use:
graphHandle layout
to layout both nodes and edges.
Layout edges
graphHandle layoutEdges -style
style:= (straight|spline)
NOTE: Not yet implemented. Use:
graphHandle layout
to layout both nodes and edges.
Write graph to file
graphHandle write filehandle format
format:= (ps|mif|hpgl|gif|plain|dot)
Render graph to existing or new gifImage (see:
gdTcl)
graphHandle rendergd ?gdHandle?
-> gdHandle
Render graph to canvas (tkdot only)
graphHandle render canvashandle
NOTE: Not yet fully implemented. For now use:
set c canvasHandle
eval [graphHandle render]