From cfb6d1e4b5aa60933ac7b65cb9a318dce2a7f65d Mon Sep 17 00:00:00 2001 From: viktorljung Date: Fri, 25 Sep 2015 04:28:46 +0200 Subject: [PATCH] Falling bricks and collision filters --- assets/Models/submarine2.mtl | 12 + assets/Models/submarine2.obj | 1881 ++++++++++++++++++++++++++++ include/Core/Engine.h | 15 +- include/Physics/CPhysics.h | 26 +- include/Physics/PhysicsSystem.h | 12 +- src/game/Game/BallSystem.cpp | 6 +- src/game/Game/LevelSystem.cpp | 25 +- src/game/Game/PadSystem.cpp | 10 +- src/game/Physics/PhysicsSystem.cpp | 27 +- 9 files changed, 1992 insertions(+), 22 deletions(-) create mode 100644 assets/Models/submarine2.mtl create mode 100644 assets/Models/submarine2.obj diff --git a/assets/Models/submarine2.mtl b/assets/Models/submarine2.mtl new file mode 100644 index 0000000..211bb03 --- /dev/null +++ b/assets/Models/submarine2.mtl @@ -0,0 +1,12 @@ +# Blender MTL File: 'submarine.blend' +# Material Count: 1 + +newmtl Material +Ns 96.078431 +Ka 0.000000 0.000000 0.000000 +Kd 0.640000 0.640000 0.640000 +Ks 0.500000 0.500000 0.500000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd SubmarineTexture.png diff --git a/assets/Models/submarine2.obj b/assets/Models/submarine2.obj new file mode 100644 index 0000000..5796eba --- /dev/null +++ b/assets/Models/submarine2.obj @@ -0,0 +1,1881 @@ +# Blender v2.75 (sub 0) OBJ File: 'submarine.blend' +# www.blender.org +mtllib submarine2.mtl +o Cube +v -0.378953 -0.002680 -0.065172 +v 0.212611 0.044805 -0.044067 +v -0.378243 -0.049219 -0.040454 +v 0.511655 0.005655 -0.004951 +v 0.511655 0.014323 -0.009928 +v -0.378953 0.044805 -0.045251 +v 0.511655 0.021628 -0.004951 +v 0.296392 0.051346 -0.039065 +v 0.296392 -0.051355 -0.038417 +v 0.212611 -0.058696 -0.039270 +v 0.212611 -0.002680 -0.063988 +v 0.296392 -0.004712 -0.055556 +v -0.470020 0.007247 -0.055901 +v -0.470020 -0.033863 -0.039615 +v -0.470020 0.046066 -0.039615 +v -0.504866 0.007576 -0.027580 +v -0.504866 -0.015092 -0.019565 +v -0.504866 0.026681 -0.019565 +v 0.417794 0.035928 -0.027732 +v 0.417862 0.010074 -0.038703 +v 0.418042 -0.020280 -0.027718 +v -0.103707 0.044805 -0.044659 +v -0.095180 -0.059866 -0.039862 +v -0.145284 0.044805 -0.044778 +v -0.103707 -0.002680 -0.064580 +v -0.220059 -0.056313 -0.040098 +v -0.213663 0.044805 -0.044896 +v -0.213663 -0.002680 -0.064817 +v 0.016182 0.044805 -0.044401 +v 0.016182 -0.002680 -0.064322 +v 0.021156 -0.057734 -0.039604 +v -0.103679 -0.128289 -0.020932 +v -0.169800 -0.124081 -0.021745 +v -0.145284 -0.002680 -0.064699 +v -0.144573 -0.059156 -0.039980 +v -0.145256 -0.128299 -0.021050 +v -0.028130 -0.059156 -0.039733 +v -0.025998 0.044805 -0.044530 +v -0.025998 -0.002680 -0.064451 +v -0.028811 -0.126038 -0.021380 +v -0.101004 -0.090373 -0.028531 +v 0.004471 -0.088964 -0.032639 +v -0.179611 -0.092300 -0.029335 +v -0.147840 -0.092530 -0.029340 +v -0.011421 -0.110450 -0.026194 +v 0.438535 -0.016511 -0.025733 +v 0.439229 0.012885 -0.036411 +v 0.438680 0.033157 -0.025848 +v 0.488551 0.025074 -0.012937 +v 0.497469 0.013062 -0.015893 +v 0.493078 -0.000808 -0.010559 +v 0.457621 -0.052215 -0.000328 +v 0.486007 -0.049835 -0.001062 +v 0.489135 -0.011286 -0.003540 +v 0.449628 -0.021564 -0.002397 +v 0.452490 0.010420 -0.032017 +v 0.450888 0.012577 -0.032017 +v 0.452490 0.014448 -0.032017 +v 0.491993 0.014448 -0.019989 +v 0.493187 0.012577 -0.019989 +v 0.491993 0.010420 -0.019989 +v 0.463244 0.010420 -0.061607 +v 0.461409 0.012577 -0.061607 +v 0.463244 0.014448 -0.061607 +v 0.488480 0.014448 -0.059057 +v 0.489673 0.012577 -0.059057 +v 0.488480 0.010420 -0.059057 +v 0.450386 0.041229 -0.002309 +v 0.486995 0.039392 -0.003342 +v 0.457584 0.071526 -0.000278 +v 0.486002 0.068886 -0.001063 +v 0.372582 0.047066 -0.030989 +v 0.372582 0.004185 -0.046120 +v 0.372582 -0.034449 -0.032051 +v 0.511655 0.005655 -0.004951 +v 0.511655 0.014323 -0.009928 +v 0.511655 0.021628 -0.004951 +v 0.525395 0.008758 -0.002746 +v 0.515740 0.008758 -0.002746 +v 0.515740 0.011890 -0.004273 +v 0.515740 0.014988 -0.002825 +v 0.525395 0.011890 -0.004273 +v 0.525395 0.014988 -0.002825 +v -0.050480 -0.059392 -0.039776 +v -0.072830 -0.059629 -0.039819 +v -0.051873 -0.128594 -0.021423 +v -0.077776 -0.128594 -0.021466 +v -0.077804 0.044805 -0.044616 +v -0.051901 0.044805 -0.044573 +v -0.077804 -0.002680 -0.064537 +v -0.051901 -0.002680 -0.064494 +v -0.041517 -0.093350 -0.026237 +v -0.071378 -0.088718 -0.026280 +v -0.120025 -0.131743 -0.012698 +v -0.089441 -0.131743 -0.012647 +v -0.104733 -0.131743 -0.012672 +v -0.110237 -0.131352 -0.005504 +v -0.104733 -0.131352 -0.007784 +v -0.099229 -0.131352 -0.005504 +v -0.110237 -0.146402 -0.005504 +v -0.104733 -0.146402 -0.007784 +v -0.099229 -0.146402 -0.005504 +v -0.110237 -0.309639 -0.005504 +v -0.104733 -0.309639 -0.007784 +v -0.099229 -0.309639 -0.005504 +v -0.145706 -0.318985 -0.005504 +v -0.145706 -0.324489 -0.007784 +v -0.145706 -0.329993 -0.005504 +v -0.115907 -0.329993 -0.005504 +v -0.115907 -0.324489 -0.007784 +v -0.115907 -0.318985 -0.005504 +v -0.103586 -0.323872 -0.005504 +v -0.107478 -0.319980 -0.007784 +v -0.111369 -0.316088 -0.005504 +v -0.145706 -0.319804 -0.004685 +v -0.145706 -0.324489 -0.006626 +v -0.145706 -0.329175 -0.004685 +v -0.120728 -0.328489 -0.004000 +v -0.120728 -0.324489 -0.005656 +v -0.120728 -0.320490 -0.004000 +v -0.102383 -0.109911 -0.026878 +v -0.146509 -0.110962 -0.026891 +v -0.018918 -0.119800 -0.023713 +v -0.176358 -0.112152 -0.025424 +v -0.074675 -0.109265 -0.023799 +v -0.046854 -0.111511 -0.023756 +v -0.106319 -0.101496 -0.028531 +v -0.141797 -0.100168 -0.029340 +v -0.107087 -0.103696 -0.026878 +v -0.140874 -0.104992 -0.026891 +v -0.179464 -0.101651 -0.027380 +v -0.101694 -0.100142 -0.027239 +v -0.147175 -0.101746 -0.028115 +v -0.015169 -0.115125 -0.024953 +v -0.073027 -0.098992 -0.025039 +v -0.044185 -0.102430 -0.024996 +v -0.105455 -0.102694 -0.027239 +v -0.143547 -0.102580 -0.028115 +v -0.106319 -0.101496 -0.062227 +v -0.125329 -0.100168 -0.062227 +v -0.107087 -0.103696 -0.062227 +v -0.124406 -0.104992 -0.062227 +v -0.105455 -0.102694 -0.062227 +v -0.127079 -0.102580 -0.062227 +v -0.107364 -0.101496 -0.065167 +v -0.121148 -0.100168 -0.065167 +v -0.108133 -0.103696 -0.065167 +v -0.120226 -0.104992 -0.065167 +v -0.106501 -0.102694 -0.065167 +v -0.122898 -0.102580 -0.065167 +v 0.012813 -0.073349 -0.036122 +v -0.196426 -0.071466 -0.034717 +v -0.098092 -0.075120 -0.034196 +v -0.146207 -0.075843 -0.034660 +v -0.019775 -0.084803 -0.032963 +v -0.072104 -0.074173 -0.033049 +v -0.045998 -0.076371 -0.033006 +v -0.424131 -0.046842 -0.040035 +v -0.424487 0.002283 -0.060537 +v -0.424487 0.045435 -0.042433 +v -0.378953 -0.002680 0.065172 +v 0.212611 0.044805 0.044067 +v -0.378243 -0.049219 0.040454 +v 0.511655 0.005655 0.004951 +v 0.511655 0.014323 0.009928 +v -0.378953 0.044805 0.045251 +v 0.511655 0.021628 0.004951 +v 0.296392 0.051346 0.039065 +v 0.296392 -0.051355 0.038417 +v 0.212611 -0.058696 0.039270 +v 0.212611 -0.002680 0.063988 +v 0.296392 -0.004712 0.055556 +v -0.470020 0.007247 0.055901 +v -0.470020 -0.033863 0.039615 +v -0.470020 0.046066 0.039615 +v -0.504866 0.007576 0.027580 +v -0.504866 -0.015092 0.019565 +v -0.504866 0.026681 0.019565 +v 0.417794 0.035928 0.027732 +v 0.417862 0.010074 0.038703 +v 0.418042 -0.020280 0.027718 +v -0.103707 0.044805 0.044659 +v -0.095180 -0.059866 0.039862 +v -0.145284 0.044805 0.044778 +v -0.103707 -0.002680 0.064580 +v -0.220059 -0.056313 0.040098 +v -0.213663 0.044805 0.044896 +v -0.213663 -0.002680 0.064817 +v 0.016182 0.044805 0.044401 +v 0.016182 -0.002680 0.064322 +v 0.021156 -0.057734 0.039604 +v -0.103679 -0.128289 0.020933 +v -0.169800 -0.124081 0.021746 +v -0.145284 -0.002680 0.064699 +v -0.144573 -0.059156 0.039980 +v -0.145256 -0.128299 0.021050 +v -0.028130 -0.059156 0.039733 +v -0.025998 0.044805 0.044530 +v -0.025998 -0.002680 0.064451 +v -0.028811 -0.126038 0.021380 +v -0.101004 -0.090373 0.028531 +v 0.004471 -0.088964 0.032639 +v -0.179611 -0.092300 0.029335 +v -0.147840 -0.092530 0.029340 +v -0.011421 -0.110450 0.026194 +v 0.438535 -0.016511 0.025733 +v 0.439229 0.012885 0.036411 +v 0.438680 0.033157 0.025848 +v 0.488551 0.025074 0.012937 +v 0.497469 0.013062 0.015893 +v 0.493078 -0.000808 0.010559 +v 0.457621 -0.052215 0.000328 +v 0.486007 -0.049835 0.001062 +v 0.489135 -0.011286 0.003540 +v 0.449628 -0.021564 0.002397 +v 0.452490 0.010420 0.032017 +v 0.450888 0.012577 0.032017 +v 0.452490 0.014448 0.032017 +v 0.491993 0.014448 0.019989 +v 0.493187 0.012577 0.019989 +v 0.491993 0.010420 0.019989 +v 0.463244 0.010420 0.061607 +v 0.461409 0.012577 0.061607 +v 0.463244 0.014448 0.061607 +v 0.488480 0.014448 0.059057 +v 0.489673 0.012577 0.059057 +v 0.488480 0.010420 0.059057 +v 0.450386 0.041229 0.002309 +v 0.486995 0.039392 0.003342 +v 0.457584 0.071526 0.000278 +v 0.486002 0.068886 0.001063 +v 0.372582 0.047066 0.030989 +v 0.372582 0.004185 0.046120 +v 0.372582 -0.034449 0.032051 +v 0.511655 0.005655 0.004951 +v 0.511655 0.014323 0.009928 +v 0.511655 0.021628 0.004951 +v 0.525395 0.008758 0.002746 +v 0.515740 0.008758 0.002746 +v 0.515740 0.011890 0.004273 +v 0.515740 0.014988 0.002825 +v 0.525395 0.011890 0.004273 +v 0.525395 0.014988 0.002825 +v -0.050480 -0.059392 0.039776 +v -0.072830 -0.059629 0.039819 +v -0.051873 -0.128594 0.021423 +v -0.077776 -0.128594 0.021466 +v -0.077804 0.044805 0.044616 +v -0.051901 0.044805 0.044573 +v -0.077804 -0.002680 0.064537 +v -0.051901 -0.002680 0.064494 +v -0.041517 -0.093350 0.026237 +v -0.071378 -0.088718 0.026280 +v 0.296392 0.072896 -0.000000 +v 0.212611 0.073334 -0.000000 +v -0.378243 -0.071446 0.000000 +v 0.212611 -0.072397 0.000000 +v 0.296392 -0.066926 0.000000 +v -0.378953 0.073334 -0.000000 +v 0.510470 0.002703 -0.000000 +v 0.510470 0.026017 -0.000000 +v -0.470020 -0.049546 0.000000 +v -0.470020 0.069389 -0.000000 +v -0.503090 -0.022810 0.000000 +v -0.503090 0.038159 0.000000 +v -0.513891 0.007675 0.000000 +v 0.415462 -0.032528 -0.000000 +v 0.414729 0.050184 -0.000000 +v -0.103707 0.073334 -0.000000 +v -0.221664 -0.076517 0.000000 +v -0.213663 0.073334 -0.000000 +v 0.016182 0.073334 -0.000000 +v 0.024709 -0.072856 0.000000 +v -0.169800 -0.129750 0.000000 +v 0.438241 0.045372 -0.000000 +v -0.010750 -0.113834 0.000000 +v -0.145284 0.073334 -0.000000 +v -0.145256 -0.134263 0.000000 +v -0.025998 0.073334 -0.000000 +v -0.028811 -0.131707 0.000000 +v 0.004471 -0.093705 0.000000 +v -0.192182 -0.098774 0.000000 +v 0.438373 -0.025623 -0.000000 +v 0.489175 0.028118 -0.000000 +v 0.493179 -0.005666 -0.000000 +v 0.457343 -0.052215 0.000000 +v 0.487158 -0.049835 0.000000 +v 0.447422 -0.024231 -0.000000 +v 0.489644 -0.010979 -0.000000 +v 0.446970 0.041229 -0.000000 +v 0.488729 0.039392 -0.000000 +v 0.457414 0.071526 -0.000000 +v 0.487056 0.068886 -0.000000 +v 0.372582 0.058885 -0.000000 +v 0.372582 -0.048949 0.000000 +v 0.510470 0.002703 -0.000000 +v 0.510470 0.026017 -0.000000 +v 0.515740 0.008758 -0.000000 +v 0.515225 0.008032 -0.000000 +v 0.515740 0.014988 -0.000000 +v 0.515225 0.015781 -0.000000 +v 0.524880 0.008032 -0.000000 +v 0.524880 0.015781 -0.000000 +v 0.527347 0.011810 -0.000000 +v -0.077804 0.073334 -0.000000 +v -0.051901 0.073334 -0.000000 +v -0.051873 -0.134263 0.000000 +v -0.120025 -0.131743 0.012698 +v -0.089441 -0.131743 0.012647 +v -0.104733 -0.131743 0.012672 +v -0.120025 -0.134116 0.000000 +v -0.089441 -0.134116 0.000000 +v -0.096949 -0.133905 0.000000 +v -0.112517 -0.133905 0.000000 +v -0.110237 -0.131352 0.005504 +v -0.104733 -0.131352 0.007784 +v -0.099229 -0.131352 0.005504 +v -0.096949 -0.146402 0.000000 +v -0.112517 -0.146402 0.000000 +v -0.110237 -0.146402 0.005504 +v -0.104733 -0.146402 0.007784 +v -0.099229 -0.146402 0.005504 +v -0.096949 -0.309639 0.000000 +v -0.112517 -0.309639 0.000000 +v -0.110237 -0.309639 0.005504 +v -0.104733 -0.309639 0.007784 +v -0.099229 -0.309639 0.005504 +v -0.145706 -0.318985 0.005504 +v -0.145706 -0.324489 0.007784 +v -0.145706 -0.329993 0.005504 +v -0.145706 -0.332273 0.000000 +v -0.145706 -0.316706 0.000000 +v -0.115907 -0.316706 0.000000 +v -0.115907 -0.332273 0.000000 +v -0.115907 -0.329993 0.005504 +v -0.115907 -0.324489 0.007784 +v -0.115907 -0.318985 0.005504 +v -0.112981 -0.314476 0.000000 +v -0.101974 -0.325484 0.000000 +v -0.103586 -0.323872 0.005504 +v -0.107478 -0.319980 0.007784 +v -0.111369 -0.316088 0.005504 +v -0.077776 -0.133292 0.000000 +v -0.145706 -0.319804 0.004685 +v -0.145706 -0.324489 0.006626 +v -0.145706 -0.329175 0.004685 +v -0.145706 -0.331115 0.000000 +v -0.145706 -0.317863 0.000000 +v -0.120728 -0.330146 0.000000 +v -0.120728 -0.328489 0.004000 +v -0.120728 -0.324489 0.005656 +v -0.120728 -0.320490 0.004000 +v -0.120728 -0.318833 0.000000 +v -0.120728 -0.324489 0.000000 +v -0.102383 -0.109911 0.026878 +v -0.018593 -0.124361 0.000000 +v -0.146509 -0.110962 0.026891 +v -0.018918 -0.119800 0.023713 +v -0.176358 -0.112152 0.025424 +v -0.182451 -0.118212 0.000000 +v -0.074675 -0.109265 0.023799 +v -0.046854 -0.111511 0.023756 +v -0.106319 -0.101496 0.028531 +v -0.141797 -0.100168 0.029340 +v -0.107087 -0.103696 0.026878 +v -0.140874 -0.104992 0.026891 +v -0.014671 -0.119098 0.000000 +v -0.179464 -0.101651 0.027380 +v -0.187317 -0.109068 0.000000 +v -0.101694 -0.100142 0.027239 +v -0.147175 -0.101746 0.028116 +v -0.015169 -0.115125 0.024953 +v -0.073027 -0.098992 0.025039 +v -0.044185 -0.102430 0.024996 +v -0.105455 -0.102694 0.027239 +v -0.143547 -0.102580 0.028116 +v -0.106319 -0.101496 0.062227 +v -0.125329 -0.100168 0.062227 +v -0.107087 -0.103696 0.062227 +v -0.124406 -0.104992 0.062227 +v -0.105455 -0.102694 0.062227 +v -0.127079 -0.102580 0.062227 +v -0.107364 -0.101496 0.065167 +v -0.121148 -0.100168 0.065167 +v -0.108133 -0.103696 0.065167 +v -0.120226 -0.104992 0.065167 +v -0.106501 -0.102694 0.065167 +v -0.122898 -0.102580 0.065167 +v 0.012813 -0.073349 0.036122 +v -0.196426 -0.071466 0.034717 +v -0.203515 -0.084806 0.000000 +v -0.098092 -0.075120 0.034196 +v 0.014590 -0.083280 0.000000 +v -0.146207 -0.075843 0.034660 +v -0.019775 -0.084803 0.032963 +v -0.072104 -0.074173 0.033049 +v -0.045998 -0.076371 0.033006 +v -0.424131 -0.065797 0.000000 +v -0.424131 -0.046842 0.040035 +v -0.424487 0.002283 0.060537 +v -0.424487 0.045435 0.042433 +v -0.424487 0.071361 -0.000000 +vt 0.956699 0.719683 +vt 0.973082 0.719310 +vt 0.974494 0.728254 +vt 0.949748 0.704509 +vt 0.974991 0.711418 +vt 0.958181 0.693076 +vt 0.977042 0.704159 +vt 0.907825 0.773992 +vt 0.887056 0.783358 +vt 0.880780 0.755188 +vt 0.286455 0.752799 +vt 0.137715 0.743003 +vt 0.138655 0.698133 +vt 0.694869 0.800055 +vt 0.769701 0.787194 +vt 0.776890 0.824753 +vt 0.277870 0.810293 +vt 0.267395 0.851549 +vt 0.123009 0.829069 +vt 0.688444 0.648397 +vt 0.767177 0.648892 +vt 0.765769 0.689809 +vt 0.288114 0.704141 +vt 0.135808 0.648392 +vt 0.689264 0.697552 +vt 0.766204 0.742566 +vt 0.131898 0.789275 +vt 0.690402 0.744884 +vt 0.097617 0.777222 +vt 0.084045 0.812811 +vt 0.045082 0.796553 +vt 0.103543 0.736881 +vt 0.063335 0.765169 +vt 0.101905 0.699179 +vt 0.069372 0.730760 +vt 0.093869 0.656193 +vt 0.065156 0.700224 +vt 0.037224 0.728794 +vt 0.032491 0.746804 +vt 0.033494 0.713118 +vt 0.021201 0.695908 +vt 0.017826 0.760292 +vt 0.010998 0.727527 +vt 0.977171 0.704193 +vt 0.975703 0.734427 +vt 0.974615 0.728233 +vt 0.838588 0.769634 +vt 0.835263 0.690651 +vt 0.839009 0.659916 +vt 0.879313 0.668961 +vt 0.835369 0.732184 +vt 0.877743 0.698691 +vt 0.877323 0.725104 +vt 0.415659 0.754567 +vt 0.419670 0.813267 +vt 0.398655 0.813246 +vt 0.415931 0.705907 +vt 0.391538 0.705777 +vt 0.391906 0.656135 +vt 0.391122 0.754382 +vt 0.351927 0.812827 +vt 0.352421 0.705403 +vt 0.289522 0.654422 +vt 0.468309 0.867106 +vt 0.471717 0.863299 +vt 0.483180 0.882615 +vt 0.351716 0.754025 +vt 0.505857 0.754851 +vt 0.504829 0.705273 +vt 0.699604 0.838311 +vt 0.522669 0.854806 +vt 0.503774 0.655536 +vt 0.511306 0.814964 +vt 0.352497 0.879550 +vt 0.351096 0.899092 +vt 0.324099 0.895900 +vt 0.308155 0.883658 +vt 0.323932 0.864809 +vt 0.329413 0.877829 +vt 0.493037 0.837225 +vt 0.500877 0.868485 +vt 0.353163 0.655720 +vt 0.351389 0.862551 +vt 0.442095 0.863398 +vt 0.464902 0.870842 +vt 0.458778 0.877530 +vt 0.897456 0.701066 +vt 0.896868 0.721761 +vt 0.465002 0.754877 +vt 0.464844 0.705847 +vt 0.464449 0.656145 +vt 0.462247 0.814277 +vt 0.466982 0.838788 +vt 0.447123 0.847503 +vt 0.350750 0.829156 +vt 0.349573 0.845485 +vt 0.317535 0.847624 +vt 0.502172 0.826094 +vt 0.280974 0.860490 +vt 0.297702 0.828959 +vt 0.511773 0.861646 +vt 0.395896 0.828442 +vt 0.393138 0.843639 +vt 0.922858 0.260577 +vt 0.925930 0.259385 +vt 0.935654 0.293772 +vt 0.901593 0.674617 +vt 0.899437 0.749902 +vt 0.960525 0.746115 +vt 0.954794 0.735768 +vt 0.912682 0.680414 +vt 0.950788 0.720117 +vt 0.949700 0.718292 +vt 0.909608 0.719599 +vt 0.918396 0.308253 +vt 0.918484 0.307670 +vt 0.934245 0.293888 +vt 0.890558 0.291134 +vt 0.890558 0.296112 +vt 0.917233 0.766853 +vt 0.953478 0.749118 +vt 0.956504 0.750947 +vt 0.708158 0.132508 +vt 0.704332 0.132234 +vt 0.716412 0.089060 +vt 0.773619 0.132508 +vt 0.746105 0.089377 +vt 0.748250 0.086560 +vt 0.909786 0.723528 +vt 0.908195 0.721502 +vt 0.949739 0.722183 +vt 0.782891 0.117603 +vt 0.808955 0.119545 +vt 0.810904 0.121963 +vt 0.719849 0.091084 +vt 0.835681 0.076855 +vt 0.838224 0.078280 +vt 0.771670 0.076855 +vt 0.779742 0.119304 +vt 0.947052 0.231319 +vt 0.942942 0.232366 +vt 0.937691 0.203709 +vt 0.910529 0.677094 +vt 0.948600 0.686253 +vt 0.915767 0.202873 +vt 0.938912 0.202873 +vt 0.902311 0.229152 +vt 0.916150 0.203292 +vt 0.898615 0.227897 +vt 0.847021 0.801607 +vt 0.973236 0.719313 +vt 0.980624 0.721996 +vt 0.975133 0.711453 +vt 0.981902 0.717750 +vt 0.983569 0.714759 +vt 0.992567 0.719520 +vt 0.980571 0.726412 +vt 0.989793 0.725888 +vt 0.990587 0.728388 +vt 0.981204 0.729516 +vt 0.993796 0.724584 +vt 0.989802 0.723612 +vt 0.990759 0.721624 +vt 0.420067 0.828054 +vt 0.420464 0.842841 +vt 0.443942 0.830522 +vt 0.391734 0.861782 +vt 0.417316 0.861560 +vt 0.414702 0.879465 +vt 0.438011 0.878742 +vt 0.463775 0.895049 +vt 0.439829 0.898990 +vt 0.440295 0.754740 +vt 0.440364 0.705938 +vt 0.440263 0.656268 +vt 0.416082 0.656257 +vt 0.440761 0.813541 +vt 0.403951 0.888257 +vt 0.415290 0.900009 +vt 0.390625 0.879851 +vt 0.374799 0.900133 +vt 0.375264 0.888040 +vt 0.384354 0.894908 +vt 0.389584 0.888211 +vt 0.389551 0.892816 +vt 0.394721 0.894985 +vt 0.404220 0.900399 +vt 0.397123 0.900623 +vt 0.201431 0.018740 +vt 0.204459 0.032820 +vt 0.198901 0.034006 +vt 0.185297 0.024764 +vt 0.190322 0.021174 +vt 0.193388 0.035191 +vt 0.207523 0.019904 +vt 0.210089 0.031604 +vt 0.195868 0.019959 +vt 0.242781 0.183629 +vt 0.237075 0.184535 +vt 0.231698 0.186019 +vt 0.226252 0.187508 +vt 0.220586 0.188371 +vt 0.227975 0.203945 +vt 0.232410 0.196081 +vt 0.237446 0.197744 +vt 0.231540 0.208340 +vt 0.242781 0.199409 +vt 0.213511 0.225097 +vt 0.210377 0.221512 +vt 0.235589 0.212241 +vt 0.215991 0.229265 +vt 0.219927 0.195976 +vt 0.221003 0.192874 +vt 0.226787 0.194301 +vt 0.206719 0.218153 +vt 0.224298 0.199339 +vt 0.202150 0.215354 +vt 0.206074 0.218974 +vt 0.209672 0.222170 +vt 0.215115 0.229392 +vt 0.212790 0.225598 +vt 0.140139 0.057135 +vt 0.157845 0.057141 +vt 0.152655 0.069659 +vt 0.198295 0.243393 +vt 0.152664 0.044619 +vt 0.195828 0.240517 +vt 0.193472 0.238001 +vt 0.190979 0.235622 +vt 0.188364 0.233395 +vt 0.874095 0.050219 +vt 0.875908 0.043938 +vt 0.878762 0.051906 +vt 0.418842 0.852187 +vt 0.444506 0.855530 +vt 0.392448 0.852757 +vt 0.350516 0.854102 +vt 0.301302 0.876545 +vt 0.320771 0.856514 +vt 0.473809 0.889187 +vt 0.920749 0.053099 +vt 0.907153 0.084830 +vt 0.895681 0.081984 +vt 0.922440 0.043939 +vt 0.958282 0.098639 +vt 0.954459 0.092451 +vt 0.956155 0.091536 +vt 0.913736 0.098639 +vt 0.918947 0.092696 +vt 0.923698 0.049927 +vt 0.922612 0.052967 +vt 0.915945 0.090531 +vt 0.933466 0.059802 +vt 0.294553 0.869430 +vt 0.912536 0.090359 +vt 0.478530 0.885930 +vt 0.936616 0.060625 +vt 0.937370 0.056797 +vt 0.908205 0.085437 +vt 0.906287 0.087309 +vt 0.949638 0.059539 +vt 0.893472 0.082637 +vt 0.896349 0.085428 +vt 0.898089 0.084370 +vt 0.905592 0.086379 +vt 0.948228 0.057363 +vt 0.939888 0.058329 +vt 0.949667 0.056538 +vt 0.051929 0.663994 +vt 0.975810 0.734403 +vt 0.916076 0.770760 +vt 0.951627 0.684121 +vt 0.381864 0.900481 +vt 0.187840 0.036396 +vt 0.201962 0.216530 +vt 0.875817 0.052307 +vt 0.951387 0.059099 +vt 0.776477 0.130857 +vt 0.768235 0.077013 +vt 0.140133 0.074841 +vt 0.140145 0.039428 +vt 0.960070 0.090264 +vn 0.551200 0.039400 -0.833400 +vn 0.950700 0.181400 0.251500 +vn 0.478000 -0.752000 0.453900 +vn 0.367000 0.671900 -0.643200 +vn 0.274600 0.846900 0.455200 +vn 0.766600 0.642000 0.000000 +vn 0.064600 0.655500 0.752400 +vn 0.258500 -0.966000 0.000000 +vn 0.318600 -0.947900 0.000000 +vn 0.240900 -0.665100 -0.706800 +vn -0.000700 -0.014900 -0.999900 +vn -0.042200 -0.043000 -0.998200 +vn -0.018500 0.642400 -0.766100 +vn 0.030900 -0.736000 -0.676200 +vn 0.141900 -0.694100 -0.705700 +vn 0.154300 -0.988000 0.000000 +vn -0.095700 -0.641800 -0.760800 +vn -0.248600 -0.968600 0.000000 +vn -0.080900 -0.996700 0.000000 +vn -0.012600 0.999900 0.000000 +vn 0.091000 0.995800 0.000000 +vn 0.069900 0.636500 -0.768100 +vn 0.001200 0.645100 -0.764100 +vn -0.016700 0.999800 0.000000 +vn 0.013600 0.626200 -0.779500 +vn 0.102100 -0.035900 -0.994100 +vn -0.044300 -0.706400 -0.706400 +vn 0.043600 -0.001400 -0.999000 +vn -0.145300 -0.709100 -0.689900 +vn -0.206500 -0.978400 0.000000 +vn -0.457000 -0.889400 0.000000 +vn -0.098200 0.004400 -0.995100 +vn -0.403100 -0.630100 -0.663600 +vn -0.040000 0.649700 -0.759100 +vn -0.355300 0.025400 -0.934400 +vn -0.038500 0.999200 0.000000 +vn -0.335300 0.626100 -0.704000 +vn -0.793800 0.020200 -0.607900 +vn -0.795500 -0.449000 -0.406800 +vn -0.797000 0.417400 -0.436500 +vn -0.788900 0.614500 0.000000 +vn -0.771500 -0.636200 0.000000 +vn -0.999900 0.011200 0.000000 +vn 0.424100 0.197000 0.883900 +vn 0.333300 -0.680300 0.652700 +vn 0.619300 -0.491800 0.612000 +vn 0.243400 -0.662900 -0.708000 +vn 0.154900 0.697800 -0.699300 +vn 0.161400 0.986900 0.000000 +vn 0.225000 0.974300 0.000000 +vn 0.154600 -0.005400 -0.987900 +vn 0.166500 0.672400 -0.721200 +vn 0.132100 0.028700 -0.990800 +vn 0.001900 -0.005700 -1.000000 +vn 0.005800 -0.410100 -0.912000 +vn 0.010400 -0.381400 -0.924300 +vn 0.001200 0.643900 -0.765100 +vn 0.001500 0.644200 -0.764800 +vn 0.000200 1.000000 0.000000 +vn 0.001500 -0.006100 -1.000000 +vn -0.004400 -0.358000 -0.933700 +vn 0.001600 0.644500 -0.764500 +vn 0.000300 1.000000 0.000000 +vn 0.444900 -0.536900 -0.716800 +vn 0.453900 -0.563800 -0.690000 +vn 0.797300 -0.603500 0.000000 +vn 0.002300 -0.007600 -0.999900 +vn 0.003800 -0.010800 -0.999900 +vn 0.001600 0.643200 -0.765600 +vn 0.033600 -0.999400 0.000000 +vn 0.435300 -0.900300 0.000000 +vn 0.000400 1.000000 0.000000 +vn 0.157500 -0.582400 -0.797500 +vn -0.065100 -0.732800 -0.677300 +vn -0.103200 -0.994600 0.000000 +vn -0.423100 -0.906000 0.000000 +vn -0.811000 -0.585000 0.000000 +vn -0.528100 -0.388400 -0.755100 +vn -0.377800 -0.687000 -0.620700 +vn 0.508300 -0.510500 -0.693500 +vn 0.759900 -0.650000 0.000000 +vn -0.002900 -0.215900 -0.976400 +vn -0.015900 -0.138400 -0.990200 +vn 0.402800 -0.612300 -0.680300 +vn 0.204100 -0.722500 -0.660500 +vn 0.210700 0.706700 -0.675400 +vn 0.192100 0.068700 -0.978900 +vn 0.002300 -0.007700 -0.999900 +vn 0.001700 0.643500 -0.765400 +vn -0.011000 -0.346500 -0.938000 +vn -0.076300 -0.285500 -0.955300 +vn -0.081100 -0.263600 -0.961200 +vn 0.001800 -0.303300 -0.952900 +vn -0.013700 -0.201500 -0.979400 +vn -0.394000 -0.364600 -0.843700 +vn 0.501500 -0.456800 -0.734700 +vn -0.604900 -0.796200 0.000000 +vn -0.275900 -0.577100 -0.768600 +vn 0.743800 -0.668400 0.000000 +vn 0.037600 -0.357100 -0.933300 +vn 0.070100 -0.224100 -0.972000 +vn 0.640400 -0.441500 -0.628400 +vn 0.940400 -0.340000 0.000000 +vn 0.796300 -0.604800 0.000000 +vn 0.301100 0.953600 0.000000 +vn 0.261800 -0.681400 -0.683400 +vn 0.721400 -0.692500 0.000000 +vn 0.420600 -0.637800 -0.645100 +vn -0.150900 0.650100 -0.744700 +vn 0.873700 0.014200 -0.486300 +vn 0.534800 0.700100 -0.473000 +vn -0.033600 0.716400 -0.696900 +vn -0.682100 -0.731200 0.000000 +vn -0.233300 -0.723400 -0.649700 +vn 0.286900 -0.622500 -0.728100 +vn 0.078600 -0.670900 -0.737400 +vn -0.427200 -0.904100 0.000000 +vn -0.021400 -0.660700 -0.750400 +vn -0.118800 0.000200 -0.992900 +vn -0.682600 0.029300 -0.730200 +vn 0.556800 -0.672800 -0.487000 +vn 0.412400 -0.699600 -0.583500 +vn 0.789700 0.025000 -0.612900 +vn -0.189600 0.676200 -0.711900 +vn 0.391100 0.710400 -0.585100 +vn -0.212000 -0.674900 -0.706800 +vn 0.998400 0.056000 0.000000 +vn 0.591500 0.244800 -0.768200 +vn 0.323400 0.606300 -0.726400 +vn -0.134800 0.990900 0.000000 +vn -0.682200 0.731100 0.000000 +vn 0.818200 0.574900 0.000000 +vn -0.295800 0.710100 -0.638900 +vn 0.297300 -0.954800 0.000000 +vn 0.668300 0.047000 0.742400 +vn 0.479600 -0.078300 -0.874000 +vn 0.697300 0.326500 0.638100 +vn 0.544300 0.656900 -0.521700 +vn 0.586300 0.810100 0.000000 +vn 0.412900 0.910700 0.000000 +vn 0.383600 -0.731600 -0.563600 +vn 0.496300 -0.690100 -0.526700 +vn 0.404600 -0.914500 0.000000 +vn 0.429300 -0.903100 0.000000 +vn 0.999900 -0.010500 0.000000 +vn 0.482200 -0.006100 -0.876000 +vn 0.501100 0.679900 -0.535300 +vn 0.009900 -0.410200 -0.911900 +vn 0.019500 -0.276200 -0.960900 +vn -0.056800 -0.368300 -0.927900 +vn 0.033000 -0.154300 -0.987500 +vn 0.046800 -0.123400 -0.991200 +vn 0.035700 -0.676900 -0.735200 +vn 0.029300 -0.675000 -0.737200 +vn 0.345600 -0.938400 0.000000 +vn 0.036000 -0.999300 0.000000 +vn 0.002200 -0.006800 -1.000000 +vn 0.001200 0.643800 -0.765200 +vn -0.000800 -0.391100 -0.920300 +vn 0.000600 -0.970800 -0.239800 +vn 0.035200 -0.999400 0.000000 +vn -0.005800 -0.680300 -0.732900 +vn 0.065700 -0.997800 0.000000 +vn 0.022600 -0.964400 -0.263300 +vn -0.310500 -0.819400 -0.481800 +vn 0.000300 -0.986300 -0.164700 +vn 0.000000 -0.833700 -0.552200 +vn 0.310600 -0.819400 -0.481800 +vn -0.027400 -0.999600 0.000000 +vn 0.708400 -0.705800 0.000000 +vn 0.707100 0.000000 -0.707100 +vn 0.000000 0.000000 -1.000000 +vn -0.708400 -0.705800 0.000000 +vn -0.707100 0.000000 -0.707100 +vn 1.000000 0.000000 0.000000 +vn 0.989500 -0.144100 0.000000 +vn 0.720100 -0.106400 -0.685600 +vn 0.027600 -0.011700 -0.999500 +vn -0.700800 0.053300 -0.711400 +vn -0.998800 0.048400 0.000000 +vn 0.026600 -0.056900 -0.998000 +vn 0.077600 -0.054200 -0.995500 +vn 0.573400 -0.484400 -0.660700 +vn 0.169300 -0.718400 -0.674700 +vn 0.754500 -0.656200 0.000000 +vn -0.630200 -0.549000 -0.549000 +vn -0.630200 0.000000 -0.776400 +vn 0.213600 -0.976900 0.000000 +vn -0.630200 -0.776400 0.000000 +vn -0.324100 0.946000 0.000000 +vn -0.876400 0.481600 0.000000 +vn -0.548000 0.361400 -0.754300 +vn -0.630200 0.549000 -0.549000 +vn -0.187000 0.650000 -0.736600 +vn -0.630200 0.776400 0.000000 +vn -0.814800 -0.409900 0.409900 +vn -0.814800 0.000000 0.579700 +vn -0.814800 0.579700 0.000000 +vn -0.814800 0.409900 0.409900 +vn -1.000000 0.000000 0.000000 +vn -0.644800 0.000000 0.764400 +vn -0.644800 0.540500 0.540500 +vn -0.644800 0.764400 0.000000 +vn -0.644800 -0.540500 0.540500 +vn -0.644800 -0.764400 0.000000 +vn -0.068200 -0.162600 -0.984300 +vn -0.362500 0.291100 -0.885300 +vn 0.035400 -0.126300 -0.991300 +vn -0.031500 -0.127900 -0.991300 +vn 0.167000 -0.134100 -0.976800 +vn -0.900300 -0.435100 0.000000 +vn -0.570800 -0.245100 -0.783600 +vn 0.681800 -0.731600 0.000000 +vn 0.535100 0.423900 -0.730800 +vn 0.519400 0.849600 -0.091400 +vn -0.386500 0.832800 -0.396300 +vn 0.124700 -0.623100 -0.772100 +vn 0.388300 -0.399500 -0.830400 +vn -0.098800 -0.532300 -0.840800 +vn -0.283300 -0.355800 -0.890500 +vn -0.796700 -0.099400 -0.596100 +vn -0.861300 -0.508000 0.000000 +vn 0.799100 -0.601200 0.000000 +vn -0.322400 -0.882300 -0.343000 +vn -0.413900 -0.075400 -0.907200 +vn 0.970600 -0.183300 -0.156000 +vn 0.698000 -0.169200 -0.695800 +vn 0.334100 -0.940700 -0.058700 +vn -0.097300 0.732200 -0.674100 +vn 0.311500 0.663800 -0.679900 +vn 0.200000 -0.689000 -0.696600 +vn -0.062100 -0.741600 -0.668000 +vn 0.223600 -0.351800 0.909000 +vn 0.192200 0.036700 0.980700 +vn 0.551200 0.039400 0.833400 +vn 0.120200 0.370700 0.920900 +vn 0.261800 -0.681400 0.683400 +vn 0.240900 -0.665100 0.706800 +vn -0.018500 0.642400 0.766100 +vn -0.042200 -0.043000 0.998200 +vn -0.000700 -0.014900 0.999900 +vn 0.141900 -0.694100 0.705700 +vn 0.030900 -0.736000 0.676200 +vn -0.095700 -0.641800 0.760800 +vn -0.044300 -0.706400 0.706400 +vn 0.069900 0.636500 0.768100 +vn 0.001200 0.645100 0.764100 +vn 0.102100 -0.035900 0.994100 +vn 0.013600 0.626200 0.779500 +vn 0.043600 -0.001400 0.999000 +vn -0.145300 -0.709100 0.689900 +vn -0.403100 -0.630100 0.663600 +vn -0.098200 0.004400 0.995100 +vn -0.355300 0.025400 0.934400 +vn -0.040000 0.649700 0.759100 +vn -0.335300 0.626100 0.704000 +vn -0.353900 0.935300 0.000000 +vn -0.797000 0.417400 0.436500 +vn -0.793800 0.020200 0.607900 +vn -0.795500 -0.449000 0.406800 +vn 0.538700 0.252200 0.803900 +vn 0.404600 -0.361000 0.840200 +vn 0.403300 -0.320300 0.857100 +vn 0.243400 -0.662900 0.708000 +vn 0.154900 0.697800 0.699300 +vn 0.166500 0.672400 0.721200 +vn 0.154600 -0.005400 0.987900 +vn 0.132100 0.028700 0.990800 +vn 0.001900 -0.005700 1.000000 +vn 0.001500 -0.006100 1.000000 +vn 0.010400 -0.381400 0.924300 +vn 0.001500 0.644200 0.764800 +vn 0.001200 0.643900 0.765100 +vn -0.004400 -0.358000 0.933700 +vn 0.001600 0.644500 0.764500 +vn 0.453900 -0.563800 0.690000 +vn 0.444900 -0.536900 0.716800 +vn 0.002300 -0.007600 0.999900 +vn 0.001600 0.643200 0.765600 +vn 0.003800 -0.010800 0.999900 +vn 0.157500 -0.582400 0.797500 +vn -0.065100 -0.732800 0.677300 +vn -0.377800 -0.687000 0.620700 +vn 0.508300 -0.510500 0.693500 +vn -0.002900 -0.215900 0.976400 +vn -0.015900 -0.138400 0.990200 +vn 0.029300 -0.675000 0.737200 +vn 0.204100 -0.722500 0.660500 +vn 0.192100 0.068700 0.978900 +vn 0.210700 0.706700 0.675400 +vn 0.001700 0.643500 0.765400 +vn 0.002300 -0.007700 0.999900 +vn -0.011000 -0.346500 0.938000 +vn -0.081100 -0.263600 0.961200 +vn -0.076300 -0.285500 0.955300 +vn -0.394000 -0.364600 0.843700 +vn -0.013700 -0.201500 0.979400 +vn 0.001800 -0.303300 0.952900 +vn 0.070100 -0.224100 0.972000 +vn 0.640400 -0.441500 0.628400 +vn 0.286900 -0.622500 0.728100 +vn 0.420600 -0.637800 0.645100 +vn 0.367000 0.671900 0.643200 +vn 0.591500 0.244800 0.768200 +vn -0.150900 0.650100 0.744700 +vn 0.534800 0.700100 0.473000 +vn 0.873700 0.014200 0.486300 +vn -0.118800 0.000200 0.992900 +vn -0.033600 0.716400 0.696900 +vn -0.233300 -0.723400 0.649700 +vn 0.078600 -0.670900 0.737400 +vn -0.021400 -0.660700 0.750400 +vn -0.212000 -0.674900 0.706800 +vn -0.682600 0.029300 0.730200 +vn 0.789700 0.025000 0.612900 +vn 0.412400 -0.699600 0.583500 +vn 0.556800 -0.672800 0.487000 +vn 0.391100 0.710400 0.585100 +vn -0.189600 0.676200 0.711900 +vn 0.323400 0.606300 0.726500 +vn -0.295800 0.710100 0.638900 +vn 0.383600 -0.731600 0.563600 +vn 0.479600 -0.078300 0.874000 +vn 0.363500 0.025600 0.931200 +vn 0.544300 0.656900 0.521700 +vn 0.501100 0.679900 0.535300 +vn 0.496300 -0.690100 0.526700 +vn 0.482200 -0.006100 0.876000 +vn 0.037600 -0.357100 0.933300 +vn 0.019500 -0.276200 0.960900 +vn -0.056800 -0.368300 0.927900 +vn 0.033000 -0.154300 0.987500 +vn -0.005800 -0.680300 0.732900 +vn 0.035700 -0.676900 0.735200 +vn 0.046800 -0.123400 0.991200 +vn 0.001200 0.643800 0.765200 +vn 0.002200 -0.006800 1.000000 +vn -0.000800 -0.391100 0.920300 +vn 0.005800 -0.410100 0.912000 +vn 0.000600 -0.970800 0.239800 +vn 0.000300 -0.986300 0.164700 +vn -0.310500 -0.819400 0.481800 +vn 0.000000 -0.833700 0.552200 +vn 0.310600 -0.819400 0.481800 +vn 0.000000 0.000000 1.000000 +vn 0.707100 0.000000 0.707100 +vn -0.707100 0.000000 0.707100 +vn 0.720100 -0.106400 0.685600 +vn -0.700800 0.053300 0.711400 +vn 0.027600 -0.011700 0.999500 +vn 0.573400 -0.484400 0.660700 +vn 0.077600 -0.054200 0.995500 +vn 0.026600 -0.056900 0.998000 +vn 0.169300 -0.718400 0.674700 +vn -0.630200 0.000000 0.776400 +vn -0.630200 -0.549000 0.549000 +vn -0.548000 0.361400 0.754300 +vn -0.630200 0.549000 0.549000 +vn -0.187000 0.650000 0.736600 +vn 0.022600 -0.964400 0.263300 +vn -0.814800 -0.579700 0.000000 +vn -0.814800 -0.409900 -0.409900 +vn -0.814800 0.000000 -0.579700 +vn -0.814800 0.409900 -0.409900 +vn -0.644800 0.540500 -0.540500 +vn -0.644800 0.000000 -0.764400 +vn -0.644800 -0.540500 -0.540500 +vn -0.068200 -0.162600 0.984300 +vn -0.283300 -0.355800 0.890500 +vn -0.362500 0.291100 0.885300 +vn 0.035400 -0.126300 0.991300 +vn 0.167000 -0.134100 0.976800 +vn -0.031500 -0.127900 0.991300 +vn 0.402800 -0.612300 0.680300 +vn -0.528100 -0.388400 0.755100 +vn -0.386500 0.832800 0.396300 +vn 0.519400 0.849600 0.091400 +vn 0.535100 0.423900 0.730800 +vn 0.388300 -0.399500 0.830400 +vn 0.124700 -0.623100 0.772100 +vn -0.098800 -0.532300 0.840800 +vn -0.322400 -0.882300 0.343000 +vn -0.796700 -0.099400 0.596100 +vn -0.570800 -0.245100 0.783600 +vn -0.062100 -0.741600 0.668000 +vn -0.413900 -0.075400 0.907200 +vn 0.311500 0.663800 0.679900 +vn 0.698000 -0.169200 0.695800 +vn 0.970600 -0.183300 0.156000 +vn 0.334100 -0.940700 0.058700 +vn -0.097300 0.732200 0.674100 +vn 0.200000 -0.689000 0.696600 +vn 0.009900 -0.410200 0.911900 +vn 0.501500 -0.456800 0.734700 +vn -0.275900 -0.577100 0.768600 +usemtl Material +s 1 +f 50/1/1 5/2/2 4/3/3 +f 50/1/1 49/4/4 7/5/5 +f 284/6/6 261/7/7 7/5/5 +f 283/8/8 267/9/9 21/10/10 +f 28/11/11 1/12/12 6/13/13 +f 10/14/14 9/15/15 258/16/16 +f 26/17/17 270/18/18 256/19/19 +f 255/20/20 254/21/21 8/22/22 +f 27/23/23 6/13/13 259/24/24 +f 2/25/25 8/22/22 12/26/26 +f 26/17/17 3/27/27 1/12/12 +f 11/28/28 12/26/26 9/15/15 +f 158/29/29 398/30/30 262/31/31 +f 159/32/32 158/29/29 14/33/33 +f 160/34/34 159/32/32 13/35/35 +f 402/36/36 160/34/34 15/37/37 +f 15/37/37 13/35/35 16/38/38 +f 13/35/35 14/33/33 17/39/39 +f 15/37/37 18/40/40 265/41/41 +f 14/33/33 262/31/31 264/42/42 +f 18/40/40 16/38/38 266/43/43 +f 17/39/39 264/42/42 266/43/43 +f 7/5/5 261/7/7 297/44/44 +f 260/45/45 4/3/3 75/46/46 +f 74/47/47 21/10/10 267/9/9 +f 72/48/48 294/49/49 268/50/50 +f 73/51/51 72/48/48 19/52/52 +f 73/51/51 20/53/53 21/10/10 +f 90/54/54 85/55/55 23/56/56 +f 88/57/57 22/58/58 269/59/59 +f 90/54/54 25/60/60 22/58/58 +f 35/61/61 26/17/17 28/11/11 +f 24/62/62 27/23/23 271/63/63 +f 134/64/64 45/65/65 276/66/66 +f 34/67/67 28/11/11 27/23/23 +f 11/28/28 30/68/68 29/69/69 +f 10/14/14 257/70/70 273/71/71 +f 2/25/25 29/69/69 272/72/72 +f 11/28/28 10/14/14 31/73/73 +f 36/74/74 278/75/75 274/76/76 +f 360/77/77 124/78/78 33/79/79 +f 45/65/65 42/80/80 281/81/81 +f 25/60/60 34/67/67 24/62/62 +f 22/58/58 24/62/62 277/82/72 +f 25/60/60 23/56/56 35/61/61 +f 122/83/82 36/74/74 33/79/79 +f 126/84/83 123/85/84 40/86/85 +f 19/52/52 48/87/86 47/88/87 +f 30/68/68 39/89/88 38/90/89 +f 29/69/69 38/90/89 279/91/72 +f 30/68/68 31/73/73 37/92/90 +f 155/93/91 45/65/65 92/94/92 +f 154/95/93 44/96/94 43/97/95 +f 155/93/91 151/98/96 42/80/80 +f 391/99/97 152/100/98 43/97/95 +f 393/101/99 281/81/81 42/80/80 +f 154/95/93 153/102/100 41/103/101 +f 54/104/102 289/105/103 287/106/104 +f 19/52/52 268/50/50 275/107/105 +f 20/53/53 47/88/87 46/108/106 +f 260/45/45 285/109/107 51/110/108 +f 49/4/4 48/87/86 68/111/109 +f 50/1/1 60/112/110 59/113/111 +f 47/88/87 48/87/86 58/114/112 +f 286/115/113 52/116/114 53/117/115 +f 55/118/116 54/104/102 53/117/115 +f 288/119/117 55/118/116 52/116/114 +f 283/8/8 46/108/106 55/120/116 +f 51/110/108 54/121/102 55/120/116 +f 285/109/107 289/122/103 54/121/102 +f 56/123/118 57/124/119 63/125/120 +f 61/126/121 67/127/122 66/128/123 +f 51/110/108 46/108/106 56/129/118 +f 49/4/4 59/113/111 58/114/112 +f 47/88/87 57/130/119 56/129/118 +f 50/1/1 51/110/108 61/131/121 +f 64/132/124 65/133/125 66/134/123 +f 62/135/126 63/125/120 66/128/123 +f 56/123/118 62/135/126 67/127/122 +f 59/136/111 60/137/110 66/134/123 +f 58/138/112 59/136/111 65/133/125 +f 58/138/112 64/132/124 63/139/120 +f 291/140/127 69/141/128 71/142/129 +f 48/87/86 275/107/105 290/143/130 +f 284/6/6 49/4/4 69/144/128 +f 292/145/131 293/146/132 71/142/129 +f 69/141/128 68/147/109 70/148/133 +f 68/147/109 290/149/130 292/145/131 +f 9/15/15 74/47/47 295/150/134 +f 8/22/22 72/48/48 73/51/51 +f 12/26/26 73/51/51 74/47/47 +f 294/49/49 72/48/48 8/22/22 +f 75/46/46 76/151/135 80/152/136 +f 76/151/135 77/153/137 81/154/138 +f 5/2/2 7/5/5 77/153/137 +f 4/3/3 5/2/2 76/151/135 +f 81/154/138 301/155/139 303/156/140 +f 79/157/141 78/158/142 302/159/143 +f 75/46/46 79/157/141 299/160/144 +f 77/153/137 297/44/44 301/155/139 +f 304/161/145 302/159/143 78/158/142 +f 304/161/145 82/162/146 83/163/147 +f 80/152/136 81/154/138 83/163/147 +f 79/157/141 80/152/136 82/162/146 +f 153/102/100 156/164/148 93/165/149 +f 157/166/150 92/94/92 93/165/149 +f 121/167/151 125/168/152 87/169/153 +f 125/168/152 126/84/83 86/170/154 +f 280/171/155 307/172/156 86/170/154 +f 39/89/88 91/173/157 89/174/158 +f 91/173/157 90/54/54 88/57/57 +f 38/90/89 89/174/158 306/175/59 +f 89/174/158 88/57/57 305/176/59 +f 37/92/90 84/177/159 91/173/157 +f 91/173/157 84/177/159 85/55/55 +f 95/178/160 87/169/153 343/179/161 +f 32/180/162 87/169/153 95/178/160 +f 86/170/154 307/172/156 343/179/161 +f 311/181/163 94/182/164 97/183/165 +f 96/184/166 98/185/167 97/183/165 +f 96/184/166 95/178/160 99/186/168 +f 312/187/169 313/188/170 99/186/168 +f 99/189/168 102/190/171 101/191/172 +f 314/192/173 97/193/165 100/194/174 +f 313/195/170 318/196/175 102/190/171 +f 98/197/167 101/191/172 100/194/174 +f 318/196/175 323/198/176 105/199/177 +f 101/191/172 104/200/178 103/201/179 +f 101/191/172 102/190/171 105/199/177 +f 100/194/174 103/201/179 324/202/180 +f 110/203/181 113/204/182 112/205/183 +f 109/206/184 112/205/183 339/207/185 +f 109/206/184 108/208/186 107/209/187 +f 334/210/188 331/211/189 108/208/186 +f 333/212/190 338/213/191 114/214/192 +f 110/203/181 107/209/187 106/215/193 +f 111/216/194 106/215/193 332/217/195 +f 111/216/194 114/214/192 113/204/182 +f 103/201/179 114/214/192 338/213/191 +f 104/200/178 113/204/182 114/214/192 +f 105/199/177 112/205/183 113/204/182 +f 323/198/176 339/207/185 112/205/183 +f 94/182/164 311/181/163 278/75/75 +f 32/180/162 96/184/166 94/182/164 +f 332/217/195 106/215/193 115/218/196 +f 106/215/193 107/209/187 116/219/197 +f 331/211/189 347/220/198 117/221/199 +f 108/208/186 117/221/199 116/219/197 +f 354/222/200 119/223/201 118/224/202 +f 117/221/199 347/220/198 349/225/203 +f 120/226/204 119/223/201 354/222/200 +f 117/221/199 118/227/202 119/228/201 +f 116/219/197 119/228/201 120/229/204 +f 115/218/196 120/229/204 353/230/205 +f 133/231/206 44/232/94 128/233/207 +f 32/180/162 36/74/74 122/83/82 +f 135/234/208 136/235/209 126/84/83 +f 132/236/210 135/234/208 125/168/152 +f 136/235/209 134/64/64 123/85/84 +f 133/237/206 122/83/82 124/78/78 +f 369/238/211 131/239/212 124/78/78 +f 40/86/85 123/85/84 356/240/213 +f 127/241/214 139/242/215 140/243/216 +f 41/244/101 127/241/214 128/233/207 +f 121/245/151 129/246/217 137/247/218 +f 121/245/151 122/248/82 130/249/219 +f 132/250/210 137/251/218 127/241/214 +f 130/249/219 138/252/220 144/253/221 +f 282/254/222 43/97/95 131/239/212 +f 44/96/94 133/237/206 131/239/212 +f 92/94/92 45/65/65 134/64/64 +f 41/103/101 93/165/149 135/234/208 +f 93/165/149 92/94/92 136/235/209 +f 122/248/82 133/255/206 138/252/220 +f 123/85/84 134/64/64 367/256/223 +f 142/257/224 144/253/221 150/258/225 +f 139/242/215 143/259/226 149/260/227 +f 127/241/214 137/251/218 143/259/226 +f 129/246/217 130/249/219 142/257/224 +f 137/247/218 129/246/217 141/261/228 +f 128/233/207 140/243/216 144/262/221 +f 150/263/225 146/264/229 145/265/230 +f 147/266/231 148/267/232 150/258/225 +f 139/242/215 145/265/230 146/264/229 +f 140/243/216 146/264/229 150/263/225 +f 141/261/228 142/257/224 148/267/232 +f 141/261/228 147/266/231 149/268/227 +f 84/177/159 157/166/150 156/164/148 +f 23/56/56 85/55/55 156/164/148 +f 35/61/61 23/56/56 153/102/100 +f 273/71/71 393/101/99 151/98/96 +f 270/18/18 26/17/17 152/100/98 +f 37/92/90 31/73/73 151/98/96 +f 35/61/61 154/95/93 152/100/98 +f 37/92/90 155/93/91 157/166/150 +f 259/24/24 6/13/13 160/34/34 +f 6/13/13 1/12/12 159/32/32 +f 1/12/12 3/27/27 158/29/29 +f 3/27/27 256/19/19 398/30/30 +f 164/3/233 165/2/234 210/1/235 +f 210/1/235 165/2/234 167/5/236 +f 167/5/236 261/7/7 284/6/6 +f 283/8/8 206/108/237 181/10/238 +f 166/13/239 161/12/240 188/11/241 +f 258/16/16 169/15/242 170/14/243 +f 186/17/244 163/27/245 256/19/19 +f 168/22/246 254/21/21 255/20/20 +f 259/24/24 166/13/239 187/23/247 +f 172/26/248 168/22/246 162/25/249 +f 161/12/240 163/27/245 186/17/244 +f 169/15/242 172/26/248 171/28/250 +f 399/29/251 174/33/252 262/31/31 +f 400/32/253 173/35/254 174/33/252 +f 401/34/255 175/37/256 173/35/254 +f 402/36/36 263/269/257 175/37/256 +f 175/37/256 178/40/258 176/38/259 +f 173/35/254 176/38/259 177/39/260 +f 265/41/41 178/40/258 175/37/256 +f 174/33/252 177/39/260 264/42/42 +f 178/40/258 265/41/41 266/43/43 +f 266/43/43 264/42/42 177/39/260 +f 167/5/236 237/153/261 297/44/44 +f 260/45/45 296/270/262 235/46/263 +f 267/9/9 181/10/238 234/47/264 +f 232/48/265 179/52/266 268/50/50 +f 233/51/267 180/53/268 179/52/266 +f 181/10/238 180/53/268 233/51/267 +f 250/54/269 185/60/270 183/56/271 +f 269/59/59 182/58/272 248/57/273 +f 182/58/272 185/60/270 250/54/269 +f 188/11/241 186/17/244 195/61/274 +f 271/63/63 187/23/247 184/62/275 +f 276/66/66 205/65/276 372/64/277 +f 187/23/247 188/11/241 194/67/278 +f 189/69/279 190/68/280 171/28/250 +f 170/14/243 191/73/281 273/71/71 +f 272/72/72 189/69/279 162/25/249 +f 171/28/250 190/68/280 191/73/281 +f 196/74/282 193/79/283 274/76/76 +f 360/77/77 274/76/76 193/79/283 +f 281/81/81 202/80/284 205/65/276 +f 184/62/275 194/67/278 185/60/270 +f 277/82/72 184/62/275 182/58/272 +f 185/60/270 194/67/278 195/61/274 +f 193/79/283 196/74/282 357/83/285 +f 362/84/286 246/170/287 200/86/288 +f 207/88/289 208/87/290 179/52/266 +f 198/90/291 199/89/292 190/68/280 +f 279/91/72 198/90/291 189/69/279 +f 190/68/280 199/89/292 197/92/293 +f 252/94/294 205/65/276 395/93/295 +f 203/97/296 204/96/297 394/95/298 +f 395/93/295 205/65/276 202/80/284 +f 391/99/97 282/254/222 203/97/296 +f 202/80/284 281/81/81 393/101/99 +f 394/95/298 204/96/297 201/103/299 +f 214/104/300 213/117/301 287/106/104 +f 179/52/266 208/87/290 275/107/105 +f 206/108/237 207/88/289 180/53/268 +f 260/45/45 164/3/233 211/110/302 +f 209/4/303 229/144/304 228/111/305 +f 219/113/306 220/112/307 210/1/235 +f 207/88/289 217/130/308 218/114/309 +f 213/117/301 212/116/310 286/115/113 +f 215/118/311 212/116/310 213/117/301 +f 288/119/117 286/115/113 212/116/310 +f 283/8/8 288/271/117 215/120/311 +f 215/120/311 214/121/300 211/110/302 +f 214/121/300 289/122/103 285/109/107 +f 216/123/312 222/135/313 223/125/314 +f 226/128/315 227/127/316 221/126/317 +f 211/110/302 221/131/317 216/129/312 +f 218/114/309 219/113/306 209/4/303 +f 216/129/312 217/130/308 207/88/289 +f 210/1/235 220/112/307 221/131/317 +f 226/134/315 225/133/318 224/132/319 +f 222/135/313 227/127/316 226/128/315 +f 227/127/316 222/135/313 216/123/312 +f 219/136/306 225/133/318 226/134/315 +f 218/138/309 224/132/319 225/133/318 +f 223/139/314 224/132/319 218/138/309 +f 291/140/127 293/146/132 231/142/320 +f 208/87/290 228/111/305 290/143/130 +f 284/6/6 291/272/127 229/144/304 +f 231/142/320 293/146/132 292/145/131 +f 229/141/304 231/142/320 230/148/321 +f 228/147/305 230/148/321 292/145/131 +f 169/15/242 258/16/16 295/150/134 +f 168/22/246 172/26/248 233/51/267 +f 172/26/248 169/15/242 234/47/264 +f 168/22/246 232/48/265 294/49/49 +f 235/46/263 239/157/322 240/152/323 +f 236/151/324 240/152/323 241/154/325 +f 165/2/234 236/151/324 237/153/261 +f 164/3/233 235/46/263 236/151/324 +f 241/154/325 243/163/326 303/156/140 +f 302/159/143 238/158/327 239/157/322 +f 299/160/144 239/157/322 235/46/263 +f 237/153/261 241/154/325 301/155/139 +f 238/158/327 302/159/143 304/161/145 +f 243/163/326 242/162/328 304/161/145 +f 242/162/328 243/163/326 241/154/325 +f 239/157/322 238/158/327 242/162/328 +f 392/102/329 201/103/299 253/165/330 +f 253/165/330 252/94/294 397/166/331 +f 355/167/332 192/180/333 247/169/334 +f 361/168/335 247/169/334 246/170/287 +f 246/170/287 307/172/156 280/171/155 +f 249/174/336 251/173/337 199/89/292 +f 248/57/273 250/54/269 251/173/337 +f 306/175/59 249/174/336 198/90/291 +f 305/176/59 248/57/273 249/174/336 +f 251/173/337 244/177/338 197/92/293 +f 251/173/337 250/54/269 245/55/339 +f 343/179/161 247/169/334 309/178/340 +f 192/180/333 310/184/341 309/178/340 +f 343/179/161 307/172/156 246/170/287 +f 311/181/163 314/273/173 315/183/342 +f 315/183/342 316/185/343 310/184/341 +f 310/184/341 316/185/343 317/186/344 +f 317/186/344 313/188/170 312/187/169 +f 321/191/345 322/190/346 317/189/344 +f 314/192/173 319/274/200 320/194/347 +f 322/190/346 318/196/175 313/195/170 +f 320/194/347 321/191/345 316/197/343 +f 327/199/348 323/198/176 318/196/175 +f 325/201/349 326/200/350 321/191/345 +f 326/200/350 327/199/348 322/190/346 +f 324/202/180 325/201/349 320/194/347 +f 340/205/351 341/204/352 336/203/353 +f 339/207/185 340/205/351 335/206/354 +f 329/209/355 330/208/356 335/206/354 +f 330/208/356 331/211/189 334/210/188 +f 342/214/357 338/213/191 333/212/190 +f 328/215/358 329/209/355 336/203/353 +f 332/217/195 328/215/358 337/216/359 +f 341/204/352 342/214/357 337/216/359 +f 325/201/349 324/202/180 338/213/191 +f 326/200/350 325/201/349 342/214/357 +f 327/199/348 326/200/350 341/204/352 +f 323/198/176 327/199/348 340/205/351 +f 278/75/75 311/181/163 308/182/360 +f 308/182/360 310/184/341 192/180/333 +f 332/217/195 348/275/361 344/218/362 +f 328/215/358 344/218/362 345/219/363 +f 346/221/364 347/220/198 331/211/189 +f 345/219/363 346/221/364 330/208/356 +f 350/224/365 351/223/366 354/222/200 +f 350/227/365 349/225/203 347/220/198 +f 354/222/200 351/223/366 352/226/367 +f 345/219/363 351/228/366 350/227/365 +f 344/218/362 352/229/367 351/228/366 +f 353/230/205 352/229/367 344/218/362 +f 371/231/368 376/276/369 364/233/370 +f 192/180/333 355/167/332 357/83/285 +f 373/234/371 361/168/335 362/84/286 +f 370/236/372 355/167/332 361/168/335 +f 374/235/373 362/84/286 358/85/374 +f 359/78/375 357/83/285 371/237/368 +f 369/238/211 360/77/77 359/78/375 +f 356/240/213 358/85/374 200/86/288 +f 378/243/376 377/242/377 363/241/378 +f 364/233/370 363/241/378 201/244/299 +f 375/247/379 365/246/380 355/245/332 +f 355/245/332 365/246/380 366/249/381 +f 363/241/378 375/251/379 370/250/372 +f 366/249/381 380/257/382 382/253/383 +f 282/254/222 369/238/211 368/239/384 +f 368/239/384 371/237/368 204/96/297 +f 252/94/294 374/235/373 372/64/277 +f 201/103/299 370/236/372 373/234/371 +f 253/165/330 373/234/371 374/235/373 +f 357/248/285 366/249/381 376/252/369 +f 367/256/223 372/64/277 358/85/374 +f 380/257/382 386/267/385 388/258/386 +f 377/242/377 383/265/387 387/260/388 +f 363/241/378 377/242/377 381/259/389 +f 365/246/380 379/261/390 380/257/382 +f 375/247/379 381/277/389 379/261/390 +f 382/262/383 378/243/376 364/233/370 +f 383/265/387 384/264/391 388/263/386 +f 385/266/392 387/268/388 388/258/386 +f 384/264/391 383/265/387 377/242/377 +f 388/263/386 384/264/391 378/243/376 +f 379/261/390 385/266/392 386/267/385 +f 387/268/388 385/266/392 379/261/390 +f 396/164/393 397/166/331 244/177/338 +f 183/56/271 392/102/329 396/164/393 +f 195/61/274 394/95/298 392/102/329 +f 389/98/394 393/101/99 273/71/71 +f 270/18/18 391/99/97 390/100/395 +f 197/92/293 395/93/295 389/98/394 +f 390/100/395 394/95/298 195/61/274 +f 397/166/331 395/93/295 197/92/293 +f 259/24/24 402/36/36 401/34/255 +f 166/13/239 401/34/255 400/32/253 +f 161/12/240 400/32/253 399/29/251 +f 163/27/245 399/29/251 398/30/30 +f 51/110/108 50/1/1 4/3/3 +f 5/2/2 50/1/1 7/5/5 +f 49/4/4 284/6/6 7/5/5 +f 46/108/106 283/8/8 21/10/10 +f 27/23/23 28/11/11 6/13/13 +f 257/70/70 10/14/14 258/16/16 +f 3/27/27 26/17/17 256/19/19 +f 2/25/25 255/20/20 8/22/22 +f 271/63/63 27/23/23 259/24/24 +f 11/28/28 2/25/25 12/26/26 +f 28/11/11 26/17/17 1/12/12 +f 10/14/14 11/28/28 9/15/15 +f 14/33/33 158/29/29 262/31/31 +f 13/35/35 159/32/32 14/33/33 +f 15/37/37 160/34/34 13/35/35 +f 263/269/257 402/36/36 15/37/37 +f 18/40/40 15/37/37 16/38/38 +f 16/38/38 13/35/35 17/39/39 +f 263/269/257 15/37/37 265/41/41 +f 17/39/39 14/33/33 264/42/42 +f 265/41/41 18/40/40 266/43/43 +f 16/38/38 17/39/39 266/43/43 +f 77/153/137 7/5/5 297/44/44 +f 296/270/262 260/45/45 75/46/46 +f 295/150/134 74/47/47 267/9/9 +f 19/52/52 72/48/48 268/50/50 +f 20/53/53 73/51/51 19/52/52 +f 74/47/47 73/51/51 21/10/10 +f 25/60/60 90/54/54 23/56/56 +f 305/176/59 88/57/57 269/59/59 +f 88/57/57 90/54/54 22/58/58 +f 34/67/67 35/61/61 28/11/11 +f 277/82/72 24/62/62 271/63/63 +f 367/256/223 134/64/64 276/66/66 +f 24/62/62 34/67/67 27/23/23 +f 2/25/25 11/28/28 29/69/69 +f 31/73/73 10/14/14 273/71/71 +f 255/20/20 2/25/25 272/72/72 +f 30/68/68 11/28/28 31/73/73 +f 33/79/79 36/74/74 274/76/76 +f 274/76/76 360/77/77 33/79/79 +f 276/66/66 45/65/65 281/81/81 +f 22/58/58 25/60/60 24/62/62 +f 269/59/59 22/58/58 277/82/72 +f 34/67/67 25/60/60 35/61/61 +f 124/78/78 122/83/82 33/79/79 +f 86/170/154 126/84/83 40/86/85 +f 20/53/53 19/52/52 47/88/87 +f 29/69/69 30/68/68 38/90/89 +f 272/72/72 29/69/69 279/91/72 +f 39/89/88 30/68/68 37/92/90 +f 157/166/150 155/93/91 92/94/92 +f 152/100/98 154/95/93 43/97/95 +f 45/65/65 155/93/91 42/80/80 +f 282/254/222 391/99/97 43/97/95 +f 151/98/96 393/101/99 42/80/80 +f 44/96/94 154/95/93 41/103/101 +f 53/117/115 54/104/102 287/106/104 +f 48/87/86 19/52/52 275/107/105 +f 21/10/10 20/53/53 46/108/106 +f 4/3/3 260/45/45 51/110/108 +f 69/144/128 49/4/4 68/111/109 +f 49/4/4 50/1/1 59/113/111 +f 57/130/119 47/88/87 58/114/112 +f 287/106/104 286/115/113 53/117/115 +f 52/116/114 55/118/116 53/117/115 +f 286/115/113 288/119/117 52/116/114 +f 288/271/117 283/8/8 55/120/116 +f 46/108/106 51/110/108 55/120/116 +f 51/110/108 285/109/107 54/121/102 +f 62/135/126 56/123/118 63/125/120 +f 60/278/110 61/126/121 66/128/123 +f 61/131/121 51/110/108 56/129/118 +f 48/87/86 49/4/4 58/114/112 +f 46/108/106 47/88/87 56/129/118 +f 60/112/110 50/1/1 61/131/121 +f 63/139/120 64/132/124 66/134/123 +f 67/127/122 62/135/126 66/128/123 +f 61/126/121 56/123/118 67/127/122 +f 65/133/125 59/136/111 66/134/123 +f 64/132/124 58/138/112 65/133/125 +f 57/279/119 58/138/112 63/139/120 +f 293/146/132 291/140/127 71/142/129 +f 68/111/109 48/87/86 290/143/130 +f 291/272/127 284/6/6 69/144/128 +f 70/148/133 292/145/131 71/142/129 +f 71/142/129 69/141/128 70/148/133 +f 70/148/133 68/147/109 292/145/131 +f 258/16/16 9/15/15 295/150/134 +f 12/26/26 8/22/22 73/51/51 +f 9/15/15 12/26/26 74/47/47 +f 254/21/21 294/49/49 8/22/22 +f 79/157/141 75/46/46 80/152/136 +f 80/152/136 76/151/135 81/154/138 +f 76/151/135 5/2/2 77/153/137 +f 75/46/46 4/3/3 76/151/135 +f 83/163/147 81/154/138 303/156/140 +f 299/160/144 79/157/141 302/159/143 +f 296/270/262 75/46/46 299/160/144 +f 81/154/138 77/153/137 301/155/139 +f 82/162/146 304/161/145 78/158/142 +f 303/156/140 304/161/145 83/163/147 +f 82/162/146 80/152/136 83/163/147 +f 78/158/142 79/157/141 82/162/146 +f 41/103/101 153/102/100 93/165/149 +f 156/164/148 157/166/150 93/165/149 +f 32/180/162 121/167/151 87/169/153 +f 87/169/153 125/168/152 86/170/154 +f 40/86/85 280/171/155 86/170/154 +f 38/90/89 39/89/88 89/174/158 +f 89/174/158 91/173/157 88/57/57 +f 279/91/72 38/90/89 306/175/59 +f 306/175/59 89/174/158 305/176/59 +f 39/89/88 37/92/90 91/173/157 +f 90/54/54 91/173/157 85/55/55 +f 312/187/169 95/178/160 343/179/161 +f 96/184/166 32/180/162 95/178/160 +f 87/169/153 86/170/154 343/179/161 +f 314/273/173 311/181/163 97/183/165 +f 94/182/164 96/184/166 97/183/165 +f 98/185/167 96/184/166 99/186/168 +f 95/178/160 312/187/169 99/186/168 +f 98/197/167 99/189/168 101/191/172 +f 319/274/200 314/192/173 100/194/174 +f 99/189/168 313/195/170 102/190/171 +f 97/193/165 98/197/167 100/194/174 +f 102/190/171 318/196/175 105/199/177 +f 100/194/174 101/191/172 103/201/179 +f 104/200/178 101/191/172 105/199/177 +f 319/274/200 100/194/174 324/202/180 +f 109/206/184 110/203/181 112/205/183 +f 334/210/188 109/206/184 339/207/185 +f 110/203/181 109/206/184 107/209/187 +f 109/206/184 334/210/188 108/208/186 +f 111/216/194 333/212/190 114/214/192 +f 111/216/194 110/203/181 106/215/193 +f 333/212/190 111/216/194 332/217/195 +f 110/203/181 111/216/194 113/204/182 +f 324/202/180 103/201/179 338/213/191 +f 103/201/179 104/200/178 114/214/192 +f 104/200/178 105/199/177 113/204/182 +f 105/199/177 323/198/176 112/205/183 +f 36/74/74 94/182/164 278/75/75 +f 36/74/74 32/180/162 94/182/164 +f 348/275/361 332/217/195 115/218/196 +f 115/218/196 106/215/193 116/219/197 +f 108/208/186 331/211/189 117/221/199 +f 107/209/187 108/208/186 116/219/197 +f 349/280/203 354/222/200 118/224/202 +f 118/227/202 117/221/199 349/225/203 +f 353/281/205 120/226/204 354/222/200 +f 116/219/197 117/221/199 119/228/201 +f 115/218/196 116/219/197 120/229/204 +f 348/275/361 115/218/196 353/230/205 +f 138/276/220 133/231/206 128/233/207 +f 121/167/151 32/180/162 122/83/82 +f 125/168/152 135/234/208 126/84/83 +f 121/167/151 132/236/210 125/168/152 +f 126/84/83 136/235/209 123/85/84 +f 131/239/212 133/237/206 124/78/78 +f 360/77/77 369/238/211 124/78/78 +f 280/171/155 40/86/85 356/240/213 +f 128/233/207 127/241/214 140/243/216 +f 44/232/94 41/244/101 128/233/207 +f 132/282/210 121/245/151 137/247/218 +f 129/246/217 121/245/151 130/249/219 +f 41/244/101 132/250/210 127/241/214 +f 142/257/224 130/249/219 144/253/221 +f 369/238/211 282/254/222 131/239/212 +f 43/97/95 44/96/94 131/239/212 +f 136/235/209 92/94/92 134/64/64 +f 132/236/210 41/103/101 135/234/208 +f 135/234/208 93/165/149 136/235/209 +f 130/249/219 122/248/82 138/252/220 +f 356/240/213 123/85/84 367/256/223 +f 148/267/232 142/257/224 150/258/225 +f 145/265/230 139/242/215 149/260/227 +f 139/242/215 127/241/214 143/259/226 +f 141/261/228 129/246/217 142/257/224 +f 143/277/226 137/247/218 141/261/228 +f 138/276/220 128/233/207 144/262/221 +f 149/260/227 150/263/225 145/265/230 +f 149/268/227 147/266/231 150/258/225 +f 140/243/216 139/242/215 146/264/229 +f 144/262/221 140/243/216 150/263/225 +f 147/266/231 141/261/228 148/267/232 +f 143/277/226 141/261/228 149/268/227 +f 85/55/55 84/177/159 156/164/148 +f 153/102/100 23/56/56 156/164/148 +f 154/95/93 35/61/61 153/102/100 +f 31/73/73 273/71/71 151/98/96 +f 391/99/97 270/18/18 152/100/98 +f 155/93/91 37/92/90 151/98/96 +f 26/17/17 35/61/61 152/100/98 +f 84/177/159 37/92/90 157/166/150 +f 402/36/36 259/24/24 160/34/34 +f 160/34/34 6/13/13 159/32/32 +f 159/32/32 1/12/12 158/29/29 +f 158/29/29 3/27/27 398/30/30 +f 211/110/302 164/3/233 210/1/235 +f 209/4/303 210/1/235 167/5/236 +f 209/4/303 167/5/236 284/6/6 +f 267/9/9 283/8/8 181/10/238 +f 187/23/247 166/13/239 188/11/241 +f 257/70/70 258/16/16 170/14/243 +f 270/18/18 186/17/244 256/19/19 +f 162/25/249 168/22/246 255/20/20 +f 271/63/63 259/24/24 187/23/247 +f 171/28/250 172/26/248 162/25/249 +f 188/11/241 161/12/240 186/17/244 +f 170/14/243 169/15/242 171/28/250 +f 398/30/30 399/29/251 262/31/31 +f 399/29/251 400/32/253 174/33/252 +f 400/32/253 401/34/255 173/35/254 +f 401/34/255 402/36/36 175/37/256 +f 173/35/254 175/37/256 176/38/259 +f 174/33/252 173/35/254 177/39/260 +f 263/269/257 265/41/41 175/37/256 +f 262/31/31 174/33/252 264/42/42 +f 176/38/259 178/40/258 266/43/43 +f 176/38/259 266/43/43 177/39/260 +f 261/7/7 167/5/236 297/44/44 +f 164/3/233 260/45/45 235/46/263 +f 295/150/134 267/9/9 234/47/264 +f 294/49/49 232/48/265 268/50/50 +f 232/48/265 233/51/267 179/52/266 +f 234/47/264 181/10/238 233/51/267 +f 245/55/339 250/54/269 183/56/271 +f 305/176/59 269/59/59 248/57/273 +f 248/57/273 182/58/272 250/54/269 +f 194/67/278 188/11/241 195/61/274 +f 277/82/72 271/63/63 184/62/275 +f 367/256/223 276/66/66 372/64/277 +f 184/62/275 187/23/247 194/67/278 +f 162/25/249 189/69/279 171/28/250 +f 257/70/70 170/14/243 273/71/71 +f 255/20/20 272/72/72 162/25/249 +f 170/14/243 171/28/250 191/73/281 +f 278/75/75 196/74/282 274/76/76 +f 359/78/375 360/77/77 193/79/283 +f 276/66/66 281/81/81 205/65/276 +f 182/58/272 184/62/275 185/60/270 +f 269/59/59 277/82/72 182/58/272 +f 183/56/271 185/60/270 195/61/274 +f 359/78/375 193/79/283 357/83/285 +f 358/85/374 362/84/286 200/86/288 +f 180/53/268 207/88/289 179/52/266 +f 189/69/279 198/90/291 190/68/280 +f 272/72/72 279/91/72 189/69/279 +f 191/73/281 190/68/280 197/92/293 +f 397/166/331 252/94/294 395/93/295 +f 390/100/395 203/97/296 394/95/298 +f 389/98/394 395/93/295 202/80/284 +f 390/100/395 391/99/97 203/97/296 +f 389/98/394 202/80/284 393/101/99 +f 392/102/329 394/95/298 201/103/299 +f 289/105/103 214/104/300 287/106/104 +f 268/50/50 179/52/266 275/107/105 +f 181/10/238 206/108/237 180/53/268 +f 285/109/107 260/45/45 211/110/302 +f 208/87/290 209/4/303 228/111/305 +f 209/4/303 219/113/306 210/1/235 +f 208/87/290 207/88/289 218/114/309 +f 287/106/104 213/117/301 286/115/113 +f 214/104/300 215/118/311 213/117/301 +f 215/118/311 288/119/117 212/116/310 +f 206/108/237 283/8/8 215/120/311 +f 206/108/237 215/120/311 211/110/302 +f 211/110/302 214/121/300 285/109/107 +f 217/124/308 216/123/312 223/125/314 +f 220/278/307 226/128/315 221/126/317 +f 206/108/237 211/110/302 216/129/312 +f 208/87/290 218/114/309 209/4/303 +f 206/108/237 216/129/312 207/88/289 +f 211/110/302 210/1/235 221/131/317 +f 223/139/314 226/134/315 224/132/319 +f 223/125/314 222/135/313 226/128/315 +f 221/126/317 227/127/316 216/123/312 +f 220/137/307 219/136/306 226/134/315 +f 219/136/306 218/138/309 225/133/318 +f 217/279/308 223/139/314 218/138/309 +f 229/141/304 291/140/127 231/142/320 +f 275/107/105 208/87/290 290/143/130 +f 209/4/303 284/6/6 229/144/304 +f 230/148/321 231/142/320 292/145/131 +f 228/147/305 229/141/304 230/148/321 +f 290/149/130 228/147/305 292/145/131 +f 234/47/264 169/15/242 295/150/134 +f 232/48/265 168/22/246 233/51/267 +f 233/51/267 172/26/248 234/47/264 +f 254/21/21 168/22/246 294/49/49 +f 236/151/324 235/46/263 240/152/323 +f 237/153/261 236/151/324 241/154/325 +f 167/5/236 165/2/234 237/153/261 +f 165/2/234 164/3/233 236/151/324 +f 301/155/139 241/154/325 303/156/140 +f 299/160/144 302/159/143 239/157/322 +f 296/270/262 299/160/144 235/46/263 +f 297/44/44 237/153/261 301/155/139 +f 242/162/328 238/158/327 304/161/145 +f 303/156/140 243/163/326 304/161/145 +f 240/152/323 242/162/328 241/154/325 +f 240/152/323 239/157/322 242/162/328 +f 396/164/393 392/102/329 253/165/330 +f 396/164/393 253/165/330 397/166/331 +f 361/168/335 355/167/332 247/169/334 +f 362/84/286 361/168/335 246/170/287 +f 200/86/288 246/170/287 280/171/155 +f 198/90/291 249/174/336 199/89/292 +f 249/174/336 248/57/273 251/173/337 +f 279/91/72 306/175/59 198/90/291 +f 306/175/59 305/176/59 249/174/336 +f 199/89/292 251/173/337 197/92/293 +f 244/177/338 251/173/337 245/55/339 +f 312/187/169 343/179/161 309/178/340 +f 247/169/334 192/180/333 309/178/340 +f 247/169/334 343/179/161 246/170/287 +f 308/182/360 311/181/163 315/183/342 +f 308/182/360 315/183/342 310/184/341 +f 309/178/340 310/184/341 317/186/344 +f 309/178/340 317/186/344 312/187/169 +f 316/197/343 321/191/345 317/189/344 +f 315/193/342 314/192/173 320/194/347 +f 317/189/344 322/190/346 313/195/170 +f 315/193/342 320/194/347 316/197/343 +f 322/190/346 327/199/348 318/196/175 +f 320/194/347 325/201/349 321/191/345 +f 321/191/345 326/200/350 322/190/346 +f 319/274/200 324/202/180 320/194/347 +f 335/206/354 340/205/351 336/203/353 +f 334/210/188 339/207/185 335/206/354 +f 336/203/353 329/209/355 335/206/354 +f 335/206/354 330/208/356 334/210/188 +f 337/216/359 342/214/357 333/212/190 +f 337/216/359 328/215/358 336/203/353 +f 333/212/190 332/217/195 337/216/359 +f 336/203/353 341/204/352 337/216/359 +f 342/214/357 325/201/349 338/213/191 +f 341/204/352 326/200/350 342/214/357 +f 340/205/351 327/199/348 341/204/352 +f 339/207/185 323/198/176 340/205/351 +f 196/74/282 278/75/75 308/182/360 +f 196/74/282 308/182/360 192/180/333 +f 328/215/358 332/217/195 344/218/362 +f 329/209/355 328/215/358 345/219/363 +f 330/208/356 346/221/364 331/211/189 +f 329/209/355 345/219/363 330/208/356 +f 349/280/203 350/224/365 354/222/200 +f 346/221/364 350/227/365 347/220/198 +f 353/281/205 354/222/200 352/226/367 +f 346/221/364 345/219/363 350/227/365 +f 345/219/363 344/218/362 351/228/366 +f 348/275/361 353/230/205 344/218/362 +f 204/232/297 371/231/368 364/233/370 +f 196/74/282 192/180/333 357/83/285 +f 374/235/373 373/234/371 362/84/286 +f 373/234/371 370/236/372 361/168/335 +f 372/64/277 374/235/373 358/85/374 +f 368/239/384 359/78/375 371/237/368 +f 368/239/384 369/238/211 359/78/375 +f 280/171/155 356/240/213 200/86/288 +f 364/233/370 378/243/376 363/241/378 +f 204/232/297 364/233/370 201/244/299 +f 370/282/372 375/247/379 355/245/332 +f 357/248/285 355/245/332 366/249/381 +f 201/244/299 363/241/378 370/250/372 +f 376/252/369 366/249/381 382/253/383 +f 203/97/296 282/254/222 368/239/384 +f 203/97/296 368/239/384 204/96/297 +f 205/65/276 252/94/294 372/64/277 +f 253/165/330 201/103/299 373/234/371 +f 252/94/294 253/165/330 374/235/373 +f 371/255/368 357/248/285 376/252/369 +f 356/240/213 367/256/223 358/85/374 +f 382/253/383 380/257/382 388/258/386 +f 381/259/389 377/242/377 387/260/388 +f 375/251/379 363/241/378 381/259/389 +f 366/249/381 365/246/380 380/257/382 +f 365/246/380 375/247/379 379/261/390 +f 376/276/369 382/262/383 364/233/370 +f 387/260/388 383/265/387 388/263/386 +f 386/267/385 385/266/392 388/258/386 +f 378/243/376 384/264/391 377/242/377 +f 382/262/383 388/263/386 378/243/376 +f 380/257/382 379/261/390 386/267/385 +f 381/277/389 387/268/388 379/261/390 +f 245/55/339 396/164/393 244/177/338 +f 245/55/339 183/56/271 396/164/393 +f 183/56/271 195/61/274 392/102/329 +f 191/73/281 389/98/394 273/71/71 +f 186/17/244 270/18/18 390/100/395 +f 191/73/281 197/92/293 389/98/394 +f 186/17/244 390/100/395 195/61/274 +f 244/177/338 397/166/331 197/92/293 +f 166/13/239 259/24/24 401/34/255 +f 161/12/240 166/13/239 400/32/253 +f 163/27/245 161/12/240 399/29/251 +f 256/19/19 163/27/245 398/30/30 diff --git a/include/Core/Engine.h b/include/Core/Engine.h index a45467f..f5198f7 100644 --- a/include/Core/Engine.h +++ b/include/Core/Engine.h @@ -135,6 +135,9 @@ public: ball->Speed = 5.f; std::shared_ptr physics = m_World->AddComponent(ent); physics->Static = false; + physics->Category = CollisionLayer::Type::Ball; + physics->Mask = CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall; + physics->Calculate = true; auto plight = m_World->AddComponent(ent); plight->Radius = 2.f; @@ -176,6 +179,8 @@ public: std::shared_ptr physics = m_World->AddComponent(topWall); physics->Static = true; + physics->Category = CollisionLayer::Type::Wall; + physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick; m_World->CommitEntity(topWall); } @@ -192,6 +197,8 @@ public: std::shared_ptr physics = m_World->AddComponent(leftWall); physics->Static = true; + physics->Category = CollisionLayer::Type::Wall; + physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick; m_World->CommitEntity(leftWall); } @@ -208,6 +215,8 @@ public: std::shared_ptr physics = m_World->AddComponent(rightWall); physics->Static = true; + physics->Category = CollisionLayer::Type::Wall; + physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::Brick; m_World->CommitEntity(rightWall); } @@ -221,8 +230,12 @@ public: auto rectangle = m_World->AddComponent(ent); auto physics = m_World->AddComponent(ent); physics->Static = false; + physics->Category = CollisionLayer::Type::Pad; + physics->Mask = CollisionLayer::Type::Ball | CollisionLayer::Type::PowerUp; + physics->Calculate = true; auto cModel = m_World->AddComponent(ent); - cModel->ModelFile = "Models/Submarine.obj"; + cModel->ModelFile = "Models/Submarine2.obj"; + auto pad = m_World->AddComponent(ent); m_World->CommitEntity(ent); } diff --git a/include/Physics/CPhysics.h b/include/Physics/CPhysics.h index 4f90b75..73d05cf 100644 --- a/include/Physics/CPhysics.h +++ b/include/Physics/CPhysics.h @@ -4,18 +4,40 @@ namespace dd { + +namespace CollisionLayer +{ +enum Type +{ + Pad = 1 << 0, + Ball = 1 << 1, + Brick = 1 << 2, + Water = 1 << 3, + PowerUp = 1 << 4, + Other = 1 << 5, + Wall = 1 << 6 +}; +} namespace Components { struct Physics: public Component { - //idk if anything should be here :) bool Static = true; + bool Calculate = false; float GravityScale = 0.f; + CollisionLayer::Type Category = CollisionLayer::Type::Other; + CollisionLayer::Type Mask = + CollisionLayer::Type::Pad | + CollisionLayer::Type::Ball | + CollisionLayer::Type::Brick | + CollisionLayer::Type::Water | + CollisionLayer::Type::PowerUp | + CollisionLayer::Type::Wall | + CollisionLayer::Type::Other; }; } - } #endif //DAYDREAM_CPHYSICS_H diff --git a/include/Physics/PhysicsSystem.h b/include/Physics/PhysicsSystem.h index 3c456ce..0ce8ab7 100644 --- a/include/Physics/PhysicsSystem.h +++ b/include/Physics/PhysicsSystem.h @@ -15,6 +15,7 @@ #include "Physics/CCircleShape.h" #include "Core/EventBroker.h" #include "Game/CPad.h" +#include "Game/CBall.h" namespace dd @@ -102,16 +103,19 @@ private: void PreSolve(b2Contact* contact, const b2Manifold* oldManifold) { EntityID entityA = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; - EntityID entityB = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureA()->GetBody()]; + EntityID entityB = m_PhysicsSystem->m_BodiesToEntities[contact->GetFixtureB()->GetBody()]; auto physicsComponentA = m_PhysicsSystem->m_World->GetComponent(entityA); auto physicsComponentB = m_PhysicsSystem->m_World->GetComponent(entityB); - if (physicsComponentA != nullptr || physicsComponentB != nullptr) { - // Turn of collisions - contact->SetEnabled(false); + if (physicsComponentA != nullptr && physicsComponentB != nullptr) { + if (physicsComponentA->Calculate || physicsComponentB->Calculate) { + // Turn of collisions + contact->SetEnabled(false); + } } + } void PostSolve(b2Contact* contact, const b2ContactImpulse* impulse) { diff --git a/src/game/Game/BallSystem.cpp b/src/game/Game/BallSystem.cpp index 97958ca..37df50a 100644 --- a/src/game/Game/BallSystem.cpp +++ b/src/game/Game/BallSystem.cpp @@ -60,9 +60,10 @@ bool dd::Systems::BallSystem::Contact(const Events::Contact &event) return false; } - //Which is the ball? + EntityID ballEntity, otherEntitiy; + //Which is the ball? if (ballComponent1 != nullptr) { ballEntity = event.Entity1; otherEntitiy = event.Entity2; @@ -78,6 +79,8 @@ bool dd::Systems::BallSystem::Contact(const Events::Contact &event) //TODO: Add support for power-up collisions } + //if this is a brick thats dead do not collide :) + auto ballTransform = m_World->GetComponent(ballEntity); glm::vec2 ballVelocity = glm::vec2(ballTransform->Velocity.x, ballTransform->Velocity.y); @@ -85,7 +88,6 @@ bool dd::Systems::BallSystem::Contact(const Events::Contact &event) auto padTransform = m_World->GetComponent(otherEntitiy); float x = ballTransform->Position.x - padTransform->Position.x; - float movementMultiplier = 5.0f; float y = glm::cos((abs(x) / (1.6f)) * glm::pi() / 2.f) + 1.f; ballTransform->Velocity = glm::normalize(glm::vec3(x, y ,0.f)) * ballComponent->Speed; diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index 239b7b8..b6a8539 100755 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -176,6 +176,9 @@ void dd::Systems::LevelSystem::CreateBrick(int row, int line, glm::vec2 spacesBe std::shared_ptr cPhys = m_World->AddComponent(brick); cPhys->Static = false; cPhys->GravityScale = 0.f; + cPhys->Category = CollisionLayer::Type::Brick; + cPhys->Mask = CollisionLayer::Type::Ball; + std::string fileName = "Textures/Bricks/"; fileName.append(std::to_string(num)); fileName.append(".png"); @@ -270,6 +273,20 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) auto physicsComponent = m_World->GetComponent(entityBrick); physicsComponent->GravityScale = 1.f; + physicsComponent->Mask = CollisionLayer::Type::Water | CollisionLayer::Type::Wall; + + auto transformComponentBrick = m_World->GetComponent(entityBrick); + auto transformComponentBall = m_World->GetComponent(entityBall); + + Events::SetImpulse e; + e.Entity = entityBrick; + + glm::vec2 point = glm::vec2(transformComponentBrick->Position.x + ((transformComponentBrick->Position.x - transformComponentBall->Position.x)/4), transformComponentBrick->Position.y + ((transformComponentBrick->Position.y - transformComponentBall->Position.y )/4)); + + e.Impulse = glm::normalize(point)/2.f; + e.Point = point; + EventBroker->Publish(e); + //TODO: Bricks dont collide with walls D= SetNumberOfBricks(NumberOfBricks() - 1); if (NumberOfBricks() <= 0) { @@ -279,7 +296,7 @@ bool dd::Systems::LevelSystem::OnContact(const dd::Events::Contact &event) es.Score = brick->Score; EventBroker->Publish(es); - std::cout << NumberOfBricks() << std::endl; + // std::cout << NumberOfBricks() << std::endl; //std::cout << "Score: " << Score() << std::endl; } @@ -313,8 +330,12 @@ bool dd::Systems::LevelSystem::OnCreatePowerUp(const dd::Events::CreatePowerUp & auto model = m_World->AddComponent(powerUp); std::shared_ptr cRec = m_World->AddComponent(powerUp); std::shared_ptr cPhys = m_World->AddComponent(powerUp); - std::shared_ptr cPow = m_World->AddComponent(powerUp); cPhys->Static = false; + cPhys->Category = CollisionLayer::Type::PowerUp; + cPhys->Mask = CollisionLayer::Type::Pad; + + std::shared_ptr cPow = m_World->AddComponent(powerUp); + transform->Position = event.Position; transform->Scale = glm::vec3(0.2, 0.2, 0.2); diff --git a/src/game/Game/PadSystem.cpp b/src/game/Game/PadSystem.cpp index 0b3b252..8d66bb0 100755 --- a/src/game/Game/PadSystem.cpp +++ b/src/game/Game/PadSystem.cpp @@ -108,7 +108,9 @@ EntityID dd::Systems::PadSystem::CreateBall() std::shared_ptr cball = m_World->AddComponent(ent); std::shared_ptr physics = m_World->AddComponent(ent); physics->Static = false; - + physics->Category = CollisionLayer::Type::Ball; + physics->Mask = CollisionLayer::Type::Pad | CollisionLayer::Type::Brick | CollisionLayer::Type::Wall; + physics->Calculate = true; cball->Speed = 5.f; m_World->CommitEntity(ent); @@ -234,9 +236,9 @@ bool dd::Systems::PadSystem::OnContactPowerUp(const dd::Events::Contact &event) return false; } - m_World->RemoveComponent(entityPower); - m_World->RemoveComponent(entityPower); - m_World->RemoveComponent(entityPower); +// m_World->RemoveComponent(entityPower); +// m_World->RemoveComponent(entityPower); +// m_World->RemoveComponent(entityPower); m_World->RemoveEntity(entityPower); Events::PowerUpTaken ep; ep.Name = "Something"; diff --git a/src/game/Physics/PhysicsSystem.cpp b/src/game/Physics/PhysicsSystem.cpp index 6994408..1126579 100644 --- a/src/game/Physics/PhysicsSystem.cpp +++ b/src/game/Physics/PhysicsSystem.cpp @@ -85,6 +85,12 @@ void dd::Systems::PhysicsSystem::Update(double dt) body->SetLinearVelocity(b2Vec2(transformComponent->Velocity.x, transformComponent->Velocity.y)); body->SetGravityScale(physicsComponent->GravityScale); + + + b2Filter filter; + filter.categoryBits = physicsComponent->Category; + filter.maskBits = physicsComponent->Mask; + body->GetFixtureList()->SetFilterData(filter); } } @@ -106,7 +112,7 @@ void dd::Systems::PhysicsSystem::Update(double dt) b2Body* body = i.second; if (body == nullptr) { - //LOG_ERROR("This body should not exist"); + LOG_ERROR("This body should not exist"); continue; } @@ -149,6 +155,11 @@ void dd::Systems::PhysicsSystem::OnEntityCommit(EntityID entity) void dd::Systems::PhysicsSystem::OnEntityRemoved(EntityID entity) { + auto physics = m_World->GetComponent(entity); + if (physics == nullptr) { + return; + } + b2Body* body = m_EntitiesToBodies[entity]; if (body != nullptr) { @@ -180,8 +191,6 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) b2BodyDef bodyDef; bodyDef.position.Set(absoluteTransform.Position.x, absoluteTransform.Position.y); - - bodyDef.angle = -glm::eulerAngles(absoluteTransform.Orientation).z; if (physicsComponent->Static) { @@ -191,7 +200,6 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) } - b2Body* body = m_PhysicsWorld->CreateBody(&bodyDef); b2Shape* pShape; @@ -216,12 +224,16 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) } } + b2FixtureDef fixtureDef; + fixtureDef.shape = pShape; + fixtureDef.filter.categoryBits = physicsComponent->Category; + fixtureDef.filter.maskBits = physicsComponent->Mask; + + if(physicsComponent->Static) { - body->CreateFixture(pShape, 0); //Density kanske ska vara 0 på statiska kroppar + body->CreateFixture(&fixtureDef); //Density kanske ska vara 0 på statiska kroppar } else { - //TODO: FIX THIS SHIT INTO COMPONENTS - b2FixtureDef fixtureDef; fixtureDef.shape = pShape; fixtureDef.density = 1.f; fixtureDef.restitution = 1.0f; @@ -232,6 +244,7 @@ void dd::Systems::PhysicsSystem::CreateBody(EntityID entity) delete pShape; + body->SetGravityScale(physicsComponent->GravityScale); m_EntitiesToBodies.insert(std::make_pair(entity, body)); m_BodiesToEntities.insert(std::make_pair(body, entity));