# DataGraphTraverser¶

class DataGraphTraverser

This object supervises the traversal of the data graph and the moving of data from one DataNode to its children. The data graph is used to manage data from input devices, etc. See the overview of the data graph in dataNode.h.

Inheritance diagram

explicit DataGraphTraverser(Thread *current_thread = Thread::get_current_thread())
DataGraphTraverser(DataGraphTraverser const&) = default
void collect_leftovers(void)

Pick up any nodes that didn’t get completely traversed. These must be nodes that have multiple parents, with at least one parent completely outside of the data graph.

Thread *get_current_thread(void) const

Returns the currently-executing thread object, as passed to the DataGraphTraverser constructor.

void traverse(PandaNode *node)

Starts the traversal of the data graph at the indicated root node.

void traverse_below(PandaNode *node, DataNodeTransmit const &output)

Continues the traversal to all the children of the indicated node, passing in the given data, without actually calling transmit_data() on the given node.