#ifndef PW_SCENE_TRAVERSER_HPP
#define PW_SCENE_TRAVERSER_HPP

#include <pw/scene/node.hpp>

#include <functional>

namespace pw {

class traverser {

public:

	enum direction {
		up,
		down
	};

	typedef std::function<void(node*)> edge_function;

	direction _direction = direction::up;

	edge_function on_enter,on_leave;

	void visit(node* node);

	void bfs(node::ref root);

};

}

#endif // PW_SCENE_TRAVERSER_HPP
