sl@0: // Copyright 2004 The Trustees of Indiana University. sl@0: sl@0: // Distributed under the Boost Software License, Version 1.0. sl@0: // (See accompanying file LICENSE_1_0.txt or copy at sl@0: // http://www.boost.org/LICENSE_1_0.txt) sl@0: sl@0: // Authors: Douglas Gregor sl@0: // Andrew Lumsdaine sl@0: #ifndef BOOST_GRAPH_RANDOM_LAYOUT_HPP sl@0: #define BOOST_GRAPH_RANDOM_LAYOUT_HPP sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: namespace boost { sl@0: sl@0: template sl@0: void sl@0: random_graph_layout(const Graph& g, PositionMap position_map, sl@0: Dimension minX, Dimension maxX, sl@0: Dimension minY, Dimension maxY, sl@0: RandomNumberGenerator& gen) sl@0: { sl@0: typedef typename mpl::if_, sl@0: uniform_int, sl@0: uniform_real >::type distrib_t; sl@0: typedef typename mpl::if_, sl@0: RandomNumberGenerator&, sl@0: uniform_01 > sl@0: ::type gen_t; sl@0: sl@0: gen_t my_gen(gen); sl@0: distrib_t x(minX, maxX); sl@0: distrib_t y(minY, maxY); sl@0: typename graph_traits::vertex_iterator vi, vi_end; sl@0: for(tie(vi, vi_end) = vertices(g); vi != vi_end; ++vi) { sl@0: position_map[*vi].x = x(my_gen); sl@0: position_map[*vi].y = y(my_gen); sl@0: } sl@0: } sl@0: sl@0: } // end namespace boost sl@0: sl@0: #endif // BOOST_GRAPH_RANDOM_LAYOUT_HPP