diff options
Diffstat (limited to 'src/main/CircularBeam.cc')
-rw-r--r-- | src/main/CircularBeam.cc | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/main/CircularBeam.cc b/src/main/CircularBeam.cc index ee2fa9d..fefc3f9 100644 --- a/src/main/CircularBeam.cc +++ b/src/main/CircularBeam.cc @@ -6,6 +6,8 @@ */ #include "CircularBeam.h" +#include "Particle.h" +#include "Element.h" namespace vhc { @@ -15,7 +17,26 @@ CircularBeam::CircularBeam(const Particle& referenceParticle, int quantity, int CircularBeam::~CircularBeam() {} -CircularBeam::init(const Particle& referenceParticle, int quantity, int lambda) { +void CircularBeam::initializeParticles() { + Element* element = referenceParticle.getElement(); + + for (int i = 0; i < quantity / lambda; ++i) { + + particles.push_back(new Particle( + element->getEntryPosition(), + referenceParticle.getMass() * lambda, + referenceParticle.getCharge() * lambda, + referenceParticle.getEnergy(), + element->getDiagonal() + )); + + element = element->getNext(); + } } + +CircularBeam* CircularBeam::clone() const { + return new CircularBeam(referenceParticle, quantity, lambda); +} + } |