diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-05-24 14:25:00 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-05-24 14:25:00 +0000 |
commit | 87500c3938c670f427780f3eefa3190281007e61 (patch) | |
tree | b968a21ca7471a38f9c1766da4d89420913c41fc /src/main/Beam.h | |
parent | 5ea0d2b2b2d71df3a91a7ece5d511fd0b39ff70a (diff) | |
download | vhc-87500c3938c670f427780f3eefa3190281007e61.tar.gz vhc-87500c3938c670f427780f3eefa3190281007e61.tar.bz2 vhc-87500c3938c670f427780f3eefa3190281007e61.zip |
Ajoute un modele de publisher/subscriber en vue des interactions entre particules.
Diffstat (limited to 'src/main/Beam.h')
-rw-r--r-- | src/main/Beam.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/main/Beam.h b/src/main/Beam.h index 7572908..f5998c9 100644 --- a/src/main/Beam.h +++ b/src/main/Beam.h @@ -11,11 +11,12 @@ #include "Cloneable.h" #include "Particle.h" #include "Vector3D.h" +#include "events.h" namespace vhc { /** Classe de base pour les faisceaux. */ -class Beam: public Cloneable { +class Beam: public Cloneable, public Publisher<ParticleAddedEvent>, public Publisher<ParticleRemovedEvent> { public: @@ -105,14 +106,24 @@ protected: /** Particule de reference. */ Particle referenceParticle; - /** (Macro-)Particules contenus dans ce faisceau. */ + /** Macroparticules contenus dans ce faisceau. */ ParticleCollection particles; /** Coefficient des macrosparticules. */ int lambda; + /** Quantite de particules contenus dans ce faisceau. */ int quantity; + /** Methode qui doit etre appelee par toute sous-classe pour ajouter une particule au faisceau. */ + void add(Particle* particle); + + /** Methode qui doit etre appelee par toute sous-classe pour supprimer une particule du faisceau. */ + void remove(Particle* particle); + + /** Methode qui doit etre appelee par toute sous-classe pour supprimer une particule du faisceau. */ + ParticleCollection::iterator erase(ParticleCollection::iterator i); + /** Retourne la moyenne de la distribution horizontale de la position des particules. * (<r^2> horizontal du complement) */ double getHR2() const; |