-
Notifications
You must be signed in to change notification settings - Fork 0
malekpe/ProjetTissus
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is a numerical cloth simulation, made for our Object-Oriented Programming course and written in C++. You will need C++11 and Qt5 to build the executables. Below are all indications necessary. ------------------------ Français -------------------------------------------- ==== LE PROJET ==== Le projet a été terminé : tous les modules jusqu'au P14 ont été complétés dans le détail. Autrement dit le programme est capable de simuler des tissus simples, complexes, de façon textuelle et graphique. La version graphique a été construite avec Qt5, en travaillant avec OpenGL. Chaque membre du binôme a travaillé environ 7 heures par semaine sur le projet, de manière assez régulière sur le long du semestre. ==== INSTALLATION ==== Ouvrir le Terminal dans le dossier principal du projet, "Projet034", exécuter la commande "qmake" puis "make". "qmake" va générer les Makefile nécessaires à la construction du programme, exécutés après par "make". Une fois ces deux commandes exécutées, vous pouvez ouvrir les différents exécutables construits dans tous les sous-dossier du projet. ==== DANS LA SIMULATION GRAPHIQUE ==== Maintenez le clic gauche enfoncé et déplacez la souris (ou utilisez les flèches et les touches QE) pour regarder autour de vous, et la touche Home (ou 0) pour revenir à la vue de départ. Déplacez-vous dans l'espace 3D à l'aide des touches WASD (sur le plan xy) et RF (axe z). Appuyez sur Espace pour interrompre la simulation. Appuyez sur M pour afficher/masquer les masses qui forment le tissu. Appuyez sur N pour passer d'une représentation sphérique à une représentation cubique des masses (La représentation sphérique est très vorace en ressources). Appuyez sur I pour changer entre un integrateur de Euler-Cromer et un de Newmark (par défaut Euler-Cromer) Appuyer sur K pour passer d’un affichage dynamique de la couleur des ressorts selon leurs longueurs à une couleur statique (et vice versa) ==== CARTE DU PROJET ==== /archive -> Contient les fichiers qui ne sont pas utilisés dans la version finale du projet /exerciceP11/Qt_GL -> Fichiers nécessaires au graphisme (P11) /exerciceP11/text -> Visualisation textuelle (P10) /general -> Librairie principale pour la simulation des tissus /main -> Démonstration des capacités du projet et simulation libre (vous pouvez coder et visualiser ici tout système qui vous intéresse) /plots -> Plots utilisés au cours du projet pour tester la simulation, réalisés avec Gnuplot /testClasses -> Tous les tests effectuées pour les principales classes du projet /testTissuComplexe -> Tous les tests effectués pour les classes TissuChaine, TissuRectangle, TissuDisque et TissuCompose /tmp -> Les fichiers .o sont construits ici ==== EXECUTABLES ==== - Simulation graphiques: /main/main -> DEMO: Simulation du mouvement de tissus formé d'un grand nombre de masses sous effect de plusieurs impulsions complexes. /testTissuComplexe/testTissuChaine -> affichage d'une chaine/corde /testTissuComplexe/testTissuRectangle -> affichage d'un tissu rectangulaire /testTissuComplexe/testTissuDisque -> affichage d'un tissu circulaire /testTissuComplexe/testTissuCompose -> affichage d'une composition de tissus /testClasses/testContrainteGraphique -> affichage d'une chaine affecté par une impulsion /exerciceP11/Qt_GL/exerciceP11 -> Simulation graphique pour P11 (même systeme que testIntegrateur3) - Simulation textuelles: /exerciceP11/text/exerciceP10 -> Simulation textuelle pour P10 (même système que testIntegrateur3) /testClasses/testContrainte -> test de fonctionnement des impulsions sinusoidales pour P13 - Tests: /testClasses/exerciceP9 /testClasses/testVecteur3D /testClasses/testMasse /testClasses/testRessort /testClasses/testTissu1 /testClasses/testTissu2 /testClasses/testIntegrateur1 /testClasses/testIntegrateur2 /testClasses/testIntegrateur3 Miguel & Matteo Veneziano, EPFL Section Physique, 2023 ------------------------ English -------------------------------------------- ==== THE PROJECT ==== The project is complete: every module until P14 has been made in detail. The program is therefore capable of simulating complex cloths, both numerically and graphically. The graphics are built on OpenGL, thanks to the Qt5 library. Both members of the team worked about 7 hours every week on the project, quite regularly over the course of the semester. ==== INSTALLATION ==== Open the Terminal inside the project main directory, Projet034, and execute commands "qmake" and then "make". "qmake" will generate the Makefiles necessary for the build, executed by "make". After these two commands you're ready to open the executables built. ==== DURING GRAPHIC SIMULATION ==== Hold Left Click and move the mouse (or use the arrows and QE keys) to look around, and the Home key (or 0) to reset to default view. Move in the 3D space using WASD (on the xy plane) and RF (z axis). Press Space to pause the simulation. Press M to show/hide the masses who form the cloth. Press N to switch between a spherical and cubical representation of masses (spherical is more resource-intensive). Press I to switch between an Euler-Cromer and a Newmark integrator (default is Euler-Cromer) Press K to switch from dynamic color display of springs by length to static color (and vice versa). ==== PROJECT MAP ==== /archive -> All files not used in the final version of the project /exerciceP11/Qt_GL -> Files necessary for the graphics (P11) /exerciceP11/text -> Text visualisation (P10) /general -> Main library for cloth simulation /main -> Demonstration of the project's capabilities and free simulation (you can prepare and visualise any system that interests you here) /plots -> Plots used during testing, made with Gnuplot /testClasses -> All tests carried out on the project's main classes /testTissuComplexe -> All tests carried out for classes TissuChaine, TissuRectangle, TissuDisque et TissuCompose /tmp -> .o files are built here ==== EXECUTABLES ==== - Graphical simulations: /main/main -> DEMO: simulation of the movement of cloths formed by a great number of masses, under multiple complex impulsions /testTissuComplexe/testTissuChaine -> chain/rope simulation /testTissuComplexe/testTissuRectangle -> rectangular cloth simulation /testTissuComplexe/testTissuDisque -> circular cloth simulation /testTissuComplexe/testTissuCompose -> cloth composition simulation /testClasses/testContrainteGraphique -> chain/rope simulation, with sinusoidal impulsion /exerciceP11/Qt_GL/exerciceP11 -> Graphical simulation for P11 (same system as testIntegrateur3) - Simulation textuelles: /exerciceP11/text/exerciceP10 -> text simulation for P10 (same system as testIntegrateur3) /testClasses/testContrainte -> sinusoidal impulsions test for P13 - Tests: /testClasses/exerciceP9 /testClasses/testVecteur3D /testClasses/testMasse /testClasses/testRessort /testClasses/testTissu1 /testClasses/testTissu2 /testClasses/testIntegrateur1 /testClasses/testIntegrateur2 /testClasses/testIntegrateur3 Miguel & Matteo Veneziano, EPFL Section of Physics, 2023
About
Projet de Programmation Orientée Objet, SPH-BA2
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published