summaryrefslogtreecommitdiffhomepage
path: root/ExampleSource.cpp
blob: 608305508d2afbe4be728ad35fa5e7364421ad13 (plain)
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 "ExampleSource.h"

#include <cmath>
#include <utility>
#include <vector>

#include <raylib.h>

#include "Grid.h"
#include "Killmail.h"


constexpr float MAX {4.0f};
constexpr float MIN {-4.0f};
constexpr float STEP {0.2f};


ExampleSource::ExampleSource() :
    m_time {0.0f}
{
}


std::vector<Grid>
ExampleSource::grids() const
{
    std::vector<Killmail> killmails;
    killmails.reserve(std::pow((MAX - MIN) / STEP, 2));
    m_time += GetFrameTime();
    if (m_time > 2.0f * M_PI)
        m_time -= 2.0f * M_PI;
    for (float z = MIN; z <= MAX; z += STEP) {
        for (float x = MIN; x <= MAX; x += STEP) {
            Killmail km;
            km.position = {
                x,
                std::cos(x) + std::cos(z + m_time),
                z,
            };
            killmails.push_back(std::move(km));
        }
    }
    Grid grid;
    grid.origin = {0.0, 0.0, 0.0};
    grid.killmails = killmails;
    return {grid};
}