The concept of traversers is one of the key designs of NVSG and goes along with the Separation of Data from Their Operations. A traverser serves as link between the scene graph and a defined operation to be performed on the scene graph. More precisely, a traverser covers the following tasks:
Besides iterating a scene graph, the base class also provide per-object locking. In particular, this feature allows for multiple read-only traversers to run in parallel in a multithreaded environment. One can think of a single scene graph that is rendered to multiple output devices simultaneously.
Performing a special operation (render, save, etc.) on a given scene graph is achieved by means of overloading.