summaryrefslogtreecommitdiff
path: root/src/main/CompositeElement.cc
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-04-24 13:31:11 +0000
committerJakob Odersky <jodersky@gmail.com>2011-04-24 13:31:11 +0000
commita91ecfe471c4659e65be573e0217c8b72d5fa958 (patch)
treeddb16859fdd206b5978902f2d965bfc7bc900a94 /src/main/CompositeElement.cc
parenta80f5cb7b3d8e4cf3e48c55895b3ea23a940b8ec (diff)
downloadvhc-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/CompositeElement.cc')
-rw-r--r--src/main/CompositeElement.cc13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/main/CompositeElement.cc b/src/main/CompositeElement.cc
index 4c4170e..81f77aa 100644
--- a/src/main/CompositeElement.cc
+++ b/src/main/CompositeElement.cc
@@ -15,16 +15,19 @@ CompositeElement::CompositeElement(const Vector3D& entry, const Vector3D& exit,
CompositeElement::~CompositeElement() {};
-bool CompositeElement::hasHit(const Particle& particle) const {
+bool CompositeElement::isBefore(const Vector3D& position) const {
+ return elements.front()->isBefore(position);
+}
+
+bool CompositeElement::isBeside(const Vector3D& position) const {
for (int i(0); i < elements.size(); ++i) {
- if (elements[i]->hasHit(particle)) return true;
+ if (elements[i]->isBeside(position)) return true;
}
return false;
}
-bool CompositeElement::isPast(const Particle& particle) const {
- if (elements[elements.size() - 1]->isPast(particle)) return true;
- else return false;
+bool CompositeElement::isAfter(const Vector3D& position) const {
+ return elements.back()->isAfter(position);
}
Vector3D CompositeElement::magneticFieldAt(const Vector3D& position) const {