Particle​ Simulation Documentation
Loading...
Searching...
No Matches
universe.h
Go to the documentation of this file.
1#ifndef UNIVERSE_H
2#define UNIVERSE_H
3
4#include <fstream>
5#include <vector>
6
7#include "particle.h"
8#include "config.h"
9
10class Universe {
11public:
12
18 Universe(const Config& config);
19
23 void makeStep();
24
30 void saveStep(std::ofstream& file);
31
37 void addParticle(const Particle& particle);
38
45 void applyAccelerationToParticles(const std::array<double, 3>& accelerationContribution);
46
51
56
62 void computeBoxesCollision(Particle& particle);
63
69 std::vector<Particle>& getParticles();
70
74 void toggleGravity();
75
81 bool getIsGravity();
82
83
84 double m_simuationTime = 0;
85 bool m_isRunning = false;
86
87private:
89 std::vector<Particle> m_particles;
90 std::vector<Box> m_boxes;
92 std::array<double, 3> m_globalAcceleration;
93 const double m_G = 6.67430e-11;
94
95};
96
97#endif // UNIVERSE_H
Definition particle.h:9
std::vector< Particle > & getParticles()
Return the vector containing all particles.
Definition universe.cpp:147
bool m_isRunning
Universe running state.
Definition universe.h:85
std::vector< Particle > m_particles
Vector containing all particles.
Definition universe.h:89
bool getIsGravity()
Return the gravitational forces state.
Definition universe.cpp:155
double m_simuationTime
Current time in the universe.
Definition universe.h:84
const Config m_config
Configuration of the universe.
Definition universe.h:88
std::vector< Box > m_boxes
Vector containing all boxes.
Definition universe.h:90
std::array< double, 3 > m_globalAcceleration
Acceleration force apply on all universe.
Definition universe.h:92
Universe(const Config &config)
Initialize universe.
Definition universe.cpp:4
void makeStep()
Makes a simulation step.
Definition universe.cpp:15
void computeParticleCollisions()
Computes and resolve particle collisions between all particles.
Definition universe.cpp:80
void addParticle(const Particle &particle)
Adds a particle.
Definition universe.cpp:44
void applyAccelerationToParticles(const std::array< double, 3 > &accelerationContribution)
Sum an acceleration contribution to the actual acceleration of all particles.
Definition universe.cpp:49
const double m_G
Gravitational constant.
Definition universe.h:93
void computeBoxesCollision(Particle &particle)
Compute and resolve particle collisions between all boxes.
Definition universe.cpp:114
void toggleGravity()
Toggle the gravitational forces.
Definition universe.cpp:151
void computeGravitationalForces()
Computes and applies gravitational forces between all particles.
Definition universe.cpp:55
void saveStep(std::ofstream &file)
Saves all particle positions in file.
Definition universe.cpp:33
bool m_applyGravity
Vector containing all boxes.
Definition universe.h:91
Definition config.h:10