diff --git a/resources/ball.mtl b/resources/ball.mtl new file mode 100644 index 0000000..70d3ba1 --- /dev/null +++ b/resources/ball.mtl @@ -0,0 +1,10 @@ +# Blender MTL File: 'None' +# Material Count: 1 + +newmtl None +Ns 0 +Ka 0.000000 0.000000 0.000000 +Kd 0.8 0.8 0.8 +Ks 0.8 0.8 0.8 +d 1 +illum 2 diff --git a/resources/ball.obj b/resources/ball.obj new file mode 100644 index 0000000..b339a3e --- /dev/null +++ b/resources/ball.obj @@ -0,0 +1,1991 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +mtllib ball.mtl +o Sphere +v 1.000021 0.591691 -0.977391 +v 1.000021 0.534785 -1.164984 +v 1.000021 0.442376 -1.337871 +v 1.000021 0.318013 -1.489407 +v 1.000021 0.166476 -1.613770 +v 1.000021 -0.006411 -1.706180 +v 1.000021 -0.194004 -1.763086 +v 1.000021 -0.389094 -1.782300 +v 1.000021 -0.584184 -1.763086 +v 1.000021 -1.220564 -1.337870 +v 1.038082 0.591691 -0.973642 +v 1.074679 0.534785 -1.157631 +v 1.108408 0.442376 -1.327195 +v 1.137971 0.318013 -1.475820 +v 1.162233 0.166476 -1.597793 +v 1.180261 -0.006411 -1.688428 +v 1.191363 -0.194004 -1.744240 +v 1.195112 -0.389094 -1.763086 +v 1.191363 -0.584184 -1.744240 +v 1.180261 -0.771777 -1.688428 +v 1.162233 -0.944664 -1.597793 +v 1.137971 -1.096201 -1.475820 +v 1.108408 -1.220564 -1.327195 +v 1.074679 -1.312974 -1.157630 +v 1.038082 -1.369879 -0.973642 +v 1.074679 0.591691 -0.962540 +v 1.146468 0.534785 -1.135854 +v 1.212629 0.442376 -1.295580 +v 1.270620 0.318013 -1.435582 +v 1.318211 0.166476 -1.550478 +v 1.353575 -0.006411 -1.635854 +v 1.375352 -0.194004 -1.688428 +v 1.382705 -0.389094 -1.706180 +v 1.375352 -0.584184 -1.688428 +v 1.353575 -0.771777 -1.635854 +v 1.318211 -0.944664 -1.550478 +v 1.270620 -1.096201 -1.435582 +v 1.212629 -1.220564 -1.295580 +v 1.146468 -1.312974 -1.135854 +v 1.074679 -1.369879 -0.962540 +v 1.108408 0.591691 -0.944512 +v 1.212629 0.534785 -1.100490 +v 1.308680 0.442376 -1.244240 +v 1.392869 0.318013 -1.370238 +v 1.461961 0.166476 -1.473642 +v 1.513302 -0.006411 -1.550478 +v 1.544917 -0.194004 -1.597793 +v 1.555592 -0.389094 -1.613770 +v 1.544917 -0.584184 -1.597793 +v 1.513302 -0.771777 -1.550478 +v 1.461961 -0.944664 -1.473642 +v 1.392869 -1.096201 -1.370238 +v 1.308680 -1.220564 -1.244240 +v 1.212629 -1.312974 -1.100490 +v 1.108408 -1.369879 -0.944512 +v 1.137971 0.591691 -0.920250 +v 1.270620 0.534785 -1.052898 +v 1.392869 0.442376 -1.175148 +v 1.500022 0.318013 -1.282300 +v 1.587960 0.166476 -1.370238 +v 1.653303 -0.006411 -1.435582 +v 1.693542 -0.194004 -1.475820 +v 1.707129 -0.389094 -1.489407 +v 1.693542 -0.584184 -1.475820 +v 1.653303 -0.771777 -1.435582 +v 1.587960 -0.944664 -1.370238 +v 1.500022 -1.096201 -1.282300 +v 1.392869 -1.220564 -1.175148 +v 1.270620 -1.312974 -1.052898 +v 1.137971 -1.369879 -0.920250 +v 1.162233 0.591691 -0.890687 +v 1.318211 0.534785 -0.994908 +v 1.461962 0.442376 -1.090958 +v 1.587960 0.318013 -1.175148 +v 1.691363 0.166476 -1.244240 +v 1.768199 -0.006411 -1.295580 +v 1.815515 -0.194004 -1.327195 +v 1.831491 -0.389094 -1.337870 +v 1.815515 -0.584184 -1.327195 +v 1.768199 -0.771777 -1.295580 +v 1.691363 -0.944664 -1.244240 +v 1.587960 -1.096201 -1.175148 +v 1.461961 -1.220564 -1.090958 +v 1.318211 -1.312974 -0.994908 +v 1.162233 -1.369879 -0.890686 +v 1.180262 0.591691 -0.856958 +v 1.353575 0.534785 -0.928747 +v 1.513302 0.442376 -0.994908 +v 1.653303 0.318013 -1.052898 +v 1.768199 0.166476 -1.100490 +v 1.853575 -0.006411 -1.135854 +v 1.906149 -0.194004 -1.157630 +v 1.923901 -0.389094 -1.164984 +v 1.906149 -0.584184 -1.157630 +v 1.853575 -0.771777 -1.135854 +v 1.768199 -0.944664 -1.100490 +v 1.653303 -1.096201 -1.052898 +v 1.513302 -1.220564 -0.994908 +v 1.353575 -1.312974 -0.928747 +v 1.180261 -1.369879 -0.856958 +v 1.191363 0.591691 -0.820360 +v 1.375352 0.534785 -0.856958 +v 1.544917 0.442376 -0.890686 +v 1.693542 0.318013 -0.920250 +v 1.815515 0.166476 -0.944512 +v 1.906149 -0.006411 -0.962540 +v 1.961961 -0.194004 -0.973642 +v 1.980807 -0.389094 -0.977390 +v 1.961961 -0.584184 -0.973642 +v 1.906149 -0.771777 -0.962540 +v 1.815515 -0.944664 -0.944512 +v 1.693542 -1.096201 -0.920250 +v 1.544917 -1.220564 -0.890686 +v 1.375352 -1.312974 -0.856958 +v 1.191363 -1.369879 -0.820360 +v 1.195112 0.591691 -0.782300 +v 1.382705 0.534785 -0.782300 +v 1.555592 0.442376 -0.782300 +v 1.707128 0.318013 -0.782300 +v 1.831491 0.166476 -0.782300 +v 1.923901 -0.006411 -0.782300 +v 1.980807 -0.194004 -0.782300 +v 2.000022 -0.389094 -0.782300 +v 1.980807 -0.584184 -0.782300 +v 1.923901 -0.771777 -0.782300 +v 1.831491 -0.944664 -0.782300 +v 1.707128 -1.096201 -0.782300 +v 1.555592 -1.220564 -0.782300 +v 1.382705 -1.312974 -0.782300 +v 1.195112 -1.369879 -0.782300 +v 1.191363 0.591691 -0.744240 +v 1.375352 0.534785 -0.707642 +v 1.544917 0.442376 -0.673914 +v 1.693542 0.318013 -0.644350 +v 1.815515 0.166476 -0.620088 +v 1.906149 -0.006411 -0.602060 +v 1.961961 -0.194004 -0.590958 +v 1.980807 -0.389094 -0.587210 +v 1.961961 -0.584184 -0.590958 +v 1.906149 -0.771777 -0.602060 +v 1.815515 -0.944664 -0.620088 +v 1.693542 -1.096201 -0.644350 +v 1.544917 -1.220564 -0.673914 +v 1.375352 -1.312974 -0.707642 +v 1.191363 -1.369879 -0.744240 +v 1.180262 0.591691 -0.707642 +v 1.353575 0.534785 -0.635853 +v 1.513302 0.442376 -0.569692 +v 1.653303 0.318013 -0.511702 +v 1.768199 0.166476 -0.464110 +v 1.853575 -0.006411 -0.428747 +v 1.906149 -0.194004 -0.406970 +v 1.923901 -0.389094 -0.399616 +v 1.906149 -0.584184 -0.406970 +v 1.853575 -0.771777 -0.428747 +v 1.768199 -0.944664 -0.464110 +v 1.653303 -1.096201 -0.511702 +v 1.513301 -1.220564 -0.569692 +v 1.353575 -1.312974 -0.635853 +v 1.180261 -1.369879 -0.707642 +v 1.162233 0.591691 -0.673913 +v 1.318211 0.534785 -0.569692 +v 1.461961 0.442376 -0.473642 +v 1.587959 0.318013 -0.389452 +v 1.691363 0.166476 -0.320360 +v 1.768199 -0.006411 -0.269020 +v 1.815515 -0.194004 -0.237405 +v 1.831491 -0.389094 -0.226730 +v 1.815515 -0.584184 -0.237405 +v 1.768199 -0.771777 -0.269020 +v 1.691363 -0.944664 -0.320360 +v 1.587959 -1.096201 -0.389452 +v 1.461961 -1.220564 -0.473642 +v 1.318211 -1.312974 -0.569692 +v 1.162233 -1.369879 -0.673914 +v 1.137971 0.591691 -0.644350 +v 1.270620 0.534785 -0.511702 +v 1.392869 0.442376 -0.389452 +v 1.500021 0.318013 -0.282300 +v 1.587959 0.166476 -0.194362 +v 1.653303 -0.006411 -0.129018 +v 1.693541 -0.194004 -0.088780 +v 1.707128 -0.389094 -0.075193 +v 1.693541 -0.584184 -0.088780 +v 1.653303 -0.771777 -0.129018 +v 1.587959 -0.944664 -0.194362 +v 1.500021 -1.096201 -0.282300 +v 1.392869 -1.220564 -0.389452 +v 1.270620 -1.312974 -0.511702 +v 1.137971 -1.369879 -0.644350 +v 1.108408 0.591691 -0.620088 +v 1.212629 0.534785 -0.464110 +v 1.308680 0.442376 -0.320360 +v 1.392869 0.318013 -0.194362 +v 1.461961 0.166476 -0.090958 +v 1.513302 -0.006411 -0.014122 +v 1.544916 -0.194004 0.033193 +v 1.555592 -0.389094 0.049170 +v 1.544916 -0.584184 0.033193 +v 1.513302 -0.771777 -0.014122 +v 1.461961 -0.944664 -0.090958 +v 1.392869 -1.096201 -0.194362 +v 1.308680 -1.220564 -0.320360 +v 1.212629 -1.312974 -0.464110 +v 1.108408 -1.369879 -0.620088 +v 1.000021 -1.389094 -0.782300 +v 1.074679 0.591691 -0.602060 +v 1.146468 0.534785 -0.428746 +v 1.212629 0.442376 -0.269020 +v 1.270620 0.318013 -0.129018 +v 1.318211 0.166476 -0.014122 +v 1.353575 -0.006411 0.071253 +v 1.375352 -0.194004 0.123827 +v 1.382705 -0.389094 0.141580 +v 1.375352 -0.584184 0.123827 +v 1.353575 -0.771777 0.071253 +v 1.318211 -0.944664 -0.014122 +v 1.270620 -1.096201 -0.129018 +v 1.212629 -1.220564 -0.269020 +v 1.146468 -1.312974 -0.428747 +v 1.074679 -1.369879 -0.602060 +v 1.038082 0.591691 -0.590958 +v 1.074679 0.534785 -0.406970 +v 1.108408 0.442376 -0.237405 +v 1.137971 0.318013 -0.088780 +v 1.162233 0.166476 0.033193 +v 1.180261 -0.006411 0.123827 +v 1.191363 -0.194004 0.179640 +v 1.195112 -0.389094 0.198485 +v 1.191363 -0.584184 0.179640 +v 1.180261 -0.771777 0.123827 +v 1.162233 -0.944664 0.033193 +v 1.137971 -1.096201 -0.088780 +v 1.108408 -1.220564 -0.237405 +v 1.074679 -1.312974 -0.406970 +v 1.038082 -1.369879 -0.590958 +v 1.000021 0.591691 -0.587209 +v 1.000021 0.534785 -0.399616 +v 1.000021 0.442376 -0.226730 +v 1.000021 0.318013 -0.075193 +v 1.000021 0.166476 0.049169 +v 1.000022 -0.006411 0.141580 +v 1.000021 -0.194004 0.198485 +v 1.000021 -0.389094 0.217700 +v 1.000021 -0.584184 0.198485 +v 1.000022 -0.771777 0.141580 +v 1.000021 -0.944664 0.049169 +v 1.000021 -1.096201 -0.075193 +v 1.000021 -1.220564 -0.226730 +v 1.000021 -1.312974 -0.399617 +v 1.000021 -1.369879 -0.587210 +v 0.961961 0.591691 -0.590958 +v 0.925364 0.534785 -0.406970 +v 0.891635 0.442376 -0.237405 +v 0.862072 0.318013 -0.088780 +v 0.837810 0.166476 0.033193 +v 0.819782 -0.006411 0.123827 +v 0.808680 -0.194004 0.179640 +v 0.804931 -0.389094 0.198485 +v 0.808680 -0.584184 0.179640 +v 0.819782 -0.771777 0.123827 +v 0.837810 -0.944664 0.033193 +v 0.862072 -1.096201 -0.088780 +v 0.891635 -1.220564 -0.237405 +v 0.925364 -1.312974 -0.406970 +v 0.961961 -1.369879 -0.590958 +v 0.925364 0.591691 -0.602060 +v 0.853575 0.534785 -0.428747 +v 0.787414 0.442376 -0.269020 +v 0.729423 0.318013 -0.129019 +v 0.681832 0.166476 -0.014123 +v 0.646468 -0.006411 0.071253 +v 0.624691 -0.194004 0.123827 +v 0.617338 -0.389094 0.141580 +v 0.624691 -0.584184 0.123827 +v 0.646468 -0.771777 0.071253 +v 0.681832 -0.944664 -0.014123 +v 0.729423 -1.096201 -0.129019 +v 0.787414 -1.220564 -0.269020 +v 0.853575 -1.312974 -0.428747 +v 0.925364 -1.369879 -0.602060 +v 0.891635 0.591691 -0.620088 +v 0.787414 0.534785 -0.464110 +v 0.691363 0.442376 -0.320360 +v 0.607174 0.318013 -0.194362 +v 0.538082 0.166476 -0.090959 +v 0.486742 -0.006411 -0.014122 +v 0.455126 -0.194004 0.033193 +v 0.444451 -0.389094 0.049170 +v 0.455126 -0.584184 0.033193 +v 0.486742 -0.771777 -0.014122 +v 0.538082 -0.944664 -0.090959 +v 0.607174 -1.096201 -0.194362 +v 0.691363 -1.220564 -0.320360 +v 0.787414 -1.312974 -0.464110 +v 0.891635 -1.369879 -0.620088 +v 1.000021 0.610906 -0.782300 +v 0.862072 0.591691 -0.644350 +v 0.729423 0.534785 -0.511702 +v 0.607174 0.442376 -0.389452 +v 0.500021 0.318013 -0.282300 +v 0.412084 0.166476 -0.194363 +v 0.346740 -0.006411 -0.129019 +v 0.306502 -0.194004 -0.088780 +v 0.292915 -0.389094 -0.075193 +v 0.306502 -0.584184 -0.088780 +v 0.346740 -0.771777 -0.129019 +v 0.412084 -0.944664 -0.194363 +v 0.500021 -1.096201 -0.282300 +v 0.607174 -1.220564 -0.389453 +v 0.729423 -1.312974 -0.511702 +v 0.862072 -1.369879 -0.644350 +v 0.837810 0.591691 -0.673914 +v 0.681832 0.534785 -0.569692 +v 0.538082 0.442376 -0.473642 +v 0.412084 0.318013 -0.389453 +v 0.308680 0.166476 -0.320361 +v 0.231844 -0.006411 -0.269020 +v 0.184529 -0.194004 -0.237405 +v 0.168552 -0.389094 -0.226730 +v 0.184529 -0.584184 -0.237405 +v 0.231844 -0.771777 -0.269020 +v 0.308680 -0.944664 -0.320361 +v 0.412084 -1.096201 -0.389453 +v 0.538082 -1.220564 -0.473642 +v 0.681832 -1.312974 -0.569693 +v 0.837810 -1.369879 -0.673914 +v 0.819781 0.591691 -0.707642 +v 0.646468 0.534785 -0.635853 +v 0.486741 0.442376 -0.569692 +v 0.346740 0.318013 -0.511702 +v 0.231844 0.166476 -0.464111 +v 0.146468 -0.006411 -0.428747 +v 0.093894 -0.194004 -0.406970 +v 0.076142 -0.389094 -0.399617 +v 0.093894 -0.584184 -0.406970 +v 0.146468 -0.771777 -0.428747 +v 0.231844 -0.944664 -0.464111 +v 0.346740 -1.096201 -0.511702 +v 0.486742 -1.220564 -0.569693 +v 0.646468 -1.312974 -0.635853 +v 0.819782 -1.369879 -0.707642 +v 0.808680 0.591691 -0.744240 +v 0.624691 0.534785 -0.707642 +v 0.455126 0.442376 -0.673914 +v 0.306502 0.318013 -0.644350 +v 0.184529 0.166476 -0.620089 +v 0.093894 -0.006411 -0.602060 +v 0.038082 -0.194004 -0.590959 +v 0.019236 -0.389094 -0.587210 +v 0.038082 -0.584184 -0.590959 +v 0.093894 -0.771777 -0.602060 +v 0.184529 -0.944664 -0.620089 +v 0.306502 -1.096201 -0.644350 +v 0.455126 -1.220564 -0.673914 +v 0.624691 -1.312974 -0.707642 +v 0.808680 -1.369879 -0.744240 +v 0.804931 0.591691 -0.782300 +v 0.617338 0.534785 -0.782300 +v 0.444451 0.442376 -0.782300 +v 0.292915 0.318013 -0.782300 +v 0.168552 0.166476 -0.782300 +v 0.076142 -0.006411 -0.782300 +v 0.019237 -0.194004 -0.782300 +v 0.000022 -0.389094 -0.782300 +v 0.019237 -0.584184 -0.782300 +v 0.076142 -0.771777 -0.782300 +v 0.168552 -0.944664 -0.782300 +v 0.292915 -1.096201 -0.782300 +v 0.444451 -1.220564 -0.782300 +v 0.617338 -1.312974 -0.782300 +v 0.804931 -1.369879 -0.782300 +v 0.808680 0.591691 -0.820360 +v 0.624691 0.534785 -0.856958 +v 0.455126 0.442376 -0.890686 +v 0.306502 0.318013 -0.920250 +v 0.184529 0.166476 -0.944512 +v 0.093894 -0.006411 -0.962540 +v 0.038082 -0.194004 -0.973642 +v 0.019236 -0.389094 -0.977390 +v 0.038082 -0.584184 -0.973642 +v 0.093894 -0.771777 -0.962540 +v 0.184529 -0.944664 -0.944512 +v 0.306502 -1.096201 -0.920250 +v 0.455127 -1.220564 -0.890686 +v 0.624691 -1.312974 -0.856958 +v 0.808680 -1.369879 -0.820360 +v 0.819781 0.591691 -0.856958 +v 0.646468 0.534785 -0.928747 +v 0.486742 0.442376 -0.994907 +v 0.346740 0.318013 -1.052898 +v 0.231844 0.166476 -1.100490 +v 0.146468 -0.006411 -1.135853 +v 0.093895 -0.194004 -1.157630 +v 0.076142 -0.389094 -1.164984 +v 0.093895 -0.584184 -1.157630 +v 0.146468 -0.771777 -1.135853 +v 0.231844 -0.944664 -1.100490 +v 0.346740 -1.096201 -1.052898 +v 0.486742 -1.220564 -0.994907 +v 0.646468 -1.312974 -0.928747 +v 0.819782 -1.369879 -0.856958 +v 0.837810 0.591691 -0.890686 +v 0.681832 0.534785 -0.994907 +v 0.538082 0.442376 -1.090958 +v 0.412084 0.318013 -1.175148 +v 0.308680 0.166476 -1.244240 +v 0.231844 -0.006411 -1.295580 +v 0.184529 -0.194004 -1.327195 +v 0.168552 -0.389094 -1.337870 +v 0.184529 -0.584184 -1.327195 +v 0.231844 -0.771777 -1.295580 +v 0.308680 -0.944664 -1.244240 +v 0.412084 -1.096201 -1.175148 +v 0.538082 -1.220564 -1.090958 +v 0.681832 -1.312974 -0.994907 +v 0.837810 -1.369879 -0.890686 +v 0.862072 0.591691 -0.920250 +v 0.729424 0.534785 -1.052898 +v 0.607174 0.442376 -1.175147 +v 0.500022 0.318013 -1.282300 +v 0.412084 0.166476 -1.370238 +v 0.346740 -0.006411 -1.435581 +v 0.306502 -0.194004 -1.475820 +v 0.292915 -0.389094 -1.489407 +v 0.306502 -0.584184 -1.475820 +v 0.346740 -0.771777 -1.435581 +v 0.412084 -0.944664 -1.370238 +v 0.500022 -1.096201 -1.282300 +v 0.607174 -1.220564 -1.175147 +v 0.729424 -1.312974 -1.052898 +v 0.862072 -1.369879 -0.920250 +v 0.891635 0.591691 -0.944512 +v 0.787414 0.534785 -1.100490 +v 0.691363 0.442376 -1.244240 +v 0.607174 0.318013 -1.370238 +v 0.538082 0.166476 -1.473641 +v 0.486742 -0.006411 -1.550478 +v 0.455127 -0.194004 -1.597793 +v 0.444452 -0.389094 -1.613769 +v 0.455127 -0.584184 -1.597793 +v 0.486742 -0.771777 -1.550478 +v 0.538082 -0.944664 -1.473641 +v 0.607174 -1.096201 -1.370238 +v 0.691363 -1.220564 -1.244240 +v 0.787414 -1.312974 -1.100489 +v 0.891635 -1.369879 -0.944512 +v 0.925364 0.591691 -0.962540 +v 0.853575 0.534785 -1.135853 +v 0.787414 0.442376 -1.295580 +v 0.729424 0.318013 -1.435581 +v 0.681832 0.166476 -1.550477 +v 0.646468 -0.006411 -1.635853 +v 0.624692 -0.194004 -1.688427 +v 0.617338 -0.389094 -1.706179 +v 0.624692 -0.584184 -1.688427 +v 0.646468 -0.771777 -1.635853 +v 0.681832 -0.944664 -1.550477 +v 0.729424 -1.096201 -1.435581 +v 0.787414 -1.220564 -1.295580 +v 0.853575 -1.312974 -1.135853 +v 0.925364 -1.369879 -0.962540 +v 0.961961 0.591691 -0.973642 +v 0.925364 0.534785 -1.157630 +v 0.891635 0.442376 -1.327195 +v 0.862072 0.318013 -1.475820 +v 0.837810 0.166476 -1.597793 +v 0.819782 -0.006411 -1.688427 +v 0.808680 -0.194004 -1.744239 +v 0.804931 -0.389094 -1.763085 +v 0.808680 -0.584184 -1.744239 +v 0.819782 -0.771777 -1.688427 +v 0.837810 -0.944664 -1.597793 +v 0.862072 -1.096201 -1.475820 +v 0.891635 -1.220564 -1.327195 +v 0.925364 -1.312974 -1.157630 +v 0.961961 -1.369879 -0.973642 +v 1.000022 -0.771777 -1.706179 +v 1.000022 -0.944664 -1.613769 +v 1.000022 -1.096201 -1.489407 +v 1.000022 -1.312974 -1.164983 +v 1.000021 -1.369879 -0.977390 +vn 0.0097 0.9951 -0.0980 +vn 0.0097 -0.9951 -0.0980 +vn 0.0976 -0.0975 -0.9904 +vn 0.0286 0.9565 -0.2902 +vn 0.0938 -0.2890 -0.9527 +vn 0.0464 0.8810 -0.4709 +vn 0.0865 -0.4696 -0.8786 +vn 0.0624 0.7715 -0.6332 +vn 0.0759 -0.6326 -0.7708 +vn 0.0759 0.6326 -0.7708 +vn 0.0624 -0.7715 -0.6332 +vn 0.0865 0.4696 -0.8786 +vn 0.0464 -0.8810 -0.4709 +vn 0.0938 0.2890 -0.9527 +vn 0.0286 -0.9566 -0.2902 +vn 0.0975 0.0975 -0.9904 +vn 0.0846 -0.9566 -0.2790 +vn 0.2889 0.0976 -0.9524 +vn 0.0286 0.9951 -0.0942 +vn 0.0286 -0.9951 -0.0942 +vn 0.2889 -0.0975 -0.9524 +vn 0.0846 0.9565 -0.2790 +vn 0.2779 -0.2890 -0.9161 +vn 0.1374 0.8810 -0.4528 +vn 0.2563 -0.4696 -0.8448 +vn 0.1847 0.7715 -0.6088 +vn 0.2248 -0.6326 -0.7412 +vn 0.2248 0.6326 -0.7412 +vn 0.1847 -0.7715 -0.6088 +vn 0.2563 0.4696 -0.8448 +vn 0.1374 -0.8810 -0.4528 +vn 0.2779 0.2890 -0.9161 +vn 0.2999 0.7715 -0.5611 +vn 0.3651 -0.6326 -0.6831 +vn 0.3651 0.6326 -0.6831 +vn 0.2999 -0.7715 -0.5611 +vn 0.4162 0.4696 -0.7786 +vn 0.2230 -0.8810 -0.4173 +vn 0.4513 0.2890 -0.8443 +vn 0.1374 -0.9565 -0.2571 +vn 0.4691 0.0975 -0.8777 +vn 0.0464 0.9951 -0.0869 +vn 0.0464 -0.9951 -0.0869 +vn 0.4691 -0.0975 -0.8777 +vn 0.1374 0.9565 -0.2571 +vn 0.4513 -0.2890 -0.8443 +vn 0.2230 0.8810 -0.4173 +vn 0.4162 -0.4696 -0.7786 +vn 0.6314 0.0976 -0.7693 +vn 0.0625 0.9951 -0.0761 +vn 0.0625 -0.9951 -0.0761 +vn 0.6314 -0.0975 -0.7693 +vn 0.1850 0.9565 -0.2254 +vn 0.6073 -0.2890 -0.7400 +vn 0.3002 0.8810 -0.3658 +vn 0.5601 -0.4696 -0.6825 +vn 0.4036 0.7715 -0.4918 +vn 0.4913 -0.6326 -0.5987 +vn 0.4913 0.6326 -0.5987 +vn 0.4036 -0.7715 -0.4918 +vn 0.5601 0.4696 -0.6825 +vn 0.3002 -0.8810 -0.3658 +vn 0.6073 0.2890 -0.7400 +vn 0.1850 -0.9565 -0.2254 +vn 0.5987 -0.6326 -0.4913 +vn 0.5987 0.6326 -0.4913 +vn 0.4918 -0.7715 -0.4036 +vn 0.6825 0.4696 -0.5601 +vn 0.3658 -0.8810 -0.3002 +vn 0.7400 0.2890 -0.6073 +vn 0.2254 -0.9565 -0.1850 +vn 0.7693 0.0975 -0.6314 +vn 0.0761 0.9951 -0.0625 +vn 0.0761 -0.9951 -0.0625 +vn 0.7693 -0.0976 -0.6314 +vn 0.2254 0.9565 -0.1850 +vn 0.7400 -0.2890 -0.6073 +vn 0.3658 0.8810 -0.3002 +vn 0.6825 -0.4696 -0.5601 +vn 0.4918 0.7715 -0.4036 +vn 0.0869 0.9951 -0.0464 +vn 0.0869 -0.9951 -0.0464 +vn 0.8777 -0.0976 -0.4691 +vn 0.2571 0.9565 -0.1374 +vn 0.8443 -0.2890 -0.4513 +vn 0.4173 0.8810 -0.2230 +vn 0.7786 -0.4696 -0.4162 +vn 0.5611 0.7715 -0.2999 +vn 0.6831 -0.6326 -0.3651 +vn 0.6831 0.6326 -0.3651 +vn 0.5611 -0.7715 -0.2999 +vn 0.7786 0.4696 -0.4162 +vn 0.4173 -0.8810 -0.2230 +vn 0.8443 0.2890 -0.4513 +vn 0.2571 -0.9565 -0.1374 +vn 0.8777 0.0975 -0.4691 +vn 0.7412 0.6326 -0.2248 +vn 0.6088 -0.7715 -0.1847 +vn 0.8448 0.4696 -0.2563 +vn 0.4528 -0.8810 -0.1374 +vn 0.9161 0.2890 -0.2779 +vn 0.2790 -0.9565 -0.0846 +vn 0.9524 0.0976 -0.2889 +vn 0.0942 0.9951 -0.0286 +vn 0.0942 -0.9951 -0.0286 +vn 0.9524 -0.0976 -0.2889 +vn 0.2790 0.9565 -0.0846 +vn 0.9161 -0.2890 -0.2779 +vn 0.4528 0.8810 -0.1374 +vn 0.8448 -0.4696 -0.2563 +vn 0.6088 0.7715 -0.1847 +vn 0.7412 -0.6326 -0.2248 +vn 0.9904 -0.0975 -0.0975 +vn 0.2902 0.9565 -0.0286 +vn 0.9527 -0.2890 -0.0938 +vn 0.4709 0.8810 -0.0464 +vn 0.8786 -0.4696 -0.0865 +vn 0.6332 0.7715 -0.0624 +vn 0.7708 -0.6326 -0.0759 +vn 0.7708 0.6326 -0.0759 +vn 0.6332 -0.7715 -0.0624 +vn 0.8786 0.4696 -0.0865 +vn 0.4709 -0.8810 -0.0464 +vn 0.9527 0.2890 -0.0938 +vn 0.2902 -0.9565 -0.0286 +vn 0.9904 0.0976 -0.0975 +vn 0.0980 0.9951 -0.0097 +vn 0.0980 -0.9951 -0.0097 +vn 0.6332 -0.7715 0.0624 +vn 0.8786 0.4696 0.0865 +vn 0.4709 -0.8810 0.0464 +vn 0.9527 0.2890 0.0938 +vn 0.2902 -0.9565 0.0286 +vn 0.9904 0.0976 0.0975 +vn 0.0980 0.9951 0.0097 +vn 0.0980 -0.9951 0.0097 +vn 0.9904 -0.0976 0.0975 +vn 0.2902 0.9565 0.0286 +vn 0.9527 -0.2890 0.0938 +vn 0.4709 0.8810 0.0464 +vn 0.8786 -0.4696 0.0865 +vn 0.6332 0.7715 0.0624 +vn 0.7708 -0.6326 0.0759 +vn 0.7708 0.6326 0.0759 +vn 0.9161 -0.2890 0.2779 +vn 0.4528 0.8810 0.1374 +vn 0.8448 -0.4696 0.2563 +vn 0.6088 0.7715 0.1847 +vn 0.7412 -0.6326 0.2248 +vn 0.7412 0.6326 0.2248 +vn 0.6088 -0.7715 0.1847 +vn 0.8448 0.4696 0.2563 +vn 0.4528 -0.8810 0.1374 +vn 0.9161 0.2890 0.2779 +vn 0.2790 -0.9565 0.0846 +vn 0.9524 0.0976 0.2889 +vn 0.0942 0.9951 0.0286 +vn 0.0942 -0.9951 0.0286 +vn 0.9524 -0.0976 0.2889 +vn 0.2790 0.9565 0.0846 +vn 0.4173 -0.8810 0.2230 +vn 0.8443 0.2890 0.4513 +vn 0.2571 -0.9565 0.1374 +vn 0.8777 0.0976 0.4691 +vn 0.0869 0.9951 0.0464 +vn 0.0869 -0.9951 0.0464 +vn 0.8777 -0.0975 0.4691 +vn 0.2571 0.9565 0.1374 +vn 0.8443 -0.2890 0.4513 +vn 0.4173 0.8810 0.2230 +vn 0.7786 -0.4696 0.4162 +vn 0.5611 0.7715 0.2999 +vn 0.6831 -0.6326 0.3651 +vn 0.6831 0.6326 0.3651 +vn 0.5611 -0.7715 0.2999 +vn 0.7786 0.4696 0.4162 +vn 0.3658 0.8810 0.3002 +vn 0.6825 -0.4696 0.5601 +vn 0.4918 0.7715 0.4036 +vn 0.5987 -0.6326 0.4913 +vn 0.5987 0.6326 0.4913 +vn 0.4918 -0.7715 0.4036 +vn 0.6825 0.4696 0.5601 +vn 0.3658 -0.8810 0.3002 +vn 0.7400 0.2890 0.6073 +vn 0.2254 -0.9565 0.1850 +vn 0.7693 0.0976 0.6314 +vn 0.0761 0.9951 0.0625 +vn 0.0761 -0.9951 0.0625 +vn 0.7693 -0.0976 0.6314 +vn 0.2254 0.9565 0.1850 +vn 0.7400 -0.2890 0.6073 +vn 0.6073 0.2890 0.7400 +vn 0.1850 -0.9566 0.2254 +vn 0.6314 0.0976 0.7693 +vn 0.0625 0.9951 0.0761 +vn 0.0625 -0.9951 0.0761 +vn 0.6314 -0.0976 0.7693 +vn 0.1850 0.9565 0.2254 +vn 0.6073 -0.2890 0.7400 +vn 0.3002 0.8810 0.3658 +vn 0.5601 -0.4696 0.6825 +vn 0.4036 0.7715 0.4918 +vn 0.4913 -0.6326 0.5987 +vn 0.4913 0.6326 0.5987 +vn 0.4036 -0.7715 0.4918 +vn 0.5601 0.4696 0.6825 +vn 0.3002 -0.8810 0.3658 +vn 0.4162 -0.4696 0.7786 +vn 0.2999 0.7715 0.5611 +vn 0.3651 -0.6326 0.6831 +vn 0.3651 0.6326 0.6831 +vn 0.2999 -0.7715 0.5611 +vn 0.4162 0.4696 0.7786 +vn 0.2230 -0.8810 0.4173 +vn 0.4513 0.2890 0.8443 +vn 0.1374 -0.9565 0.2571 +vn 0.4691 0.0976 0.8777 +vn 0.0464 0.9951 0.0869 +vn 0.0464 -0.9951 0.0869 +vn 0.4691 -0.0976 0.8777 +vn 0.1374 0.9565 0.2571 +vn 0.4513 -0.2890 0.8443 +vn 0.2230 0.8810 0.4173 +vn 0.0846 -0.9565 0.2790 +vn 0.2889 0.0976 0.9524 +vn 0.0286 0.9951 0.0942 +vn 0.0286 -0.9951 0.0942 +vn 0.2889 -0.0976 0.9524 +vn 0.0846 0.9565 0.2790 +vn 0.2779 -0.2890 0.9161 +vn 0.1374 0.8810 0.4528 +vn 0.2563 -0.4696 0.8448 +vn 0.1847 0.7715 0.6088 +vn 0.2248 -0.6326 0.7412 +vn 0.2248 0.6326 0.7412 +vn 0.1847 -0.7715 0.6088 +vn 0.2563 0.4696 0.8448 +vn 0.1374 -0.8810 0.4528 +vn 0.2779 0.2890 0.9161 +vn 0.0624 0.7715 0.6332 +vn 0.0759 -0.6326 0.7708 +vn 0.0759 0.6326 0.7708 +vn 0.0624 -0.7715 0.6332 +vn 0.0865 0.4696 0.8786 +vn 0.0464 -0.8810 0.4709 +vn 0.0938 0.2890 0.9527 +vn 0.0286 -0.9565 0.2902 +vn 0.0975 0.0976 0.9904 +vn 0.0097 0.9951 0.0980 +vn 0.0097 -0.9951 0.0980 +vn 0.0975 -0.0976 0.9904 +vn 0.0286 0.9565 0.2902 +vn 0.0938 -0.2890 0.9527 +vn 0.0464 0.8810 0.4709 +vn 0.0865 -0.4696 0.8786 +vn -0.0975 0.0976 0.9904 +vn -0.0097 0.9951 0.0980 +vn -0.0097 -0.9951 0.0980 +vn -0.0975 -0.0976 0.9904 +vn -0.0286 0.9565 0.2902 +vn -0.0938 -0.2890 0.9527 +vn -0.0464 0.8810 0.4709 +vn -0.0865 -0.4696 0.8786 +vn -0.0624 0.7715 0.6332 +vn -0.0759 -0.6326 0.7708 +vn -0.0759 0.6326 0.7708 +vn -0.0624 -0.7715 0.6332 +vn -0.0865 0.4696 0.8786 +vn -0.0464 -0.8810 0.4709 +vn -0.0938 0.2890 0.9527 +vn -0.0286 -0.9565 0.2902 +vn -0.2248 -0.6326 0.7412 +vn -0.2248 0.6326 0.7412 +vn -0.1847 -0.7715 0.6088 +vn -0.2563 0.4696 0.8448 +vn -0.1374 -0.8810 0.4528 +vn -0.2779 0.2890 0.9161 +vn -0.0846 -0.9565 0.2790 +vn -0.2889 0.0976 0.9524 +vn -0.0286 0.9951 0.0942 +vn -0.0286 -0.9951 0.0942 +vn -0.2889 -0.0976 0.9524 +vn -0.0846 0.9565 0.2790 +vn -0.2779 -0.2890 0.9161 +vn -0.1374 0.8810 0.4528 +vn -0.2563 -0.4696 0.8448 +vn -0.1847 0.7715 0.6088 +vn -0.0464 -0.9951 0.0869 +vn -0.4691 -0.0976 0.8777 +vn -0.1374 0.9565 0.2571 +vn -0.4513 -0.2890 0.8443 +vn -0.2231 0.8810 0.4173 +vn -0.4162 -0.4696 0.7786 +vn -0.2999 0.7715 0.5611 +vn -0.3651 -0.6326 0.6831 +vn -0.3651 0.6326 0.6831 +vn -0.2999 -0.7715 0.5611 +vn -0.4162 0.4696 0.7786 +vn -0.2230 -0.8810 0.4173 +vn -0.4513 0.2890 0.8443 +vn -0.1374 -0.9565 0.2571 +vn -0.4691 0.0976 0.8777 +vn -0.0464 0.9951 0.0869 +vn -0.4036 -0.7715 0.4918 +vn -0.5601 0.4696 0.6825 +vn -0.3002 -0.8810 0.3658 +vn -0.6073 0.2890 0.7400 +vn -0.1850 -0.9565 0.2254 +vn -0.6314 0.0976 0.7693 +vn -0.0625 0.9951 0.0761 +vn -0.0625 -0.9951 0.0761 +vn -0.6314 -0.0976 0.7693 +vn -0.1850 0.9565 0.2254 +vn -0.6073 -0.2890 0.7400 +vn -0.3002 0.8810 0.3658 +vn -0.5601 -0.4696 0.6825 +vn -0.4036 0.7715 0.4918 +vn -0.4913 -0.6326 0.5987 +vn -0.4913 0.6326 0.5987 +vn -0.2254 0.9565 0.1850 +vn -0.7400 -0.2890 0.6073 +vn -0.3658 0.8810 0.3002 +vn -0.6825 -0.4696 0.5601 +vn -0.4918 0.7715 0.4036 +vn -0.5987 -0.6326 0.4913 +vn -0.5987 0.6326 0.4913 +vn -0.4918 -0.7715 0.4036 +vn -0.6825 0.4696 0.5601 +vn -0.3658 -0.8810 0.3002 +vn -0.7400 0.2890 0.6073 +vn -0.2254 -0.9566 0.1850 +vn -0.7693 0.0976 0.6314 +vn -0.0761 0.9951 0.0625 +vn -0.0761 -0.9951 0.0625 +vn -0.7693 -0.0976 0.6314 +vn -0.7786 0.4696 0.4162 +vn -0.4173 -0.8810 0.2230 +vn -0.8443 0.2890 0.4513 +vn -0.2571 -0.9566 0.1374 +vn -0.8777 0.0976 0.4691 +vn -0.0869 0.9951 0.0464 +vn -0.0869 -0.9951 0.0464 +vn -0.8777 -0.0976 0.4691 +vn -0.2571 0.9565 0.1374 +vn -0.8443 -0.2890 0.4513 +vn -0.4173 0.8810 0.2230 +vn -0.7786 -0.4696 0.4162 +vn -0.5611 0.7715 0.2999 +vn -0.6831 -0.6326 0.3651 +vn -0.6831 0.6326 0.3651 +vn -0.5611 -0.7715 0.2999 +vn -0.9161 -0.2890 0.2779 +vn -0.4528 0.8810 0.1374 +vn -0.8448 -0.4696 0.2563 +vn -0.6088 0.7715 0.1847 +vn -0.7412 -0.6326 0.2248 +vn -0.7412 0.6326 0.2248 +vn -0.6088 -0.7715 0.1847 +vn -0.8448 0.4696 0.2563 +vn -0.4528 -0.8810 0.1374 +vn -0.9161 0.2890 0.2779 +vn -0.2790 -0.9565 0.0846 +vn -0.9524 0.0976 0.2889 +vn -0.0942 0.9951 0.0286 +vn -0.0942 -0.9951 0.0286 +vn -0.9524 -0.0976 0.2889 +vn -0.2790 0.9565 0.0846 +vn -0.4709 -0.8810 0.0464 +vn -0.9527 0.2890 0.0938 +vn -0.2902 -0.9565 0.0286 +vn -0.9904 0.0976 0.0975 +vn -0.0980 0.9951 0.0097 +vn -0.0980 -0.9951 0.0096 +vn -0.9904 -0.0976 0.0975 +vn -0.2902 0.9565 0.0286 +vn -0.9527 -0.2890 0.0938 +vn -0.4709 0.8810 0.0464 +vn -0.8786 -0.4696 0.0865 +vn -0.6332 0.7715 0.0624 +vn -0.7708 -0.6326 0.0759 +vn -0.7708 0.6326 0.0759 +vn -0.6332 -0.7715 0.0624 +vn -0.8786 0.4696 0.0865 +vn -0.4709 0.8810 -0.0464 +vn -0.8786 -0.4696 -0.0865 +vn -0.6332 0.7715 -0.0624 +vn -0.7708 -0.6326 -0.0759 +vn -0.7708 0.6326 -0.0759 +vn -0.6332 -0.7715 -0.0624 +vn -0.8786 0.4696 -0.0865 +vn -0.4709 -0.8810 -0.0464 +vn -0.9527 0.2890 -0.0938 +vn -0.2902 -0.9565 -0.0286 +vn -0.9904 0.0976 -0.0976 +vn -0.0980 0.9951 -0.0097 +vn -0.0980 -0.9951 -0.0096 +vn -0.9904 -0.0976 -0.0976 +vn -0.2902 0.9565 -0.0286 +vn -0.9527 -0.2890 -0.0938 +vn -0.9161 0.2890 -0.2779 +vn -0.2790 -0.9565 -0.0846 +vn -0.9524 0.0976 -0.2889 +vn -0.0942 0.9951 -0.0286 +vn -0.0942 -0.9951 -0.0286 +vn -0.9524 -0.0976 -0.2889 +vn -0.2790 0.9565 -0.0846 +vn -0.9161 -0.2890 -0.2779 +vn -0.4528 0.8810 -0.1374 +vn -0.8448 -0.4696 -0.2563 +vn -0.6088 0.7715 -0.1847 +vn -0.7412 -0.6326 -0.2248 +vn -0.7412 0.6326 -0.2248 +vn -0.6088 -0.7715 -0.1847 +vn -0.8448 0.4696 -0.2563 +vn -0.4528 -0.8810 -0.1374 +vn -0.7786 -0.4696 -0.4162 +vn -0.5611 0.7715 -0.2999 +vn -0.6831 -0.6326 -0.3651 +vn -0.6831 0.6326 -0.3651 +vn -0.5611 -0.7715 -0.2999 +vn -0.7786 0.4696 -0.4162 +vn -0.4173 -0.8810 -0.2230 +vn -0.8443 0.2890 -0.4513 +vn -0.2571 -0.9565 -0.1374 +vn -0.8777 0.0976 -0.4691 +vn -0.0869 0.9951 -0.0464 +vn -0.0869 -0.9951 -0.0464 +vn -0.8777 -0.0976 -0.4691 +vn -0.2571 0.9565 -0.1374 +vn -0.8443 -0.2890 -0.4513 +vn -0.4173 0.8810 -0.2231 +vn -0.2254 -0.9565 -0.1850 +vn -0.7693 0.0976 -0.6314 +vn -0.0761 0.9951 -0.0625 +vn -0.0761 -0.9951 -0.0625 +vn -0.7693 -0.0976 -0.6314 +vn -0.2254 0.9565 -0.1850 +vn -0.7400 -0.2890 -0.6073 +vn -0.3658 0.8810 -0.3002 +vn -0.6825 -0.4696 -0.5601 +vn -0.4918 0.7715 -0.4036 +vn -0.5987 -0.6326 -0.4913 +vn -0.5987 0.6326 -0.4913 +vn -0.4918 -0.7715 -0.4036 +vn -0.6825 0.4696 -0.5601 +vn -0.3658 -0.8810 -0.3002 +vn -0.7400 0.2890 -0.6073 +vn -0.4913 -0.6326 -0.5987 +vn -0.4913 0.6326 -0.5987 +vn -0.4036 -0.7715 -0.4918 +vn -0.5601 0.4696 -0.6825 +vn -0.3002 -0.8810 -0.3658 +vn -0.6073 0.2890 -0.7400 +vn -0.1850 -0.9566 -0.2254 +vn -0.6314 0.0976 -0.7693 +vn -0.0625 0.9951 -0.0761 +vn -0.0625 -0.9951 -0.0761 +vn -0.6314 -0.0976 -0.7693 +vn -0.1850 0.9565 -0.2254 +vn -0.6073 -0.2890 -0.7400 +vn -0.3002 0.8810 -0.3658 +vn -0.5601 -0.4696 -0.6825 +vn -0.4036 0.7715 -0.4918 +vn -0.0464 0.9951 -0.0869 +vn -0.0464 -0.9951 -0.0869 +vn -0.4691 -0.0976 -0.8777 +vn -0.1374 0.9565 -0.2571 +vn -0.4513 -0.2890 -0.8443 +vn -0.2230 0.8810 -0.4173 +vn -0.4162 -0.4696 -0.7786 +vn -0.2999 0.7715 -0.5611 +vn -0.3651 -0.6326 -0.6831 +vn -0.3651 0.6326 -0.6831 +vn -0.2999 -0.7715 -0.5611 +vn -0.4162 0.4696 -0.7786 +vn -0.2231 -0.8810 -0.4173 +vn -0.4513 0.2890 -0.8443 +vn -0.1374 -0.9565 -0.2571 +vn -0.4691 0.0976 -0.8777 +vn -0.2248 0.6326 -0.7412 +vn -0.1847 -0.7715 -0.6088 +vn -0.2563 0.4696 -0.8448 +vn -0.1374 -0.8810 -0.4528 +vn -0.2779 0.2890 -0.9161 +vn -0.0846 -0.9565 -0.2790 +vn -0.2889 0.0976 -0.9524 +vn -0.0286 0.9951 -0.0942 +vn -0.0286 -0.9951 -0.0942 +vn -0.2889 -0.0976 -0.9524 +vn -0.0846 0.9565 -0.2790 +vn -0.2779 -0.2890 -0.9161 +vn -0.1374 0.8810 -0.4528 +vn -0.2563 -0.4696 -0.8448 +vn -0.1847 0.7715 -0.6088 +vn -0.2248 -0.6326 -0.7412 +vn -0.0976 -0.0976 -0.9904 +vn -0.0286 0.9565 -0.2902 +vn -0.0938 -0.2890 -0.9527 +vn -0.0464 0.8810 -0.4709 +vn -0.0865 -0.4696 -0.8786 +vn -0.0624 0.7715 -0.6332 +vn -0.0759 -0.6326 -0.7708 +vn -0.0759 0.6326 -0.7708 +vn -0.0624 -0.7715 -0.6332 +vn -0.0865 0.4696 -0.8786 +vn -0.0464 -0.8810 -0.4709 +vn -0.0938 0.2890 -0.9527 +vn -0.0286 -0.9565 -0.2902 +vn -0.0976 0.0975 -0.9904 +vn -0.0097 0.9951 -0.0980 +vn -0.0097 -0.9951 -0.0980 +vn 0.0975 -0.0975 -0.9904 +vn 0.0286 -0.9565 -0.2902 +vn 0.0846 -0.9565 -0.2790 +vn 0.2889 0.0975 -0.9524 +vn 0.2889 -0.0976 -0.9524 +vn 0.2231 -0.8810 -0.4173 +vn 0.2231 0.8810 -0.4173 +vn 0.6314 0.0975 -0.7693 +vn 0.7693 0.0976 -0.6314 +vn 0.7693 -0.0975 -0.6314 +vn 0.4173 -0.8810 -0.2231 +vn 0.8777 0.0976 -0.4691 +vn 0.9904 -0.0976 -0.0975 +vn 0.9524 -0.0975 0.2889 +vn 0.4173 -0.8810 0.2231 +vn 0.8777 0.0975 0.4691 +vn 0.8777 -0.0976 0.4691 +vn 0.4173 0.8810 0.2231 +vn 0.1850 -0.9565 0.2254 +vn 0.2231 -0.8810 0.4173 +vn -0.2230 0.8810 0.4173 +vn -0.2231 -0.8810 0.4173 +vn -0.2254 -0.9565 0.1850 +vn -0.4173 -0.8810 0.2231 +vn -0.2571 -0.9565 0.1374 +vn -0.4173 -0.8810 -0.2231 +vn -0.4173 0.8810 -0.2230 +vn -0.1850 -0.9565 -0.2254 +vn -0.2230 -0.8810 -0.4173 +vn -0.0976 -0.0975 -0.9904 +vn -0.0976 0.0976 -0.9904 +usemtl None +s off +f 1//1 297//1 11//1 +f 206//2 482//2 25//2 +f 8//3 19//3 9//3 +f 1//4 12//4 2//4 +f 9//5 20//5 478//5 +f 3//6 12//6 13//6 +f 478//7 21//7 479//7 +f 3//8 14//8 4//8 +f 479//9 22//9 480//9 +f 4//10 15//10 5//10 +f 480//11 23//11 10//11 +f 5//12 16//12 6//12 +f 10//13 24//13 481//13 +f 6//14 17//14 7//14 +f 481//15 25//15 482//15 +f 7//16 18//16 8//16 +f 24//17 40//17 25//17 +f 17//18 33//18 18//18 +f 11//19 297//19 26//19 +f 206//20 25//20 40//20 +f 19//21 33//21 34//21 +f 11//22 27//22 12//22 +f 20//23 34//23 35//23 +f 12//24 28//24 13//24 +f 20//25 36//25 21//25 +f 13//26 29//26 14//26 +f 22//27 36//27 37//27 +f 14//28 30//28 15//28 +f 22//29 38//29 23//29 +f 15//30 31//30 16//30 +f 23//31 39//31 24//31 +f 16//32 32//32 17//32 +f 28//33 44//33 29//33 +f 37//34 51//34 52//34 +f 29//35 45//35 30//35 +f 37//36 53//36 38//36 +f 30//37 46//37 31//37 +f 38//38 54//38 39//38 +f 32//39 46//39 47//39 +f 39//40 55//40 40//40 +f 32//41 48//41 33//41 +f 26//42 297//42 41//42 +f 206//43 40//43 55//43 +f 33//44 49//44 34//44 +f 26//45 42//45 27//45 +f 34//46 50//46 35//46 +f 27//47 43//47 28//47 +f 36//48 50//48 51//48 +f 48//49 62//49 63//49 +f 41//50 297//50 56//50 +f 206//51 55//51 70//51 +f 48//52 64//52 49//52 +f 41//53 57//53 42//53 +f 49//54 65//54 50//54 +f 42//55 58//55 43//55 +f 51//56 65//56 66//56 +f 43//57 59//57 44//57 +f 51//58 67//58 52//58 +f 44//59 60//59 45//59 +f 52//60 68//60 53//60 +f 45//61 61//61 46//61 +f 53//62 69//62 54//62 +f 46//63 62//63 47//63 +f 54//64 70//64 55//64 +f 66//65 82//65 67//65 +f 60//66 74//66 75//66 +f 68//67 82//67 83//67 +f 60//68 76//68 61//68 +f 69//69 83//69 84//69 +f 61//70 77//70 62//70 +f 69//71 85//71 70//71 +f 63//72 77//72 78//72 +f 56//73 297//73 71//73 +f 206//74 70//74 85//74 +f 63//75 79//75 64//75 +f 56//76 72//76 57//76 +f 64//77 80//77 65//77 +f 57//78 73//78 58//78 +f 66//79 80//79 81//79 +f 58//80 74//80 59//80 +f 71//81 297//81 86//81 +f 206//82 85//82 100//82 +f 78//83 94//83 79//83 +f 71//84 87//84 72//84 +f 79//85 95//85 80//85 +f 72//86 88//86 73//86 +f 81//87 95//87 96//87 +f 73//88 89//88 74//88 +f 82//89 96//89 97//89 +f 75//90 89//90 90//90 +f 82//91 98//91 83//91 +f 75//92 91//92 76//92 +f 84//93 98//93 99//93 +f 77//94 91//94 92//94 +f 84//95 100//95 85//95 +f 77//96 93//96 78//96 +f 89//97 105//97 90//97 +f 97//98 113//98 98//98 +f 90//99 106//99 91//99 +f 98//100 114//100 99//100 +f 92//101 106//101 107//101 +f 100//102 114//102 115//102 +f 92//103 108//103 93//103 +f 86//104 297//104 101//104 +f 206//105 100//105 115//105 +f 93//106 109//106 94//106 +f 86//107 102//107 87//107 +f 94//108 110//108 95//108 +f 87//109 103//109 88//109 +f 96//110 110//110 111//110 +f 89//111 103//111 104//111 +f 97//112 111//112 112//112 +f 109//113 123//113 124//113 +f 101//114 117//114 102//114 +f 109//115 125//115 110//115 +f 102//116 118//116 103//116 +f 111//117 125//117 126//117 +f 103//118 119//118 104//118 +f 111//119 127//119 112//119 +f 104//120 120//120 105//120 +f 113//121 127//121 128//121 +f 105//122 121//122 106//122 +f 114//123 128//123 129//123 +f 107//124 121//124 122//124 +f 115//125 129//125 130//125 +f 107//126 123//126 108//126 +f 101//127 297//127 116//127 +f 206//128 115//128 130//128 +f 128//129 142//129 143//129 +f 120//130 136//130 121//130 +f 128//131 144//131 129//131 +f 122//132 136//132 137//132 +f 130//133 144//133 145//133 +f 122//134 138//134 123//134 +f 116//135 297//135 131//135 +f 206//136 130//136 145//136 +f 123//137 139//137 124//137 +f 117//138 131//138 132//138 +f 124//139 140//139 125//139 +f 117//140 133//140 118//140 +f 126//141 140//141 141//141 +f 118//142 134//142 119//142 +f 126//143 142//143 127//143 +f 120//144 134//144 135//144 +f 139//145 155//145 140//145 +f 133//146 147//146 148//146 +f 141//147 155//147 156//147 +f 133//148 149//148 134//148 +f 141//149 157//149 142//149 +f 134//150 150//150 135//150 +f 142//151 158//151 143//151 +f 135//152 151//152 136//152 +f 144//153 158//153 159//153 +f 137//154 151//154 152//154 +f 144//155 160//155 145//155 +f 137//156 153//156 138//156 +f 131//157 297//157 146//157 +f 206//158 145//158 160//158 +f 138//159 154//159 139//159 +f 131//160 147//160 132//160 +f 158//161 174//161 159//161 +f 152//162 166//162 167//162 +f 159//163 175//163 160//163 +f 152//164 168//164 153//164 +f 146//165 297//165 161//165 +f 206//166 160//166 175//166 +f 154//167 168//167 169//167 +f 146//168 162//168 147//168 +f 154//169 170//169 155//169 +f 147//170 163//170 148//170 +f 156//171 170//171 171//171 +f 148//172 164//172 149//172 +f 156//173 172//173 157//173 +f 150//174 164//174 165//174 +f 158//175 172//175 173//175 +f 150//176 166//176 151//176 +f 162//177 178//177 163//177 +f 170//178 186//178 171//178 +f 163//179 179//179 164//179 +f 171//180 187//180 172//180 +f 164//181 180//181 165//181 +f 173//182 187//182 188//182 +f 165//183 181//183 166//183 +f 173//184 189//184 174//184 +f 167//185 181//185 182//185 +f 175//186 189//186 190//186 +f 167//187 183//187 168//187 +f 161//188 297//188 176//188 +f 206//189 175//189 190//189 +f 168//190 184//190 169//190 +f 161//191 177//191 162//191 +f 169//192 185//192 170//192 +f 182//193 196//193 197//193 +f 190//194 204//194 205//194 +f 182//195 198//195 183//195 +f 176//196 297//196 191//196 +f 206//197 190//197 205//197 +f 184//198 198//198 199//198 +f 176//199 192//199 177//199 +f 184//200 200//200 185//200 +f 177//201 193//201 178//201 +f 186//202 200//202 201//202 +f 179//203 193//203 194//203 +f 186//204 202//204 187//204 +f 180//205 194//205 195//205 +f 188//206 202//206 203//206 +f 180//207 196//207 181//207 +f 188//208 204//208 189//208 +f 201//209 216//209 217//209 +f 193//210 210//210 194//210 +f 201//211 218//211 202//211 +f 194//212 211//212 195//212 +f 203//213 218//213 219//213 +f 195//214 212//214 196//214 +f 203//215 220//215 204//215 +f 197//216 212//216 213//216 +f 204//217 221//217 205//217 +f 197//218 214//218 198//218 +f 191//219 297//219 207//219 +f 206//220 205//220 221//220 +f 198//221 215//221 199//221 +f 191//222 208//222 192//222 +f 199//223 216//223 200//223 +f 193//224 208//224 209//224 +f 221//225 235//225 236//225 +f 213//226 229//226 214//226 +f 207//227 297//227 222//227 +f 206//228 221//228 236//228 +f 214//229 230//229 215//229 +f 207//230 223//230 208//230 +f 215//231 231//231 216//231 +f 208//232 224//232 209//232 +f 217//233 231//233 232//233 +f 209//234 225//234 210//234 +f 217//235 233//235 218//235 +f 210//236 226//236 211//236 +f 218//237 234//237 219//237 +f 211//238 227//238 212//238 +f 219//239 235//239 220//239 +f 213//240 227//240 228//240 +f 225//241 239//241 240//241 +f 232//242 248//242 233//242 +f 225//243 241//243 226//243 +f 234//244 248//244 249//244 +f 226//245 242//245 227//245 +f 234//246 250//246 235//246 +f 228//247 242//247 243//247 +f 236//248 250//248 251//248 +f 228//249 244//249 229//249 +f 222//250 297//250 237//250 +f 206//251 236//251 251//251 +f 229//252 245//252 230//252 +f 222//253 238//253 223//253 +f 230//254 246//254 231//254 +f 224//255 238//255 239//255 +f 232//256 246//256 247//256 +f 243//257 259//257 244//257 +f 237//258 297//258 252//258 +f 206//259 251//259 266//259 +f 244//260 260//260 245//260 +f 237//261 253//261 238//261 +f 245//262 261//262 246//262 +f 238//263 254//263 239//263 +f 247//264 261//264 262//264 +f 240//265 254//265 255//265 +f 247//266 263//266 248//266 +f 241//267 255//267 256//267 +f 248//268 264//268 249//268 +f 241//269 257//269 242//269 +f 249//270 265//270 250//270 +f 243//271 257//271 258//271 +f 250//272 266//272 251//272 +f 262//273 278//273 263//273 +f 256//274 270//274 271//274 +f 263//275 279//275 264//275 +f 256//276 272//276 257//276 +f 265//277 279//277 280//277 +f 258//278 272//278 273//278 +f 266//279 280//279 281//279 +f 258//280 274//280 259//280 +f 252//281 297//281 267//281 +f 206//282 266//282 281//282 +f 260//283 274//283 275//283 +f 252//284 268//284 253//284 +f 260//285 276//285 261//285 +f 253//286 269//286 254//286 +f 262//287 276//287 277//287 +f 255//288 269//288 270//288 +f 206//289 281//289 296//289 +f 274//290 290//290 275//290 +f 267//291 283//291 268//291 +f 275//292 291//292 276//292 +f 268//293 284//293 269//293 +f 277//294 291//294 292//294 +f 269//295 285//295 270//295 +f 277//296 293//296 278//296 +f 271//297 285//297 286//297 +f 279//298 293//298 294//298 +f 271//299 287//299 272//299 +f 279//300 295//300 280//300 +f 273//301 287//301 288//301 +f 281//302 295//302 296//302 +f 273//303 289//303 274//303 +f 267//304 297//304 282//304 +f 293//305 310//305 294//305 +f 286//306 303//306 287//306 +f 294//307 311//307 295//307 +f 288//308 303//308 304//308 +f 295//309 312//309 296//309 +f 289//310 304//310 305//310 +f 282//311 297//311 298//311 +f 206//312 296//312 312//312 +f 289//313 306//313 290//313 +f 282//314 299//314 283//314 +f 290//315 307//315 291//315 +f 283//316 300//316 284//316 +f 292//317 307//317 308//317 +f 285//318 300//318 301//318 +f 292//319 309//319 293//319 +f 286//320 301//320 302//320 +f 298//321 314//321 299//321 +f 306//322 322//322 307//322 +f 299//323 315//323 300//323 +f 308//324 322//324 323//324 +f 301//325 315//325 316//325 +f 308//326 324//326 309//326 +f 302//327 316//327 317//327 +f 309//328 325//328 310//328 +f 302//329 318//329 303//329 +f 311//330 325//330 326//330 +f 304//331 318//331 319//331 +f 311//332 327//332 312//332 +f 304//333 320//333 305//333 +f 298//334 297//334 313//334 +f 206//335 312//335 327//335 +f 305//336 321//336 306//336 +f 317//337 333//337 318//337 +f 326//338 340//338 341//338 +f 319//339 333//339 334//339 +f 327//340 341//340 342//340 +f 319//341 335//341 320//341 +f 313//342 297//342 328//342 +f 206//343 327//343 342//343 +f 320//344 336//344 321//344 +f 313//345 329//345 314//345 +f 321//346 337//346 322//346 +f 314//347 330//347 315//347 +f 323//348 337//348 338//348 +f 316//349 330//349 331//349 +f 324//350 338//350 339//350 +f 317//351 331//351 332//351 +f 324//352 340//352 325//352 +f 336//353 352//353 337//353 +f 329//354 345//354 330//354 +f 338//355 352//355 353//355 +f 331//356 345//356 346//356 +f 338//357 354//357 339//357 +f 332//358 346//358 347//358 +f 339//359 355//359 340//359 +f 332//360 348//360 333//360 +f 341//361 355//361 356//361 +f 334//362 348//362 349//362 +f 341//363 357//363 342//363 +f 334//364 350//364 335//364 +f 328//365 297//365 343//365 +f 206//366 342//366 357//366 +f 335//367 351//367 336//367 +f 329//368 343//368 344//368 +f 356//369 370//369 371//369 +f 349//370 363//370 364//370 +f 356//371 372//371 357//371 +f 349//372 365//372 350//372 +f 343//373 297//373 358//373 +f 206//374 357//374 372//374 +f 351//375 365//375 366//375 +f 344//376 358//376 359//376 +f 351//377 367//377 352//377 +f 344//378 360//378 345//378 +f 353//379 367//379 368//379 +f 346//380 360//380 361//380 +f 353//381 369//381 354//381 +f 346//382 362//382 347//382 +f 355//383 369//383 370//383 +f 347//384 363//384 348//384 +f 359//385 375//385 360//385 +f 368//386 382//386 383//386 +f 361//387 375//387 376//387 +f 368//388 384//388 369//388 +f 362//389 376//389 377//389 +f 369//390 385//390 370//390 +f 362//391 378//391 363//391 +f 371//392 385//392 386//392 +f 364//393 378//393 379//393 +f 371//394 387//394 372//394 +f 364//395 380//395 365//395 +f 358//396 297//396 373//396 +f 206//397 372//397 387//397 +f 366//398 380//398 381//398 +f 359//399 373//399 374//399 +f 366//400 382//400 367//400 +f 379//401 393//401 394//401 +f 386//402 402//402 387//402 +f 379//403 395//403 380//403 +f 373//404 297//404 388//404 +f 206//405 387//405 402//405 +f 380//406 396//406 381//406 +f 373//407 389//407 374//407 +f 381//408 397//408 382//408 +f 374//409 390//409 375//409 +f 383//410 397//410 398//410 +f 376//411 390//411 391//411 +f 383//412 399//412 384//412 +f 376//413 392//413 377//413 +f 384//414 400//414 385//414 +f 377//415 393//415 378//415 +f 386//416 400//416 401//416 +f 398//417 412//417 413//417 +f 391//418 405//418 406//418 +f 398//419 414//419 399//419 +f 392//420 406//420 407//420 +f 399//421 415//421 400//421 +f 392//422 408//422 393//422 +f 401//423 415//423 416//423 +f 394//424 408//424 409//424 +f 401//425 417//425 402//425 +f 394//426 410//426 395//426 +f 388//427 297//427 403//427 +f 206//428 402//428 417//428 +f 396//429 410//429 411//429 +f 388//430 404//430 389//430 +f 396//431 412//431 397//431 +f 390//432 404//432 405//432 +f 416//433 432//433 417//433 +f 409//434 425//434 410//434 +f 403//435 297//435 418//435 +f 206//436 417//436 432//436 +f 411//437 425//437 426//437 +f 403//438 419//438 404//438 +f 411//439 427//439 412//439 +f 404//440 420//440 405//440 +f 413//441 427//441 428//441 +f 405//442 421//442 406//442 +f 413//443 429//443 414//443 +f 407//444 421//444 422//444 +f 414//445 430//445 415//445 +f 407//446 423//446 408//446 +f 415//447 431//447 416//447 +f 409//448 423//448 424//448 +f 428//449 444//449 429//449 +f 422//450 436//450 437//450 +f 430//451 444//451 445//451 +f 422//452 438//452 423//452 +f 430//453 446//453 431//453 +f 424//454 438//454 439//454 +f 431//455 447//455 432//455 +f 425//456 439//456 440//456 +f 418//457 297//457 433//457 +f 206//458 432//458 447//458 +f 425//459 441//459 426//459 +f 418//460 434//460 419//460 +f 426//461 442//461 427//461 +f 419//462 435//462 420//462 +f 428//463 442//463 443//463 +f 420//464 436//464 421//464 +f 433//465 297//465 448//465 +f 206//466 447//466 462//466 +f 440//467 456//467 441//467 +f 434//468 448//468 449//468 +f 441//469 457//469 442//469 +f 435//470 449//470 450//470 +f 443//471 457//471 458//471 +f 436//472 450//472 451//472 +f 443//473 459//473 444//473 +f 437//474 451//474 452//474 +f 444//475 460//475 445//475 +f 437//476 453//476 438//476 +f 445//477 461//477 446//477 +f 439//478 453//478 454//478 +f 446//479 462//479 447//479 +f 439//480 455//480 440//480 +f 452//481 466//481 467//481 +f 459//482 475//482 460//482 +f 452//483 468//483 453//483 +f 460//484 476//484 461//484 +f 454//485 468//485 469//485 +f 462//486 476//486 477//486 +f 454//487 470//487 455//487 +f 448//488 297//488 463//488 +f 206//489 462//489 477//489 +f 455//490 471//490 456//490 +f 448//491 464//491 449//491 +f 456//492 472//492 457//492 +f 449//493 465//493 450//493 +f 458//494 472//494 473//494 +f 450//495 466//495 451//495 +f 458//496 474//496 459//496 +f 470//497 9//497 471//497 +f 464//498 1//498 2//498 +f 471//499 478//499 472//499 +f 465//500 2//500 3//500 +f 473//501 478//501 479//501 +f 466//502 3//502 4//502 +f 473//503 480//503 474//503 +f 467//504 4//504 5//504 +f 474//505 10//505 475//505 +f 468//506 5//506 6//506 +f 475//507 481//507 476//507 +f 469//508 6//508 7//508 +f 476//509 482//509 477//509 +f 470//510 7//510 8//510 +f 463//511 297//511 1//511 +f 206//512 477//512 482//512 +f 8//513 18//513 19//513 +f 1//4 11//4 12//4 +f 9//5 19//5 20//5 +f 3//6 2//6 12//6 +f 478//7 20//7 21//7 +f 3//8 13//8 14//8 +f 479//9 21//9 22//9 +f 4//10 14//10 15//10 +f 480//11 22//11 23//11 +f 5//12 15//12 16//12 +f 10//13 23//13 24//13 +f 6//14 16//14 17//14 +f 481//514 24//514 25//514 +f 7//16 17//16 18//16 +f 24//515 39//515 40//515 +f 17//516 32//516 33//516 +f 19//517 18//517 33//517 +f 11//22 26//22 27//22 +f 20//23 19//23 34//23 +f 12//24 27//24 28//24 +f 20//25 35//25 36//25 +f 13//26 28//26 29//26 +f 22//27 21//27 36//27 +f 14//28 29//28 30//28 +f 22//29 37//29 38//29 +f 15//30 30//30 31//30 +f 23//31 38//31 39//31 +f 16//32 31//32 32//32 +f 28//33 43//33 44//33 +f 37//34 36//34 51//34 +f 29//35 44//35 45//35 +f 37//36 52//36 53//36 +f 30//37 45//37 46//37 +f 38//518 53//518 54//518 +f 32//39 31//39 46//39 +f 39//40 54//40 55//40 +f 32//41 47//41 48//41 +f 33//44 48//44 49//44 +f 26//45 41//45 42//45 +f 34//46 49//46 50//46 +f 27//519 42//519 43//519 +f 36//48 35//48 50//48 +f 48//520 47//520 62//520 +f 48//52 63//52 64//52 +f 41//53 56//53 57//53 +f 49//54 64//54 65//54 +f 42//55 57//55 58//55 +f 51//56 50//56 65//56 +f 43//57 58//57 59//57 +f 51//58 66//58 67//58 +f 44//59 59//59 60//59 +f 52//60 67//60 68//60 +f 45//61 60//61 61//61 +f 53//62 68//62 69//62 +f 46//63 61//63 62//63 +f 54//64 69//64 70//64 +f 66//65 81//65 82//65 +f 60//66 59//66 74//66 +f 68//67 67//67 82//67 +f 60//68 75//68 76//68 +f 69//69 68//69 83//69 +f 61//70 76//70 77//70 +f 69//71 84//71 85//71 +f 63//521 62//521 77//521 +f 63//522 78//522 79//522 +f 56//76 71//76 72//76 +f 64//77 79//77 80//77 +f 57//78 72//78 73//78 +f 66//79 65//79 80//79 +f 58//80 73//80 74//80 +f 78//83 93//83 94//83 +f 71//84 86//84 87//84 +f 79//85 94//85 95//85 +f 72//86 87//86 88//86 +f 81//87 80//87 95//87 +f 73//88 88//88 89//88 +f 82//89 81//89 96//89 +f 75//90 74//90 89//90 +f 82//91 97//91 98//91 +f 75//92 90//92 91//92 +f 84//523 83//523 98//523 +f 77//94 76//94 91//94 +f 84//95 99//95 100//95 +f 77//524 92//524 93//524 +f 89//97 104//97 105//97 +f 97//98 112//98 113//98 +f 90//99 105//99 106//99 +f 98//100 113//100 114//100 +f 92//101 91//101 106//101 +f 100//102 99//102 114//102 +f 92//103 107//103 108//103 +f 93//106 108//106 109//106 +f 86//107 101//107 102//107 +f 94//108 109//108 110//108 +f 87//109 102//109 103//109 +f 96//110 95//110 110//110 +f 89//111 88//111 103//111 +f 97//112 96//112 111//112 +f 109//525 108//525 123//525 +f 101//114 116//114 117//114 +f 109//115 124//115 125//115 +f 102//116 117//116 118//116 +f 111//117 110//117 125//117 +f 103//118 118//118 119//118 +f 111//119 126//119 127//119 +f 104//120 119//120 120//120 +f 113//121 112//121 127//121 +f 105//122 120//122 121//122 +f 114//123 113//123 128//123 +f 107//124 106//124 121//124 +f 115//125 114//125 129//125 +f 107//126 122//126 123//126 +f 128//129 127//129 142//129 +f 120//130 135//130 136//130 +f 128//131 143//131 144//131 +f 122//132 121//132 136//132 +f 130//133 129//133 144//133 +f 122//134 137//134 138//134 +f 123//137 138//137 139//137 +f 117//138 116//138 131//138 +f 124//139 139//139 140//139 +f 117//140 132//140 133//140 +f 126//141 125//141 140//141 +f 118//142 133//142 134//142 +f 126//143 141//143 142//143 +f 120//144 119//144 134//144 +f 139//145 154//145 155//145 +f 133//146 132//146 147//146 +f 141//147 140//147 155//147 +f 133//148 148//148 149//148 +f 141//149 156//149 157//149 +f 134//150 149//150 150//150 +f 142//151 157//151 158//151 +f 135//152 150//152 151//152 +f 144//153 143//153 158//153 +f 137//154 136//154 151//154 +f 144//155 159//155 160//155 +f 137//156 152//156 153//156 +f 138//526 153//526 154//526 +f 131//160 146//160 147//160 +f 158//527 173//527 174//527 +f 152//162 151//162 166//162 +f 159//163 174//163 175//163 +f 152//528 167//528 168//528 +f 154//529 153//529 168//529 +f 146//168 161//168 162//168 +f 154//169 169//169 170//169 +f 147//530 162//530 163//530 +f 156//171 155//171 170//171 +f 148//172 163//172 164//172 +f 156//173 171//173 172//173 +f 150//174 149//174 164//174 +f 158//175 157//175 172//175 +f 150//176 165//176 166//176 +f 162//177 177//177 178//177 +f 170//178 185//178 186//178 +f 163//179 178//179 179//179 +f 171//180 186//180 187//180 +f 164//181 179//181 180//181 +f 173//182 172//182 187//182 +f 165//183 180//183 181//183 +f 173//184 188//184 189//184 +f 167//185 166//185 181//185 +f 175//186 174//186 189//186 +f 167//187 182//187 183//187 +f 168//190 183//190 184//190 +f 161//191 176//191 177//191 +f 169//192 184//192 185//192 +f 182//193 181//193 196//193 +f 190//531 189//531 204//531 +f 182//195 197//195 198//195 +f 184//198 183//198 198//198 +f 176//199 191//199 192//199 +f 184//200 199//200 200//200 +f 177//201 192//201 193//201 +f 186//202 185//202 200//202 +f 179//203 178//203 193//203 +f 186//204 201//204 202//204 +f 180//205 179//205 194//205 +f 188//206 187//206 202//206 +f 180//207 195//207 196//207 +f 188//208 203//208 204//208 +f 201//209 200//209 216//209 +f 193//210 209//210 210//210 +f 201//211 217//211 218//211 +f 194//212 210//212 211//212 +f 203//213 202//213 218//213 +f 195//214 211//214 212//214 +f 203//532 219//532 220//532 +f 197//216 196//216 212//216 +f 204//217 220//217 221//217 +f 197//218 213//218 214//218 +f 198//221 214//221 215//221 +f 191//222 207//222 208//222 +f 199//223 215//223 216//223 +f 193//224 192//224 208//224 +f 221//225 220//225 235//225 +f 213//226 228//226 229//226 +f 214//229 229//229 230//229 +f 207//230 222//230 223//230 +f 215//231 230//231 231//231 +f 208//232 223//232 224//232 +f 217//233 216//233 231//233 +f 209//234 224//234 225//234 +f 217//235 232//235 233//235 +f 210//236 225//236 226//236 +f 218//237 233//237 234//237 +f 211//238 226//238 227//238 +f 219//239 234//239 235//239 +f 213//240 212//240 227//240 +f 225//241 224//241 239//241 +f 232//242 247//242 248//242 +f 225//243 240//243 241//243 +f 234//244 233//244 248//244 +f 226//245 241//245 242//245 +f 234//246 249//246 250//246 +f 228//247 227//247 242//247 +f 236//248 235//248 250//248 +f 228//249 243//249 244//249 +f 229//252 244//252 245//252 +f 222//253 237//253 238//253 +f 230//254 245//254 246//254 +f 224//255 223//255 238//255 +f 232//256 231//256 246//256 +f 243//257 258//257 259//257 +f 244//260 259//260 260//260 +f 237//261 252//261 253//261 +f 245//262 260//262 261//262 +f 238//263 253//263 254//263 +f 247//264 246//264 261//264 +f 240//265 239//265 254//265 +f 247//266 262//266 263//266 +f 241//267 240//267 255//267 +f 248//268 263//268 264//268 +f 241//269 256//269 257//269 +f 249//270 264//270 265//270 +f 243//271 242//271 257//271 +f 250//272 265//272 266//272 +f 262//273 277//273 278//273 +f 256//274 255//274 270//274 +f 263//275 278//275 279//275 +f 256//276 271//276 272//276 +f 265//277 264//277 279//277 +f 258//278 257//278 272//278 +f 266//279 265//279 280//279 +f 258//280 273//280 274//280 +f 260//283 259//283 274//283 +f 252//284 267//284 268//284 +f 260//285 275//285 276//285 +f 253//286 268//286 269//286 +f 262//287 261//287 276//287 +f 255//288 254//288 269//288 +f 274//290 289//290 290//290 +f 267//291 282//291 283//291 +f 275//292 290//292 291//292 +f 268//533 283//533 284//533 +f 277//294 276//294 291//294 +f 269//295 284//295 285//295 +f 277//296 292//296 293//296 +f 271//297 270//297 285//297 +f 279//298 278//298 293//298 +f 271//299 286//299 287//299 +f 279//534 294//534 295//534 +f 273//301 272//301 287//301 +f 281//302 280//302 295//302 +f 273//303 288//303 289//303 +f 293//305 309//305 310//305 +f 286//306 302//306 303//306 +f 294//307 310//307 311//307 +f 288//308 287//308 303//308 +f 295//309 311//309 312//309 +f 289//310 288//310 304//310 +f 289//313 305//313 306//313 +f 282//314 298//314 299//314 +f 290//315 306//315 307//315 +f 283//316 299//316 300//316 +f 292//317 291//317 307//317 +f 285//318 284//318 300//318 +f 292//319 308//319 309//319 +f 286//320 285//320 301//320 +f 298//321 313//321 314//321 +f 306//322 321//322 322//322 +f 299//323 314//323 315//323 +f 308//324 307//324 322//324 +f 301//325 300//325 315//325 +f 308//326 323//326 324//326 +f 302//327 301//327 316//327 +f 309//328 324//328 325//328 +f 302//329 317//329 318//329 +f 311//330 310//330 325//330 +f 304//331 303//331 318//331 +f 311//535 326//535 327//535 +f 304//333 319//333 320//333 +f 305//336 320//336 321//336 +f 317//337 332//337 333//337 +f 326//536 325//536 340//536 +f 319//339 318//339 333//339 +f 327//537 326//537 341//537 +f 319//341 334//341 335//341 +f 320//344 335//344 336//344 +f 313//345 328//345 329//345 +f 321//346 336//346 337//346 +f 314//347 329//347 330//347 +f 323//348 322//348 337//348 +f 316//349 315//349 330//349 +f 324//350 323//350 338//350 +f 317//351 316//351 331//351 +f 324//352 339//352 340//352 +f 336//353 351//353 352//353 +f 329//354 344//354 345//354 +f 338//355 337//355 352//355 +f 331//356 330//356 345//356 +f 338//357 353//357 354//357 +f 332//358 331//358 346//358 +f 339//359 354//359 355//359 +f 332//360 347//360 348//360 +f 341//361 340//361 355//361 +f 334//362 333//362 348//362 +f 341//363 356//363 357//363 +f 334//364 349//364 350//364 +f 335//367 350//367 351//367 +f 329//368 328//368 343//368 +f 356//369 355//369 370//369 +f 349//370 348//370 363//370 +f 356//371 371//371 372//371 +f 349//372 364//372 365//372 +f 351//375 350//375 365//375 +f 344//376 343//376 358//376 +f 351//377 366//377 367//377 +f 344//378 359//378 360//378 +f 353//379 352//379 367//379 +f 346//380 345//380 360//380 +f 353//381 368//381 369//381 +f 346//382 361//382 362//382 +f 355//383 354//383 369//383 +f 347//384 362//384 363//384 +f 359//385 374//385 375//385 +f 368//386 367//386 382//386 +f 361//387 360//387 375//387 +f 368//388 383//388 384//388 +f 362//389 361//389 376//389 +f 369//390 384//390 385//390 +f 362//391 377//391 378//391 +f 371//392 370//392 385//392 +f 364//393 363//393 378//393 +f 371//394 386//394 387//394 +f 364//395 379//395 380//395 +f 366//398 365//398 380//398 +f 359//399 358//399 373//399 +f 366//400 381//400 382//400 +f 379//401 378//401 393//401 +f 386//402 401//402 402//402 +f 379//403 394//403 395//403 +f 380//406 395//406 396//406 +f 373//407 388//407 389//407 +f 381//408 396//408 397//408 +f 374//409 389//409 390//409 +f 383//410 382//410 397//410 +f 376//411 375//411 390//411 +f 383//412 398//412 399//412 +f 376//413 391//413 392//413 +f 384//414 399//414 400//414 +f 377//415 392//415 393//415 +f 386//416 385//416 400//416 +f 398//417 397//417 412//417 +f 391//418 390//418 405//418 +f 398//419 413//419 414//419 +f 392//420 391//420 406//420 +f 399//421 414//421 415//421 +f 392//422 407//422 408//422 +f 401//538 400//538 415//538 +f 394//424 393//424 408//424 +f 401//425 416//425 417//425 +f 394//426 409//426 410//426 +f 396//429 395//429 410//429 +f 388//430 403//430 404//430 +f 396//431 411//431 412//431 +f 390//539 389//539 404//539 +f 416//433 431//433 432//433 +f 409//434 424//434 425//434 +f 411//437 410//437 425//437 +f 403//438 418//438 419//438 +f 411//439 426//439 427//439 +f 404//440 419//440 420//440 +f 413//441 412//441 427//441 +f 405//442 420//442 421//442 +f 413//443 428//443 429//443 +f 407//444 406//444 421//444 +f 414//445 429//445 430//445 +f 407//446 422//446 423//446 +f 415//447 430//447 431//447 +f 409//448 408//448 423//448 +f 428//449 443//449 444//449 +f 422//450 421//450 436//450 +f 430//451 429//451 444//451 +f 422//452 437//452 438//452 +f 430//453 445//453 446//453 +f 424//454 423//454 438//454 +f 431//540 446//540 447//540 +f 425//456 424//456 439//456 +f 425//459 440//459 441//459 +f 418//460 433//460 434//460 +f 426//461 441//461 442//461 +f 419//462 434//462 435//462 +f 428//463 427//463 442//463 +f 420//464 435//464 436//464 +f 440//467 455//467 456//467 +f 434//468 433//468 448//468 +f 441//469 456//469 457//469 +f 435//470 434//470 449//470 +f 443//471 442//471 457//471 +f 436//472 435//472 450//472 +f 443//473 458//473 459//473 +f 437//474 436//474 451//474 +f 444//475 459//475 460//475 +f 437//476 452//476 453//476 +f 445//541 460//541 461//541 +f 439//478 438//478 453//478 +f 446//479 461//479 462//479 +f 439//480 454//480 455//480 +f 452//481 451//481 466//481 +f 459//482 474//482 475//482 +f 452//483 467//483 468//483 +f 460//484 475//484 476//484 +f 454//485 453//485 468//485 +f 462//486 461//486 476//486 +f 454//487 469//487 470//487 +f 455//490 470//490 471//490 +f 448//491 463//491 464//491 +f 456//492 471//492 472//492 +f 449//493 464//493 465//493 +f 458//494 457//494 472//494 +f 450//495 465//495 466//495 +f 458//496 473//496 474//496 +f 470//542 8//542 9//542 +f 464//498 463//498 1//498 +f 471//499 9//499 478//499 +f 465//500 464//500 2//500 +f 473//501 472//501 478//501 +f 466//502 465//502 3//502 +f 473//503 479//503 480//503 +f 467//504 466//504 4//504 +f 474//505 480//505 10//505 +f 468//506 467//506 5//506 +f 475//507 10//507 481//507 +f 469//508 468//508 6//508 +f 476//509 481//509 482//509 +f 470//543 469//543 7//543 diff --git a/src/main.rs b/src/main.rs index f119523..20cd88e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,3 @@ - extern crate tobj; extern crate winit; @@ -9,26 +8,32 @@ use std::sync::Arc; use std::time::{Duration, Instant}; use bytemuck::__core::ops::Range; -use cgmath::{Decomposed, Deg, InnerSpace, Quaternion, Rotation3, SquareMatrix}; +use cgmath::{Decomposed, Deg, Euler, InnerSpace, Quaternion, Rotation3, SquareMatrix}; use futures::task::LocalSpawn; use legion::*; +use rapier3d::dynamics::{ + IntegrationParameters, JointSet, RigidBody, RigidBodyBuilder, RigidBodyHandle, RigidBodySet, +}; +use rapier3d::geometry::Collider as r3dCollider; +use rapier3d::geometry::{BroadPhase, ColliderBuilder, ColliderHandle, ColliderSet, NarrowPhase}; +use rapier3d::math; +use rapier3d::na::{Isometry, Isometry3, Vector, Vector3}; +use rapier3d::pipeline::PhysicsPipeline; use wgpu::{BindGroup, Buffer, TextureView}; use wgpu_subscriber; +use winit::event::DeviceEvent::MouseMotion; +use winit::platform::unix::x11::ffi::Time; use winit::{ event::{self, WindowEvent}, event_loop::{ControlFlow, EventLoop}, }; -use winit::event::DeviceEvent::MouseMotion; -use winit::platform::unix::x11::ffi::Time; -use rapier3d::math; + +use crate::physics::PhysicsState; use crate::render::Renderer; -use rapier3d::pipeline::PhysicsPipeline; -use rapier3d::dynamics::{IntegrationParameters, RigidBodySet, JointSet, RigidBodyBuilder}; -use rapier3d::geometry::{BroadPhase, NarrowPhase, ColliderSet, ColliderBuilder}; -use rapier3d::na::{Isometry, Isometry3, Vector, Vector3}; mod geometry; mod light; +mod physics; mod render; /* @@ -75,7 +80,8 @@ pub struct Position { x: f32, y: f32, z: f32, - mx: cgmath::Matrix4, + rot: cgmath::Quaternion, + //mx: cgmath::Matrix4, } #[derive(Clone, Copy, Debug, PartialEq)] @@ -116,6 +122,17 @@ pub struct Mesh { bind_group: Arc, } +#[derive(Clone, Debug)] +pub struct Physics { + rigid_body: RigidBody, + rigid_body_handle: Option, +} + +#[derive(Clone)] +pub struct Collider { + collider: r3dCollider, + collider_handle: Option, +} //log::info!(""); fn main() { @@ -133,6 +150,11 @@ fn main() { .build(); // TODO schedule for the update system and others + let mut update_schedule = Schedule::builder() + .add_system(physics::run_physics_system()) + .add_system(physics::update_models_system()) + // next system here, gamelogic update system? + .build(); let event_loop = EventLoop::new(); let mut builder = winit::window::WindowBuilder::new(); @@ -159,6 +181,11 @@ fn main() { let mut resources = Resources::default(); resources.insert(renderer); + let (physics_state, physics_pipeline) = + PhysicsState::build(rapier3d::math::Vector::new(0.0, 0.0, -9.81)); + resources.insert(physics_state); + resources.insert(physics_pipeline); + event_loop.run(move |event, _, control_flow| { // Artificially slows the loop rate to 10 millis // This is called after redraw events cleared @@ -171,7 +198,7 @@ fn main() { window.request_redraw(); last_update_inst = Instant::now(); } - physics(); + update_schedule.execute(&mut world, &mut resources); pool.run_until_stalled(); } event::Event::DeviceEvent { @@ -227,124 +254,8 @@ fn main() { }); } -pub fn physics() { - -/* // let mut mechanical_world = DefaultMechanicalWorld::new(Vector3::new(0.0, -9.81, 0.0)); - // let mut geometrical_world = DefaultGeometricalWorld::new(); - // - // let mut bodies = DefaultBodySet::new(); - // let mut colliders = DefaultColliderSet::new(); - // let mut joint_constraints = DefaultJointConstraintSet::new(); - // let mut force_generators = DefaultForceGeneratorSet::new(); - // - // // Run the simulation. - // mechanical_world.step( - // &mut geometrical_world, - // &mut bodies, - // &mut colliders, - // &mut joint_constraints, - // &mut force_generators - // ); - // - // let ground_handle = bodies.insert(Ground::new()); - // let ground_shape = ShapeHandle::new(Cuboid::new(Vector3::new(3.0, 0.2, 3.0) - // )); - // - // let main_floor = ColliderDesc::new(ground_shape) - // .translation(Vector3::y() * -0.2) - // .build(BodyPartHandle(ground_handle, 0)); - // colliders.insert(main_floor); - // - // // Build the rigid body. - // let rb = RigidBodyDesc::new() - // .translation(Vector3::new(1.0, 1.0, 1.0)) - // .build(); - // let rb_handle = bodies.insert(rb); - // - // // Build the collider. - // let cuboid = ShapeHandle::new(Cuboid::new(Vector3::new(1.0, 1.0, 1.0))); - // let co = ColliderDesc::new(cuboid.clone()) - // .density(1.0) - // .build(BodyPartHandle(rb_handle, 0)); - // colliders.insert(co); - // - // //testbed.set_body_color(rb_handle, color); - // - // let rigid_body = - // RigidBodyDesc::new() - // // The rigid body position. Will override `.translation(...)` and `.rotation(...)`. - // .position(Isometry3::new( - // Vector3::new(1.0, 2.0, 3.0), - // Vector3::y() * PI, - // )) - // .gravity_enabled(true) - // .status(BodyStatus::Dynamic) - // .velocity(VelocityN::linear(1.0, 2.0, 3.0)) - // .linear_damping(10.0) - // .angular_damping(5.0) - // .max_linear_velocity(10.0) - // .max_angular_velocity(1.7) - // .mass(1.2) - // // Arbitrary user-defined data associated to the rigid body to be built. - // .user_data(10) - // .build(); - // - // let parent_handle = bodies.insert(rigid_body); - // - // let shape = ShapeHandle::new(Ball::new(1.5)); - // let collider = ColliderDesc::new(shape) - // .density(1.0) - // .translation(Vector3::y() * 5.0) - // .build(BodyPartHandle(parent_handle, 0)); - // let collider_handle = colliders.insert(collider);*/ - - // Here the gravity is -9.81 along the y axis. - let mut pipeline = PhysicsPipeline::new(); - let gravity = rapier3d::math::Vector::new(0.0, -9.81, 0.0); - let integration_parameters = IntegrationParameters::default(); - let mut broad_phase = BroadPhase::new(); - let mut narrow_phase = NarrowPhase::new(); - let mut bodies = RigidBodySet::new(); - let mut colliders = ColliderSet::new(); - let mut joints = JointSet::new(); - // We ignore contact events for now. - let event_handler = (); - - let mut dynamic_ball_body = RigidBodyBuilder::new_dynamic().build(); - let mut dynamic_ball_body_handle = bodies.insert(dynamic_ball_body); - - let mut static_floor_body = RigidBodyBuilder::new_static().position(Isometry3::new( - Vector3::new(1.0, 2.0, 3.0), - Vector::y() * PI, - )).build(); - let mut static_floor_body_handle = bodies.insert(static_floor_body); - - - let ball_collider = ColliderBuilder::ball(0.5).build(); - let floor_collider = ColliderBuilder::cuboid(0.5, 0.2, 0.1).build(); - - let ball_collider_handle = colliders.insert(ball_collider, dynamic_ball_body_handle, &mut bodies); - let floor_collider_handle = colliders.insert(floor_collider, dynamic_ball_body_handle, &mut bodies); - - // Run the simulation in the game loop. - loop { - pipeline.step( - &gravity, - &integration_parameters, - &mut broad_phase, - &mut narrow_phase, - &mut bodies, - &mut colliders, - &mut joints, - None, - None, - &event_handler - ); - } -} - pub fn entity_loading(world: &mut World, renderer: &mut Renderer) { - let untitled_mesh = renderer.load_mesh_to_buffer("./resources/monkey.obj"); + let monkey_mesh = renderer.load_mesh_to_buffer("./resources/monkey.obj"); // This could be used for relationships between entities...??? let light_entity: Entity = world.push(( @@ -372,14 +283,18 @@ pub fn entity_loading(world: &mut World, renderer: &mut Renderer) { scale: 1.0, }; - let mesh_entity: Entity = world.push(( + let monkey_entity: Entity = world.push(( Position { - x: 17.0, - y: 15.0, - z: 10.0, - mx: cgmath::Matrix4::from(transform), + x: 1.0, + y: 2.0, + z: 2.0, + rot: Quaternion::from(Euler { + x: Deg(90.0), + y: Deg(45.0), + z: Deg(15.0), + }), //mx: cgmath::Matrix4::from(transform), }, - untitled_mesh, + monkey_mesh, Color { r: 1.0, g: 0.5, @@ -388,6 +303,29 @@ pub fn entity_loading(world: &mut World, renderer: &mut Renderer) { }, )); + let mut dynamic_ball_body = RigidBodyBuilder::new_dynamic() + .position(Isometry3::new( + Vector3::new(0.0, 0.0, 5.0), + Vector::y() * PI, + )) + .build(); + + let mut static_floor_body = RigidBodyBuilder::new_static() + .position(Isometry3::new( + Vector3::new(0.0, 0.0, 0.0), + Vector::y() * PI, + )) + .build(); + + let ball_collider = ColliderBuilder::ball(1.5).build(); + let floor_collider = ColliderBuilder::cuboid(0.5, 0.2, 0.1).build(); + + //let mut dynamic_ball_body_handle = bodies.insert(dynamic_ball_body); + //let mut static_floor_body_handle = bodies.insert(static_floor_body.clone()); + + // let ball_collider_handle = colliders.insert(ball_collider, dynamic_ball_body_handle, &mut bodies); + // let floor_collider_handle = colliders.insert(floor_collider, dynamic_ball_body_handle, &mut bodies); + let plane_mesh = renderer.create_plane(7.0); let plane_entity: Entity = world.push(( @@ -395,7 +333,11 @@ pub fn entity_loading(world: &mut World, renderer: &mut Renderer) { x: 0.0, y: 0.0, z: 0.0, - mx: cgmath::Matrix4::identity(), + rot: Quaternion::from(Euler { + x: Deg(0.0), + y: Deg(0.0), + z: Deg(0.0), + }), }, plane_mesh, Color { @@ -404,5 +346,43 @@ pub fn entity_loading(world: &mut World, renderer: &mut Renderer) { b: 0.5, a: 1.0, }, + Physics { + rigid_body: static_floor_body, + rigid_body_handle: None, + }, + Collider { + collider: floor_collider, + collider_handle: None, + }, + )); + + let ball_mesh = renderer.load_mesh_to_buffer("./resources/ball.obj"); + + let ball_mesh: Entity = world.push(( + Position { + x: 2.0, + y: 2.0, + z: 3.0, + rot: Quaternion::from(Euler { + x: Deg(25.0), + y: Deg(45.0), + z: Deg(15.0), + }), + }, + ball_mesh, + Color { + r: 1.0, + g: 0.5, + b: 0.5, + a: 1.0, + }, + Physics { + rigid_body: dynamic_ball_body, + rigid_body_handle: None, + }, + Collider { + collider: ball_collider, + collider_handle: None, + }, )); } diff --git a/src/physics.rs b/src/physics.rs new file mode 100644 index 0000000..8b85e3a --- /dev/null +++ b/src/physics.rs @@ -0,0 +1,113 @@ +use legion::world::SubWorld; +use legion::IntoQuery; +use rapier3d::dynamics::{IntegrationParameters, JointSet, RigidBodySet}; +use rapier3d::geometry::{BroadPhase, ColliderSet, NarrowPhase}; +use rapier3d::pipeline::PhysicsPipeline; +use legion::*; + +use crate::render::{EntityUniforms, Renderer}; +use crate::{Collider, Mesh, RigidBody, Physics, Position}; +use cgmath::Quaternion; + +pub struct PhysicsState { + gravity: rapier3d::math::Vector, + integration_parameters: IntegrationParameters, + broad_phase: BroadPhase, + narrow_phase: NarrowPhase, + bodies: RigidBodySet, + colliders: ColliderSet, + joints: JointSet, +} + +impl PhysicsState { + pub fn build(gravity: rapier3d::math::Vector) -> (PhysicsPipeline, PhysicsState) { + ( + PhysicsPipeline::new(), + PhysicsState { + gravity, + integration_parameters: IntegrationParameters::default(), + broad_phase: BroadPhase::new(), + narrow_phase: NarrowPhase::new(), + bodies: RigidBodySet::new(), + colliders: ColliderSet::new(), + joints: JointSet::new(), + }, + ) + } +} + +#[system] +#[write_component(Collider)] +#[write_component(Physics)] +#[write_component(Mesh)] +pub fn run_physics( + world: &mut SubWorld, + #[resource] physics_state: &mut PhysicsState, + #[resource] physics_pipeline: &mut PhysicsPipeline, +) { + + // Make sure all the entities we care about are added to the system + let mut query = <(&mut Collider, &mut Physics, &mut Mesh)>::query(); + for (collider, physics, mesh) in query.iter_mut(world) { + let rigid_body_handle = match physics.rigid_body_handle { + None => { + let handle = physics_state.bodies.insert(physics.rigid_body.clone()); + physics.rigid_body_handle = Some(handle); + physics.rigid_body_handle.unwrap() + }, + Some(handle) => handle, + }; + if collider.collider_handle == None { + let handle = physics_state.colliders.insert(collider.collider.clone(), rigid_body_handle, &mut physics_state.bodies); + collider.collider_handle = Some(handle); + } + } + + // run the physics step + let event_handler = (); + physics_pipeline.step( + &physics_state.gravity, + &physics_state.integration_parameters, + &mut physics_state.broad_phase, + &mut physics_state.narrow_phase, + &mut physics_state.bodies, + &mut physics_state.colliders, + &mut physics_state.joints, + None, + None, + &event_handler + ); +} + +#[system] +#[write_component(Collider)] +#[write_component(Physics)] +#[write_component(Mesh)] +#[write_component(Position)] +pub fn update_models( + world: &mut SubWorld, + #[resource] physics_state: &mut PhysicsState, + #[resource] physics_pipeline: &mut PhysicsPipeline, +) { + + // Make sure all the entities we care about are added to the system + let mut query = <(&mut Collider, &mut Physics, &mut Mesh, &mut Position)>::query(); + for (collider, physics, mesh, position) in query.iter_mut(world) { + let pos = physics_state.bodies.get(physics.rigid_body_handle.unwrap()).unwrap().position(); + position.x = pos.translation.x; + position.y = pos.translation.y; + position.z = pos.translation.z; + + position.rot.s = pos.rotation.w; + position.rot.v.x = pos.rotation.i; + position.rot.v.y = pos.rotation.j; + position.rot.v.z = pos.rotation.k; + + // mx.x = pos.rotation.i; + // mx.y = pos.rotation.j; + // mx.z = pos.rotation.k; + // mx.w = pos.rotation.w; + + } + +} \ No newline at end of file diff --git a/src/render.rs b/src/render.rs index 875f6f4..690c239 100644 --- a/src/render.rs +++ b/src/render.rs @@ -3,7 +3,7 @@ use std::{iter, num::NonZeroU32, ops::Range, rc::Rc}; use bytemuck::__core::mem; use bytemuck::{Pod, Zeroable}; -use cgmath::{Point3, Matrix4, Transform, vec3}; +use cgmath::{Point3, Matrix4, Transform, vec3, Vector3}; use futures::executor::LocalPool; use legion::world::SubWorld; use legion::*; @@ -19,6 +19,7 @@ use winit::window::Window; use crate::geometry::{create_plane, import_mesh, vertex, Vertex}; use crate::light::LightRaw; use crate::{Color, DirectionalLight, Mesh, Position, RangeCopy, Velocity, OPENGL_TO_WGPU_MATRIX}; +use rapier3d::parry::motion::RigidMotionComposition; #[repr(C)] #[derive(Clone, Copy)] @@ -128,8 +129,13 @@ pub fn render_test(world: &mut SubWorld, #[resource] renderer: &mut Renderer) { // let rotation = cgmath::Matrix4::from_angle_x(cgmath::Deg(2.0)); // pos.mx = pos.mx * rotation; + //let p = cgmath::Matrix4::from(pos.rot); + let q = cgmath::Matrix4::from_translation(Vector3::new(pos.x, pos.y, pos.z)); + + let z = q; // p + q; + let data = EntityUniforms { - model: pos.mx.into(), + model: z.into(), color: [ color.r as f32, color.g as f32,