diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-04-24 13:31:11 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-04-24 13:31:11 +0000 |
commit | a91ecfe471c4659e65be573e0217c8b72d5fa958 (patch) | |
tree | ddb16859fdd206b5978902f2d965bfc7bc900a94 /src/main/Element.cc | |
parent | a80f5cb7b3d8e4cf3e48c55895b3ea23a940b8ec (diff) | |
download | vhc-a91ecfe471c4659e65be573e0217c8b72d5fa958.tar.gz vhc-a91ecfe471c4659e65be573e0217c8b72d5fa958.tar.bz2 vhc-a91ecfe471c4659e65be573e0217c8b72d5fa958.zip |
*Ajout d'un pointeur sur les element precedents.
*Implementation de la methode 'close()' dans l'accelerateur.
*Restructuration des methodes geometriques des elements.
-Ajout d'une methode isBefore(): determine si un point est contenu dans l'espace avant le plan de la face d'entree.
-Ajout d'une methode isBeside(): determine si un point est plus proche de la trajectoire ideal que le rayon de section.
-Ajout d'une methode isAfter(): determine si un point est contenu dans l'espace apres le plan de la face de sortie.
-Ajout d'une methode contains(): determine si un point est contenu dans l'element (contains = !(isBefore || isBeside || isAfter))
-La methode isPast() (passe_au_suivant selon projet) a ete supprimee, elle est a remplacer par isAfter().
-La methode hitWall() (heurte_bord selon projet) a ete supprimee, elle est a remplacer par isBeside().
*Resolution d'un bug dans la methode isBeside() de StraightElement, avant une particule ne pouvait jamais heuter le bord!
*Ajout des cibles gui et gui-build dans eclipse.
Diffstat (limited to 'src/main/Element.cc')
-rw-r--r-- | src/main/Element.cc | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/main/Element.cc b/src/main/Element.cc index ed66d94..25efa8c 100644 --- a/src/main/Element.cc +++ b/src/main/Element.cc @@ -15,11 +15,25 @@ Element::Element(const Vector3D& entry, const Vector3D& exit, double sectionRadi entryPosition(entry), exitPosition(exit), sectionRadius(sectionRadius), - next(next) { + previous(NULL), + next(next) + {} +Element::~Element() {}; + +bool Element::isAfter(const Particle& particle) const {return isAfter(particle.getPosition());} + +bool Element::isBefore(const Particle& particle) const {return isBefore(particle.getPosition());} + +bool Element::isBeside(const Particle& particle) const {return isBeside(particle.getPosition());} + +bool Element::contains(const Vector3D& position) const { + return !(isAfter(position) || isBefore(position) || isBeside(position)); } -Element::~Element() {}; +bool Element::contains(const Particle& particle) const { + return contains(particle.getPosition()); +} Vector3D Element::magneticFieldAt(const Vector3D& position) const {return Vector3D::Null;} @@ -33,7 +47,11 @@ Vector3D Element::getExitPosition() const {return exitPosition;} double Element::getSectionRadius() const {return sectionRadius;} -Element* Element::getNext() const {return next;} +Element* const Element::getPrevious() const {return previous;} + +void Element::setPrevious(Element* p) {previous = p;} + +Element* const Element::getNext() const {return next;} void Element::setNext(Element* n) {next = n;} |