diff options
Diffstat (limited to 'src/main/Accelerator.h')
-rw-r--r-- | src/main/Accelerator.h | 49 |
1 files changed, 41 insertions, 8 deletions
diff --git a/src/main/Accelerator.h b/src/main/Accelerator.h index 96b599a..2481350 100644 --- a/src/main/Accelerator.h +++ b/src/main/Accelerator.h @@ -14,17 +14,29 @@ namespace vhc { +// TODO Do we need any destructor ? class Accelerator { +private : + + /** Constructeur de copie ne faisant rien. */ + Accelerator (Accelerator const& autre) {} + + /** Opérateur '=' ne faisant rien. */ + bool operator= (Accelerator const& autre) const {} + protected: - vector <Element> elementCollec; - vector <Particle> particleCollec; + + /** Attributs d'un accélérateur : une collection d'éléments, et une de particules. */ + std::vector< Element* > elementCollec; + std::vector< Particle* > particleCollec; + public: - /* Constructeur d'un accélérateur. - * Todo améliorer l'instanciation des attributs à l'aide d'une fonction. */ - Accelerator (const vector<Element>& eCollec, const vector<Particle>& pCollec): - elementCollec=eCollec, - particle=pCollec + /** Constructeur d'un accélérateur. */ + // Pour l'instant j'ai décidé que l'accélérateur possède deux containers (cf. slide35) + Accelerator (): + elementCollec(0), + particleCollec(0) {}; /* Retourne un pointeur sur un élément de l'accélérateur, @@ -35,7 +47,28 @@ public: /* Retourne un pointeur sur une particule de l'accélérateur, * il n'y a pas besoin d'avoir la particule elle-même. * Question : où mettre le 'delete' ? */ - Particle* getParticle(int matricle) const { return particleCollec[matricle-1]; } + Particle* getParticle(int rank) const { return particleCollec[rank-1]; } + + /** Retourne une représentation en chaîne de caractères de cet accélérateur. */ + virtual std::string toString() const; + + // TODO méthodes demandées dans la consigne + /** Ajoute un élément à l'accélérateur. */ + void addElement(); + + /** Ajoute une particule à l'accélérateur. */ + void addParticle(); + + /** Efface tous les éléments. */ + void killAllElements(); + + /** Efface toutes les particules. */ + void KillAllParticles(); + + /** Fait évoluer l'accélérateur. */ + void play(); + + }; } |