summaryrefslogtreecommitdiffstats
path: root/game/shared/const.hh
blob: 0755848ab94499a8180b3b34f5d79c4ad7faf91a (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
#ifndef SHARED_CONST_HH
#define SHARED_CONST_HH 1
#pragma once

#include "core/math/constexpr.hh"

constexpr static unsigned int CHUNK_SIZE = 16;
constexpr static unsigned int CHUNK_AREA = CHUNK_SIZE * CHUNK_SIZE;
constexpr static unsigned int CHUNK_VOLUME = CHUNK_SIZE * CHUNK_SIZE * CHUNK_SIZE;
constexpr static unsigned int CHUNK_BITSHIFT = math::log2(CHUNK_SIZE);

template<typename T>
constexpr static glm::vec<3, T> DIR_NORTH = glm::vec<3, T>(0, 0, +1);
template<typename T>
constexpr static glm::vec<3, T> DIR_SOUTH = glm::vec<3, T>(0, 0, -1);
template<typename T>
constexpr static glm::vec<3, T> DIR_EAST = glm::vec<3, T>(-1, 0, 0);
template<typename T>
constexpr static glm::vec<3, T> DIR_WEST = glm::vec<3, T>(+1, 0, 0);
template<typename T>
constexpr static glm::vec<3, T> DIR_DOWN = glm::vec<3, T>(0, -1, 0);
template<typename T>
constexpr static glm::vec<3, T> DIR_UP = glm::vec<3, T>(0, +1, 0);

template<typename T>
constexpr static glm::vec<3, T> DIR_FORWARD = glm::vec<3, T>(0, 0, +1);
template<typename T>
constexpr static glm::vec<3, T> DIR_BACK = glm::vec<3, T>(0, 0, -1);
template<typename T>
constexpr static glm::vec<3, T> DIR_LEFT = glm::vec<3, T>(-1, 0, 0);
template<typename T>
constexpr static glm::vec<3, T> DIR_RIGHT = glm::vec<3, T>(+1, 0, 0);

template<typename T>
constexpr static glm::vec<3, T> UNIT_X = glm::vec<3, T>(1, 0, 0);
template<typename T>
constexpr static glm::vec<3, T> UNIT_Y = glm::vec<3, T>(0, 1, 0);
template<typename T>
constexpr static glm::vec<3, T> UNIT_Z = glm::vec<3, T>(0, 0, 1);

template<typename T>
constexpr static glm::vec<2, T> ZERO_VEC2 = glm::vec<2, T>(0, 0);

template<typename T>
constexpr static glm::vec<3, T> ZERO_VEC3 = glm::vec<3, T>(0, 0, 0);

#endif // SHARED_CONST_HH