From 454b8e6c28bfbc357fbe814993b8a52aae4f2fd4 Mon Sep 17 00:00:00 2001 From: Lillian Salehi Date: Wed, 4 Dec 2024 23:11:15 -0600 Subject: [PATCH] Implemented basic normal-dot product shading, preparing for more complex methods such as Blinn-Phong and PBR --- .../clangd/index/types.h.2A872A9A515562E6.idx | Bin 1912 -> 2022 bytes assets/models/UVSphere.mtl | 2 + assets/models/UVSphere.obj | 2070 +++++++++++++++++ assets/models/untitled.mtl | 10 - assets/models/untitled.obj | 39 + imgui.ini | 2 +- src/agnosiaimgui.cpp | 2 +- src/entrypoint.cpp | 10 +- src/graphics/graphicspipeline.cpp | 3 + src/graphics/graphicspipeline.h | 1 + src/shaders/common.glsl | 1 + src/shaders/fragment.frag | 13 +- src/shaders/vertex.vert | 10 +- src/types.h | 1 + 14 files changed, 2140 insertions(+), 24 deletions(-) create mode 100644 assets/models/UVSphere.mtl create mode 100644 assets/models/UVSphere.obj create mode 100644 assets/models/untitled.obj diff --git a/.cache/clangd/index/types.h.2A872A9A515562E6.idx b/.cache/clangd/index/types.h.2A872A9A515562E6.idx index 64f68ee364052aa4e4c484f24c93b60255f8bff5..7627614f5450d1d4464c287cb7ae0e65018e9fb2 100644 GIT binary patch literal 2022 zcmYjR3s6*57(RRVvg~E=J!kK|%kHv|xXbPeIH@o`Do2Y(!4MpTkg@zeKgAUCEOlpQR*igu$G;M^5Xu?bhU)iA8OPCx$v~$nQ-?lUR?VkU;|MPtR z&CATl7>Pz`*>jm&%S$#F^9Ui8e#4tXFO1RO0Ruu?8*BD#j6p?rWJy>q(h)BD=FI{-2dw+j|wh>(qnlf~>ZZGxFlGw$&@8 zTe**nH4c3o_`IxZW@T6Nn+wYB9$h-MZIO4^{aLN6zBKJ$706ms_jJ8+JQ}aI0W#Bh&`)YZW%Z>?;{xX5 zD4k$VkQo3yXZZt@={-|YG)G5AOePayfCT1jAW^Nq)!%G?bf=7wheyO~^CmI?|GLud zEoHa+H4`Urh{Ox=aSVVqm2XO3{DwQp%GphbSOu%h0O)8}UujWl_iT(TMnoKn!@~gR zYY#tJX_$U%j){w*!Oeo1FaUZqxg|#Xpx|-Ld1-3_98eelU18L=)PCqLG9fedb_p&A z1E9O>#hke2rrj8cG`C%{s|M9l)H6Hij{_ zG5|X7$jmkC{LvQ7snpw#{VD^X=W%|^+vk4l#+;3Mi&(TV0D9vm8SBz_9Qy_%H=Vi1 z=Fu1cU7nvmR}qV51UXlom#9A>tq15C;N8Il^S&fb57b=5C;_oKzqlFtFm*er!Z3J zP@Q(CiviG~l8xb;#)xJOF-)rp}%HXq1|Dfih)M0A*6ME=#y>@Shd7aVd9MmhiA3Wy6+~D)G%*}ZeClOdypwmv!jz#28dBFUR5_iQ z-s!F`f1f_>;2kpb0>S9hx}2e|x&2j@$NrvZpk~g@`C+;saAOP;Hgql$C8#7qtMrtr z%!d<*o<`CY4+)g(OFGhe#yWVBSOkj%`V)yLh!SjqNF+g$K)NFF2|fwlYzJ3dy>{r_ z_zBt%7O(`Bfh(<0-=Ii^vQPeBg>tI=5L5_@MJv>|3a$heikkIp0y9)Y6X;tMNuWrI z0wL)LJcVHqH!I>IOR^On5{c}Ry>NnCqb~Zkfi6Vi=G`h(CK3Hui@a$tR-Z6^AFZd<6L6HQ6fCNGo zNl*w%kQBs6lk58pO$|-uHRl_ujjMd+#`oKZ;Z)W;6#@5CSq778|KU6EeWC>j(@i zBXORSRg6%PfMT>IEfIxu#k8RT(1$*-i2qA@j%l4MOe24xW)FHI*!ZG9YHGbWop<|}&G$0g$16Qu7nZ7a=2&xg#HV#+?QZEk zlRVyhcKEM^{?4s4SKCt^S=OlA@4Ls=O!*t$8lBCr^``|rlJsN7Kz3Cj|HV}G$LFy5 z5itv}Eb@p;yjtC1Tm)tN=z_Y>r5e9EN$29!UXJFF>OJf4|0<*=c1)W;z$bVsnZ0e83!#OHShO<% zJNxwFq_pl9wG|p2fg=AOtx-F%u>syRe+El02>0tu4Hz((A-u}5>jAUx7RyB+X z*g3_E=fz!k1al(2Tfl>zAq21u+@{ z6QGf9Ybe4tP)N5m1Q~l&fIYgcfd?-XqUg2;90XtP92u&us9T{Eh|ORV;Qa!EI*y?S zOaXfI5RE(N3fNo_Lk-Rr2vLa#jsoy#tVSK=1NqTyjW&qw+`Xx8%@gsZoIqR#mjXoz zB+L+|0A~K-xv>?|TVAKh2OENI&}Jxt9;p!uSuUifTy*-q_4H}G!7f8Ba2S1B0~Ydn zbfCi5_3vCG-R4YOBy<-L)(0_kp>l!9qHKdw=_*W)h818Z8H8BB1#fGL_<_56jso58lp`LyjFpz233K~1mZL} z6-Xb3h~}$J5cDbW@_v8OlJpN}Ad)O8Z~-BreDAR+V0*~cEf Qu#UqL!oUYY((=Fm0XpXm%K!iX diff --git a/assets/models/UVSphere.mtl b/assets/models/UVSphere.mtl new file mode 100644 index 0000000..4704186 --- /dev/null +++ b/assets/models/UVSphere.mtl @@ -0,0 +1,2 @@ +# Blender 4.2.3 LTS MTL File: 'None' +# www.blender.org diff --git a/assets/models/UVSphere.obj b/assets/models/UVSphere.obj new file mode 100644 index 0000000..f50c59f --- /dev/null +++ b/assets/models/UVSphere.obj @@ -0,0 +1,2070 @@ +# Blender 4.2.3 LTS +# www.blender.org +mtllib UVSphere.mtl +o Sphere +v 0.000000 0.831470 -0.555570 +v 0.000000 0.555570 -0.831470 +v 0.000000 0.195090 -0.980785 +v 0.000000 0.000000 -1.000000 +v 0.000000 -0.195090 -0.980785 +v 0.000000 -0.555570 -0.831470 +v 0.038060 0.980785 -0.191342 +v 0.074658 0.923880 -0.375330 +v 0.108386 0.831470 -0.544895 +v 0.137950 0.707107 -0.693520 +v 0.162212 0.555570 -0.815493 +v 0.180240 0.382683 -0.906127 +v 0.191342 0.195090 -0.961940 +v 0.195090 0.000000 -0.980785 +v 0.191342 -0.195090 -0.961940 +v 0.180240 -0.382683 -0.906127 +v 0.162212 -0.555570 -0.815493 +v 0.137950 -0.707107 -0.693520 +v 0.108386 -0.831470 -0.544895 +v 0.074658 -0.923880 -0.375330 +v 0.038060 -0.980785 -0.191342 +v 0.074658 0.980785 -0.180240 +v 0.146447 0.923880 -0.353553 +v 0.212608 0.831470 -0.513280 +v 0.270598 0.707107 -0.653281 +v 0.318190 0.555570 -0.768178 +v 0.353553 0.382683 -0.853553 +v 0.375330 0.195090 -0.906127 +v 0.382683 0.000000 -0.923879 +v 0.375330 -0.195090 -0.906127 +v 0.353553 -0.382683 -0.853553 +v 0.318190 -0.555570 -0.768178 +v 0.270598 -0.707107 -0.653281 +v 0.212608 -0.831470 -0.513280 +v 0.146447 -0.923880 -0.353553 +v 0.074658 -0.980785 -0.180240 +v 0.108386 0.980785 -0.162212 +v 0.212608 0.923880 -0.318190 +v 0.308658 0.831470 -0.461940 +v 0.392847 0.707107 -0.587938 +v 0.461940 0.555570 -0.691342 +v 0.513280 0.382683 -0.768178 +v 0.544895 0.195090 -0.815493 +v 0.555570 0.000000 -0.831469 +v 0.544895 -0.195090 -0.815493 +v 0.513280 -0.382683 -0.768178 +v 0.461940 -0.555570 -0.691342 +v 0.392847 -0.707107 -0.587938 +v 0.308658 -0.831470 -0.461940 +v 0.212608 -0.923880 -0.318190 +v 0.108386 -0.980785 -0.162212 +v 0.137950 0.980785 -0.137950 +v 0.270598 0.923880 -0.270598 +v 0.392847 0.831470 -0.392847 +v 0.500000 0.707107 -0.500000 +v 0.587938 0.555570 -0.587938 +v 0.653281 0.382683 -0.653281 +v 0.693520 0.195090 -0.693520 +v 0.707107 0.000000 -0.707107 +v 0.693520 -0.195090 -0.693520 +v 0.653281 -0.382683 -0.653281 +v 0.587938 -0.555570 -0.587938 +v 0.500000 -0.707107 -0.500000 +v 0.392847 -0.831470 -0.392847 +v 0.270598 -0.923880 -0.270598 +v 0.137950 -0.980785 -0.137950 +v 0.162212 0.980785 -0.108386 +v 0.318190 0.923880 -0.212608 +v 0.461940 0.831470 -0.308658 +v 0.587938 0.707107 -0.392847 +v 0.691342 0.555570 -0.461940 +v 0.768178 0.382683 -0.513280 +v 0.815493 0.195090 -0.544895 +v 0.831470 0.000000 -0.555570 +v 0.815493 -0.195090 -0.544895 +v 0.768178 -0.382683 -0.513280 +v 0.691342 -0.555570 -0.461940 +v 0.587938 -0.707107 -0.392847 +v 0.461940 -0.831470 -0.308658 +v 0.318190 -0.923880 -0.212608 +v 0.162212 -0.980785 -0.108386 +v 0.000000 1.000000 0.000000 +v 0.180240 0.980785 -0.074658 +v 0.353553 0.923880 -0.146447 +v 0.513280 0.831470 -0.212607 +v 0.653281 0.707107 -0.270598 +v 0.768178 0.555570 -0.318190 +v 0.853553 0.382683 -0.353553 +v 0.906127 0.195090 -0.375330 +v 0.923879 0.000000 -0.382683 +v 0.906127 -0.195090 -0.375330 +v 0.853553 -0.382683 -0.353553 +v 0.768178 -0.555570 -0.318190 +v 0.653281 -0.707107 -0.270598 +v 0.513280 -0.831470 -0.212607 +v 0.353553 -0.923880 -0.146447 +v 0.180240 -0.980785 -0.074658 +v 0.191342 0.980785 -0.038060 +v 0.375330 0.923880 -0.074658 +v 0.544895 0.831470 -0.108386 +v 0.693520 0.707107 -0.137950 +v 0.815493 0.555570 -0.162212 +v 0.906127 0.382683 -0.180240 +v 0.961940 0.195090 -0.191342 +v 0.980785 0.000000 -0.195090 +v 0.961940 -0.195090 -0.191342 +v 0.906127 -0.382683 -0.180240 +v 0.815493 -0.555570 -0.162212 +v 0.693520 -0.707107 -0.137950 +v 0.544895 -0.831470 -0.108386 +v 0.375330 -0.923880 -0.074658 +v 0.191342 -0.980785 -0.038060 +v 0.195090 0.980785 0.000000 +v 0.382683 0.923880 0.000000 +v 0.555570 0.831470 0.000000 +v 0.707107 0.707107 -0.000000 +v 0.831469 0.555570 0.000000 +v 0.923879 0.382683 -0.000000 +v 0.980785 0.195090 0.000000 +v 1.000000 0.000000 0.000000 +v 0.980785 -0.195090 0.000000 +v 0.923879 -0.382683 -0.000000 +v 0.831469 -0.555570 0.000000 +v 0.707107 -0.707107 -0.000000 +v 0.555570 -0.831470 0.000000 +v 0.382683 -0.923880 0.000000 +v 0.195090 -0.980785 0.000000 +v 0.191342 0.980785 0.038060 +v 0.375330 0.923880 0.074658 +v 0.544895 0.831470 0.108386 +v 0.693520 0.707107 0.137950 +v 0.815493 0.555570 0.162212 +v 0.906127 0.382683 0.180240 +v 0.961940 0.195090 0.191342 +v 0.980785 0.000000 0.195090 +v 0.961940 -0.195090 0.191342 +v 0.906127 -0.382683 0.180240 +v 0.815493 -0.555570 0.162212 +v 0.693520 -0.707107 0.137950 +v 0.544895 -0.831470 0.108386 +v 0.375330 -0.923880 0.074658 +v 0.191342 -0.980785 0.038060 +v 0.180240 0.980785 0.074658 +v 0.353553 0.923880 0.146447 +v 0.513280 0.831470 0.212608 +v 0.653281 0.707107 0.270598 +v 0.768178 0.555570 0.318190 +v 0.853553 0.382683 0.353553 +v 0.906127 0.195090 0.375330 +v 0.923879 0.000000 0.382683 +v 0.906127 -0.195090 0.375330 +v 0.853553 -0.382683 0.353553 +v 0.768178 -0.555570 0.318190 +v 0.653281 -0.707107 0.270598 +v 0.513280 -0.831470 0.212608 +v 0.353553 -0.923880 0.146447 +v 0.180240 -0.980785 0.074658 +v 0.162212 0.980785 0.108386 +v 0.318190 0.923880 0.212608 +v 0.461940 0.831470 0.308658 +v 0.587938 0.707107 0.392847 +v 0.691341 0.555570 0.461940 +v 0.768178 0.382683 0.513280 +v 0.815493 0.195090 0.544895 +v 0.831469 0.000000 0.555570 +v 0.815493 -0.195090 0.544895 +v 0.768178 -0.382683 0.513280 +v 0.691341 -0.555570 0.461940 +v 0.587938 -0.707107 0.392847 +v 0.461940 -0.831470 0.308658 +v 0.318190 -0.923880 0.212608 +v 0.162212 -0.980785 0.108386 +v 0.137950 0.980785 0.137950 +v 0.270598 0.923880 0.270598 +v 0.392847 0.831470 0.392847 +v 0.500000 0.707107 0.500000 +v 0.587938 0.555570 0.587938 +v 0.653281 0.382683 0.653281 +v 0.693520 0.195090 0.693520 +v 0.707106 0.000000 0.707107 +v 0.693520 -0.195090 0.693520 +v 0.653281 -0.382683 0.653281 +v 0.587938 -0.555570 0.587938 +v 0.500000 -0.707107 0.500000 +v 0.392847 -0.831470 0.392847 +v 0.270598 -0.923880 0.270598 +v 0.137950 -0.980785 0.137950 +v 0.108386 0.980785 0.162212 +v 0.212607 0.923880 0.318190 +v 0.308658 0.831470 0.461940 +v 0.392847 0.707107 0.587938 +v 0.461940 0.555570 0.691342 +v 0.513280 0.382683 0.768178 +v 0.544895 0.195090 0.815493 +v 0.555570 0.000000 0.831469 +v 0.544895 -0.195090 0.815493 +v 0.513280 -0.382683 0.768178 +v 0.461940 -0.555570 0.691342 +v 0.392847 -0.707107 0.587938 +v 0.308658 -0.831470 0.461940 +v 0.212607 -0.923880 0.318190 +v 0.108386 -0.980785 0.162212 +v 0.074658 0.980785 0.180240 +v 0.146447 0.923880 0.353553 +v 0.212607 0.831470 0.513280 +v 0.270598 0.707107 0.653281 +v 0.318189 0.555570 0.768178 +v 0.353553 0.382683 0.853553 +v 0.375330 0.195090 0.906127 +v 0.382683 0.000000 0.923879 +v 0.375330 -0.195090 0.906127 +v 0.353553 -0.382683 0.853553 +v 0.318189 -0.555570 0.768178 +v 0.270598 -0.707107 0.653281 +v 0.212607 -0.831470 0.513280 +v 0.146447 -0.923880 0.353553 +v 0.074658 -0.980785 0.180240 +v 0.038060 0.980785 0.191342 +v 0.074658 0.923880 0.375330 +v 0.108386 0.831470 0.544895 +v 0.137950 0.707107 0.693520 +v 0.162212 0.555570 0.815493 +v 0.180240 0.382683 0.906127 +v 0.191342 0.195090 0.961939 +v 0.195090 0.000000 0.980785 +v 0.191342 -0.195090 0.961939 +v 0.180240 -0.382683 0.906127 +v 0.162212 -0.555570 0.815493 +v 0.137950 -0.707107 0.693520 +v 0.108386 -0.831470 0.544895 +v 0.074658 -0.923880 0.375330 +v 0.038060 -0.980785 0.191342 +v -0.000000 0.980785 0.195090 +v -0.000000 0.923880 0.382683 +v -0.000000 0.831470 0.555570 +v -0.000000 0.707107 0.707107 +v -0.000000 0.555570 0.831469 +v 0.000000 0.382683 0.923879 +v -0.000000 0.195090 0.980785 +v -0.000000 0.000000 0.999999 +v -0.000000 -0.195090 0.980785 +v 0.000000 -0.382683 0.923879 +v -0.000000 -0.555570 0.831469 +v -0.000000 -0.707107 0.707107 +v -0.000000 -0.831470 0.555570 +v -0.000000 -0.923880 0.382683 +v -0.000000 -0.980785 0.195090 +v -0.038060 0.980785 0.191342 +v -0.074658 0.923880 0.375330 +v -0.108386 0.831470 0.544895 +v -0.137950 0.707107 0.693520 +v -0.162212 0.555570 0.815493 +v -0.180240 0.382683 0.906127 +v -0.191342 0.195090 0.961939 +v -0.195091 0.000000 0.980785 +v -0.191342 -0.195090 0.961939 +v -0.180240 -0.382683 0.906127 +v -0.162212 -0.555570 0.815493 +v -0.137950 -0.707107 0.693520 +v -0.108386 -0.831470 0.544895 +v -0.074658 -0.923880 0.375330 +v -0.038060 -0.980785 0.191342 +v -0.074658 0.980785 0.180240 +v -0.146447 0.923880 0.353553 +v -0.212608 0.831470 0.513280 +v -0.270598 0.707107 0.653281 +v -0.318190 0.555570 0.768177 +v -0.353553 0.382683 0.853553 +v -0.375330 0.195090 0.906127 +v -0.382683 0.000000 0.923879 +v -0.375330 -0.195090 0.906127 +v -0.353553 -0.382683 0.853553 +v -0.318190 -0.555570 0.768177 +v -0.270598 -0.707107 0.653281 +v -0.212608 -0.831470 0.513280 +v -0.146447 -0.923880 0.353553 +v -0.074658 -0.980785 0.180240 +v -0.108386 0.980785 0.162212 +v -0.212608 0.923880 0.318190 +v -0.308658 0.831470 0.461939 +v -0.392847 0.707107 0.587938 +v -0.461940 0.555570 0.691341 +v -0.513280 0.382683 0.768178 +v -0.544895 0.195090 0.815493 +v -0.555570 0.000000 0.831469 +v -0.544895 -0.195090 0.815493 +v -0.513280 -0.382683 0.768178 +v -0.461940 -0.555570 0.691341 +v -0.392847 -0.707107 0.587938 +v -0.308658 -0.831470 0.461939 +v -0.212608 -0.923880 0.318190 +v -0.108386 -0.980785 0.162212 +v -0.137950 0.980785 0.137950 +v -0.270598 0.923880 0.270598 +v -0.392847 0.831470 0.392847 +v -0.500000 0.707107 0.500000 +v -0.587938 0.555570 0.587937 +v -0.653281 0.382683 0.653281 +v -0.693520 0.195090 0.693520 +v -0.707106 0.000000 0.707106 +v -0.693520 -0.195090 0.693520 +v -0.653281 -0.382683 0.653281 +v -0.587938 -0.555570 0.587937 +v -0.500000 -0.707107 0.500000 +v -0.392847 -0.831470 0.392847 +v -0.270598 -0.923880 0.270598 +v -0.137950 -0.980785 0.137950 +v 0.000000 -1.000000 0.000000 +v -0.162212 0.980785 0.108386 +v -0.318190 0.923880 0.212607 +v -0.461940 0.831470 0.308658 +v -0.587938 0.707107 0.392847 +v -0.691341 0.555570 0.461939 +v -0.768177 0.382683 0.513280 +v -0.815493 0.195090 0.544895 +v -0.831469 0.000000 0.555569 +v -0.815493 -0.195090 0.544895 +v -0.768177 -0.382683 0.513280 +v -0.691341 -0.555570 0.461939 +v -0.587938 -0.707107 0.392847 +v -0.461940 -0.831470 0.308658 +v -0.318190 -0.923880 0.212607 +v -0.162212 -0.980785 0.108386 +v -0.180240 0.980785 0.074658 +v -0.353553 0.923880 0.146447 +v -0.513280 0.831470 0.212607 +v -0.653281 0.707107 0.270598 +v -0.768177 0.555570 0.318189 +v -0.853553 0.382683 0.353553 +v -0.906127 0.195090 0.375330 +v -0.923879 0.000000 0.382683 +v -0.906127 -0.195090 0.375330 +v -0.853553 -0.382683 0.353553 +v -0.768177 -0.555570 0.318189 +v -0.653281 -0.707107 0.270598 +v -0.513280 -0.831470 0.212607 +v -0.353553 -0.923880 0.146447 +v -0.180240 -0.980785 0.074658 +v -0.191342 0.980785 0.038060 +v -0.375330 0.923880 0.074658 +v -0.544895 0.831470 0.108386 +v -0.693520 0.707107 0.137950 +v -0.815493 0.555570 0.162211 +v -0.906127 0.382683 0.180240 +v -0.961939 0.195090 0.191341 +v -0.980784 0.000000 0.195090 +v -0.961939 -0.195090 0.191341 +v -0.906127 -0.382683 0.180240 +v -0.815493 -0.555570 0.162211 +v -0.693520 -0.707107 0.137950 +v -0.544895 -0.831470 0.108386 +v -0.375330 -0.923880 0.074658 +v -0.191342 -0.980785 0.038060 +v -0.195090 0.980785 -0.000000 +v -0.382683 0.923880 -0.000000 +v -0.555570 0.831470 -0.000000 +v -0.707107 0.707107 -0.000000 +v -0.831469 0.555570 -0.000000 +v -0.923879 0.382683 -0.000000 +v -0.980785 0.195090 -0.000000 +v -0.999999 0.000000 -0.000000 +v -0.980785 -0.195090 -0.000000 +v -0.923879 -0.382683 -0.000000 +v -0.831469 -0.555570 -0.000000 +v -0.707107 -0.707107 -0.000000 +v -0.555570 -0.831470 -0.000000 +v -0.382683 -0.923880 -0.000000 +v -0.195090 -0.980785 -0.000000 +v -0.191342 0.980785 -0.038060 +v -0.375330 0.923880 -0.074658 +v -0.544895 0.831470 -0.108386 +v -0.693520 0.707107 -0.137950 +v -0.815493 0.555570 -0.162212 +v -0.906127 0.382683 -0.180240 +v -0.961939 0.195090 -0.191342 +v -0.980784 0.000000 -0.195091 +v -0.961939 -0.195090 -0.191342 +v -0.906127 -0.382683 -0.180240 +v -0.815493 -0.555570 -0.162212 +v -0.693520 -0.707107 -0.137950 +v -0.544895 -0.831470 -0.108386 +v -0.375330 -0.923880 -0.074658 +v -0.191342 -0.980785 -0.038060 +v -0.180240 0.980785 -0.074658 +v -0.353553 0.923880 -0.146447 +v -0.513279 0.831470 -0.212607 +v -0.653281 0.707107 -0.270598 +v -0.768177 0.555570 -0.318190 +v -0.853553 0.382683 -0.353553 +v -0.906127 0.195090 -0.375330 +v -0.923878 0.000000 -0.382683 +v -0.906127 -0.195090 -0.375330 +v -0.853553 -0.382683 -0.353553 +v -0.768177 -0.555570 -0.318190 +v -0.653281 -0.707107 -0.270598 +v -0.513279 -0.831470 -0.212607 +v -0.353553 -0.923880 -0.146447 +v -0.180240 -0.980785 -0.074658 +v -0.162212 0.980785 -0.108386 +v -0.318189 0.923880 -0.212607 +v -0.461939 0.831470 -0.308658 +v -0.587938 0.707107 -0.392847 +v -0.691341 0.555570 -0.461940 +v -0.768177 0.382683 -0.513280 +v -0.815493 0.195090 -0.544895 +v -0.831468 0.000000 -0.555570 +v -0.815493 -0.195090 -0.544895 +v -0.768177 -0.382683 -0.513280 +v -0.691341 -0.555570 -0.461940 +v -0.587938 -0.707107 -0.392847 +v -0.461939 -0.831470 -0.308658 +v -0.318189 -0.923880 -0.212607 +v -0.162212 -0.980785 -0.108386 +v -0.137950 0.980785 -0.137950 +v -0.270598 0.923880 -0.270598 +v -0.392847 0.831470 -0.392847 +v -0.500000 0.707107 -0.500000 +v -0.587937 0.555570 -0.587938 +v -0.653281 0.382683 -0.653281 +v -0.693519 0.195090 -0.693520 +v -0.707106 0.000000 -0.707106 +v -0.693519 -0.195090 -0.693520 +v -0.653281 -0.382683 -0.653281 +v -0.587937 -0.555570 -0.587938 +v -0.500000 -0.707107 -0.500000 +v -0.392847 -0.831470 -0.392847 +v -0.270598 -0.923880 -0.270598 +v -0.137950 -0.980785 -0.137950 +v -0.108386 0.980785 -0.162212 +v -0.212607 0.923880 -0.318190 +v -0.308658 0.831470 -0.461939 +v -0.392847 0.707107 -0.587938 +v -0.461939 0.555570 -0.691341 +v -0.513280 0.382683 -0.768177 +v -0.544895 0.195090 -0.815493 +v -0.555569 0.000000 -0.831469 +v -0.544895 -0.195090 -0.815493 +v -0.513280 -0.382683 -0.768177 +v -0.461939 -0.555570 -0.691341 +v -0.392847 -0.707107 -0.587938 +v -0.308658 -0.831470 -0.461939 +v -0.212607 -0.923880 -0.318190 +v -0.108386 -0.980785 -0.162212 +v -0.074658 0.980785 -0.180240 +v -0.146446 0.923880 -0.353553 +v -0.212607 0.831470 -0.513279 +v -0.270598 0.707107 -0.653281 +v -0.318189 0.555570 -0.768177 +v -0.353553 0.382683 -0.853553 +v -0.375330 0.195090 -0.906127 +v -0.382683 0.000000 -0.923879 +v -0.375330 -0.195090 -0.906127 +v -0.353553 -0.382683 -0.853553 +v -0.318189 -0.555570 -0.768177 +v -0.270598 -0.707107 -0.653281 +v -0.212607 -0.831470 -0.513279 +v -0.146446 -0.923880 -0.353553 +v -0.074658 -0.980785 -0.180240 +v -0.038060 0.980785 -0.191342 +v -0.074658 0.923880 -0.375330 +v -0.108386 0.831470 -0.544895 +v -0.137950 0.707107 -0.693520 +v -0.162211 0.555570 -0.815493 +v -0.180240 0.382683 -0.906127 +v -0.191341 0.195090 -0.961939 +v -0.195090 0.000000 -0.980784 +v -0.191341 -0.195090 -0.961939 +v -0.180240 -0.382683 -0.906127 +v -0.162211 -0.555570 -0.815493 +v -0.137950 -0.707107 -0.693520 +v -0.108386 -0.831470 -0.544895 +v -0.074658 -0.923880 -0.375330 +v -0.038060 -0.980785 -0.191342 +v 0.000000 0.980785 -0.195090 +v 0.000000 0.923880 -0.382683 +v 0.000000 0.707107 -0.707107 +v 0.000000 0.382683 -0.923879 +v 0.000000 -0.382683 -0.923879 +v 0.000000 -0.707107 -0.707107 +v 0.000000 -0.831470 -0.555570 +v 0.000000 -0.923880 -0.382683 +v 0.000000 -0.980785 -0.195090 +vn 0.0938 0.2890 -0.9527 +vn 0.0286 -0.9565 -0.2902 +vn 0.0975 0.0975 -0.9904 +vn 0.0097 0.9951 -0.0980 +vn 0.0097 -0.9951 -0.0980 +vn 0.0975 -0.0975 -0.9904 +vn 0.0286 0.9565 -0.2902 +vn 0.0938 -0.2890 -0.9527 +vn 0.0464 0.8810 -0.4709 +vn 0.0865 -0.4696 -0.8786 +vn 0.0624 0.7715 -0.6332 +vn 0.0759 -0.6326 -0.7708 +vn 0.0759 0.6326 -0.7708 +vn 0.0624 -0.7715 -0.6332 +vn 0.0865 0.4696 -0.8786 +vn 0.0464 -0.8810 -0.4709 +vn 0.1847 -0.7715 -0.6088 +vn 0.2563 0.4696 -0.8448 +vn 0.1374 -0.8810 -0.4528 +vn 0.2779 0.2890 -0.9161 +vn 0.0846 -0.9565 -0.2790 +vn 0.2889 0.0976 -0.9524 +vn 0.0286 0.9951 -0.0942 +vn 0.0286 -0.9951 -0.0942 +vn 0.2889 -0.0976 -0.9524 +vn 0.0846 0.9565 -0.2790 +vn 0.2779 -0.2890 -0.9161 +vn 0.1374 0.8810 -0.4528 +vn 0.2563 -0.4696 -0.8448 +vn 0.1847 0.7715 -0.6088 +vn 0.2248 -0.6326 -0.7412 +vn 0.2248 0.6326 -0.7412 +vn 0.4513 -0.2890 -0.8443 +vn 0.2230 0.8810 -0.4173 +vn 0.4162 -0.4696 -0.7786 +vn 0.2999 0.7715 -0.5611 +vn 0.3651 -0.6326 -0.6831 +vn 0.3651 0.6326 -0.6831 +vn 0.2999 -0.7715 -0.5611 +vn 0.4162 0.4696 -0.7786 +vn 0.2230 -0.8810 -0.4173 +vn 0.4513 0.2890 -0.8443 +vn 0.1374 -0.9565 -0.2571 +vn 0.4691 0.0975 -0.8777 +vn 0.0464 0.9951 -0.0869 +vn 0.0464 -0.9951 -0.0869 +vn 0.4691 -0.0975 -0.8777 +vn 0.1374 0.9565 -0.2571 +vn 0.3002 -0.8810 -0.3658 +vn 0.6073 0.2890 -0.7400 +vn 0.1850 -0.9565 -0.2254 +vn 0.6314 0.0975 -0.7693 +vn 0.0625 0.9951 -0.0761 +vn 0.0625 -0.9951 -0.0761 +vn 0.6314 -0.0975 -0.7693 +vn 0.1850 0.9565 -0.2254 +vn 0.6073 -0.2890 -0.7400 +vn 0.3002 0.8810 -0.3658 +vn 0.5601 -0.4696 -0.6825 +vn 0.4036 0.7715 -0.4918 +vn 0.4913 -0.6326 -0.5987 +vn 0.4913 0.6326 -0.5987 +vn 0.4036 -0.7715 -0.4918 +vn 0.5601 0.4696 -0.6825 +vn 0.3658 0.8810 -0.3002 +vn 0.6825 -0.4696 -0.5601 +vn 0.4918 0.7715 -0.4036 +vn 0.5987 -0.6326 -0.4913 +vn 0.5987 0.6326 -0.4913 +vn 0.4918 -0.7715 -0.4036 +vn 0.6825 0.4696 -0.5601 +vn 0.3658 -0.8810 -0.3002 +vn 0.7400 0.2890 -0.6073 +vn 0.2254 -0.9565 -0.1850 +vn 0.7693 0.0975 -0.6314 +vn 0.0761 0.9951 -0.0625 +vn 0.0761 -0.9951 -0.0625 +vn 0.7693 -0.0975 -0.6314 +vn 0.2254 0.9565 -0.1850 +vn 0.7400 -0.2890 -0.6073 +vn 0.8443 0.2890 -0.4513 +vn 0.2571 -0.9565 -0.1374 +vn 0.8777 0.0975 -0.4691 +vn 0.0869 0.9951 -0.0464 +vn 0.0869 -0.9951 -0.0464 +vn 0.8777 -0.0975 -0.4691 +vn 0.2571 0.9565 -0.1374 +vn 0.8443 -0.2890 -0.4513 +vn 0.4173 0.8810 -0.2230 +vn 0.7786 -0.4696 -0.4162 +vn 0.5611 0.7715 -0.2999 +vn 0.6831 -0.6326 -0.3651 +vn 0.6831 0.6326 -0.3651 +vn 0.5611 -0.7715 -0.2999 +vn 0.7786 0.4696 -0.4162 +vn 0.4173 -0.8810 -0.2230 +vn 0.8448 -0.4696 -0.2563 +vn 0.6088 0.7715 -0.1847 +vn 0.7412 -0.6326 -0.2248 +vn 0.7412 0.6326 -0.2248 +vn 0.6088 -0.7715 -0.1847 +vn 0.8448 0.4696 -0.2563 +vn 0.4528 -0.8810 -0.1374 +vn 0.9161 0.2890 -0.2779 +vn 0.2790 -0.9565 -0.0846 +vn 0.9524 0.0975 -0.2889 +vn 0.0942 0.9951 -0.0286 +vn 0.0942 -0.9951 -0.0286 +vn 0.9524 -0.0975 -0.2889 +vn 0.2790 0.9565 -0.0846 +vn 0.9161 -0.2890 -0.2779 +vn 0.4528 0.8810 -0.1374 +vn 0.2902 -0.9565 -0.0286 +vn 0.9904 0.0975 -0.0975 +vn 0.0980 0.9951 -0.0097 +vn 0.0980 -0.9951 -0.0097 +vn 0.9904 -0.0975 -0.0975 +vn 0.2902 0.9565 -0.0286 +vn 0.9527 -0.2890 -0.0938 +vn 0.4709 0.8810 -0.0464 +vn 0.8786 -0.4696 -0.0865 +vn 0.6332 0.7715 -0.0624 +vn 0.7708 -0.6326 -0.0759 +vn 0.7708 0.6326 -0.0759 +vn 0.6332 -0.7715 -0.0624 +vn 0.8786 0.4696 -0.0865 +vn 0.4709 -0.8810 -0.0464 +vn 0.9527 0.2890 -0.0938 +vn 0.6332 0.7715 0.0624 +vn 0.7708 -0.6326 0.0759 +vn 0.7708 0.6326 0.0759 +vn 0.6332 -0.7715 0.0624 +vn 0.8786 0.4696 0.0865 +vn 0.4709 -0.8810 0.0464 +vn 0.9527 0.2890 0.0938 +vn 0.2902 -0.9565 0.0286 +vn 0.9904 0.0975 0.0976 +vn 0.0980 0.9951 0.0097 +vn 0.0980 -0.9951 0.0097 +vn 0.9904 -0.0975 0.0976 +vn 0.2902 0.9565 0.0286 +vn 0.9527 -0.2890 0.0938 +vn 0.4709 0.8810 0.0464 +vn 0.8786 -0.4696 0.0865 +vn 0.9524 0.0975 0.2889 +vn 0.0942 0.9951 0.0286 +vn 0.0942 -0.9951 0.0286 +vn 0.9524 -0.0975 0.2889 +vn 0.2790 0.9565 0.0846 +vn 0.9161 -0.2890 0.2779 +vn 0.4528 0.8810 0.1374 +vn 0.8448 -0.4696 0.2563 +vn 0.6088 0.7715 0.1847 +vn 0.7412 -0.6326 0.2248 +vn 0.7412 0.6326 0.2248 +vn 0.6088 -0.7715 0.1847 +vn 0.8448 0.4696 0.2563 +vn 0.4528 -0.8810 0.1374 +vn 0.9161 0.2890 0.2779 +vn 0.2790 -0.9565 0.0846 +vn 0.6831 -0.6326 0.3651 +vn 0.6831 0.6326 0.3651 +vn 0.5611 -0.7715 0.2999 +vn 0.7786 0.4696 0.4162 +vn 0.4173 -0.8810 0.2230 +vn 0.8443 0.2890 0.4513 +vn 0.2571 -0.9565 0.1374 +vn 0.8777 0.0975 0.4691 +vn 0.0869 0.9951 0.0464 +vn 0.0869 -0.9951 0.0464 +vn 0.8777 -0.0975 0.4691 +vn 0.2571 0.9565 0.1374 +vn 0.8443 -0.2890 0.4513 +vn 0.4173 0.8810 0.2230 +vn 0.7786 -0.4696 0.4162 +vn 0.5611 0.7715 0.2999 +vn 0.0761 -0.9951 0.0625 +vn 0.7693 -0.0975 0.6314 +vn 0.2254 0.9565 0.1850 +vn 0.7400 -0.2890 0.6073 +vn 0.3658 0.8810 0.3002 +vn 0.6825 -0.4696 0.5601 +vn 0.4918 0.7715 0.4036 +vn 0.5987 -0.6326 0.4913 +vn 0.5987 0.6326 0.4913 +vn 0.4918 -0.7715 0.4036 +vn 0.6825 0.4696 0.5601 +vn 0.3658 -0.8810 0.3002 +vn 0.7400 0.2890 0.6073 +vn 0.2254 -0.9565 0.1850 +vn 0.7693 0.0975 0.6314 +vn 0.0761 0.9951 0.0625 +vn 0.4036 -0.7715 0.4918 +vn 0.5601 0.4696 0.6825 +vn 0.3002 -0.8810 0.3658 +vn 0.6073 0.2890 0.7400 +vn 0.1850 -0.9565 0.2254 +vn 0.6314 0.0975 0.7693 +vn 0.0625 0.9951 0.0761 +vn 0.0625 -0.9951 0.0761 +vn 0.6314 -0.0975 0.7693 +vn 0.1850 0.9565 0.2254 +vn 0.6073 -0.2890 0.7400 +vn 0.3002 0.8810 0.3658 +vn 0.5601 -0.4696 0.6825 +vn 0.4036 0.7715 0.4918 +vn 0.4913 -0.6326 0.5987 +vn 0.4913 0.6326 0.5987 +vn 0.1374 0.9565 0.2571 +vn 0.4513 -0.2890 0.8443 +vn 0.2230 0.8810 0.4173 +vn 0.4162 -0.4696 0.7786 +vn 0.2999 0.7715 0.5611 +vn 0.3651 -0.6326 0.6831 +vn 0.3651 0.6326 0.6831 +vn 0.2999 -0.7715 0.5611 +vn 0.4162 0.4696 0.7786 +vn 0.2230 -0.8810 0.4173 +vn 0.4513 0.2890 0.8443 +vn 0.1374 -0.9565 0.2571 +vn 0.4691 0.0975 0.8777 +vn 0.0464 0.9951 0.0869 +vn 0.0464 -0.9951 0.0869 +vn 0.4691 -0.0975 0.8777 +vn 0.2563 0.4696 0.8448 +vn 0.1374 -0.8810 0.4528 +vn 0.2779 0.2890 0.9161 +vn 0.0846 -0.9565 0.2790 +vn 0.2889 0.0975 0.9524 +vn 0.0286 0.9951 0.0942 +vn 0.0286 -0.9951 0.0942 +vn 0.2889 -0.0975 0.9524 +vn 0.0846 0.9565 0.2790 +vn 0.2779 -0.2890 0.9161 +vn 0.1374 0.8810 0.4528 +vn 0.2563 -0.4696 0.8448 +vn 0.1847 0.7715 0.6088 +vn 0.2248 -0.6326 0.7412 +vn 0.2248 0.6326 0.7412 +vn 0.1847 -0.7715 0.6088 +vn 0.0938 -0.2890 0.9527 +vn 0.0464 0.8810 0.4709 +vn 0.0865 -0.4696 0.8786 +vn 0.0624 0.7715 0.6332 +vn 0.0759 -0.6326 0.7708 +vn 0.0759 0.6326 0.7708 +vn 0.0624 -0.7715 0.6332 +vn 0.0865 0.4696 0.8786 +vn 0.0464 -0.8810 0.4709 +vn 0.0938 0.2890 0.9527 +vn 0.0286 -0.9565 0.2902 +vn 0.0975 0.0975 0.9904 +vn 0.0097 0.9951 0.0980 +vn 0.0097 -0.9951 0.0980 +vn 0.0975 -0.0975 0.9904 +vn 0.0286 0.9565 0.2902 +vn -0.0464 -0.8810 0.4709 +vn -0.0938 0.2890 0.9527 +vn -0.0286 -0.9565 0.2902 +vn -0.0976 0.0975 0.9904 +vn -0.0097 0.9951 0.0980 +vn -0.0097 -0.9951 0.0980 +vn -0.0976 -0.0975 0.9904 +vn -0.0286 0.9565 0.2902 +vn -0.0938 -0.2890 0.9527 +vn -0.0464 0.8810 0.4709 +vn -0.0865 -0.4696 0.8786 +vn -0.0624 0.7715 0.6332 +vn -0.0759 -0.6326 0.7708 +vn -0.0759 0.6326 0.7708 +vn -0.0624 -0.7715 0.6332 +vn -0.0865 0.4696 0.8786 +vn -0.1374 0.8810 0.4528 +vn -0.2563 -0.4696 0.8448 +vn -0.1847 0.7715 0.6088 +vn -0.2248 -0.6326 0.7412 +vn -0.2248 0.6326 0.7412 +vn -0.1847 -0.7715 0.6088 +vn -0.2563 0.4696 0.8448 +vn -0.1374 -0.8810 0.4528 +vn -0.2779 0.2890 0.9161 +vn -0.0846 -0.9565 0.2790 +vn -0.2889 0.0975 0.9524 +vn -0.0286 0.9951 0.0942 +vn -0.0286 -0.9951 0.0942 +vn -0.2889 -0.0975 0.9524 +vn -0.0846 0.9565 0.2790 +vn -0.2779 -0.2890 0.9161 +vn -0.4513 0.2890 0.8443 +vn -0.1374 -0.9565 0.2571 +vn -0.4691 0.0975 0.8777 +vn -0.0464 0.9951 0.0869 +vn -0.0464 -0.9951 0.0869 +vn -0.4691 -0.0975 0.8777 +vn -0.1374 0.9565 0.2571 +vn -0.4513 -0.2890 0.8443 +vn -0.2230 0.8810 0.4173 +vn -0.4162 -0.4696 0.7786 +vn -0.2999 0.7715 0.5611 +vn -0.3651 -0.6326 0.6831 +vn -0.3651 0.6326 0.6831 +vn -0.2999 -0.7715 0.5611 +vn -0.4162 0.4696 0.7786 +vn -0.2230 -0.8810 0.4173 +vn -0.5601 -0.4696 0.6825 +vn -0.4036 0.7715 0.4918 +vn -0.4913 -0.6326 0.5987 +vn -0.4913 0.6326 0.5987 +vn -0.4036 -0.7715 0.4918 +vn -0.5601 0.4696 0.6825 +vn -0.3002 -0.8810 0.3658 +vn -0.6073 0.2890 0.7400 +vn -0.1850 -0.9565 0.2254 +vn -0.6314 0.0975 0.7693 +vn -0.0625 0.9951 0.0761 +vn -0.0625 -0.9951 0.0761 +vn -0.6314 -0.0975 0.7693 +vn -0.1850 0.9565 0.2254 +vn -0.6073 -0.2890 0.7400 +vn -0.3002 0.8810 0.3658 +vn -0.2254 -0.9565 0.1850 +vn -0.7693 0.0975 0.6314 +vn -0.0761 0.9951 0.0625 +vn -0.0761 -0.9951 0.0625 +vn -0.7693 -0.0975 0.6314 +vn -0.2254 0.9565 0.1850 +vn -0.7400 -0.2890 0.6073 +vn -0.3658 0.8810 0.3002 +vn -0.6825 -0.4696 0.5601 +vn -0.4918 0.7715 0.4036 +vn -0.5987 -0.6326 0.4913 +vn -0.5987 0.6326 0.4913 +vn -0.4918 -0.7715 0.4036 +vn -0.6825 0.4696 0.5601 +vn -0.3658 -0.8810 0.3002 +vn -0.7400 0.2890 0.6073 +vn -0.6831 -0.6326 0.3651 +vn -0.6831 0.6326 0.3651 +vn -0.5611 -0.7715 0.2999 +vn -0.7786 0.4696 0.4162 +vn -0.4173 -0.8810 0.2230 +vn -0.8443 0.2890 0.4513 +vn -0.2571 -0.9565 0.1374 +vn -0.8777 0.0975 0.4691 +vn -0.0869 0.9951 0.0464 +vn -0.0869 -0.9951 0.0464 +vn -0.8777 -0.0975 0.4691 +vn -0.2571 0.9565 0.1374 +vn -0.8443 -0.2890 0.4513 +vn -0.4173 0.8810 0.2230 +vn -0.7786 -0.4696 0.4162 +vn -0.5611 0.7715 0.2999 +vn -0.0942 0.9951 0.0286 +vn -0.0942 -0.9951 0.0286 +vn -0.9524 -0.0975 0.2889 +vn -0.2790 0.9565 0.0846 +vn -0.9161 -0.2890 0.2779 +vn -0.4528 0.8810 0.1374 +vn -0.8448 -0.4696 0.2563 +vn -0.6088 0.7715 0.1847 +vn -0.7412 -0.6326 0.2248 +vn -0.7412 0.6326 0.2248 +vn -0.6088 -0.7715 0.1847 +vn -0.8448 0.4696 0.2563 +vn -0.4528 -0.8810 0.1374 +vn -0.9161 0.2890 0.2779 +vn -0.2790 -0.9565 0.0846 +vn -0.9524 0.0975 0.2889 +vn -0.7708 0.6326 0.0759 +vn -0.6332 -0.7715 0.0624 +vn -0.8786 0.4696 0.0865 +vn -0.4709 -0.8810 0.0464 +vn -0.9527 0.2890 0.0938 +vn -0.2902 -0.9565 0.0286 +vn -0.9904 0.0975 0.0975 +vn -0.0980 0.9951 0.0097 +vn -0.0980 -0.9951 0.0097 +vn -0.9904 -0.0975 0.0975 +vn -0.2902 0.9565 0.0286 +vn -0.9527 -0.2890 0.0938 +vn -0.4709 0.8810 0.0464 +vn -0.8786 -0.4696 0.0865 +vn -0.6332 0.7715 0.0624 +vn -0.7708 -0.6326 0.0759 +vn -0.9904 -0.0975 -0.0976 +vn -0.2902 0.9565 -0.0286 +vn -0.9527 -0.2890 -0.0938 +vn -0.4709 0.8810 -0.0464 +vn -0.8786 -0.4696 -0.0865 +vn -0.6332 0.7715 -0.0624 +vn -0.7708 -0.6326 -0.0759 +vn -0.7708 0.6326 -0.0759 +vn -0.6332 -0.7715 -0.0624 +vn -0.8786 0.4696 -0.0865 +vn -0.4709 -0.8810 -0.0464 +vn -0.9527 0.2890 -0.0938 +vn -0.2902 -0.9565 -0.0286 +vn -0.9904 0.0975 -0.0976 +vn -0.0980 0.9951 -0.0097 +vn -0.0980 -0.9951 -0.0097 +vn -0.6088 -0.7715 -0.1847 +vn -0.8448 0.4696 -0.2563 +vn -0.4528 -0.8810 -0.1374 +vn -0.9161 0.2890 -0.2779 +vn -0.2790 -0.9565 -0.0846 +vn -0.9524 0.0975 -0.2889 +vn -0.0942 0.9951 -0.0286 +vn -0.0942 -0.9951 -0.0286 +vn -0.9524 -0.0975 -0.2889 +vn -0.2790 0.9565 -0.0846 +vn -0.9161 -0.2890 -0.2779 +vn -0.4528 0.8810 -0.1374 +vn -0.8448 -0.4696 -0.2563 +vn -0.6088 0.7715 -0.1847 +vn -0.7412 -0.6326 -0.2248 +vn -0.7412 0.6326 -0.2248 +vn -0.2571 0.9565 -0.1374 +vn -0.8443 -0.2890 -0.4513 +vn -0.4173 0.8810 -0.2231 +vn -0.7786 -0.4696 -0.4162 +vn -0.5611 0.7715 -0.2999 +vn -0.6831 -0.6326 -0.3651 +vn -0.6831 0.6326 -0.3651 +vn -0.5611 -0.7715 -0.2999 +vn -0.7786 0.4696 -0.4162 +vn -0.4173 -0.8810 -0.2231 +vn -0.8443 0.2890 -0.4513 +vn -0.2571 -0.9565 -0.1374 +vn -0.8777 0.0975 -0.4691 +vn -0.0869 0.9951 -0.0464 +vn -0.0869 -0.9951 -0.0464 +vn -0.8777 -0.0975 -0.4691 +vn -0.6825 0.4696 -0.5601 +vn -0.3658 -0.8810 -0.3002 +vn -0.7400 0.2890 -0.6073 +vn -0.2254 -0.9565 -0.1850 +vn -0.7693 0.0975 -0.6314 +vn -0.0761 0.9951 -0.0625 +vn -0.0761 -0.9951 -0.0625 +vn -0.7693 -0.0975 -0.6314 +vn -0.2254 0.9565 -0.1850 +vn -0.7400 -0.2890 -0.6073 +vn -0.3658 0.8810 -0.3002 +vn -0.6825 -0.4696 -0.5601 +vn -0.4918 0.7715 -0.4036 +vn -0.5987 -0.6326 -0.4913 +vn -0.5987 0.6326 -0.4913 +vn -0.4918 -0.7715 -0.4036 +vn -0.6073 -0.2890 -0.7400 +vn -0.3002 0.8810 -0.3658 +vn -0.5601 -0.4696 -0.6825 +vn -0.4036 0.7715 -0.4918 +vn -0.4913 -0.6326 -0.5987 +vn -0.4913 0.6326 -0.5987 +vn -0.4036 -0.7715 -0.4918 +vn -0.5601 0.4696 -0.6825 +vn -0.3002 -0.8810 -0.3658 +vn -0.6073 0.2890 -0.7400 +vn -0.1850 -0.9565 -0.2254 +vn -0.6314 0.0975 -0.7693 +vn -0.0625 0.9951 -0.0761 +vn -0.0625 -0.9951 -0.0761 +vn -0.6314 -0.0975 -0.7693 +vn -0.1850 0.9565 -0.2254 +vn -0.2230 -0.8810 -0.4173 +vn -0.4513 0.2890 -0.8443 +vn -0.1374 -0.9565 -0.2571 +vn -0.4691 0.0975 -0.8777 +vn -0.0464 0.9951 -0.0869 +vn -0.0464 -0.9951 -0.0869 +vn -0.4691 -0.0975 -0.8777 +vn -0.1374 0.9565 -0.2571 +vn -0.4513 -0.2890 -0.8443 +vn -0.2230 0.8810 -0.4173 +vn -0.4162 -0.4696 -0.7786 +vn -0.2999 0.7715 -0.5611 +vn -0.3651 -0.6326 -0.6831 +vn -0.3651 0.6326 -0.6831 +vn -0.2999 -0.7715 -0.5611 +vn -0.4162 0.4696 -0.7786 +vn -0.2563 -0.4696 -0.8448 +vn -0.1847 0.7715 -0.6088 +vn -0.2248 -0.6326 -0.7412 +vn -0.2248 0.6326 -0.7412 +vn -0.1847 -0.7715 -0.6088 +vn -0.2563 0.4696 -0.8448 +vn -0.1374 -0.8810 -0.4528 +vn -0.2779 0.2890 -0.9161 +vn -0.0846 -0.9565 -0.2790 +vn -0.2889 0.0975 -0.9524 +vn -0.0286 0.9951 -0.0942 +vn -0.0286 -0.9951 -0.0942 +vn -0.2889 -0.0975 -0.9524 +vn -0.0846 0.9565 -0.2790 +vn -0.2779 -0.2890 -0.9161 +vn -0.1374 0.8810 -0.4528 +vn -0.0286 -0.9565 -0.2902 +vn -0.0976 0.0975 -0.9904 +vn -0.0097 0.9951 -0.0980 +vn -0.0097 -0.9951 -0.0980 +vn -0.0976 -0.0975 -0.9904 +vn -0.0286 0.9565 -0.2902 +vn -0.0938 -0.2890 -0.9527 +vn -0.0464 0.8810 -0.4709 +vn -0.0865 -0.4696 -0.8786 +vn -0.0624 0.7715 -0.6332 +vn -0.0759 -0.6326 -0.7708 +vn -0.0759 0.6326 -0.7708 +vn -0.0624 -0.7715 -0.6332 +vn -0.0865 0.4696 -0.8786 +vn -0.0464 -0.8810 -0.4709 +vn -0.0938 0.2890 -0.9527 +vt 0.750000 0.562500 +vt 0.750000 0.625000 +vt 0.718750 0.625000 +vt 0.718750 0.562500 +vt 0.750000 0.062500 +vt 0.750000 0.125000 +vt 0.718750 0.125000 +vt 0.718750 0.062500 +vt 0.750000 0.500000 +vt 0.718750 0.500000 +vt 0.750000 0.937500 +vt 0.734375 1.000000 +vt 0.718750 0.937500 +vt 0.734375 0.000000 +vt 0.750000 0.437500 +vt 0.718750 0.437500 +vt 0.750000 0.875000 +vt 0.718750 0.875000 +vt 0.750000 0.375000 +vt 0.718750 0.375000 +vt 0.750000 0.812500 +vt 0.718750 0.812500 +vt 0.750000 0.312500 +vt 0.718750 0.312500 +vt 0.750000 0.750000 +vt 0.718750 0.750000 +vt 0.750000 0.250000 +vt 0.718750 0.250000 +vt 0.750000 0.687500 +vt 0.718750 0.687500 +vt 0.750000 0.187500 +vt 0.718750 0.187500 +vt 0.687500 0.250000 +vt 0.687500 0.187500 +vt 0.687500 0.687500 +vt 0.687500 0.625000 +vt 0.687500 0.125000 +vt 0.687500 0.562500 +vt 0.687500 0.062500 +vt 0.687500 0.500000 +vt 0.703125 1.000000 +vt 0.687500 0.937500 +vt 0.703125 0.000000 +vt 0.687500 0.437500 +vt 0.687500 0.875000 +vt 0.687500 0.375000 +vt 0.687500 0.812500 +vt 0.687500 0.312500 +vt 0.687500 0.750000 +vt 0.656250 0.437500 +vt 0.656250 0.375000 +vt 0.656250 0.875000 +vt 0.656250 0.812500 +vt 0.656250 0.312500 +vt 0.656250 0.750000 +vt 0.656250 0.250000 +vt 0.656250 0.687500 +vt 0.656250 0.187500 +vt 0.656250 0.625000 +vt 0.656250 0.125000 +vt 0.656250 0.562500 +vt 0.656250 0.062500 +vt 0.656250 0.500000 +vt 0.671875 1.000000 +vt 0.656250 0.937500 +vt 0.671875 0.000000 +vt 0.625000 0.187500 +vt 0.625000 0.125000 +vt 0.625000 0.625000 +vt 0.625000 0.562500 +vt 0.625000 0.062500 +vt 0.625000 0.500000 +vt 0.640625 1.000000 +vt 0.625000 0.937500 +vt 0.640625 0.000000 +vt 0.625000 0.437500 +vt 0.625000 0.875000 +vt 0.625000 0.375000 +vt 0.625000 0.812500 +vt 0.625000 0.312500 +vt 0.625000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.687500 +vt 0.593750 0.875000 +vt 0.593750 0.812500 +vt 0.593750 0.375000 +vt 0.593750 0.312500 +vt 0.593750 0.750000 +vt 0.593750 0.250000 +vt 0.593750 0.687500 +vt 0.593750 0.187500 +vt 0.593750 0.625000 +vt 0.593750 0.125000 +vt 0.593750 0.562500 +vt 0.593750 0.062500 +vt 0.593750 0.500000 +vt 0.609375 1.000000 +vt 0.593750 0.937500 +vt 0.609375 0.000000 +vt 0.593750 0.437500 +vt 0.562500 0.625000 +vt 0.562500 0.562500 +vt 0.562500 0.125000 +vt 0.562500 0.062500 +vt 0.562500 0.500000 +vt 0.578125 1.000000 +vt 0.562500 0.937500 +vt 0.578125 0.000000 +vt 0.562500 0.437500 +vt 0.562500 0.875000 +vt 0.562500 0.375000 +vt 0.562500 0.812500 +vt 0.562500 0.312500 +vt 0.562500 0.750000 +vt 0.562500 0.250000 +vt 0.562500 0.687500 +vt 0.562500 0.187500 +vt 0.531250 0.375000 +vt 0.531250 0.312500 +vt 0.531250 0.812500 +vt 0.531250 0.750000 +vt 0.531250 0.250000 +vt 0.531250 0.687500 +vt 0.531250 0.187500 +vt 0.531250 0.625000 +vt 0.531250 0.125000 +vt 0.531250 0.562500 +vt 0.531250 0.062500 +vt 0.531250 0.500000 +vt 0.546875 1.000000 +vt 0.531250 0.937500 +vt 0.546875 0.000000 +vt 0.531250 0.437500 +vt 0.531250 0.875000 +vt 0.500000 0.125000 +vt 0.500000 0.062500 +vt 0.500000 0.562500 +vt 0.500000 0.500000 +vt 0.515625 1.000000 +vt 0.500000 0.937500 +vt 0.515625 0.000000 +vt 0.500000 0.437500 +vt 0.500000 0.875000 +vt 0.500000 0.375000 +vt 0.500000 0.812500 +vt 0.500000 0.312500 +vt 0.500000 0.750000 +vt 0.500000 0.250000 +vt 0.500000 0.687500 +vt 0.500000 0.187500 +vt 0.500000 0.625000 +vt 0.468750 0.812500 +vt 0.468750 0.750000 +vt 0.468750 0.312500 +vt 0.468750 0.250000 +vt 0.468750 0.687500 +vt 0.468750 0.187500 +vt 0.468750 0.625000 +vt 0.468750 0.125000 +vt 0.468750 0.562500 +vt 0.468750 0.062500 +vt 0.468750 0.500000 +vt 0.484375 1.000000 +vt 0.468750 0.937500 +vt 0.484375 0.000000 +vt 0.468750 0.437500 +vt 0.468750 0.875000 +vt 0.468750 0.375000 +vt 0.437500 0.562500 +vt 0.437500 0.500000 +vt 0.453125 1.000000 +vt 0.437500 0.937500 +vt 0.453125 0.000000 +vt 0.437500 0.062500 +vt 0.437500 0.437500 +vt 0.437500 0.875000 +vt 0.437500 0.375000 +vt 0.437500 0.812500 +vt 0.437500 0.312500 +vt 0.437500 0.750000 +vt 0.437500 0.250000 +vt 0.437500 0.687500 +vt 0.437500 0.187500 +vt 0.437500 0.625000 +vt 0.437500 0.125000 +vt 0.406250 0.312500 +vt 0.406250 0.250000 +vt 0.406250 0.750000 +vt 0.406250 0.687500 +vt 0.406250 0.187500 +vt 0.406250 0.625000 +vt 0.406250 0.125000 +vt 0.406250 0.562500 +vt 0.406250 0.062500 +vt 0.406250 0.500000 +vt 0.421875 1.000000 +vt 0.406250 0.937500 +vt 0.421875 0.000000 +vt 0.406250 0.437500 +vt 0.406250 0.875000 +vt 0.406250 0.375000 +vt 0.406250 0.812500 +vt 0.390625 0.000000 +vt 0.375000 0.062500 +vt 0.375000 0.500000 +vt 0.375000 0.437500 +vt 0.375000 0.937500 +vt 0.375000 0.875000 +vt 0.375000 0.375000 +vt 0.375000 0.812500 +vt 0.375000 0.312500 +vt 0.375000 0.750000 +vt 0.375000 0.250000 +vt 0.375000 0.687500 +vt 0.375000 0.187500 +vt 0.375000 0.625000 +vt 0.375000 0.125000 +vt 0.375000 0.562500 +vt 0.390625 1.000000 +vt 0.343750 0.250000 +vt 0.343750 0.187500 +vt 0.343750 0.687500 +vt 0.343750 0.625000 +vt 0.343750 0.125000 +vt 0.343750 0.562500 +vt 0.343750 0.062500 +vt 0.343750 0.500000 +vt 0.359375 1.000000 +vt 0.343750 0.937500 +vt 0.359375 0.000000 +vt 0.343750 0.437500 +vt 0.343750 0.875000 +vt 0.343750 0.375000 +vt 0.343750 0.812500 +vt 0.343750 0.312500 +vt 0.343750 0.750000 +vt 0.312500 0.937500 +vt 0.312500 0.875000 +vt 0.312500 0.437500 +vt 0.312500 0.375000 +vt 0.312500 0.812500 +vt 0.312500 0.312500 +vt 0.312500 0.750000 +vt 0.312500 0.250000 +vt 0.312500 0.687500 +vt 0.312500 0.187500 +vt 0.312500 0.625000 +vt 0.312500 0.125000 +vt 0.312500 0.562500 +vt 0.312500 0.062500 +vt 0.312500 0.500000 +vt 0.328125 1.000000 +vt 0.328125 0.000000 +vt 0.281250 0.687500 +vt 0.281250 0.625000 +vt 0.281250 0.187500 +vt 0.281250 0.125000 +vt 0.281250 0.562500 +vt 0.281250 0.062500 +vt 0.281250 0.500000 +vt 0.296875 1.000000 +vt 0.281250 0.937500 +vt 0.296875 0.000000 +vt 0.281250 0.437500 +vt 0.281250 0.875000 +vt 0.281250 0.375000 +vt 0.281250 0.812500 +vt 0.281250 0.312500 +vt 0.281250 0.750000 +vt 0.281250 0.250000 +vt 0.250000 0.437500 +vt 0.250000 0.375000 +vt 0.250000 0.875000 +vt 0.250000 0.812500 +vt 0.250000 0.312500 +vt 0.250000 0.750000 +vt 0.250000 0.250000 +vt 0.250000 0.687500 +vt 0.250000 0.187500 +vt 0.250000 0.625000 +vt 0.250000 0.125000 +vt 0.250000 0.562500 +vt 0.250000 0.062500 +vt 0.250000 0.500000 +vt 0.265625 1.000000 +vt 0.250000 0.937500 +vt 0.265625 0.000000 +vt 0.218750 0.187500 +vt 0.218750 0.125000 +vt 0.218750 0.625000 +vt 0.218750 0.562500 +vt 0.218750 0.062500 +vt 0.218750 0.500000 +vt 0.234375 1.000000 +vt 0.218750 0.937500 +vt 0.234375 0.000000 +vt 0.218750 0.437500 +vt 0.218750 0.875000 +vt 0.218750 0.375000 +vt 0.218750 0.812500 +vt 0.218750 0.312500 +vt 0.218750 0.750000 +vt 0.218750 0.250000 +vt 0.218750 0.687500 +vt 0.187500 0.875000 +vt 0.187500 0.812500 +vt 0.187500 0.375000 +vt 0.187500 0.312500 +vt 0.187500 0.750000 +vt 0.187500 0.250000 +vt 0.187500 0.687500 +vt 0.187500 0.187500 +vt 0.187500 0.625000 +vt 0.187500 0.125000 +vt 0.187500 0.562500 +vt 0.187500 0.062500 +vt 0.187500 0.500000 +vt 0.203125 1.000000 +vt 0.187500 0.937500 +vt 0.203125 0.000000 +vt 0.187500 0.437500 +vt 0.156250 0.625000 +vt 0.156250 0.562500 +vt 0.156250 0.125000 +vt 0.156250 0.062500 +vt 0.156250 0.500000 +vt 0.171875 1.000000 +vt 0.156250 0.937500 +vt 0.171875 0.000000 +vt 0.156250 0.437500 +vt 0.156250 0.875000 +vt 0.156250 0.375000 +vt 0.156250 0.812500 +vt 0.156250 0.312500 +vt 0.156250 0.750000 +vt 0.156250 0.250000 +vt 0.156250 0.687500 +vt 0.156250 0.187500 +vt 0.125000 0.375000 +vt 0.125000 0.312500 +vt 0.125000 0.812500 +vt 0.125000 0.750000 +vt 0.125000 0.250000 +vt 0.125000 0.687500 +vt 0.125000 0.187500 +vt 0.125000 0.625000 +vt 0.125000 0.125000 +vt 0.125000 0.562500 +vt 0.125000 0.062500 +vt 0.125000 0.500000 +vt 0.140625 1.000000 +vt 0.125000 0.937500 +vt 0.140625 0.000000 +vt 0.125000 0.437500 +vt 0.125000 0.875000 +vt 0.093750 0.125000 +vt 0.093750 0.062500 +vt 0.093750 0.562500 +vt 0.093750 0.500000 +vt 0.109375 1.000000 +vt 0.093750 0.937500 +vt 0.109375 0.000000 +vt 0.093750 0.437500 +vt 0.093750 0.875000 +vt 0.093750 0.375000 +vt 0.093750 0.812500 +vt 0.093750 0.312500 +vt 0.093750 0.750000 +vt 0.093750 0.250000 +vt 0.093750 0.687500 +vt 0.093750 0.187500 +vt 0.093750 0.625000 +vt 0.062500 0.312500 +vt 0.062500 0.250000 +vt 0.062500 0.750000 +vt 0.062500 0.687500 +vt 0.062500 0.187500 +vt 0.062500 0.625000 +vt 0.062500 0.125000 +vt 0.062500 0.562500 +vt 0.062500 0.062500 +vt 0.062500 0.500000 +vt 0.078125 1.000000 +vt 0.062500 0.937500 +vt 0.078125 0.000000 +vt 0.062500 0.437500 +vt 0.062500 0.875000 +vt 0.062500 0.375000 +vt 0.062500 0.812500 +vt 0.046875 1.000000 +vt 0.031250 0.937500 +vt 0.046875 0.000000 +vt 0.031250 0.062500 +vt 0.031250 0.500000 +vt 0.031250 0.437500 +vt 0.031250 0.875000 +vt 0.031250 0.375000 +vt 0.031250 0.812500 +vt 0.031250 0.312500 +vt 0.031250 0.750000 +vt 0.031250 0.250000 +vt 0.031250 0.687500 +vt 0.031250 0.187500 +vt 0.031250 0.625000 +vt 0.031250 0.125000 +vt 0.031250 0.562500 +vt 0.000000 0.750000 +vt 0.000000 0.687500 +vt 0.000000 0.250000 +vt 0.000000 0.187500 +vt 0.000000 0.625000 +vt 0.000000 0.125000 +vt 0.000000 0.562500 +vt 0.000000 0.062500 +vt 0.000000 0.500000 +vt 0.015625 1.000000 +vt 0.000000 0.937500 +vt 0.015625 0.000000 +vt 0.000000 0.437500 +vt 0.000000 0.875000 +vt 0.000000 0.375000 +vt 0.000000 0.812500 +vt 0.000000 0.312500 +vt 1.000000 0.437500 +vt 1.000000 0.500000 +vt 0.968750 0.500000 +vt 0.968750 0.437500 +vt 1.000000 0.875000 +vt 1.000000 0.937500 +vt 0.968750 0.937500 +vt 0.968750 0.875000 +vt 1.000000 0.375000 +vt 0.968750 0.375000 +vt 1.000000 0.812500 +vt 0.968750 0.812500 +vt 1.000000 0.312500 +vt 0.968750 0.312500 +vt 1.000000 0.750000 +vt 0.968750 0.750000 +vt 1.000000 0.250000 +vt 0.968750 0.250000 +vt 1.000000 0.687500 +vt 0.968750 0.687500 +vt 1.000000 0.187500 +vt 0.968750 0.187500 +vt 1.000000 0.625000 +vt 0.968750 0.625000 +vt 1.000000 0.125000 +vt 0.968750 0.125000 +vt 1.000000 0.562500 +vt 0.968750 0.562500 +vt 1.000000 0.062500 +vt 0.968750 0.062500 +vt 0.984375 1.000000 +vt 0.984375 0.000000 +vt 0.937500 0.250000 +vt 0.937500 0.187500 +vt 0.937500 0.687500 +vt 0.937500 0.625000 +vt 0.937500 0.125000 +vt 0.937500 0.562500 +vt 0.937500 0.062500 +vt 0.937500 0.500000 +vt 0.953125 1.000000 +vt 0.937500 0.937500 +vt 0.953125 0.000000 +vt 0.937500 0.437500 +vt 0.937500 0.875000 +vt 0.937500 0.375000 +vt 0.937500 0.812500 +vt 0.937500 0.312500 +vt 0.937500 0.750000 +vt 0.906250 0.937500 +vt 0.906250 0.875000 +vt 0.906250 0.437500 +vt 0.906250 0.375000 +vt 0.906250 0.812500 +vt 0.906250 0.312500 +vt 0.906250 0.750000 +vt 0.906250 0.250000 +vt 0.906250 0.687500 +vt 0.906250 0.187500 +vt 0.906250 0.625000 +vt 0.906250 0.125000 +vt 0.906250 0.562500 +vt 0.906250 0.062500 +vt 0.906250 0.500000 +vt 0.921875 1.000000 +vt 0.921875 0.000000 +vt 0.875000 0.687500 +vt 0.875000 0.625000 +vt 0.875000 0.187500 +vt 0.875000 0.125000 +vt 0.875000 0.562500 +vt 0.875000 0.062500 +vt 0.875000 0.500000 +vt 0.890625 1.000000 +vt 0.875000 0.937500 +vt 0.890625 0.000000 +vt 0.875000 0.437500 +vt 0.875000 0.875000 +vt 0.875000 0.375000 +vt 0.875000 0.812500 +vt 0.875000 0.312500 +vt 0.875000 0.750000 +vt 0.875000 0.250000 +vt 0.843750 0.437500 +vt 0.843750 0.375000 +vt 0.843750 0.875000 +vt 0.843750 0.812500 +vt 0.843750 0.312500 +vt 0.843750 0.750000 +vt 0.843750 0.250000 +vt 0.843750 0.687500 +vt 0.843750 0.187500 +vt 0.843750 0.625000 +vt 0.843750 0.125000 +vt 0.843750 0.562500 +vt 0.843750 0.062500 +vt 0.843750 0.500000 +vt 0.859375 1.000000 +vt 0.843750 0.937500 +vt 0.859375 0.000000 +vt 0.812500 0.187500 +vt 0.812500 0.125000 +vt 0.812500 0.625000 +vt 0.812500 0.562500 +vt 0.812500 0.062500 +vt 0.812500 0.500000 +vt 0.828125 1.000000 +vt 0.812500 0.937500 +vt 0.828125 0.000000 +vt 0.812500 0.437500 +vt 0.812500 0.875000 +vt 0.812500 0.375000 +vt 0.812500 0.812500 +vt 0.812500 0.312500 +vt 0.812500 0.750000 +vt 0.812500 0.250000 +vt 0.812500 0.687500 +vt 0.781250 0.375000 +vt 0.781250 0.312500 +vt 0.781250 0.812500 +vt 0.781250 0.750000 +vt 0.781250 0.250000 +vt 0.781250 0.687500 +vt 0.781250 0.187500 +vt 0.781250 0.625000 +vt 0.781250 0.125000 +vt 0.781250 0.562500 +vt 0.781250 0.062500 +vt 0.781250 0.500000 +vt 0.796875 1.000000 +vt 0.781250 0.937500 +vt 0.796875 0.000000 +vt 0.781250 0.437500 +vt 0.781250 0.875000 +vt 0.765625 1.000000 +vt 0.765625 0.000000 +s 0 +f 3/1/1 477/2/1 12/3/1 13/4/1 +f 482/5/2 481/6/2 20/7/2 21/8/2 +f 4/9/3 3/1/3 13/4/3 14/10/3 +f 474/11/4 82/12/4 7/13/4 +f 308/14/5 482/5/5 21/8/5 +f 5/15/6 4/9/6 14/10/6 15/16/6 +f 475/17/7 474/11/7 7/13/7 8/18/7 +f 478/19/8 5/15/8 15/16/8 16/20/8 +f 1/21/9 475/17/9 8/18/9 9/22/9 +f 6/23/10 478/19/10 16/20/10 17/24/10 +f 476/25/11 1/21/11 9/22/11 10/26/11 +f 479/27/12 6/23/12 17/24/12 18/28/12 +f 2/29/13 476/25/13 10/26/13 11/30/13 +f 480/31/14 479/27/14 18/28/14 19/32/14 +f 477/2/15 2/29/15 11/30/15 12/3/15 +f 481/6/16 480/31/16 19/32/16 20/7/16 +f 19/32/17 18/28/17 33/33/17 34/34/17 +f 12/3/18 11/30/18 26/35/18 27/36/18 +f 20/7/19 19/32/19 34/34/19 35/37/19 +f 13/4/20 12/3/20 27/36/20 28/38/20 +f 21/8/21 20/7/21 35/37/21 36/39/21 +f 14/10/22 13/4/22 28/38/22 29/40/22 +f 7/13/23 82/41/23 22/42/23 +f 308/43/24 21/8/24 36/39/24 +f 15/16/25 14/10/25 29/40/25 30/44/25 +f 8/18/26 7/13/26 22/42/26 23/45/26 +f 16/20/27 15/16/27 30/44/27 31/46/27 +f 9/22/28 8/18/28 23/45/28 24/47/28 +f 17/24/29 16/20/29 31/46/29 32/48/29 +f 10/26/30 9/22/30 24/47/30 25/49/30 +f 18/28/31 17/24/31 32/48/31 33/33/31 +f 11/30/32 10/26/32 25/49/32 26/35/32 +f 31/46/33 30/44/33 45/50/33 46/51/33 +f 24/47/34 23/45/34 38/52/34 39/53/34 +f 32/48/35 31/46/35 46/51/35 47/54/35 +f 25/49/36 24/47/36 39/53/36 40/55/36 +f 33/33/37 32/48/37 47/54/37 48/56/37 +f 26/35/38 25/49/38 40/55/38 41/57/38 +f 34/34/39 33/33/39 48/56/39 49/58/39 +f 27/36/40 26/35/40 41/57/40 42/59/40 +f 35/37/41 34/34/41 49/58/41 50/60/41 +f 28/38/42 27/36/42 42/59/42 43/61/42 +f 36/39/43 35/37/43 50/60/43 51/62/43 +f 29/40/44 28/38/44 43/61/44 44/63/44 +f 22/42/45 82/64/45 37/65/45 +f 308/66/46 36/39/46 51/62/46 +f 30/44/47 29/40/47 44/63/47 45/50/47 +f 23/45/48 22/42/48 37/65/48 38/52/48 +f 50/60/49 49/58/49 64/67/49 65/68/49 +f 43/61/50 42/59/50 57/69/50 58/70/50 +f 51/62/51 50/60/51 65/68/51 66/71/51 +f 44/63/52 43/61/52 58/70/52 59/72/52 +f 37/65/53 82/73/53 52/74/53 +f 308/75/54 51/62/54 66/71/54 +f 45/50/55 44/63/55 59/72/55 60/76/55 +f 38/52/56 37/65/56 52/74/56 53/77/56 +f 46/51/57 45/50/57 60/76/57 61/78/57 +f 39/53/58 38/52/58 53/77/58 54/79/58 +f 47/54/59 46/51/59 61/78/59 62/80/59 +f 40/55/60 39/53/60 54/79/60 55/81/60 +f 48/56/61 47/54/61 62/80/61 63/82/61 +f 41/57/62 40/55/62 55/81/62 56/83/62 +f 49/58/63 48/56/63 63/82/63 64/67/63 +f 42/59/64 41/57/64 56/83/64 57/69/64 +f 54/79/65 53/77/65 68/84/65 69/85/65 +f 62/80/66 61/78/66 76/86/66 77/87/66 +f 55/81/67 54/79/67 69/85/67 70/88/67 +f 63/82/68 62/80/68 77/87/68 78/89/68 +f 56/83/69 55/81/69 70/88/69 71/90/69 +f 64/67/70 63/82/70 78/89/70 79/91/70 +f 57/69/71 56/83/71 71/90/71 72/92/71 +f 65/68/72 64/67/72 79/91/72 80/93/72 +f 58/70/73 57/69/73 72/92/73 73/94/73 +f 66/71/74 65/68/74 80/93/74 81/95/74 +f 59/72/75 58/70/75 73/94/75 74/96/75 +f 52/74/76 82/97/76 67/98/76 +f 308/99/77 66/71/77 81/95/77 +f 60/76/78 59/72/78 74/96/78 75/100/78 +f 53/77/79 52/74/79 67/98/79 68/84/79 +f 61/78/80 60/76/80 75/100/80 76/86/80 +f 73/94/81 72/92/81 88/101/81 89/102/81 +f 81/95/82 80/93/82 96/103/82 97/104/82 +f 74/96/83 73/94/83 89/102/83 90/105/83 +f 67/98/84 82/106/84 83/107/84 +f 308/108/85 81/95/85 97/104/85 +f 75/100/86 74/96/86 90/105/86 91/109/86 +f 68/84/87 67/98/87 83/107/87 84/110/87 +f 76/86/88 75/100/88 91/109/88 92/111/88 +f 69/85/89 68/84/89 84/110/89 85/112/89 +f 77/87/90 76/86/90 92/111/90 93/113/90 +f 70/88/91 69/85/91 85/112/91 86/114/91 +f 78/89/92 77/87/92 93/113/92 94/115/92 +f 71/90/93 70/88/93 86/114/93 87/116/93 +f 79/91/94 78/89/94 94/115/94 95/117/94 +f 72/92/95 71/90/95 87/116/95 88/101/95 +f 80/93/96 79/91/96 95/117/96 96/103/96 +f 93/113/97 92/111/97 107/118/97 108/119/97 +f 86/114/98 85/112/98 100/120/98 101/121/98 +f 94/115/99 93/113/99 108/119/99 109/122/99 +f 87/116/100 86/114/100 101/121/100 102/123/100 +f 95/117/101 94/115/101 109/122/101 110/124/101 +f 88/101/102 87/116/102 102/123/102 103/125/102 +f 96/103/103 95/117/103 110/124/103 111/126/103 +f 89/102/104 88/101/104 103/125/104 104/127/104 +f 97/104/105 96/103/105 111/126/105 112/128/105 +f 90/105/106 89/102/106 104/127/106 105/129/106 +f 83/107/107 82/130/107 98/131/107 +f 308/132/108 97/104/108 112/128/108 +f 91/109/109 90/105/109 105/129/109 106/133/109 +f 84/110/110 83/107/110 98/131/110 99/134/110 +f 92/111/111 91/109/111 106/133/111 107/118/111 +f 85/112/112 84/110/112 99/134/112 100/120/112 +f 112/128/113 111/126/113 126/135/113 127/136/113 +f 105/129/114 104/127/114 119/137/114 120/138/114 +f 98/131/115 82/139/115 113/140/115 +f 308/141/116 112/128/116 127/136/116 +f 106/133/117 105/129/117 120/138/117 121/142/117 +f 99/134/118 98/131/118 113/140/118 114/143/118 +f 107/118/119 106/133/119 121/142/119 122/144/119 +f 100/120/120 99/134/120 114/143/120 115/145/120 +f 108/119/121 107/118/121 122/144/121 123/146/121 +f 101/121/122 100/120/122 115/145/122 116/147/122 +f 109/122/123 108/119/123 123/146/123 124/148/123 +f 102/123/124 101/121/124 116/147/124 117/149/124 +f 110/124/125 109/122/125 124/148/125 125/150/125 +f 103/125/126 102/123/126 117/149/126 118/151/126 +f 111/126/127 110/124/127 125/150/127 126/135/127 +f 104/127/128 103/125/128 118/151/128 119/137/128 +f 116/147/129 115/145/129 130/152/129 131/153/129 +f 124/148/130 123/146/130 138/154/130 139/155/130 +f 117/149/131 116/147/131 131/153/131 132/156/131 +f 125/150/132 124/148/132 139/155/132 140/157/132 +f 118/151/133 117/149/133 132/156/133 133/158/133 +f 126/135/134 125/150/134 140/157/134 141/159/134 +f 119/137/135 118/151/135 133/158/135 134/160/135 +f 127/136/136 126/135/136 141/159/136 142/161/136 +f 120/138/137 119/137/137 134/160/137 135/162/137 +f 113/140/138 82/163/138 128/164/138 +f 308/165/139 127/136/139 142/161/139 +f 121/142/140 120/138/140 135/162/140 136/166/140 +f 114/143/141 113/140/141 128/164/141 129/167/141 +f 122/144/142 121/142/142 136/166/142 137/168/142 +f 115/145/143 114/143/143 129/167/143 130/152/143 +f 123/146/144 122/144/144 137/168/144 138/154/144 +f 135/162/145 134/160/145 149/169/145 150/170/145 +f 128/164/146 82/171/146 143/172/146 +f 308/173/147 142/161/147 157/174/147 +f 136/166/148 135/162/148 150/170/148 151/175/148 +f 129/167/149 128/164/149 143/172/149 144/176/149 +f 137/168/150 136/166/150 151/175/150 152/177/150 +f 130/152/151 129/167/151 144/176/151 145/178/151 +f 138/154/152 137/168/152 152/177/152 153/179/152 +f 131/153/153 130/152/153 145/178/153 146/180/153 +f 139/155/154 138/154/154 153/179/154 154/181/154 +f 132/156/155 131/153/155 146/180/155 147/182/155 +f 140/157/156 139/155/156 154/181/156 155/183/156 +f 133/158/157 132/156/157 147/182/157 148/184/157 +f 141/159/158 140/157/158 155/183/158 156/185/158 +f 134/160/159 133/158/159 148/184/159 149/169/159 +f 142/161/160 141/159/160 156/185/160 157/174/160 +f 154/181/161 153/179/161 168/186/161 169/187/161 +f 147/182/162 146/180/162 161/188/162 162/189/162 +f 155/183/163 154/181/163 169/187/163 170/190/163 +f 148/184/164 147/182/164 162/189/164 163/191/164 +f 156/185/165 155/183/165 170/190/165 171/192/165 +f 149/169/166 148/184/166 163/191/166 164/193/166 +f 157/174/167 156/185/167 171/192/167 172/194/167 +f 150/170/168 149/169/168 164/193/168 165/195/168 +f 143/172/169 82/196/169 158/197/169 +f 308/198/170 157/174/170 172/194/170 +f 151/175/171 150/170/171 165/195/171 166/199/171 +f 144/176/172 143/172/172 158/197/172 159/200/172 +f 152/177/173 151/175/173 166/199/173 167/201/173 +f 145/178/174 144/176/174 159/200/174 160/202/174 +f 153/179/175 152/177/175 167/201/175 168/186/175 +f 146/180/176 145/178/176 160/202/176 161/188/176 +f 308/203/177 172/194/177 187/204/177 +f 166/199/178 165/195/178 180/205/178 181/206/178 +f 159/200/179 158/197/179 173/207/179 174/208/179 +f 167/201/180 166/199/180 181/206/180 182/209/180 +f 160/202/181 159/200/181 174/208/181 175/210/181 +f 168/186/182 167/201/182 182/209/182 183/211/182 +f 161/188/183 160/202/183 175/210/183 176/212/183 +f 169/187/184 168/186/184 183/211/184 184/213/184 +f 162/189/185 161/188/185 176/212/185 177/214/185 +f 170/190/186 169/187/186 184/213/186 185/215/186 +f 163/191/187 162/189/187 177/214/187 178/216/187 +f 171/192/188 170/190/188 185/215/188 186/217/188 +f 164/193/189 163/191/189 178/216/189 179/218/189 +f 172/194/190 171/192/190 186/217/190 187/204/190 +f 165/195/191 164/193/191 179/218/191 180/205/191 +f 158/197/192 82/219/192 173/207/192 +f 185/215/193 184/213/193 199/220/193 200/221/193 +f 178/216/194 177/214/194 192/222/194 193/223/194 +f 186/217/195 185/215/195 200/221/195 201/224/195 +f 179/218/196 178/216/196 193/223/196 194/225/196 +f 187/204/197 186/217/197 201/224/197 202/226/197 +f 180/205/198 179/218/198 194/225/198 195/227/198 +f 173/207/199 82/228/199 188/229/199 +f 308/230/200 187/204/200 202/226/200 +f 181/206/201 180/205/201 195/227/201 196/231/201 +f 174/208/202 173/207/202 188/229/202 189/232/202 +f 182/209/203 181/206/203 196/231/203 197/233/203 +f 175/210/204 174/208/204 189/232/204 190/234/204 +f 183/211/205 182/209/205 197/233/205 198/235/205 +f 176/212/206 175/210/206 190/234/206 191/236/206 +f 184/213/207 183/211/207 198/235/207 199/220/207 +f 177/214/208 176/212/208 191/236/208 192/222/208 +f 189/232/209 188/229/209 203/237/209 204/238/209 +f 197/233/210 196/231/210 211/239/210 212/240/210 +f 190/234/211 189/232/211 204/238/211 205/241/211 +f 198/235/212 197/233/212 212/240/212 213/242/212 +f 191/236/213 190/234/213 205/241/213 206/243/213 +f 199/220/214 198/235/214 213/242/214 214/244/214 +f 192/222/215 191/236/215 206/243/215 207/245/215 +f 200/221/216 199/220/216 214/244/216 215/246/216 +f 193/223/217 192/222/217 207/245/217 208/247/217 +f 201/224/218 200/221/218 215/246/218 216/248/218 +f 194/225/219 193/223/219 208/247/219 209/249/219 +f 202/226/220 201/224/220 216/248/220 217/250/220 +f 195/227/221 194/225/221 209/249/221 210/251/221 +f 188/229/222 82/252/222 203/237/222 +f 308/253/223 202/226/223 217/250/223 +f 196/231/224 195/227/224 210/251/224 211/239/224 +f 208/247/225 207/245/225 222/254/225 223/255/225 +f 216/248/226 215/246/226 230/256/226 231/257/226 +f 209/249/227 208/247/227 223/255/227 224/258/227 +f 217/250/228 216/248/228 231/257/228 232/259/228 +f 210/251/229 209/249/229 224/258/229 225/260/229 +f 203/237/230 82/261/230 218/262/230 +f 308/263/231 217/250/231 232/259/231 +f 211/239/232 210/251/232 225/260/232 226/264/232 +f 204/238/233 203/237/233 218/262/233 219/265/233 +f 212/240/234 211/239/234 226/264/234 227/266/234 +f 205/241/235 204/238/235 219/265/235 220/267/235 +f 213/242/236 212/240/236 227/266/236 228/268/236 +f 206/243/237 205/241/237 220/267/237 221/269/237 +f 214/244/238 213/242/238 228/268/238 229/270/238 +f 207/245/239 206/243/239 221/269/239 222/254/239 +f 215/246/240 214/244/240 229/270/240 230/256/240 +f 227/266/241 226/264/241 241/271/241 242/272/241 +f 220/267/242 219/265/242 234/273/242 235/274/242 +f 228/268/243 227/266/243 242/272/243 243/275/243 +f 221/269/244 220/267/244 235/274/244 236/276/244 +f 229/270/245 228/268/245 243/275/245 244/277/245 +f 222/254/246 221/269/246 236/276/246 237/278/246 +f 230/256/247 229/270/247 244/277/247 245/279/247 +f 223/255/248 222/254/248 237/278/248 238/280/248 +f 231/257/249 230/256/249 245/279/249 246/281/249 +f 224/258/250 223/255/250 238/280/250 239/282/250 +f 232/259/251 231/257/251 246/281/251 247/283/251 +f 225/260/252 224/258/252 239/282/252 240/284/252 +f 218/262/253 82/285/253 233/286/253 +f 308/287/254 232/259/254 247/283/254 +f 226/264/255 225/260/255 240/284/255 241/271/255 +f 219/265/256 218/262/256 233/286/256 234/273/256 +f 246/281/257 245/279/257 260/288/257 261/289/257 +f 239/282/258 238/280/258 253/290/258 254/291/258 +f 247/283/259 246/281/259 261/289/259 262/292/259 +f 240/284/260 239/282/260 254/291/260 255/293/260 +f 233/286/261 82/294/261 248/295/261 +f 308/296/262 247/283/262 262/292/262 +f 241/271/263 240/284/263 255/293/263 256/297/263 +f 234/273/264 233/286/264 248/295/264 249/298/264 +f 242/272/265 241/271/265 256/297/265 257/299/265 +f 235/274/266 234/273/266 249/298/266 250/300/266 +f 243/275/267 242/272/267 257/299/267 258/301/267 +f 236/276/268 235/274/268 250/300/268 251/302/268 +f 244/277/269 243/275/269 258/301/269 259/303/269 +f 237/278/270 236/276/270 251/302/270 252/304/270 +f 245/279/271 244/277/271 259/303/271 260/288/271 +f 238/280/272 237/278/272 252/304/272 253/290/272 +f 250/300/273 249/298/273 264/305/273 265/306/273 +f 258/301/274 257/299/274 272/307/274 273/308/274 +f 251/302/275 250/300/275 265/306/275 266/309/275 +f 259/303/276 258/301/276 273/308/276 274/310/276 +f 252/304/277 251/302/277 266/309/277 267/311/277 +f 260/288/278 259/303/278 274/310/278 275/312/278 +f 253/290/279 252/304/279 267/311/279 268/313/279 +f 261/289/280 260/288/280 275/312/280 276/314/280 +f 254/291/281 253/290/281 268/313/281 269/315/281 +f 262/292/282 261/289/282 276/314/282 277/316/282 +f 255/293/283 254/291/283 269/315/283 270/317/283 +f 248/295/284 82/318/284 263/319/284 +f 308/320/285 262/292/285 277/316/285 +f 256/297/286 255/293/286 270/317/286 271/321/286 +f 249/298/287 248/295/287 263/319/287 264/305/287 +f 257/299/288 256/297/288 271/321/288 272/307/288 +f 269/315/289 268/313/289 283/322/289 284/323/289 +f 277/316/290 276/314/290 291/324/290 292/325/290 +f 270/317/291 269/315/291 284/323/291 285/326/291 +f 263/319/292 82/327/292 278/328/292 +f 308/329/293 277/316/293 292/325/293 +f 271/321/294 270/317/294 285/326/294 286/330/294 +f 264/305/295 263/319/295 278/328/295 279/331/295 +f 272/307/296 271/321/296 286/330/296 287/332/296 +f 265/306/297 264/305/297 279/331/297 280/333/297 +f 273/308/298 272/307/298 287/332/298 288/334/298 +f 266/309/299 265/306/299 280/333/299 281/335/299 +f 274/310/300 273/308/300 288/334/300 289/336/300 +f 267/311/301 266/309/301 281/335/301 282/337/301 +f 275/312/302 274/310/302 289/336/302 290/338/302 +f 268/313/303 267/311/303 282/337/303 283/322/303 +f 276/314/304 275/312/304 290/338/304 291/324/304 +f 288/334/305 287/332/305 302/339/305 303/340/305 +f 281/335/306 280/333/306 295/341/306 296/342/306 +f 289/336/307 288/334/307 303/340/307 304/343/307 +f 282/337/308 281/335/308 296/342/308 297/344/308 +f 290/338/309 289/336/309 304/343/309 305/345/309 +f 283/322/310 282/337/310 297/344/310 298/346/310 +f 291/324/311 290/338/311 305/345/311 306/347/311 +f 284/323/312 283/322/312 298/346/312 299/348/312 +f 292/325/313 291/324/313 306/347/313 307/349/313 +f 285/326/314 284/323/314 299/348/314 300/350/314 +f 278/328/315 82/351/315 293/352/315 +f 308/353/316 292/325/316 307/349/316 +f 286/330/317 285/326/317 300/350/317 301/354/317 +f 279/331/318 278/328/318 293/352/318 294/355/318 +f 287/332/319 286/330/319 301/354/319 302/339/319 +f 280/333/320 279/331/320 294/355/320 295/341/320 +f 307/349/321 306/347/321 322/356/321 323/357/321 +f 300/350/322 299/348/322 315/358/322 316/359/322 +f 293/352/323 82/360/323 309/361/323 +f 308/362/324 307/349/324 323/357/324 +f 301/354/325 300/350/325 316/359/325 317/363/325 +f 294/355/326 293/352/326 309/361/326 310/364/326 +f 302/339/327 301/354/327 317/363/327 318/365/327 +f 295/341/328 294/355/328 310/364/328 311/366/328 +f 303/340/329 302/339/329 318/365/329 319/367/329 +f 296/342/330 295/341/330 311/366/330 312/368/330 +f 304/343/331 303/340/331 319/367/331 320/369/331 +f 297/344/332 296/342/332 312/368/332 313/370/332 +f 305/345/333 304/343/333 320/369/333 321/371/333 +f 298/346/334 297/344/334 313/370/334 314/372/334 +f 306/347/335 305/345/335 321/371/335 322/356/335 +f 299/348/336 298/346/336 314/372/336 315/358/336 +f 320/369/337 319/367/337 334/373/337 335/374/337 +f 313/370/338 312/368/338 327/375/338 328/376/338 +f 321/371/339 320/369/339 335/374/339 336/377/339 +f 314/372/340 313/370/340 328/376/340 329/378/340 +f 322/356/341 321/371/341 336/377/341 337/379/341 +f 315/358/342 314/372/342 329/378/342 330/380/342 +f 323/357/343 322/356/343 337/379/343 338/381/343 +f 316/359/344 315/358/344 330/380/344 331/382/344 +f 309/361/345 82/383/345 324/384/345 +f 308/385/346 323/357/346 338/381/346 +f 317/363/347 316/359/347 331/382/347 332/386/347 +f 310/364/348 309/361/348 324/384/348 325/387/348 +f 318/365/349 317/363/349 332/386/349 333/388/349 +f 311/366/350 310/364/350 325/387/350 326/389/350 +f 319/367/351 318/365/351 333/388/351 334/373/351 +f 312/368/352 311/366/352 326/389/352 327/375/352 +f 324/384/353 82/390/353 339/391/353 +f 308/392/354 338/381/354 353/393/354 +f 332/386/355 331/382/355 346/394/355 347/395/355 +f 325/387/356 324/384/356 339/391/356 340/396/356 +f 333/388/357 332/386/357 347/395/357 348/397/357 +f 326/389/358 325/387/358 340/396/358 341/398/358 +f 334/373/359 333/388/359 348/397/359 349/399/359 +f 327/375/360 326/389/360 341/398/360 342/400/360 +f 335/374/361 334/373/361 349/399/361 350/401/361 +f 328/376/362 327/375/362 342/400/362 343/402/362 +f 336/377/363 335/374/363 350/401/363 351/403/363 +f 329/378/364 328/376/364 343/402/364 344/404/364 +f 337/379/365 336/377/365 351/403/365 352/405/365 +f 330/380/366 329/378/366 344/404/366 345/406/366 +f 338/381/367 337/379/367 352/405/367 353/393/367 +f 331/382/368 330/380/368 345/406/368 346/394/368 +f 343/402/369 342/400/369 357/407/369 358/408/369 +f 351/403/370 350/401/370 365/409/370 366/410/370 +f 344/404/371 343/402/371 358/408/371 359/411/371 +f 352/405/372 351/403/372 366/410/372 367/412/372 +f 345/406/373 344/404/373 359/411/373 360/413/373 +f 353/393/374 352/405/374 367/412/374 368/414/374 +f 346/394/375 345/406/375 360/413/375 361/415/375 +f 339/391/376 82/416/376 354/417/376 +f 308/418/377 353/393/377 368/414/377 +f 347/395/378 346/394/378 361/415/378 362/419/378 +f 340/396/379 339/391/379 354/417/379 355/420/379 +f 348/397/380 347/395/380 362/419/380 363/421/380 +f 341/398/381 340/396/381 355/420/381 356/422/381 +f 349/399/382 348/397/382 363/421/382 364/423/382 +f 342/400/383 341/398/383 356/422/383 357/407/383 +f 350/401/384 349/399/384 364/423/384 365/409/384 +f 362/424/385 361/425/385 376/426/385 377/427/385 +f 355/428/386 354/429/386 369/430/386 370/431/386 +f 363/432/387 362/424/387 377/427/387 378/433/387 +f 356/434/388 355/428/388 370/431/388 371/435/388 +f 364/436/389 363/432/389 378/433/389 379/437/389 +f 357/438/390 356/434/390 371/435/390 372/439/390 +f 365/440/391 364/436/391 379/437/391 380/441/391 +f 358/442/392 357/438/392 372/439/392 373/443/392 +f 366/444/393 365/440/393 380/441/393 381/445/393 +f 359/446/394 358/442/394 373/443/394 374/447/394 +f 367/448/395 366/444/395 381/445/395 382/449/395 +f 360/450/396 359/446/396 374/447/396 375/451/396 +f 368/452/397 367/448/397 382/449/397 383/453/397 +f 361/425/398 360/450/398 375/451/398 376/426/398 +f 354/429/399 82/454/399 369/430/399 +f 308/455/400 368/452/400 383/453/400 +f 381/445/401 380/441/401 395/456/401 396/457/401 +f 374/447/402 373/443/402 388/458/402 389/459/402 +f 382/449/403 381/445/403 396/457/403 397/460/403 +f 375/451/404 374/447/404 389/459/404 390/461/404 +f 383/453/405 382/449/405 397/460/405 398/462/405 +f 376/426/406 375/451/406 390/461/406 391/463/406 +f 369/430/407 82/464/407 384/465/407 +f 308/466/408 383/453/408 398/462/408 +f 377/427/409 376/426/409 391/463/409 392/467/409 +f 370/431/410 369/430/410 384/465/410 385/468/410 +f 378/433/411 377/427/411 392/467/411 393/469/411 +f 371/435/412 370/431/412 385/468/412 386/470/412 +f 379/437/413 378/433/413 393/469/413 394/471/413 +f 372/439/414 371/435/414 386/470/414 387/472/414 +f 380/441/415 379/437/415 394/471/415 395/456/415 +f 373/443/416 372/439/416 387/472/416 388/458/416 +f 385/468/417 384/465/417 399/473/417 400/474/417 +f 393/469/418 392/467/418 407/475/418 408/476/418 +f 386/470/419 385/468/419 400/474/419 401/477/419 +f 394/471/420 393/469/420 408/476/420 409/478/420 +f 387/472/421 386/470/421 401/477/421 402/479/421 +f 395/456/422 394/471/422 409/478/422 410/480/422 +f 388/458/423 387/472/423 402/479/423 403/481/423 +f 396/457/424 395/456/424 410/480/424 411/482/424 +f 389/459/425 388/458/425 403/481/425 404/483/425 +f 397/460/426 396/457/426 411/482/426 412/484/426 +f 390/461/427 389/459/427 404/483/427 405/485/427 +f 398/462/428 397/460/428 412/484/428 413/486/428 +f 391/463/429 390/461/429 405/485/429 406/487/429 +f 384/465/430 82/488/430 399/473/430 +f 308/489/431 398/462/431 413/486/431 +f 392/467/432 391/463/432 406/487/432 407/475/432 +f 404/483/433 403/481/433 418/490/433 419/491/433 +f 412/484/434 411/482/434 426/492/434 427/493/434 +f 405/485/435 404/483/435 419/491/435 420/494/435 +f 413/486/436 412/484/436 427/493/436 428/495/436 +f 406/487/437 405/485/437 420/494/437 421/496/437 +f 399/473/438 82/497/438 414/498/438 +f 308/499/439 413/486/439 428/495/439 +f 407/475/440 406/487/440 421/496/440 422/500/440 +f 400/474/441 399/473/441 414/498/441 415/501/441 +f 408/476/442 407/475/442 422/500/442 423/502/442 +f 401/477/443 400/474/443 415/501/443 416/503/443 +f 409/478/444 408/476/444 423/502/444 424/504/444 +f 402/479/445 401/477/445 416/503/445 417/505/445 +f 410/480/446 409/478/446 424/504/446 425/506/446 +f 403/481/447 402/479/447 417/505/447 418/490/447 +f 411/482/448 410/480/448 425/506/448 426/492/448 +f 423/502/449 422/500/449 437/507/449 438/508/449 +f 416/503/450 415/501/450 430/509/450 431/510/450 +f 424/504/451 423/502/451 438/508/451 439/511/451 +f 417/505/452 416/503/452 431/510/452 432/512/452 +f 425/506/453 424/504/453 439/511/453 440/513/453 +f 418/490/454 417/505/454 432/512/454 433/514/454 +f 426/492/455 425/506/455 440/513/455 441/515/455 +f 419/491/456 418/490/456 433/514/456 434/516/456 +f 427/493/457 426/492/457 441/515/457 442/517/457 +f 420/494/458 419/491/458 434/516/458 435/518/458 +f 428/495/459 427/493/459 442/517/459 443/519/459 +f 421/496/460 420/494/460 435/518/460 436/520/460 +f 414/498/461 82/521/461 429/522/461 +f 308/523/462 428/495/462 443/519/462 +f 422/500/463 421/496/463 436/520/463 437/507/463 +f 415/501/464 414/498/464 429/522/464 430/509/464 +f 442/517/465 441/515/465 456/524/465 457/525/465 +f 435/518/466 434/516/466 449/526/466 450/527/466 +f 443/519/467 442/517/467 457/525/467 458/528/467 +f 436/520/468 435/518/468 450/527/468 451/529/468 +f 429/522/469 82/530/469 444/531/469 +f 308/532/470 443/519/470 458/528/470 +f 437/507/471 436/520/471 451/529/471 452/533/471 +f 430/509/472 429/522/472 444/531/472 445/534/472 +f 438/508/473 437/507/473 452/533/473 453/535/473 +f 431/510/474 430/509/474 445/534/474 446/536/474 +f 439/511/475 438/508/475 453/535/475 454/537/475 +f 432/512/476 431/510/476 446/536/476 447/538/476 +f 440/513/477 439/511/477 454/537/477 455/539/477 +f 433/514/478 432/512/478 447/538/478 448/540/478 +f 441/515/479 440/513/479 455/539/479 456/524/479 +f 434/516/480 433/514/480 448/540/480 449/526/480 +f 454/537/481 453/535/481 468/541/481 469/542/481 +f 447/538/482 446/536/482 461/543/482 462/544/482 +f 455/539/483 454/537/483 469/542/483 470/545/483 +f 448/540/484 447/538/484 462/544/484 463/546/484 +f 456/524/485 455/539/485 470/545/485 471/547/485 +f 449/526/486 448/540/486 463/546/486 464/548/486 +f 457/525/487 456/524/487 471/547/487 472/549/487 +f 450/527/488 449/526/488 464/548/488 465/550/488 +f 458/528/489 457/525/489 472/549/489 473/551/489 +f 451/529/490 450/527/490 465/550/490 466/552/490 +f 444/531/491 82/553/491 459/554/491 +f 308/555/492 458/528/492 473/551/492 +f 452/533/493 451/529/493 466/552/493 467/556/493 +f 445/534/494 444/531/494 459/554/494 460/557/494 +f 453/535/495 452/533/495 467/556/495 468/541/495 +f 446/536/496 445/534/496 460/557/496 461/543/496 +f 473/551/497 472/549/497 481/6/497 482/5/497 +f 466/552/498 465/550/498 3/1/498 4/9/498 +f 459/554/499 82/558/499 474/11/499 +f 308/559/500 473/551/500 482/5/500 +f 467/556/501 466/552/501 4/9/501 5/15/501 +f 460/557/502 459/554/502 474/11/502 475/17/502 +f 468/541/503 467/556/503 5/15/503 478/19/503 +f 461/543/504 460/557/504 475/17/504 1/21/504 +f 469/542/505 468/541/505 478/19/505 6/23/505 +f 462/544/506 461/543/506 1/21/506 476/25/506 +f 470/545/507 469/542/507 6/23/507 479/27/507 +f 463/546/508 462/544/508 476/25/508 2/29/508 +f 471/547/509 470/545/509 479/27/509 480/31/509 +f 464/548/510 463/546/510 2/29/510 477/2/510 +f 472/549/511 471/547/511 480/31/511 481/6/511 +f 465/550/512 464/548/512 477/2/512 3/1/512 diff --git a/assets/models/untitled.mtl b/assets/models/untitled.mtl index 414042c..4704186 100644 --- a/assets/models/untitled.mtl +++ b/assets/models/untitled.mtl @@ -1,12 +1,2 @@ # Blender 4.2.3 LTS MTL File: 'None' # www.blender.org - -newmtl Material -Ns 250.000000 -Ka 1.000000 1.000000 1.000000 -Ks 0.500000 0.500000 0.500000 -Ke 0.000000 0.000000 0.000000 -Ni 1.450000 -d 1.000000 -illum 2 -map_Kd /home/lillian/Downloads/d41777258e68c9d7046fc03c4d1d1e89.png diff --git a/assets/models/untitled.obj b/assets/models/untitled.obj new file mode 100644 index 0000000..c1f61c9 --- /dev/null +++ b/assets/models/untitled.obj @@ -0,0 +1,39 @@ +# Blender 4.2.3 LTS +# www.blender.org +mtllib untitled.mtl +o Cube +v -6.996062 0.060240 6.002291 +v -6.996062 0.123414 6.002291 +v -6.996062 0.060240 -6.002291 +v -6.996062 0.123414 -6.002291 +v 6.996062 0.060240 6.002291 +v 6.996062 0.123414 6.002291 +v 6.996062 0.060240 -6.002291 +v 6.996062 0.123414 -6.002291 +vn -1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 -0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 -0.0000 +vt 0.561014 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.561014 0.250000 +vt 0.625000 0.500000 +vt 0.561014 0.500000 +vt 0.625000 0.750000 +vt 0.561014 0.750000 +vt 0.625000 1.000000 +vt 0.561014 1.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +s 0 +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 3/4/2 4/3/2 8/5/2 7/6/2 +f 7/6/3 8/5/3 6/7/3 5/8/3 +f 5/8/4 6/7/4 2/9/4 1/10/4 +f 3/11/5 7/6/5 5/8/5 1/12/5 +f 8/5/6 4/13/6 2/14/6 6/7/6 diff --git a/imgui.ini b/imgui.ini index ff29567..dd326bb 100644 --- a/imgui.ini +++ b/imgui.ini @@ -3,6 +3,6 @@ Pos=60,60 Size=400,400 [Window][Agnosia Debug] -Pos=59,322 +Pos=57,392 Size=623,438 diff --git a/src/agnosiaimgui.cpp b/src/agnosiaimgui.cpp index e9440d7..c23dd08 100644 --- a/src/agnosiaimgui.cpp +++ b/src/agnosiaimgui.cpp @@ -23,8 +23,8 @@ void initImGuiWindow() { } ImGui::DragFloat3("Camera Position", Graphics::getCamPos()); + ImGui::DragFloat3("Light Position", Graphics::getLightPos()); ImGui::DragFloat3("Center Position", Graphics::getCenterPos()); - ImGui::DragFloat3("Up Direction", Graphics::getUpDir()); ImGui::DragFloat("Depth of Field", &Graphics::getDepthField(), 0.1f, 1.0f, 180.0f, NULL, ImGuiSliderFlags_AlwaysClamp); ImGui::DragFloat2("Near and Far fields", Graphics::getDistanceField()); diff --git a/src/entrypoint.cpp b/src/entrypoint.cpp index 5946517..d511d76 100644 --- a/src/entrypoint.cpp +++ b/src/entrypoint.cpp @@ -88,15 +88,15 @@ void createInstance() { } } void initAgnosia() { - Material *vikingRoomMaterial = - new Material("vikingRoomMaterial", "assets/textures/viking_room.png"); + Material *sphereMaterial = + new Material("sphereMaterial", "assets/textures/checkermap.png"); Material *stanfordDragonMaterial = new Material("stanfordDragonMaterial", "assets/textures/checkermap.png"); Material *teapotMaterial = new Material("teapotMaterial", "assets/textures/checkermap.png"); - Model *vikingRoom = - new Model("vikingRoom", *vikingRoomMaterial, - "assets/models/viking_room.obj", glm::vec3(0.0f, 0.0f, 0.0f)); + Model *uvSphere = + new Model("uvSphere", *sphereMaterial, "assets/models/UVSphere.obj", + glm::vec3(0.0f, 0.0f, 0.0f)); Model *stanfordDragon = new Model("stanfordDragon", *stanfordDragonMaterial, "assets/models/StanfordDragon800k.obj", glm::vec3(0.0f, 2.0f, 0.0f)); diff --git a/src/graphics/graphicspipeline.cpp b/src/graphics/graphicspipeline.cpp index 0548fe2..132fb3d 100644 --- a/src/graphics/graphicspipeline.cpp +++ b/src/graphics/graphicspipeline.cpp @@ -13,6 +13,7 @@ #include #include +float lightPos[4] = {5.0f, 5.0f, 5.0f, 0.44f}; float camPos[4] = {3.0f, 3.0f, 3.0f, 0.44f}; float centerPos[4] = {0.0f, 0.0f, 0.0f, 0.44f}; float upDir[4] = {0.0f, 0.0f, 1.0f, 0.44f}; @@ -363,6 +364,7 @@ void Graphics::recordCommandBuffer(VkCommandBuffer commandBuffer, Agnosia_T::GPUPushConstants pushConsts; pushConsts.vertexBuffer = model->getBuffers().vertexBufferAddress; pushConsts.objPosition = model->getPos(); + pushConsts.lightPos = glm::vec3(lightPos[0], lightPos[1], lightPos[2]); pushConsts.textureID = texID; pushConsts.model = @@ -433,6 +435,7 @@ void Graphics::recordCommandBuffer(VkCommandBuffer commandBuffer, } float *Graphics::getCamPos() { return camPos; } +float *Graphics::getLightPos() { return lightPos; } float *Graphics::getCenterPos() { return centerPos; } float *Graphics::getUpDir() { return upDir; } float &Graphics::getDepthField() { return depthField; } diff --git a/src/graphics/graphicspipeline.h b/src/graphics/graphicspipeline.h index ad64512..bf249d3 100644 --- a/src/graphics/graphicspipeline.h +++ b/src/graphics/graphicspipeline.h @@ -15,6 +15,7 @@ public: uint32_t imageIndex); static float *getCamPos(); + static float *getLightPos(); static float *getCenterPos(); static float *getUpDir(); static float &getDepthField(); diff --git a/src/shaders/common.glsl b/src/shaders/common.glsl index 2448db0..5e5876e 100644 --- a/src/shaders/common.glsl +++ b/src/shaders/common.glsl @@ -15,6 +15,7 @@ layout(buffer_reference, scalar) readonly buffer VertexBuffer{ layout( push_constant, scalar ) uniform constants { VertexBuffer vertBuffer; vec3 objPos; + vec3 lightPos; int textureID; mat4 model; mat4 view; diff --git a/src/shaders/fragment.frag b/src/shaders/fragment.frag index 65dfb87..b3e98ff 100644 --- a/src/shaders/fragment.frag +++ b/src/shaders/fragment.frag @@ -5,11 +5,18 @@ layout(binding = 1) uniform sampler2D texSampler[]; -layout(location = 0) in vec3 fragColor; -layout(location = 1) in vec2 fragTexCoord; +layout(location = 0) in vec3 v_norm; +layout(location = 1) in vec3 v_pos; +layout(location = 2) in vec2 texCoord; layout(location = 0) out vec4 outColor; void main() { - outColor = texture(texSampler[PushConstants.textureID], fragTexCoord) * vec4(fragColor, 1.0f); + vec3 diffuseColor = texture(texSampler[PushConstants.textureID], texCoord).rgb; + vec3 ambientColor = vec3(0.05f,0.05f, 0.05f) * diffuseColor; + float lightPower = 5; + vec3 lightColor = vec3(1.0f, 1.0f, 1.0f); + float cosTheta = dot(PushConstants.lightPos, v_norm); + float sqrDist = distance(v_pos, PushConstants.lightPos)*distance(v_pos, PushConstants.lightPos); + outColor = vec4(ambientColor + clamp(diffuseColor * lightColor * lightPower * cosTheta / sqrDist, vec3(0,0,0), vec3(1,1,1)), 1.0f); } diff --git a/src/shaders/vertex.vert b/src/shaders/vertex.vert index ab0b4d2..600fd13 100644 --- a/src/shaders/vertex.vert +++ b/src/shaders/vertex.vert @@ -2,14 +2,16 @@ #extension GL_GOOGLE_include_directive : enable #include "common.glsl" -layout(location = 0) out vec3 fragColor; -layout(location = 1) out vec2 fragTexCoord; +layout(location = 0) out vec3 v_norm; +layout(location = 1) out vec3 v_pos; +layout(location = 2) out vec2 texCoord; void main() { Vertex vertex = PushConstants.vertBuffer.vertices[gl_VertexIndex]; gl_Position = PushConstants.proj * PushConstants.view * PushConstants.model * vec4(vertex.pos + PushConstants.objPos, 1.0f); - fragColor = vertex.color.rgb; - fragTexCoord = vertex.texCoord; + v_norm = vertex.normal; + v_pos = vertex.pos; + texCoord = vertex.texCoord; } diff --git a/src/types.h b/src/types.h index e824c42..8b0b012 100644 --- a/src/types.h +++ b/src/types.h @@ -32,6 +32,7 @@ public: struct GPUPushConstants { VkDeviceAddress vertexBuffer; glm::vec3 objPosition; + glm::vec3 lightPos; int textureID; glm::mat4 model; glm::mat4 view;