-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimulator.h
More file actions
50 lines (40 loc) · 1.2 KB
/
simulator.h
File metadata and controls
50 lines (40 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "point.h"
#include <vector>
#include <random>
#include <chrono>
#ifndef SIMULATOR_H
#define SIMULATOR_H
class Simulator{
public:
std::mt19937_64 mt_rand;
std::uniform_real_distribution<double> uniformDist;
std::exponential_distribution<double> expDist;
std::normal_distribution<double> normDist;
std::uniform_int_distribution<int> intDist;
std::chrono::time_point<std::chrono::system_clock> startTime;
std::chrono::duration<double> elapsed_seconds;
std::vector<Point> points;
double radius;
int seed;
void (Simulator::*transformCoordinates)(Point*);
Simulator(int, double, double, int);
bool movePoint();
bool increaseRadius();
void transformCoordinatesSpherical(Point*);
void transformCoordinatesToroidal(Point*);
int countNeighbours(Point*);
bool hasCollision();
bool hasCollisionSingle(Point*);
void saveCoordsToFile(std::string);
void saveCoordsToFileOpengl(std::string);
void saveCoordsToFileOpenglColourTouch(std::string);
void saveCoordsToFileQhull(std::string);
void saveObservablesToFile(std::string);
void saveTimestamp(std::string);
void saveFiles(long int);
double discPackingDensity();
double MCpackingDensity(long);
double elapsedTime();
void printReport();
};
#endif