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


#ifndef	__NMEMITTER__
#define	__NMEMITTER__


		#include "scene3d/mitem.h"
		#include "core/emitter.h"


namespace GS {
	namespace S3D {

/*!
	@short	Managed emitter.
	@author Emmanuel Julien (ejulien@gsworks.fr)
*/
struct	MEmitter : public MItem, public Core::Emitter
{
static	MItemType		GetMItemClassType() { return Type_Emitter; }

		void			Update(const Time &);
		void			Setup(PhysicWorld *);

virtual	Core::Item		*GetBaseItem() { return this; }
virtual	Core::Renderable *GetRenderable() { return this; }

virtual	bool			FromMetaTag(NML::Tag &);
virtual	NML::Tag		*AsMetaTag();

		MEmitter();
};

	} // S3D
} // GS


#endif // __NMEMITTER__
