logic: Simplified node bundling by collecting relevant data upfront
This commit is contained in:
@@ -309,15 +309,16 @@ void Node::forEachChildNode(std::function<void(Node*)> func) const
|
||||
);
|
||||
}
|
||||
|
||||
void Node::forEachChildNodeRecursive(std::function<void(Node*)> func) const
|
||||
void Node::forEachNodeRecursive(std::function<void(const Node*)> func) const
|
||||
{
|
||||
func(this);
|
||||
|
||||
forEachEdgeOfType(Edge::EDGE_MEMBER,
|
||||
[func, this](Edge* e)
|
||||
{
|
||||
if (this != e->getTo())
|
||||
{
|
||||
func(e->getTo());
|
||||
e->getTo()->forEachChildNode(func);
|
||||
e->getTo()->forEachNodeRecursive(func);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
void forEachEdge(std::function<void(Edge*)> func) const;
|
||||
void forEachEdgeOfType(Edge::EdgeTypeMask mask, std::function<void(Edge*)> func) const;
|
||||
void forEachChildNode(std::function<void(Node*)> func) const;
|
||||
void forEachChildNodeRecursive(std::function<void(Node*)> func) const;
|
||||
void forEachNodeRecursive(std::function<void(const Node*)> func) const;
|
||||
|
||||
bool hasReferences() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user