summaryrefslogtreecommitdiffstats
path: root/src/game/shared/const.hh
blob: 4639c4bb13a49cc1961246e66624cb4c8c732cee (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/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 = vx::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 */