TachyonUI 0.1.0
High-performance UI for building tools.
Loading...
Searching...
No Matches
gui_type_dimensions.h
Go to the documentation of this file.
1#pragma once
2
4
5namespace tachyon
6{
9
10 template<typename T>
12 {
13 using Type = T;
14 using ComponentType = T;
15 static constexpr int dimensions = 1;
16 static T& GetComponent(T& value, int /*index*/) { return value; }
17 };
18
19 template<> struct TypeDimensions<int2> { using Type = int2; using ComponentType = decltype(Type::x); static constexpr int dimensions = 2; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y" }; };
20 template<> struct TypeDimensions<int3> { using Type = int3; using ComponentType = decltype(Type::x); static constexpr int dimensions = 3; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z" }; };
21 template<> struct TypeDimensions<int4> { using Type = int4; using ComponentType = decltype(Type::x); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z", "W"}; };
22
23 template<> struct TypeDimensions<uint2> { using Type = uint2; using ComponentType = decltype(Type::x); static constexpr int dimensions = 2; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y"}; };
24 template<> struct TypeDimensions<uint3> { using Type = uint3; using ComponentType = decltype(Type::x); static constexpr int dimensions = 3; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z"}; };
25 template<> struct TypeDimensions<uint4> { using Type = uint4; using ComponentType = decltype(Type::x); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z", "W"}; };
26
27 template<> struct TypeDimensions<short2> { using Type = short2; using ComponentType = decltype(Type::x); static constexpr int dimensions = 2; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y"}; };
28 template<> struct TypeDimensions<short3> { using Type = short3; using ComponentType = decltype(Type::x); static constexpr int dimensions = 3; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z"}; };
29 template<> struct TypeDimensions<short4> { using Type = short4; using ComponentType = decltype(Type::x); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z", "W"}; };
30
31 template<> struct TypeDimensions<ushort2> { using Type = ushort2; using ComponentType = decltype(Type::x); static constexpr int dimensions = 2; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const* const names[dimensions] = { "X", "Y" }; };
32 template<> struct TypeDimensions<ushort3> { using Type = ushort3; using ComponentType = decltype(Type::x); static constexpr int dimensions = 3; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const* const names[dimensions] = { "X", "Y", "Z" }; };
33 template<> struct TypeDimensions<ushort4> { using Type = ushort4; using ComponentType = decltype(Type::x); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z", "W"}; };
34
35 template<> struct TypeDimensions<byte2> { using Type = byte2; using ComponentType = decltype(Type::x); static constexpr int dimensions = 2; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y"}; };
36 template<> struct TypeDimensions<byte3> { using Type = byte3; using ComponentType = decltype(Type::x); static constexpr int dimensions = 3; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z"}; };
37 template<> struct TypeDimensions<byte4> { using Type = byte4; using ComponentType = decltype(Type::x); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z", "W"}; };
38
39 template<> struct TypeDimensions<float2> { using Type = float2; using ComponentType = decltype(Type::x); static constexpr int dimensions = 2; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y"}; };
40 template<> struct TypeDimensions<float3> { using Type = float3; using ComponentType = decltype(Type::x); static constexpr int dimensions = 3; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const*const names[dimensions] = {"X", "Y", "Z"}; };
41 template<> struct TypeDimensions<float4> { using Type = float4; using ComponentType = decltype(Type::x); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const* const names[dimensions] = { "X", "Y", "Z", "W"}; };
42
43 template<> struct TypeDimensions<color4b> { using Type = color4b; using ComponentType = decltype(Type::r); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const* const names[dimensions] = { "R", "G", "B", "A" }; };
44 template<> struct TypeDimensions<color4f> { using Type = color4f; using ComponentType = decltype(Type::r); static constexpr int dimensions = 4; inline static ComponentType& GetComponent(Type& value, int index) { return value[index]; } static constexpr char const* const names[dimensions] = { "R", "G", "B", "A" }; };
46}
Definition gui_logging.h:24
static constexpr int dimensions
Definition gui_type_dimensions.h:35
byte2 Type
Definition gui_type_dimensions.h:35
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:35
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:35
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:35
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:36
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:36
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:36
static constexpr int dimensions
Definition gui_type_dimensions.h:36
byte3 Type
Definition gui_type_dimensions.h:36
static constexpr int dimensions
Definition gui_type_dimensions.h:37
byte4 Type
Definition gui_type_dimensions.h:37
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:37
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:37
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:37
decltype(Type::r) ComponentType
Definition gui_type_dimensions.h:43
static constexpr int dimensions
Definition gui_type_dimensions.h:43
color4b Type
Definition gui_type_dimensions.h:43
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:43
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:43
color4f Type
Definition gui_type_dimensions.h:44
static constexpr int dimensions
Definition gui_type_dimensions.h:44
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:44
decltype(Type::r) ComponentType
Definition gui_type_dimensions.h:44
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:44
static constexpr int dimensions
Definition gui_type_dimensions.h:39
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:39
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:39
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:39
float2 Type
Definition gui_type_dimensions.h:39
static constexpr int dimensions
Definition gui_type_dimensions.h:40
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:40
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:40
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:40
float3 Type
Definition gui_type_dimensions.h:40
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:41
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:41
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:41
static constexpr int dimensions
Definition gui_type_dimensions.h:41
float4 Type
Definition gui_type_dimensions.h:41
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:19
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:19
static constexpr int dimensions
Definition gui_type_dimensions.h:19
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:19
int2 Type
Definition gui_type_dimensions.h:19
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:20
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:20
int3 Type
Definition gui_type_dimensions.h:20
static constexpr int dimensions
Definition gui_type_dimensions.h:20
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:20
static constexpr int dimensions
Definition gui_type_dimensions.h:21
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:21
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:21
int4 Type
Definition gui_type_dimensions.h:21
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:21
short2 Type
Definition gui_type_dimensions.h:27
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:27
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:27
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:27
static constexpr int dimensions
Definition gui_type_dimensions.h:27
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:28
static constexpr int dimensions
Definition gui_type_dimensions.h:28
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:28
short3 Type
Definition gui_type_dimensions.h:28
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:28
short4 Type
Definition gui_type_dimensions.h:29
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:29
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:29
static constexpr int dimensions
Definition gui_type_dimensions.h:29
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:29
uint2 Type
Definition gui_type_dimensions.h:23
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:23
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:23
static constexpr int dimensions
Definition gui_type_dimensions.h:23
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:23
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:24
uint3 Type
Definition gui_type_dimensions.h:24
static constexpr int dimensions
Definition gui_type_dimensions.h:24
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:24
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:24
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:25
uint4 Type
Definition gui_type_dimensions.h:25
static constexpr int dimensions
Definition gui_type_dimensions.h:25
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:25
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:25
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:31
ushort2 Type
Definition gui_type_dimensions.h:31
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:31
static constexpr int dimensions
Definition gui_type_dimensions.h:31
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:31
static constexpr int dimensions
Definition gui_type_dimensions.h:32
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:32
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:32
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:32
ushort3 Type
Definition gui_type_dimensions.h:32
decltype(Type::x) ComponentType
Definition gui_type_dimensions.h:33
static ComponentType & GetComponent(Type &value, int index)
Definition gui_type_dimensions.h:33
static constexpr char const *const names[dimensions]
Definition gui_type_dimensions.h:33
ushort4 Type
Definition gui_type_dimensions.h:33
static constexpr int dimensions
Definition gui_type_dimensions.h:33
Definition gui_type_dimensions.h:12
T Type
Definition gui_type_dimensions.h:13
T ComponentType
Definition gui_type_dimensions.h:14
static constexpr int dimensions
Definition gui_type_dimensions.h:15
static T & GetComponent(T &value, int)
Definition gui_type_dimensions.h:16
Definition gui_base_types.h:277
byte x
Definition gui_base_types.h:278
Definition gui_base_types.h:288
byte x
Definition gui_base_types.h:289
Definition gui_base_types.h:299
byte x
Definition gui_base_types.h:300
Definition gui_base_types.h:384
byte r
Definition gui_base_types.h:385
Definition gui_base_types.h:395
float r
Definition gui_base_types.h:396
Definition gui_base_types.h:121
float x
Definition gui_base_types.h:122
Definition gui_base_types.h:150
float x
Definition gui_base_types.h:151
Definition gui_base_types.h:174
float x
Definition gui_base_types.h:175
Integer 2D vector.
Definition gui_base_types.h:19
int32_t x
Definition gui_base_types.h:20
Definition gui_base_types.h:37
int32_t x
Definition gui_base_types.h:38
Definition gui_base_types.h:55
int32_t x
Definition gui_base_types.h:56
Definition gui_base_types.h:313
short x
Definition gui_base_types.h:314
Definition gui_base_types.h:324
short x
Definition gui_base_types.h:325
Definition gui_base_types.h:335
short x
Definition gui_base_types.h:336
Definition gui_base_types.h:75
uint32_t x
Definition gui_base_types.h:76
Definition gui_base_types.h:90
uint32_t x
Definition gui_base_types.h:91
Definition gui_base_types.h:105
uint32_t x
Definition gui_base_types.h:106
Definition gui_base_types.h:350
ushort x
Definition gui_base_types.h:351
Definition gui_base_types.h:361
ushort x
Definition gui_base_types.h:362
Definition gui_base_types.h:372
ushort x
Definition gui_base_types.h:373