summaryrefslogtreecommitdiff
path: root/src/main/Accelerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/Accelerator.h')
-rw-r--r--src/main/Accelerator.h49
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();
+
+
};
}