summaryrefslogtreecommitdiff
path: root/src/main/Element.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/Element.h')
-rw-r--r--src/main/Element.h28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/main/Element.h b/src/main/Element.h
index 754287f..448126f 100644
--- a/src/main/Element.h
+++ b/src/main/Element.h
@@ -29,35 +29,43 @@ protected:
Vector3D exitPosition;
/** Rayon de la chambre à vide. */
- double radius;
+ double sectionRadius;
/** Pointeur sur l'élément suivant. */
Element *next;
- /** Intensité (constante) du champ.
- * TODO à améliorer */
- double fieldIntensity;
+ /* Intensité (constante) du champ.
+ * TODO à améliorer
+ double fieldIntensity;
+ Vector3D magneticField
- /** Direction du champ magnétique, invariant dans l'espace. */
- Vector3D fieldDirection;
+ /** Direction du champ magnétique, invariant dans l'espace.
+ Vector3D fieldDirection;
+ */
public:
- Element();
- virtual ~Element();
+ Element(const Vector3D& entry, const Vector3D& exit, double sectionRadius, Element* next = NULL):
+ entryPosition(entry),
+ exitPosition(exit),
+ sectionRadius(sectionRadius),
+ next(next)
+ {};
virtual bool isOutside(const Particle& p) const = 0;
/* TODO Et si la valeur de retour était un pointeur? */
virtual bool isPast(const Particle& p) const = 0;
+ Vector3D getDiagonal() const {return exitPosition - entryPosition;}
+
Vector3D getEntryPosition() const {return entryPosition;}
void setEntryPosition(const Vector3D& newPos) {entryPosition = newPos;}
Vector3D getExitPosition() const {return exitPosition;}
void setExitPosition(const Vector3D& newPos) {exitPosition = newPos;}
- double getRadius() const {return radius;}
- void setRadius(double r) {radius = r;}
+ double getSectionRadius() const {return sectionRadius;}
+ void setSectionRadius(double r) {sectionRadius = r;}
Element* getNext() const {return next;}