summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-05-26 21:26:27 +0000
committerJakob Odersky <jodersky@gmail.com>2011-05-26 21:26:27 +0000
commit0006bb53b04fc2569839dfaf41547172a13bc7d1 (patch)
treecea45dc664e27d15775043cb0d09400effd00562
parentb9aef175be1459b827941476fb29a3c56bf73b92 (diff)
downloadvhc-0006bb53b04fc2569839dfaf41547172a13bc7d1.tar.gz
vhc-0006bb53b04fc2569839dfaf41547172a13bc7d1.tar.bz2
vhc-0006bb53b04fc2569839dfaf41547172a13bc7d1.zip
*Repare le dernier commit (oops :@)
* Ajout d'encore plus de commentaires
-rw-r--r--src/gui/Camera.h22
-rw-r--r--src/main/Element.h3
-rw-r--r--src/main/ElementVisitor.h16
-rw-r--r--src/main/Makefile2
-rw-r--r--src/main/SingleBeam.h3
-rw-r--r--src/main/Stepper.cc16
-rw-r--r--src/main/Stepper.h27
7 files changed, 38 insertions, 51 deletions
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 <vector>
-#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_ */