destroyable animated blocks

This commit is contained in:
Zack Buhman 2025-12-05 12:38:43 -06:00
parent 09ed16029c
commit 8913983ada
11 changed files with 321 additions and 701 deletions

Binary file not shown.

View File

@ -2,4 +2,9 @@
#include "math/float_types.hpp" #include "math/float_types.hpp"
bool aabb_circle_collision(vec3 aabb_position, vec3 circle_position); struct collision_data {
vec3 escape_position;
vec3 bounds_normal;
};
bool aabb_circle_collision(vec3 aabb_position, vec3 circle_position, vec3 bounds, struct collision_data * data);

View File

@ -77,53 +77,55 @@ const int block_Cube_triangles[] = {
219, 220, 221, 219, 220, 221,
222, 223, 224, 222, 223, 224,
225, 226, 227, 225, 226, 227,
228, 229, 230, 9, 228, 10,
231, 232, 233, 229, 230, 231,
234, 235, 236, 232, 233, 234,
237, 238, 239, 235, 236, 237,
240, 241, 242, 238, 239, 240,
243, 244, 245, 241, 242, 243,
246, 247, 248, 244, 245, 246,
249, 250, 251, 247, 248, 249,
252, 253, 254, 250, 251, 252,
255, 256, 257, 253, 254, 255,
258, 259, 260, 256, 257, 258,
261, 262, 263, 259, 260, 261,
264, 265, 266, 262, 263, 264,
267, 268, 269, 265, 266, 267,
270, 271, 272, 268, 269, 270,
273, 274, 275, 271, 272, 273,
276, 277, 278, 274, 275, 276,
279, 280, 281, 277, 278, 279,
282, 283, 284, 280, 281, 282,
285, 286, 287, 283, 284, 285,
288, 289, 290, 286, 287, 288,
291, 292, 293, 289, 290, 291,
294, 295, 296, 292, 293, 294,
297, 298, 299, 295, 296, 297,
300, 301, 302, 298, 299, 300,
303, 304, 305, 96, 301, 97,
306, 307, 308, 99, 302, 100,
309, 310, 311, 102, 303, 103,
312, 313, 314, 105, 304, 106,
315, 316, 317, 108, 305, 109,
2, 318, 319, 111, 306, 112,
319, 320, 321, 114, 307, 115,
321, 322, 323, 117, 308, 118,
323, 324, 0, 120, 309, 121,
0, 325, 326, 123, 310, 124,
326, 327, 1, 126, 311, 127,
1, 328, 329, 129, 312, 130,
329, 330, 2, 313, 314, 315,
2, 319, 321, 316, 317, 318,
321, 323, 0, 138, 319, 139,
0, 326, 1, 320, 321, 322,
1, 329, 2, 323, 324, 325,
2, 321, 0, 326, 327, 328,
331, 332, 333, 329, 330, 331,
153, 332, 154,
156, 333, 157,
334, 335, 336, 334, 335, 336,
337, 338, 339, 162, 337, 163,
12, 340, 13, 338, 339, 340,
341, 342, 343, 341, 342, 343,
344, 345, 346, 344, 345, 346,
347, 348, 349, 347, 348, 349,
@ -136,99 +138,16 @@ const int block_Cube_triangles[] = {
368, 369, 370, 368, 369, 370,
371, 372, 373, 371, 372, 373,
374, 375, 376, 374, 375, 376,
377, 378, 379, 204, 377, 205,
380, 381, 382, 207, 378, 208,
383, 384, 385, 210, 379, 211,
386, 387, 388, 213, 380, 214,
389, 390, 391, 381, 382, 383,
392, 393, 394,
395, 396, 397,
398, 399, 400,
401, 402, 403,
404, 405, 406,
407, 408, 409,
410, 411, 412,
99, 413, 100,
102, 414, 103,
105, 415, 106,
108, 416, 109,
111, 417, 112,
114, 418, 115,
117, 419, 118,
120, 420, 121,
123, 421, 124,
126, 422, 127,
129, 423, 130,
132, 424, 133,
425, 426, 427,
428, 429, 430,
141, 431, 142,
432, 433, 434,
435, 436, 437,
438, 439, 440,
441, 442, 443,
156, 444, 157,
159, 445, 160,
446, 447, 448,
165, 449, 166,
450, 451, 452,
453, 454, 455,
456, 457, 458,
459, 460, 461,
462, 463, 464,
465, 466, 467,
468, 469, 470,
471, 472, 473,
474, 475, 476,
477, 478, 479,
480, 481, 482,
483, 484, 485,
486, 487, 488,
489, 490, 491,
492, 493, 494,
495, 496, 497,
498, 499, 500,
501, 502, 503,
504, 505, 506,
507, 508, 509,
510, 511, 512,
513, 514, 515,
516, 517, 518,
519, 520, 521,
522, 523, 524,
525, 526, 527,
528, 529, 530,
531, 532, 533,
534, 535, 536,
537, 538, 539,
540, 541, 542,
543, 544, 545,
546, 547, 548,
549, 550, 551,
552, 553, 554,
555, 556, 557,
558, 559, 560,
279, 561, 280,
282, 562, 283,
285, 563, 286,
288, 564, 289,
291, 565, 292,
294, 566, 295,
297, 567, 298,
300, 568, 301,
303, 569, 304,
306, 570, 307,
309, 571, 310,
312, 572, 313,
573, 574, 575,
}; };
const int block_Cube_triangles_length = (sizeof (block_Cube_triangles)) / (sizeof (block_Cube_triangles[0])); const int block_Cube_triangles_length = (sizeof (block_Cube_triangles)) / (sizeof (block_Cube_triangles[0]));
const float block_vertices[] = { const float block_vertices[] = {
-1.775316f, 0.000000f, -0.857357f, 0.044995f, 0.962648f, -0.0000f, -1.0000f, -0.0000f,
1.804443f, 0.000000f, -0.828995f, 0.962429f, 0.947171f, -0.0000f, -1.0000f, -0.0000f,
1.775316f, 0.000000f, 0.857357f, 0.955005f, 0.037352f, -0.0000f, -1.0000f, -0.0000f,
1.418335f, 0.454219f, -0.412896f, 1.000000f, 0.967273f, 0.5143f, 0.8250f, -0.2343f, 1.418335f, 0.454219f, -0.412896f, 1.000000f, 0.967273f, 0.5143f, 0.8250f, -0.2343f,
1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.5143f, 0.8250f, -0.2343f, 1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.5143f, 0.8250f, -0.2343f,
1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.5143f, 0.8250f, -0.2343f, 1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.5143f, 0.8250f, -0.2343f,
@ -397,166 +316,57 @@ const float block_vertices[] = {
1.357419f, 0.458580f, -0.441779f, 0.977775f, 1.000000f, 0.2883f, 0.8265f, -0.4835f, 1.357419f, 0.458580f, -0.441779f, 0.977775f, 1.000000f, 0.2883f, 0.8265f, -0.4835f,
1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.2883f, 0.8265f, -0.4835f, 1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.2883f, 0.8265f, -0.4835f,
1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.2883f, 0.8265f, -0.4835f, 1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.2883f, 0.8265f, -0.4835f,
-1.804443f, 0.000000f, 0.828995f, 0.037571f, 0.052829f, -0.1034f, -0.9937f, 0.0439f,
-1.856144f, 0.006740f, 0.859850f, 0.023691f, 0.035704f, -0.1034f, -0.9937f, 0.0439f,
-1.871401f, 0.006820f, 0.825706f, 0.020471f, 0.054779f, -0.1034f, -0.9937f, 0.0439f,
-1.871401f, 0.006820f, 0.825706f, 0.020471f, 0.054779f, -0.5581f, -0.7940f, 0.2410f,
-1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.5581f, -0.7940f, 0.2410f,
-1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.5581f, -0.7940f, 0.2410f,
-1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.7426f, 0.5825f, 0.3305f, -1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.7426f, 0.5825f, 0.3305f,
-1.876107f, 0.050306f, 0.830395f, 0.001565f, 0.024543f, -0.7426f, 0.5825f, 0.3305f, -1.876107f, 0.050306f, 0.830395f, 0.001565f, 0.024543f, -0.7426f, 0.5825f, 0.3305f,
-1.896293f, 0.050904f, 0.783980f, 0.000000f, 0.052414f, -0.7426f, 0.5825f, 0.3305f, -1.896293f, 0.050904f, 0.783980f, 0.000000f, 0.052414f, -0.7426f, 0.5825f, 0.3305f,
-1.794445f, -0.000000f, 0.851240f, 0.040011f, 0.040618f, -0.0877f, -0.9858f, 0.1431f,
-1.824526f, 0.006678f, 0.878805f, 0.032047f, 0.025150f, -0.0877f, -0.9858f, 0.1431f,
-1.856144f, 0.006740f, 0.859850f, 0.023691f, 0.035704f, -0.0877f, -0.9858f, 0.1431f,
-1.856144f, 0.006740f, 0.859850f, 0.023691f, 0.035704f, -0.4662f, -0.4384f, 0.7684f,
-1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.4662f, -0.4384f, 0.7684f,
-1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.4662f, -0.4384f, 0.7684f,
-1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.3741f, 0.6876f, 0.6223f, -1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.3741f, 0.6876f, 0.6223f,
-1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.3741f, 0.6876f, 0.6223f, -1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.3741f, 0.6876f, 0.6223f,
-1.876107f, 0.050306f, 0.830395f, 0.001565f, 0.024543f, -0.3741f, 0.6876f, 0.6223f, -1.876107f, 0.050306f, 0.830395f, 0.001565f, 0.024543f, -0.3741f, 0.6876f, 0.6223f,
-1.787430f, -0.000000f, 0.855422f, 0.041831f, 0.038350f, -0.0359f, -0.9745f, 0.2214f,
-1.780008f, 0.006663f, 0.885957f, 0.043890f, 0.021812f, -0.0359f, -0.9745f, 0.2214f,
-1.824526f, 0.006678f, 0.878805f, 0.032047f, 0.025150f, -0.0359f, -0.9745f, 0.2214f,
-1.780008f, 0.006663f, 0.885957f, 0.043890f, 0.021812f, -0.1527f, -0.2728f, 0.9499f,
-1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.1527f, -0.2728f, 0.9499f,
-1.824526f, 0.006678f, 0.878805f, 0.032047f, 0.025150f, -0.1527f, -0.2728f, 0.9499f,
-1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.1241f, 0.6263f, 0.7697f, -1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.1241f, 0.6263f, 0.7697f,
-1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.1241f, 0.6263f, 0.7697f, -1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.1241f, 0.6263f, 0.7697f,
-1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.1241f, 0.6263f, 0.7697f, -1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.1241f, 0.6263f, 0.7697f,
1.787430f, 0.000000f, 0.855422f, 0.958169f, 0.038350f, 0.0353f, -0.9746f, 0.2213f,
1.780008f, 0.006663f, 0.885957f, 0.956110f, 0.021812f, 0.0353f, -0.9746f, 0.2213f,
1.775316f, 0.000000f, 0.857357f, 0.955005f, 0.037352f, 0.0353f, -0.9746f, 0.2213f,
1.780008f, 0.006663f, 0.885957f, 0.956110f, 0.021812f, 0.1539f, -0.2766f, 0.9486f,
1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.1539f, -0.2766f, 0.9486f,
1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, 0.1539f, -0.2766f, 0.9486f,
1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, 0.1252f, 0.6250f, 0.7705f, 1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, 0.1252f, 0.6250f, 0.7705f,
1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.1252f, 0.6250f, 0.7705f, 1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.1252f, 0.6250f, 0.7705f,
1.743604f, 0.049732f, 0.877005f, 0.959534f, 0.000000f, 0.1252f, 0.6250f, 0.7705f, 1.743604f, 0.049732f, 0.877005f, 0.959534f, 0.000000f, 0.1252f, 0.6250f, 0.7705f,
1.794445f, 0.000000f, 0.851240f, 0.959989f, 0.040618f, 0.0863f, -0.9857f, 0.1447f,
1.824526f, 0.006678f, 0.878805f, 0.967953f, 0.025150f, 0.0863f, -0.9857f, 0.1447f,
1.787430f, 0.000000f, 0.855422f, 0.958169f, 0.038350f, 0.0863f, -0.9857f, 0.1447f,
1.856144f, 0.006740f, 0.859850f, 0.976309f, 0.035704f, 0.4615f, -0.4435f, 0.7684f,
1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.4615f, -0.4435f, 0.7684f,
1.824526f, 0.006678f, 0.878805f, 0.967953f, 0.025150f, 0.4615f, -0.4435f, 0.7684f,
1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.3739f, 0.6861f, 0.6241f, 1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.3739f, 0.6861f, 0.6241f,
1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.3739f, 0.6861f, 0.6241f, 1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.3739f, 0.6861f, 0.6241f,
1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.3739f, 0.6861f, 0.6241f, 1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.3739f, 0.6861f, 0.6241f,
1.804443f, -0.000000f, 0.828995f, 0.962429f, 0.052829f, 0.1021f, -0.9937f, 0.0459f,
1.856144f, 0.006740f, 0.859850f, 0.976309f, 0.035704f, 0.1021f, -0.9937f, 0.0459f,
1.794445f, 0.000000f, 0.851240f, 0.959989f, 0.040618f, 0.1021f, -0.9937f, 0.0459f,
1.871401f, 0.006820f, 0.825706f, 0.979529f, 0.054779f, 0.5531f, -0.7962f, 0.2453f,
1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.5531f, -0.7962f, 0.2453f,
1.856144f, 0.006740f, 0.859850f, 0.976309f, 0.035704f, 0.5531f, -0.7962f, 0.2453f,
1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.7428f, 0.5813f, 0.3321f, 1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.7428f, 0.5813f, 0.3321f,
1.876107f, 0.050306f, 0.830395f, 0.998435f, 0.024543f, 0.7428f, 0.5813f, 0.3321f, 1.876107f, 0.050306f, 0.830395f, 0.998435f, 0.024543f, 0.7428f, 0.5813f, 0.3321f,
1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.7428f, 0.5813f, 0.3321f, 1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.7428f, 0.5813f, 0.3321f,
-1.787430f, 0.000000f, -0.855422f, 0.041831f, 0.961650f, -0.0353f, -0.9746f, -0.2213f,
-1.780008f, 0.006663f, -0.885957f, 0.043890f, 0.978188f, -0.0353f, -0.9746f, -0.2213f,
-1.775316f, 0.000000f, -0.857357f, 0.044995f, 0.962648f, -0.0353f, -0.9746f, -0.2213f,
-1.780008f, 0.006663f, -0.885957f, 0.043890f, 0.978188f, -0.1539f, -0.2766f, -0.9486f,
-1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.1539f, -0.2766f, -0.9486f,
-1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.1539f, -0.2766f, -0.9486f,
-1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.1252f, 0.6250f, -0.7705f, -1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.1252f, 0.6250f, -0.7705f,
-1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.1252f, 0.6250f, -0.7705f, -1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.1252f, 0.6250f, -0.7705f,
-1.743604f, 0.049732f, -0.877005f, 0.040466f, 1.000000f, -0.1252f, 0.6250f, -0.7705f, -1.743604f, 0.049732f, -0.877005f, 0.040466f, 1.000000f, -0.1252f, 0.6250f, -0.7705f,
-1.794445f, 0.000000f, -0.851240f, 0.040011f, 0.959383f, -0.0863f, -0.9857f, -0.1447f,
-1.824526f, 0.006678f, -0.878805f, 0.032047f, 0.974849f, -0.0863f, -0.9857f, -0.1447f,
-1.787430f, 0.000000f, -0.855422f, 0.041831f, 0.961650f, -0.0863f, -0.9857f, -0.1447f,
-1.856144f, 0.006740f, -0.859850f, 0.023691f, 0.964296f, -0.4615f, -0.4435f, -0.7684f,
-1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.4615f, -0.4435f, -0.7684f,
-1.824526f, 0.006678f, -0.878805f, 0.032047f, 0.974849f, -0.4615f, -0.4435f, -0.7684f,
-1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.3739f, 0.6861f, -0.6241f, -1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.3739f, 0.6861f, -0.6241f,
-1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.3739f, 0.6861f, -0.6241f, -1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.3739f, 0.6861f, -0.6241f,
-1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.3739f, 0.6861f, -0.6241f, -1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.3739f, 0.6861f, -0.6241f,
-1.804443f, -0.000000f, -0.828995f, 0.037571f, 0.947172f, -0.1021f, -0.9937f, -0.0459f,
-1.856144f, 0.006740f, -0.859850f, 0.023691f, 0.964296f, -0.1021f, -0.9937f, -0.0459f,
-1.794445f, 0.000000f, -0.851240f, 0.040011f, 0.959383f, -0.1021f, -0.9937f, -0.0459f,
-1.871401f, 0.006820f, -0.825706f, 0.020471f, 0.945221f, -0.5531f, -0.7962f, -0.2453f,
-1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.5531f, -0.7962f, -0.2453f,
-1.856144f, 0.006740f, -0.859850f, 0.023691f, 0.964296f, -0.5531f, -0.7962f, -0.2453f,
-1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.7428f, 0.5813f, -0.3321f, -1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.7428f, 0.5813f, -0.3321f,
-1.876107f, 0.050306f, -0.830395f, 0.001565f, 0.975457f, -0.7428f, 0.5813f, -0.3321f, -1.876107f, 0.050306f, -0.830395f, 0.001565f, 0.975457f, -0.7428f, 0.5813f, -0.3321f,
-1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.7428f, 0.5813f, -0.3321f, -1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.7428f, 0.5813f, -0.3321f,
1.787430f, -0.000000f, -0.855422f, 0.958169f, 0.961650f, 0.0359f, -0.9745f, -0.2214f,
1.780008f, 0.006663f, -0.885957f, 0.956110f, 0.978188f, 0.0359f, -0.9745f, -0.2214f,
1.824526f, 0.006678f, -0.878805f, 0.967953f, 0.974850f, 0.0359f, -0.9745f, -0.2214f,
1.780008f, 0.006663f, -0.885957f, 0.956110f, 0.978188f, 0.1527f, -0.2728f, -0.9499f,
1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.1527f, -0.2728f, -0.9499f,
1.824526f, 0.006678f, -0.878805f, 0.967953f, 0.974850f, 0.1527f, -0.2728f, -0.9499f,
1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, 0.1241f, 0.6263f, -0.7697f, 1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, 0.1241f, 0.6263f, -0.7697f,
1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.1241f, 0.6263f, -0.7697f, 1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.1241f, 0.6263f, -0.7697f,
1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.1241f, 0.6263f, -0.7697f, 1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.1241f, 0.6263f, -0.7697f,
1.794445f, -0.000000f, -0.851240f, 0.959989f, 0.959382f, 0.0877f, -0.9858f, -0.1431f,
1.824526f, 0.006678f, -0.878805f, 0.967953f, 0.974850f, 0.0877f, -0.9858f, -0.1431f,
1.856144f, 0.006740f, -0.859850f, 0.976309f, 0.964296f, 0.0877f, -0.9858f, -0.1431f,
1.856144f, 0.006740f, -0.859850f, 0.976309f, 0.964296f, 0.4662f, -0.4384f, -0.7684f,
1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.4662f, -0.4384f, -0.7684f,
1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.4662f, -0.4384f, -0.7684f,
1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.3741f, 0.6876f, -0.6223f, 1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.3741f, 0.6876f, -0.6223f,
1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.3741f, 0.6876f, -0.6223f, 1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.3741f, 0.6876f, -0.6223f,
1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.3741f, 0.6876f, -0.6223f, 1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.3741f, 0.6876f, -0.6223f,
1.804443f, 0.000000f, -0.828995f, 0.962429f, 0.947171f, 0.1034f, -0.9937f, -0.0439f,
1.856144f, 0.006740f, -0.859850f, 0.976309f, 0.964296f, 0.1034f, -0.9937f, -0.0439f,
1.871401f, 0.006820f, -0.825706f, 0.979529f, 0.945221f, 0.1034f, -0.9937f, -0.0439f,
1.871401f, 0.006820f, -0.825706f, 0.979529f, 0.945221f, 0.5581f, -0.7940f, -0.2410f,
1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.5581f, -0.7940f, -0.2410f,
1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.5581f, -0.7940f, -0.2410f,
1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.7426f, 0.5825f, -0.3305f, 1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.7426f, 0.5825f, -0.3305f,
1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.7426f, 0.5825f, -0.3305f, 1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.7426f, 0.5825f, -0.3305f,
1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.7426f, 0.5825f, -0.3305f, 1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.7426f, 0.5825f, -0.3305f,
1.804443f, 0.000000f, -0.828995f, 0.962429f, 0.947171f, 0.1013f, -0.9949f, -0.0000f,
1.871401f, 0.006820f, 0.825706f, 0.979529f, 0.054779f, 0.1013f, -0.9949f, -0.0000f,
1.804443f, -0.000000f, 0.828995f, 0.962429f, 0.052829f, 0.1013f, -0.9949f, -0.0000f,
1.871401f, 0.006820f, -0.825706f, 0.979529f, 0.945221f, 0.4847f, -0.8747f, -0.0000f,
1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.4847f, -0.8747f, -0.0000f,
1.871401f, 0.006820f, 0.825706f, 0.979529f, 0.054779f, 0.4847f, -0.8747f, -0.0000f,
1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.9459f, 0.3244f, -0.0000f, 1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.9459f, 0.3244f, -0.0000f,
1.896293f, 0.050904f, 0.783980f, 1.000000f, 0.052414f, 0.9459f, 0.3244f, -0.0000f, 1.896293f, 0.050904f, 0.783980f, 1.000000f, 0.052414f, 0.9459f, 0.3244f, -0.0000f,
1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.9459f, 0.3244f, -0.0000f, 1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.9459f, 0.3244f, -0.0000f,
-1.775316f, 0.000000f, -0.857357f, 0.044995f, 0.962648f, -0.0000f, -0.9739f, -0.2269f,
1.780008f, 0.006663f, -0.885957f, 0.956110f, 0.978188f, -0.0000f, -0.9739f, -0.2269f,
1.775316f, -0.000000f, -0.857357f, 0.955005f, 0.962648f, -0.0000f, -0.9739f, -0.2269f,
-1.780008f, 0.006663f, -0.885957f, 0.043890f, 0.978188f, -0.0000f, -0.3674f, -0.9300f,
1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, -0.0000f, -0.3674f, -0.9300f,
1.780008f, 0.006663f, -0.885957f, 0.956110f, 0.978188f, -0.0000f, -0.3674f, -0.9300f,
-1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.0000f, 0.5445f, -0.8387f, -1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.0000f, 0.5445f, -0.8387f,
1.743604f, 0.049732f, -0.877005f, 0.959534f, 1.000000f, -0.0000f, 0.5445f, -0.8387f, 1.743604f, 0.049732f, -0.877005f, 0.959534f, 1.000000f, -0.0000f, 0.5445f, -0.8387f,
1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, -0.0000f, 0.5445f, -0.8387f, 1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, -0.0000f, 0.5445f, -0.8387f,
-1.804443f, 0.000000f, 0.828995f, 0.037571f, 0.052829f, -0.1013f, -0.9949f, -0.0000f,
-1.871401f, 0.006820f, -0.825706f, 0.020471f, 0.945221f, -0.1013f, -0.9949f, -0.0000f,
-1.804443f, -0.000000f, -0.828995f, 0.037571f, 0.947172f, -0.1013f, -0.9949f, -0.0000f,
-1.871401f, 0.006820f, 0.825706f, 0.020471f, 0.054779f, -0.4847f, -0.8747f, -0.0000f,
-1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.4847f, -0.8747f, -0.0000f,
-1.871401f, 0.006820f, -0.825706f, 0.020471f, 0.945221f, -0.4847f, -0.8747f, -0.0000f,
-1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.9459f, 0.3244f, -0.0000f, -1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.9459f, 0.3244f, -0.0000f,
-1.896293f, 0.050904f, -0.783980f, 0.000000f, 0.947586f, -0.9459f, 0.3244f, -0.0000f, -1.896293f, 0.050904f, -0.783980f, 0.000000f, 0.947586f, -0.9459f, 0.3244f, -0.0000f,
-1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.9459f, 0.3244f, -0.0000f, -1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.9459f, 0.3244f, -0.0000f,
1.775316f, 0.000000f, 0.857357f, 0.955005f, 0.037352f, -0.0000f, -0.9739f, 0.2269f,
-1.780008f, 0.006663f, 0.885957f, 0.043890f, 0.021812f, -0.0000f, -0.9739f, 0.2269f,
-1.775316f, -0.000000f, 0.857357f, 0.044995f, 0.037352f, -0.0000f, -0.9739f, 0.2269f,
1.780008f, 0.006663f, 0.885957f, 0.956110f, 0.021812f, -0.0000f, -0.3674f, 0.9300f,
-1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.0000f, -0.3674f, 0.9300f,
-1.780008f, 0.006663f, 0.885957f, 0.043890f, 0.021812f, -0.0000f, -0.3674f, 0.9300f,
1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, -0.0000f, 0.5445f, 0.8387f, 1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, -0.0000f, 0.5445f, 0.8387f,
-1.743604f, 0.049732f, 0.877005f, 0.040466f, 0.000000f, -0.0000f, 0.5445f, 0.8387f, -1.743604f, 0.049732f, 0.877005f, 0.040466f, 0.000000f, -0.0000f, 0.5445f, 0.8387f,
-1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.0000f, 0.5445f, 0.8387f, -1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.0000f, 0.5445f, 0.8387f,
1.288476f, 0.452916f, -0.461143f, 0.951006f, 1.000000f, 0.1024f, 0.7678f, -0.6324f, 1.288476f, 0.452916f, -0.461143f, 0.951006f, 1.000000f, 0.1024f, 0.7678f, -0.6324f,
1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.1024f, 0.7678f, -0.6324f, 1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.1024f, 0.7678f, -0.6324f,
1.743604f, 0.049732f, -0.877005f, 0.959534f, 1.000000f, 0.1024f, 0.7678f, -0.6324f, 1.743604f, 0.049732f, -0.877005f, 0.959534f, 1.000000f, 0.1024f, 0.7678f, -0.6324f,
-1.775316f, -0.000000f, 0.857357f, 0.044995f, 0.037352f, -0.0000f, -1.0000f, -0.0000f,
-1.787430f, -0.000000f, 0.855422f, 0.041831f, 0.038350f, -0.0000f, -1.0000f, -0.0000f,
-1.794445f, -0.000000f, 0.851240f, 0.040011f, 0.040618f, -0.0000f, -1.0000f, -0.0000f,
-1.804443f, 0.000000f, 0.828995f, 0.037571f, 0.052829f, -0.0000f, -1.0000f, -0.0000f,
-1.804443f, -0.000000f, -0.828995f, 0.037571f, 0.947172f, -0.0000f, -1.0000f, -0.0000f,
-1.794445f, 0.000000f, -0.851240f, 0.040011f, 0.959383f, -0.0000f, -1.0000f, -0.0000f,
-1.787430f, 0.000000f, -0.855422f, 0.041831f, 0.961650f, -0.0000f, -1.0000f, -0.0000f,
1.775316f, -0.000000f, -0.857357f, 0.955005f, 0.962648f, -0.0000f, -1.0000f, -0.0000f,
1.787430f, -0.000000f, -0.855422f, 0.958169f, 0.961650f, -0.0000f, -1.0000f, -0.0000f,
1.794445f, -0.000000f, -0.851240f, 0.959989f, 0.959382f, -0.0000f, -1.0000f, -0.0000f,
1.804443f, -0.000000f, 0.828995f, 0.962429f, 0.052829f, -0.0000f, -1.0000f, -0.0000f,
1.794445f, 0.000000f, 0.851240f, 0.959989f, 0.040618f, -0.0000f, -1.0000f, -0.0000f,
1.787430f, 0.000000f, 0.855422f, 0.958169f, 0.038350f, -0.0000f, -1.0000f, -0.0000f,
1.418335f, 0.454219f, -0.412896f, 1.000000f, 0.967273f, 0.5015f, 0.8273f, -0.2532f, 1.418335f, 0.454219f, -0.412896f, 1.000000f, 0.967273f, 0.5015f, 0.8273f, -0.2532f,
1.456025f, 0.440923f, -0.381697f, 1.000000f, 0.924907f, 0.5015f, 0.8273f, -0.2532f, 1.456025f, 0.440923f, -0.381697f, 1.000000f, 0.924907f, 0.5015f, 0.8273f, -0.2532f,
1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.5015f, 0.8273f, -0.2532f, 1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.5015f, 0.8273f, -0.2532f,
@ -679,125 +489,45 @@ const float block_vertices[] = {
1.357419f, 0.458580f, -0.441779f, 0.977775f, 1.000000f, 0.2884f, 0.8265f, -0.4834f, 1.357419f, 0.458580f, -0.441779f, 0.977775f, 1.000000f, 0.2884f, 0.8265f, -0.4834f,
1.418335f, 0.454219f, -0.412896f, 1.000000f, 0.967273f, 0.2884f, 0.8265f, -0.4834f, 1.418335f, 0.454219f, -0.412896f, 1.000000f, 0.967273f, 0.2884f, 0.8265f, -0.4834f,
1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.2884f, 0.8265f, -0.4834f, 1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.2884f, 0.8265f, -0.4834f,
-1.804443f, 0.000000f, 0.828995f, 0.037571f, 0.052829f, -0.1021f, -0.9937f, 0.0459f,
-1.794445f, -0.000000f, 0.851240f, 0.040011f, 0.040618f, -0.1021f, -0.9937f, 0.0459f,
-1.856144f, 0.006740f, 0.859850f, 0.023691f, 0.035704f, -0.1021f, -0.9937f, 0.0459f,
-1.871401f, 0.006820f, 0.825706f, 0.020471f, 0.054779f, -0.5531f, -0.7962f, 0.2453f,
-1.856144f, 0.006740f, 0.859850f, 0.023691f, 0.035704f, -0.5531f, -0.7962f, 0.2453f,
-1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.5531f, -0.7962f, 0.2453f,
-1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.7428f, 0.5813f, 0.3321f, -1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.7428f, 0.5813f, 0.3321f,
-1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.7428f, 0.5813f, 0.3321f, -1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.7428f, 0.5813f, 0.3321f,
-1.876107f, 0.050306f, 0.830395f, 0.001565f, 0.024543f, -0.7428f, 0.5813f, 0.3321f, -1.876107f, 0.050306f, 0.830395f, 0.001565f, 0.024543f, -0.7428f, 0.5813f, 0.3321f,
-1.794445f, -0.000000f, 0.851240f, 0.040011f, 0.040618f, -0.0863f, -0.9857f, 0.1447f,
-1.787430f, -0.000000f, 0.855422f, 0.041831f, 0.038350f, -0.0863f, -0.9857f, 0.1447f,
-1.824526f, 0.006678f, 0.878805f, 0.032047f, 0.025150f, -0.0863f, -0.9857f, 0.1447f,
-1.856144f, 0.006740f, 0.859850f, 0.023691f, 0.035704f, -0.4615f, -0.4435f, 0.7684f,
-1.824526f, 0.006678f, 0.878805f, 0.032047f, 0.025150f, -0.4615f, -0.4435f, 0.7684f,
-1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.4615f, -0.4435f, 0.7684f,
-1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.3739f, 0.6861f, 0.6241f, -1.886035f, 0.025153f, 0.852220f, 0.002578f, 0.022467f, -0.3739f, 0.6861f, 0.6241f,
-1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.3739f, 0.6861f, 0.6241f, -1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.3739f, 0.6861f, 0.6241f,
-1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.3739f, 0.6861f, 0.6241f, -1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.3739f, 0.6861f, 0.6241f,
-1.787430f, -0.000000f, 0.855422f, 0.041831f, 0.038350f, -0.0353f, -0.9746f, 0.2212f,
-1.775316f, -0.000000f, 0.857357f, 0.044995f, 0.037352f, -0.0353f, -0.9746f, 0.2212f,
-1.780008f, 0.006663f, 0.885957f, 0.043890f, 0.021812f, -0.0353f, -0.9746f, 0.2212f,
-1.780008f, 0.006663f, 0.885957f, 0.043890f, 0.021812f, -0.1539f, -0.2766f, 0.9486f,
-1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.1539f, -0.2766f, 0.9486f,
-1.836557f, 0.024924f, 0.882110f, 0.019436f, 0.002175f, -0.1539f, -0.2766f, 0.9486f,
-1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.1252f, 0.6250f, 0.7705f, -1.768401f, 0.024866f, 0.893148f, 0.039098f, 0.000065f, -0.1252f, 0.6250f, 0.7705f,
-1.743604f, 0.049732f, 0.877005f, 0.040466f, 0.000000f, -0.1252f, 0.6250f, 0.7705f, -1.743604f, 0.049732f, 0.877005f, 0.040466f, 0.000000f, -0.1252f, 0.6250f, 0.7705f,
-1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.1252f, 0.6250f, 0.7705f, -1.820297f, 0.049848f, 0.864452f, 0.019196f, 0.001968f, -0.1252f, 0.6250f, 0.7705f,
1.787430f, 0.000000f, 0.855422f, 0.958169f, 0.038350f, 0.0359f, -0.9745f, 0.2214f,
1.824526f, 0.006678f, 0.878805f, 0.967953f, 0.025150f, 0.0359f, -0.9745f, 0.2214f,
1.780008f, 0.006663f, 0.885957f, 0.956110f, 0.021812f, 0.0359f, -0.9745f, 0.2214f,
1.780008f, 0.006663f, 0.885957f, 0.956110f, 0.021812f, 0.1527f, -0.2728f, 0.9499f,
1.824526f, 0.006678f, 0.878805f, 0.967953f, 0.025150f, 0.1527f, -0.2728f, 0.9499f,
1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.1527f, -0.2728f, 0.9499f,
1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, 0.1241f, 0.6263f, 0.7697f, 1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, 0.1241f, 0.6263f, 0.7697f,
1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.1241f, 0.6263f, 0.7697f, 1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.1241f, 0.6263f, 0.7697f,
1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.1241f, 0.6263f, 0.7697f, 1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.1241f, 0.6263f, 0.7697f,
1.794445f, 0.000000f, 0.851240f, 0.959989f, 0.040618f, 0.0877f, -0.9858f, 0.1431f,
1.856144f, 0.006740f, 0.859850f, 0.976309f, 0.035704f, 0.0877f, -0.9858f, 0.1431f,
1.824526f, 0.006678f, 0.878805f, 0.967953f, 0.025150f, 0.0877f, -0.9858f, 0.1431f,
1.856144f, 0.006740f, 0.859850f, 0.976309f, 0.035704f, 0.4662f, -0.4384f, 0.7684f,
1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.4662f, -0.4384f, 0.7684f,
1.836557f, 0.024924f, 0.882110f, 0.980564f, 0.002175f, 0.4662f, -0.4384f, 0.7684f,
1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.3741f, 0.6876f, 0.6223f, 1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.3741f, 0.6876f, 0.6223f,
1.876107f, 0.050306f, 0.830395f, 0.998435f, 0.024543f, 0.3741f, 0.6876f, 0.6223f, 1.876107f, 0.050306f, 0.830395f, 0.998435f, 0.024543f, 0.3741f, 0.6876f, 0.6223f,
1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.3741f, 0.6876f, 0.6223f, 1.820297f, 0.049848f, 0.864452f, 0.980804f, 0.001968f, 0.3741f, 0.6876f, 0.6223f,
1.804443f, -0.000000f, 0.828995f, 0.962429f, 0.052829f, 0.1034f, -0.9937f, 0.0439f,
1.871401f, 0.006820f, 0.825706f, 0.979529f, 0.054779f, 0.1034f, -0.9937f, 0.0439f,
1.856144f, 0.006740f, 0.859850f, 0.976309f, 0.035704f, 0.1034f, -0.9937f, 0.0439f,
1.871401f, 0.006820f, 0.825706f, 0.979529f, 0.054779f, 0.5581f, -0.7940f, 0.2410f,
1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.5581f, -0.7940f, 0.2410f,
1.886035f, 0.025153f, 0.852220f, 0.997422f, 0.022467f, 0.5581f, -0.7940f, 0.2410f,
1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.7426f, 0.5825f, 0.3305f, 1.905020f, 0.025452f, 0.809229f, 0.999915f, 0.048821f, 0.7426f, 0.5825f, 0.3305f,
1.896293f, 0.050904f, 0.783980f, 1.000000f, 0.052414f, 0.7426f, 0.5825f, 0.3305f, 1.896293f, 0.050904f, 0.783980f, 1.000000f, 0.052414f, 0.7426f, 0.5825f, 0.3305f,
1.876107f, 0.050306f, 0.830395f, 0.998435f, 0.024543f, 0.7426f, 0.5825f, 0.3305f, 1.876107f, 0.050306f, 0.830395f, 0.998435f, 0.024543f, 0.7426f, 0.5825f, 0.3305f,
-1.787430f, 0.000000f, -0.855422f, 0.041831f, 0.961650f, -0.0359f, -0.9745f, -0.2214f,
-1.824526f, 0.006678f, -0.878805f, 0.032047f, 0.974849f, -0.0359f, -0.9745f, -0.2214f,
-1.780008f, 0.006663f, -0.885957f, 0.043890f, 0.978188f, -0.0359f, -0.9745f, -0.2214f,
-1.780008f, 0.006663f, -0.885957f, 0.043890f, 0.978188f, -0.1527f, -0.2728f, -0.9499f,
-1.824526f, 0.006678f, -0.878805f, 0.032047f, 0.974849f, -0.1527f, -0.2728f, -0.9499f,
-1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.1527f, -0.2728f, -0.9499f,
-1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.1241f, 0.6263f, -0.7697f, -1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.1241f, 0.6263f, -0.7697f,
-1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.1241f, 0.6263f, -0.7697f, -1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.1241f, 0.6263f, -0.7697f,
-1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.1241f, 0.6263f, -0.7697f, -1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.1241f, 0.6263f, -0.7697f,
-1.794445f, 0.000000f, -0.851240f, 0.040011f, 0.959383f, -0.0877f, -0.9858f, -0.1431f,
-1.856144f, 0.006740f, -0.859850f, 0.023691f, 0.964296f, -0.0877f, -0.9858f, -0.1431f,
-1.824526f, 0.006678f, -0.878805f, 0.032047f, 0.974849f, -0.0877f, -0.9858f, -0.1431f,
-1.856144f, 0.006740f, -0.859850f, 0.023691f, 0.964296f, -0.4662f, -0.4384f, -0.7684f,
-1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.4662f, -0.4384f, -0.7684f,
-1.836557f, 0.024924f, -0.882110f, 0.019436f, 0.997825f, -0.4662f, -0.4384f, -0.7684f,
-1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.3741f, 0.6876f, -0.6223f, -1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.3741f, 0.6876f, -0.6223f,
-1.876107f, 0.050306f, -0.830395f, 0.001565f, 0.975457f, -0.3741f, 0.6876f, -0.6223f, -1.876107f, 0.050306f, -0.830395f, 0.001565f, 0.975457f, -0.3741f, 0.6876f, -0.6223f,
-1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.3741f, 0.6876f, -0.6223f, -1.820297f, 0.049848f, -0.864452f, 0.019196f, 0.998032f, -0.3741f, 0.6876f, -0.6223f,
-1.804443f, -0.000000f, -0.828995f, 0.037571f, 0.947172f, -0.1034f, -0.9937f, -0.0439f,
-1.871401f, 0.006820f, -0.825706f, 0.020471f, 0.945221f, -0.1034f, -0.9937f, -0.0439f,
-1.856144f, 0.006740f, -0.859850f, 0.023691f, 0.964296f, -0.1034f, -0.9937f, -0.0439f,
-1.871401f, 0.006820f, -0.825706f, 0.020471f, 0.945221f, -0.5581f, -0.7940f, -0.2410f,
-1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.5581f, -0.7940f, -0.2410f,
-1.886035f, 0.025153f, -0.852220f, 0.002578f, 0.977533f, -0.5581f, -0.7940f, -0.2410f,
-1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.7426f, 0.5825f, -0.3305f, -1.905020f, 0.025452f, -0.809229f, 0.000085f, 0.951179f, -0.7426f, 0.5825f, -0.3305f,
-1.896293f, 0.050904f, -0.783980f, 0.000000f, 0.947586f, -0.7426f, 0.5825f, -0.3305f, -1.896293f, 0.050904f, -0.783980f, 0.000000f, 0.947586f, -0.7426f, 0.5825f, -0.3305f,
-1.876107f, 0.050306f, -0.830395f, 0.001565f, 0.975457f, -0.7426f, 0.5825f, -0.3305f, -1.876107f, 0.050306f, -0.830395f, 0.001565f, 0.975457f, -0.7426f, 0.5825f, -0.3305f,
1.787430f, -0.000000f, -0.855422f, 0.958169f, 0.961650f, 0.0353f, -0.9746f, -0.2212f,
1.775316f, -0.000000f, -0.857357f, 0.955005f, 0.962648f, 0.0353f, -0.9746f, -0.2212f,
1.780008f, 0.006663f, -0.885957f, 0.956110f, 0.978188f, 0.0353f, -0.9746f, -0.2212f,
1.780008f, 0.006663f, -0.885957f, 0.956110f, 0.978188f, 0.1539f, -0.2766f, -0.9486f,
1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, 0.1539f, -0.2766f, -0.9486f,
1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.1539f, -0.2766f, -0.9486f,
1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, 0.1252f, 0.6250f, -0.7705f, 1.768401f, 0.024866f, -0.893148f, 0.960902f, 0.999935f, 0.1252f, 0.6250f, -0.7705f,
1.743604f, 0.049732f, -0.877005f, 0.959534f, 1.000000f, 0.1252f, 0.6250f, -0.7705f, 1.743604f, 0.049732f, -0.877005f, 0.959534f, 1.000000f, 0.1252f, 0.6250f, -0.7705f,
1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.1252f, 0.6250f, -0.7705f, 1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.1252f, 0.6250f, -0.7705f,
1.794445f, -0.000000f, -0.851240f, 0.959989f, 0.959382f, 0.0863f, -0.9857f, -0.1447f,
1.787430f, -0.000000f, -0.855422f, 0.958169f, 0.961650f, 0.0863f, -0.9857f, -0.1447f,
1.824526f, 0.006678f, -0.878805f, 0.967953f, 0.974850f, 0.0863f, -0.9857f, -0.1447f,
1.856144f, 0.006740f, -0.859850f, 0.976309f, 0.964296f, 0.4615f, -0.4435f, -0.7684f,
1.824526f, 0.006678f, -0.878805f, 0.967953f, 0.974850f, 0.4615f, -0.4435f, -0.7684f,
1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.4615f, -0.4435f, -0.7684f,
1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.3739f, 0.6861f, -0.6241f, 1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.3739f, 0.6861f, -0.6241f,
1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.3739f, 0.6861f, -0.6241f, 1.836557f, 0.024924f, -0.882110f, 0.980564f, 0.997825f, 0.3739f, 0.6861f, -0.6241f,
1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.3739f, 0.6861f, -0.6241f, 1.820297f, 0.049848f, -0.864452f, 0.980804f, 0.998032f, 0.3739f, 0.6861f, -0.6241f,
1.804443f, 0.000000f, -0.828995f, 0.962429f, 0.947171f, 0.1021f, -0.9937f, -0.0459f,
1.794445f, -0.000000f, -0.851240f, 0.959989f, 0.959382f, 0.1021f, -0.9937f, -0.0459f,
1.856144f, 0.006740f, -0.859850f, 0.976309f, 0.964296f, 0.1021f, -0.9937f, -0.0459f,
1.871401f, 0.006820f, -0.825706f, 0.979529f, 0.945221f, 0.5531f, -0.7962f, -0.2453f,
1.856144f, 0.006740f, -0.859850f, 0.976309f, 0.964296f, 0.5531f, -0.7962f, -0.2453f,
1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.5531f, -0.7962f, -0.2453f,
1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.7428f, 0.5813f, -0.3321f, 1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.7428f, 0.5813f, -0.3321f,
1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.7428f, 0.5813f, -0.3321f, 1.886035f, 0.025153f, -0.852220f, 0.997422f, 0.977533f, 0.7428f, 0.5813f, -0.3321f,
1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.7428f, 0.5813f, -0.3321f, 1.876107f, 0.050306f, -0.830395f, 0.998435f, 0.975457f, 0.7428f, 0.5813f, -0.3321f,
1.871401f, 0.006820f, -0.825706f, 0.979529f, 0.945221f, 0.1013f, -0.9949f, -0.0000f,
1.905020f, 0.025452f, -0.809229f, 0.999915f, 0.951179f, 0.4847f, -0.8747f, -0.0000f,
1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.9459f, 0.3244f, -0.0000f, 1.896293f, 0.050904f, -0.783980f, 1.000000f, 0.947586f, 0.9459f, 0.3244f, -0.0000f,
-1.780008f, 0.006663f, -0.885957f, 0.043890f, 0.978188f, -0.0000f, -0.9739f, -0.2269f,
-1.768401f, 0.024866f, -0.893148f, 0.039098f, 0.999935f, -0.0000f, -0.3674f, -0.9300f,
-1.743604f, 0.049732f, -0.877005f, 0.040466f, 1.000000f, -0.0000f, 0.5445f, -0.8387f, -1.743604f, 0.049732f, -0.877005f, 0.040466f, 1.000000f, -0.0000f, 0.5445f, -0.8387f,
-1.871401f, 0.006820f, 0.825706f, 0.020471f, 0.054779f, -0.1013f, -0.9949f, -0.0000f,
-1.905020f, 0.025452f, 0.809229f, 0.000085f, 0.048821f, -0.4847f, -0.8747f, -0.0000f,
-1.896293f, 0.050904f, 0.783980f, 0.000000f, 0.052414f, -0.9459f, 0.3244f, -0.0000f, -1.896293f, 0.050904f, 0.783980f, 0.000000f, 0.052414f, -0.9459f, 0.3244f, -0.0000f,
1.780008f, 0.006663f, 0.885957f, 0.956110f, 0.021812f, -0.0000f, -0.9739f, 0.2269f,
1.768401f, 0.024866f, 0.893148f, 0.960902f, 0.000065f, -0.0000f, -0.3674f, 0.9300f,
1.743604f, 0.049732f, 0.877005f, 0.959534f, 0.000000f, -0.0000f, 0.5445f, 0.8387f, 1.743604f, 0.049732f, 0.877005f, 0.959534f, 0.000000f, -0.0000f, 0.5445f, 0.8387f,
1.288476f, 0.452916f, -0.461143f, 0.951006f, 1.000000f, 0.1120f, 0.7728f, -0.6247f, 1.288476f, 0.452916f, -0.461143f, 0.951006f, 1.000000f, 0.1120f, 0.7728f, -0.6247f,
1.357419f, 0.458580f, -0.441779f, 0.977775f, 1.000000f, 0.1120f, 0.7728f, -0.6247f, 1.357419f, 0.458580f, -0.441779f, 0.977775f, 1.000000f, 0.1120f, 0.7728f, -0.6247f,

View File

@ -50,71 +50,38 @@ v -1.329576 0.486997 0.389481
v -1.418335 0.454219 0.412896 v -1.418335 0.454219 0.412896
v -1.402199 0.469791 0.369685 v -1.402199 0.469791 0.369685
v -1.380222 0.474526 0.398518 v -1.380222 0.474526 0.398518
v 1.775316 -0.000000 -0.857357
v 1.743604 0.049732 -0.877005 v 1.743604 0.049732 -0.877005
v 1.780008 0.006663 -0.885957
v 1.768401 0.024866 -0.893148 v 1.768401 0.024866 -0.893148
v 1.804443 0.000000 -0.828995
v 1.896293 0.050904 -0.783980 v 1.896293 0.050904 -0.783980
v 1.871401 0.006820 -0.825706
v 1.905020 0.025452 -0.809229 v 1.905020 0.025452 -0.809229
v 1.787430 -0.000000 -0.855422
v 1.820297 0.049848 -0.864452 v 1.820297 0.049848 -0.864452
v 1.824526 0.006678 -0.878805
v 1.836557 0.024924 -0.882110 v 1.836557 0.024924 -0.882110
v 1.794445 -0.000000 -0.851240
v 1.876107 0.050306 -0.830395 v 1.876107 0.050306 -0.830395
v 1.856144 0.006740 -0.859850
v 1.886035 0.025153 -0.852220 v 1.886035 0.025153 -0.852220
v -1.804443 -0.000000 -0.828995
v -1.896293 0.050904 -0.783980 v -1.896293 0.050904 -0.783980
v -1.871401 0.006820 -0.825706
v -1.905020 0.025452 -0.809229 v -1.905020 0.025452 -0.809229
v -1.775316 0.000000 -0.857357
v -1.743604 0.049732 -0.877005 v -1.743604 0.049732 -0.877005
v -1.780008 0.006663 -0.885957
v -1.768401 0.024866 -0.893148 v -1.768401 0.024866 -0.893148
v -1.794445 0.000000 -0.851240
v -1.876107 0.050306 -0.830395 v -1.876107 0.050306 -0.830395
v -1.856144 0.006740 -0.859850
v -1.886035 0.025153 -0.852220 v -1.886035 0.025153 -0.852220
v -1.787430 0.000000 -0.855422
v -1.820297 0.049848 -0.864452 v -1.820297 0.049848 -0.864452
v -1.824526 0.006678 -0.878805
v -1.836557 0.024924 -0.882110 v -1.836557 0.024924 -0.882110
v 1.804443 -0.000000 0.828995
v 1.896293 0.050904 0.783980 v 1.896293 0.050904 0.783980
v 1.871401 0.006820 0.825706
v 1.905020 0.025452 0.809229 v 1.905020 0.025452 0.809229
v 1.775316 0.000000 0.857357
v 1.743604 0.049732 0.877005 v 1.743604 0.049732 0.877005
v 1.780008 0.006663 0.885957
v 1.768401 0.024866 0.893148 v 1.768401 0.024866 0.893148
v 1.794445 0.000000 0.851240
v 1.876107 0.050306 0.830395 v 1.876107 0.050306 0.830395
v 1.856144 0.006740 0.859850
v 1.886035 0.025153 0.852220 v 1.886035 0.025153 0.852220
v 1.787430 0.000000 0.855422
v 1.820297 0.049848 0.864452 v 1.820297 0.049848 0.864452
v 1.824526 0.006678 0.878805
v 1.836557 0.024924 0.882110 v 1.836557 0.024924 0.882110
v -1.775316 -0.000000 0.857357
v -1.743604 0.049732 0.877005 v -1.743604 0.049732 0.877005
v -1.780008 0.006663 0.885957
v -1.768401 0.024866 0.893148 v -1.768401 0.024866 0.893148
v -1.804443 0.000000 0.828995
v -1.896293 0.050904 0.783980 v -1.896293 0.050904 0.783980
v -1.871401 0.006820 0.825706
v -1.905020 0.025452 0.809229 v -1.905020 0.025452 0.809229
v -1.787430 -0.000000 0.855422
v -1.820297 0.049848 0.864452 v -1.820297 0.049848 0.864452
v -1.824526 0.006678 0.878805
v -1.836557 0.024924 0.882110 v -1.836557 0.024924 0.882110
v -1.794445 -0.000000 0.851240
v -1.876107 0.050306 0.830395 v -1.876107 0.050306 0.830395
v -1.856144 0.006740 0.859850
v -1.886035 0.025153 0.852220 v -1.886035 0.025153 0.852220
vn -0.0000 -1.0000 -0.0000
vn 0.5143 0.8250 -0.2343 vn 0.5143 0.8250 -0.2343
vn 0.2884 0.8265 0.4834 vn 0.2884 0.8265 0.4834
vn -0.1120 0.7728 -0.6247 vn -0.1120 0.7728 -0.6247
@ -171,53 +138,21 @@ vn -0.0000 0.7180 -0.6961
vn -0.5015 0.8273 -0.2532 vn -0.5015 0.8273 -0.2532
vn 0.6631 0.7485 -0.0000 vn 0.6631 0.7485 -0.0000
vn 0.2883 0.8265 -0.4835 vn 0.2883 0.8265 -0.4835
vn -0.1034 -0.9937 0.0439
vn -0.5581 -0.7940 0.2410
vn -0.7426 0.5825 0.3305 vn -0.7426 0.5825 0.3305
vn -0.0877 -0.9858 0.1431
vn -0.4662 -0.4384 0.7684
vn -0.3741 0.6876 0.6223 vn -0.3741 0.6876 0.6223
vn -0.0359 -0.9745 0.2214
vn -0.1527 -0.2728 0.9499
vn -0.1241 0.6263 0.7697 vn -0.1241 0.6263 0.7697
vn 0.0353 -0.9746 0.2213
vn 0.1539 -0.2766 0.9486
vn 0.1252 0.6250 0.7705 vn 0.1252 0.6250 0.7705
vn 0.0863 -0.9857 0.1447
vn 0.4615 -0.4435 0.7684
vn 0.3739 0.6861 0.6241 vn 0.3739 0.6861 0.6241
vn 0.1021 -0.9937 0.0459
vn 0.5531 -0.7962 0.2453
vn 0.7428 0.5813 0.3321 vn 0.7428 0.5813 0.3321
vn -0.0353 -0.9746 -0.2213
vn -0.1539 -0.2766 -0.9486
vn -0.1252 0.6250 -0.7705 vn -0.1252 0.6250 -0.7705
vn -0.0863 -0.9857 -0.1447
vn -0.4615 -0.4435 -0.7684
vn -0.3739 0.6861 -0.6241 vn -0.3739 0.6861 -0.6241
vn -0.1021 -0.9937 -0.0459
vn -0.5531 -0.7962 -0.2453
vn -0.7428 0.5813 -0.3321 vn -0.7428 0.5813 -0.3321
vn 0.0359 -0.9745 -0.2214
vn 0.1527 -0.2728 -0.9499
vn 0.1241 0.6263 -0.7697 vn 0.1241 0.6263 -0.7697
vn 0.0877 -0.9858 -0.1431
vn 0.4662 -0.4384 -0.7684
vn 0.3741 0.6876 -0.6223 vn 0.3741 0.6876 -0.6223
vn 0.1034 -0.9937 -0.0439
vn 0.5581 -0.7940 -0.2410
vn 0.7426 0.5825 -0.3305 vn 0.7426 0.5825 -0.3305
vn 0.1013 -0.9949 -0.0000
vn 0.4847 -0.8747 -0.0000
vn 0.9459 0.3244 -0.0000 vn 0.9459 0.3244 -0.0000
vn -0.0000 -0.9739 -0.2269
vn -0.0000 -0.3674 -0.9300
vn -0.0000 0.5445 -0.8387 vn -0.0000 0.5445 -0.8387
vn -0.1013 -0.9949 -0.0000
vn -0.4847 -0.8747 -0.0000
vn -0.9459 0.3244 -0.0000 vn -0.9459 0.3244 -0.0000
vn -0.0000 -0.9739 0.2269
vn -0.0000 -0.3674 0.9300
vn -0.0000 0.5445 0.8387 vn -0.0000 0.5445 0.8387
vn 0.1024 0.7678 -0.6324 vn 0.1024 0.7678 -0.6324
vn 0.5015 0.8273 -0.2532 vn 0.5015 0.8273 -0.2532
@ -255,46 +190,19 @@ vn -0.2883 0.8265 -0.4835
vn 0.5143 0.8250 0.2343 vn 0.5143 0.8250 0.2343
vn -0.5143 0.8250 -0.2343 vn -0.5143 0.8250 -0.2343
vn 0.2884 0.8265 -0.4834 vn 0.2884 0.8265 -0.4834
vn -0.1021 -0.9937 0.0459
vn -0.5531 -0.7962 0.2453
vn -0.7428 0.5813 0.3321 vn -0.7428 0.5813 0.3321
vn -0.0863 -0.9857 0.1447
vn -0.4615 -0.4435 0.7684
vn -0.3739 0.6861 0.6241 vn -0.3739 0.6861 0.6241
vn -0.0353 -0.9746 0.2212
vn -0.1539 -0.2766 0.9486
vn -0.1252 0.6250 0.7705 vn -0.1252 0.6250 0.7705
vn 0.0359 -0.9745 0.2214
vn 0.1527 -0.2728 0.9499
vn 0.1241 0.6263 0.7697 vn 0.1241 0.6263 0.7697
vn 0.0877 -0.9858 0.1431
vn 0.4662 -0.4384 0.7684
vn 0.3741 0.6876 0.6223 vn 0.3741 0.6876 0.6223
vn 0.1034 -0.9937 0.0439
vn 0.5581 -0.7940 0.2410
vn 0.7426 0.5825 0.3305 vn 0.7426 0.5825 0.3305
vn -0.0359 -0.9745 -0.2214
vn -0.1527 -0.2728 -0.9499
vn -0.1241 0.6263 -0.7697 vn -0.1241 0.6263 -0.7697
vn -0.0877 -0.9858 -0.1431
vn -0.4662 -0.4384 -0.7684
vn -0.3741 0.6876 -0.6223 vn -0.3741 0.6876 -0.6223
vn -0.1034 -0.9937 -0.0439
vn -0.5581 -0.7940 -0.2410
vn -0.7426 0.5825 -0.3305 vn -0.7426 0.5825 -0.3305
vn 0.0353 -0.9746 -0.2212
vn 0.1539 -0.2766 -0.9486
vn 0.1252 0.6250 -0.7705 vn 0.1252 0.6250 -0.7705
vn 0.0863 -0.9857 -0.1447
vn 0.4615 -0.4435 -0.7684
vn 0.3739 0.6861 -0.6241 vn 0.3739 0.6861 -0.6241
vn 0.1021 -0.9937 -0.0459
vn 0.5531 -0.7962 -0.2453
vn 0.7428 0.5813 -0.3321 vn 0.7428 0.5813 -0.3321
vn 0.1120 0.7728 -0.6247 vn 0.1120 0.7728 -0.6247
vt 0.044995 0.962648
vt 0.962429 0.947171
vt 0.955005 0.037352
vt 1.000000 0.967273 vt 1.000000 0.967273
vt 1.000000 0.947586 vt 1.000000 0.947586
vt 0.998435 0.975457 vt 0.998435 0.975457
@ -361,277 +269,170 @@ vt 0.000000 0.947586
vt 1.000000 0.947586 vt 1.000000 0.947586
vt 0.998435 0.975457 vt 0.998435 0.975457
vt 0.980804 0.998032 vt 0.980804 0.998032
vt 0.037571 0.052829
vt 0.023691 0.035704
vt 0.020471 0.054779
vt 0.002578 0.022467
vt 0.000085 0.048821 vt 0.000085 0.048821
vt 0.001565 0.024543 vt 0.001565 0.024543
vt 0.040011 0.040618 vt 0.002578 0.022467
vt 0.032047 0.025150
vt 0.019436 0.002175
vt 0.019196 0.001968 vt 0.019196 0.001968
vt 0.041831 0.038350
vt 0.043890 0.021812
vt 0.039098 0.000065 vt 0.039098 0.000065
vt 0.958169 0.038350 vt 0.019436 0.002175
vt 0.956110 0.021812
vt 0.980564 0.002175
vt 0.960902 0.000065 vt 0.960902 0.000065
vt 0.959989 0.040618
vt 0.967953 0.025150
vt 0.976309 0.035704
vt 0.997422 0.022467 vt 0.997422 0.022467
vt 0.980804 0.001968 vt 0.980804 0.001968
vt 0.962429 0.052829 vt 0.980564 0.002175
vt 0.979529 0.054779
vt 0.999915 0.048821 vt 0.999915 0.048821
vt 0.041831 0.961650
vt 0.043890 0.978188
vt 0.019436 0.997825
vt 0.039098 0.999935 vt 0.039098 0.999935
vt 0.040011 0.959383
vt 0.032047 0.974849
vt 0.023691 0.964296
vt 0.002578 0.977533 vt 0.002578 0.977533
vt 0.037571 0.947172 vt 0.019436 0.997825
vt 0.020471 0.945221
vt 0.000085 0.951179 vt 0.000085 0.951179
vt 0.001565 0.975457 vt 0.001565 0.975457
vt 0.958169 0.961650
vt 0.956110 0.978188
vt 0.967953 0.974850
vt 0.980564 0.997825
vt 0.960902 0.999935 vt 0.960902 0.999935
vt 0.980804 0.998032 vt 0.980804 0.998032
vt 0.959989 0.959382 vt 0.980564 0.997825
vt 0.976309 0.964296
vt 0.997422 0.977533 vt 0.997422 0.977533
vt 0.979529 0.945221
vt 0.999915 0.951179 vt 0.999915 0.951179
vt 1.000000 0.052414 vt 1.000000 0.052414
vt 0.955005 0.962648
vt 0.044995 0.037352
vt 0.959534 1.000000 vt 0.959534 1.000000
vt 0.040466 0.000000 vt 0.040466 0.000000
s 0 s 0
f 69/1/1 53/2/1 85/3/1 f 4/1/1 51/2/1 55/3/1
f 4/4/2 54/5/2 62/6/2 f 34/4/2 69/5/2 29/6/2
f 34/7/3 90/8/3 29/9/3 f 15/7/3 63/8/3 22/9/3
f 15/10/4 78/11/4 22/12/4 f 26/10/4 14/11/4 38/12/4
f 26/13/5 14/14/5 38/15/5 f 4/1/5 5/13/5 1/14/5
f 4/4/6 5/16/6 1/17/6 f 4/1/6 9/15/6 6/16/6
f 4/4/7 9/18/7 6/19/7 f 7/17/7 8/18/7 2/19/7
f 7/20/8 8/21/8 2/22/8 f 7/17/8 12/20/8 9/15/8
f 7/20/9 12/23/9 9/18/9 f 10/21/9 11/22/9 3/23/9
f 10/24/10 11/25/10 3/26/10 f 5/13/10 12/20/10 10/21/10
f 5/16/11 12/23/11 10/24/11 f 6/16/11 9/15/11 12/20/11
f 6/19/12 9/18/12 12/23/12 f 16/24/12 17/25/12 13/26/12
f 16/27/13 17/28/13 13/29/13 f 16/24/13 21/27/13 18/28/13
f 16/27/14 21/30/14 18/31/14 f 19/29/14 20/30/14 14/11/14
f 19/32/15 20/33/15 14/14/15 f 23/31/15 21/27/15 19/29/15
f 23/34/16 21/30/16 19/32/16 f 22/9/16 23/31/16 15/7/16
f 22/12/17 23/34/17 15/10/17 f 17/25/17 24/32/17 22/9/17
f 17/28/18 24/35/18 22/12/18 f 18/28/18 21/27/18 24/32/18
f 18/31/19 21/30/19 24/35/19 f 28/33/19 29/6/19 25/34/19
f 28/36/20 29/9/20 25/37/20 f 28/33/20 33/35/20 30/36/20
f 28/36/21 33/38/21 30/39/21 f 31/37/21 32/38/21 26/10/21
f 31/40/22 32/41/22 26/13/22 f 35/39/22 33/35/22 31/37/22
f 35/42/23 33/38/23 31/40/23 f 34/4/23 35/39/23 27/40/23
f 34/7/24 35/42/24 27/43/24 f 29/6/24 36/41/24 34/4/24
f 29/9/25 36/44/25 34/7/25 f 30/36/25 33/35/25 36/41/25
f 30/39/26 33/38/26 36/44/26 f 40/42/26 41/43/26 37/44/26
f 40/45/27 41/46/27 37/47/27 f 40/42/27 45/45/27 42/46/27
f 40/45/28 45/48/28 42/49/28 f 43/47/28 44/48/28 38/12/28
f 43/50/29 44/51/29 38/15/29 f 47/49/29 45/45/29 43/47/29
f 47/52/30 45/48/30 43/50/30 f 46/50/30 47/49/30 39/51/30
f 46/53/31 47/52/31 39/54/31 f 46/50/31 42/46/31 48/52/31
f 46/53/32 42/49/32 48/55/32 f 42/46/32 45/45/32 48/52/32
f 42/49/33 45/48/33 48/55/33 f 1/14/33 28/33/33 25/34/33
f 1/17/34 28/36/34 25/37/34 f 5/13/34 32/38/34 28/33/34
f 5/16/35 32/41/35 28/36/35 f 32/38/35 3/23/35 26/10/35
f 32/41/36 3/26/36 26/13/36 f 27/40/36 40/42/36 37/44/36
f 27/43/37 40/45/37 37/47/37 f 40/42/37 31/37/37 44/48/37
f 40/45/38 31/40/38 44/51/38 f 31/37/38 38/12/38 44/48/38
f 31/40/39 38/15/39 44/51/39 f 39/51/39 16/24/39 13/26/39
f 39/54/40 16/27/40 13/29/40 f 47/49/40 20/30/40 16/24/40
f 47/52/41 20/33/41 16/27/41 f 20/30/41 38/12/41 14/11/41
f 20/33/42 38/15/42 14/14/42 f 15/7/42 7/17/42 2/19/42
f 15/10/43 7/20/43 2/22/43 f 7/17/43 19/29/43 11/22/43
f 7/20/44 19/32/44 11/25/44 f 19/29/44 3/23/44 11/22/44
f 19/32/45 3/26/45 11/25/45 f 79/53/45 41/43/45 46/50/45
f 110/56/46 41/46/46 46/53/46 f 75/54/46 46/50/46 39/51/46
f 102/57/47 46/53/47 39/54/47 f 27/40/47 73/55/47 67/56/47
f 27/43/48 98/58/48 86/59/48 f 77/57/48 37/44/48 41/43/48
f 106/60/49 37/47/49 41/46/49 f 27/40/49 71/58/49 34/4/49
f 27/43/50 94/61/50 34/7/50 f 22/9/50 61/59/50 17/25/50
f 22/12/51 74/62/51 17/28/51 f 29/6/51 65/60/51 25/34/51
f 29/9/52 82/63/52 25/37/52 f 13/26/52 75/54/52 39/51/52
f 13/29/53 102/57/53 39/54/53 f 15/7/53 49/61/53 59/62/53
f 15/10/54 50/64/54 70/65/54 f 17/25/54 57/63/54 13/26/54
f 17/28/55 66/66/55 13/29/55 f 25/34/55 51/64/55 1/14/55
f 25/37/56 54/67/56 1/17/56 f 8/18/56 55/65/56 53/66/56
f 8/21/57 62/68/57 58/69/57 f 76/67/57 79/68/57 75/54/57
f 101/70/58 111/71/58 103/72/58 f 80/69/58 77/70/58 79/53/58
f 103/72/59 112/73/59 104/74/59 f 74/71/59 77/57/59 78/72/59
f 104/74/60 110/75/60 102/57/60 f 68/73/60 71/58/60 67/56/60
f 109/76/61 107/77/61 111/71/61 f 70/74/61 71/75/61 72/76/61
f 111/71/62 108/78/62 112/73/62 f 66/77/62 69/5/62 70/74/62
f 112/73/63 106/79/63 110/56/63 f 60/78/63 63/8/63 59/62/63
f 105/80/64 99/81/64 107/77/64 f 62/79/64 63/8/64 64/80/64
f 99/81/65 108/78/65 107/77/65 f 58/81/65 61/82/65 62/79/65
f 100/82/66 106/60/66 108/78/66 f 50/83/66 53/84/66 54/85/66
f 93/83/67 87/84/67 85/3/67 f 56/86/67 53/66/67 55/65/67
f 87/84/68 96/85/68 88/86/68 f 52/87/68 55/3/68 51/2/68
f 88/86/69 94/61/69 86/59/69 f 52/87/69 65/88/69 66/77/69
f 89/87/70 95/88/70 93/83/70 f 60/78/70 49/61/70 50/83/70
f 91/89/71 96/85/71 95/88/71 f 76/67/71 57/63/71 58/81/71
f 92/90/72 94/91/72 96/85/72 f 68/73/72 73/55/72 74/71/72
f 81/92/73 91/89/73 89/87/73 f 2/19/73 53/84/73 49/89/73
f 83/93/74 92/90/74 91/89/74 f 4/1/74 1/14/74 51/2/74
f 84/94/75 90/8/75 92/90/75 f 34/4/75 71/75/75 69/5/75
f 77/95/76 71/96/76 69/1/76 f 15/7/76 59/62/76 63/8/76
f 71/96/77 80/97/77 72/98/77 f 26/10/4 3/23/4 14/11/4
f 72/98/78 78/11/78 70/65/78 f 4/1/77 6/16/77 5/13/77
f 73/99/79 79/100/79 77/95/79 f 4/1/78 8/18/78 9/15/78
f 75/101/80 80/97/80 79/100/80 f 7/17/79 9/15/79 8/18/79
f 76/102/81 78/11/81 80/97/81 f 7/17/80 11/22/80 12/20/80
f 65/103/82 75/101/82 73/99/82 f 10/21/81 12/20/81 11/22/81
f 67/104/83 76/102/83 75/101/83 f 5/13/82 6/16/82 12/20/82
f 68/105/84 74/106/84 76/102/84 f 16/24/83 18/28/83 17/25/83
f 57/107/85 51/108/85 59/109/85 f 16/24/84 20/30/84 21/27/84
f 51/108/86 60/110/86 59/109/86 f 19/29/85 21/27/85 20/30/85
f 52/111/87 58/112/87 60/110/87 f 23/31/86 24/32/86 21/27/86
f 61/113/88 59/109/88 63/114/88 f 22/9/87 24/32/87 23/31/87
f 63/114/89 60/110/89 64/115/89 f 17/25/88 18/28/88 24/32/88
f 64/115/90 58/69/90 62/68/90 f 28/33/89 30/36/89 29/6/89
f 53/2/91 63/114/91 55/116/91 f 28/33/90 32/38/90 33/35/90
f 55/116/92 64/115/92 56/117/92 f 31/37/91 33/35/91 32/38/91
f 56/117/93 62/6/93 54/5/93 f 35/39/92 36/41/92 33/35/92
f 53/2/94 83/93/94 81/92/94 f 34/4/93 36/41/93 35/39/93
f 55/116/95 84/94/95 83/93/95 f 29/6/94 30/36/94 36/41/94
f 56/117/96 82/118/96 84/94/96 f 40/42/95 42/46/95 41/43/95
f 69/1/97 51/108/97 49/119/97 f 40/42/96 44/48/96 45/45/96
f 71/96/98 52/111/98 51/108/98 f 43/47/97 45/45/97 44/48/97
f 72/98/99 50/64/99 52/111/99 f 47/49/98 48/52/98 45/45/98
f 101/70/100 67/104/100 65/103/100 f 46/50/99 48/52/99 47/49/99
f 103/72/101 68/105/101 67/104/101 f 46/50/100 41/43/100 42/46/100
f 104/74/102 66/66/102 68/105/102 f 1/14/33 5/13/33 28/33/33
f 85/3/103 99/81/103 97/120/103 f 5/13/34 10/21/34 32/38/34
f 87/84/104 100/82/104 99/81/104 f 32/38/35 10/21/35 3/23/35
f 88/86/105 98/58/105 100/82/105 f 27/40/36 35/39/36 40/42/36
f 2/22/106 58/112/106 50/121/106 f 40/42/37 35/39/37 31/37/37
f 85/3/1 97/120/1 105/80/1 f 31/37/38 26/10/38 38/12/38
f 105/80/1 109/76/1 101/70/1 f 39/51/39 47/49/39 16/24/39
f 101/70/1 65/103/1 73/99/1 f 47/49/40 43/47/40 20/30/40
f 73/99/1 77/95/1 69/1/1 f 20/30/41 43/47/41 38/12/41
f 69/1/1 49/119/1 57/107/1 f 15/7/42 23/31/42 7/17/42
f 57/107/1 61/113/1 53/2/1 f 7/17/43 23/31/43 19/29/43
f 53/2/1 81/92/1 89/87/1 f 19/29/44 14/11/44 3/23/44
f 89/87/1 93/83/1 85/3/1 f 79/53/101 77/70/101 41/43/101
f 85/3/1 105/80/1 101/70/1 f 75/54/102 79/68/102 46/50/102
f 101/70/1 73/99/1 69/1/1 f 27/40/47 37/44/47 73/55/47
f 69/1/1 57/107/1 53/2/1 f 77/57/103 73/90/103 37/44/103
f 53/2/1 89/87/1 85/3/1 f 27/40/104 67/56/104 71/58/104
f 85/3/1 101/70/1 69/1/1 f 22/9/105 63/8/105 61/59/105
f 4/4/107 1/17/107 54/5/107 f 29/6/106 69/5/106 65/60/106
f 34/7/108 94/91/108 90/8/108 f 13/26/52 57/63/52 75/54/52
f 15/10/109 70/65/109 78/11/109 f 15/7/53 2/19/53 49/61/53
f 26/13/5 3/26/5 14/14/5 f 17/25/107 61/82/107 57/63/107
f 4/4/110 6/19/110 5/16/110 f 25/34/55 65/88/55 51/64/55
f 4/4/111 8/21/111 9/18/111 f 8/18/108 4/1/108 55/65/108
f 7/20/112 9/18/112 8/21/112 f 76/67/109 80/69/109 79/68/109
f 7/20/113 11/25/113 12/23/113 f 80/69/110 78/72/110 77/70/110
f 10/24/114 12/23/114 11/25/114 f 74/71/111 73/90/111 77/57/111
f 5/16/115 6/19/115 12/23/115 f 68/73/112 72/76/112 71/58/112
f 16/27/116 18/31/116 17/28/116 f 70/74/113 69/5/113 71/75/113
f 16/27/117 20/33/117 21/30/117 f 66/77/114 65/60/114 69/5/114
f 19/32/118 21/30/118 20/33/118 f 60/78/115 64/80/115 63/8/115
f 23/34/119 24/35/119 21/30/119 f 62/79/116 61/59/116 63/8/116
f 22/12/120 24/35/120 23/34/120 f 58/81/117 57/63/117 61/82/117
f 17/28/121 18/31/121 24/35/121 f 50/83/118 49/89/118 53/84/118
f 28/36/122 30/39/122 29/9/122 f 56/86/119 54/85/119 53/66/119
f 28/36/123 32/41/123 33/38/123 f 52/87/120 56/86/120 55/3/120
f 31/40/124 33/38/124 32/41/124 f 52/87/69 51/64/69 65/88/69
f 35/42/125 36/44/125 33/38/125 f 60/78/70 59/62/70 49/61/70
f 34/7/126 36/44/126 35/42/126 f 76/67/71 75/54/71 57/63/71
f 29/9/127 30/39/127 36/44/127 f 68/73/72 67/56/72 73/55/72
f 40/45/128 42/49/128 41/46/128 f 2/19/121 8/18/121 53/84/121
f 40/45/129 44/51/129 45/48/129
f 43/50/130 45/48/130 44/51/130
f 47/52/131 48/55/131 45/48/131
f 46/53/132 48/55/132 47/52/132
f 46/53/133 41/46/133 42/49/133
f 1/17/34 5/16/34 28/36/34
f 5/16/35 10/24/35 32/41/35
f 32/41/36 10/24/36 3/26/36
f 27/43/37 35/42/37 40/45/37
f 40/45/38 35/42/38 31/40/38
f 31/40/39 26/13/39 38/15/39
f 39/54/40 47/52/40 16/27/40
f 47/52/41 43/50/41 20/33/41
f 20/33/42 43/50/42 38/15/42
f 15/10/43 23/34/43 7/20/43
f 7/20/44 23/34/44 19/32/44
f 19/32/45 14/14/45 3/26/45
f 110/56/134 106/79/134 41/46/134
f 102/57/135 110/75/135 46/53/135
f 27/43/48 37/47/48 98/58/48
f 106/60/136 98/122/136 37/47/136
f 27/43/137 86/59/137 94/61/137
f 22/12/138 78/11/138 74/62/138
f 29/9/139 90/8/139 82/63/139
f 13/29/53 66/66/53 102/57/53
f 15/10/54 2/22/54 50/64/54
f 17/28/140 74/106/140 66/66/140
f 25/37/56 82/118/56 54/67/56
f 8/21/141 4/4/141 62/68/141
f 101/70/142 109/76/142 111/71/142
f 103/72/143 111/71/143 112/73/143
f 104/74/144 112/73/144 110/75/144
f 109/76/145 105/80/145 107/77/145
f 111/71/146 107/77/146 108/78/146
f 112/73/147 108/78/147 106/79/147
f 105/80/148 97/120/148 99/81/148
f 99/81/149 100/82/149 108/78/149
f 100/82/150 98/122/150 106/60/150
f 93/83/151 95/88/151 87/84/151
f 87/84/152 95/88/152 96/85/152
f 88/86/153 96/85/153 94/61/153
f 89/87/154 91/89/154 95/88/154
f 91/89/155 92/90/155 96/85/155
f 92/90/156 90/8/156 94/91/156
f 81/92/157 83/93/157 91/89/157
f 83/93/158 84/94/158 92/90/158
f 84/94/159 82/63/159 90/8/159
f 77/95/160 79/100/160 71/96/160
f 71/96/161 79/100/161 80/97/161
f 72/98/162 80/97/162 78/11/162
f 73/99/163 75/101/163 79/100/163
f 75/101/164 76/102/164 80/97/164
f 76/102/165 74/62/165 78/11/165
f 65/103/166 67/104/166 75/101/166
f 67/104/167 68/105/167 76/102/167
f 68/105/168 66/66/168 74/106/168
f 57/107/169 49/119/169 51/108/169
f 51/108/170 52/111/170 60/110/170
f 52/111/171 50/121/171 58/112/171
f 61/113/172 57/107/172 59/109/172
f 63/114/173 59/109/173 60/110/173
f 64/115/174 60/110/174 58/69/174
f 53/2/175 61/113/175 63/114/175
f 55/116/176 63/114/176 64/115/176
f 56/117/177 64/115/177 62/6/177
f 53/2/94 55/116/94 83/93/94
f 55/116/95 56/117/95 84/94/95
f 56/117/96 54/67/96 82/118/96
f 69/1/97 71/96/97 51/108/97
f 71/96/98 72/98/98 52/111/98
f 72/98/99 70/65/99 50/64/99
f 101/70/100 103/72/100 67/104/100
f 103/72/101 104/74/101 68/105/101
f 104/74/102 102/57/102 66/66/102
f 85/3/103 87/84/103 99/81/103
f 87/84/104 88/86/104 100/82/104
f 88/86/105 86/59/105 98/58/105
f 2/22/178 8/21/178 58/112/178

View File

@ -7,7 +7,7 @@ extern "C" {
#endif #endif
struct block_state { struct block_state {
float destroyed_time; double destroyed_time;
}; };
struct game_state { struct game_state {
@ -24,6 +24,7 @@ extern "C" {
float ball_dy; float ball_dy;
double start_time; double start_time;
double time;
double remaining; double remaining;
}; };

View File

@ -7,7 +7,7 @@ extern "C" {
#endif #endif
void reset_level(struct game_state * state); void reset_level(struct game_state * state);
void update(struct game_state * state); void update(struct game_state * state, double time);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -18,10 +18,43 @@ static inline vec3 clamp(vec3 v, vec3 min_v, vec3 max_v)
clamp(v.z, min_v.z, max_v.z)); clamp(v.z, min_v.z, max_v.z));
} }
bool aabb_circle_collision(vec3 aabb_position, vec3 circle_position) static inline float rcp(float f)
{ {
const vec3 bounds = vec3(2, 1, 0); if (f == 0.0f)
return 0.0f;
else
return 1.0f / f;
}
static inline vec3 rcp(vec3 v)
{
return vec3(rcp(v.x),
rcp(v.y),
rcp(v.z));
}
static inline vec3 bounds_normal(vec3 bounds, vec3 point, vec3 cdistance0)
{
vec3 normal_space = rcp(bounds);
vec3 n = normal_space * point;
if (fabsf(n.x) > fabsf(n.y))
return vec3(1 * fabsf(n.x) / n.x, 0, 0);
else if (fabsf(n.y) > fabsf(n.x))
return vec3(0, 1 * fabsf(n.y) / n.y, 0);
else {
if (fabsf(cdistance0.x) > fabsf(cdistance0.y))
return vec3(1 * -fabsf(cdistance0.x) / cdistance0.x, 0, 0);
else if (fabsf(cdistance0.y) > fabsf(cdistance0.x))
return vec3(0, 1 * -fabsf(cdistance0.y) / cdistance0.y, 0);
else
return normalize(vec3(1, 1, 0));
}
}
bool aabb_circle_collision(vec3 aabb_position, vec3 circle_position, vec3 bounds, struct collision_data * data)
{
vec3 distance = circle_position - aabb_position; vec3 distance = circle_position - aabb_position;
vec3 closest_point_pd = clamp(distance, -bounds, bounds); vec3 closest_point_pd = clamp(distance, -bounds, bounds);
vec3 closest_point_p = aabb_position + closest_point_pd; vec3 closest_point_p = aabb_position + closest_point_pd;
@ -30,5 +63,16 @@ bool aabb_circle_collision(vec3 aabb_position, vec3 circle_position)
if (!collided) if (!collided)
return collided; return collided;
vec3 cdistance0 = closest_point_p - circle_position;
vec3 cdistance = normalize(cdistance0);
vec3 closest_point_c = circle_position + cdistance;
vec3 penetration_dir = closest_point_p - closest_point_c;
vec3 penetration_vec = normalize(penetration_dir);
vec3 escape_position = circle_position + penetration_vec * magnitude(penetration_dir);
data->escape_position = escape_position;
data->bounds_normal = bounds_normal(bounds, closest_point_pd, cdistance0);
return collided; return collided;
} }

View File

@ -167,6 +167,8 @@ int main()
reset_level(&state); reset_level(&state);
state.start_time = glfwGetTime(); state.start_time = glfwGetTime();
glEnable(GL_DEPTH_TEST);
while(!glfwWindowShouldClose(window)) { while(!glfwWindowShouldClose(window)) {
if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, true); glfwSetWindowShouldClose(window, true);
@ -209,9 +211,8 @@ int main()
if (state.paddle_x > 12 - extent) if (state.paddle_x > 12 - extent)
state.paddle_x = 12 - extent; state.paddle_x = 12 - extent;
update(&state);
double time = glfwGetTime(); double time = glfwGetTime();
state.remaining = 20.0 - (time - state.start_time); update(&state, time);
if ((state.ball_x + state.ball_dx * 0.4) > 12.25f) { if ((state.ball_x + state.ball_dx * 0.4) > 12.25f) {
state.ball_x = 12.25f; state.ball_x = 12.25f;
@ -229,7 +230,8 @@ int main()
state.ball_dy = -state.ball_dy; state.ball_dy = -state.ball_dy;
} }
glEnable(GL_DEPTH_TEST); glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthFunc(GL_GREATER); glDepthFunc(GL_GREATER);
glUseProgram(program); glUseProgram(program);
@ -245,7 +247,7 @@ int main()
uniform_light_pos, uniform_light_pos,
&state); &state);
glEnable(GL_DEPTH_TEST); glDisable(GL_BLEND);
glDepthFunc(GL_ALWAYS); glDepthFunc(GL_ALWAYS);
glUseProgram(font_program); glUseProgram(font_program);

View File

@ -133,20 +133,26 @@ void render(mesh paddle_mesh,
for (int y = 0; y < 28; y++) { for (int y = 0; y < 28; y++) {
for (int x = 0; x < 13; x++) { for (int x = 0; x < 13; x++) {
char tile = state->level[y * 13 + x]; int block_ix = y * 13 + x;
//if (tile == 0) char tile = state->level[block_ix];
//continue; if (tile == 0)
continue;
double destroyed_time = state->blocks[block_ix].destroyed_time;
double dt = state->time - destroyed_time;
if (destroyed_time != 0.0 && dt >= 2.0)
continue;
const float cs = 1.0f / 255.0f; const float cs = 1.0f / 255.0f;
vec3 base_color = vec3(((float)state->pal[tile * 3 + 0]) * cs,
vec4 base_color = vec4(((float)state->pal[tile * 3 + 0]) * cs,
((float)state->pal[tile * 3 + 1]) * cs, ((float)state->pal[tile * 3 + 1]) * cs,
((float)state->pal[tile * 3 + 2]) * cs); ((float)state->pal[tile * 3 + 2]) * cs,
1.0f);
if (destroyed_time != 0.0) {
base_color = vec4(1, 0, 0, (float)((2.0 - dt) * 0.5));
}
vec3 block_position = vec3(x * 4.0f, -y * 2.0f, 0.0f); vec3 block_position = vec3(x * 4.0f, -y * 2.0f, 0.0f);
vec3 ball_position = vec3(state->ball_x * 4.0f, -state->ball_y * 2.0f, 0.0);
bool collided = aabb_circle_collision(block_position, ball_position);
if (collided)
base_color = vec3(1, 0, 0);
mat4x4 rx = rotate_x(-PI / 2.0f); mat4x4 rx = rotate_x(-PI / 2.0f);
mat4x4 t = translate(block_position); mat4x4 t = translate(block_position);
@ -158,7 +164,7 @@ void render(mesh paddle_mesh,
glUniform4fv(uniform_trans, 4, &trans[0][0]); glUniform4fv(uniform_trans, 4, &trans[0][0]);
glUniform3fv(uniform_normal_trans, 3, &normal_trans[0][0]); glUniform3fv(uniform_normal_trans, 3, &normal_trans[0][0]);
glUniform3fv(uniform_base_color, 1, &base_color[0]); glUniform4fv(uniform_base_color, 1, &base_color[0]);
glUniform3fv(uniform_light_pos, 1, &light_pos[0]); glUniform3fv(uniform_light_pos, 1, &light_pos[0]);
glDrawElements(GL_TRIANGLES, block_mesh.length, GL_UNSIGNED_INT, 0); glDrawElements(GL_TRIANGLES, block_mesh.length, GL_UNSIGNED_INT, 0);
@ -176,8 +182,7 @@ void render(mesh paddle_mesh,
mat4x4 trans = a * t * rx; mat4x4 trans = a * t * rx;
mat3x3 normal_trans = submatrix(rx, 3, 3); mat3x3 normal_trans = submatrix(rx, 3, 3);
//vec3 base_color = vec3(1, 1, 1); vec4 base_color = vec4(0.5f, 0.5f, 0.5f, 1.0f);
vec3 base_color = vec3(1, 1, 1) * 0.5f;
//vec3 light_pos = vec3(-1, -1, 1); //vec3 light_pos = vec3(-1, -1, 1);
glBindBuffer(GL_ARRAY_BUFFER, paddle_mesh.vtx); glBindBuffer(GL_ARRAY_BUFFER, paddle_mesh.vtx);
@ -210,7 +215,7 @@ void render(mesh paddle_mesh,
glUniform4fv(uniform_trans, 4, &trans[0][0]); glUniform4fv(uniform_trans, 4, &trans[0][0]);
glUniform3fv(uniform_normal_trans, 3, &normal_trans[0][0]); glUniform3fv(uniform_normal_trans, 3, &normal_trans[0][0]);
glUniform3fv(uniform_base_color, 1, &base_color[0]); glUniform4fv(uniform_base_color, 1, &base_color[0]);
glUniform3fv(uniform_light_pos, 1, &light_pos[0]); glUniform3fv(uniform_light_pos, 1, &light_pos[0]);
glDrawElements(GL_TRIANGLES, paddle_mesh.length, GL_UNSIGNED_INT, 0); glDrawElements(GL_TRIANGLES, paddle_mesh.length, GL_UNSIGNED_INT, 0);
@ -226,8 +231,7 @@ void render(mesh paddle_mesh,
mat4x4 trans = a * t * rx; mat4x4 trans = a * t * rx;
mat3x3 normal_trans = submatrix(rx, 3, 3); mat3x3 normal_trans = submatrix(rx, 3, 3);
//vec3 base_color = vec3(1, 1, 1); vec4 base_color = vec4(0.5f, 0.5f, 0.5f, 1.0f);
vec3 base_color = vec3(1, 1, 1) * 0.5f;
//vec3 light_pos = vec3(-1, -1, 1); //vec3 light_pos = vec3(-1, -1, 1);
glBindBuffer(GL_ARRAY_BUFFER, ball_mesh.vtx); glBindBuffer(GL_ARRAY_BUFFER, ball_mesh.vtx);
@ -260,7 +264,7 @@ void render(mesh paddle_mesh,
glUniform4fv(uniform_trans, 4, &trans[0][0]); glUniform4fv(uniform_trans, 4, &trans[0][0]);
glUniform3fv(uniform_normal_trans, 3, &normal_trans[0][0]); glUniform3fv(uniform_normal_trans, 3, &normal_trans[0][0]);
glUniform3fv(uniform_base_color, 1, &base_color[0]); glUniform4fv(uniform_base_color, 1, &base_color[0]);
glUniform3fv(uniform_light_pos, 1, &light_pos[0]); glUniform3fv(uniform_light_pos, 1, &light_pos[0]);
glDrawElements(GL_TRIANGLES, paddle_mesh.length, GL_UNSIGNED_INT, 0); glDrawElements(GL_TRIANGLES, paddle_mesh.length, GL_UNSIGNED_INT, 0);

View File

@ -1,6 +1,6 @@
#version 120 #version 120
uniform vec3 base_color; uniform vec4 base_color;
uniform vec3 light_pos; uniform vec3 light_pos;
varying vec3 fp_position; varying vec3 fp_position;
@ -15,9 +15,9 @@ void main()
vec3 light_dir = normalize(light_pos - fp_position); vec3 light_dir = normalize(light_pos - fp_position);
float diffuse = max(dot(fp_normal, light_dir), 0.0); float diffuse = max(dot(fp_normal, light_dir), 0.0);
vec3 color = (diffuse + 0.5) * base_color; vec3 color = (diffuse + 0.5) * base_color.xyz;
gl_FragColor = vec4(color, 1.0); gl_FragColor = vec4(color, base_color.w);
//gl_FragColor = vec4(fp_normal * 0.5 + 0.5, 1.0); //gl_FragColor = vec4(fp_normal * 0.5 + 0.5, 1.0);
//gl_FragColor = vec4(fp_texture, 0.0, 1.0); //gl_FragColor = vec4(fp_texture, 0.0, 1.0);
} }

View File

@ -3,7 +3,7 @@
#include <assert.h> #include <assert.h>
#include "update.hpp" #include "update.hpp"
#include "collision.hpp" #include "collision2.hpp"
#include "state.h" #include "state.h"
#include "level/level1.data.h" #include "level/level1.data.h"
@ -20,8 +20,8 @@ void reset_level(struct game_state * state)
state->ball_x = 0.0; state->ball_x = 0.0;
state->ball_y = 25.0; state->ball_y = 25.0;
state->ball_dx = 0.01; state->ball_dx = 0.1;
state->ball_dy = 0.01; state->ball_dy = 0.1;
state->start_time = 0.0; state->start_time = 0.0;
@ -36,8 +36,41 @@ void reset_level(struct game_state * state)
} }
} }
void update(struct game_state * state) void update(struct game_state * state, double time)
{ {
for (int y = 0; y < 28; y++) {
for (int x = 0; x < 13; x++) {
int block_ix = y * 13 + x;
char tile = state->level[block_ix];
if (tile == 0)
continue;
if (state->blocks[block_ix].destroyed_time != 0.0)
continue;
vec3 block_position = vec3(x * 4.0f, -y * 2.0f, 0.0f);
vec3 ball_position = vec3(state->ball_x * 4.0f, -state->ball_y * 2.0f, 0.0);
// paddle 6.0
// block 4.0
// const vec3 paddle_bounds = vec3(3, 1, 0);
const vec3 block_bounds = vec3(2, 1, 0);
struct collision_data cd;
bool collided = aabb_circle_collision(block_position, ball_position, block_bounds, &cd);
if (collided) {
state->ball_x = cd.escape_position.x / 4.0f;
state->ball_y = -cd.escape_position.y / 2.0f;
vec3 vel = reflect(vec3(state->ball_dx, state->ball_dy, 0), cd.bounds_normal);
state->ball_dx = vel.x;
state->ball_dy = vel.y;
state->blocks[block_ix].destroyed_time = time;
}
}
}
state->ball_x += state->ball_dx; state->ball_x += state->ball_dx;
state->ball_y += state->ball_dy; state->ball_y += state->ball_dy;
state->time = time;
state->remaining = 20.0 - (time - state->start_time);
} }