Re: [graphviz-interest] How to add and get custom attributes from dot-file?
"Emden R. Gansner" <[email protected]>
| Newsgroups | gmane.comp.video.graphviz |
|---|---|
| Message-ID | <[email protected]> |
On 9/2/13 5:54 AM, Igor Chetverovod wrote:
> Hi all!
> I am using cgraph for loading and parsing of a graph description
> from a dot-file.
> Now I need to add a custom attributes to the nodes in the file and
> have access to them after the file reading to the memory. How can I
> do that?
>
>
Suppose you want nodes to carry the attribute "date". In your file, you
would simply add
another attribute a node:
node0 [color=red date="2 September 2013"]
When you read the graph in, if np is a pointer (Agnode_t*) to node0,
then you can just
call agget(np, "date") and this will return the value of date stored in
the node.
Note that if no node has a date attribute, agget() will return NULL.
Otherwise, it will return
some non-NULL string value, either the value set to a specific node or
the default date value,
which well may be the empty string.
If you want to add the attributes in your program, you first need to
declare the attribute using
agattr(). For example, you might do
s = agattr(g, AGNODE, "date", "");
where g is a pointer to a graph and the last value specifies that the
default date is the empty string"".
After this, you can attach data values to nodes using
agset (np, "data", "1 January 2014");
or, more efficiently,
agxset (np, s, "1 January 2014");
Sometimes it is simpler to use
agsafeset (np, "data", "1 January 2014", "");
which combines the attribute declaration and assignment.
Emden
_______________________________________________
[email protected]
http://lists.research.att.com/mailman/listinfo/graphviz-interest