#ifndef TOOLKIT_H
#define TOOLKIT_H

#include "SceneGraph.h"
#include "SceneGraphVisitor.h"


namespace nsToolkit {

enum
{
	TOOLKIT_OK = 0,
	TOOLKIT_KO = 1
};


class Toolkit
{
	private:
		nsSceneGraph::SceneGraph *sceneGraph;

	public:
		Toolkit(int argc, char *argv[]);
		virtual ~Toolkit(void);

		virtual void performInit(void) = 0;
		virtual void performAction(void) = 0;

		virtual void swapBuffers(void) = 0;
		virtual void redrawScene(void) = 0;

		virtual bool beginGLExecution(void) = 0;
		virtual void endGLExececution(void) = 0;

		void performSceneGraphAction(nsSceneGraph::SceneGraphVisitor *visitor);

		void setSceneGraph(nsSceneGraph::SceneGraph *sceneGraph);
		nsSceneGraph::SceneGraph *getSceneGraph(void);
};

}

#endif

