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