summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Vazquez <christian.vazquez@epfl.ch>2011-04-21 05:54:15 +0000
committerChristian Vazquez <christian.vazquez@epfl.ch>2011-04-21 05:54:15 +0000
commita80f5cb7b3d8e4cf3e48c55895b3ea23a940b8ec (patch)
tree5ae8258d36786fd23c585bfae39e22076a0af089
parent9872f694f264c1deea2cce057713b560a883d89f (diff)
downloadvhc-a80f5cb7b3d8e4cf3e48c55895b3ea23a940b8ec.tar.gz
vhc-a80f5cb7b3d8e4cf3e48c55895b3ea23a940b8ec.tar.bz2
vhc-a80f5cb7b3d8e4cf3e48c55895b3ea23a940b8ec.zip
Mis à jour AccelTest et toString de Accelerator.
Rjouté quelques commentaires (dans FODO). Crée un fichier P10ExerciceTest.
-rw-r--r--src/gui/Makefile258
-rw-r--r--src/main/Accelerator.cc36
-rw-r--r--src/main/Accelerator.h7
-rw-r--r--src/main/FODO.h2
-rw-r--r--src/main/doxygen.h1
-rw-r--r--src/test/AccelTest.cc35
-rw-r--r--src/test/P10ExerciceTest.cc78
-rw-r--r--src/test/ParticleTest.cc4
8 files changed, 397 insertions, 24 deletions
diff --git a/src/gui/Makefile b/src/gui/Makefile
new file mode 100644
index 0000000..889fd6e
--- /dev/null
+++ b/src/gui/Makefile
@@ -0,0 +1,258 @@
+#############################################################################
+# Makefile for building: $(BINDIR)/gui/gui
+# Generated by qmake (2.01a) (Qt 4.7.0) on: mer. avr. 20 20:39:27 2011
+# Project: gui.pro
+# Template: app
+# Command: /usr/bin/qmake -o Makefile gui.pro
+#############################################################################
+
+####### Compiler, tools and options
+
+CC = gcc
+CXX = g++
+DEFINES = -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
+CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
+INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4 -I. -I$(SRCDIR)/main/ -I/usr/X11R6/include -I.
+LINK = g++
+LFLAGS = -Wl,-O1
+LIBS = $(SUBLIBS) -L/usr/lib -L/usr/X11R6/lib -L$(BINDIR)/main -lvhc -lQtOpenGL -lQtGui -lQtCore -lGLU -lGL -lpthread
+AR = ar cqs
+RANLIB =
+QMAKE = /usr/bin/qmake
+TAR = tar -cf
+COMPRESS = gzip -9f
+COPY = cp -f
+SED = sed
+COPY_FILE = $(COPY)
+COPY_DIR = $(COPY) -r
+STRIP = strip
+INSTALL_FILE = install -m 644 -p
+INSTALL_DIR = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE = rm -f
+SYMLINK = ln -f -s
+DEL_DIR = rmdir
+MOVE = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR = $(BINDIR)/gui/
+
+####### Files
+
+SOURCES = Camera.cc \
+ ElementRenderer.cc \
+ util.cc \
+ Stage.cc \
+ ParticleRenderer.cc \
+ Main.cc moc_Stage.cpp
+OBJECTS = $(BINDIR)/gui/Camera.o \
+ $(BINDIR)/gui/ElementRenderer.o \
+ $(BINDIR)/gui/util.o \
+ $(BINDIR)/gui/Stage.o \
+ $(BINDIR)/gui/ParticleRenderer.o \
+ $(BINDIR)/gui/Main.o \
+ $(BINDIR)/gui/moc_Stage.o
+DIST = /usr/share/qt4/mkspecs/common/g++.conf \
+ /usr/share/qt4/mkspecs/common/unix.conf \
+ /usr/share/qt4/mkspecs/common/linux.conf \
+ /usr/share/qt4/mkspecs/qconfig.pri \
+ /usr/share/qt4/mkspecs/modules/qt_webkit_version.pri \
+ /usr/share/qt4/mkspecs/features/qt_functions.prf \
+ /usr/share/qt4/mkspecs/features/qt_config.prf \
+ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+ /usr/share/qt4/mkspecs/features/default_pre.prf \
+ /usr/share/qt4/mkspecs/features/release.prf \
+ /usr/share/qt4/mkspecs/features/default_post.prf \
+ /usr/share/qt4/mkspecs/features/warn_on.prf \
+ /usr/share/qt4/mkspecs/features/qt.prf \
+ /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+ /usr/share/qt4/mkspecs/features/unix/thread.prf \
+ /usr/share/qt4/mkspecs/features/moc.prf \
+ /usr/share/qt4/mkspecs/features/resources.prf \
+ /usr/share/qt4/mkspecs/features/uic.prf \
+ /usr/share/qt4/mkspecs/features/yacc.prf \
+ /usr/share/qt4/mkspecs/features/lex.prf \
+ /usr/share/qt4/mkspecs/features/include_source_dir.prf \
+ gui.pro
+QMAKE_TARGET = gui
+DESTDIR = $(BINDIR)/gui/
+TARGET = $(BINDIR)/gui/gui
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+ $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile $(TARGET)
+
+$(TARGET): $(OBJECTS)
+ @$(CHK_DIR_EXISTS) $(BINDIR)/gui/ || $(MKDIR) $(BINDIR)/gui/
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: gui.pro /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
+ /usr/share/qt4/mkspecs/common/unix.conf \
+ /usr/share/qt4/mkspecs/common/linux.conf \
+ /usr/share/qt4/mkspecs/qconfig.pri \
+ /usr/share/qt4/mkspecs/modules/qt_webkit_version.pri \
+ /usr/share/qt4/mkspecs/features/qt_functions.prf \
+ /usr/share/qt4/mkspecs/features/qt_config.prf \
+ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+ /usr/share/qt4/mkspecs/features/default_pre.prf \
+ /usr/share/qt4/mkspecs/features/release.prf \
+ /usr/share/qt4/mkspecs/features/default_post.prf \
+ /usr/share/qt4/mkspecs/features/warn_on.prf \
+ /usr/share/qt4/mkspecs/features/qt.prf \
+ /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+ /usr/share/qt4/mkspecs/features/unix/thread.prf \
+ /usr/share/qt4/mkspecs/features/moc.prf \
+ /usr/share/qt4/mkspecs/features/resources.prf \
+ /usr/share/qt4/mkspecs/features/uic.prf \
+ /usr/share/qt4/mkspecs/features/yacc.prf \
+ /usr/share/qt4/mkspecs/features/lex.prf \
+ /usr/share/qt4/mkspecs/features/include_source_dir.prf \
+ /usr/lib/libQtOpenGL.prl \
+ /usr/lib/libQtGui.prl \
+ /usr/lib/libQtCore.prl
+ $(QMAKE) -o Makefile gui.pro
+/usr/share/qt4/mkspecs/common/g++.conf:
+/usr/share/qt4/mkspecs/common/unix.conf:
+/usr/share/qt4/mkspecs/common/linux.conf:
+/usr/share/qt4/mkspecs/qconfig.pri:
+/usr/share/qt4/mkspecs/modules/qt_webkit_version.pri:
+/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/usr/share/qt4/mkspecs/features/qt_config.prf:
+/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/usr/share/qt4/mkspecs/features/default_pre.prf:
+/usr/share/qt4/mkspecs/features/release.prf:
+/usr/share/qt4/mkspecs/features/default_post.prf:
+/usr/share/qt4/mkspecs/features/warn_on.prf:
+/usr/share/qt4/mkspecs/features/qt.prf:
+/usr/share/qt4/mkspecs/features/unix/opengl.prf:
+/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/usr/share/qt4/mkspecs/features/moc.prf:
+/usr/share/qt4/mkspecs/features/resources.prf:
+/usr/share/qt4/mkspecs/features/uic.prf:
+/usr/share/qt4/mkspecs/features/yacc.prf:
+/usr/share/qt4/mkspecs/features/lex.prf:
+/usr/share/qt4/mkspecs/features/include_source_dir.prf:
+/usr/lib/libQtOpenGL.prl:
+/usr/lib/libQtGui.prl:
+/usr/lib/libQtCore.prl:
+qmake: FORCE
+ @$(QMAKE) -o Makefile gui.pro
+
+dist:
+ @$(CHK_DIR_EXISTS) $(BINDIR)/gui/gui1.0.0 || $(MKDIR) $(BINDIR)/gui/gui1.0.0
+ $(COPY_FILE) --parents $(SOURCES) $(DIST) $(BINDIR)/gui/gui1.0.0/ && $(COPY_FILE) --parents Camera.h ElementRenderer.h util.h Stage.h ParticleRenderer.h Renderer.h $(BINDIR)/gui/gui1.0.0/ && $(COPY_FILE) --parents Camera.cc ElementRenderer.cc util.cc Stage.cc ParticleRenderer.cc Main.cc $(BINDIR)/gui/gui1.0.0/ && (cd `dirname $(BINDIR)/gui/gui1.0.0` && $(TAR) gui1.0.0.tar gui1.0.0 && $(COMPRESS) gui1.0.0.tar) && $(MOVE) `dirname $(BINDIR)/gui/gui1.0.0`/gui1.0.0.tar.gz . && $(DEL_FILE) -r $(BINDIR)/gui/gui1.0.0
+
+
+clean:compiler_clean
+ -$(DEL_FILE) $(OBJECTS)
+ -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+ -$(DEL_FILE) $(TARGET)
+ -$(DEL_FILE) Makefile
+
+
+check: first
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all: moc_Stage.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) moc_Stage.cpp
+moc_Stage.cpp: Camera.h \
+ ElementRenderer.h \
+ Renderer.h \
+ ParticleRenderer.h \
+ Stage.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) Stage.h -o moc_Stage.cpp
+
+compiler_rcc_make_all:
+compiler_rcc_clean:
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+ -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all:
+compiler_uic_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean
+
+####### Compile
+
+$(BINDIR)/gui/Camera.o: Camera.cc Camera.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(BINDIR)/gui/Camera.o Camera.cc
+
+$(BINDIR)/gui/ElementRenderer.o: ElementRenderer.cc ElementRenderer.h \
+ Renderer.h \
+ util.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(BINDIR)/gui/ElementRenderer.o ElementRenderer.cc
+
+$(BINDIR)/gui/util.o: util.cc
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(BINDIR)/gui/util.o util.cc
+
+$(BINDIR)/gui/Stage.o: Stage.cc util.h \
+ Stage.h \
+ Camera.h \
+ ElementRenderer.h \
+ Renderer.h \
+ ParticleRenderer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(BINDIR)/gui/Stage.o Stage.cc
+
+$(BINDIR)/gui/ParticleRenderer.o: ParticleRenderer.cc ParticleRenderer.h \
+ Renderer.h \
+ util.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(BINDIR)/gui/ParticleRenderer.o ParticleRenderer.cc
+
+$(BINDIR)/gui/Main.o: Main.cc Stage.h \
+ Camera.h \
+ ElementRenderer.h \
+ Renderer.h \
+ ParticleRenderer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(BINDIR)/gui/Main.o Main.cc
+
+$(BINDIR)/gui/moc_Stage.o: moc_Stage.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $(BINDIR)/gui/moc_Stage.o moc_Stage.cpp
+
+####### Install
+
+install: FORCE
+
+uninstall: FORCE
+
+FORCE:
+
diff --git a/src/main/Accelerator.cc b/src/main/Accelerator.cc
index 01f4f90..400ab0d 100644
--- a/src/main/Accelerator.cc
+++ b/src/main/Accelerator.cc
@@ -13,28 +13,30 @@ namespace vhc {
std::string Accelerator::toString() const {
std::stringstream s;
+
if (elementCollec.size() == 0) {
s << "This accelerator doesn't contain anything."<<"\n";
- } else if (elementCollec.size()==1) {
- s << "This accelerator is made of the following element :" << "\n";
- s << elementCollec[0]->toString()<<"\n";
} else {
- s << "This accelerator is made of the " << elementCollec.size() << " following elements :" << "\n";
- for (int i(0); i < elementCollec.size(); ++i){
- s << elementCollec[i]->toString() << "\n";
+ if (elementCollec.size()==1) {
+ s << "This accelerator is made of the following element :" << "\n";
+ s << elementCollec[0]->toString()<<"\n";
+ } else {
+ s << "This accelerator is made of the " << elementCollec.size() << " following elements :" << "\n";
+ for (int i(0); i < elementCollec.size(); ++i){
+ s << elementCollec[i]->toString() << "\n";
+ }
}
- }
-
- if (particleCollec.size() == 0) {
- s << "This accelerator doesn't contain any particle." << "\n";
- } else if (particleCollec.size() == 1) {
- s << "This accelerator contains the following particle :" << "\n";
- s << particleCollec[0]->toString() << "\n";
- }else{
- s << "This accelerator contains the " << particleCollec.size() << " following particles :"<<"\n";
- for (int i(0); i < particleCollec.size(); ++i){
- s << particleCollec[i]->toString() << "\n";
+ if (particleCollec.size() == 0) {
+ s << "This accelerator doesn't contain any particle." << "\n";
+ } else if (particleCollec.size() == 1) {
+ s << "This accelerator contains the following particle :" << "\n";
+ s << particleCollec[0]->toString() << "\n";
+ }else{
+ s << "This accelerator contains the " << particleCollec.size() << " following particles :"<<"\n";
+ for (int i(0); i < particleCollec.size(); ++i){
+ s << particleCollec[i]->toString() << "\n";
+ }
}
}
diff --git a/src/main/Accelerator.h b/src/main/Accelerator.h
index 60e8ed9..a8d1562 100644
--- a/src/main/Accelerator.h
+++ b/src/main/Accelerator.h
@@ -18,7 +18,7 @@ namespace vhc {
/** Représente un accélérateur. Cette classe contient en particulier une méthode
* qui fait évoluer les particules qu'elle contient. */
-class Accelerator {
+class Accelerator: public Printable{
private :
/** Constructeur de copie ne faisant rien. */
@@ -128,6 +128,11 @@ public:
}
+ void* stepMonteCarlo();
+
+ void* stepDeterministBackUp();
+
+ void* stepDeterminist();
};
diff --git a/src/main/FODO.h b/src/main/FODO.h
index 4d61ad3..5b00ca6 100644
--- a/src/main/FODO.h
+++ b/src/main/FODO.h
@@ -15,6 +15,8 @@
namespace vhc {
+/** Représente une maille FODO, qui est un élément magnétique droit, composé d'un quadrupôle, d'une section droite, d'un autre quadrupôle «opposé», et d'une autre section droite.
+ */
class FODO: public CompositeElement {
private:
diff --git a/src/main/doxygen.h b/src/main/doxygen.h
index 1fbbd68..4397335 100644
--- a/src/main/doxygen.h
+++ b/src/main/doxygen.h
@@ -9,6 +9,7 @@
/**@mainpage
* Page principale.
+ * <b>tchigidididi</b>
*
*/
diff --git a/src/test/AccelTest.cc b/src/test/AccelTest.cc
index d7cbe79..e0e7368 100644
--- a/src/test/AccelTest.cc
+++ b/src/test/AccelTest.cc
@@ -6,16 +6,43 @@
*/
-//#include "Accelerator.h"
+#include "Accelerator.h"
+#include "Dipole.h"
#include <iostream>
#include <string>
#include <vector>
+
using namespace std;
+using namespace vhc;
/** lance le test*/
-//TODO test avec un accélérateur initialisé
+//TODO erreur sur l'affichage de p1 ===> "NAN" <=========
int main() {
- //Accelerator a();
- //cout << a << endl;
+ Accelerator a;
+
+ Dipole* d = new Dipole(Vector3D(1,0,0), Vector3D(0,-1,0), 0.1, 1, Vector3D(0,0,7), NULL);
+ Particle* p1 = new Particle(Vector3D( 1.00984,-0.191837,0 ), 0.938272, 1.60217653e-19, 2, Vector3D(-210200,-2.64754e+08,0));
+ Particle* p2 = new Particle(Vector3D(0.99016,-0.191837,0), 0.938272, 1.60217653e-19, 2, Vector3D(210200,-2.64754e+08,0));
+
+ a.add(*d);
+ a.add(*p1);
+ a.add(*p2);
+
+ Accelerator b;
+
+ b.add(*d);
+
+ Accelerator empty;
+
+ cout << "Inspecting first accelerator..." << endl
+ << a << endl
+ << "Inspecting second accelerator..." << endl
+ << b << endl
+ << "Inspecting third accelerator..." << endl
+ << empty << endl;
+
+ a.clear();
+ b.clear();
+
return 0;
}
diff --git a/src/test/P10ExerciceTest.cc b/src/test/P10ExerciceTest.cc
new file mode 100644
index 0000000..cc18ec3
--- /dev/null
+++ b/src/test/P10ExerciceTest.cc
@@ -0,0 +1,78 @@
+/*
+ * exerciceP10.cc
+ *
+ * Created on: 20 avr. 2011
+ * Author: christian
+ */
+#include "Accelerator.h"
+#include "Dipole.h"
+#include "StraightElement.h"
+#include "Quadrupole.h"
+#include "FODO.h"
+#include <iostream>
+#include <string>
+#include <vector>
+
+using namespace std;
+using namespace vhc;
+
+//TODO erreur sur l'affichage de p1 ===> "NAN" <========
+/** Affiche la réponse de l'exercice P.10 de l'étape 5 (semaine 6) du projet.*/
+int main() {
+
+ Accelerator a;
+
+ Dipole* d = new Dipole(
+ Vector3D(1,0,0),
+ Vector3D(0,-1,0),
+ 0.1,
+ 1,
+ Vector3D(0,0,7),
+ NULL);
+
+ StraightElement* s = new StraightElement(
+ Vector3D(0,-1,0),
+ Vector3D(-1,-1,0),
+ 0.1);
+
+ Quadrupole* q = new Quadrupole(
+ Vector3D(-1,-1,0),
+ Vector3D(-1,-2,0),
+ 0.1,
+ 1.2);
+
+ FODO* f = new FODO(
+ Vector3D(-1,-2,0),
+ Vector3D(-1,0,0),
+ 0.1,
+ 1,
+ 1.2);
+
+ Particle* p1 = new Particle(
+ Vector3D( 1.00984,-0.191837,0 ),
+ 0.938272,
+ 1.60217653e-19,
+ 2,
+ Vector3D(-210200,-2.64754e+08,0));
+
+ Particle* p2 = new Particle(
+ Vector3D(0.99016,-0.191837,0),
+ 0.938272,
+ 1.60217653e-19,
+ 2,
+ Vector3D(210200,-2.64754e+08,0));
+
+ a.add(*d);
+ a.add(*s);
+ a.add(*q);
+ a.add(*f);
+ a.add(*p1);
+ a.add(*p2);
+
+ //TODO a.close();
+
+ cout << a << endl;
+ a.clear();
+
+ return 0;
+}
diff --git a/src/test/ParticleTest.cc b/src/test/ParticleTest.cc
index 14458dd..a9c20b8 100644
--- a/src/test/ParticleTest.cc
+++ b/src/test/ParticleTest.cc
@@ -55,8 +55,8 @@ int main() {
cout << "t = " << t << endl;
step(h);
t += h;
- cin.get(c);
- } while (c != 'c' && !hit);
+ //cin.get(c);
+ } while (false);
if (hit) {
cout << "Particle hit the wall!!!" << endl;