From 0006bb53b04fc2569839dfaf41547172a13bc7d1 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Thu, 26 May 2011 21:26:27 +0000 Subject: *Repare le dernier commit (oops :@) * Ajout d'encore plus de commentaires --- src/gui/Camera.h | 22 +++++++++++++++++++++- src/main/Element.h | 3 ++- src/main/ElementVisitor.h | 16 +++++++++++----- src/main/Makefile | 2 +- src/main/SingleBeam.h | 3 +++ src/main/Stepper.cc | 16 ---------------- src/main/Stepper.h | 27 --------------------------- 7 files changed, 38 insertions(+), 51 deletions(-) delete mode 100644 src/main/Stepper.cc delete mode 100644 src/main/Stepper.h diff --git a/src/gui/Camera.h b/src/gui/Camera.h index 8ea35d0..e863a9e 100644 --- a/src/gui/Camera.h +++ b/src/gui/Camera.h @@ -13,14 +13,24 @@ namespace vhc { +/** Represente une camera, un observateur 3D. */ class Camera { private: + + /** Position de la camera. */ Vector3D position; //from position + + /** Direction de vue. */ Vector3D direction; //to position + direction + + /** Haut de l'ecran. */ Vector3D up; + /** Heading. (angle autour de la verticale de la camera) */ double heading; //left/right + + /** Pitch. (angle autour d'horizontale de la camera) */ double pitch; //up/down public: @@ -28,17 +38,27 @@ public: Camera(); virtual ~Camera() {}; + /** Applique les transformantions de cet camera au viewport OpenGl. */ void setView(); + /** Ajoute l'angle donne (en radians) au heading. */ void addHeading(double h); + /** Ajoute l'angle donne (en radians) au pitch. */ void addPitch(double h); - + /** Translate la camera selon le vecteur donne (en coordonnees locales de cette camera). */ void move(const Vector3D& moveVector); + /** Retourne la position en coordonnees absolues de cette camera. */ Vector3D getPosition() const; + + /** Retourne le heading de cette camera. + * @see heading */ double getHeading() const; + + /** Retourne le pitch de cette camera. + * @see pitch */ double getPitch() const; }; diff --git a/src/main/Element.h b/src/main/Element.h index 99a4e88..8f1ce23 100644 --- a/src/main/Element.h +++ b/src/main/Element.h @@ -126,7 +126,8 @@ public: /** Retourne une représentation de cet élément sous forme de chaînes de caractères.*/ virtual std::string toString() const; - //TODO expl. + /** Accepte un visiteur d'elements. + * @see ElementVisitor */ virtual void accept(const ElementVisitor& v) const = 0; }; diff --git a/src/main/ElementVisitor.h b/src/main/ElementVisitor.h index 49247df..81b2f44 100644 --- a/src/main/ElementVisitor.h +++ b/src/main/ElementVisitor.h @@ -10,21 +10,27 @@ namespace vhc { -class StraightElement; -class Quadrupole; -class Dipole; - - +class StraightElement; //forward declaration +class Quadrupole; //forward declaration +class Dipole; //forward declaration + +/** Represente un visiteur d'elements. + * Le motif de conception des visiteurs est utilise pour ajouter des fonctionalites a des elements sans changer leur + * implementation. Il s'avere etre extremement utile pour des structures recursives, telles que les elements composees. + * @see http://fr.wikipedia.org/wiki/Visiteur_%28motif_de_conception%29 */ class ElementVisitor { public: ElementVisitor(); virtual ~ElementVisitor(); + /** Visite un element droit. */ virtual void visit(const StraightElement* straight) const = 0; + /** Visite un quadrupole. */ virtual void visit(const Quadrupole* quadrupole) const = 0; + /** Visite un dipole. */ virtual void visit(const Dipole* dipole) const = 0; }; diff --git a/src/main/Makefile b/src/main/Makefile index 28a663d..4c0ac06 100644 --- a/src/main/Makefile +++ b/src/main/Makefile @@ -15,7 +15,7 @@ LOCALDIR = main # cette règle. LOCALOBJS = Vector3D.o Particle.o Printable.o Element.o CurvedElement.o StraightElement.o \ CompositeElement.o Dipole.o Quadrupole.o FODO.o ElementVisitor.o Cloneable.o \ - Accelerator.o exceptions.o Stepper.o Beam.o SingleBeam.o CircularBeam.o \ + Accelerator.o exceptions.o Beam.o SingleBeam.o CircularBeam.o \ random.o Bunch.o events.o Interactor.o BruteForceInteractor.o OBJS=$(addprefix $(BINDIR)/$(LOCALDIR)/,$(LOCALOBJS)) diff --git a/src/main/SingleBeam.h b/src/main/SingleBeam.h index 95451de..85038ca 100644 --- a/src/main/SingleBeam.h +++ b/src/main/SingleBeam.h @@ -13,6 +13,9 @@ namespace vhc { +/** Represente un faisceau ne contenant qu'une seule particule. + * Existante pour des raisons de compatibilite. + * @see Accelerator::add(const Particle& p) */ class SingleBeam: public vhc::Beam { public: SingleBeam(const Particle& particle); diff --git a/src/main/Stepper.cc b/src/main/Stepper.cc deleted file mode 100644 index acc1ee9..0000000 --- a/src/main/Stepper.cc +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Stepper.cc - * - * Created on: Apr 24, 2011 - * Author: jakob - */ - -#include "Stepper.h" - -namespace vhc { - -Stepper::Stepper() {} - -Stepper::~Stepper() {} - -} diff --git a/src/main/Stepper.h b/src/main/Stepper.h deleted file mode 100644 index cbc31b9..0000000 --- a/src/main/Stepper.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Stepper.h - * - * Created on: Apr 24, 2011 - * Author: jakob - */ - -#ifndef STEPPER_H_ -#define STEPPER_H_ - -#include -#include "Accelerator.h" - -namespace vhc { - -class Stepper { - -public: - Stepper(); - virtual ~Stepper(); - - virtual void step(const std::vector< Element* > & elements, const std::vector< Particle* > & particles, double dt) = 0; -}; - -} - -#endif /* STEPPER_H_ */ -- cgit v1.2.3