Refactor|libdeng2: PathTree nodes index their own children
Branch nodes now have the ability to keep track on who their immediate child nodes are. This is a crucial property of a tree data structure, and required by Archive (and later, FS2).
Now when PathTree is asked to traverse the nodes matching a parent, it can simply look at only the child nodes of the parent rather than iterating through all the nodes of the tree.
Of course, the user is free to iterate the children manually using PathTree::Node::children() (and maybe a PathTreeIterator).
This behavior can be disabled with the PathTree::NoLocalBranchIndex flag, if the user of the tree needs no access to a specific parent's children.
Refactor|libdeng2: PathTree nodes index their own children
Branch nodes now have the ability to keep track on who their immediate
child nodes are. This is a crucial property of a tree data structure,
and required by Archive (and later, FS2).
Now when PathTree is asked to traverse the nodes matching a parent,
it can simply look at only the child nodes of the parent rather than
iterating through all the nodes of the tree.
Of course, the user is free to iterate the children manually using
PathTree::Node::children() (and maybe a PathTreeIterator).
This behavior can be disabled with the PathTree::NoLocalBranchIndex
flag, if the user of the tree needs no access to a specific parent's
children.