/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__NISCENEEVENT__
#define	__NISCENEEVENT__


namespace GS {
	namespace S3D {
		class Scene;

/*!
	@short	Scene event handler.
	@author	Emmanuel Julien (ejulien@gsworks.fr)
*/
struct	ISceneEvent
{
virtual	void	OnSetup(Scene *) {}
virtual	void	OnSetupDone(Scene *) {}
virtual	void	OnDelete(Scene *) {}

virtual	void	OnRender(Scene *) {}
virtual	void	OnRenderDone(Scene *) {}
virtual	void	OnRenderUser(Scene *) {}
virtual	void	OnRenderUIDone(Scene *) {}

virtual	void	OnReset(Scene *) {}
virtual	void	OnUpdate(Scene *) {}
virtual	void	OnPhysicStep(Scene *, bool /*step_taken*/) {}

virtual ~ISceneEvent() {}
};

	} // S3D
} // GS


#endif	// __NISCENEEVENT__
