diff --git a/blend/block.blend b/blend/block.blend index 241d904..f4fe330 100644 Binary files a/blend/block.blend and b/blend/block.blend differ diff --git a/include/collision2.hpp b/include/collision2.hpp index 1ca4d5e..d8ab429 100644 --- a/include/collision2.hpp +++ b/include/collision2.hpp @@ -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); diff --git a/include/model/block.h b/include/model/block.h index e4fea08..43de27c 100644 --- a/include/model/block.h +++ b/include/model/block.h @@ -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, diff --git a/include/model/block.obj b/include/model/block.obj index b769411..0ec534f 100644 --- a/include/model/block.obj +++ b/include/model/block.obj @@ -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 diff --git a/include/state.h b/include/state.h index 98d7487..720c367 100644 --- a/include/state.h +++ b/include/state.h @@ -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; }; diff --git a/include/update.hpp b/include/update.hpp index e57cf72..547e465 100644 --- a/include/update.hpp +++ b/include/update.hpp @@ -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 } diff --git a/src/collision2.cpp b/src/collision2.cpp index 5cd50e9..1776c90 100644 --- a/src/collision2.cpp +++ b/src/collision2.cpp @@ -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; } diff --git a/src/main.c b/src/main.c index 86b30cc..f112b04 100644 --- a/src/main.c +++ b/src/main.c @@ -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); diff --git a/src/render.cpp b/src/render.cpp index 6205e1c..ed72215 100644 --- a/src/render.cpp +++ b/src/render.cpp @@ -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); diff --git a/src/shader/vertex_color.fp.glsl b/src/shader/vertex_color.fp.glsl index 4f7616c..90a02da 100644 --- a/src/shader/vertex_color.fp.glsl +++ b/src/shader/vertex_color.fp.glsl @@ -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); } diff --git a/src/update.cpp b/src/update.cpp index 1084b75..e6f884c 100644 --- a/src/update.cpp +++ b/src/update.cpp @@ -3,7 +3,7 @@ #include #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); }