#ifndef EMITTOR_H
#define EMITTOR_H

#include "./../../lib/GLee/GLee.h"
#include "./context/Context.h"
#include "./exception/Exception.h"
#include "./math/Mathematics.h"
#include "./math/SupportFunctions.h"
#include "./particles/particle.h"
#include <vector>
#include <cassert>
using namespace std;

using namespace ANALYTICAL_GEOMETRY;



/// Create, stores, simulates and remove emitted parctiles.
class BasicEmittor
{
private:
	BasicEmittor( const BasicEmittor& ); //UNDEFINED - cannot be copied
	BasicEmittor& operator=( const BasicEmittor& ); //UNDEFINED - cannot be assigned

//protected:
public:
	vector< GraphicParticle* > particles;

public:
	BasicEmittor(void);
	~BasicEmittor(void);	//dealocates all alocated resources
	
	void simulate( float dt );
	void garbageRequest(void); //delete dead particles
};


#endif