summaryrefslogtreecommitdiff
path: root/src/main/StraightElement.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/StraightElement.h')
-rw-r--r--src/main/StraightElement.h31
1 files changed, 8 insertions, 23 deletions
diff --git a/src/main/StraightElement.h b/src/main/StraightElement.h
index dc7603b..6de596a 100644
--- a/src/main/StraightElement.h
+++ b/src/main/StraightElement.h
@@ -20,35 +20,20 @@ class StraightElement: public Element {
public:
- StraightElement(const Vector3D& entry, const Vector3D& exit, double sectionRadius, Element* next = NULL):
- Element(entry, exit, sectionRadius, next)
- {};
+ StraightElement(const Vector3D& entry, const Vector3D& exit, double sectionRadius, Element* next = NULL);
- virtual ~StraightElement() {};
+ virtual ~StraightElement();
- //virtual StraightElement* clone() const {return new StraightElement(*this);}
+ virtual bool hasHit(const Particle& particle) const;
- virtual bool hasHit(const Particle& particle) const {
- Vector3D a(particle.getPosition() - entryPosition);
- const Vector3D b = (particle.getPosition() - entryPosition);
- return (a.cross(b)).norm() / getDiagonal().norm() > sectionRadius;
- };
+ virtual bool isPast(const Particle& particle) const;
- virtual bool isPast(const Particle& particle) const {
- const Vector3D v(particle.getPosition() - entryPosition);
- return getDiagonal().dot(v) > getDiagonal().dot(getDiagonal());
- }
+ virtual std::string getType() const;
+ virtual std::string toString() const;
- virtual std::string getType() const {return "Straight Element";}
- virtual std::string toString() const {
- std::stringstream s;
- s << Element::toString();
- return s.str();
- }
+ virtual void accept(const ElementVisitor& v) const;
- virtual void accept(const ElementVisitor& v) const {v.visit(this);}
-
- virtual StraightElement* clone() const {return new StraightElement(getEntryPosition(), getExitPosition(), getSectionRadius());}
+ virtual StraightElement* clone() const;
};