13#ifndef ML_GRAPH_TO_BOOST_UNDIRECTED_GRAPH_H
14#define ML_GRAPH_TO_BOOST_UNDIRECTED_GRAPH_H
23#include <boost/operators.hpp>
24#include <boost/graph/graph_traits.hpp>
25#include <boost/graph/properties.hpp>
26#include <boost/property_map/property_map.hpp>
77 public virtual incidence_graph_tag,
78 public virtual vertex_list_graph_tag
162 return _edge->succNode();
164 return _edge->predNode();
188 ml_ug_out_edge_iterator,
202 std::vector<ml::VesselEdge*>::iterator edgeIter)
257 inline std::pair<boost::graph_traits<ml_undirected_graph_ptr>::out_edge_iterator,
262 return std::make_pair(
282 inline std::pair<boost::graph_traits<ml_undirected_graph_ptr>::vertex_iterator,
294 return static_cast<long> (g->
numNodes());
#define MLGRAPHUTILITIES_EXPORT
NodeIterator beginNode()
Provide iterator access to the begin of the node map.
NodeIterator endNode()
Provide iterator access to the end of the node map.
size_t numNodes() const
Returns the number nodes in this graph.
const VesselNode * getNode(Vector3 pos) const
Get the node with minimal distance to \cpos. Uses method distance() of node classes.
Graph()
Default constructor.
value_type operator[](boost::ml_ug_edge edge) const
boost::ml_ug_edge key_type
boost::lvalue_property_map_tag category
friend bool operator==(const self &a, const self &b)
ml::VesselNode * target()
ml::VesselNode * source()
ml_ug_edge(ml::VesselNode *vertex, ml::VesselEdge *edge)
friend bool operator!=(const self &a, const self &b)
ml_ug_vertex_id_map(ml_undirected_graph_ptr g)
ml_undirected_graph_ptr _g
ml::VesselNode * key_type
boost::readable_property_map_tag category
unsigned int operator[](ml::VesselNode *vertex) const
Tags a Graph object to be handled as undirected graph containing VesselEdges.
ml_ug_out_edge_iterator(ml::VesselNode *vertex, std::vector< ml::VesselEdge * >::iterator edgeIter)
std::vector< ml::VesselEdge * >::iterator _edgeIter
friend bool operator==(const self &x, const self &y)
boost::ml_ug_edge operator*()
ml_ug_out_edge_iterator()
ml::UndirectedGraph * ml_undirected_graph_ptr
typedef for use with graph_traits<>
Forward declaration for the boost::mutex class.
boost::graph_traits< ml_graph_ptr >::vertices_size_type num_vertices(const ml_graph_ptr g)
Returns the number of vertices in the graph g.
std::pair< boost::graph_traits< ml_graph_ptr >::out_edge_iterator, boost::graph_traits< ml_graph_ptr >::out_edge_iterator > out_edges(boost::graph_traits< ml_graph_ptr >::vertex_descriptor vertex, const ml_graph_ptr)
boost::graph_traits< ml_graph_ptr >::vertex_descriptor vertex(boost::graph_traits< ml_graph_ptr >::degree_size_type arrayIndex, const ml_graph_ptr g)
Returns the vertex at internal index.
ml_vertex_id_map get(vertex_index_t, ml_graph_ptr g)
std::pair< boost::graph_traits< ml_graph_ptr >::vertex_iterator, boost::graph_traits< ml_graph_ptr >::vertex_iterator > vertices(ml_graph_ptr g)
Returns an iterator-range providing access to all the vertices in the graph g.
boost::graph_traits< ml_graph_ptr >::vertex_descriptor source(graph_traits< ml_graph_ptr >::edge_descriptor e, const ml_graph_ptr)
Returns the vertex descriptor for u of the edge (u,v) represented by e.
boost::graph_traits< ml_graph_ptr >::degree_size_type out_degree(boost::graph_traits< ml_graph_ptr >::vertex_descriptor vertex, const ml_graph_ptr)
boost::graph_traits< ml_graph_ptr >::vertex_descriptor target(graph_traits< ml_graph_ptr >::edge_descriptor e, const ml_graph_ptr)
Returns the vertex descriptor for v of the edge (u,v) represented by e.
ml_ug_edge edge_descriptor
The type for edge representative objects.
long vertices_size_type
The unsigned integer type used to represent the number of vertices in the graph.
ml::Graph::NodeIterator vertex_iterator
ml_undirected_graph_traversal_tag traversal_category
This describes the ways in which the vertices and edges of the graph can be visited.
ml::VesselNode * vertex_descriptor
The type for vertex representative objects.
allow_parallel_edge_tag edge_parallel_category
ml_ug_out_edge_iterator out_edge_iterator
undirected_tag directed_category
This type shall be convertible to directed_tag or undirected_tag.
ml_ug_edge_weight_map const_type
ml_ug_edge_weight_map type
ml_ug_vertex_id_map const_type