25
27
/* chessmodels.c: Contains the code for piece model creation */
33
# include <OpenGL/gl.h>
32
39
#include "chessmodels.h"
36
#define piece_size 0.095
39
/* Make a revolved piece */
40
void revolve_line(double *trace_r, double *trace_h, double max_ih, int rot) {
41
double theta, norm_theta, sin_theta, cos_theta;
42
double norm_ptheta = 0.0, sin_ptheta = 0.0, cos_ptheta = 1.0;
43
double radius, pradius;
44
double max_height = max_ih, height, pheight;
47
double dtheta = (2.0*M_PI) / rot;
49
/* Get the number of points */
51
fabs(trace_r[npoints]) > EPSILON || fabs(trace_h[npoints]) > EPSILON;
54
/* If less than two points, can not revolve */
58
/* If the max_height hasn't been defined, find it */
59
if(max_height < EPSILON)
60
for(p = 0; p < npoints; ++p)
61
if(max_height < trace_h[p])
62
max_height = trace_h[p];
64
/* Draw the revolution */
65
for(theta = dtheta; rot > 0; --rot) {
66
sin_theta = sin(theta);
67
cos_theta = cos(theta);
68
norm_theta = theta / (2.0 * M_PI);
69
pradius = trace_r[0] * piece_size;
70
pheight = trace_h[0] * piece_size;
72
for(p = 1; p < npoints; ++p) {
73
radius = trace_r[p] * piece_size;
74
height = trace_h[p] * piece_size;
76
/* Get the normalized lengths of the normal vector */
77
dx = radius - pradius;
78
dy = height - pheight;
79
len = sqrt(dx*dx + dy*dy);
83
/* If only triangles required */
84
if (fabs(radius) < EPSILON) {
85
glBegin(GL_TRIANGLES);
87
glNormal3f(dy * sin_ptheta, -dx, dy * cos_ptheta);
88
glTexCoord2f(norm_ptheta, pheight / max_height);
89
glVertex3f(pradius * sin_ptheta, pheight, pradius * cos_ptheta);
91
glNormal3f(dy * sin_theta, -dx, dy * cos_theta);
92
glTexCoord2f(norm_theta, pheight / max_height);
93
glVertex3f(pradius * sin_theta, pheight, pradius * cos_theta);
95
glTexCoord2f(0.5 * (norm_theta + norm_ptheta),
97
glVertex3f(0.0, height, 0.0);
105
glNormal3f(dy * sin_ptheta, -dx, dy * cos_ptheta);
106
glTexCoord2f(norm_ptheta, pheight / max_height);
107
glVertex3f(pradius * sin_ptheta, pheight, pradius * cos_ptheta);
109
glNormal3f(dy * sin_theta, -dx, dy * cos_theta);
110
glTexCoord2f(norm_theta, pheight / max_height);
111
glVertex3f(pradius * sin_theta, pheight, pradius * cos_theta);
113
glTexCoord2f(norm_theta, height / max_height);
114
glVertex3f(radius * sin_theta, height, radius * cos_theta);
116
glNormal3f(dy * sin_ptheta, -dx, dy * cos_ptheta);
117
glTexCoord2f(norm_ptheta, height / max_height);
118
glVertex3f(radius * sin_ptheta, height, radius * cos_ptheta);
127
sin_ptheta = sin_theta;
128
cos_ptheta = cos_theta;
129
norm_ptheta = norm_theta;
134
void gen_model_lists(void) {
42
#define ENDOFDATA 65535
46
#define VERTICES 65533
48
#define TRIANGLES 65531
49
#define POLARQUADSTRIP 65530
50
#define QUADSTRIP 65529
52
/* Special spin-related commands */
56
#define STEPDOWN 65525
57
#define SETBACKREF 65524
60
unsigned short classic_pawn_data[] = {
62
350,0,SEAM,350,200,SEAM,250,300,SEAM,250,400,SEAM,150,600,SEAM,100,880,
63
SEAM,180,880,SEAM,100,920,SEAM,200,1160,SEAM,100,1340,0,1340,
67
unsigned short classic_rook_data[] = {
69
380,0,SEAM,380,200,SEAM,260,500,SEAM,200,1020,SEAM,280,1020,SEAM,280,1360,SEAM,220,1360,SEAM,220,1300,0,1300,
73
unsigned short classic_knight_data[] = {
75
410,0,SEAM,410,200,SEAM,200,360,SEAM,200,480,260,580,
78
260,580,260, -260,580,260, -260,580,-80, 260,580,-80, 80,1620,400,
79
100,1680,340, -100,1680,340, -80,1620,400, 100,1680,340, 100,1680,300,
80
-100,1680,300, -100,1680,340, 100,1680,300, 50,1680,160, -50,1680,160,
81
-100,1680,300, 50,1680,160, 100,1680,20, -100,1680,20, -50,1680,160,
82
100,1680,20, 100,1680,-20, -100,1680,-20, -100,1680,20, 100,1680,-20,
83
40,1680,-110, -40,1680,-110, -100,1680,-20, 40,1680,-110,
84
100,1680,-200, -100,1680,-200, -40,1680,-110, 100,1680,-200,
85
100,1680,-440, -100,1680,-440, -100,1680,-200, -100,1680,-440,
86
100,1680,-440, 100,1500,-440, -100,1500,-440, -100,1500,-440,
87
100,1500,-440, 55,1480,-280, -55,1480,-280, -100,1680,300, -50,1680,160,
88
-100,1400,130, -120,1380,240, -50,1680,160, -80,1680,20, -120,1380,20,
89
-100,1400,130, -83,1660,20, -80,1680,20, -100,1680,-20, -100,1660,-38,
90
-120,1380,20, -88,1620,20, -100,1620,-74, -120,1360,-20, -120,1360,-20,
91
-100,1620,-74, -100,1580,-110, -60,1400,-140, -100,1680,-200,
92
-55,1480,-280, -60,1400,-140, -100,1580,-110, -100,1680,-200,
93
-100,1680,-440, -100,1500,-440, -55,1480,-280, 100,1680,300,
94
120,1380,240, 100,1400,130, 50,1680,160, 50,1680,160, 100,1400,130,
95
120,1380,20, 80,1680,20, 83,1660,20, 100,1660,-38, 100,1680,-20,
96
80,1680,20, 120,1380,20, 120,1360,-20, 100,1620,-74, 88,1620,20,
97
120,1360,-20, 60,1400,-140, 100,1580,-110, 100,1620,-74, 100,1680,-200,
98
100,1580,-110, 60,1400,-140, 55,1480,-280, 100,1680,-200, 55,1480,-280,
99
100,1500,-440, 100,1680,-440, 88,1620,20, 100,1620,-74, 80,1640,-56,
100
61,1640,20, 61,1640,20, 80,1640,-56, 100,1660,-38, 83,1660,20,
101
-88,1620,20, -61,1640,20, -80,1640,-56, -100,1620,-74, -61,1640,20,
102
-83,1660,20, -100,1660,-38, -80,1640,-56, 35,1780,-80, 35,1780,-440,
103
-35,1780,-440, -35,1780,-80, 35,1780,-80, 35,1680,-80, 35,1680,-440,
104
35,1780,-440, -35,1780,-80, -35,1780,-440, -35,1680,-440, -35,1680,-80,
105
35,1780,-80, -35,1780,-80, -35,1680,-80, 35,1680,-80, 35,1780,-440,
106
35,1680,-440, -35,1680,-440, -35,1780,-440, -100,1400,130, -120,1380,20,
107
120,1380,20, 100,1400,130, -100,1400,130, 100,1400,130, 120,1380,240,
108
-120,1380,240, -260,580,-80, -55,1480,-280, 0,1500,-360, 0,780,-400,
109
260,580,-80, 0,780,-400, 0,1500,-360, 55,1480,-280, -50,1380,40,
110
-200,880,400, 200,880,400, 50,1380,40, -200,880,400, -260,580,260,
111
260,580,260, 200,880,400, -50,1380,40, -140,1220,-40, -260,580,260,
112
-200,880,400, -140,1220,-40, -114,1220,-222, -260,580,-80, -260,580,260,
113
-55,1480,-280, -114,1220,-222, -140,1220,-40, -60,1400,-140,
114
50,1380,40, 200,880,400, 260,580,260, 140,1220,-40, 140,1220,-40,
115
260,580,260, 260,580,-80, 114,1220,-222, 55,1480,-280, 60,1400,-140,
116
140,1220,-40, 114,1220,-222, 260,580,-80, 144,580,-260, 0,780,-400,
117
144,580,-260, -144,580,-260, 0,780,-400, -260,580,-80, 0,780,-400,
118
-144,580,-260, 0,1400,400, 80,1620,400, -80,1620,400, 0,1400,400,
119
-80,1620,400, -120,1380,240, -120,1380,240, -80,1620,400, -100,1680,340,
120
-120,1380,240, -100,1680,340, -100,1680,300, 0,1400,400, 120,1380,240,
121
80,1620,400, 120,1380,240, 100,1680,340, 80,1620,400, 120,1380,240,
122
100,1680,300, 100,1680,340, 0,1400,400, -120,1380,240, 120,1380,240,
123
-60,1400,-140, -140,1220,-40, -45,1380,-20, -45,1380,-20, -140,1220,-40,
124
-50,1380,40, 60,1400,-140, 45,1380,-20, 140,1220,-40, 45,1380,-20,
125
50,1380,40, 140,1220,-40, 60,1400,-140, 120,1360,-20, 45,1380,-20,
126
50,1380,40, 45,1380,-20, 120,1360,-20, 50,1380,40, 120,1360,-20,
127
120,1380,20, -60,1400,-140, -45,1380,-20, -120,1360,-20, -50,1380,40,
128
-120,1360,-20, -45,1380,-20, -50,1380,40, -120,1380,20, -120,1360,-20,
129
88,1620,20, 61,1640,20, 83,1660,20, 100,1620,-74, 100,1660,-38,
130
80,1640,-56, -88,1620,20, -83,1660,20, -61,1640,20, -100,1620,-74,
131
-80,1640,-56, -100,1660,-38, -40,1680,-110, -100,1680,-200,
132
-100,1580,-110, -100,1680,-20, -40,1680,-110, -100,1580,-110,
133
40,1680,-110, 100,1580,-110, 100,1680,-200, 100,1680,-20, 100,1580,-110,
136
QUADS, 0,1,2,3, 4,5,6,7, 8,9,10,11, 12,13,14,15, 16,17,18,19,
137
20,21,22,23, 24,25,26,27, 28,29,30,31, 32,33,34,35, 36,37,38,39,
138
40,41,42,43, 44,45,46,47, 48,49,50,51, 52,53,54,55, 56,57,58,59,
139
60,61,62,63, 64,65,66,67, 68,69,70,71, 72,73,74,75, 76,77,78,79,
140
80,81,82,83, 84,85,86,87, 88,89,90,91, 92,93,94,95, 96,97,98,99,
141
100,101,102,103, 104,105,106,107, 108,109,110,111, 112,113,114,115,
142
116,117,118,119, 120,121,122,123, 124,125,126,127, 128,129,130,131,
143
132,133,134,135, 136,137,138,139, 140,141,142,143, 144,145,146,147,
144
148,149,150,151, 152,153,154,155, 156,157,158,159, 160,161,162,163,
145
164,165,166,167, 168,169,170,171, 172,173,174,175, 176,177,178,179,
148
TRIANGLES, 184,185,186, 187,188,189, 190,191,192, 193,194,195,
149
196,197,198, 199,200,201, 202,203,204, 205,206,207, 208,209,210,
150
211,212,213, 214,215,216, 217,218,219, 220,221,222, 223,224,225,
151
226,227,228, 229,230,231, 232,233,234, 235,236,237, 238,239,240,
152
241,242,243, 244,245,246, 247,248,249, 250,251,252, 253,254,255,
153
256,257,258, 259,260,261, 262,263,264, 265,266,267, 268,269,270,
158
unsigned short classic_bishop_data[] = {
160
400,0,SEAM,400,200,SEAM,250,300,SEAM,250,400,SEAM,150,700,SEAM,120,940,
161
SEAM,250,940,SEAM,170,1100,SEAM,170,1220,SEAM,220,1320,SEAM,220,1480,
162
SEAM,100,1600,SEAM,80,1700,SEAM,120,1770,SEAM,80,1840,0,1840,
166
unsigned short classic_queen_data[] = {
168
480,0,SEAM,480,220,SEAM,340,400,SEAM,340,500,SEAM,180,800,SEAM,140,1180,
169
SEAM,290,1180,SEAM,180,1360,SEAM,180,1520,SEAM,200,1780,SEAM,270,1920,
170
SEAM,240,2000,SEAM,170,2000,SEAM,95,2080,SEAM,70,2080,SEAM,90,2140,
175
unsigned short classic_king_data[] = {
177
500,0,SEAM,500,200,SEAM,350,300,SEAM,350,460,SEAM,200,760,SEAM,140,1260,
178
SEAM,300,1260,SEAM,200,1460,SEAM,200,1560,SEAM,280,1910,SEAM,160,1970,
179
SEAM,160,2010,0,2010,
182
-30,2010,35, 30,2010,35, 30,2310,35, -30,2310,35, -90,2110,35,
183
-30,2110,35, -30,2210,35, -90,2210,35, 90,2110,35, 90,2210,35,
184
30,2210,35, 30,2110,35, 30,2010,-35, -30,2010,-35, -30,2310,-35,
185
30,2310,-35, -30,2110,-35, -90,2110,-35, -90,2210,-35, -30,2210,-35,
186
30,2110,-35, 30,2210,-35, 90,2210,-35, 90,2110,-35, -90,2110,35,
187
-90,2210,35, -90,2210,-35, -90,2110,-35, -30,2010,35, -30,2110,35,
188
-30,2110,-35, -30,2010,-35, -30,2210,30, -30,2310,30, -30,2310,-30,
189
-30,2210,-30, 90,2110,-35, 90,2210,-35, 90,2210,35, 90,2110,35,
190
30,2010,-35, 30,2110,-35, 30,2110,35, 30,2010,35, 30,2210,-35,
191
30,2310,-35, 30,2310,35, 30,2210,35, -90,2210,-35, -90,2210,35,
192
-30,2210,35, -30,2210,-35, 30,2210,-35, 30,2210,35, 90,2210,35,
193
90,2210,-35, -30,2310,-35, -30,2310,35, 30,2310,35, 30,2310,-35,
195
QUADS, 0,1,2,3, 4,5,6,7, 8,9,10,11, 12,13,14,15, 16,17,18,19,
196
20,21,22,23, 24,25,26,27, 28,29,30,31, 32,33,34,35, 36,37,38,39,
197
40,41,42,43, 44,45,46,47, 48,49,50,51, 52,53,54,55, 56,57,58,59,
202
unsigned short knight_data[] = {
203
VERTICES, SETBACKREF,0, 7910,8863,0, 7790,8863,1326, 7433,8863,2611,
204
6850,8863,3817, 6059,8863,4907, 5084,8863,5847, 3955,8863,6611,
205
2705,8863,7173, 1373,8863,7517, 0,8863,7633, -1373,8863,7517,
206
-2705,8863,7173, -3955,8863,6611, -5084,8863,5847, -6059,8863,4907,
207
-6850,8863,3817, -7433,8863,2611, -7790,8863,1326, -7910,8863,0,
208
-7790,8863,-1326, -7433,8863,-2611, -6850,8863,-3817,
209
-6059,8863,-4907, -5066,8863,-5896, -3955,8863,-6611,
210
-2705,8863,-7173, -1373,8863,-7517, 0,8863,-7633, 1373,8863,-7517,
211
2705,8863,-7173, 3955,8863,-6611, 5066,8863,-5896, 6059,8863,-4907,
212
6850,8863,-3817, 7433,8863,-2611, 7790,8863,-1326, -1183,11744,7939,
213
-1183,12003,7939, -1183,14019,6547, -1183,16307,5288,
214
-1183,16555,5281, -1183,20128,2191, -1134,20304,2131,
215
-1183,20516,2156, -1417,21874,1842, -1417,23109,2185,
216
-1417,23961,3121, -1417,24001,4252, 0,23917,5637, -1418,23893,5418,
217
-1151,23389,6664, -1151,23501,6906, -1151,23806,6987,
218
-1151,24102,6987, -1151,24209,7189, -1151,24371,7513,
219
-1151,24605,7715, -1151,24939,7674, -1313,25568,7149,
220
-1313,25695,7149, -1598,26707,7610, 0,26837,7841, 0,27354,8076,
221
-1598,27262,7839, -1598,27842,7723, 0,27919,7998, 0,28449,7606,
222
-1598,28309,7303, -1302,28414,6723, 0,28544,6980, 0,28540,6197,
223
-1187,28523,5990, -1304,28447,4204, -1158,28789,1627,
224
-561,28931,-1220, -357,29608,-1244, -357,30527,-1441,
225
-357,31249,-1837, -357,31511,-2627, -357,31511,-3484,
226
-357,31118,-4143, -357,30264,-4538, -436,29406,-5256, 0,29409,-5243,
227
-2207,29018,-6763, -914,28658,-6964, 0,26292,-7237, -1305,26324,-7143,
228
-806,23401,-6784, -812,20723,-6228, -796,16757,-6210,
229
-1559,24934,7435, -1566,24633,7460, -1531,24429,7334,
230
-1475,24293,7131, -1440,24203,7004, -1372,23935,7015,
231
-1364,23606,6868, -1389,23515,6705, -1687,28010,6952,
232
-1687,27926,7343, -1687,27629,7491, -1687,27324,7552,
233
-1687,27032,7432, -1687,26791,7148, -1642,27135,7165,
234
-1642,27254,7304, -1642,27397,7364, -1642,27546,7334,
235
-1642,27693,7261, -1642,27737,7088, -1611,10591,8159,
236
-888,9327,-8560, -4491,13292,1032, -3840,15084,786, -3412,17397,397,
237
-2937,20005,-35, -5108,11669,1240, -6344,10251,1395, -6345,10246,1248,
238
-5109,11664,1092, -2964,20022,-132, -3413,17393,250, -3841,15079,638,
239
-4491,13288,885, -3743,13207,-535, -3085,15092,-710, -2727,17642,-878,
240
-2569,20636,-797, -4348,11575,-324, -5584,10108,-169,
241
-5403,10079,-1732, -4167,11644,-1888, -2465,20842,-2651,
242
-2522,18130,-2392, -2905,15407,-2077, -3562,13227,-1951,
243
-3901,13568,-3294, -3243,15993,-3519, -2861,18863,-3735,
244
-2776,22447,-4309, -4486,11792,-3132, -5783,9930,-2931,
245
-5783,9930,-3054, -4486,11792,-3255, -2776,22438,-4430,
246
-2861,18863,-3858, -3243,15993,-3641, -3901,13568,-3417,
247
-6199,9466,4558, -5766,10642,5726, -5228,11829,6090, -4801,12891,6048,
248
-4155,14560,5246, -3546,16847,3719, -3334,17643,2937,
249
-2860,20062,1230, -4822,12054,7102, -5325,10909,7208,
250
-5732,9938,6026, -4026,14701,5522, -2852,20170,1447, -3319,17801,3175,
251
-3538,16955,3935, -4090,13256,1679, -2874,20073,676, -3706,15083,1464,
252
-3301,17348,1117, -5931,10206,1996, -4695,11624,1840,
253
-4445,11658,2844, -5681,10240,3000, -3074,17398,2202,
254
-3456,15117,2468, -3840,13290,2683, -4642,13358,4019,
255
-4257,15194,3908, -6017,10188,3746, -5237,11714,4039,
256
-5621,11218,5077, -5026,12862,5058, -5134,10861,-3154,
257
-4193,12680,-3336, -2832,20609,-4118, -3052,17428,-3750,
258
-3572,14780,-3529, -3579,14774,-3623, -3059,17422,-3843,
259
-2839,20596,-4211, -4200,12674,-3429, -5141,10855,-3248,
260
-3908,13562,-3510, -3250,15987,-3735, -2868,18857,-3952,
261
-4492,11786,-3348, -5789,9924,-3148, -4817,11321,-3298,
262
-5465,10389,-3198, -4054,13118,-3470, -4346,12230,-3389,
263
-2853,19681,-4056, -2825,21511,-4367, -3155,16705,-3789,
264
-2963,18140,-3897, -3744,14168,-3567, -3415,15381,-3679,
265
-845,13482,-6604, -945,10997,-7893, -981,11110,-7735,
266
-859,13469,-6526, -899,9307,-8439, -813,16486,-6146, -832,20681,-6100,
267
-826,23358,-6656, -882,10149,-8148, -913,12323,-7139,
268
-822,14910,-6353, -817,18235,-6210, -827,21937,-6382,
269
-846,21937,-6341, -841,14912,-6313, -931,12326,-7098,
270
-901,10152,-8107, -844,23359,-6615, -851,20681,-6059,
271
-831,16487,-6105, -919,9307,-8399, -869,13482,-6492, -999,11113,-7694,
272
-860,9726,-8255, -942,10578,-7958, -962,11715,-7413, -900,12896,-6796,
273
-863,14065,-6404, -818,15760,-6221, -828,17367,-6171,
274
-854,19800,-5994, -848,21309,-6200, -843,22566,-6482,
275
-3407,15409,-3785, -3736,14196,-3673, -2911,18365,-4048,
276
-3147,16733,-3895, -2726,21608,-4455, -2808,19905,-4191,
277
-4338,12259,-3495, -4046,13146,-3576, -5457,10418,-3304,
278
-4809,11349,-3404, -4484,11815,-3454, -2715,22288,-4534,
279
-2832,19035,-4066, -3242,16015,-3841, -3900,13590,-3616,
280
-5133,10883,-3354, -4171,12742,-3524, -2803,20773,-4339,
281
-3051,17450,-3949, -3571,14803,-3729, -4979,11072,-3368,
282
-5619,10185,-3279, -4119,12924,-3556, -4411,12037,-3475,
283
-2801,20363,-4269, -2721,21826,-4489, -3099,17092,-3922,
284
-2887,18618,-4038, -3653,14499,-3701, -3325,15712,-3813,
285
-3489,15106,-3757, -3818,13893,-3645, -3011,17758,-3971,
286
-3194,16374,-3868, -2755,21085,-4385, -2815,19494,-4139,
287
-4265,12481,-3515, -3973,13368,-3596, -5304,10595,-3318,
288
-4664,11477,-3407, -5441,10207,-3361, -5350,10338,-3375,
289
-5139,10672,-3428, -5058,10742,-3431, -4831,11101,-3457,
290
-4742,11228,-3470, -4516,11559,-3504, -4423,11693,-3518,
291
-4277,12079,-3558, -4232,12180,-3571, -4138,12522,-3597,
292
-4094,12603,-3609, -3979,12935,-3675, -3943,13043,-3671,
293
-3852,13383,-3699, -3813,13496,-3705, -3692,13947,-3767,
294
-3653,14073,-3790, -3506,14587,-3772, -3467,14685,-3777,
295
-3349,15192,-3888, -3308,15317,-3887, -3162,15800,-3957,
296
-3119,15954,-3961, -3009,16528,-3946, -3002,16637,-3937,
297
-2914,17260,-4014, -2909,17347,-4006, -2834,17893,-4049,
298
-2813,18060,-4060, -2760,18849,-4232, -2746,18968,-4242,
299
-850,22569,-6438, -855,21313,-6156, -861,19804,-5949,
300
-834,17371,-6127, -824,15765,-6176, -869,14070,-6360,
301
-906,12901,-6751, -968,11720,-7368, -948,10645,-7895, -865,9731,-8211,
302
-1006,11164,-7630, -875,13487,-6447, -926,9310,-8354,
303
-837,16490,-6061, -857,20684,-6015, -867,23379,-6515,
304
-907,10157,-8062, -937,12331,-7053, -847,14917,-6268,
305
-842,18236,-6111, -852,21941,-6297, -885,9891,-8156, -985,10905,-7724,
306
-947,11969,-7255, -885,13125,-6649, -858,14493,-6314,
307
-839,16049,-6111, -836,17735,-6083, -859,20244,-5982,
308
-891,21559,-6157, -848,22883,-6508, -851,22255,-6367,
309
-856,20999,-6085, -867,19042,-6000, -836,16930,-6094,
310
-835,15341,-6222, -880,13646,-6405, -916,12540,-6953,
311
-981,11337,-7564, -927,10370,-7988, -932,9518,-8285, -931,9583,-8174,
312
-863,9671,-8145, -892,9982,-8037, -903,10075,-7996, -952,10454,-7865,
313
-961,10550,-7832, -1008,10963,-7617, -1018,11105,-7567,
314
-996,11458,-7405, -992,11582,-7342, -972,12080,-7057,
315
-968,12210,-6984, -935,12620,-6792, -931,12759,-6714,
316
-914,13199,-6441, -910,13346,-6359, -915,13767,-6194,
317
-910,13941,-6175, -890,14633,-6107, -886,14783,-6091,
318
-864,15476,-6035, -859,15645,-6017, -870,16062,-5957,
319
-873,16231,-5936, -853,17048,-5965, -861,17185,-5974,
320
-879,17812,-5997, -885,17961,-5997, -851,18486,-6138,
321
-865,18526,-5933, -872,18761,-5875, -870,19337,-5971,
322
-864,19470,-5784, -937,19590,-5786, -833,19023,-6126,
323
-851,20344,-5894, -851,20576,-5912, -855,21086,-5973,
324
-854,21224,-6003, -871,21651,-6070, -852,21853,-6116,
325
-850,22332,-6224, -849,22490,-6259, -831,22924,-6338,
326
-834,23240,-6364, -2743,19661,-4287, -2740,19863,-4312,
327
-2723,20501,-4469, -2705,20711,-4503, -2661,21262,-4565,
328
-2658,21427,-4593, -2687,22088,-4631, -2695,22209,-4643,
329
-2774,23170,-4392, -2633,23103,-4527, -2681,22439,-4516,
330
-2656,22665,-4573, -2552,22727,-4653, -2534,23015,-4628,
331
-2607,23397,-4556, -2759,23681,-4398, -2740,24136,-4370,
332
-2610,24100,-4580, -2412,24481,-5089, -2671,24389,-4569,
333
-2397,24935,-5652, -2562,25022,-5528, -939,23708,-6566,
334
-1009,24359,-6776, -1095,24912,-6886, -1049,24117,-6493,
335
-990,23894,-6415, -2290,23837,-4814, -2312,23612,-4723,
336
-2183,24804,-5574, -2191,24632,-5391, -1156,24771,-6650,
337
-1154,24624,-6586, -1104,24526,-6656, -1281,9161,-8432,
338
-2524,9161,-8046, -3691,9161,-7572, -4745,9161,-6945,
339
-5662,9127,-6096, -3697,9192,-7581, -2531,9192,-8056,
340
-4753,9183,-6951, -5664,9161,-6101, -5664,9185,-6101,
341
-4753,9207,-6951, -2531,9216,-8055, -3697,9216,-7581,
342
-3684,9232,-7560, -2518,9232,-8034, -4740,9223,-6930,
343
-5651,9200,-6080, -2828,20259,1366, -2798,20256,1187, -2820,20237,692,
344
-2843,20292,-25, -2874,20473,735, -2975,20508,90, -2474,20772,-759,
345
-2660,20879,-691, -2471,21553,-1445, -2498,22175,-1940,
346
-2471,24346,-2830, -2556,22373,-1903, -2528,21595,-1351,
347
-2493,24314,-2936, -2576,22239,-2123, -2548,21461,-1571,
348
-2823,20635,1307, -2741,20503,1328, -1490,23972,5392,
349
-1489,24080,4226, -1489,24040,3095, -1489,23188,2159,
350
-1489,21953,1816, -2479,22156,182, -1515,23830,2117, -1605,24415,3131,
351
-1599,24460,4263, -1580,24357,5431, -1448,23885,6743,
352
-1252,24770,5442, -1271,24873,4274, -1277,24828,3142,
353
-1389,24618,2016, -1479,24733,1993, -1301,25010,3165,
354
-1295,25055,4297, -1391,24890,5460, -1512,25216,5507,
355
-1602,25353,4317, -1608,25308,3186, -1979,23458,-29, -1320,25312,1928,
356
-1495,25055,546, -2438,25790,-488, -1605,25585,5599, -1583,26793,6150,
357
-1850,26272,4298, -1578,27435,7117, -1658,27625,6884,
358
-1671,27398,6846, -1678,27176,6937, -1715,27784,6626,
359
-1744,27323,6551, -1753,26904,6776, -1884,28809,-1688,
360
-1555,28655,1620, -1658,28252,4204, -1581,28263,5997,
361
-1567,28312,6790, -1935,27827,4220, -1818,28249,1603,
362
-1570,27742,6195, -1532,27288,6120, -2038,27074,4245, -1418,28416,228,
363
-413,30264,-4539, -424,31094,-4152, -418,31478,-3497,
364
-410,31453,-2653, -410,31190,-1863, -410,30468,-1467,
365
-410,29550,-1270, -411,31041,-1902, -448,31253,-2696,
366
-449,31323,-3466, -425,31182,-3496, -411,31060,-2738,
367
-387,30899,-1932, -316,30806,-1957, -335,30952,-2766,
368
-353,31089,-3521, -322,31007,-3540, -303,30871,-2786,
369
-284,30725,-1976, -304,30630,-1993, -323,30776,-2802,
370
-342,30912,-3557, -396,30843,-3565, -378,30707,-2811,
371
-358,30561,-2001, -414,30477,-2013, -433,30623,-2822,
372
-452,30759,-3576, -474,30560,-3616, -456,30424,-2861,
373
-436,30278,-2052, -349,30194,-2077, -368,30340,-2886,
374
-386,30477,-3641, -309,30389,-3665, -291,30253,-2911,
375
-271,30107,-2102, -267,29996,-2124, -286,30142,-2933,
376
-305,30278,-3688, -376,30179,-3700, -357,30043,-2945,
377
-338,29897,-2136, -420,29789,-2150, -439,29935,-2959,
378
-458,30071,-3713, -500,29883,-3751, -463,29601,-2187,
379
-470,30974,-4049, -462,30153,-4391, -466,30563,-4220,
380
-410,30009,-1368, -725,29372,-3225, -677,29335,-5130,
381
-908,29205,-3300, -632,29533,-4803, -2587,28768,-3408,
382
-2730,28611,-3456, -2404,28568,-6916, -2413,28849,-6612,
383
-1904,26715,1801, -1394,25919,831, -2224,27270,-3994,
384
-2730,28438,-3011, -2587,28570,-2864, -2826,28152,-3163,
385
-2476,28668,-6523, -2476,28433,-6776, -2787,28338,-3507,
386
-2216,27658,-3972, -2207,27950,-5907, -2311,28216,-6128,
387
-2320,27876,-3971, -2311,28118,-6301, -2311,27845,-6252,
388
-2320,27703,-3749, -2320,27084,-3798, -2320,26986,-4070,
389
-2698,26705,-4014, -2557,26974,-3547, -2557,27739,-3485,
390
-2572,27738,-6362, -2436,28204,-6533, -2436,28421,-6303,
391
-2556,28092,-3822, -2431,28142,-6975, -2544,27863,-6726,
392
-2266,28229,-1686, -1939,28156,-1065, -2569,27943,-2270,
393
-2381,27545,-1682, -2799,27594,-3104, -2750,27866,-2738,
394
-2539,27578,-6309, -2720,26853,-3133, -2788,26461,-3776,
395
-1061,27543,-7078, -1780,27941,135, -1859,27747,-527, -1756,27784,691,
396
-1855,27001,736, -1950,26711,19, -1964,27006,-630, -2342,26955,-1898,
397
-2595,25515,-3113, -2147,27855,132, -2126,27722,601, -2213,27691,-428,
398
-2210,27061,639, -2290,26816,34, -2302,27065,-515, -2347,27680,100,
399
-2335,27602,376, -2386,27584,-229, -2385,27213,398, -2432,27069,42,
400
-2439,27215,-281, -2481,27452,103, -1786,24263,399, -2278,24851,-562,
401
-2372,25143,-1163, 7383,9172,0, 7270,9172,-1487, 6937,9172,-2929,
402
6393,9172,-4281, 1282,9172,-8433, 0,9172,-8563, 1301,9439,8159,
403
2371,9313,7844, 3857,9286,7355, 4477,9172,6559, 5704,9174,5179,
404
6393,9172,4281, 6937,9172,2929, 7270,9172,1487, -7270,9172,-1487,
405
-6937,9172,-2929, -6393,9172,-4281, -1282,9172,-8433, 0,9339,8274,
406
-1301,9439,8159, -2371,9313,7844, -3857,9286,7355, -4477,9172,6559,
407
-5704,9174,5179, -6393,9172,4281, -6937,9172,2929, -7270,9172,1487,
408
-796,9467,8260, 0,9503,8356, 0,9667,8438, -796,9666,8325,
409
-807,10584,8327, -7383,9172,0, 796,9467,8260, 796,9666,8325,
410
807,10584,8327, 0,10584,8457, 0,11744,8130, 1183,11744,7939,
411
1183,12003,7939, 0,12003,8130, 0,14019,6737, 1183,14019,6547,
412
1183,16307,5288, 0,16307,5479, 0,16555,5472, 1183,16555,5281,
413
1183,20128,2191, 0,20128,2382, 0,20304,2322, 1134,20304,2131,
414
1183,20516,2156, 0,20516,2346, 0,21898,2060, 1417,21874,1842,
415
1417,23109,2185, 0,23133,2404, 0,23985,3339, 1417,23961,3121,
416
1417,24001,4252, 0,24025,4470, 1418,23893,5418, 1151,23389,6664,
417
0,23394,6882, 0,23506,7125, 1151,23501,6906, 1151,23806,6987,
418
0,23811,7205, 0,24107,7205, 1151,24102,6987, 1151,24209,7189,
419
0,24213,7407, 0,24376,7731, 1151,24371,7513, 1151,24605,7715,
420
0,24610,7933, 0,24944,7892, 1151,24939,7674, 1313,25568,7149,
421
0,25562,7367, 0,25689,7367, 1313,25695,7149, 1598,26707,7610,
422
1598,27262,7839, 1598,27842,7723, 1598,28309,7303, 1302,28414,6723,
423
1187,28523,5990, 1304,28447,4204, 0,28469,4435, 0,28654,1893,
424
1158,28789,1627, 561,28931,-1220, 0,29310,-864, 0,29574,-1062,
425
357,29608,-1244, 357,30527,-1441, 0,30496,-1259, 0,31221,-1655,
426
357,31249,-1837, 357,31511,-2627, 0,31485,-2445, 0,31485,-3302,
427
357,31511,-3484, 357,31118,-4143, 0,31089,-3961, 0,30233,-4356,
428
357,30264,-4538, 436,29406,-5256, 0,29018,-6407, 2207,29018,-6763,
429
914,28658,-6964, 0,28472,-7040, 1305,26324,-7143, 806,23401,-6784,
430
0,23246,-6890, 0,20735,-6319, 812,20723,-6228, 796,16757,-6210,
431
0,17171,-6133, 1559,24934,7435, 1566,24633,7460, 1531,24429,7334,
432
1475,24293,7131, 1440,24203,7004, 1372,23935,7015, 1364,23606,6868,
433
1389,23515,6705, 1687,28010,6952, 1687,27926,7343, 1687,27629,7491,
434
1687,27324,7552, 1687,27032,7432, 1687,26791,7148, 1642,27135,7165,
435
1642,27254,7304, 1642,27397,7364, 1642,27546,7334, 1642,27693,7261,
436
1642,27737,7088, 1611,10591,8159, 888,9327,-8560, 4491,13292,1032,
437
3840,15084,786, 3412,17397,397, 2937,20005,-35, 5108,11669,1240,
438
6344,10251,1395, 6345,10246,1248, 5109,11664,1092, 2964,20022,-132,
439
3413,17393,250, 3841,15079,638, 4491,13288,885, 3743,13207,-535,
440
3085,15092,-710, 2727,17642,-878, 2569,20636,-797, 4348,11575,-324,
441
5584,10108,-169, 5403,10079,-1732, 4167,11644,-1888,
442
2465,20842,-2651, 2522,18130,-2392, 2905,15407,-2077,
443
3562,13227,-1951, 3901,13568,-3294, 3243,15993,-3519,
444
2861,18863,-3735, 2776,22447,-4309, 4486,11792,-3132, 5783,9930,-2931,
445
5783,9930,-3054, 4486,11792,-3255, 2776,22438,-4430, 2861,18863,-3858,
446
3243,15993,-3641, 3901,13568,-3417, 6199,9466,4558, 5766,10642,5726,
447
5228,11829,6090, 4801,12891,6048, 4155,14560,5246, 3546,16847,3719,
448
3334,17643,2937, 2860,20062,1230, 4822,12054,7102, 5325,10909,7208,
449
5732,9938,6026, 4026,14701,5522, 2852,20170,1447, 3319,17801,3175,
450
3538,16955,3935, 4090,13256,1679, 2874,20073,676, 3706,15083,1464,
451
3301,17348,1117, 5931,10206,1996, 4695,11624,1840, 4445,11658,2844,
452
5681,10240,3000, 3074,17398,2202, 3456,15117,2468, 3840,13290,2683,
453
4642,13358,4019, 4257,15194,3908, 6017,10188,3746, 5237,11714,4039,
454
5621,11218,5077, 5026,12862,5058, 5134,10861,-3154, 4193,12680,-3336,
455
2832,20609,-4118, 3052,17428,-3750, 3572,14780,-3529,
456
3579,14774,-3623, 3059,17422,-3843, 2839,20596,-4211,
457
4200,12674,-3429, 5141,10855,-3248, 3908,13562,-3510,
458
3250,15987,-3735, 2868,18857,-3952, 4492,11786,-3348, 5789,9924,-3148,
459
4817,11321,-3298, 5465,10389,-3198, 4054,13118,-3470,
460
4346,12230,-3389, 2853,19681,-4056, 2825,21511,-4367,
461
3155,16705,-3789, 2963,18140,-3897, 3744,14168,-3567,
462
3415,15381,-3679, 0,14037,-6616, 845,13482,-6604, 945,10997,-7893,
463
0,11066,-7866, 981,11110,-7735, 859,13469,-6526, 899,9307,-8439,
464
813,16486,-6146, 832,20681,-6100, 826,23358,-6656, 882,10149,-8148,
465
913,12323,-7139, 822,14910,-6353, 817,18235,-6210, 827,21937,-6382,
466
846,21937,-6341, 841,14912,-6313, 931,12326,-7098, 901,10152,-8107,
467
844,23359,-6615, 851,20681,-6059, 831,16487,-6105, 919,9307,-8399,
468
869,13482,-6492, 999,11113,-7694, 860,9726,-8255, 942,10578,-7958,
469
962,11715,-7413, 900,12896,-6796, 863,14065,-6404, 818,15760,-6221,
470
828,17367,-6171, 854,19800,-5994, 848,21309,-6200, 843,22566,-6482,
471
3407,15409,-3785, 3736,14196,-3673, 2911,18365,-4048,
472
3147,16733,-3895, 2726,21608,-4455, 2808,19905,-4191,
473
4338,12259,-3495, 4046,13146,-3576, 5457,10418,-3304,
474
4809,11349,-3404, 4484,11815,-3454, 2715,22288,-4534,
475
2832,19035,-4066, 3242,16015,-3841, 3900,13590,-3616,
476
5133,10883,-3354, 4171,12742,-3524, 2803,20773,-4339,
477
3051,17450,-3949, 3571,14803,-3729, 4979,11072,-3368,
478
5619,10185,-3279, 4119,12924,-3556, 4411,12037,-3475,
479
2801,20363,-4269, 2721,21826,-4489, 3099,17092,-3922,
480
2887,18618,-4038, 3653,14499,-3701, 3325,15712,-3813,
481
3489,15106,-3757, 3818,13893,-3645, 3011,17758,-3971,
482
3194,16374,-3868, 2755,21085,-4385, 2815,19494,-4139,
483
4265,12481,-3515, 3973,13368,-3596, 5304,10595,-3318,
484
4664,11477,-3407, 5441,10207,-3361, 5350,10338,-3375,
485
5139,10672,-3428, 5058,10742,-3431, 4831,11101,-3457,
486
4742,11228,-3470, 4516,11559,-3504, 4423,11693,-3518,
487
4277,12079,-3558, 4232,12180,-3571, 4138,12522,-3597,
488
4094,12603,-3609, 3979,12935,-3675, 3943,13043,-3671,
489
3852,13383,-3699, 3813,13496,-3705, 3692,13947,-3767,
490
3653,14073,-3790, 3506,14587,-3772, 3467,14685,-3777,
491
3349,15192,-3888, 3308,15317,-3887, 3162,15800,-3957,
492
3119,15954,-3961, 3009,16528,-3946, 3002,16637,-3937,
493
2914,17260,-4014, 2909,17347,-4006, 2834,17893,-4049,
494
2813,18060,-4060, 2760,18849,-4232, 2746,18968,-4242, 850,22569,-6438,
495
855,21313,-6156, 860,19804,-5949, 834,17371,-6127, 824,15765,-6176,
496
869,14070,-6360, 906,12901,-6751, 968,11720,-7368, 948,10645,-7895,
497
865,9731,-8211, 1006,11164,-7630, 875,13487,-6447, 926,9310,-8354,
498
837,16490,-6061, 857,20684,-6015, 867,23379,-6515, 907,10157,-8062,
499
937,12331,-7053, 847,14917,-6268, 842,18236,-6111, 852,21941,-6297,
500
885,9891,-8156, 985,10905,-7724, 947,11969,-7255, 885,13125,-6649,
501
858,14493,-6314, 839,16049,-6111, 836,17735,-6083, 859,20244,-5982,
502
891,21559,-6157, 848,22883,-6508, 851,22255,-6367, 856,20999,-6085,
503
867,19042,-6000, 836,16930,-6094, 835,15341,-6222, 880,13646,-6405,
504
916,12540,-6953, 981,11337,-7564, 927,10370,-7988, 932,9518,-8285,
505
931,9583,-8174, 863,9671,-8145, 892,9982,-8037, 903,10075,-7996,
506
952,10454,-7865, 961,10550,-7832, 1008,10963,-7617, 1018,11105,-7567,
507
996,11458,-7405, 992,11582,-7342, 972,12080,-7057, 968,12210,-6984,
508
935,12620,-6792, 931,12759,-6714, 914,13199,-6441, 910,13346,-6359,
509
915,13767,-6194, 910,13941,-6175, 890,14633,-6107, 886,14783,-6091,
510
864,15476,-6035, 859,15645,-6017, 870,16062,-5957, 873,16231,-5936,
511
853,17048,-5965, 861,17185,-5974, 879,17812,-5997, 885,17961,-5997,
512
851,18486,-6138, 865,18526,-5933, 872,18761,-5875, 870,19337,-5971,
513
864,19470,-5784, 937,19590,-5786, 833,19023,-6126, 851,20344,-5894,
514
851,20576,-5912, 855,21086,-5973, 854,21224,-6003, 871,21651,-6070,
515
852,21853,-6116, 850,22332,-6224, 849,22490,-6259, 831,22924,-6338,
516
834,23240,-6364, 2743,19661,-4287, 2740,19863,-4312, 2723,20501,-4469,
517
2705,20711,-4503, 2661,21262,-4565, 2658,21427,-4593,
518
2687,22088,-4631, 2695,22209,-4643, 2774,23170,-4392,
519
2633,23103,-4527, 2681,22439,-4516, 2656,22665,-4573,
520
2552,22727,-4653, 2534,23015,-4628, 2607,23397,-4556,
521
2759,23681,-4398, 2740,24136,-4370, 2610,24100,-4580,
522
2412,24481,-5089, 2671,24389,-4569, 2397,24935,-5652,
523
2562,25022,-5528, 939,23708,-6566, 1009,24359,-6776, 1095,24912,-6886,
524
1049,24117,-6493, 990,23894,-6415, 2290,23837,-4814, 2312,23612,-4723,
525
2183,24804,-5574, 2191,24632,-5391, 1156,24771,-6650,
526
1154,24624,-6586, 1104,24526,-6656, 0,9161,-8562, 1281,9161,-8432,
527
2524,9161,-8046, 3691,9161,-7572, 4745,9161,-6945, 5662,9127,-6096,
528
3697,9192,-7581, 2531,9192,-8056, 4753,9183,-6951, 5664,9161,-6101,
529
5664,9185,-6101, 4753,9207,-6951, 2531,9216,-8055, 3697,9216,-7581,
530
3684,9232,-7560, 2518,9232,-8034, 4740,9223,-6930, 5651,9200,-6080,
531
2828,20259,1366, 2798,20256,1187, 2820,20237,692, 2843,20292,-25,
532
2874,20473,735, 2975,20508,90, 2474,20772,-759, 2660,20879,-691,
533
2471,21553,-1445, 2498,22175,-1940, 2471,24346,-2830,
534
2556,22373,-1903, 2528,21595,-1351, 2493,24314,-2936,
535
2576,22239,-2123, 2548,21461,-1571, 2823,20635,1307, 2741,20503,1328,
536
1490,23972,5392, 1489,24080,4226, 1489,24040,3095, 1489,23188,2159,
537
1489,21953,1816, 2479,22156,182, 1515,23830,2117, 1605,24415,3131,
538
1599,24460,4263, 1580,24357,5431, 1448,23885,6743, 1252,24770,5442,
539
1271,24873,4274, 1277,24828,3142, 1389,24618,2016, 1479,24733,1993,
540
1301,25010,3165, 1295,25055,4297, 1391,24890,5460, 1512,25216,5507,
541
1602,25353,4317, 1608,25308,3186, 1979,23458,-29, 1320,25312,1928,
542
1495,25055,546, 2438,25790,-488, 1605,25585,5599, 1583,26793,6150,
543
1850,26272,4298, 1578,27435,7117, 1658,27625,6884, 1671,27398,6846,
544
1678,27176,6937, 1715,27784,6626, 1744,27323,6551, 1753,26904,6776,
545
1884,28809,-1688, 1555,28655,1620, 1658,28252,4204, 1581,28263,5997,
546
1567,28312,6790, 1935,27827,4220, 1818,28249,1603, 1570,27742,6195,
547
1532,27288,6120, 2038,27074,4245, 1418,28416,228, 413,30264,-4539,
548
424,31094,-4152, 418,31478,-3497, 410,31453,-2653, 410,31190,-1863,
549
410,30468,-1467, 410,29550,-1270, 411,31041,-1902, 448,31253,-2696,
550
449,31323,-3466, 425,31182,-3496, 411,31060,-2738, 387,30899,-1932,
551
316,30806,-1957, 335,30952,-2766, 353,31089,-3521, 322,31007,-3540,
552
303,30871,-2786, 284,30725,-1976, 304,30630,-1993, 323,30776,-2802,
553
342,30912,-3557, 396,30843,-3565, 378,30707,-2811, 358,30561,-2001,
554
414,30477,-2013, 433,30623,-2822, 452,30759,-3576, 474,30560,-3616,
555
456,30424,-2861, 436,30278,-2052, 349,30194,-2077, 368,30340,-2886,
556
386,30477,-3641, 309,30389,-3665, 291,30253,-2911, 271,30107,-2102,
557
267,29996,-2124, 286,30142,-2933, 305,30278,-3688, 376,30179,-3700,
558
357,30043,-2945, 338,29897,-2136, 420,29789,-2150, 439,29935,-2959,
559
458,30071,-3713, 500,29883,-3751, 463,29601,-2187, 470,30974,-4049,
560
462,30153,-4391, 466,30563,-4220, 410,30009,-1368, 725,29372,-3225,
561
677,29335,-5130, 908,29205,-3300, 632,29533,-4803, 2587,28768,-3408,
562
2730,28611,-3456, 2404,28568,-6916, 2413,28849,-6612,
563
1904,26715,1801, 1394,25919,831, 2224,27270,-3994, 2730,28438,-3011,
564
2587,28570,-2864, 2826,28152,-3163, 2476,28668,-6523,
565
2476,28433,-6776, 2787,28338,-3507, 2216,27658,-3972,
566
2207,27950,-5907, 2311,28216,-6128, 2320,27876,-3971,
567
2311,28118,-6301, 2311,27845,-6252, 2320,27703,-3749,
568
2320,27084,-3798, 2320,26986,-4070, 2698,26705,-4014,
569
2557,26974,-3547, 2557,27739,-3485, 2572,27738,-6362,
570
2436,28204,-6533, 2436,28421,-6303, 2556,28092,-3822,
571
2431,28142,-6975, 2544,27863,-6726, 2266,28229,-1686,
572
1939,28156,-1065, 2569,27943,-2270, 2381,27545,-1682,
573
2799,27594,-3104, 2750,27866,-2738, 2539,27578,-6309,
574
2720,26853,-3133, 2788,26461,-3776, 1061,27543,-7078, 1780,27941,135,
575
1859,27747,-527, 1756,27784,691, 1855,27001,736, 1950,26711,19,
576
1964,27006,-630, 2342,26955,-1898, 2595,25515,-3113, 2147,27855,132,
577
2126,27722,601, 2213,27691,-428, 2210,27061,639, 2290,26816,34,
578
2302,27065,-515, 2347,27680,100, 2335,27602,376, 2386,27584,-229,
579
2385,27213,398, 2432,27069,42, 2439,27215,-281, 2481,27452,103,
580
1786,24263,399, 2278,24851,-562, 2372,25143,-1163, -2567,23141,-2607,
581
-2513,23156,-2494, 2513,23156,-2494, 2567,23141,-2607,
583
TRIANGLES, 657,656,159, 100,506,99, 1003,900,995, 1048,1009,901,
584
1051,901,1009, 1070,1073,1071, 1070,803,808, 1071,1077,1070,
585
1072,1006,1073, 1072,808,915, 1073,808,1072, 1077,1071,1076,
586
1078,1283,1127, 1081,1078,1079, 1081,1079,1080, 1083,1082,1086,
587
1083,747,1274, 1084,888,1085, 1085,878,1086, 1085,1086,1095,
588
1086,747,1083, 1093,1095,1086, 1094,1095,1093, 658,657,149,
589
1101,637,32, 1103,638,1108, 1105,637,1101, 1106,637,1105,
590
1108,638,1111, 111,36,158, 111,653,665, 111,665,36, 1110,858,1112,
591
1111,988,1110, 1111,638,891, 1111,891,988, 1112,858,1113,
592
1113,637,1106, 1117,779,784, 112,214,207, 112,651,210, 1124,1297,1154,
593
1125,1123,1128, 1125,1302,1154, 1127,1077,1078, 1129,791,796,
594
1130,1118,1137, 1136,1130,1137, 1137,1118,1119, 1137,1119,1121,
595
1137,1121,1126, 1142,758,759, 1142,759,760, 1142,760,761,
596
1147,1146,1154, 1150,755,756, 1150,756,757, 1154,1302,1124,
597
1155,1147,1154, 1155,1297,1156, 1155,1154,1297, 1156,1240,1155,
598
1156,1298,1157, 1157,1240,1156, 1157,1299,1273, 1157,1282,1281,
599
1158,1151,1152, 1161,768,1164, 1162,773,1161, 1162,1161,1163,
600
1163,1161,1164, 1165,1172,762, 1168,726,1178, 1168,1267,1266,
601
1169,1178,725, 1171,1172,1165, 1171,720,1172, 1171,1165,1175,
602
1178,1169,1174, 1178,1174,1278, 1179,1229,1228, 118,660,168,
603
1180,1229,1179, 1185,726,1226, 1186,1183,1184, 1186,1184,1191,
604
119,660,118, 1191,1184,1192, 1192,1184,1197, 1197,1184,1198,
605
1198,1184,1203, 1203,1184,1204, 121,116,451, 1210,1209,1230,
606
1215,1210,1230, 1216,1215,1230, 1221,1216,1230, 1222,1185,1226,
607
1222,1221,1230, 1223,1222,1226, 1224,1223,1225, 1225,1223,1226,
608
1226,726,1231, 1227,1188,1189, 1227,1189,1194, 1227,1194,1195,
609
1227,1195,1200, 1227,1200,1201, 1227,1201,1206, 1228,1224,1225,
610
1228,1225,1234, 1229,1207,1212, 1229,1212,1213, 1229,1213,1218,
611
1229,1218,1219, 1229,1219,1224, 1229,1180,1227, 1229,1224,1228,
612
1230,729,1185, 1230,1185,1222, 1231,1225,1226, 1232,1179,1234,
613
1233,744,1232, 1234,1179,1228, 1234,1225,1231, 1235,744,1233,
614
1237,744,1238, 1239,1155,1240, 1240,1157,1239, 1243,1168,1266,
615
1248,1241,1249, 1250,1249,1252, 1252,1249,1253, 1254,1248,1251,
616
1256,1241,1255, 1259,1244,1270, 1264,745,1237, 1265,1260,1272,
617
1267,1168,1178, 1267,1178,1277, 1269,1282,1270, 1270,1282,1273,
618
1271,1268,1269, 1271,1269,1270, 1273,1283,1274, 1274,1078,1081,
619
1274,1081,1083, 1274,747,1275, 1275,745,1264, 1275,1264,1265,
620
1275,1265,1272, 1275,1272,1274, 1276,1178,1278, 1277,1178,1276,
621
1280,1157,1281, 1281,1269,1277, 1282,1157,1273, 1282,1269,1281,
622
1283,1078,1274, 1292,1290,1296, 1295,1292,1296, 1296,1290,1291,
623
1296,1291,1293, 1296,1293,1294, 1296,1294,1295, 1297,1298,1156,
624
1297,1124,1298, 1298,1124,1299, 1299,1124,1273, 1299,1157,1298,
625
660,659,168, 133,128,463, 137,182,141, 138,185,137, 139,184,138,
626
140,183,139, 141,181,142, 141,182,144, 142,181,143, 143,649,142,
627
143,197,195, 144,196,181, 144,199,194, 145,183,140, 145,201,183,
628
145,140,405, 146,184,139, 146,139,183, 146,203,184, 147,185,138,
629
147,138,184, 147,205,185, 148,198,182, 148,137,185, 149,657,159,
630
150,149,159, 151,150,157, 152,151,157, 153,152,157, 157,150,158,
631
157,38,160, 157,37,38, 158,150,159, 160,153,157, 160,39,163,
632
160,38,39, 162,41,161, 163,39,40, 168,659,171, 172,155,156,
633
176,153,154, 176,154,155, 177,658,149, 179,149,150, 179,150,151,
634
180,152,153, 181,197,143, 181,141,144, 181,196,190, 182,199,144,
635
182,137,148, 182,198,189, 183,200,146, 184,202,147, 185,204,148,
636
186,204,185, 186,267,204, 186,185,205, 187,202,184, 187,265,202,
637
187,184,203, 188,200,183, 188,263,200, 188,183,201, 189,275,199,
638
189,261,255, 190,277,197, 190,259,254, 191,276,198, 191,148,204,
639
192,205,147, 192,147,202, 192,268,205, 193,203,146, 193,146,200,
640
193,266,203, 194,278,196, 194,262,249, 196,259,190, 196,144,194,
641
196,278,248, 197,181,190, 197,260,195, 197,277,247, 198,261,189,
642
198,148,191, 198,276,246, 199,182,189, 199,262,194, 199,275,245,
643
200,274,193, 201,273,188, 202,272,192, 203,271,187, 204,270,191,
644
205,269,186, 206,215,209, 206,216,90, 207,215,206, 207,214,208,
645
208,231,215, 208,230,228, 209,233,216, 209,232,227, 210,229,214,
646
210,651,226, 211,235,217, 211,234,225, 212,237,218, 212,236,224,
647
212,386,236, 213,238,223, 213,421,88, 214,230,208, 214,112,210,
648
214,229,222, 215,207,208, 215,232,209, 215,231,221, 216,206,209,
649
216,234,211, 216,233,220, 217,90,211, 217,386,212, 218,89,212,
650
218,238,213, 218,237,219, 219,342,238, 219,340,331, 220,346,234,
651
220,336,329, 221,348,232, 221,334,328, 222,350,230, 222,332,327,
652
223,341,326, 224,343,237, 224,339,325, 225,345,235, 225,337,324,
653
226,351,229, 226,651,445, 227,347,233, 227,335,322, 228,349,231,
654
228,333,321, 229,332,222, 229,210,226, 229,351,320, 230,214,222,
655
230,333,228, 230,350,319, 231,334,221, 231,208,228, 231,349,318,
656
232,215,221, 232,335,227, 232,348,317, 233,336,220, 233,209,227,
657
233,347,316, 234,216,220, 234,337,225, 234,346,315, 235,211,225,
658
235,345,314, 236,339,224, 236,383,313, 236,344,383, 237,340,219,
659
237,212,224, 237,343,312, 238,218,219, 238,341,223, 238,342,311,
660
239,269,205, 239,205,268, 240,270,204, 240,204,267, 241,271,203,
661
241,203,266, 242,272,202, 242,202,265, 243,273,201, 243,201,264,
662
244,274,200, 244,200,263, 250,145,407, 251,266,193, 251,193,274,
663
252,268,192, 252,192,272, 253,191,270, 256,263,188, 256,188,273,
664
257,265,187, 257,187,271, 258,267,186, 258,186,269, 259,196,248,
665
22,650,435, 260,197,247, 261,198,246, 262,199,245, 21,650,22,
666
275,189,255, 276,191,253, 277,190,254, 278,194,249, 323,226,445,
667
330,217,235, 330,235,338, 332,229,320, 333,230,319, 334,231,318,
668
335,232,317, 336,233,316, 337,234,315, 338,235,314, 339,236,313,
669
664,653,661, 340,237,312, 341,238,311, 342,219,331, 343,224,325,
670
344,236,386, 345,225,324, 346,220,329, 347,227,322, 348,221,328,
671
349,228,321, 665,653,664, 350,222,327, 351,226,323, 380,217,330,
672
405,408,145, 405,412,406, 406,408,405, 407,145,408, 408,341,407,
673
411,406,412, 413,412,461, 414,413,416, 415,414,416, 416,413,608,
674
418,87,421, 418,416,608, 419,223,326, 420,213,223, 420,223,419,
675
421,417,418, 421,213,420, 421,430,428, 421,87,88, 428,430,429,
676
430,421,420, 435,650,439, 439,650,440, 440,650,447, 442,651,437,
677
444,195,323, 444,323,445, 445,651,442, 446,195,444, 447,650,195,
678
447,195,446, 453,452,471, 455,453,471, 460,455,471, 461,617,413,
679
462,457,459, 465,43,44, 471,452,464, 471,464,470, 486,485,492,
680
488,458,1301, 488,631,458, 488,1301,459, 488,480,481, 488,481,489,
681
489,574,490, 490,631,489, 490,574,491, 490,632,631, 491,632,490,
682
495,105,106, 495,106,107, 495,107,108, 495,108,109, 495,109,110,
683
495,110,496, 497,495,496, 498,105,495, 498,495,497, 499,506,505,
684
505,68,71, 506,68,505, 506,67,68, 508,503,512, 509,499,505,
685
512,74,502, 512,502,601, 513,563,514, 518,517,520, 518,564,76,
686
519,75,564, 519,74,75, 523,522,561, 525,518,520, 526,518,525,
687
528,523,561, 529,528,561, 531,518,526, 532,518,531, 534,529,561,
688
535,534,561, 537,518,532, 538,518,537, 540,535,561, 546,541,563,
689
547,546,563, 552,547,563, 553,552,563, 556,519,564, 558,553,563,
690
559,557,558, 559,558,562, 560,74,519, 560,519,556, 560,556,557,
691
560,557,559, 560,559,565, 561,514,563, 562,563,513, 562,558,563,
692
562,513,568, 564,543,544, 564,544,549, 564,549,550, 564,550,555,
693
564,555,556, 565,74,560, 565,559,568, 566,84,567, 567,84,569,
694
568,559,562, 568,513,566, 571,85,598, 571,84,85, 572,84,571,
695
573,491,574, 574,489,573, 583,575,582, 585,582,588, 586,583,584,
696
587,583,586, 589,575,590, 598,85,609, 599,598,609, 653,111,654,
697
600,601,502, 600,502,577, 603,602,605, 604,578,593, 604,616,603,
698
604,603,605, 606,594,599, 606,599,609, 607,633,491, 607,616,604,
699
607,491,616, 607,458,633, 608,87,418, 608,617,607, 608,606,609,
700
608,413,617, 609,87,608, 609,86,87, 610,512,611, 611,512,601,
701
611,603,615, 612,508,512, 612,512,610, 615,616,491, 615,491,614,
702
615,603,616, 625,624,630, 627,625,630, 628,627,630, 629,628,630,
703
630,624,626, 630,626,629, 631,488,489, 632,458,631, 632,491,633,
704
633,458,632, 639,651,112, 641,774,640, 32,637,33, 667,640,668,
705
668,640,669, 669,640,774, 67,506,100, 672,669,774, 676,673,820,
706
677,676,823, 680,677,826, 688,685,1131, 712,711,754, 720,719,1172,
707
721,720,1171, 725,1178,726, 729,726,1185, 729,1230,730, 73,512,503,
708
730,1230,1184, 74,512,73, 743,82,83, 745,744,1237, 745,743,744,
709
745,1275,746, 746,85,743, 746,743,745, 746,609,85, 746,1275,86,
710
747,86,1275, 748,747,1086, 748,883,751, 748,1086,878, 751,882,752,
711
752,881,870, 76,564,75, 762,1172,763, 763,1172,719, 769,768,1161,
712
770,769,1161, 771,770,1161, 772,771,1161, 773,772,1161, 774,641,642,
713
775,638,639, 781,647,782, 655,654,111, 800,848,801, 801,847,802,
714
801,848,810, 802,846,803, 802,847,809, 803,846,808, 804,845,800,
715
805,844,804, 805,636,806, 806,844,805, 806,860,844, 807,845,804,
716
807,804,844, 807,862,845, 808,1073,1070, 809,863,846, 809,866,856,
717
810,865,847, 810,868,855, 811,800,845, 811,867,848, 812,644,645,
718
812,645,840, 813,812,842, 814,813,842, 816,815,843, 817,816,839,
719
818,817,839, 819,818,835, 820,813,814, 820,814,815, 820,815,816,
720
820,816,823, 821,672,774, 821,813,820, 822,642,643, 822,643,644,
721
822,644,812, 822,812,813, 822,813,821, 823,676,820, 824,681,825,
722
826,677,823, 83,742,743, 831,646,647, 831,647,781, 834,646,831,
723
844,859,807, 845,861,811, 846,864,808, 846,802,809, 846,863,851,
724
847,866,809, 847,801,810, 847,865,850, 848,868,810, 848,800,811,
725
848,867,849, 849,934,868, 849,932,923, 85,84,743, 850,936,866,
726
850,930,922, 851,938,864, 851,928,921, 852,861,845, 852,926,861,
727
852,845,862, 853,859,844, 853,924,859, 853,844,860, 854,811,861,
728
854,935,867, 855,937,865, 855,933,917, 856,939,863, 856,931,916,
729
857,862,807, 857,807,859, 857,927,862, 858,637,1113, 858,860,806,
730
858,925,860, 859,943,857, 86,609,746, 860,942,853, 861,941,854,
731
862,940,852, 863,928,851, 863,809,856, 863,939,909, 864,846,851,
732
864,938,908, 865,930,850, 865,810,855, 865,937,907, 866,847,850,
733
866,931,856, 866,936,906, 867,932,849, 867,811,854, 867,935,905,
734
868,848,849, 868,933,855, 868,934,904, 870,880,871, 871,879,775,
735
873,879,871, 873,895,879, 873,871,880, 874,880,870, 874,897,880,
736
874,870,881, 875,638,775, 875,775,879, 876,881,752, 876,899,881,
737
876,752,882, 877,882,751, 877,1051,882, 877,751,883, 878,883,748,
738
878,903,883, 879,894,875, 88,218,213, 880,896,873, 881,898,874,
739
882,900,876, 883,902,877, 884,902,883, 884,1005,902, 884,883,903,
740
885,898,881, 885,1001,898, 885,881,899, 886,896,880, 886,999,896,
741
886,880,897, 887,894,879, 887,997,894, 887,879,895, 888,878,1085,
742
888,903,878, 888,1006,903, 889,901,877, 889,1004,901, 889,877,902,
743
89,217,212, 89,218,88, 890,899,876, 890,1002,899, 890,876,900,
744
891,638,875, 891,875,894, 892,897,874, 892,1000,897, 892,874,898,
745
893,895,873, 893,998,895, 893,873,896, 894,1016,891, 895,1015,887,
746
896,1014,893, 897,1013,886, 898,1012,892, 899,1011,885, 656,655,159,
747
90,216,211, 90,217,89, 900,1010,890, 900,882,995, 901,1051,877,
748
902,1008,889, 903,1007,884, 91,57,58, 910,940,862, 910,862,927,
749
911,941,861, 911,861,926, 912,942,860, 912,860,925, 913,943,859,
750
913,859,924, 914,927,857, 914,857,943, 918,854,941, 919,924,853,
751
919,853,942, 920,926,852, 920,852,940, 928,863,909, 929,864,908,
752
93,92,484, 930,865,907, 931,866,906, 932,867,905, 933,868,904,
753
934,849,923, 935,854,918, 936,850,922, 937,855,917, 938,851,921,
754
939,856,916, 94,93,484, 96,95,476, 97,96,476, 976,903,1006,
755
976,1007,903, 977,902,1005, 977,1008,902, 978,901,1004, 978,1048,901,
756
979,900,1003, 979,1010,900, 98,97,476, 980,899,1002, 980,1011,899,
757
981,898,1001, 981,1012,898, 982,897,1000, 982,1013,897, 983,1014,896,
758
983,896,999, 984,1015,895, 984,895,998, 985,1016,894, 985,894,997,
759
986,893,1014, 986,998,893, 987,892,1012, 987,1000,892, 988,891,1016,
760
988,858,1110, 989,890,1010, 989,1002,890, 99,506,499, 990,889,1008,
761
990,1004,889, 991,888,1084, 991,1006,888, 992,887,1015, 992,997,887,
762
993,886,1013, 993,999,886, 994,885,1011, 994,1001,885, 995,882,1045,
763
996,884,1007, 996,1005,884,
765
QUADS, 648,666,130,131, 648,649,20,19, 657,658,15,14,
766
1000,987,1032,1031, 1001,994,1036,1035, 1002,989,1040,1039,
767
1003,995,1044,1043, 1004,990,1053,1052, 1005,996,1057,1056,
768
1006,991,1061,1060, 1007,976,1059,1058, 1008,977,1055,1054,
769
1009,906,973,1047, 101,64,67,100, 1010,979,1042,1041,
770
1011,980,1038,1037, 1012,981,1034,1033, 1013,982,1030,1029,
771
1014,983,1026,1025, 1015,984,1022,1021, 1016,985,1018,1017,
772
102,63,64,101, 103,60,63,102, 104,59,60,103, 1045,882,1051,1009,
773
1045,1009,1047,1046, 1048,978,1050,1049, 105,104,103,106,
774
106,103,102,107, 1061,991,1071,1075, 1062,939,1004,1052,
775
1062,1052,1053,1063, 1063,909,939,1062, 1064,928,1008,1054,
776
1064,1054,1055,1065, 1065,921,928,1064, 1066,938,1005,1056,
777
1066,1056,1057,1067, 1067,908,938,1066, 1068,929,1007,1058,
778
1068,1058,1059,1069, 1069,915,929,1068, 107,102,101,108,
779
1071,991,1084,1076, 1072,915,976,1006, 1073,1006,1060,1074,
780
1074,1060,1061,1075, 1075,1071,1073,1074, 1078,1077,1076,1079,
781
108,101,100,109, 1080,1079,1085,1095, 1081,1080,1082,1083,
782
1082,1080,1092,1091, 1084,1085,1087,1088, 1085,1079,1089,1087,
783
1086,1082,1091,1093, 1088,1087,1089,1090, 1089,1079,1076,1090,
784
109,100,99,110, 1090,1076,1084,1088, 1092,1080,1095,1094,
785
1093,1091,1092,1094, 1096,27,26,431, 1097,638,1103,1098,
786
658,659,16,15, 110,99,499,496, 1100,1099,1102,1104,
787
1101,1100,1104,1105, 1102,1099,1098,1103, 1106,1105,1104,1107,
788
1107,1104,1102,1109, 1109,1102,1103,1108, 1110,1109,1108,1111,
789
1112,1107,1109,1110, 1113,1106,1107,1112, 1115,819,828,1116,
790
1117,784,791,1120, 1118,1116,1117,1119, 1119,1117,1120,1121,
791
1120,791,1129,1122, 1121,1120,1122,1126, 1122,1123,1125,1126,
792
1126,1125,1154,1137, 1127,1124,1302,1303, 1128,1123,1122,1129,
793
1128,803,1070,1303, 1129,796,803,1128, 113,114,123,124,
794
1130,1115,1116,1118, 1131,1114,1115,1130, 1132,1133,1140,1141,
795
1133,1134,1139,1140, 1134,1135,1138,1139, 1136,688,1131,1130,
796
1138,1135,1136,1137, 1138,1137,1154,1146, 1139,1138,1146,1145,
797
114,115,122,123, 1140,1139,1145,1144, 1141,1140,1144,1143,
798
1142,761,1132,1141, 1143,758,1142,1141, 1143,1144,1149,1150,
799
1144,1145,1148,1149, 1145,1146,1147,1148, 1148,1147,1155,1153,
800
1149,1148,1153,1152, 115,116,121,122, 115,114,166,167,
801
1150,757,758,1143, 1150,1149,1152,1151, 1151,754,755,1150,
802
1158,712,754,1151, 1158,1152,1160,1159, 1160,1152,1153,1155,
803
1160,1155,1239,1177, 1165,762,773,1162, 1165,1162,1163,1166,
804
1166,1163,1164,1167, 1167,1159,1176,1166, 1169,1170,1173,1174,
805
1173,1170,1171,1175, 1174,1173,1177,1239, 1175,1165,1166,1176,
806
1176,1159,1160,1177, 1177,1173,1175,1176, 1182,1183,1186,1187,
807
1187,1186,1191,1190, 1188,1181,1182,1187, 1189,1188,1187,1190,
808
119,118,117,120, 1190,1191,1192,1193, 1193,1192,1197,1196,
809
1194,1189,1190,1193, 1195,1194,1193,1196, 1196,1197,1198,1199,
810
1199,1198,1203,1202, 659,660,17,16, 659,658,177,171, 120,117,113,124,
811
1200,1195,1196,1199, 1201,1200,1199,1202, 1202,1203,1204,1205,
812
1204,1184,1230,1209, 1205,1204,1209,1208, 1206,1201,1202,1205,
813
1207,1206,1205,1208, 1208,1209,1210,1211, 1211,1210,1215,1214,
814
1212,1207,1208,1211, 1213,1212,1211,1214, 1214,1215,1216,1217,
815
1217,1216,1221,1220, 1218,1213,1214,1217, 1219,1218,1217,1220,
816
122,121,128,127, 1220,1221,1222,1223, 1224,1219,1220,1223,
817
1227,1180,1181,1188, 1227,1206,1207,1229, 123,122,127,126,
818
1231,726,1168,1233, 1233,1168,1243,1235, 1234,1231,1233,1232,
819
1236,1235,1243,1242, 1236,1242,1244,1247, 1237,1238,1245,1246,
820
1238,744,1235,1236, 1239,1157,1280,1279, 124,123,126,125,
821
1244,1242,1271,1270, 1245,1238,1236,1247, 1246,1245,1262,1261,
822
1247,1244,1259,1263, 1249,1241,1256,1253, 125,126,135,136,
823
1251,1248,1249,1250, 1251,1250,1262,1263, 1254,1251,1263,1259,
824
1255,1241,1248,1254, 1257,1256,1255,1258, 1258,1255,1254,1259,
825
126,127,134,135, 1260,1253,1256,1257, 1261,1252,1253,1260,
826
1262,1250,1252,1261, 1262,1245,1247,1263, 1264,1237,1246,1265,
827
1265,1246,1261,1260, 1268,1243,1266,1269, 1269,1266,1267,1277,
828
127,128,133,134, 1271,1242,1243,1268, 1272,1260,1257,1274,
829
1273,1258,1259,1270, 1273,1124,1127,1283, 1274,1257,1258,1273,
830
1278,1174,1239,1279, 128,121,451,454, 1284,1276,1278,1285,
831
1285,1278,1279,1287, 1286,1277,1276,1284, 1287,1279,1280,1288,
832
1288,1280,1281,1289, 1289,1281,1277,1286, 129,120,124,125,
833
1290,1284,1285,1291, 1291,1285,1287,1293, 1292,1286,1284,1290,
834
1293,1287,1288,1294, 1294,1288,1289,1295, 1295,1289,1286,1292,
835
660,666,18,17, 130,666,660,119, 130,119,120,129, 1301,458,461,1300,
836
1301,1300,462,459, 1303,1070,1077,1127, 1303,1302,1125,1128,
837
131,130,129,132, 132,129,125,136, 134,133,140,139, 135,134,139,138,
838
136,135,138,137, 140,133,463,462, 141,132,136,137, 142,131,132,141,
839
154,153,160,163, 158,36,37,157, 159,655,111,158, 161,156,155,162,
840
161,41,42,448, 162,155,154,163, 163,40,41,162, 164,113,117,169,
841
164,169,170,174, 165,116,115,167, 165,156,449,450, 166,114,113,164,
842
167,166,173,172, 169,117,118,168, 170,169,168,171, 172,156,165,167,
843
173,166,164,174, 174,170,178,175, 175,178,179,180, 176,155,172,173,
844
176,173,174,175, 177,149,179,178, 178,170,171,177, 179,151,152,180,
845
180,153,176,175, 649,648,131,142, 649,650,21,20, 201,145,250,264,
846
206,90,753,869, 207,206,869,872, 263,256,400,399, 264,250,404,403,
847
265,257,306,305, 266,251,310,309, 267,258,298,297, 268,252,302,301,
848
269,239,300,299, 270,240,296,295, 271,241,308,307, 272,242,304,303,
849
273,243,402,401, 274,244,398,397, 279,260,247,280, 280,247,320,353,
850
281,277,254,282, 282,254,327,355, 283,259,248,284, 284,248,319,357,
851
285,278,249,286, 286,249,321,359, 287,262,245,288, 288,245,318,361,
852
289,275,255,290, 19,18,666,648, 290,255,328,363, 291,261,246,292,
853
292,246,317,365, 293,276,253,294, 294,253,322,367, 296,240,316,369,
854
298,258,329,371, 650,649,143,195, 300,239,315,373, 302,252,324,375,
855
304,242,314,377, 306,257,330,379, 308,241,344,382, 661,653,652,662,
856
310,251,313,385, 311,250,407,341, 312,256,273,340, 313,251,274,339,
857
314,242,265,338, 315,239,268,337, 316,240,267,336, 317,246,276,335,
858
318,245,275,334, 319,248,278,333, 662,667,668,663, 320,247,277,332,
859
321,249,262,349, 322,253,270,347, 323,195,260,351, 324,252,272,345,
860
325,244,263,343, 327,254,259,350, 328,255,261,348, 329,258,269,346,
861
663,668,669,670, 330,257,271,380, 331,243,264,342, 332,277,281,354,
862
333,278,285,358, 334,275,289,362, 335,276,293,366, 336,267,297,370,
863
337,268,301,374, 338,265,305,378, 339,274,397,387, 664,661,662,663,
864
340,273,401,391, 342,264,403,393, 343,263,399,389, 344,241,266,383,
865
345,272,303,376, 346,269,299,372, 347,270,295,368, 348,261,291,364,
866
349,262,287,360, 665,664,663,670, 350,259,283,356, 351,260,279,352,
867
352,279,280,353, 353,320,351,352, 354,281,282,355, 355,327,332,354,
868
356,283,284,357, 357,319,350,356, 358,285,286,359, 359,321,333,358,
869
36,665,670,671, 360,287,288,361, 361,318,349,360, 362,289,290,363,
870
363,328,334,362, 364,291,292,365, 365,317,348,364, 366,293,294,367,
871
367,322,335,366, 368,295,296,369, 369,316,347,368, 37,36,671,674,
872
370,297,298,371, 371,329,336,370, 372,299,300,373, 373,315,346,372,
873
374,301,302,375, 375,324,337,374, 376,303,304,377, 377,314,345,376,
874
378,305,306,379, 379,330,338,378, 38,37,674,675, 380,271,307,381,
875
381,307,308,382, 382,344,380,381, 383,266,309,384, 384,309,310,385,
876
385,313,383,384, 386,217,380,344, 388,325,339,387, 388,387,397,398,
877
39,38,675,678, 390,312,343,389, 390,389,399,400, 392,331,340,391,
878
392,391,401,402, 394,311,342,393, 394,393,403,404, 395,341,408,409,
879
396,326,341,395, 396,395,409,410, 398,244,325,388, 40,39,678,679,
880
400,256,312,390, 402,243,331,392, 404,250,311,394, 405,140,462,1300,
881
406,326,396,410, 408,406,410,409, 41,40,679,682, 411,412,413,414,
882
411,414,424,425, 412,405,1300,461, 417,415,416,418, 419,326,406,411,
883
419,411,425,423, 42,41,682,683, 420,414,415,430, 422,420,419,423,
884
424,414,420,422, 424,422,423,425, 426,417,421,428, 427,415,417,426,
885
427,426,428,429, 43,42,683,686, 430,415,427,429, 431,651,639,1096,
886
431,26,25,432, 432,25,24,433, 432,433,436,437, 433,24,23,434,
887
434,23,22,435, 436,433,434,438, 436,438,441,443, 437,651,431,432,
888
437,436,443,442, 438,434,435,439, 438,439,440,441, 44,43,686,687,
889
441,440,447,446, 442,443,444,445, 443,441,446,444, 448,42,43,465,
890
449,156,161,448, 449,448,465,464, 45,44,687,690, 450,449,464,452,
891
451,116,165,450, 451,450,452,453, 454,451,453,455, 456,454,455,460,
892
456,457,462,463, 459,457,456,460, 46,45,690,691, 461,458,607,617,
893
463,128,454,456, 465,44,470,464, 466,98,476,475, 466,49,50,98,
894
467,47,49,466, 468,46,47,467, 469,45,46,468, 47,46,691,694,
895
470,44,45,469, 470,469,472,471, 472,469,468,473, 473,468,467,474,
896
474,467,466,475, 476,95,477,475, 478,474,475,477, 479,473,474,478,
897
48,695,696,697, 480,472,473,479, 481,480,479,482, 482,479,478,483,
898
483,478,477,484, 486,483,484,485, 487,482,483,486, 487,486,494,489,
899
488,459,460,471, 488,471,472,480, 489,481,482,487, 49,47,694,48,
900
492,58,59,493, 493,59,104,501, 494,486,492,493, 494,493,510,511,
901
497,496,499,500, 498,497,500,501, 652,640,667,662, 652,653,10,9,
902
50,49,48,697, 500,499,509,510, 501,104,105,498, 502,74,565,567,
903
504,72,73,503, 505,71,72,504, 505,504,507,509, 507,504,503,508,
904
509,507,511,510, 51,50,697,698, 510,493,501,500, 511,507,508,573,
905
513,81,82,566, 514,80,81,513, 515,79,80,514, 515,514,561,522,
906
516,78,79,515, 516,515,522,521, 517,77,78,516, 518,76,77,517,
907
52,51,698,701, 520,517,516,521, 521,522,523,524, 524,523,528,527,
908
525,520,521,524, 526,525,524,527, 527,528,529,530, 53,52,701,702,
909
530,529,534,533, 531,526,527,530, 532,531,530,533, 533,534,535,536,
910
536,535,540,539, 537,532,533,536, 538,537,536,539, 539,540,541,542,
911
54,53,702,705, 541,540,561,563, 542,541,546,545, 543,538,539,542,
912
544,543,542,545, 545,546,547,548, 548,547,552,551, 549,544,545,548,
913
55,54,705,706, 550,549,548,551, 551,552,553,554, 554,553,558,557,
914
555,550,551,554, 556,555,554,557, 56,55,706,709, 564,518,538,543,
915
566,82,743,84, 567,565,568,566, 569,84,572,570, 57,56,709,710,
916
570,572,579,581, 573,489,494,511, 573,508,612,613, 577,502,567,569,
917
577,569,570,576, 577,576,605,602, 578,576,570,581, 579,572,571,580,
918
58,57,710,713, 580,571,598,599, 581,579,596,597, 582,575,589,588,
919
583,582,585,584, 586,584,596,595, 587,586,595,594, 588,589,592,593,
920
589,590,591,592, 59,58,713,714, 590,575,583,587, 590,587,594,591,
921
591,594,606,608, 592,591,608,607, 593,578,581,597, 593,592,607,604,
922
595,580,599,594, 596,579,580,595, 596,584,585,597, 597,585,588,593,
923
653,654,11,10, 60,59,714,61, 600,577,602,603, 601,600,603,611,
924
605,576,578,604, 61,716,717,62, 610,611,620,618, 611,615,623,620,
925
612,610,618,619, 613,612,619,621, 614,491,573,613, 614,613,621,622,
926
615,614,622,623, 618,620,626,624, 619,618,624,625, 62,717,718,65,
927
620,623,629,626, 621,619,625,627, 622,621,627,628, 623,622,628,629,
928
63,60,61,62, 639,638,1097,1096, 64,63,62,65, 647,634,793,782,
929
1,647,646,2, 2,646,645,3, 65,718,719,66, 3,645,644,4, 4,644,643,5,
930
5,643,642,6, 6,642,641,7, 7,641,640,8, 8,640,652,9, 28,27,1096,1097,
931
29,28,1097,1098, 66,719,720,69, 30,29,1098,1099, 31,30,1099,1100,
932
32,31,1100,1101, 33,637,636,34, 34,636,635,35, 35,635,634,0,
933
0,634,647,1, 67,64,65,66, 670,669,672,671, 671,672,673,674,
934
673,672,821,820, 674,673,676,675, 675,676,677,678, 678,677,680,679,
935
679,680,681,682, 68,67,66,69, 681,680,826,825, 682,681,684,683,
936
683,684,685,686, 684,681,824,1114, 685,684,1114,1131,
937
686,685,688,687, 687,688,689,690, 689,688,1136,1135, 69,720,721,70,
938
690,689,692,691, 691,692,693,694, 692,689,1135,1134,
939
693,692,1134,1133, 694,693,695,48, 695,693,1133,1132,
940
696,695,1132,761, 697,696,699,698, 698,699,700,701, 699,696,761,760,
941
654,655,12,11, 70,721,722,723, 700,699,760,759, 701,700,703,702,
942
702,703,704,705, 703,700,759,758, 704,703,758,757, 705,704,707,706,
943
706,707,708,709, 707,704,757,756, 708,707,756,755, 709,708,711,710,
944
71,68,69,70, 710,711,712,713, 711,708,755,754, 713,712,715,714,
945
714,715,716,61, 715,712,1158,1159, 716,715,767,766, 717,716,766,765,
946
718,717,765,764, 719,718,764,763, 72,71,70,723, 722,721,1171,1170,
947
723,722,725,724, 724,725,726,727, 725,722,1170,1169, 727,726,729,728,
948
728,729,730,731, 73,72,723,724, 731,730,733,732, 732,733,734,735,
949
733,730,1184,1183, 734,733,1183,1182, 735,734,737,736,
950
736,737,738,739, 737,734,1182,1181, 738,737,1181,1180,
951
739,738,741,740, 74,73,724,727, 740,741,742,83, 741,738,1180,1179,
952
742,741,1179,1232, 743,742,1232,744, 749,748,751,750, 75,74,727,728,
953
750,751,752,753, 753,752,870,869, 76,75,728,731, 762,763,772,773,
954
763,764,771,772, 764,765,770,771, 765,766,769,770, 766,767,768,769,
955
767,715,1159,1167, 768,767,1167,1164, 77,76,731,732, 774,642,822,821,
956
775,639,872,871, 776,780,783,787, 776,777,829,827, 778,779,828,830,
957
78,77,732,735, 780,781,782,783, 780,776,827,832, 781,780,832,831,
958
783,782,793,792, 784,779,778,785, 785,778,777,786, 786,777,776,787,
959
787,783,792,788, 788,792,795,799, 789,786,787,788, 79,78,735,736,
960
790,785,786,789, 791,784,785,790, 792,793,794,795, 793,634,635,794,
961
794,635,636,805, 795,794,805,804, 796,791,790,797, 797,790,789,798,
962
798,789,788,799, 799,795,804,800, 655,656,13,12, 80,79,736,739,
963
801,798,799,800, 802,797,798,801, 803,796,797,802, 806,636,637,858,
964
81,80,739,740, 815,814,842,843, 817,818,825,826, 818,819,824,825,
965
82,81,740,83, 823,816,817,826, 824,819,1115,1114, 827,829,836,837,
966
828,779,1117,1116, 828,819,835,830, 829,777,778,830, 831,832,833,834,
967
833,832,827,837, 834,833,841,840, 835,818,839,836, 836,829,830,835,
968
837,836,839,838, 839,816,843,838, 840,645,646,834, 841,833,837,838,
969
842,812,840,841, 842,841,838,843, 86,747,748,749, 869,870,871,872,
970
872,639,112,207, 88,87,86,749, 89,88,749,750, 656,657,14,13,
971
90,89,750,753, 91,58,492,485, 910,927,952,953, 911,926,956,957,
972
912,925,944,945, 913,924,948,949, 914,943,950,951, 915,808,864,929,
973
918,941,958,959, 919,942,946,947, 92,91,485,484, 92,56,57,91,
974
920,940,954,955, 924,919,992,1015, 925,858,988,1016, 926,920,993,1013,
975
927,914,986,1014, 928,909,990,1008, 929,908,996,1007, 93,55,56,92,
976
930,907,979,1003, 931,906,1009,1048, 932,905,981,1001,
977
933,904,980,1002, 934,923,994,1011, 935,918,987,1012,
978
936,922,995,1045, 937,917,989,1010, 938,921,977,1005,
979
939,916,978,1004, 94,54,55,93, 940,910,983,999, 941,911,982,1000,
980
942,912,985,997, 943,913,984,998, 944,925,1016,1017,
981
945,944,1017,1018, 946,942,997,1019, 947,946,1019,1020,
982
948,924,1015,1021, 949,948,1021,1022, 95,94,484,477, 95,53,54,94,
983
950,943,998,1023, 951,950,1023,1024, 952,927,1014,1025,
984
953,952,1025,1026, 954,940,999,1027, 955,954,1027,1028,
985
956,926,1013,1029, 957,956,1029,1030, 958,941,1000,1031,
986
959,958,1031,1032, 96,52,53,95, 960,935,1012,1033, 961,960,1033,1034,
987
961,905,935,960, 962,932,1001,1035, 963,962,1035,1036,
988
963,923,932,962, 964,934,1011,1037, 965,964,1037,1038,
989
965,904,934,964, 966,933,1002,1039, 967,966,1039,1040,
990
967,917,933,966, 968,937,1010,1041, 969,968,1041,1042,
991
969,907,937,968, 97,51,52,96, 970,930,1003,1043, 971,970,1043,1044,
992
971,922,930,970, 972,936,1045,1046, 973,972,1046,1047,
993
973,906,936,972, 974,931,1048,1049, 975,974,1049,1050,
994
975,916,931,974, 976,915,1069,1059, 977,921,1065,1055,
995
978,916,975,1050, 979,907,969,1042, 98,50,51,97, 980,904,965,1038,
996
981,905,961,1034, 982,911,957,1030, 983,910,953,1026,
997
984,913,949,1022, 985,912,945,1018, 986,914,951,1024,
998
987,918,959,1032, 989,917,967,1040, 990,909,1063,1053,
999
992,919,947,1020, 993,920,955,1028, 994,923,963,1036,
1000
995,922,971,1044, 996,908,1067,1057, 997,992,1020,1019,
1001
998,986,1024,1023, 999,993,1028,1027,
1003
/* The base of the knight */
1005
9510,0, 9510,756, SEAM, 9134,1129, 9447,1487,
1006
9447,1951, 9103,2371, STEPDOWN, 8211,3083,
1007
7167,4242, 6662,5664, 7040,7142, STEPUP, SEAM, 7935,8560,
1013
unsigned short bishop_data[] = {
1014
VERTICES, SETBACKREF,0, 5233,26960,0, 5154,26960,909, 4918,26960,1790,
1015
4532,26960,2617, 4009,26960,3364, 3364,26960,4009, 2617,26960,4532,
1016
1790,26960,4918, 909,26960,5154, 0,26833,5233, -909,26960,5154,
1017
-1790,26960,4918, -2617,26960,4532, -3364,26960,4009,
1018
-4009,26960,3364, -4532,26960,2617, -4918,26960,1790,
1019
-5154,26960,909, -5233,26960,0, -5154,26960,-909, -4918,26960,-1790,
1020
-4532,26960,-2617, -4009,26960,-3364, -3364,26960,-4009,
1021
-2617,26960,-4532, -1790,26960,-4918, -909,26960,-5154, 0,26833,-5233,
1022
909,26960,-5154, 1790,26960,-4918, 2617,26960,-4532, 3364,26960,-4009,
1023
4009,26960,-3364, 4532,26960,-2617, 4918,26960,-1790, 5154,26960,-909,
1024
SETBACKREF,1, 3812,31178,0, 3765,31144,729, 3624,31040,1435,
1025
3395,30872,2153, 3084,30642,2820, 2701,30360,3389, 2076,29899,4102,
1026
1492,30015,4340, 845,30033,4442, 0,30044,4511, -657,30063,4443,
1027
-1481,30081,4214, -2190,30081,3884, -2830,30081,3435,
1028
-3383,30081,2883, -3831,30081,2242, -4162,30081,1534,
1029
-4364,30081,779, -4432,30081,0, -4364,30081,-779, -4162,30081,-1534,
1030
-3831,30081,-2242, -3383,30081,-2883, -2830,30081,-3435,
1031
-2190,30081,-3884, -1481,30081,-4214, -657,30063,-4443, 0,30044,-4511,
1032
845,30033,-4442, 1492,30015,-4340, 2076,29899,-4102, 2701,30360,-3388,
1033
3084,30642,-2820, 3395,30872,-2153, 3624,31040,-1435, 3765,31144,-729,
1034
240,28546,-4957, 884,29021,-4784, 1490,29467,-4537, 2076,29899,-4102,
1035
2701,30360,-3388, 3084,30642,-2820, 3395,30872,-2153,
1036
3624,31040,-1435, 3765,31144,-729, 2177,28477,4637, 1021,27605,5037,
1037
1021,27605,-5042, 2170,28478,-4644, 0,26833,-5233, 0,26833,5233,
1038
-3153,28619,-3758, 240,28546,4957, 884,29021,4784, 2076,29899,4102,
1039
2701,30360,3389, 3084,30642,2820, 3395,30872,2153, 3624,31040,1435,
1040
3765,31144,729, -719,28582,4883, 4863,28569,977, 4560,28569,1925,
1041
4064,28569,2815, 3465,28569,3723, 2622,28569,4448, 2621,28583,-4401,
1042
3473,28588,-3691, 4064,28569,-2815, 4560,28569,-1925, 4863,28569,-977,
1043
4965,28569,0, -1678,28619,4610, -3153,28619,3758, -2453,28619,4248,
1044
-4248,28619,2453, -3758,28619,3153, -4831,28619,852, -4906,28619,0,
1045
-4831,28619,-852, -4610,28619,-1678, -4248,28619,-2453,
1046
-3758,28619,-3153, -1678,28619,-4610, -2453,28619,-4248,
1047
-644,27895,5037, -644,27895,-5037, -4610,28619,1678, -719,28582,-4883,
1048
2170,28478,-4644, 1021,27605,-5042, 1021,27605,5037, 2177,28477,4637,
1049
0,26833,-5233, 0,26833,5233, -644,27895,-5037, -644,27895,5037,
1050
-644,27895,5037, -644,27895,-5037, 1490,29467,-4537, 884,29021,-4784,
1051
240,28546,-4957, 240,28546,4957, 884,29021,4784, 3812,31178,0,
1052
4349,30116,-867, 4197,30001,-1705, 3948,29813,-2492, 3610,29558,-3203,
1053
3193,29244,-3817, 2711,28880,-4315, 4349,30116,-867, 4197,30001,-1705,
1054
3948,29813,-2492, 3610,29558,-3203, 3193,29244,-3817,
1055
2711,28880,-4315, 1608,28047,-4906, 1608,28047,4901, 2711,28880,4310,
1056
3193,29244,3812, 3610,29558,3198, 3948,29813,2487, 4197,30001,1701,
1057
4349,30116,862, 4401,30155,-176, 1490,29467,4537, 1490,29467,4537,
1058
4401,30155,-176, 4349,30116,862, 4197,30001,1701, 3948,29813,2487,
1059
3610,29558,3198, 3193,29244,3812, 2711,28880,4310, 1608,28047,4901,
1062
TRIANGLES, 8,127,9, 7,128,154, 2,98,3, 121,96,10, 121,10,9, 121,138,96,
1063
122,27,26, 27,126,28, 66,135,65, 162,42,43, 165,164,141, 80,140,95,
1064
103,151,150, 102,125,152, 101,155,128, 100,157,156, 124,137,122,
1065
33,105,34, 29,153,125, 26,124,122,
1067
QUADS, 22,118,87,23, 21,117,118,22, 20,116,117,21, 19,115,116,20,
1068
18,114,115,19, 17,113,114,18, 16,123,113,17, 15,111,123,16, 14,112,111,15,
1069
13,109,112,14, 12,110,109,13, 11,108,110,12, 7,154,127,8, 110,108,47,48,
1070
135,136,64,65, 136,137,63,64, 138,139,44,45, 139,162,43,44, 109,110,48,49,
1071
147,161,107,106, 166,165,141,142, 167,166,142,143, 168,167,143,144,
1072
169,168,144,145, 112,109,49,50, 170,169,145,146, 171,81,84,172,
1073
111,112,50,51, 72,88,133,134, 73,89,88,72, 74,163,89,73, 75,90,163,74,
1074
76,91,90,75, 77,92,91,76, 78,93,92,77, 79,94,93,78, 80,95,94,79,
1075
81,170,146,84, 82,171,172,83, 86,82,83,85, 130,129,131,132, 123,111,51,52,
1076
113,123,52,53, 114,113,53,54, 115,114,54,55, 116,115,55,56, 117,116,56,57,
1077
118,117,57,58, 87,118,58,59, 120,87,59,60, 119,120,60,61, 107,161,160,97,
1078
106,107,0,35, 105,148,147,106, 105,106,35,34, 104,149,148,105,
1079
104,105,33,32, 103,150,149,104, 103,104,32,31, 102,152,151,103,
1080
102,103,31,30, 101,128,7,6, 100,101,6,5, 100,156,155,101, 99,100,5,4,
1081
99,158,157,100, 98,99,4,3, 98,159,158,99, 97,98,2,1, 97,160,159,98,
1082
96,108,11,10, 96,138,45,46, 124,119,61,62, 47,108,96,46, 63,137,124,62,
1083
0,107,97,1, 29,125,102,30, 28,126,153,29, 25,119,124,26, 24,120,119,25,
1086
/* Everything above the slit */
1088
8870,0,8870,731,SEAM,8519,1091,8811,1438,8811,1886,8626,2292,
1089
STEPDOWN,6989,2980,5927,4133,5548,5735,
1090
STEPUP,5388,7642,5228,7807,STEPDOWN,4427,8149,4057,8434,
1091
3493,9185,2816,13524,SEAM,2690,18532,5301,18690,
1092
STEPUP,6810,19005,6861,19277,6804,19625,STEPDOWN,6502,19845,
1093
SEAM,4305,20394,STEPUP,4796,20522,4924,20759,4778,20979,
1094
STEPDOWN,SEAM,3727,21207,SEAM,3726,22181,STEPUP,SEAM,4546,22705,
1095
SEAM,3846,23385,4718,24227,5226,25516,STEPUP,BACKREF,0,
1097
/* Everything below the slit */
1099
BACKREF,1,STEPDOWN,3548,31590,STEPDOWN,2724,32633,SEAM,1581,33500,
1100
2013,33901,STEPUP,2281,34500,2281,34936,STEPDOWN,1947,35372,
1101
STEPDOWN,1233,35734,STEPDOWN,0,35891,
1106
unsigned short king_data[] = {
1108
11378,0,11378,856,SEAM,10928,1152,
1109
11302,1684,11302,2209,11065,2684,
1110
STEPDOWN,8964,3490,7603,4841,7116,6717,
1111
STEPUP,6911,8950,6705,9144,STEPDOWN,5678,9545,5204,9878,
1112
4481,10758,3696,14808,SEAM,3065,26979,
1113
5813,27155,STEPUP,7145,27507,7424,27812,7352,28288,7131,28533,
1114
5477,28882,5397,29010,5406,29363,4903,29934,
1115
STEPDOWN,SEAM,3944,30227,
1116
SEAM,3974,31478,4703,31849,STEPUP,4832,32092,4756,32370,
1117
SEAM,3975,32620,6899,39055,6877,39351,2833,39514,
1118
2786,39612,2786,39807,2734,39856,STEPDOWN,STEPDOWN,2590,39905,0,39969,
1121
QUADSTRIP,-1613,39866,0,-1543,39866,702,-1651,40481,0,-1580,40590,702,
1122
-1531,40917,0,-1465,41008,702,
1123
QUADSTRIP,-1531,40917,0,-1465,41008,702,-2956,41104,0,-2829,41187,702,
1124
-3075,41520,0,-2943,41585,702,-3075,43849,0,-2943,43805,702,
1125
-2862,44347,0,-2739,44282,702,-1116,44636,0,-1068,44554,702,
1126
QUADSTRIP,-1116,44636,0,-1068,44554,702,-1102,45692,0,-1054,45576,702,
1127
-973,45829,0,-973,45747,702,973,45829,0,973,45747,702,1102,45692,0,
1128
1054,45576,702,1116,44636,0,1068,44554,702,
1129
QUADSTRIP,1116,44636,0,1068,44554,702,2862,44347,0,2739,44282,702,
1130
3075,43849,0,2943,43805,702,3075,41520,0,2943,41585,702,2956,41104,0,
1131
2829,41187,702,1531,40917,0,1465,41008,702,
1132
QUADSTRIP,1531,40917,0,1465,41008,702,1651,40481,0,1580,40590,702,
1133
1613,39866,0,1543,39866,702,
1134
QUADSTRIP,-1543,39866,702,1543,39866,702,-1580,40590,702,
1135
1580,40590,702,-1465,41008,702,1465,41008,702,-2829,41187,702,
1136
2829,41187,702,-2943,41585,702,2943,41585,702,-2943,43805,702,
1137
2943,43805,702,-2739,44282,702,2739,44282,702,-1068,44554,702,
1138
1068,44554,702,-1054,45576,702,1054,45576,702,-973,45747,702,
1140
QUADSTRIP,-1543,39866,-702,BACKREF,0,0,-1580,40590,-702,BACKREF,0,2,
1141
-1465,41008,-702,BACKREF,0,4,
1142
QUADSTRIP,-1465,41008,-702,BACKREF,0,6,-2829,41187,-702,BACKREF,0,8,
1143
-2943,41585,-702,BACKREF,0,10,-2943,43805,-702,BACKREF,0,12,
1144
-2739,44282,-702,BACKREF,0,14,-1068,44554,-702,BACKREF,0,16,
1145
QUADSTRIP,-1068,44554,-702,BACKREF,0,18,-1054,45576,-702,
1146
BACKREF,0,20,-973,45747,-702,BACKREF,0,22,973,45747,-702,BACKREF,0,24,
1147
1054,45576,-702,BACKREF,0,26,1068,44554,-702,BACKREF,0,28,
1148
QUADSTRIP,1068,44554,-702,BACKREF,0,30,2739,44282,-702,
1149
BACKREF,0,32,2943,43805,-702,BACKREF,0,34,2943,41585,-702,BACKREF,0,36,
1150
2829,41187,-702,BACKREF,0,38,1465,41008,-702,BACKREF,0,40,
1151
QUADSTRIP,1465,41008,-702,BACKREF,0,42,1580,40590,-702,
1152
BACKREF,0,44,1543,39866,-702,BACKREF,0,46,
1153
QUADSTRIP,1543,39866,-702,-1543,39866,-702,1580,40590,-702,
1154
-1580,40590,-702,1465,41008,-702,-1465,41008,-702,2829,41187,-702,
1155
-2829,41187,-702,2943,41585,-702,-2943,41585,-702,2943,43805,-702,
1156
-2943,43805,-702,2739,44282,-702,-2739,44282,-702,1068,44554,-702,
1157
-1068,44554,-702,1054,45576,-702,-1054,45576,-702,973,45747,-702,
1162
unsigned short queen_data[] = {
1164
11092,0,11092,914,SEAM,10653,1284,
1165
11018,1798,11018,2358,10787,2866,
1166
STEPDOWN,8739,3726,7412,5168,6937,7171,
1167
STEPUP,6737,9556,6537,9762,STEPDOWN,5536,10191,5073,10546,
1168
4368,11485,3678,15137,SEAM,3259,26879,
1169
5966,27091,STEPUP,7332,27515,7619,27882,7545,28455,7317,28751,
1170
5654,29177,5538,29326,5542,29982,5377,30278,
1171
STEPDOWN,SEAM,4194,30585,
1172
SEAM,4226,31822,5002,32218,STEPUP,5139,32477,5058,32774,
1173
SEAM,4227,33040,STEPDOWN,4421,34778,5042,36612,5874,38429,
1174
STEPUP,SEAM,PATTERN,3,6018,39660,6018,39660,6804,39977,
1175
SEAM,PATTERN,3,5015,41139,5015,41139,5673,41460,
1177
STEPDOWN,SEAM,1381,41188,
1178
1396,42332,STEPDOWN,1082,43072,481,43476,0,43543,
1182
unsigned short pawn_data[] = {
1185
SEAM,7102,910,7345,1199,7345,1572,7191,1910,
1186
STEPDOWN,5826,2484,4941,3446,4625,4781,
1187
STEPUP,4492,6371,4358,6508,
1188
STEPDOWN,3691,6794,2912,7657,2473,10091,
1190
STEPUP,4518,15697,4695,15900,4649,16218,4509,16382,
1191
STEPDOWN,SEAM,3150,16755,STEPUP,3858,17678,4303,18752,4455,19905,
1192
4303,21058,3858,22132,
1193
STEPDOWN,3150,23055,2227,23763,STEPDOWN,1153,24208,0,24360,
1197
unsigned short rook_data[] = {
1199
9374,0,9374,756,SEAM,9003,1062,9311,1487,
1200
9311,1951,9116,2371,8521,3083,6701,5807,SEAM,6009,7595,
1201
6167,7812,6138,8066,5926,8460,5216,12608,
1206
/* SEAM,PATTERN,5,6103,26819,6143,27971,6143,27971,6143,27971,6103,26819, */
1207
/* SEAM,PATTERN,5, 5020,26819,5053,27971,5053,27971,5053,27971, 5020,26819, */
1213
5020,26819,5020,26114,4906,25858,0,25666,
1215
POLARQUADSTRIP,20,BACKREF,0,1,1,6143,27971,BACKREF,0,2,2,6143,27971,
1216
BACKREF,0,3,3,6143,27971,BACKREF,0,4,4,6143,27971,
1217
POLARQUADSTRIP,20,BACKREF,0,6,6,6143,27971,BACKREF,0,7,7,6143,27971,
1218
BACKREF,0,8,8,6143,27971,BACKREF,0,9,9,6143,27971,
1219
POLARQUADSTRIP,20,BACKREF,0,11,11,6143,27971,BACKREF,0,12,12,6143,27971,
1220
BACKREF,0,13,13,6143,27971,BACKREF,0,14,14,6143,27971,
1221
POLARQUADSTRIP,20,BACKREF,0,16,16,6143,27971,BACKREF,0,17,17,6143,27971,
1222
BACKREF,0,18,18,6143,27971,BACKREF,0,19,19,6143,27971,
1224
POLARQUADSTRIP,20,1,5053,27971,BACKREF,1,1,2,5053,27971,BACKREF,1,2,
1225
3,5053,27971,BACKREF,1,3,4,5053,27971,BACKREF,1,4,
1226
POLARQUADSTRIP,20,6,5053,27971,BACKREF,1,6,7,5053,27971,BACKREF,1,7,
1227
8,5053,27971,BACKREF,1,8,9,5053,27971,BACKREF,1,9,
1228
POLARQUADSTRIP,20,11,5053,27971,BACKREF,1,11,12,5053,27971,BACKREF,1,12,
1229
13,5053,27971,BACKREF,1,13,14,5053,27971,BACKREF,1,14,
1230
POLARQUADSTRIP,20,16,5053,27971,BACKREF,1,16,17,5053,27971,BACKREF,1,17,
1231
18,5053,27971,BACKREF,1,18,19,5053,27971,BACKREF,1,19,
1233
POLARQUADSTRIP,20,1,5020,26819,1,6103,26819,
1234
0,5020,26819,0,6103,26819,19,5020,26819,19,6103,26819,
1235
POLARQUADSTRIP,20,6,5020,26819,6,6103,26819,
1236
5,5020,26819,5,6103,26819,4,5020,26819,4,6103,26819,
1237
POLARQUADSTRIP,20,11,5020,26819,11,6103,26819,
1238
10,5020,26819,10,6103,26819,9,5020,26819,9,6103,26819,
1239
POLARQUADSTRIP,20,16,5020,26819,16,6103,26819,
1240
15,5020,26819,15,6103,26819,14,5020,26819,14,6103,26819,
1242
POLARQUADSTRIP,20,1,5053,27971,1,6143,27971,1,5020,26819,1,6103,26819,
1243
POLARQUADSTRIP,20,4,5020,26819,4,6103,26819,4,5053,27971,4,6143,27971,
1244
POLARQUADSTRIP,20,6,5053,27971,6,6143,27971,6,5020,26819,6,6103,26819,
1245
POLARQUADSTRIP,20,9,5020,26819,9,6103,26819,9,5053,27971,9,6143,27971,
1246
POLARQUADSTRIP,20,11,5053,27971,11,6143,27971,11,5020,26819,11,6103,26819,
1247
POLARQUADSTRIP,20,14,5020,26819,14,6103,26819,14,5053,27971,14,6143,27971,
1248
POLARQUADSTRIP,20,16,5053,27971,16,6143,27971,16,5020,26819,16,6103,26819,
1249
POLARQUADSTRIP,20,19,5020,26819,19,6103,26819,19,5053,27971,19,6143,27971,
1251
POLARQUADSTRIP,20,1,6143,27971,1,5053,27971,2,6143,27971,2,5053,27971,
1252
3,6143,27971,3,5053,27971,4,6143,27971,4,5053,27971,
1253
POLARQUADSTRIP,20,6,6143,27971,6,5053,27971,7,6143,27971,7,5053,27971,
1254
8,6143,27971,8,5053,27971,9,6143,27971,9,5053,27971,
1255
POLARQUADSTRIP,20,11,6143,27971,11,5053,27971,12,6143,27971,12,5053,27971,
1256
13,6143,27971,13,5053,27971,14,6143,27971,14,5053,27971,
1257
POLARQUADSTRIP,20,16,6143,27971,16,5053,27971,17,6143,27971,17,5053,27971,
1258
18,6143,27971,18,5053,27971,19,6143,27971,19,5053,27971,
1263
static double piece_size;
1265
static int enumerate_ring_vertices( int steps, unsigned short *data, void *h,
1266
void (*process_vertex)(void *h,double x,double y,double z))
1269
unsigned short *pts = data;
1270
double dtheta = M_PI * 2 / steps;
1272
if( data[0] == PATTERN) {
1277
if( pts[0] == 0) steps = 1;
1279
for( i=0; i < steps; i++) {
1280
double r = pts[(i % patlen)*2] * piece_size;
1281
double y = pts[(i % patlen)*2+1] * piece_size;
1282
double theta = dtheta * i;
1284
process_vertex( h, r * cos(theta), y, r * sin(theta));
1287
return pts + patlen * 2 - data;
1290
static void enumerate_vertices( unsigned short *data, void *h,
1291
void (*process_vertex)(void *h,double x,double y,double z))
1294
if( data[0] == SPIN) {
1299
while(data[0] <= SEAM) {
1300
if( data[0] == SETBACKREF || data[0] == BACKREF) {
1303
} else if( data[0] == STEPUP) {
1307
} else if( data[0] == STEPDOWN) {
1311
} else if( data[0] == SEAM) {
1313
/* Visit seam vertices twice */
1314
enumerate_ring_vertices( steps, data,
1316
data += enumerate_ring_vertices( steps, data,
1319
data += enumerate_ring_vertices( steps, data,
1323
} else if( data[0] == POLARQUADSTRIP) {
1324
int steps = data[1];
1328
dtheta = M_PI * 2 / steps;
1330
while(data[0] <= SEAM) {
1331
if( data[0] != BACKREF) {
1332
double theta = dtheta * data[0];
1333
double r = data[1] * piece_size;
1334
double y = data[2] * piece_size;
1335
process_vertex( h, r * cos(theta), y, r * sin(theta));
1339
} else if( data[0] == QUADSTRIP || data[0] == VERTICES) {
1342
while(data[0] <= SEAM) {
1343
if( data[0] == SETBACKREF) {
1348
if( data[0] != BACKREF) {
1349
double x = (signed short)data[0] * piece_size;
1350
double y = data[1] * piece_size;
1351
double z = (signed short)data[2] * piece_size;
1352
process_vertex( h, x, y, z);
1356
} else if( data[0] == QUADS || data[0] == TRIANGLES) {
1358
while( data[0] <= SEAM) data++;
1365
static void enumerate_ring_faces( int basevertex, int steps,
1366
int prevbase, int prevsteps, void *h, int *count_ret,
1367
void (*process_face)(void *h,int v1,int v2,int v3,int v4))
1372
for( i=0; i < prevsteps; i++) {
1376
prevbase + (i ? i-1 : prevsteps-1),
1378
if (count_ret) (*count_ret)++;
1380
} else if( steps == prevsteps) {
1381
for( i=0; i < steps; i++) {
1385
prevbase + (i ? i-1 : steps-1),
1386
basevertex + (i ? i-1 : steps-1));
1387
if (count_ret) (*count_ret)++;
1392
while( j < prevsteps && steps*(1+2*j) < prevsteps*(1+2*i)) {
1394
basevertex + (i%steps),
1395
prevbase + ((j+1)%prevsteps),
1398
if (count_ret) (*count_ret)++;
1401
if( i == steps) break;
1404
basevertex + ((i+1)%steps),
1405
prevbase + (j%prevsteps),
1407
if (count_ret) (*count_ret)++;
1412
static void enumerate_faces( unsigned short *data, void *h, int *count_ret,
1413
void (*process_face)(void *h,int v1,int v2,int v3,int v4))
1415
int basevertex = 0, startofvertices = 0;
1419
if( data[0] == SPIN) {
1421
int prevsteps = -1,prevbase = 0;
1426
while( data[0] <= SEAM) {
1427
if( data[0] == SETBACKREF) {
1428
backrefs[data[1]] = basevertex;
1433
if( data[0] == STEPUP) {
1437
} else if( data[0] == STEPDOWN) {
1443
if( data[0] == BACKREF) {
1444
if( prevsteps != -1) {
1445
enumerate_ring_faces( backrefs[data[1]], steps,
1446
prevbase, prevsteps, h,
1447
count_ret, process_face);
1450
prevbase = backrefs[data[1]];
1454
if( data[0] == SEAM) {
1459
if( data[0] == PATTERN) {
1460
data += 2 + data[1]*2;
1462
if( data[0] == 0) steps = 1;
1466
if( prevsteps != -1) {
1467
enumerate_ring_faces( basevertex, steps,
1468
prevbase, prevsteps, h,
1469
count_ret, process_face);
1472
if( isseam) basevertex += steps;
1473
prevbase = basevertex;
1474
basevertex += steps;
1479
} else if( data[0] == POLARQUADSTRIP || data[0] == QUADSTRIP) {
1480
int v0=-1,v1=0,v2,v3;
1481
if( data[0] == POLARQUADSTRIP) data += 2;
1483
while(data[0] <= SEAM) {
1484
if( data[0] == BACKREF) {
1485
v2 = backrefs[data[1]]+data[2];
1490
if( data[3] == BACKREF) {
1491
v3 = backrefs[data[4]]+data[5];
1498
process_face( h, v0, v1, v3, v2);
1499
if (count_ret) (*count_ret)++;
1504
} else if( data[0] == VERTICES) {
1506
startofvertices = basevertex;
1507
while( data[0] <= SEAM) {
1508
if( data[0] == SETBACKREF) {
1509
backrefs[data[1]] = basevertex;
1516
} else if( data[0] == QUADS) {
1518
while( data[0] <= SEAM) {
1520
data[0] + startofvertices,
1521
data[1] + startofvertices,
1522
data[2] + startofvertices,
1523
data[3] + startofvertices);
1524
if (count_ret) (*count_ret)++;
1527
} else if( data[0] == TRIANGLES) {
1529
while( data[0] <= SEAM) {
1531
data[0] + startofvertices,
1532
data[1] + startofvertices,
1533
data[2] + startofvertices, -1);
1534
if (count_ret) (*count_ret)++;
1543
static void normalize( float v[3]) {
1544
float d = sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);
1547
/* The direction is undefined - normalize it anyway */
1559
static void normcrossprod( float v1[3], float v2[3], float out[3])
1561
out[0] = v1[1] * v2[2] - v1[2] * v2[1];
1562
out[1] = v1[2] * v2[0] - v1[0] * v2[2];
1563
out[2] = v1[0] * v2[1] - v1[1] * v2[0];
1567
#define vectordiff(v1,v2,out) \
1568
((out)[0] = (v1)[0] - (v2)[0], \
1569
(out)[1] = (v1)[1] - (v2)[1], \
1570
(out)[2] = (v1)[2] - (v2)[2])
1572
#define vectoradd(v1,v2) \
1573
((v1)[0] += (v2)[0], \
1574
(v1)[1] += (v2)[1], \
1581
static void count_vertex( void *dummy, double x, double y, double z)
1586
static void add_normal( void *dummy, int v1, int v2, int v3, int v4)
1588
float surfnormal[3],d1[3],d2[3];
1591
vectordiff( vertices + 3 * v2, vertices + 3 * v1, d1);
1592
vectordiff( vertices + 3 * v3, vertices + 3 * v1, d2);
1593
normcrossprod( d1, d2, surfnormal);
1594
vectoradd( normals + 3 * v1, surfnormal);
1595
vectoradd( normals + 3 * v2, surfnormal);
1596
vectoradd( normals + 3 * v3, surfnormal);
1598
vectordiff( vertices + 3 * v2, vertices + 3 * v1, d1);
1599
vectordiff( vertices + 3 * v4, vertices + 3 * v1, d2);
1600
normcrossprod( d1, d2, surfnormal);
1601
vectoradd( normals + 3 * v1, surfnormal);
1602
vectordiff( vertices + 3 * v3, vertices + 3 * v2, d1);
1603
vectordiff( vertices + 3 * v1, vertices + 3 * v2, d2);
1604
normcrossprod( d1, d2, surfnormal);
1605
vectoradd( normals + 3 * v2, surfnormal);
1606
vectordiff( vertices + 3 * v4, vertices + 3 * v3, d1);
1607
vectordiff( vertices + 3 * v2, vertices + 3 * v3, d2);
1608
normcrossprod( d1, d2, surfnormal);
1609
vectoradd( normals + 3 * v3, surfnormal);
1610
vectordiff( vertices + 3 * v1, vertices + 3 * v4, d1);
1611
vectordiff( vertices + 3 * v3, vertices + 3 * v4, d2);
1612
normcrossprod( d1, d2, surfnormal);
1613
vectoradd( normals + 3 * v4, surfnormal);
1617
static void collect_vertex( void *curvert, double x, double y, double z)
1619
(*(float**)curvert)[0] = x;
1620
(*(float**)curvert)[1] = y;
1621
(*(float**)curvert)[2] = z;
1622
(*(float**)curvert) += 3;
1625
static void draw_face( void *dummy, int v1, int v2, int v3, int v4)
1627
glBegin( v4 == -1 ? GL_TRIANGLES : GL_QUADS);
1628
glNormal3f( normals[v1*3], normals[v1*3+1], normals[v1*3+2]);
1629
glVertex3f( vertices[v1*3], vertices[v1*3+1], vertices[v1*3+2]);
1630
glNormal3f( normals[v2*3], normals[v2*3+1], normals[v2*3+2]);
1631
glVertex3f( vertices[v2*3], vertices[v2*3+1], vertices[v2*3+2]);
1632
glNormal3f( normals[v3*3], normals[v3*3+1], normals[v3*3+2]);
1633
glVertex3f( vertices[v3*3], vertices[v3*3+1], vertices[v3*3+2]);
1635
glNormal3f( normals[v4*3], normals[v4*3+1], normals[v4*3+2]);
1636
glVertex3f( vertices[v4*3], vertices[v4*3+1], vertices[v4*3+2]);
1641
static int draw_piece( unsigned short *piece_data)
1647
/* Count how many vertices this piece has */
1648
enumerate_vertices( piece_data, NULL, count_vertex);
1650
/* Allocate memory for the vertices and for the vertex normals */
1651
vertices = malloc( sizeof(float) * 3 * numverts);
1652
normals = malloc( sizeof(float) * 3 * numverts);
1653
if( !vertices || !normals) exit(1);
1655
/* Collect the vertex coordinates */
1657
enumerate_vertices( piece_data, &curvert, collect_vertex);
1659
/* Zero out the normals */
1660
for( i=0; i < numverts * 3; i++) {
1664
/* Add up all the face normals at each vertex */
1665
enumerate_faces( piece_data, NULL, NULL, add_normal);
1667
/* Normalize the vertex normals */
1668
for( i=0; i < numverts; i++) {
1669
normalize( normals + i * 3);
1672
/* Now draw the faces */
1673
enumerate_faces( piece_data, NULL, &count, draw_face);
1678
if (count <= 1) abort();
1682
void gen_model_lists( int classic, int poly_count[PIECES]) {
1683
piece_size = classic ? 0.095 / 100 : 0.3 / 8192;
135
1685
glNewList(KING, GL_COMPILE);
1686
poly_count[KING] = draw_piece( classic ? classic_king_data : king_data);
139
1689
glNewList(QUEEN, GL_COMPILE);
1690
poly_count[QUEEN] = draw_piece( classic ? classic_queen_data : queen_data);
143
1693
glNewList(BISHOP, GL_COMPILE);
1694
poly_count[BISHOP] = draw_piece( classic ? classic_bishop_data : bishop_data);
147
1697
glNewList(KNIGHT, GL_COMPILE);
1698
poly_count[KNIGHT] = draw_piece( classic ? classic_knight_data : knight_data);
151
1701
glNewList(ROOK, GL_COMPILE);
1702
poly_count[ROOK] = draw_piece( classic ? classic_rook_data : rook_data);
155
1705
glNewList(PAWN, GL_COMPILE);
1706
poly_count[PAWN] = draw_piece( classic ? classic_pawn_data : pawn_data);
160
void draw_pawn(void) {
162
{ 3.5, 3.5, 2.5, 2.5, 1.5, 1.0, 1.8, 1.0, 2.0, 1.0, 0.0, 0.0 };
164
{ 0.0, 2.0, 3.0, 4.0, 6.0, 8.8, 8.8, 9.2, 11.6, 13.4, 13.4, 0.0 };
166
revolve_line(trace_r, trace_h, 0.0, ROT);
172
{ 3.8, 3.8, 2.6, 2.0, 2.8, 2.8, 2.2, 2.2, 0.0, 0.0 };
174
{ 0.0, 2.0, 5.0, 10.2, 10.2, 13.6, 13.6, 13.0, 13.0, 0.0 };
176
revolve_line(trace_r, trace_h, 0.0, ROT);
179
void draw_knight(void)
181
double trace_r[] = { 4.1, 4.1, 2.0, 2.0, 2.6, 0.0 };
182
double trace_h[] = { 0.0, 2.0, 3.6, 4.8, 5.8, 0.0 };
185
revolve_line(trace_r, trace_h, 17.8, ROT);
187
/* Non revolved pieces */
192
glNormal3f(0.0, -1.0, 0.0);
193
glTexCoord2f(0.0, 5.8 / 17.8 * piece_size);
194
glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
195
glTexCoord2f(0.0, 5.8 / 17.8 * piece_size);
196
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
197
glTexCoord2f(0.0, 5.8 / 17.8 * piece_size);
198
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
199
glTexCoord2f(0.0, 5.8 / 17.8 * piece_size);
200
glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
202
/* Upper edge of nose */
203
glNormal3f(0.0, 0.707107, 0.707107);
204
glTexCoord2f(0.0, 16.2 / 17.8 * piece_size);
205
glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
206
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
207
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
208
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
209
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
210
glTexCoord2f(0.0, 16.2 / 17.8 * piece_size);
211
glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
214
glNormal3f(0.0, 1.0, 0.0);
216
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
217
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
218
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
219
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
220
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
221
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
222
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
223
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
225
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
226
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
227
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
228
glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
229
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
230
glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
231
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
232
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
234
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
235
glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
236
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
237
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
238
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
239
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
240
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
241
glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
243
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
244
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
245
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
246
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
247
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
248
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
249
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
250
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
252
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
253
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
254
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
255
glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
256
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
257
glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
258
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
259
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
261
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
262
glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
263
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
264
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
265
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
266
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
267
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
268
glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
270
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
271
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
272
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
273
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
274
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
275
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
276
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
277
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
280
glNormal3f(0.0, 0.0, -1.0);
281
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
282
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
283
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
284
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
285
glTexCoord2f(0.0, 15.0 / 17.8 * piece_size);
286
glVertex3f(1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size);
287
glTexCoord2f(0.0, 15.0 / 17.8 * piece_size);
288
glVertex3f(-1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size);
291
glNormal3f(0.0, 0.0, -1.0);
292
glTexCoord2f(0.0, 15.0 / 17.8 * piece_size);
293
glVertex3f(-1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size);
294
glTexCoord2f(0.0, 15.0 / 17.8 * piece_size);
295
glVertex3f(1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size);
296
glTexCoord2f(0.0, 14.8 / 17.8 * piece_size);
297
glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
298
glTexCoord2f(0.0, 14.8 / 17.8 * piece_size);
299
glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
301
/* Right side of face */
302
glNormal3f(-0.933878, 0.128964, -0.333528);
303
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
304
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
305
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
306
glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
307
glTexCoord2f(0.0, 14.0 / 17.8 * piece_size);
308
glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
309
glTexCoord2f(0.0, 13.8 / 17.8 * piece_size);
310
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
312
glNormal3f(-0.966676, 0.150427, 0.207145);
313
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
314
glVertex3f(-0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
315
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
316
glVertex3f(-0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
317
glTexCoord2f(0.0, 13.8 / 17.8 * piece_size);
318
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
319
glTexCoord2f(0.0, 14.0 / 17.8 * piece_size);
320
glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
322
/* (above and below eye) */
323
glNormal3f(-0.934057, 0.124541, -0.334704);
325
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
326
glVertex3f(-0.82666667 * piece_size, 16.6 * piece_size,
328
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
329
glVertex3f(-0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
330
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
331
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
332
glTexCoord2f(0.0, 16.6 / 17.8 * piece_size);
333
glVertex3f(-1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size);
335
glTexCoord2f(0.0, 13.8 / 17.8 * piece_size);
336
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
337
glTexCoord2f(0.0, 16.2 / 17.8 * piece_size);
338
glVertex3f(-0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size);
339
glTexCoord2f(0.0, 16.2 / 17.8 * piece_size);
340
glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
341
glTexCoord2f(0.0, 13.6 / 17.8 * piece_size);
342
glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
344
glTexCoord2f(0.0, 13.6 / 17.8 * piece_size);
345
glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
346
glTexCoord2f(0.0, 16.2 / 17.8 * piece_size);
347
glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
348
glTexCoord2f(0.0, 15.8 / 17.8 * piece_size);
349
glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
350
glTexCoord2f(0.0, 14.0 / 17.8 * piece_size);
351
glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
353
glNormal3f(-0.970801, -0.191698, -0.144213);
354
glTexCoord2f(0.0, 16.8 / 17.8 * piece_size);
355
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
356
glTexCoord2f(0.0, 14.8 / 17.8 * piece_size);
357
glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
358
glTexCoord2f(0.0, 14.0 / 17.8 * piece_size);
359
glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
360
glTexCoord2f(0.0, 15.8 / 17.8 * piece_size);
361
glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
363
glNormal3f(-0.975610, 0.219512, 0.0);
364
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
365
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
366
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
367
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
368
glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size);
369
glVertex3f(-1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size);
370
glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size);
371
glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
373
/* Left side of face */
374
glNormal3f(0.933878, 0.128964, -0.333528);
375
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
376
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
377
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
378
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
379
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
380
glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
381
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
382
glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
384
glNormal3f(0.966676, 0.150427, 0.207145);
385
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
386
glVertex3f(0.5 * piece_size, 16.8 * piece_size, 1.6 * piece_size);
387
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
388
glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
389
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
390
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
391
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
392
glVertex3f(0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
394
/* (above and below eye) */
395
glNormal3f(0.934057, 0.124541, -0.334704);
397
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
398
glVertex3f(0.82666667 * piece_size, 16.6 * piece_size, 0.2 * piece_size);
399
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
400
glVertex3f(1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size);
401
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
402
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
403
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
404
glVertex3f(0.8 * piece_size, 16.8 * piece_size, 0.2 * piece_size);
406
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
407
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
408
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
409
glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
410
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
411
glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
412
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
413
glVertex3f(0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size);
415
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
416
glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
417
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
418
glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
419
glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size);
420
glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
421
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
422
glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
424
glNormal3f(0.970801, -0.191698, -0.144213);
425
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
426
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
427
glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size);
428
glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
429
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
430
glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
431
glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size);
432
glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
434
glNormal3f(0.975610, -0.219512, 0.0);
435
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
436
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
437
glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size);
438
glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
439
glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size);
440
glVertex3f(1.0 * piece_size, 15.0 * piece_size, -4.4 * piece_size);
441
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
442
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
445
glNormal3f(0.598246, 0.797665, 0.076372);
446
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
447
glVertex3f(0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size);
448
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
449
glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
450
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
451
glVertex3f(0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size);
452
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
453
glVertex3f(0.61333334 * piece_size, 16.4 * piece_size, 0.2 * piece_size);
455
glNormal3f(0.670088, -0.714758, 0.200256);
456
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
457
glVertex3f(0.61333334 * piece_size, 16.4 * piece_size, 0.2 * piece_size);
458
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
459
glVertex3f(0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size);
460
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
461
glVertex3f(1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size);
462
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
463
glVertex3f(0.82666667 * piece_size, 16.6 * piece_size, 0.2 * piece_size);
465
glNormal3f(-0.598246, 0.797665, 0.076372);
466
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
467
glVertex3f(-0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size);
468
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
469
glVertex3f(-0.61333334 * piece_size, 16.4 * piece_size,
471
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
472
glVertex3f(-0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size);
473
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
474
glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
476
glNormal3f(-0.670088, -0.714758, 0.200256);
477
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
478
glVertex3f(-0.61333334 * piece_size, 16.4 * piece_size,
480
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
481
glVertex3f(-0.82666667 * piece_size, 16.6 * piece_size,
483
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
484
glVertex3f(-1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size);
485
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
486
glVertex3f(-0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size);
489
glNormal3f(0.0, 1.0, 0.0);
490
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
491
glVertex3f(0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size);
492
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
493
glVertex3f(0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size);
494
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
495
glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size);
496
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
497
glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size);
499
glNormal3f(1.0, 0.0, 0.0);
500
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
501
glVertex3f(0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size);
502
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
503
glVertex3f(0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size);
504
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
505
glVertex3f(0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
506
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
507
glVertex3f(0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size);
509
glNormal3f(-1.0, 0.0, 0.0);
510
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
511
glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size);
512
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
513
glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size);
514
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
515
glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
516
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
517
glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size);
519
glNormal3f(0.0, 0.0, 1.0);
520
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
521
glVertex3f(0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size);
522
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
523
glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -0.8 * piece_size);
524
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
525
glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size);
526
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
527
glVertex3f(0.35 * piece_size, 16.8 * piece_size, -0.8 * piece_size);
529
glNormal3f(0.0, 0.0, -1.0);
530
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
531
glVertex3f(0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size);
532
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
533
glVertex3f(0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
534
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
535
glVertex3f(-0.35 * piece_size, 16.8 * piece_size, -4.4 * piece_size);
536
glTexCoord2f(0.0f * piece_size, 17.8f / 17.8f * piece_size);
537
glVertex3f(-0.35 * piece_size, 17.8 * piece_size, -4.4 * piece_size);
540
glNormal3f(0.0, -0.853282, 0.521450);
541
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
542
glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
543
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
544
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
545
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
546
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
547
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
548
glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
550
glNormal3f(0.0, -0.983870, -0.178885);
551
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
552
glVertex3f(-1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
553
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
554
glVertex3f(1.0 * piece_size, 14.0 * piece_size, 1.3 * piece_size);
555
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
556
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
557
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
558
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
563
glNormal3f(-0.788443, 0.043237, -0.613587);
564
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
565
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
566
glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size);
567
glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
568
glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size);
569
glVertex3f(0.0, 15.0 * piece_size, -3.6 * piece_size);
570
glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size);
571
glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size);
574
glNormal3f(0.788443, 0.043237, -0.613587);
575
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
576
glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
577
glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size);
578
glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size);
579
glTexCoord2f(0.0f * piece_size, 15.0f / 17.8f * piece_size);
580
glVertex3f(0.0, 15.0 * piece_size, -3.6 * piece_size);
581
glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size);
582
glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
586
glNormal3f(0.0, 0.584305, 0.811534);
587
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
588
glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
589
glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size);
590
glVertex3f(-2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size);
591
glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size);
592
glVertex3f(2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size);
593
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
594
glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
597
glNormal3f(0.0, -0.422886, 0.906183);
598
glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size);
599
glVertex3f(-2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size);
600
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
601
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
602
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
603
glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
604
glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size);
605
glVertex3f(2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size);
608
glNormal3f(-0.969286, 0.231975, -0.081681);
609
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
610
glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
611
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
612
glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
613
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
614
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
615
glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size);
616
glVertex3f(-2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size);
618
glNormal3f(-0.982872, 0.184289, 0.0);
619
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
620
glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
621
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
622
glVertex3f(-1.1422222222 * piece_size, 12.2 * piece_size,
623
-2.2222222222 * piece_size);
624
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
625
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
626
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
627
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
629
glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size);
630
glVertex3f(-0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
631
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
632
glVertex3f(-1.1422222222 * piece_size, 12.2 * piece_size,
633
-2.2222222222 * piece_size);
634
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
635
glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
636
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
637
glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
640
glNormal3f(0.969286, 0.231975, -0.081681);
641
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
642
glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
643
glTexCoord2f(0.0f * piece_size, 8.8f / 17.8f * piece_size);
644
glVertex3f(2.0 * piece_size, 8.8 * piece_size, 4.0 * piece_size);
645
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
646
glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
647
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
648
glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
650
glNormal3f(0.982872, 0.184289, 0.0);
651
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
652
glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
653
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
654
glVertex3f(2.6 * piece_size, 5.8 * piece_size, 2.6 * piece_size);
655
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
656
glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
657
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
658
glVertex3f(1.1422222222 * piece_size, 12.2 * piece_size,
659
-2.2222222222 * piece_size);
661
glTexCoord2f(0.0f * piece_size, 14.8f / 17.8f * piece_size);
662
glVertex3f(0.55 * piece_size, 14.8 * piece_size, -2.8 * piece_size);
663
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
664
glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
665
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
666
glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
667
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
668
glVertex3f(1.1422222222 * piece_size, 12.2 * piece_size,
669
-2.2222222222 * piece_size);
673
glBegin(GL_TRIANGLES);
676
glNormal3f(0.819890, -0.220459, -0.528373);
677
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
678
glVertex3f(2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
679
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
680
glVertex3f(1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size);
681
glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size);
682
glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size);
684
glNormal3f(0.0, -0.573462, -0.819232);
685
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
686
glVertex3f(1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size);
687
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
688
glVertex3f(-1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size);
689
glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size);
690
glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size);
692
glNormal3f(-0.819890, -0.220459, -0.528373);
693
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
694
glVertex3f(-2.6 * piece_size, 5.8 * piece_size, -0.8 * piece_size);
695
glTexCoord2f(0.0f * piece_size, 7.8f / 17.8f * piece_size);
696
glVertex3f(0.0, 7.8 * piece_size, -4.0 * piece_size);
697
glTexCoord2f(0.0f * piece_size, 5.8f / 17.8f * piece_size);
698
glVertex3f(-1.44 * piece_size, 5.8 * piece_size, -2.6 * piece_size);
701
glNormal3f(0.0, 0.0, 1.0);
702
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
703
glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size);
704
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
705
glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
706
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
707
glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
710
glNormal3f(-0.752714, -0.273714, 0.598750);
711
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
712
glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size);
713
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
714
glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
715
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
716
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
718
glNormal3f(-0.957338, 0.031911, 0.287202);
719
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
720
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
721
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
722
glVertex3f(-0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
723
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
724
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
726
glNormal3f(-0.997785, 0.066519, 0.0);
727
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
728
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
729
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
730
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
731
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
732
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
735
glNormal3f(0.752714, -0.273714, 0.598750);
736
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
737
glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size);
738
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
739
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
740
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
741
glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
743
glNormal3f(0.957338, 0.031911, 0.287202);
744
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
745
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
746
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
747
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
748
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
749
glVertex3f(0.8 * piece_size, 16.2 * piece_size, 4.0 * piece_size);
751
glNormal3f(0.997785, 0.066519, 0.0);
752
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
753
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
754
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
755
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.0 * piece_size);
756
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
757
glVertex3f(1.0 * piece_size, 16.8 * piece_size, 3.4 * piece_size);
760
glNormal3f(0.0, -0.992278, 0.124035);
761
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
762
glVertex3f(0.0, 14.0 * piece_size, 4.0 * piece_size);
763
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
764
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
765
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
766
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 2.4 * piece_size);
769
glNormal3f(-0.854714, 0.484047, 0.187514);
770
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
771
glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
772
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
773
glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
774
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
775
glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
777
glNormal3f(-0.853747, 0.515805, -0.071146);
778
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
779
glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
780
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
781
glVertex3f(-1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
782
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
783
glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
785
glNormal3f(0.854714, 0.484047, 0.187514);
786
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
787
glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
788
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
789
glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
790
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
791
glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
793
glNormal3f(0.853747, 0.515805, -0.071146);
794
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
795
glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
796
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
797
glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
798
glTexCoord2f(0.0f * piece_size, 12.2f / 17.8f * piece_size);
799
glVertex3f(1.4 * piece_size, 12.2 * piece_size, -0.4 * piece_size);
802
glNormal3f(0.252982, -0.948683, -0.189737);
803
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
804
glVertex3f(0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
805
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
806
glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
807
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
808
glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
810
glNormal3f(0.257603, -0.966012, 0.021467);
811
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
812
glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
813
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
814
glVertex3f(0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
815
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
816
glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
818
glNormal3f(0.126745, -0.887214, 0.443607);
819
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
820
glVertex3f(0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
821
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
822
glVertex3f(1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
823
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
824
glVertex3f(1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
826
glNormal3f(-0.252982, -0.948683, -0.189737);
827
glTexCoord2f(0.0f * piece_size, 14.0f / 17.8f * piece_size);
828
glVertex3f(-0.6 * piece_size, 14.0 * piece_size, -1.4 * piece_size);
829
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
830
glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
831
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
832
glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
834
glNormal3f(-0.257603, -0.966012, 0.021467);
835
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
836
glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
837
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
838
glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
839
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
840
glVertex3f(-0.45 * piece_size, 13.8 * piece_size, -0.2 * piece_size);
842
glNormal3f(-0.126745, -0.887214, 0.443607);
843
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
844
glVertex3f(-0.5 * piece_size, 13.8 * piece_size, 0.4 * piece_size);
845
glTexCoord2f(0.0f * piece_size, 13.8f / 17.8f * piece_size);
846
glVertex3f(-1.2 * piece_size, 13.8 * piece_size, 0.2 * piece_size);
847
glTexCoord2f(0.0f * piece_size, 13.6f / 17.8f * piece_size);
848
glVertex3f(-1.2 * piece_size, 13.6 * piece_size, -0.2 * piece_size);
851
glNormal3f(0.0, 0.0, -1.0);
852
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
853
glVertex3f(0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size);
854
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
855
glVertex3f(0.61333334 * piece_size, 16.4 * piece_size, 0.2 * piece_size);
856
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
857
glVertex3f(0.82666667 * piece_size, 16.6 * piece_size, 0.2 * piece_size);
859
glNormal3f(0.000003, -0.668965, 0.743294);
860
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
861
glVertex3f(1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
862
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
863
glVertex3f(1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size);
864
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
865
glVertex3f(0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size);
867
glNormal3f(0.0, 0.0, -1.0);
868
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
869
glVertex3f(-0.88 * piece_size, 16.2 * piece_size, 0.2 * piece_size);
870
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
871
glVertex3f(-0.82666667 * piece_size, 16.6 * piece_size,
873
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
874
glVertex3f(-0.61333334 * piece_size, 16.4 * piece_size,
877
glNormal3f(-0.000003, -0.668965, 0.743294);
878
glTexCoord2f(0.0f * piece_size, 16.2f / 17.8f * piece_size);
879
glVertex3f(-1.0 * piece_size, 16.2 * piece_size, -0.74 * piece_size);
880
glTexCoord2f(0.0f * piece_size, 16.4f / 17.8f * piece_size);
881
glVertex3f(-0.8 * piece_size, 16.4 * piece_size, -0.56 * piece_size);
882
glTexCoord2f(0.0f * piece_size, 16.6f / 17.8f * piece_size);
883
glVertex3f(-1.0 * piece_size, 16.6 * piece_size, -0.38 * piece_size);
887
glNormal3f(-0.997484, 0.070735, 0.004796);
888
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
889
glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
890
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
891
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
892
glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size);
893
glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
895
glNormal3f(-0.744437, 0.446663, -0.496292);
896
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
897
glVertex3f(-1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
898
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
899
glVertex3f(-0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
900
glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size);
901
glVertex3f(-1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
904
glNormal3f(0.997484, 0.070735, 0.004796);
905
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
906
glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
907
glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size);
908
glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
909
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
910
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -2.0 * piece_size);
912
glNormal3f(0.744437, 0.446663, -0.496292);
913
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
914
glVertex3f(1.0 * piece_size, 16.8 * piece_size, -0.2 * piece_size);
915
glTexCoord2f(0.0f * piece_size, 15.8f / 17.8f * piece_size);
916
glVertex3f(1.0 * piece_size, 15.8 * piece_size, -1.1 * piece_size);
917
glTexCoord2f(0.0f * piece_size, 16.8f / 17.8f * piece_size);
918
glVertex3f(0.4 * piece_size, 16.8 * piece_size, -1.1 * piece_size);
923
void draw_bishop(void)
926
{ 4.0, 4.0, 2.5, 2.5, 1.5, 1.2, 2.5, 1.7, 1.7, 2.2, 2.2,
927
1.0, 0.8, 1.2, 0.8, 0.0, 0.0
930
{ 0.0, 2.0, 3.0, 4.0, 7.0, 9.4, 9.4, 11.0, 12.2, 13.2,
931
14.8, 16.0, 17.0, 17.7, 18.4, 18.4, 0.0
934
revolve_line(trace_r, trace_h, 0.0, ROT);
937
void draw_queen(void)
940
{ 4.8, 4.8, 3.4, 3.4, 1.8, 1.4, 2.9, 1.8, 1.8, 2.0, 2.7,
941
2.4, 1.7, 0.95, 0.7, 0.9, 0.7, 0.0, 0.0
944
{ 0.0, 2.2, 4.0, 5.0, 8.0, 11.8, 11.8, 13.6, 15.2, 17.8,
945
19.2, 20.0, 20.0, 20.8, 20.8, 21.4, 22.0, 22.0, 0.0
948
revolve_line(trace_r, trace_h, 0.0, ROT);
954
{ 5.0, 5.0, 3.5, 3.5, 2.0, 1.4, 3.0, 2.0, 2.0, 2.8, 1.6,
958
{ 0.0, 2.0, 3.0, 4.6, 7.6, 12.6, 12.6, 14.6, 15.6, 19.1,
959
19.7, 20.1, 20.1, 0.0
962
revolve_line(trace_r, trace_h, 0.0, ROT);
967
glNormal3f(0.0, 0.0, 1.0);
969
glVertex3f(-0.3 * piece_size, 20.1 * piece_size, 0.351 * piece_size);
970
glVertex3f(0.3 * piece_size, 20.1 * piece_size, 0.35 * piece_size);
971
glVertex3f(0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size);
972
glVertex3f(-0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size);
974
glVertex3f(-0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
975
glVertex3f(-0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
976
glVertex3f(-0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
977
glVertex3f(-0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
979
glVertex3f(0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
980
glVertex3f(0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
981
glVertex3f(0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
982
glVertex3f(0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
985
glNormal3f(0.0, 0.0, -1.0);
987
glVertex3f(0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size);
988
glVertex3f(-0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size);
989
glVertex3f(-0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size);
990
glVertex3f(0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size);
992
glVertex3f(-0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
993
glVertex3f(-0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
994
glVertex3f(-0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
995
glVertex3f(-0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
997
glVertex3f(0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
998
glVertex3f(0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
999
glVertex3f(0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1000
glVertex3f(0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
1003
glNormal3f(-1.0, 0.0, 0.0);
1005
glVertex3f(-0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
1006
glVertex3f(-0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
1007
glVertex3f(-0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1008
glVertex3f(-0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
1010
glVertex3f(-0.3 * piece_size, 20.1 * piece_size, 0.35 * piece_size);
1011
glVertex3f(-0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
1012
glVertex3f(-0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
1013
glVertex3f(-0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size);
1015
glVertex3f(-0.3 * piece_size, 22.1 * piece_size, 0.3 * piece_size);
1016
glVertex3f(-0.3 * piece_size, 23.1 * piece_size, 0.3 * piece_size);
1017
glVertex3f(-0.3 * piece_size, 23.1 * piece_size, -0.3 * piece_size);
1018
glVertex3f(-0.3 * piece_size, 22.1 * piece_size, -0.3 * piece_size);
1021
glNormal3f(1.0, 0.0, 0.0);
1023
glVertex3f(0.9 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
1024
glVertex3f(0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1025
glVertex3f(0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
1026
glVertex3f(0.9 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
1028
glVertex3f(0.3 * piece_size, 20.1 * piece_size, -0.35 * piece_size);
1029
glVertex3f(0.3 * piece_size, 21.1 * piece_size, -0.35 * piece_size);
1030
glVertex3f(0.3 * piece_size, 21.1 * piece_size, 0.35 * piece_size);
1031
glVertex3f(0.3 * piece_size, 20.1 * piece_size, 0.35 * piece_size);
1033
glVertex3f(0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1034
glVertex3f(0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size);
1035
glVertex3f(0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size);
1036
glVertex3f(0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
1039
glNormal3f(0.0, 1.0, 0.0);
1041
glVertex3f(-0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1042
glVertex3f(-0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
1043
glVertex3f(-0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
1044
glVertex3f(-0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1046
glVertex3f(0.3 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1047
glVertex3f(0.3 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
1048
glVertex3f(0.9 * piece_size, 22.1 * piece_size, 0.35 * piece_size);
1049
glVertex3f(0.9 * piece_size, 22.1 * piece_size, -0.35 * piece_size);
1051
glVertex3f(-0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size);
1052
glVertex3f(-0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size);
1053
glVertex3f(0.3 * piece_size, 23.1 * piece_size, 0.35 * piece_size);
1054
glVertex3f(0.3 * piece_size, 23.1 * piece_size, -0.35 * piece_size);