aboutsummaryrefslogtreecommitdiff
path: root/src/core/transform.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/transform.h')
-rw-r--r--src/core/transform.h208
1 files changed, 104 insertions, 104 deletions
diff --git a/src/core/transform.h b/src/core/transform.h
index 37de46b..f72e2af 100644
--- a/src/core/transform.h
+++ b/src/core/transform.h
@@ -3,106 +3,106 @@ STATIC cube_t transform_corners(cube_t, uint8_t);
3STATIC cube_t transform(cube_t, uint8_t); 3STATIC cube_t transform(cube_t, uint8_t);
4STATIC cube_t applytrans(cube_t, const char *); 4STATIC cube_t applytrans(cube_t, const char *);
5 5
6static cube_t cube_trans_table[48] = { 6static uint8_t cube_trans_table[48][20] = {
7 [TRANS_UFr] = TRANS_CUBE_UFr, 7 [TRANS_UFr] = { TRANS_CUBE_UFr },
8 [TRANS_UFm] = TRANS_CUBE_UFm, 8 [TRANS_UFm] = { TRANS_CUBE_UFm },
9 [TRANS_ULr] = TRANS_CUBE_URr, 9 [TRANS_ULr] = { TRANS_CUBE_ULr },
10 [TRANS_ULm] = TRANS_CUBE_ULm, 10 [TRANS_ULm] = { TRANS_CUBE_ULm },
11 [TRANS_UBr] = TRANS_CUBE_UBr, 11 [TRANS_UBr] = { TRANS_CUBE_UBr },
12 [TRANS_UBm] = TRANS_CUBE_UBm, 12 [TRANS_UBm] = { TRANS_CUBE_UBm },
13 [TRANS_URr] = TRANS_CUBE_ULr, 13 [TRANS_URr] = { TRANS_CUBE_URr },
14 [TRANS_URm] = TRANS_CUBE_URm, 14 [TRANS_URm] = { TRANS_CUBE_URm },
15 [TRANS_DFr] = TRANS_CUBE_DFr, 15 [TRANS_DFr] = { TRANS_CUBE_DFr },
16 [TRANS_DFm] = TRANS_CUBE_DFm, 16 [TRANS_DFm] = { TRANS_CUBE_DFm },
17 [TRANS_DLr] = TRANS_CUBE_DLr, 17 [TRANS_DLr] = { TRANS_CUBE_DLr },
18 [TRANS_DLm] = TRANS_CUBE_DRm, 18 [TRANS_DLm] = { TRANS_CUBE_DLm },
19 [TRANS_DBr] = TRANS_CUBE_DBr, 19 [TRANS_DBr] = { TRANS_CUBE_DBr },
20 [TRANS_DBm] = TRANS_CUBE_DBm, 20 [TRANS_DBm] = { TRANS_CUBE_DBm },
21 [TRANS_DRr] = TRANS_CUBE_DRr, 21 [TRANS_DRr] = { TRANS_CUBE_DRr },
22 [TRANS_DRm] = TRANS_CUBE_DLm, 22 [TRANS_DRm] = { TRANS_CUBE_DRm },
23 [TRANS_RUr] = TRANS_CUBE_FRr, 23 [TRANS_RUr] = { TRANS_CUBE_RUr },
24 [TRANS_RUm] = TRANS_CUBE_FLm, 24 [TRANS_RUm] = { TRANS_CUBE_RUm },
25 [TRANS_RFr] = TRANS_CUBE_LFr, 25 [TRANS_RFr] = { TRANS_CUBE_RFr },
26 [TRANS_RFm] = TRANS_CUBE_RFm, 26 [TRANS_RFm] = { TRANS_CUBE_RFm },
27 [TRANS_RDr] = TRANS_CUBE_BLr, 27 [TRANS_RDr] = { TRANS_CUBE_RDr },
28 [TRANS_RDm] = TRANS_CUBE_BRm, 28 [TRANS_RDm] = { TRANS_CUBE_RDm },
29 [TRANS_RBr] = TRANS_CUBE_RBr, 29 [TRANS_RBr] = { TRANS_CUBE_RBr },
30 [TRANS_RBm] = TRANS_CUBE_LBm, 30 [TRANS_RBm] = { TRANS_CUBE_RBm },
31 [TRANS_LUr] = TRANS_CUBE_FLr, 31 [TRANS_LUr] = { TRANS_CUBE_LUr },
32 [TRANS_LUm] = TRANS_CUBE_FRm, 32 [TRANS_LUm] = { TRANS_CUBE_LUm },
33 [TRANS_LFr] = TRANS_CUBE_RFr, 33 [TRANS_LFr] = { TRANS_CUBE_LFr },
34 [TRANS_LFm] = TRANS_CUBE_LFm, 34 [TRANS_LFm] = { TRANS_CUBE_LFm },
35 [TRANS_LDr] = TRANS_CUBE_BRr, 35 [TRANS_LDr] = { TRANS_CUBE_LDr },
36 [TRANS_LDm] = TRANS_CUBE_BLm, 36 [TRANS_LDm] = { TRANS_CUBE_LDm },
37 [TRANS_LBr] = TRANS_CUBE_LBr, 37 [TRANS_LBr] = { TRANS_CUBE_LBr },
38 [TRANS_LBm] = TRANS_CUBE_RBm, 38 [TRANS_LBm] = { TRANS_CUBE_LBm },
39 [TRANS_FUr] = TRANS_CUBE_FUr, 39 [TRANS_FUr] = { TRANS_CUBE_FUr },
40 [TRANS_FUm] = TRANS_CUBE_FUm, 40 [TRANS_FUm] = { TRANS_CUBE_FUm },
41 [TRANS_FRr] = TRANS_CUBE_RUr, 41 [TRANS_FRr] = { TRANS_CUBE_FRr },
42 [TRANS_FRm] = TRANS_CUBE_LUm, 42 [TRANS_FRm] = { TRANS_CUBE_FRm },
43 [TRANS_FDr] = TRANS_CUBE_BUr, 43 [TRANS_FDr] = { TRANS_CUBE_FDr },
44 [TRANS_FDm] = TRANS_CUBE_BUm, 44 [TRANS_FDm] = { TRANS_CUBE_FDm },
45 [TRANS_FLr] = TRANS_CUBE_LUr, 45 [TRANS_FLr] = { TRANS_CUBE_FLr },
46 [TRANS_FLm] = TRANS_CUBE_RUm, 46 [TRANS_FLm] = { TRANS_CUBE_FLm },
47 [TRANS_BUr] = TRANS_CUBE_FDr, 47 [TRANS_BUr] = { TRANS_CUBE_BUr },
48 [TRANS_BUm] = TRANS_CUBE_FDm, 48 [TRANS_BUm] = { TRANS_CUBE_BUm },
49 [TRANS_BRr] = TRANS_CUBE_LDr, 49 [TRANS_BRr] = { TRANS_CUBE_BRr },
50 [TRANS_BRm] = TRANS_CUBE_RDm, 50 [TRANS_BRm] = { TRANS_CUBE_BRm },
51 [TRANS_BDr] = TRANS_CUBE_BDr, 51 [TRANS_BDr] = { TRANS_CUBE_BDr },
52 [TRANS_BDm] = TRANS_CUBE_BDm, 52 [TRANS_BDm] = { TRANS_CUBE_BDm },
53 [TRANS_BLr] = TRANS_CUBE_RDr, 53 [TRANS_BLr] = { TRANS_CUBE_BLr },
54 [TRANS_BLm] = TRANS_CUBE_LDm, 54 [TRANS_BLm] = { TRANS_CUBE_BLm },
55}; 55};
56 56
57static cube_t cube_trans_table_inverse[48] = { 57static uint8_t cube_trans_table_inverse[48][20] = {
58 [TRANS_UFr] = TRANS_CUBE_UFr_inverse, 58 [TRANS_UFr] = { TRANS_CUBE_UFr_INVERSE },
59 [TRANS_UFm] = TRANS_CUBE_UFm_inverse, 59 [TRANS_UFm] = { TRANS_CUBE_UFm_INVERSE },
60 [TRANS_ULr] = TRANS_CUBE_URr_inverse, 60 [TRANS_ULr] = { TRANS_CUBE_ULr_INVERSE },
61 [TRANS_ULm] = TRANS_CUBE_ULm_inverse, 61 [TRANS_ULm] = { TRANS_CUBE_ULm_INVERSE },
62 [TRANS_UBr] = TRANS_CUBE_UBr_inverse, 62 [TRANS_UBr] = { TRANS_CUBE_UBr_INVERSE },
63 [TRANS_UBm] = TRANS_CUBE_UBm_inverse, 63 [TRANS_UBm] = { TRANS_CUBE_UBm_INVERSE },
64 [TRANS_URr] = TRANS_CUBE_ULr_inverse, 64 [TRANS_URr] = { TRANS_CUBE_URr_INVERSE },
65 [TRANS_URm] = TRANS_CUBE_URm_inverse, 65 [TRANS_URm] = { TRANS_CUBE_URm_INVERSE },
66 [TRANS_DFr] = TRANS_CUBE_DFr_inverse, 66 [TRANS_DFr] = { TRANS_CUBE_DFr_INVERSE },
67 [TRANS_DFm] = TRANS_CUBE_DFm_inverse, 67 [TRANS_DFm] = { TRANS_CUBE_DFm_INVERSE },
68 [TRANS_DLr] = TRANS_CUBE_DLr_inverse, 68 [TRANS_DLr] = { TRANS_CUBE_DLr_INVERSE },
69 [TRANS_DLm] = TRANS_CUBE_DRm_inverse, 69 [TRANS_DLm] = { TRANS_CUBE_DLm_INVERSE },
70 [TRANS_DBr] = TRANS_CUBE_DBr_inverse, 70 [TRANS_DBr] = { TRANS_CUBE_DBr_INVERSE },
71 [TRANS_DBm] = TRANS_CUBE_DBm_inverse, 71 [TRANS_DBm] = { TRANS_CUBE_DBm_INVERSE },
72 [TRANS_DRr] = TRANS_CUBE_DRr_inverse, 72 [TRANS_DRr] = { TRANS_CUBE_DRr_INVERSE },
73 [TRANS_DRm] = TRANS_CUBE_DLm_inverse, 73 [TRANS_DRm] = { TRANS_CUBE_DRm_INVERSE },
74 [TRANS_RUr] = TRANS_CUBE_FRr_inverse, 74 [TRANS_RUr] = { TRANS_CUBE_RUr_INVERSE },
75 [TRANS_RUm] = TRANS_CUBE_FLm_inverse, 75 [TRANS_RUm] = { TRANS_CUBE_RUm_INVERSE },
76 [TRANS_RFr] = TRANS_CUBE_LFr_inverse, 76 [TRANS_RFr] = { TRANS_CUBE_RFr_INVERSE },
77 [TRANS_RFm] = TRANS_CUBE_RFm_inverse, 77 [TRANS_RFm] = { TRANS_CUBE_RFm_INVERSE },
78 [TRANS_RDr] = TRANS_CUBE_BLr_inverse, 78 [TRANS_RDr] = { TRANS_CUBE_RDr_INVERSE },
79 [TRANS_RDm] = TRANS_CUBE_BRm_inverse, 79 [TRANS_RDm] = { TRANS_CUBE_RDm_INVERSE },
80 [TRANS_RBr] = TRANS_CUBE_RBr_inverse, 80 [TRANS_RBr] = { TRANS_CUBE_RBr_INVERSE },
81 [TRANS_RBm] = TRANS_CUBE_LBm_inverse, 81 [TRANS_RBm] = { TRANS_CUBE_RBm_INVERSE },
82 [TRANS_LUr] = TRANS_CUBE_FLr_inverse, 82 [TRANS_LUr] = { TRANS_CUBE_LUr_INVERSE },
83 [TRANS_LUm] = TRANS_CUBE_FRm_inverse, 83 [TRANS_LUm] = { TRANS_CUBE_LUm_INVERSE },
84 [TRANS_LFr] = TRANS_CUBE_RFr_inverse, 84 [TRANS_LFr] = { TRANS_CUBE_LFr_INVERSE },
85 [TRANS_LFm] = TRANS_CUBE_LFm_inverse, 85 [TRANS_LFm] = { TRANS_CUBE_LFm_INVERSE },
86 [TRANS_LDr] = TRANS_CUBE_BRr_inverse, 86 [TRANS_LDr] = { TRANS_CUBE_LDr_INVERSE },
87 [TRANS_LDm] = TRANS_CUBE_BLm_inverse, 87 [TRANS_LDm] = { TRANS_CUBE_LDm_INVERSE },
88 [TRANS_LBr] = TRANS_CUBE_LBr_inverse, 88 [TRANS_LBr] = { TRANS_CUBE_LBr_INVERSE },
89 [TRANS_LBm] = TRANS_CUBE_RBm_inverse, 89 [TRANS_LBm] = { TRANS_CUBE_LBm_INVERSE },
90 [TRANS_FUr] = TRANS_CUBE_FUr_inverse, 90 [TRANS_FUr] = { TRANS_CUBE_FUr_INVERSE },
91 [TRANS_FUm] = TRANS_CUBE_FUm_inverse, 91 [TRANS_FUm] = { TRANS_CUBE_FUm_INVERSE },
92 [TRANS_FRr] = TRANS_CUBE_RUr_inverse, 92 [TRANS_FRr] = { TRANS_CUBE_FRr_INVERSE },
93 [TRANS_FRm] = TRANS_CUBE_LUm_inverse, 93 [TRANS_FRm] = { TRANS_CUBE_FRm_INVERSE },
94 [TRANS_FDr] = TRANS_CUBE_BUr_inverse, 94 [TRANS_FDr] = { TRANS_CUBE_FDr_INVERSE },
95 [TRANS_FDm] = TRANS_CUBE_BUm_inverse, 95 [TRANS_FDm] = { TRANS_CUBE_FDm_INVERSE },
96 [TRANS_FLr] = TRANS_CUBE_LUr_inverse, 96 [TRANS_FLr] = { TRANS_CUBE_FLr_INVERSE },
97 [TRANS_FLm] = TRANS_CUBE_RUm_inverse, 97 [TRANS_FLm] = { TRANS_CUBE_FLm_INVERSE },
98 [TRANS_BUr] = TRANS_CUBE_FDr_inverse, 98 [TRANS_BUr] = { TRANS_CUBE_BUr_INVERSE },
99 [TRANS_BUm] = TRANS_CUBE_FDm_inverse, 99 [TRANS_BUm] = { TRANS_CUBE_BUm_INVERSE },
100 [TRANS_BRr] = TRANS_CUBE_LDr_inverse, 100 [TRANS_BRr] = { TRANS_CUBE_BRr_INVERSE },
101 [TRANS_BRm] = TRANS_CUBE_RDm_inverse, 101 [TRANS_BRm] = { TRANS_CUBE_BRm_INVERSE },
102 [TRANS_BDr] = TRANS_CUBE_BDr_inverse, 102 [TRANS_BDr] = { TRANS_CUBE_BDr_INVERSE },
103 [TRANS_BDm] = TRANS_CUBE_BDm_inverse, 103 [TRANS_BDm] = { TRANS_CUBE_BDm_INVERSE },
104 [TRANS_BLr] = TRANS_CUBE_RDr_inverse, 104 [TRANS_BLr] = { TRANS_CUBE_BLr_INVERSE },
105 [TRANS_BLm] = TRANS_CUBE_LDm_inverse, 105 [TRANS_BLm] = { TRANS_CUBE_BLm_INVERSE },
106}; 106};
107 107
108STATIC cube_t 108STATIC cube_t
@@ -114,8 +114,8 @@ transform_edges(cube_t c, uint8_t t)
114 "transform: invalid transformation %" PRIu8 114 "transform: invalid transformation %" PRIu8
115 ", must be between 0 and 47\n", t); 115 ", must be between 0 and 47\n", t);
116 116
117 trans_cube = cube_trans_table[t]; 117 trans_cube = cubefromarray_single(cube_trans_table[t]);
118 trans_inv = cube_trans_table_inverse[t]; 118 trans_inv = cubefromarray_single(cube_trans_table_inverse[t]);
119 119
120 ret = compose_edges(trans_cube, c); 120 ret = compose_edges(trans_cube, c);
121 ret = compose_edges(ret, trans_inv); 121 ret = compose_edges(ret, trans_inv);
@@ -132,8 +132,8 @@ transform_corners(cube_t c, uint8_t t)
132 "transform: invalid transformation %" PRIu8 132 "transform: invalid transformation %" PRIu8
133 ", must be between 0 and 47\n", t); 133 ", must be between 0 and 47\n", t);
134 134
135 trans_cube = cube_trans_table[t]; 135 trans_cube = cubefromarray_single(cube_trans_table[t]);
136 trans_inv = cube_trans_table_inverse[t]; 136 trans_inv = cubefromarray_single(cube_trans_table_inverse[t]);
137 137
138 ret = compose_corners(trans_cube, c); 138 ret = compose_corners(trans_cube, c);
139 ret = compose_corners(ret, trans_inv); 139 ret = compose_corners(ret, trans_inv);
@@ -150,8 +150,8 @@ transform(cube_t c, uint8_t t)
150 "transform: invalid transformation %" PRIu8 150 "transform: invalid transformation %" PRIu8
151 ", must be between 0 and 47\n", t); 151 ", must be between 0 and 47\n", t);
152 152
153 trans_cube = cube_trans_table[t]; 153 trans_cube = cubefromarray_single(cube_trans_table[t]);
154 trans_inv = cube_trans_table_inverse[t]; 154 trans_inv = cubefromarray_single(cube_trans_table_inverse[t]);
155 155
156 ret = compose(trans_cube, c); 156 ret = compose(trans_cube, c);
157 ret = compose(ret, trans_inv); 157 ret = compose(ret, trans_inv);

Generated with cgit - Back to sebastiano.tronto.net