summaryrefslogtreecommitdiff
path: root/config/types.h
blob: aff039029bd63049e0b105c47f325632104ffb7b (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
48
49
50
51
52
53
#pragma once

#include "glad/gl.h"
#include <glm/geometric.hpp>

using Distance = float; // deprecate
using RelativeDistance = float;
using GlobalDistance = int32_t;
using CalcDistance = int64_t;
using Angle = float;

template<glm::length_t D> using Position = glm::vec<D, Distance>; // deprecate
template<glm::length_t D> using RelativePosition = glm::vec<D, RelativeDistance>;
template<glm::length_t D> using GlobalPosition = glm::vec<D, GlobalDistance>;
template<glm::length_t D> using CalcPosition = glm::vec<D, CalcDistance>;
template<glm::length_t D> using Size = glm::vec<D, Distance>;
template<glm::length_t D> using Scale = glm::vec<D, float>;
template<glm::length_t D> using Direction = glm::vec<D, float>;
template<glm::length_t D> using Normal = Direction<D>;
template<glm::length_t D> using Rotation = glm::vec<D, Angle>;
template<glm::length_t Channels> using Colour = glm::vec<Channels, float>;

using Position2D = Position<2>; // deprecate
using Position3D = Position<3>; // deprecate
using BaryPosition = glm::vec<2, float>;
using RelativePosition2D = RelativePosition<2>;
using RelativePosition3D = RelativePosition<3>;
using RelativePosition4D = RelativePosition<4>;
using GlobalPosition2D = GlobalPosition<2>;
using GlobalPosition3D = GlobalPosition<3>;
using GlobalPosition4D = GlobalPosition<4>;
using CalcPosition2D = CalcPosition<2>;
using CalcPosition3D = CalcPosition<3>;
using CalcPosition4D = CalcPosition<4>;
using Size2D = Size<2>;
using Size3D = Size<3>;
using Scale2D = Scale<2>;
using Scale3D = Scale<3>;
using Direction2D = Direction<2>;
using Direction3D = Direction<3>;
using Normal2D = Normal<2>;
using Normal3D = Normal<3>;
using Rotation2D = Rotation<2>;
using Rotation3D = Rotation<3>;
using TextureRelCoord = glm::vec<2, float>;
using TextureRelRegion = glm::vec<4, float>;
using TextureAbsCoord = glm::vec<2, GLsizei>;
using TextureAbsRegion = glm::vec<4, GLsizei>;
using RGB = Colour<3>;
using RGBA = Colour<4>;
using ScreenRelCoord = glm::vec<2, float>;
using ScreenAbsCoord = glm::vec<2, uint16_t>;
using ViewPort = glm::vec<4, GLsizei>;