Boost logo

Boost-Commit :

From: garcia_at_[hidden]
Date: 2007-09-25 11:32:38


Author: garcia
Date: 2007-09-25 11:32:23 EDT (Tue, 25 Sep 2007)
New Revision: 39523
URL: http://svn.boost.org/trac/boost/changeset/39523

Log:
Initial Revision. Stolen from the write-graphviz.html docs.

Added:
   trunk/libs/graph/example/write_graphviz.cpp (contents, props changed)

Added: trunk/libs/graph/example/write_graphviz.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/graph/example/write_graphviz.cpp 2007-09-25 11:32:23 EDT (Tue, 25 Sep 2007)
@@ -0,0 +1,58 @@
+// Copyright 2007 Trustees of Indiana University
+
+// Use, modification and distribution is subject to the Boost Software
+// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// A simple example of using write_graphviz to output a BGL adjacency_list
+// graph in GraphViz Dot format.
+
+// Author: Doug Gregor
+
+
+#include <boost/graph/graphviz.hpp>
+
+
+enum files_e { dax_h, yow_h, boz_h, zow_h, foo_cpp,
+ foo_o, bar_cpp, bar_o, libfoobar_a,
+ zig_cpp, zig_o, zag_cpp, zag_o,
+ libzigzag_a, killerapp, N };
+const char* name[] = { "dax.h", "yow.h", "boz.h", "zow.h", "foo.cpp",
+ "foo.o", "bar.cpp", "bar.o", "libfoobar.a",
+ "zig.cpp", "zig.o", "zag.cpp", "zag.o",
+ "libzigzag.a", "killerapp" };
+
+int main(int,char*[])
+{
+
+ typedef std::pair<int,int> Edge;
+ Edge used_by[] = {
+ Edge(dax_h, foo_cpp), Edge(dax_h, bar_cpp), Edge(dax_h, yow_h),
+ Edge(yow_h, bar_cpp), Edge(yow_h, zag_cpp),
+ Edge(boz_h, bar_cpp), Edge(boz_h, zig_cpp), Edge(boz_h, zag_cpp),
+ Edge(zow_h, foo_cpp),
+ Edge(foo_cpp, foo_o),
+ Edge(foo_o, libfoobar_a),
+ Edge(bar_cpp, bar_o),
+ Edge(bar_o, libfoobar_a),
+ Edge(libfoobar_a, libzigzag_a),
+ Edge(zig_cpp, zig_o),
+ Edge(zig_o, libzigzag_a),
+ Edge(zag_cpp, zag_o),
+ Edge(zag_o, libzigzag_a),
+ Edge(libzigzag_a, killerapp)
+ };
+ const int nedges = sizeof(used_by)/sizeof(Edge);
+ int weights[nedges];
+ std::fill(weights, weights + nedges, 1);
+
+ using namespace boost;
+
+ typedef adjacency_list< vecS, vecS, directedS,
+ property< vertex_color_t, default_color_type >,
+ property< edge_weight_t, int >
+ > Graph;
+ Graph g(used_by, used_by + nedges, weights, N);
+
+ write_graphviz(std::cout, g, make_label_writer(name));
+}


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk