#ifndef DUSTGENERATOR_H
#define DUSTGENERATOR_H

#include "ParticleEngine.h"

#include "MemoryManager/debugNew.h"

// forward declaration
namespace RenderSystem{
	class RenderableEntity;
}

namespace ParticleSystem{
	/**
	 * classe gerant un generateur de poussiere
	 */
	class DustGenerator : public ParticleEngine::ParticleGenerator
	{
	private:
		/**
		 * l'entit้ qui genere la poussiere
		 */
		RenderSystem::RenderableEntity * entity;
	public:
		/**
		 * booleen permettant de savoir si on autorise la generation de poussiere.
		 */
		bool allowGeneration;
		/**
		 * constructeur par defaut
		 */
		DustGenerator(RenderSystem::RenderableEntity * entity);

		/**
		 * destructeur par defaut.
		 */
		virtual ~DustGenerator(void);
		/**
		 * methode servant เ generer une particule morte du moteur de particules.
		 * @param particle : la particule เ generer.
		 * @see ParticleSystem::ParticleEngine::ParticleGenerator::generate()
		 */
		void generate(ParticleEngine::Particle * particle);

		/**
		 * methode permettant d'activer/desactier la generation de particules de poussieres.
		 * @param allow : booleen : true pour activer la generation de poussiere, false sinob.
		 */
		void allowDust(bool allow);
	};

};// namespace particleSystem

#include "MemoryManager/debugNewOff.h"

#endif
