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"
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,
222, 223, 224,
225, 226, 227,
228, 229, 230,
231, 232, 233,
234, 235, 236,
237, 238, 239,
240, 241, 242,
243, 244, 245,
246, 247, 248,
249, 250, 251,
252, 253, 254,
255, 256, 257,
258, 259, 260,
261, 262, 263,
264, 265, 266,
267, 268, 269,
270, 271, 272,
273, 274, 275,
276, 277, 278,
279, 280, 281,
282, 283, 284,
285, 286, 287,
288, 289, 290,
291, 292, 293,
294, 295, 296,
297, 298, 299,
300, 301, 302,
303, 304, 305,
306, 307, 308,
309, 310, 311,
312, 313, 314,
315, 316, 317,
2, 318, 319,
319, 320, 321,
321, 322, 323,
323, 324, 0,
0, 325, 326,
326, 327, 1,
1, 328, 329,
329, 330, 2,
2, 319, 321,
321, 323, 0,
0, 326, 1,
1, 329, 2,
2, 321, 0,
331, 332, 333,
9, 228, 10,
229, 230, 231,
232, 233, 234,
235, 236, 237,
238, 239, 240,
241, 242, 243,
244, 245, 246,
247, 248, 249,
250, 251, 252,
253, 254, 255,
256, 257, 258,
259, 260, 261,
262, 263, 264,
265, 266, 267,
268, 269, 270,
271, 272, 273,
274, 275, 276,
277, 278, 279,
280, 281, 282,
283, 284, 285,
286, 287, 288,
289, 290, 291,
292, 293, 294,
295, 296, 297,
298, 299, 300,
96, 301, 97,
99, 302, 100,
102, 303, 103,
105, 304, 106,
108, 305, 109,
111, 306, 112,
114, 307, 115,
117, 308, 118,
120, 309, 121,
123, 310, 124,
126, 311, 127,
129, 312, 130,
313, 314, 315,
316, 317, 318,
138, 319, 139,
320, 321, 322,
323, 324, 325,
326, 327, 328,
329, 330, 331,
153, 332, 154,
156, 333, 157,
334, 335, 336,
337, 338, 339,
12, 340, 13,
162, 337, 163,
338, 339, 340,
341, 342, 343,
344, 345, 346,
347, 348, 349,
@ -136,99 +138,16 @@ const int block_Cube_triangles[] = {
368, 369, 370,
371, 372, 373,
374, 375, 376,
377, 378, 379,
380, 381, 382,
383, 384, 385,
386, 387, 388,
389, 390, 391,
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,
204, 377, 205,
207, 378, 208,
210, 379, 211,
213, 380, 214,
381, 382, 383,
};
const int block_Cube_triangles_length = (sizeof (block_Cube_triangles)) / (sizeof (block_Cube_triangles[0]));
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.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,
@ -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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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,
@ -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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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,

View File

@ -50,71 +50,38 @@ v -1.329576 0.486997 0.389481
v -1.418335 0.454219 0.412896
v -1.402199 0.469791 0.369685
v -1.380222 0.474526 0.398518
v 1.775316 -0.000000 -0.857357
v 1.743604 0.049732 -0.877005
v 1.780008 0.006663 -0.885957
v 1.768401 0.024866 -0.893148
v 1.804443 0.000000 -0.828995
v 1.896293 0.050904 -0.783980
v 1.871401 0.006820 -0.825706
v 1.905020 0.025452 -0.809229
v 1.787430 -0.000000 -0.855422
v 1.820297 0.049848 -0.864452
v 1.824526 0.006678 -0.878805
v 1.836557 0.024924 -0.882110
v 1.794445 -0.000000 -0.851240
v 1.876107 0.050306 -0.830395
v 1.856144 0.006740 -0.859850
v 1.886035 0.025153 -0.852220
v -1.804443 -0.000000 -0.828995
v -1.896293 0.050904 -0.783980
v -1.871401 0.006820 -0.825706
v -1.905020 0.025452 -0.809229
v -1.775316 0.000000 -0.857357
v -1.743604 0.049732 -0.877005
v -1.780008 0.006663 -0.885957
v -1.768401 0.024866 -0.893148
v -1.794445 0.000000 -0.851240
v -1.876107 0.050306 -0.830395
v -1.856144 0.006740 -0.859850
v -1.886035 0.025153 -0.852220
v -1.787430 0.000000 -0.855422
v -1.820297 0.049848 -0.864452
v -1.824526 0.006678 -0.878805
v -1.836557 0.024924 -0.882110
v 1.804443 -0.000000 0.828995
v 1.896293 0.050904 0.783980
v 1.871401 0.006820 0.825706
v 1.905020 0.025452 0.809229
v 1.775316 0.000000 0.857357
v 1.743604 0.049732 0.877005
v 1.780008 0.006663 0.885957
v 1.768401 0.024866 0.893148
v 1.794445 0.000000 0.851240
v 1.876107 0.050306 0.830395
v 1.856144 0.006740 0.859850
v 1.886035 0.025153 0.852220
v 1.787430 0.000000 0.855422
v 1.820297 0.049848 0.864452
v 1.824526 0.006678 0.878805
v 1.836557 0.024924 0.882110
v -1.775316 -0.000000 0.857357
v -1.743604 0.049732 0.877005
v -1.780008 0.006663 0.885957
v -1.768401 0.024866 0.893148
v -1.804443 0.000000 0.828995
v -1.896293 0.050904 0.783980
v -1.871401 0.006820 0.825706
v -1.905020 0.025452 0.809229
v -1.787430 -0.000000 0.855422
v -1.820297 0.049848 0.864452
v -1.824526 0.006678 0.878805
v -1.836557 0.024924 0.882110
v -1.794445 -0.000000 0.851240
v -1.876107 0.050306 0.830395
v -1.856144 0.006740 0.859850
v -1.886035 0.025153 0.852220
vn -0.0000 -1.0000 -0.0000
vn 0.5143 0.8250 -0.2343
vn 0.2884 0.8265 0.4834
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.6631 0.7485 -0.0000
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.0877 -0.9858 0.1431
vn -0.4662 -0.4384 0.7684
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.0353 -0.9746 0.2213
vn 0.1539 -0.2766 0.9486
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.1021 -0.9937 0.0459
vn 0.5531 -0.7962 0.2453
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.0863 -0.9857 -0.1447
vn -0.4615 -0.4435 -0.7684
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.0359 -0.9745 -0.2214
vn 0.1527 -0.2728 -0.9499
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.1034 -0.9937 -0.0439
vn 0.5581 -0.7940 -0.2410
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.0000 -0.9739 -0.2269
vn -0.0000 -0.3674 -0.9300
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.0000 -0.9739 0.2269
vn -0.0000 -0.3674 0.9300
vn -0.0000 0.5445 0.8387
vn 0.1024 0.7678 -0.6324
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.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.0863 -0.9857 0.1447
vn -0.4615 -0.4435 0.7684
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.0359 -0.9745 0.2214
vn 0.1527 -0.2728 0.9499
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.1034 -0.9937 0.0439
vn 0.5581 -0.7940 0.2410
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.0877 -0.9858 -0.1431
vn -0.4662 -0.4384 -0.7684
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.0353 -0.9746 -0.2212
vn 0.1539 -0.2766 -0.9486
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.1021 -0.9937 -0.0459
vn 0.5531 -0.7962 -0.2453
vn 0.7428 0.5813 -0.3321
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.947586
vt 0.998435 0.975457
@ -361,277 +269,170 @@ vt 0.000000 0.947586
vt 1.000000 0.947586
vt 0.998435 0.975457
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.001565 0.024543
vt 0.040011 0.040618
vt 0.032047 0.025150
vt 0.019436 0.002175
vt 0.002578 0.022467
vt 0.019196 0.001968
vt 0.041831 0.038350
vt 0.043890 0.021812
vt 0.039098 0.000065
vt 0.958169 0.038350
vt 0.956110 0.021812
vt 0.980564 0.002175
vt 0.019436 0.002175
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.980804 0.001968
vt 0.962429 0.052829
vt 0.979529 0.054779
vt 0.980564 0.002175
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.040011 0.959383
vt 0.032047 0.974849
vt 0.023691 0.964296
vt 0.002578 0.977533
vt 0.037571 0.947172
vt 0.020471 0.945221
vt 0.019436 0.997825
vt 0.000085 0.951179
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.980804 0.998032
vt 0.959989 0.959382
vt 0.976309 0.964296
vt 0.980564 0.997825
vt 0.997422 0.977533
vt 0.979529 0.945221
vt 0.999915 0.951179
vt 1.000000 0.052414
vt 0.955005 0.962648
vt 0.044995 0.037352
vt 0.959534 1.000000
vt 0.040466 0.000000
s 0
f 69/1/1 53/2/1 85/3/1
f 4/4/2 54/5/2 62/6/2
f 34/7/3 90/8/3 29/9/3
f 15/10/4 78/11/4 22/12/4
f 26/13/5 14/14/5 38/15/5
f 4/4/6 5/16/6 1/17/6
f 4/4/7 9/18/7 6/19/7
f 7/20/8 8/21/8 2/22/8
f 7/20/9 12/23/9 9/18/9
f 10/24/10 11/25/10 3/26/10
f 5/16/11 12/23/11 10/24/11
f 6/19/12 9/18/12 12/23/12
f 16/27/13 17/28/13 13/29/13
f 16/27/14 21/30/14 18/31/14
f 19/32/15 20/33/15 14/14/15
f 23/34/16 21/30/16 19/32/16
f 22/12/17 23/34/17 15/10/17
f 17/28/18 24/35/18 22/12/18
f 18/31/19 21/30/19 24/35/19
f 28/36/20 29/9/20 25/37/20
f 28/36/21 33/38/21 30/39/21
f 31/40/22 32/41/22 26/13/22
f 35/42/23 33/38/23 31/40/23
f 34/7/24 35/42/24 27/43/24
f 29/9/25 36/44/25 34/7/25
f 30/39/26 33/38/26 36/44/26
f 40/45/27 41/46/27 37/47/27
f 40/45/28 45/48/28 42/49/28
f 43/50/29 44/51/29 38/15/29
f 47/52/30 45/48/30 43/50/30
f 46/53/31 47/52/31 39/54/31
f 46/53/32 42/49/32 48/55/32
f 42/49/33 45/48/33 48/55/33
f 1/17/34 28/36/34 25/37/34
f 5/16/35 32/41/35 28/36/35
f 32/41/36 3/26/36 26/13/36
f 27/43/37 40/45/37 37/47/37
f 40/45/38 31/40/38 44/51/38
f 31/40/39 38/15/39 44/51/39
f 39/54/40 16/27/40 13/29/40
f 47/52/41 20/33/41 16/27/41
f 20/33/42 38/15/42 14/14/42
f 15/10/43 7/20/43 2/22/43
f 7/20/44 19/32/44 11/25/44
f 19/32/45 3/26/45 11/25/45
f 110/56/46 41/46/46 46/53/46
f 102/57/47 46/53/47 39/54/47
f 27/43/48 98/58/48 86/59/48
f 106/60/49 37/47/49 41/46/49
f 27/43/50 94/61/50 34/7/50
f 22/12/51 74/62/51 17/28/51
f 29/9/52 82/63/52 25/37/52
f 13/29/53 102/57/53 39/54/53
f 15/10/54 50/64/54 70/65/54
f 17/28/55 66/66/55 13/29/55
f 25/37/56 54/67/56 1/17/56
f 8/21/57 62/68/57 58/69/57
f 101/70/58 111/71/58 103/72/58
f 103/72/59 112/73/59 104/74/59
f 104/74/60 110/75/60 102/57/60
f 109/76/61 107/77/61 111/71/61
f 111/71/62 108/78/62 112/73/62
f 112/73/63 106/79/63 110/56/63
f 105/80/64 99/81/64 107/77/64
f 99/81/65 108/78/65 107/77/65
f 100/82/66 106/60/66 108/78/66
f 93/83/67 87/84/67 85/3/67
f 87/84/68 96/85/68 88/86/68
f 88/86/69 94/61/69 86/59/69
f 89/87/70 95/88/70 93/83/70
f 91/89/71 96/85/71 95/88/71
f 92/90/72 94/91/72 96/85/72
f 81/92/73 91/89/73 89/87/73
f 83/93/74 92/90/74 91/89/74
f 84/94/75 90/8/75 92/90/75
f 77/95/76 71/96/76 69/1/76
f 71/96/77 80/97/77 72/98/77
f 72/98/78 78/11/78 70/65/78
f 73/99/79 79/100/79 77/95/79
f 75/101/80 80/97/80 79/100/80
f 76/102/81 78/11/81 80/97/81
f 65/103/82 75/101/82 73/99/82
f 67/104/83 76/102/83 75/101/83
f 68/105/84 74/106/84 76/102/84
f 57/107/85 51/108/85 59/109/85
f 51/108/86 60/110/86 59/109/86
f 52/111/87 58/112/87 60/110/87
f 61/113/88 59/109/88 63/114/88
f 63/114/89 60/110/89 64/115/89
f 64/115/90 58/69/90 62/68/90
f 53/2/91 63/114/91 55/116/91
f 55/116/92 64/115/92 56/117/92
f 56/117/93 62/6/93 54/5/93
f 53/2/94 83/93/94 81/92/94
f 55/116/95 84/94/95 83/93/95
f 56/117/96 82/118/96 84/94/96
f 69/1/97 51/108/97 49/119/97
f 71/96/98 52/111/98 51/108/98
f 72/98/99 50/64/99 52/111/99
f 101/70/100 67/104/100 65/103/100
f 103/72/101 68/105/101 67/104/101
f 104/74/102 66/66/102 68/105/102
f 85/3/103 99/81/103 97/120/103
f 87/84/104 100/82/104 99/81/104
f 88/86/105 98/58/105 100/82/105
f 2/22/106 58/112/106 50/121/106
f 85/3/1 97/120/1 105/80/1
f 105/80/1 109/76/1 101/70/1
f 101/70/1 65/103/1 73/99/1
f 73/99/1 77/95/1 69/1/1
f 69/1/1 49/119/1 57/107/1
f 57/107/1 61/113/1 53/2/1
f 53/2/1 81/92/1 89/87/1
f 89/87/1 93/83/1 85/3/1
f 85/3/1 105/80/1 101/70/1
f 101/70/1 73/99/1 69/1/1
f 69/1/1 57/107/1 53/2/1
f 53/2/1 89/87/1 85/3/1
f 85/3/1 101/70/1 69/1/1
f 4/4/107 1/17/107 54/5/107
f 34/7/108 94/91/108 90/8/108
f 15/10/109 70/65/109 78/11/109
f 26/13/5 3/26/5 14/14/5
f 4/4/110 6/19/110 5/16/110
f 4/4/111 8/21/111 9/18/111
f 7/20/112 9/18/112 8/21/112
f 7/20/113 11/25/113 12/23/113
f 10/24/114 12/23/114 11/25/114
f 5/16/115 6/19/115 12/23/115
f 16/27/116 18/31/116 17/28/116
f 16/27/117 20/33/117 21/30/117
f 19/32/118 21/30/118 20/33/118
f 23/34/119 24/35/119 21/30/119
f 22/12/120 24/35/120 23/34/120
f 17/28/121 18/31/121 24/35/121
f 28/36/122 30/39/122 29/9/122
f 28/36/123 32/41/123 33/38/123
f 31/40/124 33/38/124 32/41/124
f 35/42/125 36/44/125 33/38/125
f 34/7/126 36/44/126 35/42/126
f 29/9/127 30/39/127 36/44/127
f 40/45/128 42/49/128 41/46/128
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
f 4/1/1 51/2/1 55/3/1
f 34/4/2 69/5/2 29/6/2
f 15/7/3 63/8/3 22/9/3
f 26/10/4 14/11/4 38/12/4
f 4/1/5 5/13/5 1/14/5
f 4/1/6 9/15/6 6/16/6
f 7/17/7 8/18/7 2/19/7
f 7/17/8 12/20/8 9/15/8
f 10/21/9 11/22/9 3/23/9
f 5/13/10 12/20/10 10/21/10
f 6/16/11 9/15/11 12/20/11
f 16/24/12 17/25/12 13/26/12
f 16/24/13 21/27/13 18/28/13
f 19/29/14 20/30/14 14/11/14
f 23/31/15 21/27/15 19/29/15
f 22/9/16 23/31/16 15/7/16
f 17/25/17 24/32/17 22/9/17
f 18/28/18 21/27/18 24/32/18
f 28/33/19 29/6/19 25/34/19
f 28/33/20 33/35/20 30/36/20
f 31/37/21 32/38/21 26/10/21
f 35/39/22 33/35/22 31/37/22
f 34/4/23 35/39/23 27/40/23
f 29/6/24 36/41/24 34/4/24
f 30/36/25 33/35/25 36/41/25
f 40/42/26 41/43/26 37/44/26
f 40/42/27 45/45/27 42/46/27
f 43/47/28 44/48/28 38/12/28
f 47/49/29 45/45/29 43/47/29
f 46/50/30 47/49/30 39/51/30
f 46/50/31 42/46/31 48/52/31
f 42/46/32 45/45/32 48/52/32
f 1/14/33 28/33/33 25/34/33
f 5/13/34 32/38/34 28/33/34
f 32/38/35 3/23/35 26/10/35
f 27/40/36 40/42/36 37/44/36
f 40/42/37 31/37/37 44/48/37
f 31/37/38 38/12/38 44/48/38
f 39/51/39 16/24/39 13/26/39
f 47/49/40 20/30/40 16/24/40
f 20/30/41 38/12/41 14/11/41
f 15/7/42 7/17/42 2/19/42
f 7/17/43 19/29/43 11/22/43
f 19/29/44 3/23/44 11/22/44
f 79/53/45 41/43/45 46/50/45
f 75/54/46 46/50/46 39/51/46
f 27/40/47 73/55/47 67/56/47
f 77/57/48 37/44/48 41/43/48
f 27/40/49 71/58/49 34/4/49
f 22/9/50 61/59/50 17/25/50
f 29/6/51 65/60/51 25/34/51
f 13/26/52 75/54/52 39/51/52
f 15/7/53 49/61/53 59/62/53
f 17/25/54 57/63/54 13/26/54
f 25/34/55 51/64/55 1/14/55
f 8/18/56 55/65/56 53/66/56
f 76/67/57 79/68/57 75/54/57
f 80/69/58 77/70/58 79/53/58
f 74/71/59 77/57/59 78/72/59
f 68/73/60 71/58/60 67/56/60
f 70/74/61 71/75/61 72/76/61
f 66/77/62 69/5/62 70/74/62
f 60/78/63 63/8/63 59/62/63
f 62/79/64 63/8/64 64/80/64
f 58/81/65 61/82/65 62/79/65
f 50/83/66 53/84/66 54/85/66
f 56/86/67 53/66/67 55/65/67
f 52/87/68 55/3/68 51/2/68
f 52/87/69 65/88/69 66/77/69
f 60/78/70 49/61/70 50/83/70
f 76/67/71 57/63/71 58/81/71
f 68/73/72 73/55/72 74/71/72
f 2/19/73 53/84/73 49/89/73
f 4/1/74 1/14/74 51/2/74
f 34/4/75 71/75/75 69/5/75
f 15/7/76 59/62/76 63/8/76
f 26/10/4 3/23/4 14/11/4
f 4/1/77 6/16/77 5/13/77
f 4/1/78 8/18/78 9/15/78
f 7/17/79 9/15/79 8/18/79
f 7/17/80 11/22/80 12/20/80
f 10/21/81 12/20/81 11/22/81
f 5/13/82 6/16/82 12/20/82
f 16/24/83 18/28/83 17/25/83
f 16/24/84 20/30/84 21/27/84
f 19/29/85 21/27/85 20/30/85
f 23/31/86 24/32/86 21/27/86
f 22/9/87 24/32/87 23/31/87
f 17/25/88 18/28/88 24/32/88
f 28/33/89 30/36/89 29/6/89
f 28/33/90 32/38/90 33/35/90
f 31/37/91 33/35/91 32/38/91
f 35/39/92 36/41/92 33/35/92
f 34/4/93 36/41/93 35/39/93
f 29/6/94 30/36/94 36/41/94
f 40/42/95 42/46/95 41/43/95
f 40/42/96 44/48/96 45/45/96
f 43/47/97 45/45/97 44/48/97
f 47/49/98 48/52/98 45/45/98
f 46/50/99 48/52/99 47/49/99
f 46/50/100 41/43/100 42/46/100
f 1/14/33 5/13/33 28/33/33
f 5/13/34 10/21/34 32/38/34
f 32/38/35 10/21/35 3/23/35
f 27/40/36 35/39/36 40/42/36
f 40/42/37 35/39/37 31/37/37
f 31/37/38 26/10/38 38/12/38
f 39/51/39 47/49/39 16/24/39
f 47/49/40 43/47/40 20/30/40
f 20/30/41 43/47/41 38/12/41
f 15/7/42 23/31/42 7/17/42
f 7/17/43 23/31/43 19/29/43
f 19/29/44 14/11/44 3/23/44
f 79/53/101 77/70/101 41/43/101
f 75/54/102 79/68/102 46/50/102
f 27/40/47 37/44/47 73/55/47
f 77/57/103 73/90/103 37/44/103
f 27/40/104 67/56/104 71/58/104
f 22/9/105 63/8/105 61/59/105
f 29/6/106 69/5/106 65/60/106
f 13/26/52 57/63/52 75/54/52
f 15/7/53 2/19/53 49/61/53
f 17/25/107 61/82/107 57/63/107
f 25/34/55 65/88/55 51/64/55
f 8/18/108 4/1/108 55/65/108
f 76/67/109 80/69/109 79/68/109
f 80/69/110 78/72/110 77/70/110
f 74/71/111 73/90/111 77/57/111
f 68/73/112 72/76/112 71/58/112
f 70/74/113 69/5/113 71/75/113
f 66/77/114 65/60/114 69/5/114
f 60/78/115 64/80/115 63/8/115
f 62/79/116 61/59/116 63/8/116
f 58/81/117 57/63/117 61/82/117
f 50/83/118 49/89/118 53/84/118
f 56/86/119 54/85/119 53/66/119
f 52/87/120 56/86/120 55/3/120
f 52/87/69 51/64/69 65/88/69
f 60/78/70 59/62/70 49/61/70
f 76/67/71 75/54/71 57/63/71
f 68/73/72 67/56/72 73/55/72
f 2/19/121 8/18/121 53/84/121

View File

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

View File

@ -7,7 +7,7 @@ extern "C" {
#endif
void reset_level(struct game_state * state);
void update(struct game_state * state);
void update(struct game_state * state, double time);
#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));
}
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 closest_point_pd = clamp(distance, -bounds, bounds);
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)
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;
}

View File

@ -167,6 +167,8 @@ int main()
reset_level(&state);
state.start_time = glfwGetTime();
glEnable(GL_DEPTH_TEST);
while(!glfwWindowShouldClose(window)) {
if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, true);
@ -209,9 +211,8 @@ int main()
if (state.paddle_x > 12 - extent)
state.paddle_x = 12 - extent;
update(&state);
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) {
state.ball_x = 12.25f;
@ -229,7 +230,8 @@ int main()
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);
glUseProgram(program);
@ -245,7 +247,7 @@ int main()
uniform_light_pos,
&state);
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glDepthFunc(GL_ALWAYS);
glUseProgram(font_program);

View File

@ -133,20 +133,26 @@ void render(mesh paddle_mesh,
for (int y = 0; y < 28; y++) {
for (int x = 0; x < 13; x++) {
char tile = state->level[y * 13 + x];
//if (tile == 0)
//continue;
int block_ix = y * 13 + x;
char tile = state->level[block_ix];
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;
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 + 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 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 t = translate(block_position);
@ -158,7 +164,7 @@ void render(mesh paddle_mesh,
glUniform4fv(uniform_trans, 4, &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]);
glDrawElements(GL_TRIANGLES, block_mesh.length, GL_UNSIGNED_INT, 0);
@ -176,8 +182,7 @@ void render(mesh paddle_mesh,
mat4x4 trans = a * t * rx;
mat3x3 normal_trans = submatrix(rx, 3, 3);
//vec3 base_color = vec3(1, 1, 1);
vec3 base_color = vec3(1, 1, 1) * 0.5f;
vec4 base_color = vec4(0.5f, 0.5f, 0.5f, 1.0f);
//vec3 light_pos = vec3(-1, -1, 1);
glBindBuffer(GL_ARRAY_BUFFER, paddle_mesh.vtx);
@ -210,7 +215,7 @@ void render(mesh paddle_mesh,
glUniform4fv(uniform_trans, 4, &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]);
glDrawElements(GL_TRIANGLES, paddle_mesh.length, GL_UNSIGNED_INT, 0);
@ -226,8 +231,7 @@ void render(mesh paddle_mesh,
mat4x4 trans = a * t * rx;
mat3x3 normal_trans = submatrix(rx, 3, 3);
//vec3 base_color = vec3(1, 1, 1);
vec3 base_color = vec3(1, 1, 1) * 0.5f;
vec4 base_color = vec4(0.5f, 0.5f, 0.5f, 1.0f);
//vec3 light_pos = vec3(-1, -1, 1);
glBindBuffer(GL_ARRAY_BUFFER, ball_mesh.vtx);
@ -260,7 +264,7 @@ void render(mesh paddle_mesh,
glUniform4fv(uniform_trans, 4, &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]);
glDrawElements(GL_TRIANGLES, paddle_mesh.length, GL_UNSIGNED_INT, 0);

View File

@ -1,6 +1,6 @@
#version 120
uniform vec3 base_color;
uniform vec4 base_color;
uniform vec3 light_pos;
varying vec3 fp_position;
@ -15,9 +15,9 @@ void main()
vec3 light_dir = normalize(light_pos - fp_position);
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_texture, 0.0, 1.0);
}

View File

@ -3,7 +3,7 @@
#include <assert.h>
#include "update.hpp"
#include "collision.hpp"
#include "collision2.hpp"
#include "state.h"
#include "level/level1.data.h"
@ -20,8 +20,8 @@ void reset_level(struct game_state * state)
state->ball_x = 0.0;
state->ball_y = 25.0;
state->ball_dx = 0.01;
state->ball_dy = 0.01;
state->ball_dx = 0.1;
state->ball_dy = 0.1;
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_y += state->ball_dy;
state->time = time;
state->remaining = 20.0 - (time - state->start_time);
}