-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathmain.cpp
47 lines (40 loc) · 1.38 KB
/
main.cpp
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
#include <iostream>
#include <random>
#include "../swarmz.h"
#include "timing.h"
using namespace std;
using namespace sw;
int main() {
cout << "Hello, Swarmz World!" << endl;
std::random_device rd;
std::mt19937 eng(rd());
vector<Boid> boids;
boids.push_back(Boid(Vec3(1, 0, 0), Vec3(1, 0, 0)));
boids.push_back(Boid(Vec3(1.5, 0, 0), Vec3(1, 1, 0)));
boids.push_back(Boid(Vec3(1, 0.5, 0.5), Vec3(0, 1, 0)));
boids.push_back(Boid(Vec3(4, 4, -2), Vec3(1, 0, 0)));
Swarm swarm(&boids);
swarm.SteeringTargets.push_back(Vec3(0, 0, 0));
swarm.SteeringTargets.push_back(Vec3(4, 0, 0));
swarm.UpdateAcceleration();
for (int j = 0; j < boids.size(); ++j) {
auto p = boids[j].Position;
auto a = boids[j].Acceleration;
cout << "B " << p.X << ", " << p.Y << ", " << p.Z << " => " << a.X << ", " << a.Y << ", " << a.Z << "\n";
}
exit(0);
std::uniform_real_distribution<float> dist(0, 20);
for (int k = 1; k < 100; k++) {
int size = k * 100;
boids.clear();
for (int i = 0; i < size; i++) {
boids.push_back(Boid(Vec3(dist(eng), dist(eng), dist(eng)), Vec3::GetRandomUniform(eng)));
}
auto start = GetTimeMs64();
Swarm swarm100(&boids);
swarm100.Update(1);
cout << size << ";" << (GetTimeMs64() - start) << "\n";
}
cout << endl;
return 0;
}