diff options
Diffstat (limited to 'src/main/CurvedElement.h')
-rw-r--r-- | src/main/CurvedElement.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/CurvedElement.h b/src/main/CurvedElement.h index 1f7116e..1f3e6c6 100644 --- a/src/main/CurvedElement.h +++ b/src/main/CurvedElement.h @@ -15,10 +15,12 @@ namespace vhc { + /** Represente un element courbe. En plus de posseder les proprietes generales d'un element, * un element courbe a de plus une courbure et un centre de courbure. * ==> TODO ajouter explication de la courbure * Le centre de courbure est calcule avec la courbure et les positions des faces d'entree et de sortie d'un element. */ + class CurvedElement: public Element { protected: @@ -31,6 +33,8 @@ protected: public: + + /** Constructeur d'un élément courbe. */ /** Constructeur d'elements courbes. * @param entry position de la face d'entree * @param exit position de face de sortie @@ -39,6 +43,7 @@ public: * @param next pointeur sur l'element suivant */ CurvedElement(const Vector3D& entry, const Vector3D& exit, double sectionRadius, double curvature, Element* next = NULL); + /** Retourne un booléen indiquant la présence à l'intérieur de l'élément de la particule. */ virtual CurvedElement* copy() const {return new CurvedElement(*this);} virtual bool isOutside(const Particle& particle) const { @@ -46,11 +51,15 @@ public: return (x - Vector3D(x.getX(), x.getY(), 0).unit() / fabs(curvature)).norm() > sectionRadius; } + /** Retourne un booléen indiquant le passage au prochain élément de la particule. */ virtual bool isPast(const Particle& particle) const { Vector3D out = (entryPosition - curvatureCenter).cross(exitPosition - curvatureCenter).cross(entryPosition - curvatureCenter); return (particle.getPosition() - exitPosition).dot(out) > 0; } + /** Retourne une chaîne de caractères de cet élément courbe. */ + virtual std::string toString () const; + double getCurvature() const {return curvature;} Vector3D getCurvatureCenter() const {return curvatureCenter;} |