Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::grid_graph< Dimensions, VertexIndex, EdgeIndex > Class Template Reference

#include <grid_graph.hpp>

Collaboration diagram for boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >:

Classes

struct  traversal_category
 

Public Types

typedef grid_graph< Dimensions,
VertexIndex, EdgeIndex > 
type
 
typedef VertexIndex vertices_size_type
 
typedef EdgeIndex edges_size_type
 
typedef EdgeIndex degree_size_type
 
typedef boost::array
< VertexIndex, Dimensions > 
vertex_descriptor
 
typedef std::pair
< vertex_descriptor,
vertex_descriptor
edge_descriptor
 
typedef counting_iterator
< vertices_size_type
vertex_index_iterator
 
typedef
detail::grid_graph_vertex_at
< type
vertex_function
 
typedef transform_iterator
< vertex_function,
vertex_index_iterator
vertex_iterator
 
typedef counting_iterator
< edges_size_type
edge_index_iterator
 
typedef
detail::grid_graph_edge_at
< type
edge_function
 
typedef transform_iterator
< edge_function,
edge_index_iterator
edge_iterator
 
typedef counting_iterator
< degree_size_type
degree_iterator
 
typedef
detail::grid_graph_out_edge_at
< type
out_edge_function
 
typedef transform_iterator
< out_edge_function,
degree_iterator
out_edge_iterator
 
typedef
detail::grid_graph_in_edge_at
< type
in_edge_function
 
typedef transform_iterator
< in_edge_function,
degree_iterator
in_edge_iterator
 
typedef
detail::grid_graph_adjacent_vertex_at
< type
adjacent_vertex_function
 
typedef transform_iterator
< adjacent_vertex_function,
degree_iterator
adjacency_iterator
 
typedef directed_tag directed_category
 
typedef disallow_parallel_edge_tag edge_parallel_category
 

Public Member Functions

 grid_graph (vertex_descriptor dimension_lengths)
 
 grid_graph (vertex_descriptor dimension_lengths, bool wrap_all_dimensions)
 
 grid_graph (vertex_descriptor dimension_lengths, WrapDimensionArray wrap_dimension)
 
std::size_t dimensions () const
 
vertices_size_type length (std::size_t dimension) const
 
bool wrapped (std::size_t dimension) const
 
vertex_descriptor next (vertex_descriptor vertex, std::size_t dimension_index, vertices_size_type distance=1) const
 
vertex_descriptor previous (vertex_descriptor vertex, std::size_t dimension_index, vertices_size_type distance=1) const
 

Static Public Member Functions

static vertex_descriptor null_vertex ()
 

Protected Member Functions

vertices_size_type num_vertices () const
 
edges_size_type num_edges () const
 
edges_size_type num_edges (std::size_t dimension_index) const
 
vertices_size_type index_of (vertex_descriptor vertex) const
 
vertex_descriptor vertex_at (vertices_size_type vertex_index) const
 
edge_descriptor edge_at (edges_size_type edge_index) const
 
edges_size_type index_of (edge_descriptor edge) const
 
degree_size_type out_degree (vertex_descriptor vertex) const
 
edge_descriptor out_edge_at (vertex_descriptor vertex, degree_size_type out_edge_index) const
 
degree_size_type in_degree (vertex_descriptor vertex) const
 
edge_descriptor in_edge_at (vertex_descriptor vertex, edges_size_type in_edge_index) const
 
void precalculate ()
 

Protected Attributes

const vertex_descriptor m_dimension_lengths
 
WrapDimensionArray m_wrap_dimension
 
vertices_size_type m_num_vertices
 
boost::array< edges_size_type,
Dimensions > 
m_edge_count
 
edges_size_type m_num_edges
 

Friends

template<typename Graph , typename Descriptor , typename Index >
struct grid_graph_index_map
 
template<typename Descriptor >
struct grid_graph_reverse_edge_map
 
std::pair< typename
type::vertex_iterator,
typename type::vertex_iterator
vertices (const type &graph)
 
type::vertices_size_type num_vertices (const type &graph)
 
type::vertex_descriptor vertex (typename type::vertices_size_type vertex_index, const type &graph)
 
std::pair< typename
type::out_edge_iterator,
typename
type::out_edge_iterator
out_edges (typename type::vertex_descriptor vertex, const type &graph)
 
type::degree_size_type out_degree (typename type::vertex_descriptor vertex, const type &graph)
 
type::edge_descriptor out_edge_at (typename type::vertex_descriptor vertex, typename type::degree_size_type out_edge_index, const type &graph)
 
std::pair< typename
type::adjacency_iterator,
typename
type::adjacency_iterator
adjacent_vertices (typename type::vertex_descriptor vertex, const type &graph)
 
type::edges_size_type num_edges (const type &graph)
 
type::edge_descriptor edge_at (typename type::edges_size_type edge_index, const type &graph)
 
std::pair< typename
type::edge_iterator, typename
type::edge_iterator
edges (const type &graph)
 
std::pair< typename
type::in_edge_iterator,
typename
type::in_edge_iterator
in_edges (typename type::vertex_descriptor vertex, const type &graph)
 
type::degree_size_type in_degree (typename type::vertex_descriptor vertex, const type &graph)
 
type::degree_size_type degree (typename type::vertex_descriptor vertex, const type &graph)
 
type::edge_descriptor in_edge_at (typename type::vertex_descriptor vertex, typename type::degree_size_type in_edge_index, const type &graph)
 
std::pair< typename
type::edge_descriptor, bool > 
edge (typename type::vertex_descriptor source_vertex, typename type::vertex_descriptor destination_vertex, const type &graph)
 
type::vertices_size_type get (vertex_index_t, const type &graph, typename type::vertex_descriptor vertex)
 
type::edges_size_type get (edge_index_t, const type &graph, typename type::edge_descriptor edge)
 
grid_graph_index_map< type,
typename
type::vertex_descriptor,
typename
type::vertices_size_type
get (vertex_index_t, const type &graph)
 
grid_graph_index_map< type,
typename type::edge_descriptor,
typename type::edges_size_type
get (edge_index_t, const type &graph)
 
grid_graph_reverse_edge_map
< typename
type::edge_descriptor
get (edge_reverse_t, const type &graph)
 

Member Typedef Documentation

template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef transform_iterator<adjacent_vertex_function, degree_iterator> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::adjacency_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef detail::grid_graph_adjacent_vertex_at<type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::adjacent_vertex_function
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef counting_iterator<degree_size_type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::degree_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef EdgeIndex boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::degree_size_type
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef directed_tag boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::directed_category
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef std::pair<vertex_descriptor, vertex_descriptor> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::edge_descriptor
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef detail::grid_graph_edge_at<type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::edge_function
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef counting_iterator<edges_size_type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::edge_index_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef transform_iterator<edge_function, edge_index_iterator> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::edge_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef disallow_parallel_edge_tag boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::edge_parallel_category
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef EdgeIndex boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::edges_size_type
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef detail::grid_graph_in_edge_at<type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::in_edge_function
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef transform_iterator<in_edge_function, degree_iterator> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::in_edge_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef detail::grid_graph_out_edge_at<type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::out_edge_function
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef transform_iterator<out_edge_function, degree_iterator> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::out_edge_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef grid_graph<Dimensions, VertexIndex, EdgeIndex> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::type
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef boost::array<VertexIndex, Dimensions> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::vertex_descriptor
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef detail::grid_graph_vertex_at<type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::vertex_function
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef counting_iterator<vertices_size_type> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::vertex_index_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef transform_iterator<vertex_function, vertex_index_iterator> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::vertex_iterator
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
typedef VertexIndex boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::vertices_size_type

Constructor & Destructor Documentation

template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::grid_graph ( vertex_descriptor  dimension_lengths)
inline
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::grid_graph ( vertex_descriptor  dimension_lengths,
bool  wrap_all_dimensions 
)
inline
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::grid_graph ( vertex_descriptor  dimension_lengths,
WrapDimensionArray  wrap_dimension 
)
inline

Member Function Documentation

template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
std::size_t boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::dimensions ( ) const
inline
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
degree_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::in_degree ( vertex_descriptor  vertex) const
inlineprotected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
edge_descriptor boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::in_edge_at ( vertex_descriptor  vertex,
edges_size_type  in_edge_index 
) const
inlineprotected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
vertices_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::index_of ( vertex_descriptor  vertex) const
inlineprotected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
vertex_descriptor boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::next ( vertex_descriptor  vertex,
std::size_t  dimension_index,
vertices_size_type  distance = 1 
) const
inline
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
static vertex_descriptor boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::null_vertex ( )
inlinestatic
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
edges_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::num_edges ( ) const
inlineprotected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
edges_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::num_edges ( std::size_t  dimension_index) const
inlineprotected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
vertices_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::num_vertices ( ) const
inlineprotected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
degree_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::out_degree ( vertex_descriptor  vertex) const
inlineprotected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
vertex_descriptor boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::previous ( vertex_descriptor  vertex,
std::size_t  dimension_index,
vertices_size_type  distance = 1 
) const
inline
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
vertex_descriptor boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::vertex_at ( vertices_size_type  vertex_index) const
inlineprotected

Friends And Related Function Documentation

template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
std::pair<typename type::adjacency_iterator, typename type::adjacency_iterator> adjacent_vertices ( typename type::vertex_descriptor  vertex,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::degree_size_type degree ( typename type::vertex_descriptor  vertex,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
std::pair<typename type::edge_descriptor, bool> edge ( typename type::vertex_descriptor  source_vertex,
typename type::vertex_descriptor  destination_vertex,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::edge_descriptor edge_at ( typename type::edges_size_type  edge_index,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
std::pair<typename type::edge_iterator, typename type::edge_iterator> edges ( const type graph)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::vertices_size_type get ( vertex_index_t  ,
const type graph,
typename type::vertex_descriptor  vertex 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::edges_size_type get ( edge_index_t  ,
const type graph,
typename type::edge_descriptor  edge 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
grid_graph_index_map< type, typename type::vertex_descriptor, typename type::vertices_size_type> get ( vertex_index_t  ,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
grid_graph_index_map< type, typename type::edge_descriptor, typename type::edges_size_type> get ( edge_index_t  ,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
grid_graph_reverse_edge_map< typename type::edge_descriptor> get ( edge_reverse_t  ,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
template<typename Graph , typename Descriptor , typename Index >
friend struct grid_graph_index_map
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
template<typename Descriptor >
friend struct grid_graph_reverse_edge_map
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::degree_size_type in_degree ( typename type::vertex_descriptor  vertex,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::edge_descriptor in_edge_at ( typename type::vertex_descriptor  vertex,
typename type::degree_size_type  in_edge_index,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
std::pair<typename type::in_edge_iterator, typename type::in_edge_iterator> in_edges ( typename type::vertex_descriptor  vertex,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::edges_size_type num_edges ( const type graph)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::vertices_size_type num_vertices ( const type graph)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::degree_size_type out_degree ( typename type::vertex_descriptor  vertex,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::edge_descriptor out_edge_at ( typename type::vertex_descriptor  vertex,
typename type::degree_size_type  out_edge_index,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
std::pair<typename type::out_edge_iterator, typename type::out_edge_iterator> out_edges ( typename type::vertex_descriptor  vertex,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
type::vertex_descriptor vertex ( typename type::vertices_size_type  vertex_index,
const type graph 
)
friend
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
std::pair<typename type::vertex_iterator, typename type::vertex_iterator> vertices ( const type graph)
friend

Member Data Documentation

template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
const vertex_descriptor boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::m_dimension_lengths
protected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
boost::array<edges_size_type, Dimensions> boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::m_edge_count
protected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
edges_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::m_num_edges
protected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
vertices_size_type boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::m_num_vertices
protected
template<std::size_t Dimensions, typename VertexIndex = std::size_t, typename EdgeIndex = VertexIndex>
WrapDimensionArray boost::grid_graph< Dimensions, VertexIndex, EdgeIndex >::m_wrap_dimension
protected

The documentation for this class was generated from the following file: