diff --git a/QtDataVisualization/Data/mesh/largesphere.obj b/QtDataVisualization/Data/mesh/largesphere.obj new file mode 100644 index 0000000..6310141 --- /dev/null +++ b/QtDataVisualization/Data/mesh/largesphere.obj @@ -0,0 +1,1938 @@ +# Blender v2.66 (sub 0) OBJ File: '' +# www.blender.org +o Sphere_Sphere.001 +v -1.251476 7.901507 0.000000 +v -2.472136 7.608452 0.000000 +v -3.631924 7.128052 0.000000 +v -4.702282 6.472136 0.000000 +v -5.656854 5.656854 0.000000 +v -6.472136 4.702282 0.000000 +v -7.128052 3.631924 0.000000 +v -7.608452 2.472136 0.000000 +v -7.901507 1.251475 0.000000 +v -8.000000 -0.000001 0.000000 +v -7.901506 -1.251477 0.000000 +v -7.608451 -2.472138 0.000000 +v -7.128051 -3.631927 0.000000 +v -6.472134 -4.702285 0.000000 +v -5.656851 -5.656857 0.000000 +v -4.702279 -6.472138 0.000000 +v -3.631920 -7.128055 0.000000 +v -2.472131 -7.608454 0.000000 +v -1.251470 -7.901508 0.000000 +v -1.190224 7.901506 -0.386729 +v -2.351141 7.608452 -0.763934 +v -3.454165 7.128052 -1.122328 +v -4.472136 6.472136 -1.453087 +v -5.379988 5.656855 -1.748066 +v -6.155366 4.702282 -2.000002 +v -6.779180 3.631924 -2.202692 +v -7.236068 2.472136 -2.351143 +v -7.514779 1.251475 -2.441702 +v -7.608452 -0.000001 -2.472138 +v -7.514779 -1.251477 -2.441702 +v -7.236067 -2.472138 -2.351143 +v -6.779179 -3.631927 -2.202691 +v -6.155365 -4.702285 -2.000002 +v -5.379985 -5.656857 -1.748065 +v -4.472132 -6.472138 -1.453086 +v -3.454160 -7.128055 -1.122327 +v -2.351136 -7.608454 -0.763933 +v -1.190218 -7.901508 -0.386727 +v 0.000006 -8.000000 0.000000 +v -1.012464 7.901506 -0.735603 +v -1.999999 7.608452 -1.453089 +v -2.938287 7.128052 -2.134795 +v -3.804224 6.472136 -2.763936 +v -4.576490 5.656855 -3.325019 +v -5.236066 4.702282 -3.804230 +v -5.766714 3.631924 -4.189768 +v -6.155365 2.472136 -4.472140 +v -6.392451 1.251475 -4.644393 +v -6.472135 -0.000001 -4.702287 +v -6.392451 -1.251477 -4.644393 +v -6.155365 -2.472138 -4.472139 +v -5.766713 -3.631927 -4.189767 +v -5.236064 -4.702285 -3.804229 +v -4.576487 -5.656857 -3.325018 +v -3.804221 -6.472138 -2.763934 +v -2.938283 -7.128055 -2.134793 +v -1.999994 -7.608454 -1.453086 +v -1.012459 -7.901508 -0.735599 +v -0.735596 7.901506 -1.012470 +v -1.453082 7.608452 -2.000005 +v -2.134788 7.128052 -2.938294 +v -2.763928 6.472136 -3.804231 +v -3.325012 5.656855 -4.576497 +v -3.804222 4.702282 -5.236073 +v -4.189760 3.631924 -5.766721 +v -4.472132 2.472136 -6.155373 +v -4.644385 1.251475 -6.392459 +v -4.702279 -0.000001 -6.472142 +v -4.644385 -1.251477 -6.392458 +v -4.472132 -2.472138 -6.155372 +v -4.189760 -3.631927 -5.766720 +v -3.804221 -4.702285 -5.236072 +v -3.325010 -5.656857 -4.576494 +v -2.763927 -6.472138 -3.804229 +v -2.134786 -7.128055 -2.938290 +v -1.453079 -7.608454 -2.000001 +v -0.735593 -7.901508 -1.012466 +v -0.386723 7.901506 -1.190230 +v -0.763927 7.608452 -2.351147 +v -1.122321 7.128052 -3.454171 +v -1.453079 6.472136 -4.472141 +v -1.748058 5.656855 -5.379994 +v -1.999994 4.702282 -6.155373 +v -2.202683 3.631924 -6.779186 +v -2.351135 2.472136 -7.236074 +v -2.441693 1.251475 -7.514785 +v -2.472130 -0.000001 -7.608459 +v -2.441693 -1.251477 -7.514784 +v -2.351135 -2.472138 -7.236073 +v -2.202683 -3.631927 -6.779185 +v -1.999993 -4.702285 -6.155371 +v -1.748057 -5.656857 -5.379991 +v -1.453079 -6.472138 -4.472138 +v -1.122320 -7.128055 -3.454167 +v -0.763926 -7.608454 -2.351142 +v -0.386721 -7.901508 -1.190225 +v 0.000007 7.901506 -1.251482 +v 0.000007 7.608452 -2.472142 +v 0.000007 7.128052 -3.631930 +v 0.000008 6.472136 -4.702287 +v 0.000008 5.656855 -5.656860 +v 0.000008 4.702282 -6.472141 +v 0.000008 3.631924 -7.128057 +v 0.000008 2.472136 -7.608458 +v 0.000009 1.251475 -7.901512 +v 0.000009 -0.000001 -8.000006 +v 0.000009 -1.251477 -7.901511 +v 0.000008 -2.472138 -7.608456 +v 0.000008 -3.631927 -7.128057 +v 0.000008 -4.702285 -6.472139 +v 0.000008 -5.656857 -5.656857 +v 0.000007 -6.472138 -4.702284 +v 0.000007 -7.128055 -3.631926 +v 0.000007 -7.608454 -2.472137 +v 0.000007 -7.901508 -1.251476 +v 0.386736 7.901506 -1.190230 +v 0.763941 7.608452 -2.351147 +v 1.122336 7.128052 -3.454170 +v 1.453094 6.472136 -4.472140 +v 1.748074 5.656855 -5.379993 +v 2.000010 4.702282 -6.155371 +v 2.202699 3.631924 -6.779185 +v 2.351151 2.472136 -7.236073 +v 2.441710 1.251475 -7.514783 +v 2.472147 -0.000001 -7.608457 +v 2.441710 -1.251477 -7.514783 +v 2.351151 -2.472138 -7.236071 +v 2.202699 -3.631927 -6.779184 +v 2.000009 -4.702285 -6.155369 +v 1.748073 -5.656857 -5.379990 +v 1.453093 -6.472138 -4.472137 +v 1.122334 -7.128055 -3.454166 +v 0.763939 -7.608454 -2.351141 +v 0.386734 -7.901508 -1.190225 +v 0.735610 7.901506 -1.012470 +v 1.453096 7.608452 -2.000005 +v 2.134803 7.128052 -2.938292 +v 2.763942 6.472136 -3.804229 +v 3.325027 5.656855 -4.576495 +v 3.804237 4.702282 -5.236070 +v 4.189775 3.631924 -5.766718 +v 4.472148 2.472136 -6.155370 +v 4.644401 1.251475 -6.392455 +v 4.702294 -0.000001 -6.472139 +v 4.644400 -1.251477 -6.392455 +v 4.472147 -2.472138 -6.155369 +v 4.189774 -3.631927 -5.766717 +v 3.804236 -4.702285 -5.236069 +v 3.325025 -5.656857 -4.576492 +v 2.763941 -6.472138 -3.804227 +v 2.134800 -7.128055 -2.938289 +v 1.453092 -7.608454 -2.000000 +v 0.735606 -7.901508 -1.012465 +v 1.012477 7.901506 -0.735602 +v 2.000012 7.608452 -1.453088 +v 2.938301 7.128052 -2.134794 +v 3.804237 6.472136 -2.763933 +v 4.576503 5.656855 -3.325017 +v 5.236080 4.702282 -3.804226 +v 5.766727 3.631924 -4.189765 +v 6.155380 2.472136 -4.472136 +v 6.392465 1.251475 -4.644389 +v 6.472148 -0.000001 -4.702283 +v 6.392465 -1.251477 -4.644389 +v 6.155378 -2.472138 -4.472136 +v 5.766726 -3.631927 -4.189764 +v 5.236078 -4.702285 -3.804225 +v 4.576500 -5.656857 -3.325016 +v 3.804235 -6.472138 -2.763932 +v 2.938297 -7.128055 -2.134791 +v 2.000007 -7.608454 -1.453085 +v 1.012472 -7.901508 -0.735599 +v 1.190237 7.901506 -0.386729 +v 2.351154 7.608452 -0.763933 +v 3.454178 7.128052 -1.122326 +v 4.472147 6.472136 -1.453085 +v 5.380000 5.656855 -1.748063 +v 6.155379 4.702282 -1.999998 +v 6.779192 3.631924 -2.202688 +v 7.236081 2.472136 -2.351139 +v 7.514791 1.251475 -2.441698 +v 7.608464 -0.000001 -2.472134 +v 7.514791 -1.251477 -2.441698 +v 7.236079 -2.472138 -2.351139 +v 6.779191 -3.631927 -2.202688 +v 6.155377 -4.702285 -1.999998 +v 5.379997 -5.656857 -1.748063 +v 4.472144 -6.472138 -1.453084 +v 3.454173 -7.128055 -1.122325 +v 2.351148 -7.608454 -0.763931 +v 1.190231 -7.901508 -0.386727 +v 1.251488 7.901506 0.000001 +v 2.472148 7.608452 0.000001 +v 3.631936 7.128052 0.000002 +v 4.702293 6.472136 0.000002 +v 5.656866 5.656855 0.000003 +v 6.472147 4.702282 0.000004 +v 7.128063 3.631924 0.000003 +v 7.608464 2.472136 0.000004 +v 7.901517 1.251475 0.000004 +v 8.000011 -0.000001 0.000004 +v 7.901517 -1.251477 0.000004 +v 7.608462 -2.472138 0.000004 +v 7.128062 -3.631927 0.000003 +v 6.472145 -4.702285 0.000004 +v 5.656862 -5.656857 0.000002 +v 4.702290 -6.472138 0.000002 +v 3.631932 -7.128055 0.000002 +v 2.472143 -7.608454 0.000001 +v 1.251483 -7.901508 0.000001 +v 1.190236 7.901506 0.386730 +v 2.351153 7.608452 0.763935 +v 3.454176 7.128052 1.122330 +v 4.472146 6.472136 1.453089 +v 5.379998 5.656855 1.748069 +v 6.155376 4.702282 2.000005 +v 6.779190 3.631924 2.202694 +v 7.236078 2.472136 2.351147 +v 7.514788 1.251475 2.441705 +v 7.608462 -0.000001 2.472141 +v 7.514788 -1.251477 2.441705 +v 7.236076 -2.472138 2.351146 +v 6.779189 -3.631927 2.202693 +v 6.155375 -4.702285 2.000004 +v 5.379995 -5.656857 1.748067 +v 4.472143 -6.472138 1.453088 +v 3.454172 -7.128055 1.122328 +v 2.351147 -7.608454 0.763933 +v 1.190231 -7.901508 0.386728 +v 1.012476 7.901506 0.735603 +v 2.000010 7.608452 1.453090 +v 2.938298 7.128052 2.134796 +v 3.804235 6.472136 2.763937 +v 4.576499 5.656855 3.325021 +v 5.236075 4.702282 3.804232 +v 5.766723 3.631924 4.189770 +v 6.155375 2.472136 4.472143 +v 6.392460 1.251475 4.644395 +v 6.472144 -0.000001 4.702289 +v 6.392460 -1.251477 4.644395 +v 6.155374 -2.472138 4.472141 +v 5.766722 -3.631927 4.189769 +v 5.236074 -4.702285 3.804231 +v 4.576497 -5.656857 3.325018 +v 3.804232 -6.472138 2.763935 +v 2.938295 -7.128055 2.134794 +v 2.000006 -7.608454 1.453086 +v 1.012471 -7.901508 0.735600 +v 0.735608 7.901506 1.012471 +v 1.453094 7.608452 2.000006 +v 2.134799 7.128052 2.938294 +v 2.763939 6.472136 3.804232 +v 3.325022 5.656855 4.576497 +v 3.804231 4.702282 5.236074 +v 4.189770 3.631924 5.766721 +v 4.472141 2.472136 6.155374 +v 4.644393 1.251475 6.392459 +v 4.702287 -0.000001 6.472143 +v 4.644393 -1.251477 6.392459 +v 4.472141 -2.472138 6.155372 +v 4.189768 -3.631927 5.766720 +v 3.804231 -4.702285 5.236073 +v 3.325021 -5.656857 4.576494 +v 2.763937 -6.472138 3.804228 +v 2.134797 -7.128055 2.938291 +v 1.453090 -7.608454 2.000001 +v 0.735605 -7.901508 1.012466 +v 0.386735 7.901506 1.190230 +v 0.763939 7.608452 2.351147 +v 1.122332 7.128052 3.454171 +v 1.453090 6.472136 4.472141 +v 1.748069 5.656855 5.379993 +v 2.000002 4.702282 6.155373 +v 2.202693 3.631924 6.779186 +v 2.351144 2.472136 7.236073 +v 2.441703 1.251475 7.514784 +v 2.472139 -0.000001 7.608459 +v 2.441703 -1.251477 7.514784 +v 2.351144 -2.472138 7.236072 +v 2.202692 -3.631927 6.779184 +v 2.000003 -4.702285 6.155371 +v 1.748068 -5.656857 5.379990 +v 1.453089 -6.472138 4.472137 +v 1.122331 -7.128055 3.454167 +v 0.763937 -7.608454 2.351141 +v 0.386733 -7.901508 1.190225 +v 0.000005 7.901506 1.251482 +v 0.000005 7.608452 2.472142 +v 0.000004 7.128052 3.631929 +v 0.000003 6.472136 4.702286 +v 0.000003 5.656855 5.656859 +v 0.000001 4.702282 6.472140 +v 0.000002 3.631924 7.128057 +v 0.000001 2.472136 7.608456 +v 0.000001 1.251475 7.901510 +v 0.000000 -0.000001 8.000005 +v 0.000001 -1.251477 7.901510 +v 0.000002 -2.472138 7.608455 +v 0.000001 -3.631927 7.128055 +v 0.000002 -4.702285 6.472138 +v 0.000003 -5.656857 5.656855 +v 0.000004 -6.472138 4.702283 +v 0.000004 -7.128055 3.631925 +v 0.000005 -7.608454 2.472136 +v 0.000006 -7.901508 1.251476 +v -0.386724 7.901506 1.190230 +v -0.763929 7.608452 2.351146 +v -1.122324 7.128052 3.454169 +v -1.453083 6.472136 4.472139 +v -1.748063 5.656855 5.379992 +v -2.000000 4.702282 6.155369 +v -2.202688 3.631924 6.779183 +v -2.351142 2.472136 7.236070 +v -2.441700 1.251475 7.514781 +v -2.472137 -0.000001 7.608455 +v -2.441700 -1.251477 7.514781 +v -2.351140 -2.472138 7.236069 +v -2.202689 -3.631927 6.779181 +v -1.999999 -4.702285 6.155367 +v -1.748061 -5.656857 5.379988 +v -1.453082 -6.472138 4.472136 +v -1.122323 -7.128055 3.454165 +v -0.763927 -7.608454 2.351140 +v -0.386722 -7.901508 1.190224 +v -0.735597 7.901506 1.012470 +v -1.453084 7.608452 2.000003 +v -2.134790 7.128052 2.938291 +v -2.763931 6.472136 3.804227 +v -3.325015 5.656855 4.576493 +v -3.804227 4.702282 5.236067 +v -4.189764 3.631924 5.766716 +v -4.472137 2.472136 6.155366 +v -4.644390 1.251475 6.392452 +v -4.702284 -0.000001 6.472136 +v -4.644390 -1.251477 6.392452 +v -4.472136 -2.472138 6.155365 +v -4.189764 -3.631927 5.766714 +v -3.804225 -4.702285 5.236066 +v -3.325012 -5.656857 4.576489 +v -2.763929 -6.472138 3.804224 +v -2.134788 -7.128055 2.938287 +v -1.453080 -7.608454 1.999999 +v -0.735594 -7.901508 1.012465 +v 0.000001 8.000000 0.000004 +v -1.012464 7.901506 0.735602 +v -1.999999 7.608452 1.453087 +v -2.938287 7.128052 2.134792 +v -3.804225 6.472136 2.763931 +v -4.576491 5.656855 3.325015 +v -5.236069 4.702282 3.804223 +v -5.766715 3.631924 4.189762 +v -6.155367 2.472136 4.472132 +v -6.392453 1.251475 4.644385 +v -6.472137 -0.000001 4.702279 +v -6.392453 -1.251477 4.644385 +v -6.155365 -2.472138 4.472132 +v -5.766714 -3.631927 4.189760 +v -5.236066 -4.702285 3.804223 +v -4.576488 -5.656857 3.325012 +v -3.804222 -6.472138 2.763929 +v -2.938284 -7.128055 2.134789 +v -1.999995 -7.608454 1.453083 +v -1.012460 -7.901508 0.735598 +v -1.190224 7.901506 0.386728 +v -2.351140 7.608452 0.763932 +v -3.454164 7.128052 1.122325 +v -4.472135 6.472136 1.453082 +v -5.379988 5.656855 1.748062 +v -6.155366 4.702282 1.999995 +v -6.779179 3.631924 2.202685 +v -7.236067 2.472136 2.351135 +v -7.514778 1.251475 2.441694 +v -7.608452 -0.000001 2.472130 +v -7.514778 -1.251477 2.441694 +v -7.236065 -2.472138 2.351135 +v -6.779178 -3.631927 2.202684 +v -6.155364 -4.702285 1.999995 +v -5.379983 -5.656857 1.748060 +v -4.472131 -6.472138 1.453082 +v -3.454160 -7.128055 1.122324 +v -2.351135 -7.608454 0.763930 +v -1.190218 -7.901508 0.386726 +vt 0.035483 0.289114 +vt 0.042491 0.337738 +vt 0.007397 0.296413 +vt 0.063422 0.533643 +vt 0.068439 0.582662 +vt 0.015908 0.545902 +vt 0.097669 0.776914 +vt 0.111929 0.824070 +vt 0.027296 0.795217 +vt 0.391159 0.929226 +vt 0.461397 0.895775 +vt 0.452242 0.950225 +vt 0.026572 0.240871 +vt 0.004734 0.246573 +vt 0.058567 0.484592 +vt 0.014398 0.495993 +vt 0.087726 0.728878 +vt 0.023823 0.745426 +vt 0.270350 0.936037 +vt 0.231553 0.980467 +vt 0.014254 0.193317 +vt 0.001048 0.196795 +vt 0.053639 0.435556 +vt 0.012882 0.446084 +vt 0.080129 0.680372 +vt 0.021272 0.695580 +vt 0.178869 0.909944 +vt 0.068145 0.942733 +vt 0.048386 0.386583 +vt 0.011281 0.396180 +vt 0.073887 0.631595 +vt 0.019234 0.645702 +vt 0.135028 0.869370 +vt 0.042415 0.894305 +vt 0.009500 0.346287 +vt 0.017489 0.595807 +vt 0.032618 0.844897 +vt 0.484179 0.902186 +vt 0.550590 0.948315 +vt 1.004734 0.246573 +vt 1.007397 0.296413 +vt 0.982704 0.246140 +vt 1.014398 0.495993 +vt 1.015908 0.545902 +vt 0.969883 0.495119 +vt 1.023823 0.745426 +vt 1.027296 0.795217 +vt 0.957447 0.744128 +vt 1.231553 0.980467 +vt 0.750122 0.974207 +vt 1.001048 0.196795 +vt 0.987598 0.196530 +vt 1.012882 0.446084 +vt 0.971892 0.445278 +vt 1.021272 0.695580 +vt 0.960802 0.694395 +vt 1.068145 0.942733 +vt 0.901563 0.939596 +vt 1.011281 0.396180 +vt 0.974014 0.395447 +vt 1.019234 0.645702 +vt 0.963490 0.644610 +vt 1.042415 0.894305 +vt 0.933349 0.892198 +vt 1.009500 0.346287 +vt 0.976377 0.345635 +vt 1.017489 0.595807 +vt 0.965794 0.594793 +vt 1.032618 0.844897 +vt 0.945957 0.843211 +vt 0.979169 0.295858 +vt 0.967884 0.544959 +vt 0.952893 0.793765 +vt 0.960930 0.239587 +vt 0.925822 0.482052 +vt 0.894284 0.725297 +vt 0.716363 0.929856 +vt 0.974473 0.192535 +vt 0.931207 0.433203 +vt 0.902436 0.677050 +vt 0.801451 0.904132 +vt 0.936960 0.384433 +vt 0.909171 0.628493 +vt 0.844888 0.864413 +vt 0.943427 0.335818 +vt 0.915075 0.579756 +vt 0.868695 0.819731 +vt 0.951128 0.287472 +vt 0.920529 0.530922 +vt 0.883697 0.773009 +vt 0.509882 0.901680 +vt 0.603672 0.925341 +vt 0.939868 0.227168 +vt 0.882765 0.457977 +vt 0.837646 0.692981 +vt 0.690972 0.886830 +vt 0.962264 0.185007 +vt 0.891191 0.410771 +vt 0.848554 0.646630 +vt 0.746350 0.860374 +vt 0.900372 0.363822 +vt 0.857974 0.599764 +vt 0.782623 0.823943 +vt 0.910879 0.317332 +vt 0.866529 0.552601 +vt 0.806908 0.782514 +vt 0.923572 0.271605 +vt 0.874667 0.505296 +vt 0.824298 0.738476 +vt 0.531785 0.894399 +vt 0.616896 0.895419 +vt 0.840708 0.424882 +vt 0.787319 0.652419 +vt 0.666434 0.846117 +vt 0.951650 0.174333 +vt 0.851788 0.379552 +vt 0.799275 0.607479 +vt 0.706276 0.816232 +vt 0.864196 0.334814 +vt 0.810089 0.562030 +vt 0.735147 0.779653 +vt 0.878757 0.291055 +vt 0.820304 0.516318 +vt 0.756661 0.739218 +vt 0.896714 0.248885 +vt 0.830369 0.470540 +vt 0.773481 0.696510 +vt 0.545835 0.882162 +vt 0.613251 0.864748 +vt 0.920019 0.209353 +vt 0.601814 0.835743 +vt 0.902011 0.186799 +vt 0.798974 0.385208 +vt 0.741339 0.608286 +vt 0.641659 0.808678 +vt 0.812374 0.341530 +vt 0.753261 0.563866 +vt 0.671741 0.774500 +vt 0.827915 0.298950 +vt 0.764518 0.519117 +vt 0.694750 0.736000 +vt 0.846764 0.258126 +vt 0.775586 0.474273 +vt 0.713019 0.694862 +vt 0.551827 0.867272 +vt 0.551336 0.851697 +vt 0.870653 0.220135 +vt 0.786910 0.429557 +vt 0.728181 0.652086 +vt 0.943465 0.161100 +vt 0.886800 0.160336 +vt 0.756203 0.341667 +vt 0.697515 0.564418 +vt 0.616262 0.775491 +vt 0.771631 0.298973 +vt 0.708699 0.519594 +vt 0.639253 0.736889 +vt 0.790354 0.258010 +vt 0.719689 0.474675 +vt 0.657473 0.695657 +vt 0.814109 0.219846 +vt 0.730930 0.429879 +vt 0.672573 0.652794 +vt 0.546100 0.836912 +vt 0.845356 0.186292 +vt 0.742904 0.385443 +vt 0.685664 0.608914 +vt 0.586129 0.809772 +vt 0.938802 0.146131 +vt 0.876174 0.131001 +vt 0.710309 0.297343 +vt 0.654008 0.524127 +vt 0.590087 0.747535 +vt 0.727302 0.254538 +vt 0.663845 0.478153 +vt 0.607276 0.704820 +vt 0.749262 0.214082 +vt 0.673880 0.432264 +vt 0.621259 0.660654 +vt 0.779077 0.177660 +vt 0.684564 0.386653 +vt 0.643951 0.570007 +vt 0.537514 0.823995 +vt 0.820645 0.148333 +vt 0.696450 0.341564 +vt 0.567816 0.787838 +vt 0.658464 0.256085 +vt 0.609517 0.490486 +vt 0.563122 0.725732 +vt 0.700288 0.169995 +vt 0.617324 0.442954 +vt 0.575103 0.679574 +vt 0.625569 0.395564 +vt 0.633223 0.615598 +vt 0.585045 0.632740 +vt 0.737701 0.133357 +vt 0.634697 0.348462 +vt 0.601779 0.538040 +vt 0.526630 0.813733 +vt 0.796084 0.107238 +vt 0.645335 0.301858 +vt 0.547763 0.770746 +vt 0.939113 0.130553 +vt 0.874144 0.100247 +vt 0.563421 0.466357 +vt 0.535483 0.710885 +vt 0.675759 0.211740 +vt 0.635028 0.130630 +vt 0.568439 0.417338 +vt 0.542491 0.662261 +vt 0.573887 0.368405 +vt 0.593757 0.585502 +vt 0.548386 0.613416 +vt 0.678869 0.090056 +vt 0.580129 0.319628 +vt 0.558567 0.515408 +vt 0.514254 0.806683 +vt 0.770350 0.063964 +vt 0.587726 0.271122 +vt 0.526572 0.759129 +vt 0.946160 0.115905 +vt 0.891158 0.070774 +vt 0.597669 0.223086 +vt 0.611929 0.175930 +vt 0.542415 0.105695 +vt 0.517489 0.404193 +vt 0.509500 0.653713 +vt 0.519234 0.354298 +vt 0.553639 0.564444 +vt 0.511281 0.603820 +vt 0.568145 0.057267 +vt 0.521272 0.304420 +vt 0.514398 0.504007 +vt 0.501048 0.803204 +vt 0.731552 0.019533 +vt 0.523822 0.254574 +vt 0.504734 0.753426 +vt 0.961397 0.104224 +vt 0.952242 0.049775 +vt 0.527296 0.204783 +vt 0.515908 0.454098 +vt 0.507397 0.703586 +vt 0.532618 0.155103 +vt 0.433350 0.107802 +vt 0.465794 0.405207 +vt 0.476377 0.654364 +vt 0.463490 0.355390 +vt 0.512882 0.553916 +vt 0.474014 0.604552 +vt 0.401564 0.060404 +vt 0.460802 0.305605 +vt 0.469884 0.504881 +vt 0.487599 0.803469 +vt 1.250123 0.025793 +vt 0.457447 0.255872 +vt 0.482704 0.753860 +vt 0.984179 0.097813 +vt 1.050589 0.051685 +vt 0.452893 0.206235 +vt 0.467885 0.455040 +vt 0.479169 0.704142 +vt 0.445957 0.156790 +vt 0.344888 0.135587 +vt 0.415075 0.420244 +vt 0.443428 0.664182 +vt 0.409171 0.371507 +vt 0.471892 0.554721 +vt 0.436960 0.615567 +vt 0.250123 0.025793 +vt 0.301452 0.095868 +vt 0.402437 0.322950 +vt 0.425822 0.517948 +vt 0.474473 0.807464 +vt 0.050589 0.051685 +vt 0.216363 0.070144 +vt 0.394284 0.274702 +vt 0.460930 0.760413 +vt 0.009882 0.098319 +vt 0.103671 0.074658 +vt 0.383698 0.226991 +vt 0.420529 0.469078 +vt 0.451128 0.712528 +vt 0.366529 0.447399 +vt 0.410880 0.682668 +vt 0.282623 0.176056 +vt 0.357975 0.400236 +vt 0.431207 0.566797 +vt 0.400372 0.636177 +vt 0.246351 0.139626 +vt 0.348554 0.353370 +vt 0.382765 0.542022 +vt 0.462264 0.814992 +vt 0.190972 0.113170 +vt 0.337646 0.307019 +vt 0.439868 0.772831 +vt 0.031785 0.105600 +vt 0.116896 0.104580 +vt 0.368695 0.180269 +vt 0.324298 0.261524 +vt 0.374667 0.494704 +vt 0.423573 0.728394 +vt 0.306908 0.217486 +vt 0.378757 0.708945 +vt 0.235147 0.220346 +vt 0.310089 0.437969 +vt 0.391191 0.589229 +vt 0.364196 0.665186 +vt 0.206276 0.183767 +vt 0.299275 0.392521 +vt 0.340709 0.575117 +vt 0.451650 0.825666 +vt 0.166434 0.153882 +vt 0.287319 0.347580 +vt 0.420019 0.790647 +vt 0.045835 0.117837 +vt 0.113250 0.135252 +vt 0.273481 0.303490 +vt 0.330370 0.529459 +vt 0.396715 0.751114 +vt 0.256661 0.260781 +vt 0.320304 0.483681 +vt 0.171741 0.225499 +vt 0.253261 0.436134 +vt 0.351788 0.620448 +vt 0.312374 0.658470 +vt 0.141659 0.191322 +vt 0.241339 0.391714 +vt 0.402011 0.813201 +vt 0.101814 0.164257 +vt 0.228181 0.347914 +vt 0.286910 0.570443 +vt 0.370653 0.779864 +vt 0.051826 0.132727 +vt 0.051336 0.148303 +vt 0.213019 0.305137 +vt 0.275586 0.525726 +vt 0.346765 0.741874 +vt 0.194750 0.264000 +vt 0.264518 0.480883 +vt 0.327915 0.701050 +vt 0.139253 0.263111 +vt 0.208699 0.480406 +vt 0.271631 0.701027 +vt 0.116262 0.224508 +vt 0.197515 0.435582 +vt 0.298975 0.614792 +vt 0.443465 0.838899 +vt 0.386800 0.839664 +vt 0.086129 0.190228 +vt 0.185664 0.391086 +vt 0.242904 0.614557 +vt 0.345357 0.813708 +vt 0.046099 0.163088 +vt 0.172573 0.347205 +vt 0.230930 0.570121 +vt 0.314109 0.780154 +vt 0.157473 0.304343 +vt 0.219689 0.525325 +vt 0.290354 0.741990 +vt 0.107276 0.295180 +vt 0.163845 0.521847 +vt 0.227302 0.745462 +vt 0.090087 0.252465 +vt 0.154008 0.475873 +vt 0.256203 0.658333 +vt 0.438803 0.853868 +vt 0.376175 0.868999 +vt 0.067816 0.212161 +vt 0.143951 0.429993 +vt 0.196450 0.658436 +vt 0.320646 0.851667 +vt 0.037514 0.176004 +vt 0.133223 0.384401 +vt 0.184564 0.613347 +vt 0.279077 0.822340 +vt 0.121259 0.339345 +vt 0.173881 0.567736 +vt 0.249262 0.785918 +vt 0.175759 0.788260 +vt 0.063122 0.274267 +vt 0.109517 0.509514 +vt 0.210309 0.702657 +vt 0.439113 0.869447 +vt 0.374144 0.899752 +vt 0.047763 0.229253 +vt 0.101779 0.461959 +vt 0.145335 0.698142 +vt 0.296085 0.892762 +vt 0.026630 0.186267 +vt 0.093757 0.414497 +vt 0.134697 0.651538 +vt 0.237701 0.866643 +vt 0.085045 0.367260 +vt 0.125569 0.604436 +vt 0.200288 0.830006 +vt 0.075103 0.320425 +vt 0.117324 0.557046 +vt 0.995265 0.147143 +vt 1.014254 0.193317 +vt 0.495265 0.852856 +vt 1.009882 0.098319 +vt 1.031785 0.105600 +vt 1.045835 0.117837 +vt 1.051826 0.132727 +vt 1.051336 0.148303 +vt 1.046099 0.163088 +vt 1.037514 0.176004 +vt 0.446160 0.884095 +vt 1.026630 0.186267 +vt 0.158464 0.743915 +vn -0.460158 -0.887814 0.000000 +vn -0.592853 -0.805292 0.000000 +vn -0.437635 -0.887814 -0.142186 +vn -0.951781 -0.306742 0.000000 +vn -0.987854 -0.155217 0.000000 +vn -0.905179 -0.306742 -0.294107 +vn -0.892575 0.450850 0.000000 +vn -0.811670 0.584063 0.000000 +vn -0.848903 0.450850 -0.275826 +vn -0.316050 0.948729 0.000000 +vn -0.164068 0.986419 0.000000 +vn -0.300577 0.948729 -0.097659 +vn -0.316050 -0.948729 0.000000 +vn -0.300577 -0.948729 -0.097659 +vn -0.892575 -0.450850 0.000000 +vn -0.848903 -0.450850 -0.275826 +vn -0.951781 0.306742 0.000000 +vn -0.905179 0.306742 -0.294107 +vn -0.460158 0.887814 0.000000 +vn -0.437635 0.887814 -0.142186 +vn -0.164068 -0.986419 0.000000 +vn -0.156011 -0.986419 -0.050691 +vn -0.811670 -0.584063 0.000000 +vn -0.771935 -0.584063 -0.250801 +vn -0.987854 0.155217 0.000000 +vn -0.939512 0.155217 -0.305246 +vn -0.592853 0.805292 0.000000 +vn -0.563829 0.805292 -0.183203 +vn -0.710959 -0.703207 0.000000 +vn -0.676168 -0.703207 -0.219703 +vn -1.000000 0.000000 0.000000 +vn -0.951048 0.000000 -0.309000 +vn -0.710959 0.703207 0.000000 +vn -0.676168 0.703207 -0.219703 +vn -0.563829 -0.805292 -0.183203 +vn -0.939512 -0.155217 -0.305246 +vn -0.771935 0.584063 -0.250801 +vn -0.156011 0.986419 -0.050691 +vn -0.255684 0.948729 -0.185766 +vn -0.255684 -0.948729 -0.185766 +vn -0.722098 -0.450850 -0.524644 +vn -0.770012 0.306742 -0.559435 +vn -0.372265 0.887814 -0.270455 +vn -0.132725 -0.986419 -0.096408 +vn -0.656667 -0.584063 -0.477096 +vn -0.799188 0.155217 -0.580645 +vn -0.479629 0.805292 -0.348460 +vn -0.575182 -0.703207 -0.417890 +vn -0.809015 0.000000 -0.587756 +vn -0.575182 0.703207 -0.417890 +vn -0.479629 -0.805292 -0.348460 +vn -0.799188 -0.155217 -0.580645 +vn -0.656667 0.584063 -0.477096 +vn -0.372265 -0.887814 -0.270455 +vn -0.770012 -0.306742 -0.559435 +vn -0.722098 0.450850 -0.524644 +vn -0.185766 -0.948729 -0.255684 +vn -0.524644 -0.450850 -0.722098 +vn -0.559435 0.306742 -0.770012 +vn -0.270455 0.887814 -0.372265 +vn -0.096408 -0.986419 -0.132725 +vn -0.477096 -0.584063 -0.656667 +vn -0.580645 0.155217 -0.799188 +vn -0.348460 0.805292 -0.479629 +vn -0.417890 -0.703207 -0.575182 +vn -0.587756 0.000000 -0.809015 +vn -0.417890 0.703207 -0.575182 +vn -0.348460 -0.805292 -0.479629 +vn -0.580645 -0.155217 -0.799188 +vn -0.477096 0.584063 -0.656667 +vn -0.270455 -0.887814 -0.372265 +vn -0.559435 -0.306742 -0.770012 +vn -0.524644 0.450850 -0.722098 +vn -0.132725 0.986419 -0.096408 +vn -0.185766 0.948729 -0.255684 +vn -0.097659 -0.948729 -0.300577 +vn -0.275826 -0.450850 -0.848903 +vn -0.294107 0.306742 -0.905179 +vn -0.142186 0.887814 -0.437635 +vn -0.050691 -0.986419 -0.156011 +vn -0.250801 -0.584063 -0.771935 +vn -0.305246 0.155217 -0.939512 +vn -0.183203 0.805292 -0.563829 +vn -0.219703 -0.703207 -0.676168 +vn -0.309000 0.000000 -0.951048 +vn -0.219703 0.703207 -0.676168 +vn -0.183203 -0.805292 -0.563829 +vn -0.305246 -0.155217 -0.939512 +vn -0.250801 0.584063 -0.771935 +vn -0.142186 -0.887814 -0.437635 +vn -0.294107 -0.306742 -0.905179 +vn -0.275826 0.450850 -0.848903 +vn -0.096408 0.986419 -0.132725 +vn -0.097659 0.948729 -0.300577 +vn 0.000000 -0.450850 -0.892575 +vn 0.000000 0.306742 -0.951781 +vn 0.000000 0.887814 -0.460158 +vn 0.000000 -0.986419 -0.164068 +vn 0.000000 -0.584063 -0.811670 +vn 0.000000 0.155217 -0.987854 +vn 0.000000 0.805292 -0.592853 +vn 0.000000 -0.703207 -0.710959 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.703207 -0.710959 +vn 0.000000 -0.805292 -0.592853 +vn 0.000000 -0.155217 -0.987854 +vn 0.000000 0.584063 -0.811670 +vn 0.000000 -0.887814 -0.460158 +vn 0.000000 -0.306742 -0.951781 +vn 0.000000 0.450850 -0.892575 +vn -0.050691 0.986419 -0.156011 +vn 0.000000 0.948729 -0.316050 +vn 0.000000 -0.948729 -0.316050 +vn 0.097659 0.948729 -0.300577 +vn 0.097659 -0.948729 -0.300577 +vn 0.275826 -0.450850 -0.848903 +vn 0.294107 0.306742 -0.905179 +vn 0.142186 0.887814 -0.437635 +vn 0.250801 -0.584063 -0.771935 +vn 0.305246 0.155217 -0.939512 +vn 0.183203 0.805292 -0.563829 +vn 0.219703 -0.703207 -0.676168 +vn 0.309000 0.000000 -0.951048 +vn 0.219703 0.703207 -0.676168 +vn 0.183203 -0.805292 -0.563829 +vn 0.305246 -0.155217 -0.939512 +vn 0.250801 0.584063 -0.771935 +vn 0.000000 0.986419 -0.164068 +vn 0.050691 0.986419 -0.156011 +vn 0.142186 -0.887814 -0.437635 +vn 0.294107 -0.306742 -0.905179 +vn 0.275826 0.450850 -0.848903 +vn 0.050691 -0.986419 -0.156011 +vn 0.185766 -0.948729 -0.255684 +vn 0.524644 -0.450850 -0.722098 +vn 0.559435 0.306742 -0.770012 +vn 0.270455 0.887814 -0.372265 +vn 0.477096 -0.584063 -0.656667 +vn 0.580645 0.155217 -0.799188 +vn 0.348460 0.805292 -0.479629 +vn 0.417890 -0.703207 -0.575182 +vn 0.587756 0.000000 -0.809015 +vn 0.417890 0.703207 -0.575182 +vn 0.348460 -0.805292 -0.479629 +vn 0.580645 -0.155217 -0.799188 +vn 0.477096 0.584063 -0.656667 +vn 0.096408 0.986419 -0.132725 +vn 0.270455 -0.887814 -0.372265 +vn 0.559435 -0.306742 -0.770012 +vn 0.524644 0.450850 -0.722098 +vn 0.185766 0.948729 -0.255684 +vn 0.096408 -0.986419 -0.132725 +vn 0.255684 -0.948729 -0.185766 +vn 0.722098 -0.450850 -0.524644 +vn 0.770012 0.306742 -0.559435 +vn 0.372265 0.887814 -0.270455 +vn 0.656667 -0.584063 -0.477096 +vn 0.799188 0.155217 -0.580645 +vn 0.479629 0.805292 -0.348460 +vn 0.575182 -0.703207 -0.417890 +vn 0.809015 0.000000 -0.587756 +vn 0.575182 0.703207 -0.417890 +vn 0.479629 -0.805292 -0.348460 +vn 0.799188 -0.155217 -0.580645 +vn 0.722098 0.450850 -0.524644 +vn 0.132725 0.986419 -0.096408 +vn 0.372265 -0.887814 -0.270455 +vn 0.770012 -0.306742 -0.559435 +vn 0.255684 0.948729 -0.185766 +vn 0.848903 -0.450850 -0.275826 +vn 0.905179 0.306742 -0.294107 +vn 0.437635 0.887814 -0.142186 +vn 0.676168 -0.703207 -0.219703 +vn 0.939512 0.155217 -0.305246 +vn 0.563829 0.805292 -0.183203 +vn 0.951048 0.000000 -0.309000 +vn 0.656667 0.584063 -0.477096 +vn 0.676168 0.703207 -0.219703 +vn 0.563829 -0.805292 -0.183203 +vn 0.939512 -0.155217 -0.305246 +vn 0.848903 0.450850 -0.275826 +vn 0.156011 0.986419 -0.050691 +vn 0.437635 -0.887814 -0.142186 +vn 0.905179 -0.306742 -0.294107 +vn 0.300577 0.948729 -0.097659 +vn 0.132725 -0.986419 -0.096408 +vn 0.300577 -0.948729 -0.097659 +vn 0.951781 0.306742 0.000000 +vn 0.460158 0.887814 0.000000 +vn 0.771935 -0.584063 -0.250801 +vn 0.710959 -0.703207 0.000000 +vn 0.987854 0.155217 0.000000 +vn 0.592853 0.805292 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.771935 0.584063 -0.250801 +vn 0.710959 0.703207 0.000000 +vn 0.592853 -0.805292 0.000000 +vn 0.987854 -0.155217 0.000000 +vn 0.892575 0.450850 0.000000 +vn 0.164068 0.986419 0.000000 +vn 0.460158 -0.887814 0.000000 +vn 0.951781 -0.306742 0.000000 +vn 0.316050 0.948729 0.000000 +vn 0.156011 -0.986419 -0.050691 +vn 0.316050 -0.948729 0.000000 +vn 0.892575 -0.450850 0.000000 +vn 0.811670 -0.584063 0.000000 +vn 0.676168 -0.703207 0.219703 +vn 0.939512 0.155217 0.305246 +vn 0.563829 0.805292 0.183203 +vn 0.951048 0.000000 0.309000 +vn 0.811670 0.584063 0.000000 +vn 0.676168 0.703207 0.219703 +vn 0.563829 -0.805292 0.183203 +vn 0.939512 -0.155217 0.305246 +vn 0.848903 0.450850 0.275826 +vn 0.156011 0.986419 0.050691 +vn 0.437635 -0.887814 0.142186 +vn 0.905179 -0.306742 0.294107 +vn 0.300577 0.948729 0.097659 +vn 0.164068 -0.986419 0.000000 +vn 0.300577 -0.948729 0.097659 +vn 0.848903 -0.450850 0.275826 +vn 0.905179 0.306742 0.294107 +vn 0.437635 0.887814 0.142186 +vn 0.771935 -0.584063 0.250801 +vn 0.575182 -0.703207 0.417890 +vn 0.799188 0.155217 0.580645 +vn 0.479629 0.805292 0.348460 +vn 0.809015 0.000000 0.587756 +vn 0.771935 0.584063 0.250801 +vn 0.575182 0.703207 0.417890 +vn 0.479629 -0.805292 0.348460 +vn 0.799188 -0.155217 0.580645 +vn 0.722098 0.450850 0.524644 +vn 0.132725 0.986419 0.096408 +vn 0.372265 -0.887814 0.270455 +vn 0.770012 -0.306742 0.559435 +vn 0.255684 0.948729 0.185766 +vn 0.156011 -0.986419 0.050691 +vn 0.255684 -0.948729 0.185766 +vn 0.722098 -0.450850 0.524644 +vn 0.770012 0.306742 0.559435 +vn 0.372265 0.887814 0.270455 +vn 0.656667 -0.584063 0.477096 +vn 0.417890 -0.703207 0.575182 +vn 0.580645 0.155217 0.799188 +vn 0.348460 0.805292 0.479629 +vn 0.587756 0.000000 0.809015 +vn 0.656667 0.584063 0.477096 +vn 0.417890 0.703207 0.575182 +vn 0.348460 -0.805292 0.479629 +vn 0.580645 -0.155217 0.799188 +vn 0.524644 0.450850 0.722098 +vn 0.096408 0.986419 0.132725 +vn 0.270455 -0.887814 0.372265 +vn 0.559435 -0.306742 0.770012 +vn 0.185766 0.948729 0.255684 +vn 0.132725 -0.986419 0.096408 +vn 0.185766 -0.948729 0.255684 +vn 0.524644 -0.450850 0.722098 +vn 0.559435 0.306742 0.770012 +vn 0.270455 0.887814 0.372265 +vn 0.305246 0.155217 0.939512 +vn 0.183203 0.805292 0.563829 +vn 0.219703 -0.703207 0.676168 +vn 0.309000 0.000000 0.951048 +vn 0.477096 0.584063 0.656667 +vn 0.219703 0.703207 0.676168 +vn 0.183203 -0.805292 0.563829 +vn 0.305246 -0.155217 0.939512 +vn 0.275826 0.450850 0.848903 +vn 0.050691 0.986419 0.156011 +vn 0.142186 -0.887814 0.437635 +vn 0.294107 -0.306742 0.905179 +vn 0.097659 0.948729 0.300577 +vn 0.096408 -0.986419 0.132725 +vn 0.097659 -0.948729 0.300577 +vn 0.477096 -0.584063 0.656667 +vn 0.275826 -0.450850 0.848903 +vn 0.294107 0.306742 0.905179 +vn 0.142186 0.887814 0.437635 +vn 0.250801 -0.584063 0.771935 +vn 0.000000 0.805292 0.592853 +vn 0.000000 -0.703207 0.710959 +vn 0.000000 0.000000 1.000000 +vn 0.250801 0.584063 0.771935 +vn 0.000000 0.703207 0.710959 +vn 0.000000 -0.805292 0.592853 +vn 0.000000 -0.155217 0.987854 +vn 0.000000 0.450850 0.892575 +vn 0.000000 0.986419 0.164068 +vn 0.000000 -0.887814 0.460158 +vn 0.000000 -0.306742 0.951781 +vn 0.000000 0.948729 0.316050 +vn 0.050691 -0.986419 0.156011 +vn 0.000000 -0.948729 0.316050 +vn 0.000000 -0.450850 0.892575 +vn 0.000000 0.306742 0.951781 +vn 0.000000 0.887814 0.460158 +vn 0.000000 -0.584063 0.811670 +vn 0.000000 0.155217 0.987854 +vn -0.183203 -0.805292 0.563829 +vn -0.305246 -0.155217 0.939512 +vn 0.000000 0.584063 0.811670 +vn -0.250801 0.584063 0.771935 +vn -0.142186 -0.887814 0.437635 +vn -0.294107 -0.306742 0.905179 +vn -0.097659 0.948729 0.300577 +vn -0.097659 -0.948729 0.300577 +vn -0.275826 -0.450850 0.848903 +vn -0.294107 0.306742 0.905179 +vn -0.142186 0.887814 0.437635 +vn 0.000000 -0.986419 0.164068 +vn -0.050691 -0.986419 0.156011 +vn -0.250801 -0.584063 0.771935 +vn -0.305246 0.155217 0.939512 +vn -0.183203 0.805292 0.563829 +vn -0.219703 -0.703207 0.676168 +vn -0.309000 0.000000 0.951048 +vn -0.219703 0.703207 0.676168 +vn -0.348460 -0.805292 0.479629 +vn -0.580645 -0.155217 0.799188 +vn -0.477096 0.584063 0.656667 +vn -0.270455 -0.887814 0.372265 +vn -0.559435 -0.306742 0.770012 +vn -0.275826 0.450850 0.848903 +vn -0.050691 0.986419 0.156011 +vn -0.185766 0.948729 0.255684 +vn -0.185766 -0.948729 0.255684 +vn -0.524644 -0.450850 0.722098 +vn -0.559435 0.306742 0.770012 +vn -0.270455 0.887814 0.372265 +vn -0.096408 -0.986419 0.132725 +vn -0.477096 -0.584063 0.656667 +vn -0.580645 0.155217 0.799188 +vn -0.348460 0.805292 0.479629 +vn -0.417890 -0.703207 0.575182 +vn -0.587756 0.000000 0.809015 +vn -0.417890 0.703207 0.575182 +vn -0.479629 -0.805292 0.348460 +vn -0.799188 -0.155217 0.580645 +vn -0.656667 0.584063 0.477096 +vn -0.372265 -0.887814 0.270455 +vn -0.770012 -0.306742 0.559435 +vn -0.524644 0.450850 0.722098 +vn -0.096408 0.986419 0.132725 +vn -0.255684 0.948729 0.185766 +vn -0.255684 -0.948729 0.185766 +vn -0.722098 -0.450850 0.524644 +vn -0.770012 0.306742 0.559435 +vn -0.372265 0.887814 0.270455 +vn -0.132725 -0.986419 0.096408 +vn -0.656667 -0.584063 0.477096 +vn -0.799188 0.155217 0.580645 +vn -0.479629 0.805292 0.348460 +vn -0.575182 -0.703207 0.417890 +vn -0.809015 0.000000 0.587756 +vn -0.575182 0.703207 0.417890 +vn -0.771935 0.584063 0.250801 +vn -0.437635 -0.887814 0.142186 +vn -0.905179 -0.306742 0.294107 +vn -0.722098 0.450850 0.524644 +vn -0.132725 0.986419 0.096408 +vn -0.300577 0.948729 0.097659 +vn -0.300577 -0.948729 0.097659 +vn -0.848903 -0.450850 0.275826 +vn -0.905179 0.306742 0.294107 +vn -0.437635 0.887814 0.142186 +vn -0.156011 -0.986419 0.050691 +vn -0.771935 -0.584063 0.250801 +vn -0.939512 0.155217 0.305246 +vn -0.563829 0.805292 0.183203 +vn -0.676168 -0.703207 0.219703 +vn -0.951048 0.000000 0.309000 +vn -0.676168 0.703207 0.219703 +vn -0.563829 -0.805292 0.183203 +vn -0.939512 -0.155217 0.305246 +vn 0.000000 -0.999969 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.156011 0.986419 0.050691 +vn -0.848903 0.450850 0.275826 +s 1 +f 17/1/1 16/2/2 36/3/3 +f 12/4/4 11/5/5 31/6/6 +f 7/7/7 6/8/8 26/9/9 +f 2/10/10 1/11/11 21/12/12 +f 18/13/13 17/1/1 37/14/14 +f 13/15/15 12/4/4 32/16/16 +f 8/17/17 7/7/7 27/18/18 +f 3/19/19 2/10/10 22/20/20 +f 19/21/21 18/13/13 38/22/22 +f 14/23/23 13/15/15 33/24/24 +f 9/25/25 8/17/17 28/26/26 +f 4/27/27 3/19/19 23/28/28 +f 15/29/29 14/23/23 34/30/30 +f 10/31/31 9/25/25 29/32/32 +f 5/33/33 4/27/27 24/34/34 +f 16/2/2 15/29/29 35/35/35 +f 11/5/5 10/31/31 30/36/36 +f 6/8/8 5/33/33 25/37/37 +f 21/12/12 20/38/38 41/39/39 +f 37/40/14 36/41/3 57/42/40 +f 32/43/16 31/44/6 52/45/41 +f 27/46/18 26/47/9 47/48/42 +f 22/49/20 21/12/12 42/50/43 +f 38/51/22 37/40/14 58/52/44 +f 33/53/24 32/43/16 53/54/45 +f 28/55/26 27/46/18 48/56/46 +f 23/57/28 22/49/20 43/58/47 +f 34/59/30 33/53/24 54/60/48 +f 29/61/32 28/55/26 49/62/49 +f 24/63/34 23/57/28 44/64/50 +f 35/65/35 34/59/30 55/66/51 +f 30/67/36 29/61/32 50/68/52 +f 25/69/37 24/63/34 45/70/53 +f 36/41/3 35/65/35 56/71/54 +f 31/44/6 30/67/36 51/72/55 +f 26/47/9 25/69/37 46/73/56 +f 57/42/40 56/71/54 76/74/57 +f 52/45/41 51/72/55 71/75/58 +f 47/48/42 46/73/56 66/76/59 +f 42/50/43 41/39/39 61/77/60 +f 58/52/44 57/42/40 77/78/61 +f 53/54/45 52/45/41 72/79/62 +f 48/56/46 47/48/42 67/80/63 +f 43/58/47 42/50/43 62/81/64 +f 54/60/48 53/54/45 73/82/65 +f 49/62/49 48/56/46 68/83/66 +f 44/64/50 43/58/47 63/84/67 +f 55/66/51 54/60/48 74/85/68 +f 50/68/52 49/62/49 69/86/69 +f 45/70/53 44/64/50 64/87/70 +f 56/71/54 55/66/51 75/88/71 +f 51/72/55 50/68/52 70/89/72 +f 46/73/56 45/70/53 65/90/73 +f 41/39/39 40/91/74 60/92/75 +f 76/74/57 75/88/71 95/93/76 +f 71/75/58 70/89/72 90/94/77 +f 66/76/59 65/90/73 85/95/78 +f 61/77/60 60/92/75 80/96/79 +f 77/78/61 76/74/57 96/97/80 +f 72/79/62 71/75/58 91/98/81 +f 67/80/63 66/76/59 86/99/82 +f 62/81/64 61/77/60 81/100/83 +f 73/82/65 72/79/62 92/101/84 +f 68/83/66 67/80/63 87/102/85 +f 63/84/67 62/81/64 82/103/86 +f 74/85/68 73/82/65 93/104/87 +f 69/86/69 68/83/66 88/105/88 +f 64/87/70 63/84/67 83/106/89 +f 75/88/71 74/85/68 94/107/90 +f 70/89/72 69/86/69 89/108/91 +f 65/90/73 64/87/70 84/109/92 +f 60/92/75 59/110/93 79/111/94 +f 90/94/77 89/108/91 109/112/95 +f 85/95/78 84/109/92 104/113/96 +f 80/96/79 79/111/94 99/114/97 +f 96/97/80 95/93/76 115/115/98 +f 91/98/81 90/94/77 110/116/99 +f 86/99/82 85/95/78 105/117/100 +f 81/100/83 80/96/79 100/118/101 +f 92/101/84 91/98/81 111/119/102 +f 87/102/85 86/99/82 106/120/103 +f 82/103/86 81/100/83 101/121/104 +f 93/104/87 92/101/84 112/122/105 +f 88/105/88 87/102/85 107/123/106 +f 83/106/89 82/103/86 102/124/107 +f 94/107/90 93/104/87 113/125/108 +f 89/108/91 88/105/88 108/126/109 +f 84/109/92 83/106/89 103/127/110 +f 79/111/94 78/128/111 98/129/112 +f 95/93/76 94/107/90 114/130/113 +f 99/114/97 98/129/112 117/131/114 +f 115/115/98 114/130/113 133/132/115 +f 110/116/99 109/112/95 128/133/116 +f 105/117/100 104/113/96 123/134/117 +f 100/118/101 99/114/97 118/135/118 +f 111/119/102 110/116/99 129/136/119 +f 106/120/103 105/117/100 124/137/120 +f 101/121/104 100/118/101 119/138/121 +f 112/122/105 111/119/102 130/139/122 +f 107/123/106 106/120/103 125/140/123 +f 102/124/107 101/121/104 120/141/124 +f 113/125/108 112/122/105 131/142/125 +f 108/126/109 107/123/106 126/143/126 +f 103/127/110 102/124/107 121/144/127 +f 98/129/112 97/145/128 116/146/129 +f 114/130/113 113/125/108 132/147/130 +f 109/112/95 108/126/109 127/148/131 +f 104/113/96 103/127/110 122/149/132 +f 134/150/133 133/132/115 152/151/134 +f 129/136/119 128/133/116 147/152/135 +f 124/137/120 123/134/117 142/153/136 +f 119/138/121 118/135/118 137/154/137 +f 130/139/122 129/136/119 148/155/138 +f 125/140/123 124/137/120 143/156/139 +f 120/141/124 119/138/121 138/157/140 +f 131/142/125 130/139/122 149/158/141 +f 126/143/126 125/140/123 144/159/142 +f 121/144/127 120/141/124 139/160/143 +f 132/147/130 131/142/125 150/161/144 +f 127/148/131 126/143/126 145/162/145 +f 122/149/132 121/144/127 140/163/146 +f 117/131/114 116/146/129 135/164/147 +f 133/132/115 132/147/130 151/165/148 +f 128/133/116 127/148/131 146/166/149 +f 123/134/117 122/149/132 141/167/150 +f 118/135/118 117/131/114 136/168/151 +f 153/169/152 152/151/134 171/170/153 +f 148/155/138 147/152/135 166/171/154 +f 143/156/139 142/153/136 161/172/155 +f 138/157/140 137/154/137 156/173/156 +f 149/158/141 148/155/138 167/174/157 +f 144/159/142 143/156/139 162/175/158 +f 139/160/143 138/157/140 157/176/159 +f 150/161/144 149/158/141 168/177/160 +f 145/162/145 144/159/142 163/178/161 +f 140/163/146 139/160/143 158/179/162 +f 151/165/148 150/161/144 169/180/163 +f 146/166/149 145/162/145 164/181/164 +f 141/167/150 140/163/146 160/182/165 +f 136/168/151 135/164/147 154/183/166 +f 152/151/134 151/165/148 170/184/167 +f 147/152/135 146/166/149 165/185/168 +f 142/153/136 141/167/150 160/182/165 +f 137/154/137 136/168/151 155/186/169 +f 167/174/157 166/171/154 185/187/170 +f 162/175/158 161/172/155 180/188/171 +f 157/176/159 156/173/156 175/189/172 +f 168/177/160 167/174/157 187/190/173 +f 163/178/161 162/175/158 181/191/174 +f 158/179/162 157/176/159 176/192/175 +f 169/180/163 168/177/160 187/190/173 +f 164/181/164 163/178/161 182/193/176 +f 159/194/177 158/179/162 177/195/178 +f 170/184/167 169/180/163 188/196/179 +f 165/185/168 164/181/164 183/197/180 +f 160/182/165 159/194/177 179/198/181 +f 155/186/169 154/183/166 173/199/182 +f 171/170/153 170/184/167 189/200/183 +f 166/171/154 165/185/168 184/201/184 +f 161/172/155 160/182/165 179/198/181 +f 156/173/156 155/186/169 174/202/185 +f 172/203/186 171/170/153 190/204/187 +f 181/191/174 180/188/171 199/205/188 +f 176/192/175 175/189/172 194/206/189 +f 187/190/173 186/207/190 206/208/191 +f 182/193/176 181/191/174 200/209/192 +f 177/195/178 176/192/175 195/210/193 +f 188/196/179 187/190/173 206/208/191 +f 183/197/180 182/193/176 201/211/194 +f 178/212/195 177/195/178 196/213/196 +f 189/200/183 188/196/179 207/214/197 +f 184/201/184 183/197/180 202/215/198 +f 179/198/181 178/212/195 198/216/199 +f 174/202/185 173/199/182 192/217/200 +f 190/204/187 189/200/183 208/218/201 +f 185/187/170 184/201/184 203/219/202 +f 180/188/171 179/198/181 198/216/199 +f 175/189/172 174/202/185 193/220/203 +f 191/221/204 190/204/187 209/222/205 +f 186/207/190 185/187/170 204/223/206 +f 206/208/191 205/224/207 225/225/208 +f 201/211/194 200/209/192 219/226/209 +f 196/213/196 195/210/193 214/227/210 +f 207/214/197 206/208/191 225/225/208 +f 202/215/198 201/211/194 220/228/211 +f 197/229/212 196/213/196 215/230/213 +f 208/218/201 207/214/197 226/231/214 +f 203/219/202 202/215/198 221/232/215 +f 198/216/199 197/229/212 217/233/216 +f 193/220/203 192/217/200 211/234/217 +f 209/222/205 208/218/201 227/235/218 +f 204/223/206 203/219/202 222/236/219 +f 199/205/188 198/216/199 217/233/216 +f 194/206/189 193/220/203 212/237/220 +f 210/238/221 209/222/205 228/239/222 +f 205/224/207 204/223/206 223/240/223 +f 200/209/192 199/205/188 218/241/224 +f 195/210/193 194/206/189 213/242/225 +f 225/225/208 224/243/226 244/244/227 +f 220/228/211 219/226/209 238/245/228 +f 215/230/213 214/227/210 233/246/229 +f 226/231/214 225/225/208 244/244/227 +f 221/232/215 220/228/211 239/247/230 +f 216/248/231 215/230/213 234/249/232 +f 227/235/218 226/231/214 245/250/233 +f 222/236/219 221/232/215 240/251/234 +f 217/233/216 216/248/231 236/252/235 +f 212/237/220 211/234/217 230/253/236 +f 228/239/222 227/235/218 246/254/237 +f 223/240/223 222/236/219 241/255/238 +f 218/241/224 217/233/216 236/252/235 +f 213/242/225 212/237/220 231/256/239 +f 229/257/240 228/239/222 247/258/241 +f 224/243/226 223/240/223 242/259/242 +f 219/226/209 218/241/224 237/260/243 +f 214/227/210 213/242/225 232/261/244 +f 244/244/227 243/262/245 263/263/246 +f 239/247/230 238/245/228 257/264/247 +f 234/249/232 233/246/229 252/265/248 +f 245/250/233 244/244/227 263/263/246 +f 240/251/234 239/247/230 258/266/249 +f 235/267/250 234/249/232 253/268/251 +f 246/269/237 245/250/233 264/270/252 +f 241/255/238 240/251/234 259/271/253 +f 236/252/235 235/267/250 255/272/254 +f 231/256/239 230/253/236 249/273/255 +f 247/274/241 246/269/237 265/275/256 +f 242/259/242 241/255/238 260/276/257 +f 237/260/243 236/252/235 255/272/254 +f 232/261/244 231/256/239 250/277/258 +f 248/278/259 247/274/241 266/279/260 +f 243/262/245 242/259/242 261/280/261 +f 238/245/228 237/260/243 256/281/262 +f 233/246/229 232/261/244 251/282/263 +f 258/266/249 257/264/247 276/283/264 +f 253/268/251 252/265/248 271/284/265 +f 264/270/252 263/263/246 282/285/266 +f 259/271/253 258/266/249 277/286/267 +f 254/287/268 253/268/251 272/288/269 +f 265/275/256 264/270/252 283/289/270 +f 260/276/257 259/271/253 278/290/271 +f 255/272/254 254/287/268 274/291/272 +f 250/277/258 249/273/255 268/292/273 +f 266/279/260 265/275/256 284/293/274 +f 261/280/261 260/276/257 279/294/275 +f 256/281/262 255/272/254 274/291/272 +f 251/282/263 250/277/258 269/295/276 +f 267/296/277 266/279/260 285/297/278 +f 262/298/279 261/280/261 280/299/280 +f 257/264/247 256/281/262 275/300/281 +f 252/265/248 251/282/263 270/301/282 +f 263/263/246 262/298/279 281/302/283 +f 272/288/269 271/284/265 290/303/284 +f 283/289/270 282/285/266 301/304/285 +f 278/290/271 277/286/267 296/305/286 +f 273/306/287 272/288/269 291/307/288 +f 284/293/274 283/289/270 302/308/289 +f 279/294/275 278/290/271 297/309/290 +f 274/291/272 273/306/287 293/310/291 +f 269/295/276 268/292/273 287/311/292 +f 285/297/278 284/293/274 303/312/293 +f 280/299/280 279/294/275 298/313/294 +f 275/300/281 274/291/272 293/310/291 +f 270/301/282 269/295/276 288/314/295 +f 286/315/296 285/297/278 304/316/297 +f 281/302/283 280/299/280 299/317/298 +f 276/283/264 275/300/281 294/318/299 +f 271/284/265 270/301/282 289/319/300 +f 282/285/266 281/302/283 300/320/301 +f 277/286/267 276/283/264 295/321/302 +f 302/308/289 301/304/285 321/322/303 +f 297/309/290 296/305/286 316/323/304 +f 292/324/305 291/307/288 311/325/306 +f 303/312/293 302/308/289 322/326/307 +f 298/313/294 297/309/290 317/327/308 +f 293/310/291 292/324/305 311/325/306 +f 288/314/295 287/311/292 307/328/309 +f 304/316/297 303/312/293 323/329/310 +f 299/317/298 298/313/294 318/330/311 +f 294/318/299 293/310/291 313/331/312 +f 289/319/300 288/314/295 308/332/313 +f 305/333/314 304/316/297 324/334/315 +f 300/320/301 299/317/298 319/335/316 +f 295/321/302 294/318/299 314/336/317 +f 290/303/284 289/319/300 309/337/318 +f 301/304/285 300/320/301 320/338/319 +f 296/305/286 295/321/302 315/339/320 +f 291/307/288 290/303/284 310/340/321 +f 321/322/303 320/338/319 340/341/322 +f 316/323/304 315/339/320 335/342/323 +f 311/325/306 310/340/321 330/343/324 +f 322/326/307 321/322/303 341/344/325 +f 317/327/308 316/323/304 336/345/326 +f 312/346/327 311/325/306 330/343/324 +f 307/328/309 306/347/328 326/348/329 +f 323/329/310 322/326/307 342/349/330 +f 318/330/311 317/327/308 337/350/331 +f 313/331/312 312/346/327 332/351/332 +f 308/332/313 307/328/309 327/352/333 +f 324/334/315 323/329/310 343/353/334 +f 319/335/316 318/330/311 338/354/335 +f 314/336/317 313/331/312 333/355/336 +f 309/337/318 308/332/313 328/356/337 +f 320/338/319 319/335/316 339/357/338 +f 315/339/320 314/336/317 334/358/339 +f 310/340/321 309/337/318 329/359/340 +f 340/341/322 339/357/338 360/360/341 +f 335/342/323 334/358/339 355/361/342 +f 330/343/324 329/359/340 350/362/343 +f 341/344/325 340/341/322 361/363/344 +f 336/345/326 335/342/323 356/364/345 +f 331/365/346 330/343/324 350/362/343 +f 326/348/329 325/366/347 346/367/348 +f 342/349/330 341/344/325 362/368/349 +f 337/350/331 336/345/326 357/369/350 +f 332/351/332 331/365/346 352/370/351 +f 327/352/333 326/348/329 347/371/352 +f 343/353/334 342/349/330 363/372/353 +f 338/354/335 337/350/331 358/373/354 +f 333/355/336 332/351/332 353/374/355 +f 328/356/337 327/352/333 348/375/356 +f 339/357/338 338/354/335 359/376/357 +f 334/358/339 333/355/336 354/377/358 +f 329/359/340 328/356/337 349/378/359 +f 350/362/343 349/378/359 369/379/360 +f 361/363/344 360/360/341 380/380/361 +f 356/364/345 355/361/342 375/381/362 +f 351/382/363 350/362/343 369/379/360 +f 346/367/348 345/383/364 365/384/365 +f 362/368/349 361/363/344 381/385/366 +f 357/369/350 356/364/345 376/386/367 +f 352/370/351 351/382/363 371/387/368 +f 347/371/352 346/367/348 366/388/369 +f 363/372/353 362/368/349 382/389/370 +f 358/373/354 357/369/350 377/390/371 +f 353/374/355 352/370/351 372/391/372 +f 348/375/356 347/371/352 367/392/373 +f 359/376/357 358/373/354 378/393/374 +f 354/377/358 353/374/355 373/394/375 +f 349/378/359 348/375/356 368/395/376 +f 360/360/341 359/376/357 379/396/377 +f 355/361/342 354/377/358 374/397/378 +f 39/398/379 19/399/21 38/51/22 +f 1/11/11 344/400/380 20/38/38 +f 39/398/379 38/51/22 58/52/44 +f 20/38/38 344/400/380 40/91/74 +f 39/398/379 58/52/44 77/78/61 +f 40/91/74 344/400/380 59/110/93 +f 39/398/379 77/78/61 96/97/80 +f 59/110/93 344/400/380 78/128/111 +f 39/398/379 96/97/80 115/115/98 +f 78/128/111 344/400/380 97/145/128 +f 39/398/379 115/115/98 134/150/133 +f 97/145/128 344/400/380 116/146/129 +f 39/398/379 134/150/133 153/169/152 +f 116/146/129 344/400/380 135/164/147 +f 39/398/379 153/169/152 172/203/186 +f 135/164/147 344/400/380 154/183/166 +f 39/398/379 172/203/186 191/221/204 +f 154/183/166 344/400/380 173/199/182 +f 39/398/379 191/221/204 210/238/221 +f 173/199/182 344/400/380 192/217/200 +f 39/398/379 210/238/221 229/257/240 +f 192/217/200 344/400/380 211/234/217 +f 39/398/379 229/257/240 248/401/259 +f 211/234/217 344/400/380 230/253/236 +f 39/398/379 248/401/259 267/402/277 +f 230/253/236 344/400/380 249/273/255 +f 249/273/255 344/400/380 268/292/273 +f 39/398/379 267/402/277 286/403/296 +f 268/292/273 344/400/380 287/311/292 +f 39/398/379 286/403/296 305/404/314 +f 287/311/292 344/400/380 306/347/328 +f 39/398/379 305/404/314 324/405/315 +f 306/347/328 344/400/380 325/366/347 +f 39/398/379 324/405/315 343/406/334 +f 325/366/347 344/400/380 345/383/364 +f 39/398/379 343/406/334 363/407/353 +f 345/383/364 344/400/380 364/408/381 +f 39/398/379 363/407/353 382/409/370 +f 364/408/381 344/400/380 1/11/11 +f 380/380/361 379/396/377 16/2/2 +f 375/381/362 374/397/378 12/4/4 +f 370/410/382 369/379/360 7/7/7 +f 365/384/365 364/408/381 2/10/10 +f 381/385/366 380/380/361 17/1/1 +f 376/386/367 375/381/362 13/15/15 +f 371/387/368 370/410/382 8/17/17 +f 366/388/369 365/384/365 3/19/19 +f 382/389/370 381/385/366 18/13/13 +f 377/390/371 376/386/367 13/15/15 +f 372/391/372 371/387/368 9/25/25 +f 367/392/373 366/388/369 4/27/27 +f 39/398/379 382/409/370 19/399/21 +f 378/393/374 377/390/371 14/23/23 +f 373/394/375 372/391/372 10/31/31 +f 368/395/376 367/392/373 5/33/33 +f 379/396/377 378/393/374 15/29/29 +f 374/397/378 373/394/375 11/5/5 +f 369/379/360 368/395/376 6/8/8 +f 16/2/2 35/35/35 36/3/3 +f 11/5/5 30/36/36 31/6/6 +f 6/8/8 25/37/37 26/9/9 +f 1/11/11 20/38/38 21/12/12 +f 17/1/1 36/3/3 37/14/14 +f 12/4/4 31/6/6 32/16/16 +f 7/7/7 26/9/9 27/18/18 +f 2/10/10 21/12/12 22/20/20 +f 18/13/13 37/14/14 38/22/22 +f 13/15/15 32/16/16 33/24/24 +f 8/17/17 27/18/18 28/26/26 +f 3/19/19 22/20/20 23/28/28 +f 14/23/23 33/24/24 34/30/30 +f 9/25/25 28/26/26 29/32/32 +f 4/27/27 23/28/28 24/34/34 +f 15/29/29 34/30/30 35/35/35 +f 10/31/31 29/32/32 30/36/36 +f 5/33/33 24/34/34 25/37/37 +f 20/38/38 40/91/74 41/39/39 +f 36/41/3 56/71/54 57/42/40 +f 31/44/6 51/72/55 52/45/41 +f 26/47/9 46/73/56 47/48/42 +f 21/12/12 41/39/39 42/50/43 +f 37/40/14 57/42/40 58/52/44 +f 32/43/16 52/45/41 53/54/45 +f 27/46/18 47/48/42 48/56/46 +f 22/49/20 42/50/43 43/58/47 +f 33/53/24 53/54/45 54/60/48 +f 28/55/26 48/56/46 49/62/49 +f 23/57/28 43/58/47 44/64/50 +f 34/59/30 54/60/48 55/66/51 +f 29/61/32 49/62/49 50/68/52 +f 24/63/34 44/64/50 45/70/53 +f 35/65/35 55/66/51 56/71/54 +f 30/67/36 50/68/52 51/72/55 +f 25/69/37 45/70/53 46/73/56 +f 56/71/54 75/88/71 76/74/57 +f 51/72/55 70/89/72 71/75/58 +f 46/73/56 65/90/73 66/76/59 +f 41/39/39 60/92/75 61/77/60 +f 57/42/40 76/74/57 77/78/61 +f 52/45/41 71/75/58 72/79/62 +f 47/48/42 66/76/59 67/80/63 +f 42/50/43 61/77/60 62/81/64 +f 53/54/45 72/79/62 73/82/65 +f 48/56/46 67/80/63 68/83/66 +f 43/58/47 62/81/64 63/84/67 +f 54/60/48 73/82/65 74/85/68 +f 49/62/49 68/83/66 69/86/69 +f 44/64/50 63/84/67 64/87/70 +f 55/66/51 74/85/68 75/88/71 +f 50/68/52 69/86/69 70/89/72 +f 45/70/53 64/87/70 65/90/73 +f 40/91/74 59/110/93 60/92/75 +f 75/88/71 94/107/90 95/93/76 +f 70/89/72 89/108/91 90/94/77 +f 65/90/73 84/109/92 85/95/78 +f 60/92/75 79/111/94 80/96/79 +f 76/74/57 95/93/76 96/97/80 +f 71/75/58 90/94/77 91/98/81 +f 66/76/59 85/95/78 86/99/82 +f 61/77/60 80/96/79 81/100/83 +f 72/79/62 91/98/81 92/101/84 +f 67/80/63 86/99/82 87/102/85 +f 62/81/64 81/100/83 82/103/86 +f 73/82/65 92/101/84 93/104/87 +f 68/83/66 87/102/85 88/105/88 +f 63/84/67 82/103/86 83/106/89 +f 74/85/68 93/104/87 94/107/90 +f 69/86/69 88/105/88 89/108/91 +f 64/87/70 83/106/89 84/109/92 +f 59/110/93 78/128/111 79/111/94 +f 89/108/91 108/126/109 109/112/95 +f 84/109/92 103/127/110 104/113/96 +f 79/111/94 98/129/112 99/114/97 +f 95/93/76 114/130/113 115/115/98 +f 90/94/77 109/112/95 110/116/99 +f 85/95/78 104/113/96 105/117/100 +f 80/96/79 99/114/97 100/118/101 +f 91/98/81 110/116/99 111/119/102 +f 86/99/82 105/117/100 106/120/103 +f 81/100/83 100/118/101 101/121/104 +f 92/101/84 111/119/102 112/122/105 +f 87/102/85 106/120/103 107/123/106 +f 82/103/86 101/121/104 102/124/107 +f 93/104/87 112/122/105 113/125/108 +f 88/105/88 107/123/106 108/126/109 +f 83/106/89 102/124/107 103/127/110 +f 78/128/111 97/145/128 98/129/112 +f 94/107/90 113/125/108 114/130/113 +f 118/135/118 99/114/97 117/131/114 +f 134/150/133 115/115/98 133/132/115 +f 129/136/119 110/116/99 128/133/116 +f 124/137/120 105/117/100 123/134/117 +f 119/138/121 100/118/101 118/135/118 +f 130/139/122 111/119/102 129/136/119 +f 125/140/123 106/120/103 124/137/120 +f 120/141/124 101/121/104 119/138/121 +f 131/142/125 112/122/105 130/139/122 +f 126/143/126 107/123/106 125/140/123 +f 121/144/127 102/124/107 120/141/124 +f 132/147/130 113/125/108 131/142/125 +f 127/148/131 108/126/109 126/143/126 +f 122/149/132 103/127/110 121/144/127 +f 117/131/114 98/129/112 116/146/129 +f 133/132/115 114/130/113 132/147/130 +f 128/133/116 109/112/95 127/148/131 +f 123/134/117 104/113/96 122/149/132 +f 153/169/152 134/150/133 152/151/134 +f 148/155/138 129/136/119 147/152/135 +f 143/156/139 124/137/120 142/153/136 +f 138/157/140 119/138/121 137/154/137 +f 149/158/141 130/139/122 148/155/138 +f 144/159/142 125/140/123 143/156/139 +f 139/160/143 120/141/124 138/157/140 +f 150/161/144 131/142/125 149/158/141 +f 145/162/145 126/143/126 144/159/142 +f 140/163/146 121/144/127 139/160/143 +f 151/165/148 132/147/130 150/161/144 +f 146/166/149 127/148/131 145/162/145 +f 141/167/150 122/149/132 140/163/146 +f 136/168/151 117/131/114 135/164/147 +f 152/151/134 133/132/115 151/165/148 +f 147/152/135 128/133/116 146/166/149 +f 142/153/136 123/134/117 141/167/150 +f 137/154/137 118/135/118 136/168/151 +f 172/203/186 153/169/152 171/170/153 +f 167/174/157 148/155/138 166/171/154 +f 162/175/158 143/156/139 161/172/155 +f 157/176/159 138/157/140 156/173/156 +f 168/177/160 149/158/141 167/174/157 +f 163/178/161 144/159/142 162/175/158 +f 158/179/162 139/160/143 157/176/159 +f 169/180/163 150/161/144 168/177/160 +f 164/181/164 145/162/145 163/178/161 +f 159/194/177 140/163/146 158/179/162 +f 170/184/167 151/165/148 169/180/163 +f 165/185/168 146/166/149 164/181/164 +f 140/163/146 159/194/177 160/182/165 +f 155/186/169 136/168/151 154/183/166 +f 171/170/153 152/151/134 170/184/167 +f 166/171/154 147/152/135 165/185/168 +f 161/172/155 142/153/136 160/182/165 +f 156/173/156 137/154/137 155/186/169 +f 186/207/190 167/174/157 185/187/170 +f 181/191/174 162/175/158 180/188/171 +f 176/192/175 157/176/159 175/189/172 +f 167/174/157 186/207/190 187/190/173 +f 182/193/176 163/178/161 181/191/174 +f 177/195/178 158/179/162 176/192/175 +f 188/196/179 169/180/163 187/190/173 +f 183/197/180 164/181/164 182/193/176 +f 178/212/195 159/194/177 177/195/178 +f 189/200/183 170/184/167 188/196/179 +f 184/201/184 165/185/168 183/197/180 +f 159/194/177 178/212/195 179/198/181 +f 174/202/185 155/186/169 173/199/182 +f 190/204/187 171/170/153 189/200/183 +f 185/187/170 166/171/154 184/201/184 +f 180/188/171 161/172/155 179/198/181 +f 175/189/172 156/173/156 174/202/185 +f 191/221/204 172/203/186 190/204/187 +f 200/209/192 181/191/174 199/205/188 +f 195/210/193 176/192/175 194/206/189 +f 186/207/190 205/224/207 206/208/191 +f 201/211/194 182/193/176 200/209/192 +f 196/213/196 177/195/178 195/210/193 +f 207/214/197 188/196/179 206/208/191 +f 202/215/198 183/197/180 201/211/194 +f 197/229/212 178/212/195 196/213/196 +f 208/218/201 189/200/183 207/214/197 +f 203/219/202 184/201/184 202/215/198 +f 178/212/195 197/229/212 198/216/199 +f 193/220/203 174/202/185 192/217/200 +f 209/222/205 190/204/187 208/218/201 +f 204/223/206 185/187/170 203/219/202 +f 199/205/188 180/188/171 198/216/199 +f 194/206/189 175/189/172 193/220/203 +f 210/238/221 191/221/204 209/222/205 +f 205/224/207 186/207/190 204/223/206 +f 205/224/207 224/243/226 225/225/208 +f 220/228/211 201/211/194 219/226/209 +f 215/230/213 196/213/196 214/227/210 +f 226/231/214 207/214/197 225/225/208 +f 221/232/215 202/215/198 220/228/211 +f 216/248/231 197/229/212 215/230/213 +f 227/235/218 208/218/201 226/231/214 +f 222/236/219 203/219/202 221/232/215 +f 197/229/212 216/248/231 217/233/216 +f 212/237/220 193/220/203 211/234/217 +f 228/239/222 209/222/205 227/235/218 +f 223/240/223 204/223/206 222/236/219 +f 218/241/224 199/205/188 217/233/216 +f 213/242/225 194/206/189 212/237/220 +f 229/257/240 210/238/221 228/239/222 +f 224/243/226 205/224/207 223/240/223 +f 219/226/209 200/209/192 218/241/224 +f 214/227/210 195/210/193 213/242/225 +f 224/243/226 243/262/245 244/244/227 +f 239/247/230 220/228/211 238/245/228 +f 234/249/232 215/230/213 233/246/229 +f 245/250/233 226/231/214 244/244/227 +f 240/251/234 221/232/215 239/247/230 +f 235/267/250 216/248/231 234/249/232 +f 246/269/237 227/235/218 245/250/233 +f 241/255/238 222/236/219 240/251/234 +f 216/248/231 235/267/250 236/252/235 +f 231/256/239 212/237/220 230/253/236 +f 247/258/241 228/239/222 246/254/237 +f 242/259/242 223/240/223 241/255/238 +f 237/260/243 218/241/224 236/252/235 +f 232/261/244 213/242/225 231/256/239 +f 248/401/259 229/257/240 247/258/241 +f 243/262/245 224/243/226 242/259/242 +f 238/245/228 219/226/209 237/260/243 +f 233/246/229 214/227/210 232/261/244 +f 243/262/245 262/298/279 263/263/246 +f 258/266/249 239/247/230 257/264/247 +f 253/268/251 234/249/232 252/265/248 +f 264/270/252 245/250/233 263/263/246 +f 259/271/253 240/251/234 258/266/249 +f 254/287/268 235/267/250 253/268/251 +f 265/275/256 246/269/237 264/270/252 +f 260/276/257 241/255/238 259/271/253 +f 235/267/250 254/287/268 255/272/254 +f 250/277/258 231/256/239 249/273/255 +f 266/279/260 247/274/241 265/275/256 +f 261/280/261 242/259/242 260/276/257 +f 256/281/262 237/260/243 255/272/254 +f 251/282/263 232/261/244 250/277/258 +f 267/296/277 248/278/259 266/279/260 +f 262/298/279 243/262/245 261/280/261 +f 257/264/247 238/245/228 256/281/262 +f 252/265/248 233/246/229 251/282/263 +f 277/286/267 258/266/249 276/283/264 +f 272/288/269 253/268/251 271/284/265 +f 283/289/270 264/270/252 282/285/266 +f 278/290/271 259/271/253 277/286/267 +f 273/306/287 254/287/268 272/288/269 +f 284/293/274 265/275/256 283/289/270 +f 279/294/275 260/276/257 278/290/271 +f 254/287/268 273/306/287 274/291/272 +f 269/295/276 250/277/258 268/292/273 +f 285/297/278 266/279/260 284/293/274 +f 280/299/280 261/280/261 279/294/275 +f 275/300/281 256/281/262 274/291/272 +f 270/301/282 251/282/263 269/295/276 +f 286/315/296 267/296/277 285/297/278 +f 281/302/283 262/298/279 280/299/280 +f 276/283/264 257/264/247 275/300/281 +f 271/284/265 252/265/248 270/301/282 +f 282/285/266 263/263/246 281/302/283 +f 291/307/288 272/288/269 290/303/284 +f 302/308/289 283/289/270 301/304/285 +f 297/309/290 278/290/271 296/305/286 +f 292/324/305 273/306/287 291/307/288 +f 303/312/293 284/293/274 302/308/289 +f 298/313/294 279/294/275 297/309/290 +f 273/306/287 292/324/305 293/310/291 +f 288/314/295 269/295/276 287/311/292 +f 304/316/297 285/297/278 303/312/293 +f 299/317/298 280/299/280 298/313/294 +f 294/318/299 275/300/281 293/310/291 +f 289/319/300 270/301/282 288/314/295 +f 305/333/314 286/315/296 304/316/297 +f 300/320/301 281/302/283 299/317/298 +f 295/321/302 276/283/264 294/318/299 +f 290/303/284 271/284/265 289/319/300 +f 301/304/285 282/285/266 300/320/301 +f 296/305/286 277/286/267 295/321/302 +f 301/304/285 320/338/319 321/322/303 +f 296/305/286 315/339/320 316/323/304 +f 291/307/288 310/340/321 311/325/306 +f 302/308/289 321/322/303 322/326/307 +f 297/309/290 316/323/304 317/327/308 +f 312/346/327 293/310/291 311/325/306 +f 287/311/292 306/347/328 307/328/309 +f 303/312/293 322/326/307 323/329/310 +f 298/313/294 317/327/308 318/330/311 +f 293/310/291 312/346/327 313/331/312 +f 288/314/295 307/328/309 308/332/313 +f 304/316/297 323/329/310 324/334/315 +f 299/317/298 318/330/311 319/335/316 +f 294/318/299 313/331/312 314/336/317 +f 289/319/300 308/332/313 309/337/318 +f 300/320/301 319/335/316 320/338/319 +f 295/321/302 314/336/317 315/339/320 +f 290/303/284 309/337/318 310/340/321 +f 320/338/319 339/357/338 340/341/322 +f 315/339/320 334/358/339 335/342/323 +f 310/340/321 329/359/340 330/343/324 +f 321/322/303 340/341/322 341/344/325 +f 316/323/304 335/342/323 336/345/326 +f 331/365/346 312/346/327 330/343/324 +f 306/347/328 325/366/347 326/348/329 +f 322/326/307 341/344/325 342/349/330 +f 317/327/308 336/345/326 337/350/331 +f 312/346/327 331/365/346 332/351/332 +f 307/328/309 326/348/329 327/352/333 +f 323/329/310 342/349/330 343/353/334 +f 318/330/311 337/350/331 338/354/335 +f 313/331/312 332/351/332 333/355/336 +f 308/332/313 327/352/333 328/356/337 +f 319/335/316 338/354/335 339/357/338 +f 314/336/317 333/355/336 334/358/339 +f 309/337/318 328/356/337 329/359/340 +f 339/357/338 359/376/357 360/360/341 +f 334/358/339 354/377/358 355/361/342 +f 329/359/340 349/378/359 350/362/343 +f 340/341/322 360/360/341 361/363/344 +f 335/342/323 355/361/342 356/364/345 +f 351/382/363 331/365/346 350/362/343 +f 325/366/347 345/383/364 346/367/348 +f 341/344/325 361/363/344 362/368/349 +f 336/345/326 356/364/345 357/369/350 +f 331/365/346 351/382/363 352/370/351 +f 326/348/329 346/367/348 347/371/352 +f 342/349/330 362/368/349 363/372/353 +f 337/350/331 357/369/350 358/373/354 +f 332/351/332 352/370/351 353/374/355 +f 327/352/333 347/371/352 348/375/356 +f 338/354/335 358/373/354 359/376/357 +f 333/355/336 353/374/355 354/377/358 +f 328/356/337 348/375/356 349/378/359 +f 349/378/359 368/395/376 369/379/360 +f 360/360/341 379/396/377 380/380/361 +f 355/361/342 374/397/378 375/381/362 +f 370/410/382 351/382/363 369/379/360 +f 345/383/364 364/408/381 365/384/365 +f 361/363/344 380/380/361 381/385/366 +f 356/364/345 375/381/362 376/386/367 +f 351/382/363 370/410/382 371/387/368 +f 346/367/348 365/384/365 366/388/369 +f 362/368/349 381/385/366 382/389/370 +f 357/369/350 376/386/367 377/390/371 +f 352/370/351 371/387/368 372/391/372 +f 347/371/352 366/388/369 367/392/373 +f 358/373/354 377/390/371 378/393/374 +f 353/374/355 372/391/372 373/394/375 +f 348/375/356 367/392/373 368/395/376 +f 359/376/357 378/393/374 379/396/377 +f 354/377/358 373/394/375 374/397/378 +f 17/1/1 380/380/361 16/2/2 +f 374/397/378 11/5/5 12/4/4 +f 369/379/360 6/8/8 7/7/7 +f 364/408/381 1/11/11 2/10/10 +f 18/13/13 381/385/366 17/1/1 +f 375/381/362 12/4/4 13/15/15 +f 370/410/382 7/7/7 8/17/17 +f 365/384/365 2/10/10 3/19/19 +f 19/21/21 382/389/370 18/13/13 +f 14/23/23 377/390/371 13/15/15 +f 371/387/368 8/17/17 9/25/25 +f 366/388/369 3/19/19 4/27/27 +f 15/29/29 378/393/374 14/23/23 +f 372/391/372 9/25/25 10/31/31 +f 367/392/373 4/27/27 5/33/33 +f 16/2/2 379/396/377 15/29/29 +f 373/394/375 10/31/31 11/5/5 +f 368/395/376 5/33/33 6/8/8 diff --git a/QtDataVisualization/Data/mesh/narrowarrow.obj b/QtDataVisualization/Data/mesh/narrowarrow.obj new file mode 100644 index 0000000..481fc1d --- /dev/null +++ b/QtDataVisualization/Data/mesh/narrowarrow.obj @@ -0,0 +1,413 @@ +# Blender v2.69 (sub 0) OBJ File: '' +# www.blender.org +v 0.000000 0.986570 0.000000 +v 0.000000 0.500000 -0.218399 +v -0.042608 0.500000 -0.214202 +v -0.083578 0.500000 -0.201774 +v -0.121336 0.500000 -0.181592 +v -0.154431 0.500000 -0.154431 +v -0.181592 0.500000 -0.121336 +v -0.201774 0.500000 -0.083578 +v -0.214202 0.500000 -0.042608 +v -0.218399 0.500000 -0.000000 +v -0.214202 0.500000 0.042607 +v -0.201774 0.500000 0.083578 +v -0.181592 0.500000 0.121336 +v -0.154431 0.500000 0.154431 +v -0.121336 0.500000 0.181592 +v -0.083578 0.500000 0.201774 +v -0.042607 0.500000 0.214202 +v 0.000000 0.500000 0.218399 +v 0.042608 0.500000 0.214202 +v 0.083578 0.500000 0.201774 +v 0.121336 0.500000 0.181592 +v 0.154431 0.500000 0.154431 +v 0.181592 0.500000 0.121336 +v 0.201774 0.500000 0.083577 +v 0.214202 0.500000 0.042607 +v 0.218399 0.500000 -0.000000 +v 0.214202 0.500000 -0.042608 +v 0.201774 0.500000 -0.083578 +v 0.181592 0.500000 -0.121336 +v 0.154431 0.500000 -0.154432 +v 0.121336 0.500000 -0.181592 +v 0.083577 0.500000 -0.201774 +v 0.042607 0.500000 -0.214202 +v 0.000000 0.000000 0.000000 +v 0.000000 0.000000 0.000000 +v -0.000000 0.500000 -0.126422 +v -0.024664 0.500000 -0.123993 +v -0.048380 0.500000 -0.116799 +v -0.070236 0.500000 -0.105116 +v -0.089394 0.500000 -0.089394 +v -0.105116 0.500000 -0.070236 +v -0.116799 0.500000 -0.048380 +v -0.123993 0.500000 -0.024664 +v -0.126422 0.500000 -0.000000 +v -0.123993 0.500000 0.024664 +v -0.116799 0.500000 0.048380 +v -0.105116 0.500000 0.070236 +v -0.089394 0.500000 0.089394 +v -0.070236 0.500000 0.105116 +v -0.048380 0.500000 0.116799 +v -0.024664 0.500000 0.123993 +v 0.000000 0.500000 0.126422 +v 0.024664 0.500000 0.123993 +v 0.048380 0.500000 0.116799 +v 0.070236 0.500000 0.105116 +v 0.089394 0.500000 0.089394 +v 0.105116 0.500000 0.070236 +v 0.116799 0.500000 0.048380 +v 0.123993 0.500000 0.024664 +v 0.126422 0.500000 -0.000000 +v 0.123993 0.500000 -0.024664 +v 0.116799 0.500000 -0.048380 +v 0.105116 0.500000 -0.070237 +v 0.089394 0.500000 -0.089394 +v 0.070236 0.500000 -0.105116 +v 0.048380 0.500000 -0.116799 +v 0.024664 0.500000 -0.123993 +v 0.126422 -0.983070 -0.000000 +v 0.123993 -0.983070 0.024664 +v -0.048380 -0.983070 -0.116799 +v -0.024664 -0.983070 -0.123993 +v -0.070236 -0.983070 0.105116 +v -0.089394 -0.983070 0.089394 +v 0.116799 -0.983070 0.048380 +v 0.105116 -0.983070 0.070236 +v -0.105116 -0.983070 0.070236 +v -0.116799 -0.983070 0.048380 +v 0.024664 -0.983070 -0.123993 +v 0.048380 -0.983070 -0.116799 +v 0.089394 -0.983070 0.089394 +v 0.070236 -0.983070 0.105116 +v -0.123993 -0.983070 0.024664 +v -0.126422 -0.983070 -0.000000 +v 0.070236 -0.983070 -0.105116 +v 0.089394 -0.983070 -0.089394 +v 0.048380 -0.983070 0.116799 +v 0.024664 -0.983070 0.123993 +v -0.123993 -0.983070 -0.024664 +v -0.116799 -0.983070 -0.048380 +v 0.105116 -0.983070 -0.070237 +v 0.116799 -0.983070 -0.048380 +v -0.105116 -0.983070 -0.070236 +v -0.089394 -0.983070 -0.089394 +v 0.000000 -0.983070 0.126422 +v -0.024664 -0.983070 0.123993 +v 0.123993 -0.983070 -0.024664 +v -0.070236 -0.983070 -0.105116 +v -0.048380 -0.983070 0.116799 +v -0.000000 -0.983070 -0.126422 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vt 0.597545 0.990393 +vt 0.402456 0.990393 +vt 0.691342 0.961940 +vt 0.777785 0.915735 +vt 0.853553 0.853553 +vt 0.915735 0.777785 +vt 0.961940 0.691342 +vt 0.990393 0.597545 +vt 1.000000 0.500000 +vt 0.990393 0.402455 +vt 0.961940 0.308658 +vt 0.915735 0.222215 +vt 0.853553 0.146447 +vt 0.777785 0.084265 +vt 0.691342 0.038060 +vt 0.597545 0.009607 +vt 0.308659 0.961940 +vt 0.222215 0.915735 +vt 0.146447 0.853554 +vt 0.308658 0.038060 +vt 0.500000 0.000000 +vt 0.402455 0.009607 +vt 0.222215 0.084265 +vt 0.146446 0.146447 +vt 0.084265 0.222215 +vt 0.009607 0.402455 +vt 0.038060 0.308659 +vt 0.009607 0.597546 +vt 0.000000 0.500000 +vt 0.038060 0.691342 +vt 0.084266 0.777786 +vn -0.089495 0.407852 -0.908651 +vn -0.265044 0.407852 -0.873733 +vn -0.430408 0.407852 -0.805236 +vn -0.579231 0.407852 -0.705796 +vn -0.705796 0.407852 -0.579232 +vn -0.805237 0.407852 -0.430408 +vn -0.873733 0.407852 -0.265043 +vn -0.908651 0.407852 -0.089495 +vn -0.908652 0.407852 0.089494 +vn -0.873732 0.407852 0.265044 +vn -0.805237 0.407852 0.430407 +vn -0.705796 0.407852 0.579232 +vn -0.579231 0.407852 0.705796 +vn -0.430408 0.407852 0.805237 +vn -0.265044 0.407852 0.873733 +vn -0.089494 0.407852 0.908652 +vn 0.089495 0.407852 0.908651 +vn 0.265044 0.407852 0.873732 +vn 0.430408 0.407852 0.805237 +vn 0.579232 0.407852 0.705796 +vn 0.705796 0.407852 0.579231 +vn 0.805237 0.407852 0.430406 +vn 0.873733 0.407852 0.265044 +vn 0.908652 0.407852 0.089493 +vn 0.908651 0.407852 -0.089496 +vn 0.873732 0.407852 -0.265045 +vn 0.805236 0.407852 -0.430409 +vn 0.705795 0.407852 -0.579232 +vn 0.579231 0.407852 -0.705796 +vn 0.430407 0.407852 -0.805237 +vn 0.265042 0.407852 -0.873733 +vn 0.089494 0.407852 -0.908652 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 -1.000000 0.000062 +vn -0.290284 0.000000 0.956940 +vn -0.098017 0.000000 0.995185 +vn -0.634393 0.000000 -0.773010 +vn -0.773010 0.000000 -0.634393 +vn 0.956940 0.000000 -0.290286 +vn 0.881921 0.000000 -0.471398 +vn -0.881922 0.000000 -0.471396 +vn -0.956940 0.000000 -0.290285 +vn 0.098017 0.000000 0.995185 +vn 0.290285 0.000000 0.956940 +vn 0.773010 0.000000 -0.634394 +vn 0.634392 0.000000 -0.773011 +vn -0.995185 0.000000 -0.098017 +vn -0.995185 0.000000 0.098017 +vn 0.471397 0.000000 0.881921 +vn 0.634394 0.000000 0.773010 +vn 0.471395 0.000000 -0.881922 +vn 0.290283 0.000000 -0.956941 +vn 0.098016 0.000000 -0.995185 +vn -0.956940 0.000000 0.290285 +vn -0.881922 0.000000 0.471396 +vn 0.773011 0.000000 0.634393 +vn 0.881922 0.000000 0.471396 +vn -0.773010 0.000000 0.634393 +vn -0.634394 0.000000 0.773010 +vn -0.471397 0.000000 0.881921 +vn -0.098016 0.000000 -0.995185 +vn -0.290284 0.000000 -0.956940 +vn -0.471397 0.000000 -0.881921 +vn 0.956941 0.000000 0.290284 +vn 0.995185 0.000000 0.098016 +vn 0.995185 0.000000 -0.098018 +vn 0.000000 -1.000000 0.000001 +vn 0.000000 -1.000000 0.000018 +vn 0.000000 -1.000000 -0.000013 +vn 0.000000 -1.000000 0.000011 +vn 0.000000 -1.000000 0.000002 +vn 0.000000 -1.000000 -0.000031 +vn 0.000000 -1.000000 0.000031 +vn 0.000000 -1.000000 -0.000021 +vn 0.000000 -1.000000 -0.000016 +vn 0.000000 -1.000000 -0.000005 +vn 0.000000 -1.000000 0.000003 +vn -0.098015 0.000000 0.995185 +vn -0.773011 0.000000 -0.634393 +vn -0.881921 0.000000 -0.471396 +vn 0.773009 0.000000 -0.634394 +vn 0.098017 0.000000 -0.995185 +vn -0.634393 0.000000 0.773011 +vn -0.098018 0.000000 -0.995185 +vn -0.290285 0.000000 -0.956940 +s off +f 1/1/1 2/2/1 3/3/1 +f 1/1/2 3/2/2 4/3/2 +f 1/1/3 4/2/3 5/3/3 +f 1/1/4 5/2/4 6/3/4 +f 1/1/5 6/2/5 7/3/5 +f 1/1/6 7/2/6 8/3/6 +f 1/1/7 8/2/7 9/3/7 +f 1/1/8 9/2/8 10/3/8 +f 1/1/9 10/2/9 11/3/9 +f 1/1/10 11/2/10 12/3/10 +f 1/1/11 12/2/11 13/3/11 +f 1/1/12 13/2/12 14/3/12 +f 1/1/13 14/2/13 15/3/13 +f 1/1/14 15/2/14 16/3/14 +f 1/1/15 16/2/15 17/3/15 +f 1/1/16 17/2/16 18/3/16 +f 1/1/17 18/2/17 19/3/17 +f 1/1/18 19/2/18 20/3/18 +f 1/1/19 20/2/19 21/3/19 +f 1/1/20 21/2/20 22/3/20 +f 1/1/21 22/2/21 23/3/21 +f 1/1/22 23/2/22 24/3/22 +f 1/1/23 24/2/23 25/3/23 +f 1/1/24 25/2/24 26/3/24 +f 1/1/25 26/2/25 27/3/25 +f 1/1/26 27/2/26 28/3/26 +f 1/1/27 28/2/27 29/3/27 +f 1/1/28 29/2/28 30/3/28 +f 1/1/29 30/2/29 31/3/29 +f 1/1/30 31/2/30 32/3/30 +f 1/1/31 32/2/31 33/3/31 +f 1/1/32 33/2/32 2/3/32 +f 24/1/33 23/2/33 58/4/33 +f 13/1/33 12/2/33 47/4/33 +f 2/1/33 33/2/33 36/4/33 +f 23/1/33 22/2/33 57/4/33 +f 12/1/33 11/2/33 46/4/33 +f 33/1/33 32/2/33 67/4/33 +f 22/1/33 21/2/33 56/4/33 +f 11/1/33 10/2/33 45/4/33 +f 32/1/33 31/2/33 66/4/33 +f 21/1/33 20/2/33 55/4/33 +f 10/1/33 9/2/33 44/4/33 +f 31/1/33 30/2/33 65/4/33 +f 20/1/33 19/2/33 54/4/33 +f 9/1/33 8/2/33 43/4/33 +f 30/1/33 29/2/33 64/4/33 +f 19/1/33 18/2/33 53/4/33 +f 3/1/33 2/2/33 37/4/33 +f 8/1/33 7/2/33 42/4/33 +f 29/1/33 28/2/33 63/4/33 +f 7/1/33 6/2/33 41/4/33 +f 18/1/33 17/2/33 52/4/33 +f 28/1/33 27/2/33 62/4/33 +f 6/1/33 5/2/33 40/4/33 +f 17/1/33 16/2/33 51/4/33 +f 27/1/33 26/2/33 61/4/33 +f 5/1/33 4/2/33 39/4/33 +f 16/1/33 15/2/33 50/4/33 +f 26/1/33 25/2/33 60/4/33 +f 4/1/33 3/2/33 38/4/33 +f 15/1/33 14/2/33 49/4/33 +f 25/1/33 24/2/33 59/4/33 +f 14/1/33 13/2/33 48/4/33 +f 81/5/34 86/6/34 80/7/34 +f 51/1/35 50/2/35 95/4/35 +f 52/1/36 51/2/36 94/4/36 +f 40/1/37 39/2/37 93/4/37 +f 41/1/38 40/2/38 92/4/38 +f 62/1/39 61/2/39 91/4/39 +f 63/1/40 62/2/40 90/4/40 +f 42/1/41 41/2/41 89/4/41 +f 43/1/42 42/2/42 88/4/42 +f 53/1/43 52/2/43 87/4/43 +f 54/1/44 53/2/44 86/4/44 +f 64/1/45 63/2/45 85/4/45 +f 65/1/46 64/2/46 84/4/46 +f 44/1/47 43/2/47 83/4/47 +f 45/1/48 44/2/48 82/4/48 +f 55/1/49 54/2/49 81/4/49 +f 56/1/50 55/2/50 80/4/50 +f 66/1/51 65/2/51 79/4/51 +f 67/1/52 66/2/52 78/4/52 +f 36/1/53 67/2/53 99/4/53 +f 46/1/54 45/2/54 77/4/54 +f 47/1/55 46/2/55 76/4/55 +f 57/1/56 56/2/56 75/4/56 +f 58/1/57 57/2/57 74/4/57 +f 48/1/58 47/2/58 73/4/58 +f 49/1/59 48/2/59 72/4/59 +f 50/1/60 49/2/60 98/4/60 +f 37/1/61 36/2/61 71/4/61 +f 38/1/62 37/2/62 70/4/62 +f 39/1/63 38/2/63 97/4/63 +f 59/1/64 58/2/64 69/4/64 +f 60/1/65 59/2/65 68/4/65 +f 61/1/66 60/2/66 96/4/66 +f 23/2/33 57/3/33 58/4/33 +f 12/2/33 46/3/33 47/4/33 +f 33/2/33 67/3/33 36/4/33 +f 22/2/33 56/3/33 57/4/33 +f 11/2/33 45/3/33 46/4/33 +f 32/2/67 66/3/67 67/4/67 +f 21/2/33 55/3/33 56/4/33 +f 10/2/33 44/3/33 45/4/33 +f 31/2/33 65/3/33 66/4/33 +f 20/2/33 54/3/33 55/4/33 +f 9/2/33 43/3/33 44/4/33 +f 30/2/33 64/3/33 65/4/33 +f 19/2/33 53/3/33 54/4/33 +f 8/2/33 42/3/33 43/4/33 +f 29/2/33 63/3/33 64/4/33 +f 18/2/33 52/3/33 53/4/33 +f 2/2/33 36/3/33 37/4/33 +f 7/2/33 41/3/33 42/4/33 +f 28/2/33 62/3/33 63/4/33 +f 6/2/33 40/3/33 41/4/33 +f 17/2/33 51/3/33 52/4/33 +f 27/2/33 61/3/33 62/4/33 +f 5/2/33 39/3/33 40/4/33 +f 16/2/67 50/3/67 51/4/67 +f 26/2/33 60/3/33 61/4/33 +f 4/2/33 38/3/33 39/4/33 +f 15/2/33 49/3/33 50/4/33 +f 25/2/33 59/3/33 60/4/33 +f 3/2/33 37/3/33 38/4/33 +f 14/2/33 48/3/33 49/4/33 +f 24/2/33 58/3/33 59/4/33 +f 13/2/33 47/3/33 48/4/33 +f 86/6/33 87/8/33 80/7/33 +f 87/8/33 94/9/33 80/7/33 +f 94/9/33 95/10/33 80/7/33 +f 95/10/68 98/11/68 80/7/68 +f 98/11/69 72/12/69 80/7/69 +f 72/12/70 73/13/70 80/7/70 +f 73/13/33 76/14/33 80/7/33 +f 76/14/33 77/15/33 80/7/33 +f 77/15/33 82/16/33 80/7/33 +f 82/16/33 83/17/33 80/7/33 +f 83/17/33 88/18/33 80/7/33 +f 88/18/33 89/19/33 80/7/33 +f 89/19/33 92/20/33 93/21/33 +f 80/7/71 89/19/71 93/21/71 +f 75/22/33 80/7/33 93/21/33 +f 74/23/33 75/22/33 93/21/33 +f 69/24/33 74/23/33 93/21/33 +f 71/25/72 97/26/72 70/27/72 +f 71/25/73 93/21/73 97/26/73 +f 99/28/74 93/21/74 71/25/74 +f 78/29/33 93/21/33 99/28/33 +f 79/30/33 93/21/33 78/29/33 +f 85/31/73 79/30/73 84/32/73 +f 85/31/33 93/21/33 79/30/33 +f 91/33/75 85/31/75 90/34/75 +f 91/33/33 93/21/33 85/31/33 +f 96/35/33 68/36/33 91/33/33 +f 68/36/76 69/24/76 93/21/76 +f 91/33/77 68/36/77 93/21/77 +f 50/2/35 98/3/35 95/4/35 +f 51/2/78 95/3/78 94/4/78 +f 39/2/37 97/3/37 93/4/37 +f 40/2/79 93/3/79 92/4/79 +f 61/2/39 96/3/39 91/4/39 +f 62/2/40 91/3/40 90/4/40 +f 41/2/80 92/3/80 89/4/80 +f 42/2/42 89/3/42 88/4/42 +f 52/2/43 94/3/43 87/4/43 +f 53/2/44 87/3/44 86/4/44 +f 63/2/81 90/3/81 85/4/81 +f 64/2/46 85/3/46 84/4/46 +f 43/2/47 88/3/47 83/4/47 +f 44/2/48 83/3/48 82/4/48 +f 54/2/49 86/3/49 81/4/49 +f 55/2/50 81/3/50 80/4/50 +f 65/2/51 84/3/51 79/4/51 +f 66/2/52 79/3/52 78/4/52 +f 67/2/82 78/3/82 99/4/82 +f 45/2/54 82/3/54 77/4/54 +f 46/2/55 77/3/55 76/4/55 +f 56/2/56 80/3/56 75/4/56 +f 57/2/57 75/3/57 74/4/57 +f 47/2/58 76/3/58 73/4/58 +f 48/2/83 73/3/83 72/4/83 +f 49/2/60 72/3/60 98/4/60 +f 36/2/84 99/3/84 71/4/84 +f 37/2/85 71/3/85 70/4/85 +f 38/2/63 70/3/63 97/4/63 +f 58/2/64 74/3/64 69/4/64 +f 59/2/65 69/3/65 68/4/65 +f 60/2/66 68/3/66 96/4/66 diff --git a/QtDataVisualization/MagneticOfSun.py b/QtDataVisualization/MagneticOfSun.py new file mode 100644 index 0000000..d4562f5 --- /dev/null +++ b/QtDataVisualization/MagneticOfSun.py @@ -0,0 +1,251 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/4 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: MagneticOfSun +@description: +""" + +############################################################################# +## +## Copyright (C) 2014 Riverbank Computing Limited. +## Copyright (C) 2014 Digia Plc +## All rights reserved. +## For any questions to Digia, please use contact form at http://qt.digia.com +## +## This file is part of the QtDataVisualization module. +## +## Licensees holding valid Qt Enterprise licenses may use this file in +## accordance with the Qt Enterprise License Agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and Digia. +## +## If you have questions regarding the use of this file, please use +## contact form at http://qt.digia.com +## +############################################################################# + + +import math + +from PyQt5.QtCore import QFileInfo, QObject, QSize, Qt, QTimer, QLocale +from PyQt5.QtDataVisualization import (Q3DCamera, Q3DScatter, Q3DTheme, + QAbstract3DGraph, QAbstract3DSeries, QScatter3DSeries, + QScatterDataItem) +from PyQt5.QtGui import QColor, QLinearGradient, QQuaternion, QVector3D +from PyQt5.QtWidgets import (QApplication, QHBoxLayout, QLabel, QPushButton, + QSlider, QSizePolicy, QVBoxLayout, QWidget) + +country = QLocale.system().country() +if country in (QLocale.China, QLocale.HongKong, QLocale.Taiwan): + Tr = { + 'Item rotations example - Magnetic field of the sun': '项目旋转示例-太阳磁场', + 'Toggle animation': '开启/关闭 动画', + 'Toggle Sun': '显示/隐藏 太阳', + 'Field Lines (1 - 128):': '磁场线条数(1 - 128):', + 'Arrows per line (8 - 32):': '箭头数(8 - 32):' + } +else: + Tr = {} + + +class ScatterDataModifier(QObject): + verticalRange = 8.0 + horizontalRange = verticalRange + ellipse_a = horizontalRange / 3.0 + ellipse_b = verticalRange + doublePi = math.pi * 2.0 + radiansToDegrees = 360.0 / doublePi + animationFrames = 30.0 # 动画帧数 + + def __init__(self, scatter): + super(ScatterDataModifier, self).__init__() + + mesh_dir = QFileInfo(__file__).absolutePath() + '/Data/mesh' + + self.m_graph = scatter # Q3DScatter 对象实例 + self.m_rotationTimer = QTimer() + self.m_fieldLines = 12 # 初始磁场线数量 + self.m_arrowsPerLine = 16 # 初始箭头数 + self.m_magneticField = QScatter3DSeries() # 磁场线三维散点图 + self.m_sun = QScatter3DSeries() # 太阳三维散点图 + self.m_angleOffset = 0.0 # 角度偏移 + self.m_angleStep = self.doublePi / self.m_arrowsPerLine / self.animationFrames + + # 设置阴影质量 + self.m_graph.setShadowQuality(QAbstract3DGraph.ShadowQualityNone) + # 设置当前场景中的激活的相机预设值 + self.m_graph.scene().activeCamera().setCameraPreset( + Q3DCamera.CameraPresetFront) + + # Magnetic field lines use custom narrow arrow. + # 磁力线使用自定义窄箭头。 + self.m_magneticField.setItemSize(0.2) + self.m_magneticField.setMesh(QAbstract3DSeries.MeshUserDefined) + self.m_magneticField.setUserDefinedMesh(mesh_dir + '/narrowarrow.obj') + # 设置渐变颜色 + fieldGradient = QLinearGradient(0, 0, 16, 1024) + fieldGradient.setColorAt(0.0, Qt.black) + fieldGradient.setColorAt(1.0, Qt.white) + self.m_magneticField.setBaseGradient(fieldGradient) + self.m_magneticField.setColorStyle(Q3DTheme.ColorStyleRangeGradient) + + # For 'sun' we use a custom large sphere. + # 使用一个自定义的球体代表太阳 + self.m_sun.setItemSize(0.2) + self.m_sun.setName("Sun") + self.m_sun.setItemLabelFormat("@seriesName") + self.m_sun.setMesh(QAbstract3DSeries.MeshUserDefined) + self.m_sun.setUserDefinedMesh(mesh_dir + '/largesphere.obj') + self.m_sun.setBaseColor(QColor(0xff, 0xbb, 0x00)) + self.m_sun.dataProxy().addItem(QScatterDataItem(QVector3D())) + + self.m_graph.addSeries(self.m_magneticField) + self.m_graph.addSeries(self.m_sun) + + # Configure the axes according to the data. + # 设置x轴的范围值 + self.m_graph.axisX().setRange(-self.horizontalRange, + self.horizontalRange) + # 设置y轴的范围值 + self.m_graph.axisY().setRange(-self.verticalRange, self.verticalRange) + # 设置z轴的范围值 + self.m_graph.axisZ().setRange(-self.horizontalRange, + self.horizontalRange) + # x和z轴上的段数 + # 这表明绘制了多少标签。要绘制的网格线的数量使用公式计算:segments * subsegments + 1。预设默认值为5。该值不能低于1。 + self.m_graph.axisX().setSegmentCount(self.horizontalRange) + self.m_graph.axisZ().setSegmentCount(self.horizontalRange) + + self.m_rotationTimer.timeout.connect(self.triggerRotation) + + self.toggleRotation() + self.generateData() + + def generateData(self): + # 生成模拟数据 + magneticFieldArray = [] + + for i in range(self.m_fieldLines): + horizontalAngle = (self.doublePi * i) / self.m_fieldLines + xCenter = self.ellipse_a * math.cos(horizontalAngle) + zCenter = self.ellipse_a * math.sin(horizontalAngle) + + # Rotate - arrow is always tangential to the origin. + # 旋转-箭头始终与原点相切。 + yRotation = QQuaternion.fromAxisAndAngle(0.0, 1.0, 0.0, + horizontalAngle * self.radiansToDegrees) + + for j in range(self.m_arrowsPerLine): + # Calculate the point on the ellipse centered on the origin and + # 计算椭圆上以原点为中心的点 + # parallel to the x-axis. + # 平行于X轴。 + verticalAngle = ((self.doublePi * j) / self.m_arrowsPerLine) + self.m_angleOffset + xUnrotated = self.ellipse_a * math.cos(verticalAngle) + y = self.ellipse_b * math.sin(verticalAngle) + + # Rotate the ellipse around the y-axis. + # 围绕Y轴旋转椭圆。 + xRotated = xUnrotated * math.cos(horizontalAngle) + zRotated = xUnrotated * math.sin(horizontalAngle) + + # Add the offset. + # 添加偏移量。 + x = xCenter + xRotated + z = zCenter + zRotated + + zRotation = QQuaternion.fromAxisAndAngle(0.0, 0.0, 1.0, + verticalAngle * self.radiansToDegrees) + totalRotation = yRotation * zRotation + + itm = QScatterDataItem(QVector3D(x, y, z), totalRotation) + magneticFieldArray.append(itm) + + if self.m_graph.selectedSeries() is self.m_magneticField: + self.m_graph.clearSelection() + + self.m_magneticField.dataProxy().resetArray(magneticFieldArray) + + def setFieldLines(self, lines): + self.m_fieldLines = lines + self.generateData() + + def setArrowsPerLine(self, arrows): + self.m_arrowsPerLine = arrows + self.m_angleOffset = 0.0 + self.m_angleStep = self.doublePi / self.m_arrowsPerLine / self.animationFrames + self.generateData() + + def triggerRotation(self): + self.m_angleOffset += self.m_angleStep + self.generateData() + + def toggleSun(self): + self.m_sun.setVisible(not self.m_graph.seriesList()[1].isVisible()) + + def toggleRotation(self): + if self.m_rotationTimer.isActive(): + self.m_rotationTimer.stop() + else: + self.m_rotationTimer.start(15) + + +if __name__ == '__main__': + import sys + + app = QApplication(sys.argv) + graph = Q3DScatter() + container = QWidget.createWindowContainer(graph) + + screenSize = graph.screen().size() + container.setMinimumSize( + QSize(screenSize.width() / 2, screenSize.height() / 1.5)) + container.setMaximumSize(screenSize) + container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) + container.setFocusPolicy(Qt.StrongFocus) + + widget = QWidget() + hLayout = QHBoxLayout(widget) + vLayout = QVBoxLayout() + hLayout.addWidget(container, 1) + hLayout.addLayout(vLayout) + + widget.setWindowTitle(Tr.get("Item rotations example - Magnetic field of the sun", + "Item rotations example - Magnetic field of the sun")) + + toggleRotationButton = QPushButton(Tr.get("Toggle animation", "Toggle animation")) + toggleSunButton = QPushButton(Tr.get("Toggle Sun", "Toggle Sun")) + + fieldLinesSlider = QSlider(Qt.Horizontal) + fieldLinesSlider.setTickInterval(1) + fieldLinesSlider.setMinimum(1) + fieldLinesSlider.setValue(12) + fieldLinesSlider.setMaximum(128) + + arrowsSlider = QSlider(Qt.Horizontal) + arrowsSlider.setTickInterval(1) + arrowsSlider.setMinimum(8) + arrowsSlider.setValue(16) + arrowsSlider.setMaximum(32) + + vLayout.addWidget(toggleRotationButton) + vLayout.addWidget(toggleSunButton) + vLayout.addWidget(QLabel(Tr.get("Field Lines (1 - 128):", "Field Lines (1 - 128):"))) + vLayout.addWidget(fieldLinesSlider) + vLayout.addWidget(QLabel(Tr.get("Arrows per line (8 - 32):", "Arrows per line (8 - 32):"))) + vLayout.addWidget(arrowsSlider, 1, Qt.AlignTop) + + modifier = ScatterDataModifier(graph) + + toggleRotationButton.clicked.connect(modifier.toggleRotation) + toggleSunButton.clicked.connect(modifier.toggleSun) + fieldLinesSlider.valueChanged.connect(modifier.setFieldLines) + arrowsSlider.valueChanged.connect(modifier.setArrowsPerLine) + + widget.show() + sys.exit(app.exec_()) diff --git a/QtDataVisualization/README.md b/QtDataVisualization/README.md index 68bf2ba..9366e66 100644 --- a/QtDataVisualization/README.md +++ b/QtDataVisualization/README.md @@ -2,8 +2,20 @@ - 目录 - [柱状图3D](#1柱状图3D) + - [太阳磁场线](#2太阳磁场线) + - [余弦波3D](#3余弦波3D) ## 1、柱状图3D [运行 BarsVisualization.py](BarsVisualization.py) -![BarsVisualization](ScreenShot/BarsVisualization.gif) \ No newline at end of file +![BarsVisualization](ScreenShot/BarsVisualization.gif) + +## 2、太阳磁场线 +[运行 MagneticOfSun.py](MagneticOfSun.py) + +![MagneticOfSun](ScreenShot/MagneticOfSun.gif) + +## 3、余弦波3D +[运行 ScatterVisualization.py](ScatterVisualization.py) + +![ScatterVisualization](ScreenShot/ScatterVisualization.gif) \ No newline at end of file diff --git a/QtDataVisualization/ScatterVisualization.py b/QtDataVisualization/ScatterVisualization.py new file mode 100644 index 0000000..eff7fe0 --- /dev/null +++ b/QtDataVisualization/ScatterVisualization.py @@ -0,0 +1,295 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/4 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: ScatterVisualization +@description: +""" + +############################################################################# +## +## Copyright (C) 2014 Riverbank Computing Limited. +## Copyright (C) 2014 Digia Plc +## All rights reserved. +## For any questions to Digia, please use contact form at http://qt.digia.com +## +## This file is part of the QtDataVisualization module. +## +## Licensees holding valid Qt Enterprise licenses may use this file in +## accordance with the Qt Enterprise License Agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and Digia. +## +## If you have questions regarding the use of this file, please use +## contact form at http://qt.digia.com +## +############################################################################# + + +import math + +from PyQt5.QtCore import pyqtSignal, QObject, QSize, Qt, QLocale +from PyQt5.QtDataVisualization import (Q3DCamera, Q3DTheme, Q3DScatter, + QAbstract3DGraph, QAbstract3DSeries, QScatter3DSeries, + QScatterDataItem, QScatterDataProxy) +from PyQt5.QtGui import QFont, QVector3D +from PyQt5.QtWidgets import (QApplication, QCheckBox, QComboBox, QFontComboBox, + QHBoxLayout, QLabel, QPushButton, QSizePolicy, QVBoxLayout, QWidget) + +country = QLocale.system().country() +if country in (QLocale.China, QLocale.HongKong, QLocale.Taiwan): + Tr = { + 'A Cosine Wave': '余弦波', + 'Change label style': '更改label样式', + 'Smooth dots': '平滑圆点', + 'Change camera preset': '更改相机预设', + 'Show background': '显示背景', + 'Show grid': '显示网格', + 'Change dot style': '更改点样式', + 'Change theme': '更改主题', + 'Adjust shadow quality': '调整阴影质量', + 'Change font': '更改字体' + } +else: + Tr = {} + + +class ScatterDataModifier(QObject): + numberOfItems = 3600 + curveDivider = 3.0 + lowerNumberOfItems = 900 + lowerCurveDivider = 0.75 + + backgroundEnabledChanged = pyqtSignal(bool) + gridEnabledChanged = pyqtSignal(bool) + shadowQualityChanged = pyqtSignal(int) + fontChanged = pyqtSignal(QFont) + + def __init__(self, scatter): + super(ScatterDataModifier, self).__init__() + + self.m_graph = scatter # Q3DScatter实例 + self.m_fontSize = 40.0 + self.m_style = QAbstract3DSeries.MeshSphere + self.m_smooth = True + self.m_itemCount = self.lowerNumberOfItems + self.m_curveDivider = self.lowerCurveDivider + + # 设置当前主题类型 + self.m_graph.activeTheme().setType(Q3DTheme.ThemeEbony) + # 设置当前主题的字体 + font = self.m_graph.activeTheme().font() + font.setPointSize(self.m_fontSize) + self.m_graph.activeTheme().setFont(font) + # 设置阴影质量 + self.m_graph.setShadowQuality(QAbstract3DGraph.ShadowQualitySoftLow) + self.m_graph.scene().activeCamera().setCameraPreset( + Q3DCamera.CameraPresetFront) + + proxy = QScatterDataProxy() + series = QScatter3DSeries(proxy) + series.setItemLabelFormat( + "@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel") + series.setMeshSmooth(self.m_smooth) + self.m_graph.addSeries(series) + + self.addData() + + def addData(self): + # 添加数据 + self.m_graph.axisX().setTitle("X") + self.m_graph.axisY().setTitle("Y") + self.m_graph.axisZ().setTitle("Z") + + dataArray = [] + + limit = math.sqrt(self.m_itemCount) / 2.0 + i = -limit + while i < limit: + j = -limit + while j < limit: + itm = QScatterDataItem( + QVector3D(i + 0.5, + math.cos( + math.radians((i * j) / self.m_curveDivider)), + j + 0.5)) + dataArray.append(itm) + j += 1.0 + + i += 1.0 + + self.m_graph.seriesList()[0].dataProxy().resetArray(dataArray) + + def changeStyle(self, style): + comboBox = self.sender() + if isinstance(comboBox, QComboBox): + self.m_style = QAbstract3DSeries.Mesh(comboBox.itemData(style)) + self.m_graph.seriesList()[0].setMesh(self.m_style) + + def setSmoothDots(self, smooth): + self.m_smooth = bool(smooth) + self.m_graph.seriesList()[0].setMeshSmooth(self.m_smooth) + + def changeTheme(self, theme): + currentTheme = self.m_graph.activeTheme() + currentTheme.setType(Q3DTheme.Theme(theme)) + self.backgroundEnabledChanged.emit(currentTheme.isBackgroundEnabled()) + self.gridEnabledChanged.emit(currentTheme.isGridEnabled()) + self.fontChanged.emit(currentTheme.font()) + + preset = int(Q3DCamera.CameraPresetFrontLow) + + def changePresetCamera(self): + self.m_graph.scene().activeCamera().setCameraPreset( + Q3DCamera.CameraPreset(self.preset)) + + self.preset += 1 + + if self.preset > Q3DCamera.CameraPresetDirectlyBelow: + self.preset = int(Q3DCamera.CameraPresetFrontLow) + + def changeLabelStyle(self): + self.m_graph.activeTheme().setLabelBackgroundEnabled( + not self.m_graph.activeTheme().isLabelBackgroundEnabled()) + + def changeFont(self, font): + newFont = QFont(font) + newFont.setPointSizeF(self.m_fontSize) + self.m_graph.activeTheme().setFont(newFont) + + def shadowQualityUpdatedByVisual(self, sq): + self.shadowQualityChanged.emit(int(sq)) + + def changeShadowQuality(self, quality): + sq = QAbstract3DGraph.ShadowQuality(quality) + self.m_graph.setShadowQuality(sq) + + def setBackgroundEnabled(self, enabled): + self.m_graph.activeTheme().setBackgroundEnabled(enabled) + + def setGridEnabled(self, enabled): + self.m_graph.activeTheme().setGridEnabled(enabled) + + def toggleItemCount(self): + if self.m_itemCount == self.numberOfItems: + self.m_itemCount = self.lowerNumberOfItems + self.m_curveDivider = self.lowerCurveDivider + else: + self.m_itemCount = self.numberOfItems + self.m_curveDivider = self.curveDivider + + self.m_graph.seriesList()[0].dataProxy().resetArray(None) + self.addData() + + +if __name__ == '__main__': + import sys + + app = QApplication(sys.argv) + graph = Q3DScatter() + container = QWidget.createWindowContainer(graph) + + screenSize = graph.screen().size() + container.setMinimumSize( + QSize(screenSize.width() / 2, screenSize.height() / 1.5)) + container.setMaximumSize(screenSize) + container.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) + container.setFocusPolicy(Qt.StrongFocus) + + widget = QWidget() + hLayout = QHBoxLayout(widget) + vLayout = QVBoxLayout() + hLayout.addWidget(container, 1) + hLayout.addLayout(vLayout) + + widget.setWindowTitle(Tr.get("A Cosine Wave", "A Cosine Wave")) + + themeList = QComboBox() + themeList.addItem("Qt") + themeList.addItem("Primary Colors") + themeList.addItem("Digia") + themeList.addItem("Stone Moss") + themeList.addItem("Army Blue") + themeList.addItem("Retro") + themeList.addItem("Ebony") + themeList.addItem("Isabelle") + themeList.setCurrentIndex(6) + + labelButton = QPushButton(Tr.get("Change label style", "Change label style")) + + smoothCheckBox = QCheckBox(Tr.get("Smooth dots", "Smooth dots"), checked=True) + + itemStyleList = QComboBox() + itemStyleList.addItem("Sphere", QAbstract3DSeries.MeshSphere) + itemStyleList.addItem("Cube", QAbstract3DSeries.MeshCube) + itemStyleList.addItem("Minimal", QAbstract3DSeries.MeshMinimal) + itemStyleList.addItem("Point", QAbstract3DSeries.MeshPoint) + itemStyleList.setCurrentIndex(0) + + cameraButton = QPushButton(Tr.get("Change camera preset", "Change camera preset")) + + itemCountButton = QPushButton(Tr.get("Toggle item count", "Toggle item count")) + + backgroundCheckBox = QCheckBox(Tr.get("Show background", "Show background"), checked=True) + + gridCheckBox = QCheckBox(Tr.get("Show grid", "Show grid"), checked=True) + + shadowQuality = QComboBox() + shadowQuality.addItem("None") + shadowQuality.addItem("Low") + shadowQuality.addItem("Medium") + shadowQuality.addItem("High") + shadowQuality.addItem("Low Soft") + shadowQuality.addItem("Medium Soft") + shadowQuality.addItem("High Soft") + shadowQuality.setCurrentIndex(4) + + fontList = QFontComboBox() + fontList.setCurrentFont(QFont('Arial')) + + vLayout.addWidget(labelButton, 0, Qt.AlignTop) + vLayout.addWidget(cameraButton, 0, Qt.AlignTop) + vLayout.addWidget(itemCountButton, 0, Qt.AlignTop) + vLayout.addWidget(backgroundCheckBox) + vLayout.addWidget(gridCheckBox) + vLayout.addWidget(smoothCheckBox, 0, Qt.AlignTop) + vLayout.addWidget(QLabel(Tr.get("Change dot style", "Change dot style"))) + vLayout.addWidget(itemStyleList) + vLayout.addWidget(QLabel(Tr.get("Change theme", "Change theme"))) + vLayout.addWidget(themeList) + vLayout.addWidget(QLabel(Tr.get("Adjust shadow quality", "Adjust shadow quality"))) + vLayout.addWidget(shadowQuality) + vLayout.addWidget(QLabel(Tr.get("Change font", "Change font"))) + vLayout.addWidget(fontList, 1, Qt.AlignTop) + + modifier = ScatterDataModifier(graph) + + cameraButton.clicked.connect(modifier.changePresetCamera) + labelButton.clicked.connect(modifier.changeLabelStyle) + itemCountButton.clicked.connect(modifier.toggleItemCount) + + backgroundCheckBox.stateChanged.connect(modifier.setBackgroundEnabled) + gridCheckBox.stateChanged.connect(modifier.setGridEnabled) + smoothCheckBox.stateChanged.connect(modifier.setSmoothDots) + + modifier.backgroundEnabledChanged.connect(backgroundCheckBox.setChecked) + modifier.gridEnabledChanged.connect(gridCheckBox.setChecked) + itemStyleList.currentIndexChanged.connect(modifier.changeStyle) + + themeList.currentIndexChanged.connect(modifier.changeTheme) + + shadowQuality.currentIndexChanged.connect(modifier.changeShadowQuality) + + modifier.shadowQualityChanged.connect(shadowQuality.setCurrentIndex) + graph.shadowQualityChanged.connect(modifier.shadowQualityUpdatedByVisual) + + fontList.currentFontChanged.connect(modifier.changeFont) + + modifier.fontChanged.connect(fontList.setCurrentFont) + + widget.show() + sys.exit(app.exec_()) diff --git a/QtDataVisualization/ScreenShot/MagneticOfSun.gif b/QtDataVisualization/ScreenShot/MagneticOfSun.gif new file mode 100644 index 0000000..9d94c5c Binary files /dev/null and b/QtDataVisualization/ScreenShot/MagneticOfSun.gif differ diff --git a/QtDataVisualization/ScreenShot/ScatterVisualization.gif b/QtDataVisualization/ScreenShot/ScatterVisualization.gif new file mode 100644 index 0000000..abb9848 Binary files /dev/null and b/QtDataVisualization/ScreenShot/ScatterVisualization.gif differ diff --git a/README.md b/README.md index 87b7db8..ccb74bd 100644 --- a/README.md +++ b/README.md @@ -170,6 +170,8 @@ https://pyqt5.com 社区是专门针对PyQt5学习和提升开设的博客网站 - [QtDataVisualization](QtDataVisualization) - [柱状图3D](QtDataVisualization/BarsVisualization.py) + - [太阳磁场线](QtDataVisualization/MagneticOfSun.py) + - [余弦波3D](QtDataVisualization/ScatterVisualization.py) - [PyQtGraph](PyQtGraph) - [鼠标获取X轴坐标](PyQtGraph/mouseFlow.py)