summaryrefslogtreecommitdiff
path: root/src/main/CompositeElement.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/CompositeElement.cc')
-rw-r--r--src/main/CompositeElement.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/CompositeElement.cc b/src/main/CompositeElement.cc
index 0c62a19..3b1a709 100644
--- a/src/main/CompositeElement.cc
+++ b/src/main/CompositeElement.cc
@@ -27,5 +27,35 @@ bool CompositeElement::isPast(const Particle& particle) const {
else return false;
}
+Vector3D CompositeElement::magneticFieldAt(const Vector3D& position) const {
+ Vector3D b = Vector3D::Null;
+ for (int i(0); i < elements.size(); i++) {
+ b = b + elements[i]->magneticFieldAt(position);
+ }
+ return b;
+}
+Vector3D CompositeElement::electricFieldAt(const Vector3D& position) const {
+ Vector3D e = Vector3D::Null;
+ for (int i(0); i < elements.size(); i++) {
+ e = e + elements[i]->electricFieldAt(position);
+ }
+ return e;
+}
+
+void CompositeElement::accept(const ElementVisitor& v) const {
+ for (int i(0); i < elements.size(); ++i) {
+ elements[i]->accept(v);
+ }
}
+
+std::string CompositeElement::toString() const {
+ std::stringstream s;
+ for (int i(0); i < elements.size(); ++i) {
+ s << elements[i]->toString() << "\n";
+ }
+ return s.str();
+}
+
+
+} //vhc