diff options
author | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-04-21 05:54:15 +0000 |
---|---|---|
committer | Christian Vazquez <christian.vazquez@epfl.ch> | 2011-04-21 05:54:15 +0000 |
commit | a80f5cb7b3d8e4cf3e48c55895b3ea23a940b8ec (patch) | |
tree | 5ae8258d36786fd23c585bfae39e22076a0af089 | |
parent | 9872f694f264c1deea2cce057713b560a883d89f (diff) | |
download | vhc-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/Makefile | 258 | ||||
-rw-r--r-- | src/main/Accelerator.cc | 36 | ||||
-rw-r--r-- | src/main/Accelerator.h | 7 | ||||
-rw-r--r-- | src/main/FODO.h | 2 | ||||
-rw-r--r-- | src/main/doxygen.h | 1 | ||||
-rw-r--r-- | src/test/AccelTest.cc | 35 | ||||
-rw-r--r-- | src/test/P10ExerciceTest.cc | 78 | ||||
-rw-r--r-- | src/test/ParticleTest.cc | 4 |
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; |