Boost logo

Boost :

From: Jens Müller (jens.mueller_at_[hidden])
Date: 2007-03-12 12:24:05


Hi,

I'm currently trying to write a bidirected graph adapter (which in short
takes a bidirectional graph and doubles all edges, so the graph is
bidirected, I don't care whether that creates parallel edges). This is
useful e.g. for search algorithms that expect a directed graph and
follows edges only in their true direction.

I've taken <boost/graph/reverse_graph.hpp> as a start, and I am
currently working on property maps.

In reverse_graph.hpp, I found a specialization of
vertex_property_selector (and edge_property_selector). Google shows only
code for that word, no documentation.

How exactly is this supposed to work? When I need the type of a pmap
given a Graph and a Tag, some traits class (which?) looks at the
graph_tag of my graph, takes the class given as type in
vertex_property_selector<graph_tag> and specialized the bind_ member of
that type? Is this right?

So, I can have s spezialization of bind_ for a specific Tag, right? I
want to pass on all property accesses to the underlying graph, except
edge_index_t: I want to double that and add 1 for the reverse edges, so
I can create a iterator_property_map based on edge_index when I need it.

Oh, and what is the purpose of the Property template parameter of bind_?

When this is finished, is there any interest to have that adapter in BGL?

Cheers,

Jens


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk