diff options
Diffstat (limited to 'src/main/CompositeElement.h')
-rw-r--r-- | src/main/CompositeElement.h | 36 |
1 files changed, 7 insertions, 29 deletions
diff --git a/src/main/CompositeElement.h b/src/main/CompositeElement.h index 638e74a..ce274b1 100644 --- a/src/main/CompositeElement.h +++ b/src/main/CompositeElement.h @@ -38,35 +38,13 @@ public: /** Determine si une particule a passe cet element, donc passe le dernier element composant. */ virtual bool isPast(const Particle& particle) const; - virtual Vector3D 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; - } - - virtual Vector3D 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; - } - - virtual void accept(const ElementVisitor& v) const { - for (int i(0); i < elements.size(); ++i) { - elements[i]->accept(v); - } - } - - virtual std::string toString() { - std::stringstream s; - for (int i(0); i < elements.size(); ++i) { - s << elements[i]->toString() << "\n"; - } - return s.str(); - } + virtual Vector3D magneticFieldAt(const Vector3D& position) const; + + virtual Vector3D electricFieldAt(const Vector3D& position) const; + + virtual void accept(const ElementVisitor& v) const; + + virtual std::string toString() const; }; |