GraphLibrary  0.0.1
A simple library that implements various graph algorithms.
 All Classes Namespaces Files Functions Variables Typedefs Macros
UpdateFlaggedEntities.hpp
Go to the documentation of this file.
1 #ifndef GL_UPDATE_FLAGGED_ENTITIES_HPP
2 #define GL_UPDATE_FLAGGED_ENTITIES_HPP
3 
4 namespace gl::interface
5 {
6 
14 template <class GRAPH, class EDGE_SELECTOR>
15 void colorFlaggedEdges (GRAPH& graph, EDGE_SELECTOR&& selector)
16 {
17  for (auto edge = graph.edge_begin(); edge != graph.edge_end(); ++edge)
18  {
19  const auto selectedVal = selector(edge->source(), edge->dest());
20  if (selectedVal.first)
21  {
22  edge->color(selectedVal.second);
23  }
24  }
25 }
33 template <class GRAPH, class NODE_SELECTOR>
34 void colorFlaggedNodes (GRAPH& graph, NODE_SELECTOR&& selector)
35 {
36  for (auto node = graph.node_begin(); node != graph.node_end(); ++node)
37  {
38  const auto selectedVal = selector(node->id());
39  if (selectedVal.first)
40  {
41  node->color(selectedVal.second);
42  }
43  }
44 }
54 template <class GRAPH, class EDGE_SELECTOR, class NODE_SELECTOR>
55 void colorFlaggedEntities (GRAPH& graph, EDGE_SELECTOR&& edge_selector, NODE_SELECTOR&& node_selector)
56 {
57  gl::interface::colorFlaggedEdges(graph,edge_selector);
58  gl::interface::colorFlaggedNodes(graph,node_selector);
59 }
60 
61 } // namespace gl::interface
62 
63 #endif // GL_UPDATE_FLAGGED_ENTITIES_HPP
void colorFlaggedNodes(GRAPH &graph, NODE_SELECTOR &&selector)
Colors nodes selectively using a selector function.
Definition: UpdateFlaggedEntities.hpp:34
void colorFlaggedEntities(GRAPH &graph, EDGE_SELECTOR &&edge_selector, NODE_SELECTOR &&node_selector)
Colors nodes & edges selectively using a selector function.
Definition: UpdateFlaggedEntities.hpp:55
void colorFlaggedEdges(GRAPH &graph, EDGE_SELECTOR &&selector)
Colors edges selectively using a selector function.
Definition: UpdateFlaggedEntities.hpp:15