|
Boost Users : |
Subject: Re: [Boost-users] BGL: Write graphviz file with invisible edges
From: David Doria (daviddoria_at_[hidden])
Date: 2011-06-21 14:05:37
> The strategy for doing that is to create a dynamic_properties object, add an
> entry to it for the "style" edge property and some property map, and then
> pass that to write_graphviz_dp. An example of what you want to do is in
> libs/graph/example/graphviz.cpp; see how the "weight" property is handled.
> In your case, the value type of the property would be std::string.
>
> -- Jeremiah Willcock
Thanks Jeremiah,
Here is what I tried:
#include <iostream>
#include <string>
#include <boost/graph/undirected_graph.hpp>
#include <boost/graph/graphviz.hpp>
struct StyleProperty
{
std::string style;
}
typedef boost::undirected_graph<boost::no_property, StyleProperty> Graph;
int main()
{
Graph g;
Graph::vertex_descriptor v0 = g.add_vertex();
Graph::vertex_descriptor v1 = g.add_vertex();
Graph::vertex_descriptor v2 = g.add_vertex();
StyleProperty styleInvisible;
styleInvisible.style = "invis";
StyleProperty styleNormal;
styleNormal = "normal";
boost::add_edge(v0,v1,styleInvisible, g);
boost::add_edge(v1,v2,styleNormal g);
boost::dynamic_properties dp;
dp.property("style", get(&StyleProperty::style, g));
boost::write_graphviz_dp(std::cout, g, dp, "style");
return 0;
}
However, I get an exception "dynamic property get cannot retrieve
value for property: style."
Can you see where I have gone wrong?
Thanks,
David
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net