33#ifdef OGDF_INCLUDE_CGAL
46template<
typename Graph = OGDFGraphWrapper,
typename Flags = datastructure::TimestampFlags>
49 using Node =
typename Graph::Node;
50 using Edge =
typename Graph::Edge;
53 std::queue<Node>
queue;
56 static void settle_nothing(Node) {
59 static bool expand_all(Node,
typename Graph::Edge) {
return true; }
61 static void traverse_nothing(Node, Edge) {
79 unsigned int iterations = 0;
80 while (!
queue.empty()) {
97 template<
typename Range,
typename FSettle,
typename FExpandEdge,
typename FTraverseEdge>
101 sources, [&]() { visited.clear(); },
102 [&](
Node u) {
return visited.is_set(u->index()); },
106 template<
typename Range,
typename FSettle>
108 traverse(source,
settle_node, expand_all, traverse_nothing);
111 template<
typename FSettle,
typename FExpandEdge,
typename FTraverseEdge>
114 std::vector<Node>
sources = {source};
node opposite(node v) const
Returns the adjacent node different from v.
EdgeElement * edge
The type of edges.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.