├── .gitignore ├── .gitpod.yml ├── CMakeLists.txt ├── Dockerfile ├── LICENSE.txt ├── README.md ├── geometry.h ├── main.cpp ├── model.cpp ├── model.h ├── obj ├── african_head │ ├── african_head.obj │ ├── african_head_SSS.jpg │ ├── african_head_diffuse.tga │ ├── african_head_eye_inner.obj │ ├── african_head_eye_inner_diffuse.tga │ ├── african_head_eye_inner_nm.tga │ ├── african_head_eye_inner_nm_tangent.tga │ ├── african_head_eye_inner_spec.tga │ ├── african_head_eye_outer.obj │ ├── african_head_eye_outer_diffuse.tga │ ├── african_head_eye_outer_gloss.tga │ ├── african_head_eye_outer_nm.tga │ ├── african_head_eye_outer_nm_tangent.tga │ ├── african_head_eye_outer_spec.tga │ ├── african_head_nm.tga │ ├── african_head_nm_tangent.tga │ ├── african_head_spec.tga │ └── readme.txt ├── boggie │ ├── body.obj │ ├── body_diffuse.tga │ ├── body_nm_tangent.tga │ ├── body_spec.tga │ ├── eyes.obj │ ├── eyes_diffuse.tga │ ├── eyes_nm_tangent.tga │ ├── eyes_spec.tga │ ├── head.obj │ ├── head_diffuse.tga │ ├── head_nm_tangent.tga │ ├── head_spec.tga │ └── readme.txt ├── diablo3_pose │ ├── diablo3_pose.obj │ ├── diablo3_pose_diffuse.tga │ ├── diablo3_pose_glow.tga │ ├── diablo3_pose_nm.tga │ ├── diablo3_pose_nm_tangent.tga │ ├── diablo3_pose_spec.tga │ └── readme.txt ├── floor.obj ├── floor_diffuse.tga ├── floor_nm_tangent.tga ├── floor_spec.tga └── grid.tga ├── our_gl.cpp ├── our_gl.h ├── tgaimage.cpp └── tgaimage.h /.gitignore: -------------------------------------------------------------------------------- 1 | framebuffer.tga 2 | -------------------------------------------------------------------------------- /.gitpod.yml: -------------------------------------------------------------------------------- 1 | image: 2 | file: Dockerfile 3 | tasks: 4 | - command: > 5 | cmake -Bbuild && 6 | cmake --build build --parallel && 7 | build/tinyrenderer obj/diablo3_pose/diablo3_pose.obj obj/floor.obj && 8 | convert framebuffer.tga framebuffer.png && 9 | open framebuffer.png 10 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.12...3.26) 2 | 3 | get_property(is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) 4 | if(NOT is_multi_config AND NOT (CMAKE_BUILD_TYPE OR DEFINED ENV{CMAKE_BUILD_TYPE})) 5 | set(CMAKE_BUILD_TYPE Release CACHE STRING "Release default") 6 | endif() 7 | 8 | project(tinyrenderer LANGUAGES CXX) 9 | 10 | set(CMAKE_CXX_STANDARD 20) 11 | 12 | option(iwyu "Run include-what-you-use") 13 | if(iwyu) 14 | find_program(IWYU_EXE NAMES include-what-you-use REQUIRED) 15 | set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE ${IWYU_EXE}) 16 | endif() 17 | 18 | if(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU|Intel") 19 | add_compile_options(-Wall) 20 | endif() 21 | 22 | find_package(OpenMP COMPONENTS CXX) 23 | 24 | set(SOURCES main.cpp model.cpp our_gl.cpp tgaimage.cpp) 25 | 26 | add_executable(${PROJECT_NAME} ${SOURCES}) 27 | target_link_libraries(${PROJECT_NAME} PRIVATE $<$:OpenMP::OpenMP_CXX>) 28 | 29 | file(GENERATE OUTPUT .gitignore CONTENT "*") 30 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gitpod/workspace-full 2 | 3 | USER root 4 | # add your tools here 5 | RUN apt-get update && apt-get install -y \ 6 | imagemagick 7 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Tiny Renderer, https://github.com/ssloy/tinyrenderer 2 | Copyright Dmitry V. Sokolov 3 | 4 | This software is provided 'as-is', without any express or implied warranty. 5 | In no event will the authors be held liable for any damages arising from the use of this software. 6 | Permission is granted to anyone to use this software for any purpose, 7 | including commercial applications, and to alter it and redistribute it freely, 8 | subject to the following restrictions: 9 | 10 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 11 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 12 | 3. This notice may not be removed or altered from any source distribution. 13 | 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tiny Renderer or how OpenGL works: software rendering in 500 lines of code 2 | 3 | # Check [the wiki](https://github.com/ssloy/tinyrenderer/wiki) for the detailed lessons. 4 | 5 | ## compilation 6 | 7 | ```sh 8 | git clone https://github.com/ssloy/tinyrenderer.git && 9 | cd tinyrenderer && 10 | cmake -Bbuild && 11 | cmake --build build -j && 12 | build/tinyrenderer obj/diablo3_pose/diablo3_pose.obj obj/floor.obj 13 | ``` 14 | The rendered image is saved to `framebuffer.tga`. 15 | 16 | You can open the project in Gitpod, a free online dev environment for GitHub: 17 | [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/ssloy/tinyrenderer) 18 | 19 | On open, the editor will compile & run the program as well as open the resulting image in the editor's preview. 20 | Just change the code in the editor and rerun the script (use the terminal's history) to see updated images. 21 | 22 | ## The main idea 23 | 24 | **My source code is irrelevant. Read the wiki and implement your own renderer. Only when you suffer through all the tiny details, you will learn what is going on.** 25 | 26 | In [this series of articles](https://github.com/ssloy/tinyrenderer/wiki), I want to show how OpenGL works by writing its clone (a much simplified one). Surprisingly enough, I often meet people who cannot overcome the initial hurdle of learning OpenGL / DirectX. Thus, I have prepared a short series of lectures, after which my students show quite good renderers. 27 | 28 | So, the task is formulated as follows: using no third-party libraries (especially graphic ones), get something like this picture: 29 | 30 | ![](https://raw.githubusercontent.com/ssloy/tinyrenderer/gh-pages/img/00-home/africanhead.png) 31 | 32 | _Warning: this is a training material that will loosely repeat the structure of the OpenGL library. It will be a software renderer. **I do not want to show how to write applications for OpenGL. I want to show how OpenGL works.** I am deeply convinced that it is impossible to write efficient applications using 3D libraries without understanding this._ 33 | 34 | I will try to make the final code about 500 lines. My students need 10 to 20 programming hours to begin making such renderers. At the input, we get a test file with a polygonal wire + pictures with textures. At the output, we’ll get a rendered model-no graphical interface, and the program simply generates an image. 35 | 36 | 37 | Since the goal is to minimize external dependencies, I give my students just one class that allows working with [TGA](http://en.wikipedia.org/wiki/Truevision_TGA) files. It’s one of the simplest formats that supports images in RGB/RGBA/black and white formats. So, as a starting point, we’ll obtain a simple way to work with pictures. You should note that the only functionality available at the very beginning (in addition to loading and saving images) is the ability to set one pixel's color. 38 | 39 | There are no functions for drawing line segments and triangles. We’ll have to do all of this by hand. I provide my source code that I write in parallel with students. But I would not recommend using it, as this doesn’t make sense. The entire code is available on GitHub, and [here](https://github.com/ssloy/tinyrenderer/tree/909fe20934ba5334144d2c748805690a1fa4c89f) you will find the source code I give to my students. 40 | 41 | ```C++ 42 | #include "tgaimage.h" 43 | const TGAColor white = TGAColor(255, 255, 255, 255); 44 | const TGAColor red = TGAColor(255, 0, 0, 255); 45 | int main(int argc, char** argv) { 46 | TGAImage image(100, 100, TGAImage::RGB); 47 | image.set(52, 41, red); 48 | image.write_tga_file("output.tga");` 49 | return 0; 50 | } 51 | ``` 52 | 53 | output.tga should look something like this: 54 | 55 | ![](https://raw.githubusercontent.com/ssloy/tinyrenderer/gh-pages/img/00-home/reddot.png) 56 | 57 | 58 | # Teaser: few examples made with the renderer 59 | 60 | ![](https://raw.githubusercontent.com/ssloy/tinyrenderer/gh-pages/img/00-home/demon.png) 61 | 62 | ![](https://raw.githubusercontent.com/ssloy/tinyrenderer/gh-pages/img/00-home/diablo-glow.png) 63 | 64 | ![](https://raw.githubusercontent.com/ssloy/tinyrenderer/gh-pages/img/00-home/boggie.png) 65 | 66 | ![](https://raw.githubusercontent.com/ssloy/tinyrenderer/gh-pages/img/00-home/diablo-ssao.png) 67 | -------------------------------------------------------------------------------- /geometry.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | 6 | template struct vec { 7 | double data[n] = {0}; 8 | double& operator[](const int i) { assert(i>=0 && i=0 && i double operator*(const vec& lhs, const vec& rhs) { 13 | double ret = 0; // N.B. Do not ever, ever use such for loops! They are highly confusing. 14 | for (int i=n; i--; ret+=lhs[i]*rhs[i]); // Here I used them as a tribute to old-school game programmers fighting for every CPU cycle. 15 | return ret; // Once upon a time reverse loops were faster than the normal ones, it is not the case anymore. 16 | } 17 | 18 | template vec operator+(const vec& lhs, const vec& rhs) { 19 | vec ret = lhs; 20 | for (int i=n; i--; ret[i]+=rhs[i]); 21 | return ret; 22 | } 23 | 24 | template vec operator-(const vec& lhs, const vec& rhs) { 25 | vec ret = lhs; 26 | for (int i=n; i--; ret[i]-=rhs[i]); 27 | return ret; 28 | } 29 | 30 | template vec operator*(const vec& lhs, const double& rhs) { 31 | vec ret = lhs; 32 | for (int i=n; i--; ret[i]*=rhs); 33 | return ret; 34 | } 35 | 36 | template vec operator*(const double& lhs, const vec &rhs) { 37 | return rhs * lhs; 38 | } 39 | 40 | template vec operator/(const vec& lhs, const double& rhs) { 41 | vec ret = lhs; 42 | for (int i=n; i--; ret[i]/=rhs); 43 | return ret; 44 | } 45 | 46 | template std::ostream& operator<<(std::ostream& out, const vec& v) { 47 | for (int i=0; i struct vec<2> { 52 | double x = 0, y = 0; 53 | double& operator[](const int i) { assert(i>=0 && i<2); return i ? y : x; } 54 | double operator[](const int i) const { assert(i>=0 && i<2); return i ? y : x; } 55 | }; 56 | 57 | template<> struct vec<3> { 58 | double x = 0, y = 0, z = 0; 59 | double& operator[](const int i) { assert(i>=0 && i<3); return i ? (1==i ? y : z) : x; } 60 | double operator[](const int i) const { assert(i>=0 && i<3); return i ? (1==i ? y : z) : x; } 61 | }; 62 | 63 | template<> struct vec<4> { 64 | double x = 0, y = 0, z = 0, w = 0; 65 | double& operator[](const int i) { assert(i>=0 && i<4); return i<2 ? (i ? y : x) : (2==i ? z : w); } 66 | double operator[](const int i) const { assert(i>=0 && i<4); return i<2 ? (i ? y : x) : (2==i ? z : w); } 67 | vec<2> xy() const { return {x, y}; } 68 | vec<3> xyz() const { return {x, y, z}; } 69 | }; 70 | 71 | typedef vec<2> vec2; 72 | typedef vec<3> vec3; 73 | typedef vec<4> vec4; 74 | 75 | template double norm(const vec& v) { 76 | return std::sqrt(v*v); 77 | } 78 | 79 | template vec normalized(const vec& v) { 80 | return v / norm(v); 81 | } 82 | 83 | inline vec3 cross(const vec3 &v1, const vec3 &v2) { 84 | return {v1.y*v2.z - v1.z*v2.y, v1.z*v2.x - v1.x*v2.z, v1.x*v2.y - v1.y*v2.x}; 85 | } 86 | 87 | template struct dt; 88 | 89 | template struct mat { 90 | vec rows[nrows] = {{}}; 91 | 92 | vec& operator[] (const int idx) { assert(idx>=0 && idx& operator[] (const int idx) const { assert(idx>=0 && idx::det(*this); 97 | } 98 | 99 | double cofactor(const int row, const int col) const { 100 | mat submatrix; 101 | for (int i=nrows-1; i--; ) 102 | for (int j=ncols-1;j--; submatrix[i][j]=rows[i+int(i>=row)][j+int(j>=col)]); 103 | return submatrix.det() * ((row+col)%2 ? -1 : 1); 104 | } 105 | 106 | mat invert_transpose() const { 107 | mat adjugate_transpose; // transpose to ease determinant computation, check the last line 108 | for (int i=nrows; i--; ) 109 | for (int j=ncols; j--; adjugate_transpose[i][j]=cofactor(i,j)); 110 | return adjugate_transpose/(adjugate_transpose[0]*rows[0]); 111 | } 112 | 113 | mat invert() const { 114 | return invert_transpose().transpose(); 115 | } 116 | 117 | mat transpose() const { 118 | mat ret; 119 | for (int i=ncols; i--; ) 120 | for (int j=nrows; j--; ret[i][j]=rows[j][i]); 121 | return ret; 122 | } 123 | }; 124 | 125 | template vec operator*(const vec& lhs, const mat& rhs) { 126 | return (mat<1,nrows>{{lhs}}*rhs)[0]; 127 | } 128 | 129 | template vec operator*(const mat& lhs, const vec& rhs) { 130 | vec ret; 131 | for (int i=nrows; i--; ret[i]=lhs[i]*rhs); 132 | return ret; 133 | } 134 | 135 | templatemat operator*(const mat& lhs, const mat& rhs) { 136 | mat result; 137 | for (int i=R1; i--; ) 138 | for (int j=C2; j--; ) 139 | for (int k=C1; k--; result[i][j]+=lhs[i][k]*rhs[k][j]); 140 | return result; 141 | } 142 | 143 | templatemat operator*(const mat& lhs, const double& val) { 144 | mat result; 145 | for (int i=nrows; i--; result[i] = lhs[i]*val); 146 | return result; 147 | } 148 | 149 | templatemat operator/(const mat& lhs, const double& val) { 150 | mat result; 151 | for (int i=nrows; i--; result[i] = lhs[i]/val); 152 | return result; 153 | } 154 | 155 | templatemat operator+(const mat& lhs, const mat& rhs) { 156 | mat result; 157 | for (int i=nrows; i--; ) 158 | for (int j=ncols; j--; result[i][j]=lhs[i][j]+rhs[i][j]); 159 | return result; 160 | } 161 | 162 | templatemat operator-(const mat& lhs, const mat& rhs) { 163 | mat result; 164 | for (int i=nrows; i--; ) 165 | for (int j=ncols; j--; result[i][j]=lhs[i][j]-rhs[i][j]); 166 | return result; 167 | } 168 | 169 | template std::ostream& operator<<(std::ostream& out, const mat& m) { 170 | for (int i=0; i struct dt { // template metaprogramming to compute the determinant recursively 175 | static double det(const mat& src) { 176 | double ret = 0; 177 | for (int i=n; i--; ret += src[0][i] * src.cofactor(0,i)); 178 | return ret; 179 | } 180 | }; 181 | 182 | template<> struct dt<1> { // template specialization to stop the recursion 183 | static double det(const mat<1,1>& src) { 184 | return src[0][0]; 185 | } 186 | }; 187 | 188 | -------------------------------------------------------------------------------- /main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "model.h" 3 | #include "our_gl.h" 4 | 5 | extern mat<4,4> ModelView; // "OpenGL" state matrices 6 | extern mat<4,4> Projection; 7 | 8 | struct Shader : IShader { 9 | const Model &model; 10 | vec3 uniform_l; // light direction in view coordinates 11 | mat<3,2> varying_uv; // triangle uv coordinates, written by the vertex shader, read by the fragment shader 12 | mat<3,3> varying_nrm; // normal per vertex to be interpolated by FS 13 | mat<3,3> view_tri; // triangle in view coordinates 14 | 15 | Shader(const vec3 l, const Model &m) : model(m) { 16 | uniform_l = normalized((ModelView*vec4{l.x, l.y, l.z, 0.}).xyz()); // transform the light vector to view coordinates 17 | } 18 | 19 | virtual void vertex(const int iface, const int nthvert, vec4& gl_Position) { 20 | vec3 n = model.normal(iface, nthvert); 21 | vec3 v = model.vert(iface, nthvert); 22 | gl_Position = ModelView * vec4{v.x, v.y, v.z, 1.}; 23 | varying_uv[nthvert] = model.uv(iface, nthvert); 24 | varying_nrm[nthvert] = (ModelView.invert_transpose() * vec4{n.x, n.y, n.z, 0.}).xyz(); 25 | view_tri[nthvert] = gl_Position.xyz(); 26 | gl_Position = Projection * gl_Position; 27 | } 28 | 29 | virtual bool fragment(const vec3 bar, TGAColor &gl_FragColor) const { 30 | vec3 bn = normalized(bar * varying_nrm); // per-vertex normal interpolation 31 | vec2 uv = bar * varying_uv; // tex coord interpolation 32 | 33 | mat<3,3> AI = mat<3,3>{ {view_tri[1] - view_tri[0], view_tri[2] - view_tri[0], bn} }.invert(); // for the math refer to the tangent space normal mapping lecture 34 | vec3 i = AI * vec3{varying_uv[1].x - varying_uv[0].x, varying_uv[2].x - varying_uv[0].x, 0}; // https://github.com/ssloy/tinyrenderer/wiki/Lesson-6bis-tangent-space-normal-mapping 35 | vec3 j = AI * vec3{varying_uv[1].y - varying_uv[0].y, varying_uv[2].y - varying_uv[0].y, 0}; 36 | mat<3,3> B = mat<3,3>{ { normalized(i), normalized(j), bn } }.transpose(); 37 | 38 | vec3 n = normalized(B * model.normal(uv)); // transform the normal from the texture to the tangent space 39 | vec3 r = normalized(n * (n * uniform_l)*2 - uniform_l); // reflected light direction, specular mapping is described here: https://github.com/ssloy/tinyrenderer/wiki/Lesson-6-Shaders-for-the-software-renderer 40 | double diff = std::max(0., n * uniform_l); // diffuse light intensity 41 | double spec = std::pow(std::max(-r.z, 0.), 5+sample2D(model.specular(), uv)[0]); // specular intensity, note that the camera lies on the z-axis (in view), therefore simple -r.z 42 | 43 | TGAColor c = sample2D(model.diffuse(), uv); 44 | for (int i : {0,1,2}) 45 | gl_FragColor[i] = std::min(10 + c[i]*(diff + spec), 255); // (a bit of ambient light, diff + spec), clamp the result 46 | return false; // do not discard the pixel 47 | } 48 | }; 49 | 50 | int main(int argc, char** argv) { 51 | if (2>argc) { 52 | std::cerr << "Usage: " << argv[0] << " obj/model.obj" << std::endl; 53 | return 1; 54 | } 55 | 56 | constexpr int width = 800; // output image size 57 | constexpr int height = 800; 58 | constexpr vec3 light_dir{1,1,1}; // light source 59 | constexpr vec3 eye{1,1,3}; // camera position 60 | constexpr vec3 center{0,0,0}; // camera direction 61 | constexpr vec3 up{0,1,0}; // camera up vector 62 | 63 | lookat(eye, center, up); // build the ModelView matrix 64 | viewport(width/8, height/8, width*3/4, height*3/4); // build the Viewport matrix 65 | projection(norm(eye-center)); // build the Projection matrix 66 | std::vector zbuffer(width*height, std::numeric_limits::max()); 67 | 68 | TGAImage framebuffer(width, height, TGAImage::RGB); // the output image 69 | for (int m=1; m 2 | #include "model.h" 3 | 4 | Model::Model(const std::string filename) { 5 | std::ifstream in; 6 | in.open(filename, std::ifstream::in); 7 | if (in.fail()) return; 8 | std::string line; 9 | while (!in.eof()) { 10 | std::getline(in, line); 11 | std::istringstream iss(line.c_str()); 12 | char trash; 13 | if (!line.compare(0, 2, "v ")) { 14 | iss >> trash; 15 | vec3 v; 16 | for (int i : {0,1,2}) iss >> v[i]; 17 | verts.push_back(v); 18 | } else if (!line.compare(0, 3, "vn ")) { 19 | iss >> trash >> trash; 20 | vec3 n; 21 | for (int i : {0,1,2}) iss >> n[i]; 22 | norms.push_back(normalized(n)); 23 | } else if (!line.compare(0, 3, "vt ")) { 24 | iss >> trash >> trash; 25 | vec2 uv; 26 | for (int i : {0,1}) iss >> uv[i]; 27 | tex.push_back({uv.x, 1-uv.y}); 28 | } else if (!line.compare(0, 2, "f ")) { 29 | int f,t,n, cnt = 0; 30 | iss >> trash; 31 | while (iss >> f >> trash >> t >> trash >> n) { 32 | facet_vrt.push_back(--f); 33 | facet_tex.push_back(--t); 34 | facet_nrm.push_back(--n); 35 | cnt++; 36 | } 37 | if (3!=cnt) { 38 | std::cerr << "Error: the obj file is supposed to be triangulated" << std::endl; 39 | return; 40 | } 41 | } 42 | } 43 | std::cerr << "# v# " << nverts() << " f# " << nfaces() << " vt# " << tex.size() << " vn# " << norms.size() << std::endl; 44 | auto load_texture = [&filename](const std::string suffix, TGAImage &img) { 45 | size_t dot = filename.find_last_of("."); 46 | if (dot==std::string::npos) return; 47 | std::string texfile = filename.substr(0,dot) + suffix; 48 | std::cerr << "texture file " << texfile << " loading " << (img.read_tga_file(texfile.c_str()) ? "ok" : "failed") << std::endl; 49 | }; 50 | load_texture("_diffuse.tga", diffusemap ); 51 | load_texture("_nm_tangent.tga", normalmap ); 52 | load_texture("_spec.tga", specularmap); 53 | } 54 | 55 | const TGAImage& Model::diffuse() const { return diffusemap; } 56 | const TGAImage& Model::specular() const { return specularmap; } 57 | int Model::nverts() const { return verts.size(); } 58 | int Model::nfaces() const { return facet_vrt.size()/3; } 59 | 60 | vec3 Model::vert(const int i) const { 61 | return verts[i]; 62 | } 63 | 64 | vec3 Model::vert(const int iface, const int nthvert) const { 65 | return verts[facet_vrt[iface*3+nthvert]]; 66 | } 67 | 68 | vec3 Model::normal(const vec2 &uvf) const { 69 | TGAColor c = normalmap.get(uvf[0]*normalmap.width(), uvf[1]*normalmap.height()); 70 | return vec3{(double)c[2],(double)c[1],(double)c[0]}*2./255. - vec3{1,1,1}; 71 | } 72 | 73 | vec2 Model::uv(const int iface, const int nthvert) const { 74 | return tex[facet_tex[iface*3+nthvert]]; 75 | } 76 | 77 | vec3 Model::normal(const int iface, const int nthvert) const { 78 | return norms[facet_nrm[iface*3+nthvert]]; 79 | } 80 | 81 | -------------------------------------------------------------------------------- /model.h: -------------------------------------------------------------------------------- 1 | #include "geometry.h" 2 | #include "tgaimage.h" 3 | 4 | class Model { 5 | std::vector verts = {}; // array of vertices ┐ generally speaking, these arrays 6 | std::vector norms = {}; // array of normal vectors │ do not have the same size 7 | std::vector tex = {}; // array of tex coords ┘ check the logs of the Model() constructor 8 | std::vector facet_vrt = {}; // ┐ per-triangle indices in the above arrays, 9 | std::vector facet_nrm = {}; // │ the size is supposed to be 10 | std::vector facet_tex = {}; // ┘ nfaces()*3 11 | TGAImage diffusemap = {}; // diffuse color texture 12 | TGAImage normalmap = {}; // normal map texture 13 | TGAImage specularmap = {}; // specular texture 14 | public: 15 | Model(const std::string filename); 16 | int nverts() const; // number of vertices 17 | int nfaces() const; // number of triangles 18 | vec3 vert(const int i) const; // 0 <= i < nverts() 19 | vec3 vert(const int iface, const int nthvert) const; // 0 <= iface <= nfaces(), 0 <= nthvert < 3 20 | vec3 normal(const int iface, const int nthvert) const; // normal coming from the "vn x y z" entries in the .obj file 21 | vec3 normal(const vec2 &uv) const; // normal vector from the normal map texture 22 | vec2 uv(const int iface, const int nthvert) const; // uv coordinates of triangle corners 23 | const TGAImage& diffuse() const; 24 | const TGAImage& specular() const; 25 | }; 26 | 27 | -------------------------------------------------------------------------------- /obj/african_head/african_head_SSS.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_SSS.jpg -------------------------------------------------------------------------------- /obj/african_head/african_head_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_diffuse.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_inner.obj: -------------------------------------------------------------------------------- 1 | v -0.0781254 0.322247 0.394909 2 | v -0.0942316 0.353986 0.3935 3 | v -0.119323 0.379171 0.391308 4 | v -0.150945 0.395348 0.388543 5 | v -0.185993 0.400919 0.385473 6 | v -0.221041 0.395348 0.38241 7 | v -0.252657 0.379171 0.379639 8 | v -0.277749 0.353986 0.377447 9 | v -0.293861 0.322247 0.376038 10 | v -0.299409 0.287065 0.375552 11 | v -0.293861 0.251882 0.376038 12 | v -0.277749 0.220144 0.377447 13 | v -0.252657 0.194958 0.379645 14 | v -0.221041 0.178788 0.38241 15 | v -0.185993 0.17321 0.385473 16 | v -0.150945 0.178788 0.388543 17 | v -0.119323 0.194958 0.391308 18 | v -0.0942316 0.220144 0.3935 19 | v -0.0781254 0.251882 0.394909 20 | v -0.0725715 0.287065 0.3954 21 | v -0.0810368 0.321809 0.412781 22 | v -0.0969442 0.353156 0.41139 23 | v -0.121726 0.378031 0.409221 24 | v -0.152951 0.394003 0.406485 25 | v -0.187566 0.399504 0.403456 26 | v -0.222181 0.394003 0.400428 27 | v -0.253405 0.378031 0.397698 28 | v -0.278187 0.353156 0.395529 29 | v -0.294095 0.321809 0.394137 30 | v -0.299578 0.287065 0.393658 31 | v -0.294095 0.252321 0.394137 32 | v -0.278187 0.220974 0.395529 33 | v -0.253405 0.196098 0.397698 34 | v -0.222181 0.180127 0.400428 35 | v -0.187566 0.174625 0.403456 36 | v -0.152951 0.180127 0.406485 37 | v -0.121726 0.196098 0.409221 38 | v -0.0969442 0.220974 0.41139 39 | v -0.0810368 0.252321 0.412781 40 | v -0.075553 0.287065 0.41326 41 | v -0.0865029 0.320522 0.429741 42 | v -0.10182 0.350706 0.428402 43 | v -0.125684 0.374658 0.426315 44 | v -0.155751 0.390033 0.423684 45 | v -0.18908 0.395336 0.420767 46 | v -0.222409 0.390033 0.41785 47 | v -0.252476 0.374658 0.415219 48 | v -0.276334 0.350706 0.413132 49 | v -0.291657 0.320522 0.411793 50 | v -0.296936 0.287065 0.411331 51 | v -0.291657 0.253607 0.411793 52 | v -0.276334 0.223429 0.413132 53 | v -0.252476 0.199472 0.415219 54 | v -0.222409 0.184096 0.41785 55 | v -0.18908 0.178794 0.420767 56 | v -0.155751 0.184096 0.423684 57 | v -0.125684 0.199472 0.426315 58 | v -0.10182 0.223429 0.428402 59 | v -0.0865029 0.253607 0.429741 60 | v -0.0812238 0.287065 0.430202 61 | v -0.0944187 0.318412 0.445619 62 | v -0.108771 0.346684 0.444362 63 | v -0.131127 0.369122 0.442403 64 | v -0.159294 0.383532 0.439942 65 | v -0.190518 0.388496 0.437212 66 | v -0.221743 0.383532 0.434476 67 | v -0.249909 0.369122 0.432015 68 | v -0.272265 0.346684 0.430056 69 | v -0.286618 0.318412 0.428805 70 | v -0.291563 0.287065 0.428373 71 | v -0.286618 0.255723 0.428805 72 | v -0.272265 0.227445 0.430056 73 | v -0.249909 0.205008 0.432015 74 | v -0.221743 0.190603 0.434476 75 | v -0.190518 0.185634 0.437212 76 | v -0.159294 0.190603 0.439942 77 | v -0.131127 0.205008 0.442409 78 | v -0.108771 0.227445 0.444362 79 | v -0.0944187 0.255723 0.445619 80 | v -0.0894728 0.287065 0.446051 81 | v -0.104591 0.315524 0.460018 82 | v -0.117622 0.341194 0.458878 83 | v -0.13792 0.361568 0.457101 84 | v -0.163497 0.374646 0.454868 85 | v -0.191845 0.37916 0.452389 86 | v -0.220193 0.374646 0.449904 87 | v -0.24577 0.361568 0.447665 88 | v -0.266068 0.341194 0.445894 89 | v -0.279099 0.315524 0.444754 90 | v -0.283589 0.287065 0.444362 91 | v -0.279099 0.258606 0.444754 92 | v -0.266068 0.232935 0.445894 93 | v -0.24577 0.212561 0.447671 94 | v -0.220193 0.199477 0.449904 95 | v -0.191845 0.19497 0.452389 96 | v -0.163497 0.199477 0.454868 97 | v -0.13792 0.212561 0.457101 98 | v -0.117622 0.232935 0.458878 99 | v -0.104591 0.258606 0.460018 100 | v -0.100101 0.287065 0.46041 101 | v -0.116774 0.311934 0.472587 102 | v -0.128163 0.334372 0.471593 103 | v -0.1459 0.352179 0.470044 104 | v -0.16825 0.363615 0.468086 105 | v -0.193032 0.367549 0.465917 106 | v -0.217808 0.363615 0.463748 107 | v -0.240158 0.352179 0.461795 108 | v -0.257895 0.334372 0.460246 109 | v -0.269284 0.311934 0.459246 110 | v -0.273212 0.287065 0.458901 111 | v -0.269284 0.262195 0.459246 112 | v -0.257895 0.239758 0.460246 113 | v -0.240158 0.22195 0.461795 114 | v -0.217808 0.210521 0.463748 115 | v -0.193032 0.20658 0.465917 116 | v -0.16825 0.210521 0.468086 117 | v -0.1459 0.22195 0.470044 118 | v -0.128163 0.239758 0.471593 119 | v -0.116774 0.262195 0.472587 120 | v -0.112846 0.287065 0.472932 121 | v -0.130659 0.307737 0.483023 122 | v -0.140124 0.326386 0.482193 123 | v -0.154868 0.341189 0.480901 124 | v -0.173447 0.350689 0.479275 125 | v -0.194037 0.353963 0.477475 126 | v -0.214634 0.350689 0.475674 127 | v -0.233213 0.341189 0.474049 128 | v -0.247957 0.326386 0.472757 129 | v -0.257422 0.307737 0.471933 130 | v -0.260684 0.287065 0.471646 131 | v -0.257422 0.266393 0.471933 132 | v -0.247957 0.247743 0.472757 133 | v -0.233213 0.232941 0.474049 134 | v -0.214634 0.223441 0.475674 135 | v -0.194037 0.220167 0.477475 136 | v -0.173447 0.223441 0.479275 137 | v -0.154868 0.232941 0.480901 138 | v -0.140124 0.247743 0.482193 139 | v -0.130659 0.266393 0.483023 140 | v -0.127397 0.287065 0.483303 141 | v -0.145906 0.303031 0.491055 142 | v -0.153214 0.31743 0.490412 143 | v -0.164602 0.328865 0.489418 144 | v -0.178949 0.336202 0.488161 145 | v -0.194856 0.338727 0.48677 146 | v -0.210758 0.336202 0.485379 147 | v -0.225104 0.328865 0.484128 148 | v -0.236492 0.31743 0.483128 149 | v -0.2438 0.303031 0.482491 150 | v -0.24632 0.287065 0.482269 151 | v -0.2438 0.271099 0.482491 152 | v -0.236492 0.2567 0.483128 153 | v -0.225104 0.24527 0.484128 154 | v -0.210758 0.237928 0.485379 155 | v -0.194856 0.235402 0.48677 156 | v -0.178949 0.237928 0.488161 157 | v -0.164602 0.24527 0.489418 158 | v -0.153214 0.2567 0.490412 159 | v -0.145906 0.271099 0.491055 160 | v -0.143386 0.287065 0.491277 161 | v -0.162141 0.297927 0.496492 162 | v -0.167116 0.307731 0.49606 163 | v -0.174862 0.315506 0.495382 164 | v -0.184625 0.320499 0.494528 165 | v -0.195452 0.322224 0.493581 166 | v -0.206274 0.320499 0.492634 167 | v -0.216037 0.315506 0.49178 168 | v -0.223783 0.307731 0.491102 169 | v -0.228758 0.297927 0.490664 170 | v -0.230471 0.287065 0.490517 171 | v -0.228758 0.276203 0.490664 172 | v -0.223783 0.266399 0.491102 173 | v -0.216037 0.258623 0.49178 174 | v -0.206274 0.25363 0.492634 175 | v -0.195452 0.251906 0.493581 176 | v -0.184625 0.25363 0.494528 177 | v -0.174862 0.258623 0.495382 178 | v -0.167116 0.266399 0.49606 179 | v -0.162141 0.276203 0.496492 180 | v -0.160428 0.287065 0.496644 181 | v -0.17896 0.29256 0.499205 182 | v -0.18148 0.297518 0.498983 183 | v -0.185397 0.301452 0.498644 184 | v -0.190337 0.303978 0.498211 185 | v -0.195815 0.304849 0.497732 186 | v -0.201287 0.303978 0.497252 187 | v -0.206227 0.301452 0.49682 188 | v -0.210144 0.297518 0.496475 189 | v -0.212663 0.29256 0.496258 190 | v -0.213529 0.287065 0.496182 191 | v -0.212663 0.281569 0.496258 192 | v -0.210144 0.276612 0.496475 193 | v -0.206227 0.272677 0.49682 194 | v -0.201287 0.270152 0.497252 195 | v -0.195815 0.269281 0.497732 196 | v -0.190337 0.270152 0.498211 197 | v -0.185397 0.272677 0.498644 198 | v -0.18148 0.276612 0.498983 199 | v -0.17896 0.281569 0.499205 200 | v -0.178095 0.287065 0.499281 201 | v -0.195932 0.287065 0.499123 202 | v 0.08023 0.322247 0.394909 203 | v 0.0963362 0.353986 0.3935 204 | v 0.121428 0.379171 0.391308 205 | v 0.15305 0.395348 0.388543 206 | v 0.188098 0.400919 0.385473 207 | v 0.223146 0.395348 0.38241 208 | v 0.254762 0.379171 0.379639 209 | v 0.279853 0.353986 0.377447 210 | v 0.295966 0.322247 0.376038 211 | v 0.301514 0.287065 0.375552 212 | v 0.295966 0.251882 0.376038 213 | v 0.279853 0.220144 0.377447 214 | v 0.254762 0.194958 0.379645 215 | v 0.223146 0.178788 0.38241 216 | v 0.188098 0.17321 0.385473 217 | v 0.15305 0.178788 0.388543 218 | v 0.121428 0.194958 0.391308 219 | v 0.0963362 0.220144 0.3935 220 | v 0.08023 0.251882 0.394909 221 | v 0.0746761 0.287065 0.3954 222 | v 0.0831414 0.321809 0.412781 223 | v 0.0990488 0.353156 0.41139 224 | v 0.123831 0.378031 0.409221 225 | v 0.155055 0.394003 0.406485 226 | v 0.18967 0.399504 0.403456 227 | v 0.224286 0.394003 0.400428 228 | v 0.25551 0.378031 0.397698 229 | v 0.280292 0.353156 0.395529 230 | v 0.296199 0.321809 0.394137 231 | v 0.301683 0.287065 0.393658 232 | v 0.296199 0.252321 0.394137 233 | v 0.280292 0.220974 0.395529 234 | v 0.25551 0.196098 0.397698 235 | v 0.224286 0.180127 0.400428 236 | v 0.18967 0.174625 0.403456 237 | v 0.155055 0.180127 0.406485 238 | v 0.123831 0.196098 0.409221 239 | v 0.0990488 0.220974 0.41139 240 | v 0.0831414 0.252321 0.412781 241 | v 0.0776577 0.287065 0.41326 242 | v 0.0886076 0.320522 0.429741 243 | v 0.103925 0.350706 0.428402 244 | v 0.127789 0.374658 0.426315 245 | v 0.157855 0.390033 0.423684 246 | v 0.191185 0.395336 0.420767 247 | v 0.224514 0.390033 0.41785 248 | v 0.25458 0.374658 0.415219 249 | v 0.278445 0.350706 0.413132 250 | v 0.293762 0.320522 0.411793 251 | v 0.299041 0.287065 0.411331 252 | v 0.293762 0.253607 0.411793 253 | v 0.278445 0.223429 0.413132 254 | v 0.25458 0.199472 0.415219 255 | v 0.224514 0.184096 0.41785 256 | v 0.191185 0.178794 0.420767 257 | v 0.157855 0.184096 0.423684 258 | v 0.127789 0.199472 0.426315 259 | v 0.103925 0.223429 0.428402 260 | v 0.0886076 0.253607 0.429741 261 | v 0.0833285 0.287065 0.430202 262 | v 0.0965233 0.318412 0.445619 263 | v 0.110876 0.346684 0.444362 264 | v 0.133231 0.369122 0.442403 265 | v 0.161398 0.383532 0.439942 266 | v 0.192623 0.388496 0.437212 267 | v 0.223847 0.383532 0.434476 268 | v 0.252014 0.369122 0.432015 269 | v 0.27437 0.346684 0.430056 270 | v 0.288722 0.318412 0.428805 271 | v 0.293668 0.287065 0.428373 272 | v 0.288722 0.255723 0.428805 273 | v 0.27437 0.227445 0.430056 274 | v 0.252014 0.205008 0.432015 275 | v 0.223847 0.190603 0.434476 276 | v 0.192623 0.185634 0.437212 277 | v 0.161398 0.190603 0.439942 278 | v 0.133231 0.205008 0.442409 279 | v 0.110876 0.227445 0.444362 280 | v 0.0965233 0.255723 0.445619 281 | v 0.0915774 0.287065 0.446051 282 | v 0.106701 0.315524 0.460018 283 | v 0.119727 0.341194 0.458878 284 | v 0.140025 0.361568 0.457101 285 | v 0.165602 0.374646 0.454868 286 | v 0.19395 0.37916 0.452389 287 | v 0.222298 0.374646 0.449904 288 | v 0.247875 0.361568 0.447665 289 | v 0.268173 0.341194 0.445894 290 | v 0.281204 0.315524 0.444754 291 | v 0.285694 0.287065 0.444362 292 | v 0.281204 0.258606 0.444754 293 | v 0.268173 0.232935 0.445894 294 | v 0.247875 0.212561 0.447665 295 | v 0.222298 0.199477 0.449904 296 | v 0.19395 0.19497 0.452389 297 | v 0.165602 0.199477 0.454868 298 | v 0.140025 0.212561 0.457101 299 | v 0.119727 0.232935 0.458878 300 | v 0.106701 0.258606 0.460018 301 | v 0.102206 0.287065 0.46041 302 | v 0.118879 0.311934 0.472587 303 | v 0.130267 0.334372 0.471593 304 | v 0.148005 0.352179 0.470044 305 | v 0.170355 0.363615 0.468086 306 | v 0.195137 0.367549 0.465917 307 | v 0.219913 0.363615 0.463748 308 | v 0.242263 0.352179 0.461795 309 | v 0.26 0.334372 0.460246 310 | v 0.271388 0.311934 0.459246 311 | v 0.275317 0.287065 0.458901 312 | v 0.271388 0.262195 0.459246 313 | v 0.26 0.239758 0.460246 314 | v 0.242263 0.22195 0.461795 315 | v 0.219913 0.210521 0.463748 316 | v 0.195137 0.20658 0.465917 317 | v 0.170355 0.210521 0.468086 318 | v 0.148005 0.22195 0.470044 319 | v 0.130267 0.239758 0.471593 320 | v 0.118879 0.262195 0.472587 321 | v 0.114956 0.287065 0.472932 322 | v 0.132764 0.307737 0.483023 323 | v 0.142229 0.326386 0.482193 324 | v 0.156973 0.341189 0.480901 325 | v 0.175552 0.350689 0.479275 326 | v 0.196148 0.353963 0.477475 327 | v 0.216738 0.350689 0.475674 328 | v 0.235317 0.341189 0.474049 329 | v 0.250061 0.326386 0.472757 330 | v 0.259526 0.307737 0.471933 331 | v 0.262789 0.287065 0.471646 332 | v 0.259526 0.266393 0.471933 333 | v 0.250061 0.247743 0.472757 334 | v 0.235317 0.232941 0.474049 335 | v 0.216738 0.223441 0.475674 336 | v 0.196148 0.220167 0.477475 337 | v 0.175552 0.223441 0.479275 338 | v 0.156973 0.232941 0.480901 339 | v 0.142229 0.247743 0.482193 340 | v 0.132764 0.266393 0.483023 341 | v 0.129502 0.287065 0.483303 342 | v 0.148011 0.303031 0.491055 343 | v 0.155318 0.31743 0.490412 344 | v 0.166707 0.328865 0.489418 345 | v 0.181053 0.336202 0.488161 346 | v 0.196961 0.338727 0.48677 347 | v 0.212862 0.336202 0.485379 348 | v 0.227209 0.328865 0.484128 349 | v 0.238597 0.31743 0.483128 350 | v 0.245911 0.303031 0.482491 351 | v 0.248424 0.287065 0.482269 352 | v 0.245911 0.271099 0.482491 353 | v 0.238597 0.2567 0.483128 354 | v 0.227209 0.24527 0.484128 355 | v 0.212862 0.237928 0.485379 356 | v 0.196961 0.235402 0.48677 357 | v 0.181053 0.237928 0.488161 358 | v 0.166707 0.24527 0.489418 359 | v 0.155318 0.2567 0.490412 360 | v 0.148011 0.271099 0.491055 361 | v 0.145491 0.287065 0.491277 362 | v 0.164245 0.297927 0.496492 363 | v 0.16922 0.307731 0.49606 364 | v 0.176967 0.315506 0.495382 365 | v 0.18673 0.320499 0.494528 366 | v 0.197557 0.322224 0.493581 367 | v 0.208378 0.320499 0.492634 368 | v 0.218141 0.315506 0.49178 369 | v 0.225887 0.307731 0.491102 370 | v 0.230863 0.297927 0.490664 371 | v 0.232581 0.287065 0.490517 372 | v 0.230863 0.276203 0.490664 373 | v 0.225887 0.266399 0.491102 374 | v 0.218141 0.258623 0.49178 375 | v 0.208378 0.25363 0.492634 376 | v 0.197557 0.251906 0.493581 377 | v 0.18673 0.25363 0.494528 378 | v 0.176967 0.258623 0.495382 379 | v 0.16922 0.266399 0.49606 380 | v 0.164245 0.276203 0.496492 381 | v 0.162532 0.287065 0.496644 382 | v 0.181065 0.29256 0.499205 383 | v 0.183585 0.297518 0.498983 384 | v 0.187501 0.301452 0.498644 385 | v 0.192441 0.303978 0.498211 386 | v 0.197919 0.304849 0.497732 387 | v 0.203391 0.303978 0.497252 388 | v 0.208331 0.301452 0.49682 389 | v 0.212254 0.297518 0.496475 390 | v 0.214768 0.29256 0.496258 391 | v 0.215633 0.287065 0.496182 392 | v 0.214768 0.281569 0.496258 393 | v 0.212254 0.276612 0.496475 394 | v 0.208331 0.272677 0.49682 395 | v 0.203391 0.270152 0.497252 396 | v 0.197919 0.269281 0.497732 397 | v 0.192441 0.270152 0.498211 398 | v 0.187501 0.272677 0.498644 399 | v 0.183585 0.276612 0.498983 400 | v 0.181065 0.281569 0.499205 401 | v 0.1802 0.287065 0.499281 402 | v 0.198042 0.287065 0.499123 403 | # 402 vertices 404 | 405 | vt 0.029 0.659 0.000 406 | vt 0.003 0.505 0.000 407 | vt 0.027 0.505 0.000 408 | vt 0.052 0.651 0.000 409 | vt 0.026 0.352 0.000 410 | vt 0.048 0.359 0.000 411 | vt 0.095 0.212 0.000 412 | vt 0.114 0.226 0.000 413 | vt 0.203 0.101 0.000 414 | vt 0.218 0.120 0.000 415 | vt 0.341 0.029 0.000 416 | vt 0.349 0.052 0.000 417 | vt 0.495 0.003 0.000 418 | vt 0.495 0.027 0.000 419 | vt 0.648 0.026 0.000 420 | vt 0.641 0.049 0.000 421 | vt 0.788 0.095 0.000 422 | vt 0.774 0.114 0.000 423 | vt 0.899 0.203 0.000 424 | vt 0.880 0.218 0.000 425 | vt 0.971 0.341 0.000 426 | vt 0.948 0.349 0.000 427 | vt 0.997 0.495 0.000 428 | vt 0.973 0.495 0.000 429 | vt 0.974 0.648 0.000 430 | vt 0.952 0.641 0.000 431 | vt 0.905 0.788 0.000 432 | vt 0.886 0.774 0.000 433 | vt 0.797 0.899 0.000 434 | vt 0.782 0.880 0.000 435 | vt 0.659 0.971 0.000 436 | vt 0.651 0.948 0.000 437 | vt 0.505 0.997 0.000 438 | vt 0.505 0.973 0.000 439 | vt 0.352 0.974 0.000 440 | vt 0.359 0.951 0.000 441 | vt 0.212 0.905 0.000 442 | vt 0.226 0.886 0.000 443 | vt 0.101 0.797 0.000 444 | vt 0.120 0.782 0.000 445 | vt 0.049 0.505 0.000 446 | vt 0.073 0.643 0.000 447 | vt 0.070 0.365 0.000 448 | vt 0.133 0.239 0.000 449 | vt 0.231 0.138 0.000 450 | vt 0.356 0.073 0.000 451 | vt 0.495 0.050 0.000 452 | vt 0.635 0.070 0.000 453 | vt 0.761 0.133 0.000 454 | vt 0.862 0.231 0.000 455 | vt 0.927 0.357 0.000 456 | vt 0.951 0.495 0.000 457 | vt 0.930 0.634 0.000 458 | vt 0.868 0.761 0.000 459 | vt 0.768 0.861 0.000 460 | vt 0.644 0.927 0.000 461 | vt 0.505 0.950 0.000 462 | vt 0.366 0.931 0.000 463 | vt 0.239 0.867 0.000 464 | vt 0.139 0.769 0.000 465 | vt 0.077 0.504 0.000 466 | vt 0.099 0.636 0.000 467 | vt 0.096 0.374 0.000 468 | vt 0.155 0.255 0.000 469 | vt 0.248 0.160 0.000 470 | vt 0.365 0.099 0.000 471 | vt 0.496 0.077 0.000 472 | vt 0.626 0.097 0.000 473 | vt 0.745 0.154 0.000 474 | vt 0.840 0.248 0.000 475 | vt 0.901 0.364 0.000 476 | vt 0.923 0.496 0.000 477 | vt 0.904 0.626 0.000 478 | vt 0.845 0.745 0.000 479 | vt 0.753 0.840 0.000 480 | vt 0.635 0.900 0.000 481 | vt 0.505 0.924 0.000 482 | vt 0.374 0.903 0.000 483 | vt 0.255 0.846 0.000 484 | vt 0.160 0.752 0.000 485 | vt 0.099 0.505 0.000 486 | vt 0.120 0.628 0.000 487 | vt 0.117 0.380 0.000 488 | vt 0.173 0.268 0.000 489 | vt 0.261 0.178 0.000 490 | vt 0.372 0.120 0.000 491 | vt 0.495 0.099 0.000 492 | vt 0.620 0.117 0.000 493 | vt 0.732 0.174 0.000 494 | vt 0.822 0.260 0.000 495 | vt 0.880 0.372 0.000 496 | vt 0.901 0.495 0.000 497 | vt 0.882 0.620 0.000 498 | vt 0.827 0.732 0.000 499 | vt 0.739 0.821 0.000 500 | vt 0.628 0.880 0.000 501 | vt 0.504 0.900 0.000 502 | vt 0.380 0.883 0.000 503 | vt 0.268 0.826 0.000 504 | vt 0.178 0.740 0.000 505 | vt 0.135 0.504 0.000 506 | vt 0.154 0.617 0.000 507 | vt 0.151 0.391 0.000 508 | vt 0.202 0.288 0.000 509 | vt 0.282 0.207 0.000 510 | vt 0.383 0.154 0.000 511 | vt 0.496 0.135 0.000 512 | vt 0.609 0.151 0.000 513 | vt 0.712 0.202 0.000 514 | vt 0.793 0.282 0.000 515 | vt 0.846 0.383 0.000 516 | vt 0.865 0.496 0.000 517 | vt 0.849 0.609 0.000 518 | vt 0.798 0.711 0.000 519 | vt 0.718 0.793 0.000 520 | vt 0.617 0.846 0.000 521 | vt 0.504 0.866 0.000 522 | vt 0.391 0.848 0.000 523 | vt 0.288 0.798 0.000 524 | vt 0.207 0.718 0.000 525 | vt 0.169 0.504 0.000 526 | vt 0.186 0.606 0.000 527 | vt 0.184 0.401 0.000 528 | vt 0.230 0.309 0.000 529 | vt 0.302 0.234 0.000 530 | vt 0.394 0.186 0.000 531 | vt 0.496 0.169 0.000 532 | vt 0.599 0.184 0.000 533 | vt 0.692 0.230 0.000 534 | vt 0.766 0.302 0.000 535 | vt 0.814 0.394 0.000 536 | vt 0.831 0.496 0.000 537 | vt 0.816 0.599 0.000 538 | vt 0.770 0.692 0.000 539 | vt 0.698 0.766 0.000 540 | vt 0.606 0.814 0.000 541 | vt 0.504 0.831 0.000 542 | vt 0.401 0.816 0.000 543 | vt 0.308 0.770 0.000 544 | vt 0.234 0.698 0.000 545 | vt 0.204 0.503 0.000 546 | vt 0.220 0.595 0.000 547 | vt 0.218 0.412 0.000 548 | vt 0.259 0.329 0.000 549 | vt 0.324 0.263 0.000 550 | vt 0.406 0.220 0.000 551 | vt 0.497 0.204 0.000 552 | vt 0.588 0.218 0.000 553 | vt 0.671 0.259 0.000 554 | vt 0.737 0.324 0.000 555 | vt 0.780 0.405 0.000 556 | vt 0.796 0.497 0.000 557 | vt 0.782 0.588 0.000 558 | vt 0.741 0.671 0.000 559 | vt 0.676 0.737 0.000 560 | vt 0.595 0.780 0.000 561 | vt 0.503 0.796 0.000 562 | vt 0.412 0.782 0.000 563 | vt 0.329 0.741 0.000 564 | vt 0.263 0.676 0.000 565 | vt 0.244 0.503 0.000 566 | vt 0.257 0.582 0.000 567 | vt 0.255 0.423 0.000 568 | vt 0.291 0.352 0.000 569 | vt 0.347 0.294 0.000 570 | vt 0.418 0.257 0.000 571 | vt 0.497 0.243 0.000 572 | vt 0.577 0.255 0.000 573 | vt 0.649 0.291 0.000 574 | vt 0.706 0.346 0.000 575 | vt 0.743 0.419 0.000 576 | vt 0.757 0.497 0.000 577 | vt 0.745 0.577 0.000 578 | vt 0.709 0.648 0.000 579 | vt 0.653 0.707 0.000 580 | vt 0.582 0.743 0.000 581 | vt 0.503 0.757 0.000 582 | vt 0.423 0.745 0.000 583 | vt 0.352 0.709 0.000 584 | vt 0.294 0.653 0.000 585 | vt 0.358 0.501 0.000 586 | vt 0.366 0.546 0.000 587 | vt 0.366 0.458 0.000 588 | vt 0.386 0.419 0.000 589 | vt 0.415 0.387 0.000 590 | vt 0.455 0.365 0.000 591 | vt 0.500 0.361 0.000 592 | vt 0.540 0.365 0.000 593 | vt 0.581 0.383 0.000 594 | vt 0.615 0.420 0.000 595 | vt 0.631 0.453 0.000 596 | vt 0.642 0.497 0.000 597 | vt 0.634 0.544 0.000 598 | vt 0.615 0.581 0.000 599 | vt 0.583 0.611 0.000 600 | vt 0.546 0.636 0.000 601 | vt 0.500 0.639 0.000 602 | vt 0.460 0.633 0.000 603 | vt 0.416 0.617 0.000 604 | vt 0.389 0.583 0.000 605 | vt 0.500 0.500 0.000 606 | vt 0.029 0.659 0.000 607 | vt 0.052 0.651 0.000 608 | vt 0.027 0.505 0.000 609 | vt 0.003 0.505 0.000 610 | vt 0.048 0.359 0.000 611 | vt 0.026 0.352 0.000 612 | vt 0.114 0.226 0.000 613 | vt 0.095 0.212 0.000 614 | vt 0.218 0.120 0.000 615 | vt 0.203 0.101 0.000 616 | vt 0.349 0.052 0.000 617 | vt 0.341 0.029 0.000 618 | vt 0.495 0.027 0.000 619 | vt 0.495 0.003 0.000 620 | vt 0.641 0.049 0.000 621 | vt 0.648 0.026 0.000 622 | vt 0.774 0.114 0.000 623 | vt 0.788 0.095 0.000 624 | vt 0.880 0.218 0.000 625 | vt 0.899 0.203 0.000 626 | vt 0.948 0.349 0.000 627 | vt 0.971 0.341 0.000 628 | vt 0.973 0.495 0.000 629 | vt 0.997 0.495 0.000 630 | vt 0.952 0.641 0.000 631 | vt 0.974 0.648 0.000 632 | vt 0.886 0.774 0.000 633 | vt 0.905 0.788 0.000 634 | vt 0.782 0.880 0.000 635 | vt 0.797 0.899 0.000 636 | vt 0.651 0.948 0.000 637 | vt 0.659 0.971 0.000 638 | vt 0.505 0.973 0.000 639 | vt 0.505 0.997 0.000 640 | vt 0.359 0.951 0.000 641 | vt 0.352 0.974 0.000 642 | vt 0.226 0.886 0.000 643 | vt 0.212 0.905 0.000 644 | vt 0.120 0.782 0.000 645 | vt 0.101 0.797 0.000 646 | vt 0.073 0.643 0.000 647 | vt 0.049 0.505 0.000 648 | vt 0.070 0.365 0.000 649 | vt 0.133 0.239 0.000 650 | vt 0.231 0.138 0.000 651 | vt 0.356 0.073 0.000 652 | vt 0.495 0.050 0.000 653 | vt 0.635 0.070 0.000 654 | vt 0.761 0.133 0.000 655 | vt 0.862 0.231 0.000 656 | vt 0.927 0.357 0.000 657 | vt 0.951 0.495 0.000 658 | vt 0.930 0.634 0.000 659 | vt 0.868 0.761 0.000 660 | vt 0.768 0.861 0.000 661 | vt 0.644 0.927 0.000 662 | vt 0.505 0.950 0.000 663 | vt 0.366 0.931 0.000 664 | vt 0.239 0.867 0.000 665 | vt 0.139 0.769 0.000 666 | vt 0.099 0.636 0.000 667 | vt 0.077 0.504 0.000 668 | vt 0.096 0.374 0.000 669 | vt 0.155 0.255 0.000 670 | vt 0.248 0.160 0.000 671 | vt 0.365 0.099 0.000 672 | vt 0.496 0.077 0.000 673 | vt 0.626 0.097 0.000 674 | vt 0.745 0.154 0.000 675 | vt 0.840 0.248 0.000 676 | vt 0.901 0.364 0.000 677 | vt 0.923 0.496 0.000 678 | vt 0.904 0.626 0.000 679 | vt 0.845 0.745 0.000 680 | vt 0.753 0.840 0.000 681 | vt 0.635 0.900 0.000 682 | vt 0.505 0.924 0.000 683 | vt 0.374 0.903 0.000 684 | vt 0.255 0.846 0.000 685 | vt 0.160 0.752 0.000 686 | vt 0.120 0.628 0.000 687 | vt 0.099 0.505 0.000 688 | vt 0.117 0.380 0.000 689 | vt 0.173 0.268 0.000 690 | vt 0.261 0.178 0.000 691 | vt 0.372 0.120 0.000 692 | vt 0.495 0.099 0.000 693 | vt 0.620 0.117 0.000 694 | vt 0.732 0.174 0.000 695 | vt 0.822 0.260 0.000 696 | vt 0.880 0.372 0.000 697 | vt 0.901 0.495 0.000 698 | vt 0.882 0.620 0.000 699 | vt 0.827 0.732 0.000 700 | vt 0.739 0.821 0.000 701 | vt 0.628 0.880 0.000 702 | vt 0.504 0.900 0.000 703 | vt 0.380 0.883 0.000 704 | vt 0.268 0.826 0.000 705 | vt 0.178 0.740 0.000 706 | vt 0.154 0.617 0.000 707 | vt 0.135 0.504 0.000 708 | vt 0.151 0.391 0.000 709 | vt 0.202 0.288 0.000 710 | vt 0.282 0.207 0.000 711 | vt 0.383 0.154 0.000 712 | vt 0.496 0.135 0.000 713 | vt 0.609 0.151 0.000 714 | vt 0.712 0.202 0.000 715 | vt 0.793 0.282 0.000 716 | vt 0.846 0.383 0.000 717 | vt 0.865 0.496 0.000 718 | vt 0.849 0.609 0.000 719 | vt 0.798 0.711 0.000 720 | vt 0.718 0.793 0.000 721 | vt 0.617 0.846 0.000 722 | vt 0.504 0.866 0.000 723 | vt 0.391 0.848 0.000 724 | vt 0.288 0.798 0.000 725 | vt 0.207 0.718 0.000 726 | vt 0.186 0.606 0.000 727 | vt 0.169 0.504 0.000 728 | vt 0.184 0.401 0.000 729 | vt 0.230 0.309 0.000 730 | vt 0.302 0.234 0.000 731 | vt 0.394 0.186 0.000 732 | vt 0.496 0.169 0.000 733 | vt 0.599 0.184 0.000 734 | vt 0.692 0.230 0.000 735 | vt 0.766 0.302 0.000 736 | vt 0.814 0.394 0.000 737 | vt 0.831 0.496 0.000 738 | vt 0.816 0.599 0.000 739 | vt 0.770 0.692 0.000 740 | vt 0.698 0.766 0.000 741 | vt 0.606 0.814 0.000 742 | vt 0.504 0.831 0.000 743 | vt 0.401 0.816 0.000 744 | vt 0.308 0.770 0.000 745 | vt 0.234 0.698 0.000 746 | vt 0.220 0.595 0.000 747 | vt 0.204 0.503 0.000 748 | vt 0.218 0.412 0.000 749 | vt 0.259 0.329 0.000 750 | vt 0.324 0.263 0.000 751 | vt 0.406 0.220 0.000 752 | vt 0.497 0.204 0.000 753 | vt 0.588 0.218 0.000 754 | vt 0.671 0.259 0.000 755 | vt 0.737 0.324 0.000 756 | vt 0.780 0.405 0.000 757 | vt 0.796 0.497 0.000 758 | vt 0.782 0.588 0.000 759 | vt 0.741 0.671 0.000 760 | vt 0.676 0.737 0.000 761 | vt 0.595 0.780 0.000 762 | vt 0.503 0.796 0.000 763 | vt 0.412 0.782 0.000 764 | vt 0.329 0.741 0.000 765 | vt 0.263 0.676 0.000 766 | vt 0.257 0.582 0.000 767 | vt 0.244 0.503 0.000 768 | vt 0.255 0.423 0.000 769 | vt 0.291 0.352 0.000 770 | vt 0.347 0.294 0.000 771 | vt 0.418 0.257 0.000 772 | vt 0.497 0.243 0.000 773 | vt 0.577 0.255 0.000 774 | vt 0.649 0.291 0.000 775 | vt 0.706 0.346 0.000 776 | vt 0.743 0.419 0.000 777 | vt 0.757 0.497 0.000 778 | vt 0.745 0.577 0.000 779 | vt 0.709 0.648 0.000 780 | vt 0.653 0.707 0.000 781 | vt 0.582 0.743 0.000 782 | vt 0.503 0.757 0.000 783 | vt 0.423 0.745 0.000 784 | vt 0.352 0.709 0.000 785 | vt 0.294 0.653 0.000 786 | vt 0.366 0.546 0.000 787 | vt 0.358 0.501 0.000 788 | vt 0.366 0.458 0.000 789 | vt 0.386 0.419 0.000 790 | vt 0.415 0.387 0.000 791 | vt 0.455 0.365 0.000 792 | vt 0.500 0.361 0.000 793 | vt 0.540 0.365 0.000 794 | vt 0.581 0.383 0.000 795 | vt 0.615 0.420 0.000 796 | vt 0.631 0.453 0.000 797 | vt 0.642 0.497 0.000 798 | vt 0.634 0.544 0.000 799 | vt 0.615 0.581 0.000 800 | vt 0.583 0.611 0.000 801 | vt 0.546 0.636 0.000 802 | vt 0.500 0.639 0.000 803 | vt 0.460 0.633 0.000 804 | vt 0.416 0.617 0.000 805 | vt 0.389 0.583 0.000 806 | vt 0.500 0.500 0.000 807 | # 402 texture vertices 808 | 809 | vn 0.938 0.308 0.160 810 | vn 0.797 0.586 0.148 811 | vn 0.577 0.807 0.129 812 | vn 0.300 0.948 0.105 813 | vn -0.007 0.997 0.078 814 | vn -0.314 0.948 0.051 815 | vn -0.591 0.807 0.027 816 | vn -0.810 0.586 0.007 817 | vn -0.951 0.308 -0.005 818 | vn -1.000 0.000 -0.009 819 | vn -0.951 -0.308 -0.005 820 | vn -0.810 -0.586 0.007 821 | vn -0.591 -0.807 0.027 822 | vn -0.314 -0.948 0.051 823 | vn -0.007 -0.997 0.078 824 | vn 0.300 -0.948 0.105 825 | vn 0.577 -0.807 0.129 826 | vn 0.797 -0.586 0.148 827 | vn 0.938 -0.308 0.160 828 | vn 0.986 0.000 0.165 829 | vn 0.922 0.305 0.236 830 | vn 0.783 0.581 0.224 831 | vn 0.565 0.799 0.205 832 | vn 0.291 0.940 0.181 833 | vn -0.014 0.988 0.154 834 | vn -0.318 0.940 0.128 835 | vn -0.592 0.799 0.104 836 | vn -0.810 0.581 0.085 837 | vn -0.949 0.305 0.073 838 | vn -0.998 0.000 0.068 839 | vn -0.949 -0.305 0.073 840 | vn -0.810 -0.581 0.085 841 | vn -0.592 -0.799 0.104 842 | vn -0.318 -0.940 0.128 843 | vn -0.014 -0.988 0.154 844 | vn 0.291 -0.940 0.181 845 | vn 0.565 -0.799 0.205 846 | vn 0.783 -0.581 0.224 847 | vn 0.922 -0.305 0.236 848 | vn 0.971 0.000 0.241 849 | vn 0.875 0.294 0.385 850 | vn 0.740 0.559 0.373 851 | vn 0.531 0.770 0.354 852 | vn 0.266 0.905 0.331 853 | vn -0.027 0.952 0.306 854 | vn -0.320 0.905 0.280 855 | vn -0.584 0.770 0.257 856 | vn -0.794 0.559 0.239 857 | vn -0.928 0.294 0.227 858 | vn -0.975 0.000 0.223 859 | vn -0.928 -0.294 0.227 860 | vn -0.794 -0.559 0.239 861 | vn -0.584 -0.770 0.257 862 | vn -0.320 -0.905 0.280 863 | vn -0.027 -0.952 0.306 864 | vn 0.266 -0.905 0.331 865 | vn 0.531 -0.770 0.354 866 | vn 0.740 -0.559 0.373 867 | vn 0.875 -0.294 0.385 868 | vn 0.921 -0.000 0.389 869 | vn 0.806 0.276 0.523 870 | vn 0.680 0.525 0.512 871 | vn 0.483 0.722 0.495 872 | vn 0.235 0.849 0.473 873 | vn -0.039 0.893 0.449 874 | vn -0.314 0.849 0.425 875 | vn -0.562 0.722 0.404 876 | vn -0.759 0.525 0.386 877 | vn -0.885 0.276 0.375 878 | vn -0.928 0.000 0.371 879 | vn -0.885 -0.276 0.375 880 | vn -0.759 -0.525 0.386 881 | vn -0.562 -0.722 0.403 882 | vn -0.314 -0.849 0.425 883 | vn -0.039 -0.893 0.449 884 | vn 0.235 -0.849 0.473 885 | vn 0.483 -0.722 0.495 886 | vn 0.680 -0.525 0.512 887 | vn 0.806 -0.276 0.523 888 | vn 0.850 -0.000 0.527 889 | vn 0.718 0.251 0.649 890 | vn 0.603 0.477 0.639 891 | vn 0.424 0.657 0.624 892 | vn 0.199 0.772 0.604 893 | vn -0.051 0.812 0.582 894 | vn -0.301 0.772 0.560 895 | vn -0.526 0.657 0.540 896 | vn -0.705 0.477 0.525 897 | vn -0.820 0.251 0.515 898 | vn -0.859 -0.000 0.511 899 | vn -0.820 -0.251 0.515 900 | vn -0.705 -0.477 0.525 901 | vn -0.526 -0.657 0.540 902 | vn -0.301 -0.772 0.560 903 | vn -0.051 -0.812 0.582 904 | vn 0.199 -0.772 0.604 905 | vn 0.424 -0.657 0.624 906 | vn 0.603 -0.477 0.639 907 | vn 0.718 -0.251 0.649 908 | vn 0.758 -0.000 0.653 909 | vn 0.612 0.220 0.760 910 | vn 0.512 0.418 0.751 911 | vn 0.355 0.575 0.737 912 | vn 0.158 0.676 0.720 913 | vn -0.061 0.711 0.701 914 | vn -0.280 0.676 0.681 915 | vn -0.478 0.575 0.664 916 | vn -0.634 0.418 0.651 917 | vn -0.735 0.220 0.642 918 | vn -0.769 0.000 0.639 919 | vn -0.735 -0.220 0.642 920 | vn -0.634 -0.418 0.651 921 | vn -0.478 -0.575 0.664 922 | vn -0.280 -0.676 0.682 923 | vn -0.061 -0.711 0.701 924 | vn 0.158 -0.676 0.720 925 | vn 0.355 -0.575 0.737 926 | vn 0.512 -0.418 0.751 927 | vn 0.612 -0.220 0.760 928 | vn 0.647 0.000 0.763 929 | vn 0.491 0.183 0.851 930 | vn 0.408 0.348 0.844 931 | vn 0.277 0.480 0.833 932 | vn 0.112 0.564 0.818 933 | vn -0.070 0.593 0.802 934 | vn -0.253 0.564 0.786 935 | vn -0.417 0.480 0.772 936 | vn -0.548 0.348 0.761 937 | vn -0.632 0.183 0.753 938 | vn -0.661 0.000 0.751 939 | vn -0.632 -0.183 0.753 940 | vn -0.548 -0.348 0.761 941 | vn -0.417 -0.480 0.772 942 | vn -0.253 -0.564 0.786 943 | vn -0.070 -0.593 0.802 944 | vn 0.112 -0.564 0.818 945 | vn 0.277 -0.480 0.833 946 | vn 0.408 -0.348 0.844 947 | vn 0.491 -0.183 0.851 948 | vn 0.520 -0.000 0.854 949 | vn 0.358 0.142 0.923 950 | vn 0.293 0.270 0.917 951 | vn 0.192 0.372 0.908 952 | vn 0.064 0.437 0.897 953 | vn -0.077 0.460 0.885 954 | vn -0.219 0.437 0.872 955 | vn -0.347 0.372 0.861 956 | vn -0.448 0.270 0.852 957 | vn -0.513 0.142 0.846 958 | vn -0.536 0.000 0.844 959 | vn -0.513 -0.142 0.846 960 | vn -0.448 -0.270 0.852 961 | vn -0.347 -0.372 0.861 962 | vn -0.219 -0.437 0.872 963 | vn -0.077 -0.460 0.885 964 | vn 0.064 -0.438 0.897 965 | vn 0.192 -0.372 0.908 966 | vn 0.293 -0.270 0.917 967 | vn 0.358 -0.142 0.923 968 | vn 0.381 0.000 0.925 969 | vn 0.217 0.098 0.971 970 | vn 0.172 0.186 0.967 971 | vn 0.102 0.256 0.961 972 | vn 0.015 0.300 0.954 973 | vn -0.083 0.316 0.945 974 | vn -0.180 0.300 0.937 975 | vn -0.268 0.256 0.929 976 | vn -0.337 0.186 0.923 977 | vn -0.382 0.098 0.919 978 | vn -0.397 0.000 0.918 979 | vn -0.382 -0.098 0.919 980 | vn -0.337 -0.186 0.923 981 | vn -0.268 -0.256 0.929 982 | vn -0.180 -0.300 0.937 983 | vn -0.083 -0.316 0.945 984 | vn 0.015 -0.300 0.954 985 | vn 0.102 -0.256 0.961 986 | vn 0.172 -0.186 0.967 987 | vn 0.217 -0.098 0.971 988 | vn 0.232 -0.000 0.973 989 | vn 0.069 0.051 0.996 990 | vn 0.046 0.096 0.994 991 | vn 0.010 0.133 0.991 992 | vn -0.035 0.156 0.987 993 | vn -0.086 0.164 0.983 994 | vn -0.136 0.156 0.978 995 | vn -0.182 0.133 0.974 996 | vn -0.218 0.096 0.971 997 | vn -0.241 0.051 0.969 998 | vn -0.249 0.000 0.968 999 | vn -0.241 -0.051 0.969 1000 | vn -0.218 -0.096 0.971 1001 | vn -0.182 -0.133 0.974 1002 | vn -0.136 -0.156 0.978 1003 | vn -0.086 -0.164 0.983 1004 | vn -0.035 -0.156 0.987 1005 | vn 0.010 -0.133 0.991 1006 | vn 0.046 -0.096 0.994 1007 | vn 0.069 -0.051 0.996 1008 | vn 0.077 -0.000 0.997 1009 | vn -0.087 0.000 0.996 1010 | vn -0.938 0.308 0.160 1011 | vn -0.797 0.586 0.148 1012 | vn -0.577 0.807 0.129 1013 | vn -0.300 0.948 0.105 1014 | vn 0.007 0.997 0.078 1015 | vn 0.314 0.948 0.051 1016 | vn 0.591 0.807 0.027 1017 | vn 0.810 0.586 0.007 1018 | vn 0.951 0.308 -0.005 1019 | vn 1.000 -0.000 -0.009 1020 | vn 0.951 -0.308 -0.005 1021 | vn 0.810 -0.586 0.007 1022 | vn 0.591 -0.807 0.027 1023 | vn 0.314 -0.948 0.051 1024 | vn 0.007 -0.997 0.078 1025 | vn -0.300 -0.948 0.105 1026 | vn -0.577 -0.807 0.129 1027 | vn -0.797 -0.586 0.148 1028 | vn -0.938 -0.308 0.160 1029 | vn -0.986 0.000 0.165 1030 | vn -0.922 0.305 0.236 1031 | vn -0.783 0.581 0.224 1032 | vn -0.565 0.799 0.205 1033 | vn -0.291 0.940 0.181 1034 | vn 0.014 0.988 0.154 1035 | vn 0.318 0.940 0.128 1036 | vn 0.592 0.799 0.104 1037 | vn 0.810 0.581 0.085 1038 | vn 0.949 0.305 0.073 1039 | vn 0.998 0.000 0.068 1040 | vn 0.949 -0.305 0.073 1041 | vn 0.810 -0.581 0.085 1042 | vn 0.592 -0.799 0.104 1043 | vn 0.318 -0.940 0.128 1044 | vn 0.014 -0.988 0.154 1045 | vn -0.291 -0.940 0.181 1046 | vn -0.565 -0.799 0.205 1047 | vn -0.783 -0.581 0.224 1048 | vn -0.922 -0.305 0.236 1049 | vn -0.971 0.000 0.241 1050 | vn -0.875 0.294 0.385 1051 | vn -0.740 0.559 0.373 1052 | vn -0.531 0.770 0.354 1053 | vn -0.266 0.905 0.331 1054 | vn 0.027 0.952 0.306 1055 | vn 0.320 0.905 0.280 1056 | vn 0.584 0.770 0.257 1057 | vn 0.794 0.559 0.239 1058 | vn 0.928 0.294 0.227 1059 | vn 0.975 0.000 0.223 1060 | vn 0.928 -0.294 0.227 1061 | vn 0.794 -0.559 0.239 1062 | vn 0.584 -0.770 0.257 1063 | vn 0.320 -0.905 0.280 1064 | vn 0.027 -0.952 0.306 1065 | vn -0.266 -0.905 0.331 1066 | vn -0.531 -0.770 0.354 1067 | vn -0.740 -0.559 0.373 1068 | vn -0.875 -0.294 0.385 1069 | vn -0.921 -0.000 0.389 1070 | vn -0.806 0.276 0.523 1071 | vn -0.680 0.525 0.512 1072 | vn -0.483 0.722 0.495 1073 | vn -0.235 0.849 0.473 1074 | vn 0.039 0.893 0.449 1075 | vn 0.314 0.849 0.425 1076 | vn 0.562 0.722 0.404 1077 | vn 0.759 0.525 0.386 1078 | vn 0.885 0.276 0.375 1079 | vn 0.928 0.000 0.371 1080 | vn 0.885 -0.276 0.375 1081 | vn 0.759 -0.525 0.386 1082 | vn 0.562 -0.722 0.403 1083 | vn 0.314 -0.849 0.425 1084 | vn 0.039 -0.893 0.449 1085 | vn -0.235 -0.849 0.473 1086 | vn -0.483 -0.722 0.495 1087 | vn -0.680 -0.525 0.512 1088 | vn -0.806 -0.276 0.523 1089 | vn -0.850 -0.000 0.527 1090 | vn -0.718 0.251 0.649 1091 | vn -0.603 0.477 0.639 1092 | vn -0.424 0.657 0.624 1093 | vn -0.199 0.772 0.604 1094 | vn 0.051 0.812 0.582 1095 | vn 0.301 0.772 0.560 1096 | vn 0.526 0.657 0.540 1097 | vn 0.705 0.477 0.525 1098 | vn 0.820 0.251 0.515 1099 | vn 0.859 -0.000 0.511 1100 | vn 0.820 -0.251 0.515 1101 | vn 0.705 -0.477 0.525 1102 | vn 0.526 -0.657 0.540 1103 | vn 0.301 -0.772 0.560 1104 | vn 0.051 -0.812 0.582 1105 | vn -0.199 -0.772 0.604 1106 | vn -0.424 -0.657 0.624 1107 | vn -0.603 -0.477 0.639 1108 | vn -0.718 -0.251 0.649 1109 | vn -0.758 -0.000 0.653 1110 | vn -0.612 0.220 0.760 1111 | vn -0.512 0.418 0.751 1112 | vn -0.355 0.575 0.737 1113 | vn -0.158 0.676 0.720 1114 | vn 0.061 0.711 0.701 1115 | vn 0.280 0.676 0.681 1116 | vn 0.478 0.575 0.664 1117 | vn 0.634 0.418 0.651 1118 | vn 0.735 0.220 0.642 1119 | vn 0.769 0.000 0.639 1120 | vn 0.735 -0.220 0.642 1121 | vn 0.634 -0.418 0.651 1122 | vn 0.478 -0.575 0.664 1123 | vn 0.280 -0.676 0.681 1124 | vn 0.061 -0.711 0.701 1125 | vn -0.158 -0.676 0.720 1126 | vn -0.355 -0.575 0.737 1127 | vn -0.512 -0.418 0.751 1128 | vn -0.612 -0.220 0.760 1129 | vn -0.647 0.000 0.763 1130 | vn -0.491 0.183 0.851 1131 | vn -0.408 0.348 0.844 1132 | vn -0.277 0.480 0.833 1133 | vn -0.112 0.564 0.818 1134 | vn 0.070 0.593 0.802 1135 | vn 0.253 0.564 0.786 1136 | vn 0.417 0.480 0.772 1137 | vn 0.548 0.348 0.761 1138 | vn 0.632 0.183 0.753 1139 | vn 0.661 -0.000 0.751 1140 | vn 0.632 -0.183 0.753 1141 | vn 0.548 -0.348 0.761 1142 | vn 0.417 -0.480 0.772 1143 | vn 0.253 -0.564 0.786 1144 | vn 0.070 -0.593 0.802 1145 | vn -0.112 -0.564 0.818 1146 | vn -0.277 -0.480 0.833 1147 | vn -0.408 -0.348 0.844 1148 | vn -0.491 -0.183 0.851 1149 | vn -0.520 -0.000 0.854 1150 | vn -0.358 0.142 0.923 1151 | vn -0.293 0.270 0.917 1152 | vn -0.192 0.372 0.908 1153 | vn -0.064 0.437 0.897 1154 | vn 0.077 0.460 0.885 1155 | vn 0.219 0.437 0.872 1156 | vn 0.347 0.372 0.861 1157 | vn 0.448 0.270 0.852 1158 | vn 0.513 0.142 0.846 1159 | vn 0.536 0.000 0.844 1160 | vn 0.513 -0.142 0.846 1161 | vn 0.448 -0.270 0.852 1162 | vn 0.347 -0.372 0.861 1163 | vn 0.219 -0.437 0.872 1164 | vn 0.077 -0.460 0.885 1165 | vn -0.064 -0.438 0.897 1166 | vn -0.192 -0.372 0.908 1167 | vn -0.293 -0.270 0.917 1168 | vn -0.358 -0.142 0.923 1169 | vn -0.381 0.000 0.925 1170 | vn -0.217 0.098 0.971 1171 | vn -0.172 0.186 0.967 1172 | vn -0.102 0.256 0.961 1173 | vn -0.015 0.300 0.954 1174 | vn 0.083 0.316 0.945 1175 | vn 0.180 0.300 0.937 1176 | vn 0.268 0.256 0.929 1177 | vn 0.337 0.186 0.923 1178 | vn 0.382 0.098 0.919 1179 | vn 0.397 0.000 0.918 1180 | vn 0.382 -0.098 0.919 1181 | vn 0.337 -0.186 0.923 1182 | vn 0.268 -0.256 0.929 1183 | vn 0.180 -0.300 0.937 1184 | vn 0.083 -0.316 0.945 1185 | vn -0.015 -0.300 0.954 1186 | vn -0.102 -0.256 0.961 1187 | vn -0.172 -0.186 0.967 1188 | vn -0.217 -0.098 0.971 1189 | vn -0.232 0.000 0.973 1190 | vn -0.069 0.051 0.996 1191 | vn -0.046 0.096 0.994 1192 | vn -0.010 0.133 0.991 1193 | vn 0.035 0.156 0.987 1194 | vn 0.086 0.164 0.983 1195 | vn 0.136 0.156 0.978 1196 | vn 0.182 0.133 0.974 1197 | vn 0.218 0.096 0.971 1198 | vn 0.241 0.051 0.969 1199 | vn 0.249 0.000 0.968 1200 | vn 0.241 -0.051 0.969 1201 | vn 0.218 -0.096 0.971 1202 | vn 0.182 -0.133 0.974 1203 | vn 0.136 -0.156 0.978 1204 | vn 0.086 -0.164 0.983 1205 | vn 0.035 -0.156 0.987 1206 | vn -0.010 -0.133 0.991 1207 | vn -0.046 -0.096 0.994 1208 | vn -0.069 -0.051 0.996 1209 | vn -0.077 0.000 0.997 1210 | vn 0.087 0.000 0.996 1211 | # 402 vertex normals 1212 | 1213 | g eyeInner 1214 | s 1 1215 | f 1/1/1 2/2/2 22/3/22 1216 | f 1/1/1 22/3/22 21/4/21 1217 | f 2/2/2 3/5/3 23/6/23 1218 | f 2/2/2 23/6/23 22/3/22 1219 | f 3/5/3 4/7/4 24/8/24 1220 | f 3/5/3 24/8/24 23/6/23 1221 | f 4/7/4 5/9/5 25/10/25 1222 | f 4/7/4 25/10/25 24/8/24 1223 | f 5/9/5 6/11/6 26/12/26 1224 | f 5/9/5 26/12/26 25/10/25 1225 | f 6/11/6 7/13/7 27/14/27 1226 | f 6/11/6 27/14/27 26/12/26 1227 | f 7/13/7 8/15/8 28/16/28 1228 | f 7/13/7 28/16/28 27/14/27 1229 | f 8/15/8 9/17/9 29/18/29 1230 | f 8/15/8 29/18/29 28/16/28 1231 | f 9/17/9 10/19/10 30/20/30 1232 | f 9/17/9 30/20/30 29/18/29 1233 | f 10/19/10 11/21/11 31/22/31 1234 | f 10/19/10 31/22/31 30/20/30 1235 | f 11/21/11 12/23/12 32/24/32 1236 | f 11/21/11 32/24/32 31/22/31 1237 | f 12/23/12 13/25/13 33/26/33 1238 | f 12/23/12 33/26/33 32/24/32 1239 | f 13/25/13 14/27/14 34/28/34 1240 | f 13/25/13 34/28/34 33/26/33 1241 | f 14/27/14 15/29/15 35/30/35 1242 | f 14/27/14 35/30/35 34/28/34 1243 | f 15/29/15 16/31/16 36/32/36 1244 | f 15/29/15 36/32/36 35/30/35 1245 | f 16/31/16 17/33/17 37/34/37 1246 | f 16/31/16 37/34/37 36/32/36 1247 | f 17/33/17 18/35/18 38/36/38 1248 | f 17/33/17 38/36/38 37/34/37 1249 | f 18/35/18 19/37/19 39/38/39 1250 | f 18/35/18 39/38/39 38/36/38 1251 | f 19/37/19 20/39/20 40/40/40 1252 | f 19/37/19 40/40/40 39/38/39 1253 | f 20/39/20 1/1/1 21/4/21 1254 | f 20/39/20 21/4/21 40/40/40 1255 | f 21/4/21 22/3/22 42/41/42 1256 | f 21/4/21 42/41/42 41/42/41 1257 | f 22/3/22 23/6/23 43/43/43 1258 | f 22/3/22 43/43/43 42/41/42 1259 | f 23/6/23 24/8/24 44/44/44 1260 | f 23/6/23 44/44/44 43/43/43 1261 | f 24/8/24 25/10/25 45/45/45 1262 | f 24/8/24 45/45/45 44/44/44 1263 | f 25/10/25 26/12/26 46/46/46 1264 | f 25/10/25 46/46/46 45/45/45 1265 | f 26/12/26 27/14/27 47/47/47 1266 | f 26/12/26 47/47/47 46/46/46 1267 | f 27/14/27 28/16/28 48/48/48 1268 | f 27/14/27 48/48/48 47/47/47 1269 | f 28/16/28 29/18/29 49/49/49 1270 | f 28/16/28 49/49/49 48/48/48 1271 | f 29/18/29 30/20/30 50/50/50 1272 | f 29/18/29 50/50/50 49/49/49 1273 | f 30/20/30 31/22/31 51/51/51 1274 | f 30/20/30 51/51/51 50/50/50 1275 | f 31/22/31 32/24/32 52/52/52 1276 | f 31/22/31 52/52/52 51/51/51 1277 | f 32/24/32 33/26/33 53/53/53 1278 | f 32/24/32 53/53/53 52/52/52 1279 | f 33/26/33 34/28/34 54/54/54 1280 | f 33/26/33 54/54/54 53/53/53 1281 | f 34/28/34 35/30/35 55/55/55 1282 | f 34/28/34 55/55/55 54/54/54 1283 | f 35/30/35 36/32/36 56/56/56 1284 | f 35/30/35 56/56/56 55/55/55 1285 | f 36/32/36 37/34/37 57/57/57 1286 | f 36/32/36 57/57/57 56/56/56 1287 | f 37/34/37 38/36/38 58/58/58 1288 | f 37/34/37 58/58/58 57/57/57 1289 | f 38/36/38 39/38/39 59/59/59 1290 | f 38/36/38 59/59/59 58/58/58 1291 | f 39/38/39 40/40/40 60/60/60 1292 | f 39/38/39 60/60/60 59/59/59 1293 | f 40/40/40 21/4/21 41/42/41 1294 | f 40/40/40 41/42/41 60/60/60 1295 | f 41/42/41 42/41/42 62/61/62 1296 | f 41/42/41 62/61/62 61/62/61 1297 | f 42/41/42 43/43/43 63/63/63 1298 | f 42/41/42 63/63/63 62/61/62 1299 | f 43/43/43 44/44/44 64/64/64 1300 | f 43/43/43 64/64/64 63/63/63 1301 | f 44/44/44 45/45/45 65/65/65 1302 | f 44/44/44 65/65/65 64/64/64 1303 | f 45/45/45 46/46/46 66/66/66 1304 | f 45/45/45 66/66/66 65/65/65 1305 | f 46/46/46 47/47/47 67/67/67 1306 | f 46/46/46 67/67/67 66/66/66 1307 | f 47/47/47 48/48/48 68/68/68 1308 | f 47/47/47 68/68/68 67/67/67 1309 | f 48/48/48 49/49/49 69/69/69 1310 | f 48/48/48 69/69/69 68/68/68 1311 | f 49/49/49 50/50/50 70/70/70 1312 | f 49/49/49 70/70/70 69/69/69 1313 | f 50/50/50 51/51/51 71/71/71 1314 | f 50/50/50 71/71/71 70/70/70 1315 | f 51/51/51 52/52/52 72/72/72 1316 | f 51/51/51 72/72/72 71/71/71 1317 | f 52/52/52 53/53/53 73/73/73 1318 | f 52/52/52 73/73/73 72/72/72 1319 | f 53/53/53 54/54/54 74/74/74 1320 | f 53/53/53 74/74/74 73/73/73 1321 | f 54/54/54 55/55/55 75/75/75 1322 | f 54/54/54 75/75/75 74/74/74 1323 | f 55/55/55 56/56/56 76/76/76 1324 | f 55/55/55 76/76/76 75/75/75 1325 | f 56/56/56 57/57/57 77/77/77 1326 | f 56/56/56 77/77/77 76/76/76 1327 | f 57/57/57 58/58/58 78/78/78 1328 | f 57/57/57 78/78/78 77/77/77 1329 | f 58/58/58 59/59/59 79/79/79 1330 | f 58/58/58 79/79/79 78/78/78 1331 | f 59/59/59 60/60/60 80/80/80 1332 | f 59/59/59 80/80/80 79/79/79 1333 | f 60/60/60 41/42/41 61/62/61 1334 | f 60/60/60 61/62/61 80/80/80 1335 | f 61/62/61 62/61/62 82/81/82 1336 | f 61/62/61 82/81/82 81/82/81 1337 | f 62/61/62 63/63/63 83/83/83 1338 | f 62/61/62 83/83/83 82/81/82 1339 | f 63/63/63 64/64/64 84/84/84 1340 | f 63/63/63 84/84/84 83/83/83 1341 | f 64/64/64 65/65/65 85/85/85 1342 | f 64/64/64 85/85/85 84/84/84 1343 | f 65/65/65 66/66/66 86/86/86 1344 | f 65/65/65 86/86/86 85/85/85 1345 | f 66/66/66 67/67/67 87/87/87 1346 | f 66/66/66 87/87/87 86/86/86 1347 | f 67/67/67 68/68/68 88/88/88 1348 | f 67/67/67 88/88/88 87/87/87 1349 | f 68/68/68 69/69/69 89/89/89 1350 | f 68/68/68 89/89/89 88/88/88 1351 | f 69/69/69 70/70/70 90/90/90 1352 | f 69/69/69 90/90/90 89/89/89 1353 | f 70/70/70 71/71/71 91/91/91 1354 | f 70/70/70 91/91/91 90/90/90 1355 | f 71/71/71 72/72/72 92/92/92 1356 | f 71/71/71 92/92/92 91/91/91 1357 | f 72/72/72 73/73/73 93/93/93 1358 | f 72/72/72 93/93/93 92/92/92 1359 | f 73/73/73 74/74/74 94/94/94 1360 | f 73/73/73 94/94/94 93/93/93 1361 | f 74/74/74 75/75/75 95/95/95 1362 | f 74/74/74 95/95/95 94/94/94 1363 | f 75/75/75 76/76/76 96/96/96 1364 | f 75/75/75 96/96/96 95/95/95 1365 | f 76/76/76 77/77/77 97/97/97 1366 | f 76/76/76 97/97/97 96/96/96 1367 | f 77/77/77 78/78/78 98/98/98 1368 | f 77/77/77 98/98/98 97/97/97 1369 | f 78/78/78 79/79/79 99/99/99 1370 | f 78/78/78 99/99/99 98/98/98 1371 | f 79/79/79 80/80/80 100/100/100 1372 | f 79/79/79 100/100/100 99/99/99 1373 | f 80/80/80 61/62/61 81/82/81 1374 | f 80/80/80 81/82/81 100/100/100 1375 | f 81/82/81 82/81/82 102/101/102 1376 | f 81/82/81 102/101/102 101/102/101 1377 | f 82/81/82 83/83/83 103/103/103 1378 | f 82/81/82 103/103/103 102/101/102 1379 | f 83/83/83 84/84/84 104/104/104 1380 | f 83/83/83 104/104/104 103/103/103 1381 | f 84/84/84 85/85/85 105/105/105 1382 | f 84/84/84 105/105/105 104/104/104 1383 | f 85/85/85 86/86/86 106/106/106 1384 | f 85/85/85 106/106/106 105/105/105 1385 | f 86/86/86 87/87/87 107/107/107 1386 | f 86/86/86 107/107/107 106/106/106 1387 | f 87/87/87 88/88/88 108/108/108 1388 | f 87/87/87 108/108/108 107/107/107 1389 | f 88/88/88 89/89/89 109/109/109 1390 | f 88/88/88 109/109/109 108/108/108 1391 | f 89/89/89 90/90/90 110/110/110 1392 | f 89/89/89 110/110/110 109/109/109 1393 | f 90/90/90 91/91/91 111/111/111 1394 | f 90/90/90 111/111/111 110/110/110 1395 | f 91/91/91 92/92/92 112/112/112 1396 | f 91/91/91 112/112/112 111/111/111 1397 | f 92/92/92 93/93/93 113/113/113 1398 | f 92/92/92 113/113/113 112/112/112 1399 | f 93/93/93 94/94/94 114/114/114 1400 | f 93/93/93 114/114/114 113/113/113 1401 | f 94/94/94 95/95/95 115/115/115 1402 | f 94/94/94 115/115/115 114/114/114 1403 | f 95/95/95 96/96/96 116/116/116 1404 | f 95/95/95 116/116/116 115/115/115 1405 | f 96/96/96 97/97/97 117/117/117 1406 | f 96/96/96 117/117/117 116/116/116 1407 | f 97/97/97 98/98/98 118/118/118 1408 | f 97/97/97 118/118/118 117/117/117 1409 | f 98/98/98 99/99/99 119/119/119 1410 | f 98/98/98 119/119/119 118/118/118 1411 | f 99/99/99 100/100/100 120/120/120 1412 | f 99/99/99 120/120/120 119/119/119 1413 | f 100/100/100 81/82/81 101/102/101 1414 | f 100/100/100 101/102/101 120/120/120 1415 | f 101/102/101 102/101/102 122/121/122 1416 | f 101/102/101 122/121/122 121/122/121 1417 | f 102/101/102 103/103/103 123/123/123 1418 | f 102/101/102 123/123/123 122/121/122 1419 | f 103/103/103 104/104/104 124/124/124 1420 | f 103/103/103 124/124/124 123/123/123 1421 | f 104/104/104 105/105/105 125/125/125 1422 | f 104/104/104 125/125/125 124/124/124 1423 | f 105/105/105 106/106/106 126/126/126 1424 | f 105/105/105 126/126/126 125/125/125 1425 | f 106/106/106 107/107/107 127/127/127 1426 | f 106/106/106 127/127/127 126/126/126 1427 | f 107/107/107 108/108/108 128/128/128 1428 | f 107/107/107 128/128/128 127/127/127 1429 | f 108/108/108 109/109/109 129/129/129 1430 | f 108/108/108 129/129/129 128/128/128 1431 | f 109/109/109 110/110/110 130/130/130 1432 | f 109/109/109 130/130/130 129/129/129 1433 | f 110/110/110 111/111/111 131/131/131 1434 | f 110/110/110 131/131/131 130/130/130 1435 | f 111/111/111 112/112/112 132/132/132 1436 | f 111/111/111 132/132/132 131/131/131 1437 | f 112/112/112 113/113/113 133/133/133 1438 | f 112/112/112 133/133/133 132/132/132 1439 | f 113/113/113 114/114/114 134/134/134 1440 | f 113/113/113 134/134/134 133/133/133 1441 | f 114/114/114 115/115/115 135/135/135 1442 | f 114/114/114 135/135/135 134/134/134 1443 | f 115/115/115 116/116/116 136/136/136 1444 | f 115/115/115 136/136/136 135/135/135 1445 | f 116/116/116 117/117/117 137/137/137 1446 | f 116/116/116 137/137/137 136/136/136 1447 | f 117/117/117 118/118/118 138/138/138 1448 | f 117/117/117 138/138/138 137/137/137 1449 | f 118/118/118 119/119/119 139/139/139 1450 | f 118/118/118 139/139/139 138/138/138 1451 | f 119/119/119 120/120/120 140/140/140 1452 | f 119/119/119 140/140/140 139/139/139 1453 | f 120/120/120 101/102/101 121/122/121 1454 | f 120/120/120 121/122/121 140/140/140 1455 | f 121/122/121 122/121/122 142/141/142 1456 | f 121/122/121 142/141/142 141/142/141 1457 | f 122/121/122 123/123/123 143/143/143 1458 | f 122/121/122 143/143/143 142/141/142 1459 | f 123/123/123 124/124/124 144/144/144 1460 | f 123/123/123 144/144/144 143/143/143 1461 | f 124/124/124 125/125/125 145/145/145 1462 | f 124/124/124 145/145/145 144/144/144 1463 | f 125/125/125 126/126/126 146/146/146 1464 | f 125/125/125 146/146/146 145/145/145 1465 | f 126/126/126 127/127/127 147/147/147 1466 | f 126/126/126 147/147/147 146/146/146 1467 | f 127/127/127 128/128/128 148/148/148 1468 | f 127/127/127 148/148/148 147/147/147 1469 | f 128/128/128 129/129/129 149/149/149 1470 | f 128/128/128 149/149/149 148/148/148 1471 | f 129/129/129 130/130/130 150/150/150 1472 | f 129/129/129 150/150/150 149/149/149 1473 | f 130/130/130 131/131/131 151/151/151 1474 | f 130/130/130 151/151/151 150/150/150 1475 | f 131/131/131 132/132/132 152/152/152 1476 | f 131/131/131 152/152/152 151/151/151 1477 | f 132/132/132 133/133/133 153/153/153 1478 | f 132/132/132 153/153/153 152/152/152 1479 | f 133/133/133 134/134/134 154/154/154 1480 | f 133/133/133 154/154/154 153/153/153 1481 | f 134/134/134 135/135/135 155/155/155 1482 | f 134/134/134 155/155/155 154/154/154 1483 | f 135/135/135 136/136/136 156/156/156 1484 | f 135/135/135 156/156/156 155/155/155 1485 | f 136/136/136 137/137/137 157/157/157 1486 | f 136/136/136 157/157/157 156/156/156 1487 | f 137/137/137 138/138/138 158/158/158 1488 | f 137/137/137 158/158/158 157/157/157 1489 | f 138/138/138 139/139/139 159/159/159 1490 | f 138/138/138 159/159/159 158/158/158 1491 | f 139/139/139 140/140/140 160/160/160 1492 | f 139/139/139 160/160/160 159/159/159 1493 | f 140/140/140 121/122/121 141/142/141 1494 | f 140/140/140 141/142/141 160/160/160 1495 | f 141/142/141 142/141/142 162/161/162 1496 | f 141/142/141 162/161/162 161/162/161 1497 | f 142/141/142 143/143/143 163/163/163 1498 | f 142/141/142 163/163/163 162/161/162 1499 | f 143/143/143 144/144/144 164/164/164 1500 | f 143/143/143 164/164/164 163/163/163 1501 | f 144/144/144 145/145/145 165/165/165 1502 | f 144/144/144 165/165/165 164/164/164 1503 | f 145/145/145 146/146/146 166/166/166 1504 | f 145/145/145 166/166/166 165/165/165 1505 | f 146/146/146 147/147/147 167/167/167 1506 | f 146/146/146 167/167/167 166/166/166 1507 | f 147/147/147 148/148/148 168/168/168 1508 | f 147/147/147 168/168/168 167/167/167 1509 | f 148/148/148 149/149/149 169/169/169 1510 | f 148/148/148 169/169/169 168/168/168 1511 | f 149/149/149 150/150/150 170/170/170 1512 | f 149/149/149 170/170/170 169/169/169 1513 | f 150/150/150 151/151/151 171/171/171 1514 | f 150/150/150 171/171/171 170/170/170 1515 | f 151/151/151 152/152/152 172/172/172 1516 | f 151/151/151 172/172/172 171/171/171 1517 | f 152/152/152 153/153/153 173/173/173 1518 | f 152/152/152 173/173/173 172/172/172 1519 | f 153/153/153 154/154/154 174/174/174 1520 | f 153/153/153 174/174/174 173/173/173 1521 | f 154/154/154 155/155/155 175/175/175 1522 | f 154/154/154 175/175/175 174/174/174 1523 | f 155/155/155 156/156/156 176/176/176 1524 | f 155/155/155 176/176/176 175/175/175 1525 | f 156/156/156 157/157/157 177/177/177 1526 | f 156/156/156 177/177/177 176/176/176 1527 | f 157/157/157 158/158/158 178/178/178 1528 | f 157/157/157 178/178/178 177/177/177 1529 | f 158/158/158 159/159/159 179/179/179 1530 | f 158/158/158 179/179/179 178/178/178 1531 | f 159/159/159 160/160/160 180/180/180 1532 | f 159/159/159 180/180/180 179/179/179 1533 | f 160/160/160 141/142/141 161/162/161 1534 | f 160/160/160 161/162/161 180/180/180 1535 | f 161/162/161 162/161/162 182/181/182 1536 | f 161/162/161 182/181/182 181/182/181 1537 | f 162/161/162 163/163/163 183/183/183 1538 | f 162/161/162 183/183/183 182/181/182 1539 | f 163/163/163 164/164/164 184/184/184 1540 | f 163/163/163 184/184/184 183/183/183 1541 | f 164/164/164 165/165/165 185/185/185 1542 | f 164/164/164 185/185/185 184/184/184 1543 | f 165/165/165 166/166/166 186/186/186 1544 | f 165/165/165 186/186/186 185/185/185 1545 | f 166/166/166 167/167/167 187/187/187 1546 | f 166/166/166 187/187/187 186/186/186 1547 | f 167/167/167 168/168/168 188/188/188 1548 | f 167/167/167 188/188/188 187/187/187 1549 | f 168/168/168 169/169/169 189/189/189 1550 | f 168/168/168 189/189/189 188/188/188 1551 | f 169/169/169 170/170/170 190/190/190 1552 | f 169/169/169 190/190/190 189/189/189 1553 | f 170/170/170 171/171/171 191/191/191 1554 | f 170/170/170 191/191/191 190/190/190 1555 | f 171/171/171 172/172/172 192/192/192 1556 | f 171/171/171 192/192/192 191/191/191 1557 | f 172/172/172 173/173/173 193/193/193 1558 | f 172/172/172 193/193/193 192/192/192 1559 | f 173/173/173 174/174/174 194/194/194 1560 | f 173/173/173 194/194/194 193/193/193 1561 | f 174/174/174 175/175/175 195/195/195 1562 | f 174/174/174 195/195/195 194/194/194 1563 | f 175/175/175 176/176/176 196/196/196 1564 | f 175/175/175 196/196/196 195/195/195 1565 | f 176/176/176 177/177/177 197/197/197 1566 | f 176/176/176 197/197/197 196/196/196 1567 | f 177/177/177 178/178/178 198/198/198 1568 | f 177/177/177 198/198/198 197/197/197 1569 | f 178/178/178 179/179/179 199/199/199 1570 | f 178/178/178 199/199/199 198/198/198 1571 | f 179/179/179 180/180/180 200/200/200 1572 | f 179/179/179 200/200/200 199/199/199 1573 | f 180/180/180 161/162/161 181/182/181 1574 | f 180/180/180 181/182/181 200/200/200 1575 | f 181/182/181 182/181/182 201/201/201 1576 | f 182/181/182 183/183/183 201/201/201 1577 | f 183/183/183 184/184/184 201/201/201 1578 | f 184/184/184 185/185/185 201/201/201 1579 | f 185/185/185 186/186/186 201/201/201 1580 | f 186/186/186 187/187/187 201/201/201 1581 | f 187/187/187 188/188/188 201/201/201 1582 | f 188/188/188 189/189/189 201/201/201 1583 | f 189/189/189 190/190/190 201/201/201 1584 | f 190/190/190 191/191/191 201/201/201 1585 | f 191/191/191 192/192/192 201/201/201 1586 | f 192/192/192 193/193/193 201/201/201 1587 | f 193/193/193 194/194/194 201/201/201 1588 | f 194/194/194 195/195/195 201/201/201 1589 | f 195/195/195 196/196/196 201/201/201 1590 | f 196/196/196 197/197/197 201/201/201 1591 | f 197/197/197 198/198/198 201/201/201 1592 | f 198/198/198 199/199/199 201/201/201 1593 | f 199/199/199 200/200/200 201/201/201 1594 | f 200/200/200 181/182/181 201/201/201 1595 | f 202/202/202 222/203/222 223/204/223 1596 | f 202/202/202 223/204/223 203/205/203 1597 | f 203/205/203 223/204/223 224/206/224 1598 | f 203/205/203 224/206/224 204/207/204 1599 | f 204/207/204 224/206/224 225/208/225 1600 | f 204/207/204 225/208/225 205/209/205 1601 | f 205/209/205 225/208/225 226/210/226 1602 | f 205/209/205 226/210/226 206/211/206 1603 | f 206/211/206 226/210/226 227/212/227 1604 | f 206/211/206 227/212/227 207/213/207 1605 | f 207/213/207 227/212/227 228/214/228 1606 | f 207/213/207 228/214/228 208/215/208 1607 | f 208/215/208 228/214/228 229/216/229 1608 | f 208/215/208 229/216/229 209/217/209 1609 | f 209/217/209 229/216/229 230/218/230 1610 | f 209/217/209 230/218/230 210/219/210 1611 | f 210/219/210 230/218/230 231/220/231 1612 | f 210/219/210 231/220/231 211/221/211 1613 | f 211/221/211 231/220/231 232/222/232 1614 | f 211/221/211 232/222/232 212/223/212 1615 | f 212/223/212 232/222/232 233/224/233 1616 | f 212/223/212 233/224/233 213/225/213 1617 | f 213/225/213 233/224/233 234/226/234 1618 | f 213/225/213 234/226/234 214/227/214 1619 | f 214/227/214 234/226/234 235/228/235 1620 | f 214/227/214 235/228/235 215/229/215 1621 | f 215/229/215 235/228/235 236/230/236 1622 | f 215/229/215 236/230/236 216/231/216 1623 | f 216/231/216 236/230/236 237/232/237 1624 | f 216/231/216 237/232/237 217/233/217 1625 | f 217/233/217 237/232/237 238/234/238 1626 | f 217/233/217 238/234/238 218/235/218 1627 | f 218/235/218 238/234/238 239/236/239 1628 | f 218/235/218 239/236/239 219/237/219 1629 | f 219/237/219 239/236/239 240/238/240 1630 | f 219/237/219 240/238/240 220/239/220 1631 | f 220/239/220 240/238/240 241/240/241 1632 | f 220/239/220 241/240/241 221/241/221 1633 | f 221/241/221 241/240/241 222/203/222 1634 | f 221/241/221 222/203/222 202/202/202 1635 | f 222/203/222 242/242/242 243/243/243 1636 | f 222/203/222 243/243/243 223/204/223 1637 | f 223/204/223 243/243/243 244/244/244 1638 | f 223/204/223 244/244/244 224/206/224 1639 | f 224/206/224 244/244/244 245/245/245 1640 | f 224/206/224 245/245/245 225/208/225 1641 | f 225/208/225 245/245/245 246/246/246 1642 | f 225/208/225 246/246/246 226/210/226 1643 | f 226/210/226 246/246/246 247/247/247 1644 | f 226/210/226 247/247/247 227/212/227 1645 | f 227/212/227 247/247/247 248/248/248 1646 | f 227/212/227 248/248/248 228/214/228 1647 | f 228/214/228 248/248/248 249/249/249 1648 | f 228/214/228 249/249/249 229/216/229 1649 | f 229/216/229 249/249/249 250/250/250 1650 | f 229/216/229 250/250/250 230/218/230 1651 | f 230/218/230 250/250/250 251/251/251 1652 | f 230/218/230 251/251/251 231/220/231 1653 | f 231/220/231 251/251/251 252/252/252 1654 | f 231/220/231 252/252/252 232/222/232 1655 | f 232/222/232 252/252/252 253/253/253 1656 | f 232/222/232 253/253/253 233/224/233 1657 | f 233/224/233 253/253/253 254/254/254 1658 | f 233/224/233 254/254/254 234/226/234 1659 | f 234/226/234 254/254/254 255/255/255 1660 | f 234/226/234 255/255/255 235/228/235 1661 | f 235/228/235 255/255/255 256/256/256 1662 | f 235/228/235 256/256/256 236/230/236 1663 | f 236/230/236 256/256/256 257/257/257 1664 | f 236/230/236 257/257/257 237/232/237 1665 | f 237/232/237 257/257/257 258/258/258 1666 | f 237/232/237 258/258/258 238/234/238 1667 | f 238/234/238 258/258/258 259/259/259 1668 | f 238/234/238 259/259/259 239/236/239 1669 | f 239/236/239 259/259/259 260/260/260 1670 | f 239/236/239 260/260/260 240/238/240 1671 | f 240/238/240 260/260/260 261/261/261 1672 | f 240/238/240 261/261/261 241/240/241 1673 | f 241/240/241 261/261/261 242/242/242 1674 | f 241/240/241 242/242/242 222/203/222 1675 | f 242/242/242 262/262/262 263/263/263 1676 | f 242/242/242 263/263/263 243/243/243 1677 | f 243/243/243 263/263/263 264/264/264 1678 | f 243/243/243 264/264/264 244/244/244 1679 | f 244/244/244 264/264/264 265/265/265 1680 | f 244/244/244 265/265/265 245/245/245 1681 | f 245/245/245 265/265/265 266/266/266 1682 | f 245/245/245 266/266/266 246/246/246 1683 | f 246/246/246 266/266/266 267/267/267 1684 | f 246/246/246 267/267/267 247/247/247 1685 | f 247/247/247 267/267/267 268/268/268 1686 | f 247/247/247 268/268/268 248/248/248 1687 | f 248/248/248 268/268/268 269/269/269 1688 | f 248/248/248 269/269/269 249/249/249 1689 | f 249/249/249 269/269/269 270/270/270 1690 | f 249/249/249 270/270/270 250/250/250 1691 | f 250/250/250 270/270/270 271/271/271 1692 | f 250/250/250 271/271/271 251/251/251 1693 | f 251/251/251 271/271/271 272/272/272 1694 | f 251/251/251 272/272/272 252/252/252 1695 | f 252/252/252 272/272/272 273/273/273 1696 | f 252/252/252 273/273/273 253/253/253 1697 | f 253/253/253 273/273/273 274/274/274 1698 | f 253/253/253 274/274/274 254/254/254 1699 | f 254/254/254 274/274/274 275/275/275 1700 | f 254/254/254 275/275/275 255/255/255 1701 | f 255/255/255 275/275/275 276/276/276 1702 | f 255/255/255 276/276/276 256/256/256 1703 | f 256/256/256 276/276/276 277/277/277 1704 | f 256/256/256 277/277/277 257/257/257 1705 | f 257/257/257 277/277/277 278/278/278 1706 | f 257/257/257 278/278/278 258/258/258 1707 | f 258/258/258 278/278/278 279/279/279 1708 | f 258/258/258 279/279/279 259/259/259 1709 | f 259/259/259 279/279/279 280/280/280 1710 | f 259/259/259 280/280/280 260/260/260 1711 | f 260/260/260 280/280/280 281/281/281 1712 | f 260/260/260 281/281/281 261/261/261 1713 | f 261/261/261 281/281/281 262/262/262 1714 | f 261/261/261 262/262/262 242/242/242 1715 | f 262/262/262 282/282/282 283/283/283 1716 | f 262/262/262 283/283/283 263/263/263 1717 | f 263/263/263 283/283/283 284/284/284 1718 | f 263/263/263 284/284/284 264/264/264 1719 | f 264/264/264 284/284/284 285/285/285 1720 | f 264/264/264 285/285/285 265/265/265 1721 | f 265/265/265 285/285/285 286/286/286 1722 | f 265/265/265 286/286/286 266/266/266 1723 | f 266/266/266 286/286/286 287/287/287 1724 | f 266/266/266 287/287/287 267/267/267 1725 | f 267/267/267 287/287/287 288/288/288 1726 | f 267/267/267 288/288/288 268/268/268 1727 | f 268/268/268 288/288/288 289/289/289 1728 | f 268/268/268 289/289/289 269/269/269 1729 | f 269/269/269 289/289/289 290/290/290 1730 | f 269/269/269 290/290/290 270/270/270 1731 | f 270/270/270 290/290/290 291/291/291 1732 | f 270/270/270 291/291/291 271/271/271 1733 | f 271/271/271 291/291/291 292/292/292 1734 | f 271/271/271 292/292/292 272/272/272 1735 | f 272/272/272 292/292/292 293/293/293 1736 | f 272/272/272 293/293/293 273/273/273 1737 | f 273/273/273 293/293/293 294/294/294 1738 | f 273/273/273 294/294/294 274/274/274 1739 | f 274/274/274 294/294/294 295/295/295 1740 | f 274/274/274 295/295/295 275/275/275 1741 | f 275/275/275 295/295/295 296/296/296 1742 | f 275/275/275 296/296/296 276/276/276 1743 | f 276/276/276 296/296/296 297/297/297 1744 | f 276/276/276 297/297/297 277/277/277 1745 | f 277/277/277 297/297/297 298/298/298 1746 | f 277/277/277 298/298/298 278/278/278 1747 | f 278/278/278 298/298/298 299/299/299 1748 | f 278/278/278 299/299/299 279/279/279 1749 | f 279/279/279 299/299/299 300/300/300 1750 | f 279/279/279 300/300/300 280/280/280 1751 | f 280/280/280 300/300/300 301/301/301 1752 | f 280/280/280 301/301/301 281/281/281 1753 | f 281/281/281 301/301/301 282/282/282 1754 | f 281/281/281 282/282/282 262/262/262 1755 | f 282/282/282 302/302/302 303/303/303 1756 | f 282/282/282 303/303/303 283/283/283 1757 | f 283/283/283 303/303/303 304/304/304 1758 | f 283/283/283 304/304/304 284/284/284 1759 | f 284/284/284 304/304/304 305/305/305 1760 | f 284/284/284 305/305/305 285/285/285 1761 | f 285/285/285 305/305/305 306/306/306 1762 | f 285/285/285 306/306/306 286/286/286 1763 | f 286/286/286 306/306/306 307/307/307 1764 | f 286/286/286 307/307/307 287/287/287 1765 | f 287/287/287 307/307/307 308/308/308 1766 | f 287/287/287 308/308/308 288/288/288 1767 | f 288/288/288 308/308/308 309/309/309 1768 | f 288/288/288 309/309/309 289/289/289 1769 | f 289/289/289 309/309/309 310/310/310 1770 | f 289/289/289 310/310/310 290/290/290 1771 | f 290/290/290 310/310/310 311/311/311 1772 | f 290/290/290 311/311/311 291/291/291 1773 | f 291/291/291 311/311/311 312/312/312 1774 | f 291/291/291 312/312/312 292/292/292 1775 | f 292/292/292 312/312/312 313/313/313 1776 | f 292/292/292 313/313/313 293/293/293 1777 | f 293/293/293 313/313/313 314/314/314 1778 | f 293/293/293 314/314/314 294/294/294 1779 | f 294/294/294 314/314/314 315/315/315 1780 | f 294/294/294 315/315/315 295/295/295 1781 | f 295/295/295 315/315/315 316/316/316 1782 | f 295/295/295 316/316/316 296/296/296 1783 | f 296/296/296 316/316/316 317/317/317 1784 | f 296/296/296 317/317/317 297/297/297 1785 | f 297/297/297 317/317/317 318/318/318 1786 | f 297/297/297 318/318/318 298/298/298 1787 | f 298/298/298 318/318/318 319/319/319 1788 | f 298/298/298 319/319/319 299/299/299 1789 | f 299/299/299 319/319/319 320/320/320 1790 | f 299/299/299 320/320/320 300/300/300 1791 | f 300/300/300 320/320/320 321/321/321 1792 | f 300/300/300 321/321/321 301/301/301 1793 | f 301/301/301 321/321/321 302/302/302 1794 | f 301/301/301 302/302/302 282/282/282 1795 | f 302/302/302 322/322/322 323/323/323 1796 | f 302/302/302 323/323/323 303/303/303 1797 | f 303/303/303 323/323/323 324/324/324 1798 | f 303/303/303 324/324/324 304/304/304 1799 | f 304/304/304 324/324/324 325/325/325 1800 | f 304/304/304 325/325/325 305/305/305 1801 | f 305/305/305 325/325/325 326/326/326 1802 | f 305/305/305 326/326/326 306/306/306 1803 | f 306/306/306 326/326/326 327/327/327 1804 | f 306/306/306 327/327/327 307/307/307 1805 | f 307/307/307 327/327/327 328/328/328 1806 | f 307/307/307 328/328/328 308/308/308 1807 | f 308/308/308 328/328/328 329/329/329 1808 | f 308/308/308 329/329/329 309/309/309 1809 | f 309/309/309 329/329/329 330/330/330 1810 | f 309/309/309 330/330/330 310/310/310 1811 | f 310/310/310 330/330/330 331/331/331 1812 | f 310/310/310 331/331/331 311/311/311 1813 | f 311/311/311 331/331/331 332/332/332 1814 | f 311/311/311 332/332/332 312/312/312 1815 | f 312/312/312 332/332/332 333/333/333 1816 | f 312/312/312 333/333/333 313/313/313 1817 | f 313/313/313 333/333/333 334/334/334 1818 | f 313/313/313 334/334/334 314/314/314 1819 | f 314/314/314 334/334/334 335/335/335 1820 | f 314/314/314 335/335/335 315/315/315 1821 | f 315/315/315 335/335/335 336/336/336 1822 | f 315/315/315 336/336/336 316/316/316 1823 | f 316/316/316 336/336/336 337/337/337 1824 | f 316/316/316 337/337/337 317/317/317 1825 | f 317/317/317 337/337/337 338/338/338 1826 | f 317/317/317 338/338/338 318/318/318 1827 | f 318/318/318 338/338/338 339/339/339 1828 | f 318/318/318 339/339/339 319/319/319 1829 | f 319/319/319 339/339/339 340/340/340 1830 | f 319/319/319 340/340/340 320/320/320 1831 | f 320/320/320 340/340/340 341/341/341 1832 | f 320/320/320 341/341/341 321/321/321 1833 | f 321/321/321 341/341/341 322/322/322 1834 | f 321/321/321 322/322/322 302/302/302 1835 | f 322/322/322 342/342/342 343/343/343 1836 | f 322/322/322 343/343/343 323/323/323 1837 | f 323/323/323 343/343/343 344/344/344 1838 | f 323/323/323 344/344/344 324/324/324 1839 | f 324/324/324 344/344/344 345/345/345 1840 | f 324/324/324 345/345/345 325/325/325 1841 | f 325/325/325 345/345/345 346/346/346 1842 | f 325/325/325 346/346/346 326/326/326 1843 | f 326/326/326 346/346/346 347/347/347 1844 | f 326/326/326 347/347/347 327/327/327 1845 | f 327/327/327 347/347/347 348/348/348 1846 | f 327/327/327 348/348/348 328/328/328 1847 | f 328/328/328 348/348/348 349/349/349 1848 | f 328/328/328 349/349/349 329/329/329 1849 | f 329/329/329 349/349/349 350/350/350 1850 | f 329/329/329 350/350/350 330/330/330 1851 | f 330/330/330 350/350/350 351/351/351 1852 | f 330/330/330 351/351/351 331/331/331 1853 | f 331/331/331 351/351/351 352/352/352 1854 | f 331/331/331 352/352/352 332/332/332 1855 | f 332/332/332 352/352/352 353/353/353 1856 | f 332/332/332 353/353/353 333/333/333 1857 | f 333/333/333 353/353/353 354/354/354 1858 | f 333/333/333 354/354/354 334/334/334 1859 | f 334/334/334 354/354/354 355/355/355 1860 | f 334/334/334 355/355/355 335/335/335 1861 | f 335/335/335 355/355/355 356/356/356 1862 | f 335/335/335 356/356/356 336/336/336 1863 | f 336/336/336 356/356/356 357/357/357 1864 | f 336/336/336 357/357/357 337/337/337 1865 | f 337/337/337 357/357/357 358/358/358 1866 | f 337/337/337 358/358/358 338/338/338 1867 | f 338/338/338 358/358/358 359/359/359 1868 | f 338/338/338 359/359/359 339/339/339 1869 | f 339/339/339 359/359/359 360/360/360 1870 | f 339/339/339 360/360/360 340/340/340 1871 | f 340/340/340 360/360/360 361/361/361 1872 | f 340/340/340 361/361/361 341/341/341 1873 | f 341/341/341 361/361/361 342/342/342 1874 | f 341/341/341 342/342/342 322/322/322 1875 | f 342/342/342 362/362/362 363/363/363 1876 | f 342/342/342 363/363/363 343/343/343 1877 | f 343/343/343 363/363/363 364/364/364 1878 | f 343/343/343 364/364/364 344/344/344 1879 | f 344/344/344 364/364/364 365/365/365 1880 | f 344/344/344 365/365/365 345/345/345 1881 | f 345/345/345 365/365/365 366/366/366 1882 | f 345/345/345 366/366/366 346/346/346 1883 | f 346/346/346 366/366/366 367/367/367 1884 | f 346/346/346 367/367/367 347/347/347 1885 | f 347/347/347 367/367/367 368/368/368 1886 | f 347/347/347 368/368/368 348/348/348 1887 | f 348/348/348 368/368/368 369/369/369 1888 | f 348/348/348 369/369/369 349/349/349 1889 | f 349/349/349 369/369/369 370/370/370 1890 | f 349/349/349 370/370/370 350/350/350 1891 | f 350/350/350 370/370/370 371/371/371 1892 | f 350/350/350 371/371/371 351/351/351 1893 | f 351/351/351 371/371/371 372/372/372 1894 | f 351/351/351 372/372/372 352/352/352 1895 | f 352/352/352 372/372/372 373/373/373 1896 | f 352/352/352 373/373/373 353/353/353 1897 | f 353/353/353 373/373/373 374/374/374 1898 | f 353/353/353 374/374/374 354/354/354 1899 | f 354/354/354 374/374/374 375/375/375 1900 | f 354/354/354 375/375/375 355/355/355 1901 | f 355/355/355 375/375/375 376/376/376 1902 | f 355/355/355 376/376/376 356/356/356 1903 | f 356/356/356 376/376/376 377/377/377 1904 | f 356/356/356 377/377/377 357/357/357 1905 | f 357/357/357 377/377/377 378/378/378 1906 | f 357/357/357 378/378/378 358/358/358 1907 | f 358/358/358 378/378/378 379/379/379 1908 | f 358/358/358 379/379/379 359/359/359 1909 | f 359/359/359 379/379/379 380/380/380 1910 | f 359/359/359 380/380/380 360/360/360 1911 | f 360/360/360 380/380/380 381/381/381 1912 | f 360/360/360 381/381/381 361/361/361 1913 | f 361/361/361 381/381/381 362/362/362 1914 | f 361/361/361 362/362/362 342/342/342 1915 | f 362/362/362 382/382/382 383/383/383 1916 | f 362/362/362 383/383/383 363/363/363 1917 | f 363/363/363 383/383/383 384/384/384 1918 | f 363/363/363 384/384/384 364/364/364 1919 | f 364/364/364 384/384/384 385/385/385 1920 | f 364/364/364 385/385/385 365/365/365 1921 | f 365/365/365 385/385/385 386/386/386 1922 | f 365/365/365 386/386/386 366/366/366 1923 | f 366/366/366 386/386/386 387/387/387 1924 | f 366/366/366 387/387/387 367/367/367 1925 | f 367/367/367 387/387/387 388/388/388 1926 | f 367/367/367 388/388/388 368/368/368 1927 | f 368/368/368 388/388/388 389/389/389 1928 | f 368/368/368 389/389/389 369/369/369 1929 | f 369/369/369 389/389/389 390/390/390 1930 | f 369/369/369 390/390/390 370/370/370 1931 | f 370/370/370 390/390/390 391/391/391 1932 | f 370/370/370 391/391/391 371/371/371 1933 | f 371/371/371 391/391/391 392/392/392 1934 | f 371/371/371 392/392/392 372/372/372 1935 | f 372/372/372 392/392/392 393/393/393 1936 | f 372/372/372 393/393/393 373/373/373 1937 | f 373/373/373 393/393/393 394/394/394 1938 | f 373/373/373 394/394/394 374/374/374 1939 | f 374/374/374 394/394/394 395/395/395 1940 | f 374/374/374 395/395/395 375/375/375 1941 | f 375/375/375 395/395/395 396/396/396 1942 | f 375/375/375 396/396/396 376/376/376 1943 | f 376/376/376 396/396/396 397/397/397 1944 | f 376/376/376 397/397/397 377/377/377 1945 | f 377/377/377 397/397/397 398/398/398 1946 | f 377/377/377 398/398/398 378/378/378 1947 | f 378/378/378 398/398/398 399/399/399 1948 | f 378/378/378 399/399/399 379/379/379 1949 | f 379/379/379 399/399/399 400/400/400 1950 | f 379/379/379 400/400/400 380/380/380 1951 | f 380/380/380 400/400/400 401/401/401 1952 | f 380/380/380 401/401/401 381/381/381 1953 | f 381/381/381 401/401/401 382/382/382 1954 | f 381/381/381 382/382/382 362/362/362 1955 | f 382/382/382 402/402/402 383/383/383 1956 | f 383/383/383 402/402/402 384/384/384 1957 | f 384/384/384 402/402/402 385/385/385 1958 | f 385/385/385 402/402/402 386/386/386 1959 | f 386/386/386 402/402/402 387/387/387 1960 | f 387/387/387 402/402/402 388/388/388 1961 | f 388/388/388 402/402/402 389/389/389 1962 | f 389/389/389 402/402/402 390/390/390 1963 | f 390/390/390 402/402/402 391/391/391 1964 | f 391/391/391 402/402/402 392/392/392 1965 | f 392/392/392 402/402/402 393/393/393 1966 | f 393/393/393 402/402/402 394/394/394 1967 | f 394/394/394 402/402/402 395/395/395 1968 | f 395/395/395 402/402/402 396/396/396 1969 | f 396/396/396 402/402/402 397/397/397 1970 | f 397/397/397 402/402/402 398/398/398 1971 | f 398/398/398 402/402/402 399/399/399 1972 | f 399/399/399 402/402/402 400/400/400 1973 | f 400/400/400 402/402/402 401/401/401 1974 | f 401/401/401 402/402/402 382/382/382 1975 | # 760 faces 1976 | 1977 | g 1978 | -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_inner_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_inner_diffuse.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_inner_nm.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_inner_nm.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_inner_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_inner_nm_tangent.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_inner_spec.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_inner_spec.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_outer.obj: -------------------------------------------------------------------------------- 1 | v 0.0773537 0.323188 0.395406 2 | v 0.0938983 0.355781 0.393956 3 | v 0.119662 0.381644 0.391705 4 | v 0.152126 0.398247 0.388864 5 | v 0.188115 0.403971 0.385713 6 | v 0.224104 0.398247 0.382568 7 | v 0.256574 0.381644 0.379727 8 | v 0.282338 0.355781 0.37747 9 | v 0.298877 0.323188 0.376026 10 | v 0.304577 0.287065 0.375523 11 | v 0.298877 0.250941 0.376026 12 | v 0.282338 0.218349 0.37747 13 | v 0.256574 0.192485 0.379727 14 | v 0.224104 0.175882 0.382568 15 | v 0.188115 0.170159 0.385713 16 | v 0.152126 0.175882 0.388864 17 | v 0.119662 0.192485 0.391705 18 | v 0.0938983 0.218349 0.393956 19 | v 0.0773537 0.250941 0.395406 20 | v 0.0716536 0.287065 0.395903 21 | v 0.0803118 0.322744 0.413506 22 | v 0.0966519 0.354933 0.412074 23 | v 0.1221 0.380481 0.409846 24 | v 0.154167 0.396879 0.407046 25 | v 0.189711 0.402533 0.40393 26 | v 0.225256 0.396879 0.400825 27 | v 0.257322 0.380481 0.398019 28 | v 0.282771 0.354933 0.395792 29 | v 0.299111 0.322744 0.39436 30 | v 0.304741 0.287065 0.393869 31 | v 0.299111 0.251386 0.39436 32 | v 0.282771 0.219196 0.395792 33 | v 0.257322 0.193649 0.398019 34 | v 0.225256 0.17725 0.400825 35 | v 0.189711 0.171597 0.40393 36 | v 0.154167 0.17725 0.407046 37 | v 0.1221 0.193649 0.409846 38 | v 0.0966519 0.219196 0.412074 39 | v 0.0803118 0.251386 0.413506 40 | v 0.074682 0.287065 0.413997 41 | v 0.0859242 0.321423 0.430922 42 | v 0.101656 0.352419 0.429542 43 | v 0.126163 0.377014 0.427396 44 | v 0.157037 0.39281 0.424695 45 | v 0.191266 0.398247 0.421702 46 | v 0.225496 0.39281 0.418709 47 | v 0.256369 0.377014 0.416008 48 | v 0.280877 0.352419 0.413862 49 | v 0.296609 0.321423 0.412489 50 | v 0.302028 0.287065 0.412015 51 | v 0.296609 0.252707 0.412489 52 | v 0.280877 0.22171 0.413862 53 | v 0.256369 0.197115 0.416008 54 | v 0.225496 0.181319 0.418709 55 | v 0.191266 0.175882 0.421702 56 | v 0.157037 0.181319 0.424695 57 | v 0.126163 0.197115 0.427396 58 | v 0.101656 0.22171 0.429542 59 | v 0.0859242 0.252707 0.430922 60 | v 0.0805048 0.287065 0.431395 61 | v 0.0940562 0.319254 0.447221 62 | v 0.108794 0.348292 0.445929 63 | v 0.131752 0.371337 0.443923 64 | v 0.160679 0.386134 0.441392 65 | v 0.192745 0.391232 0.438586 66 | v 0.224812 0.386134 0.43578 67 | v 0.253739 0.371337 0.433248 68 | v 0.276697 0.348292 0.431243 69 | v 0.291435 0.319254 0.429951 70 | v 0.296509 0.287065 0.429507 71 | v 0.291435 0.254876 0.429951 72 | v 0.276697 0.225838 0.431243 73 | v 0.253739 0.202792 0.433248 74 | v 0.224812 0.188001 0.43578 75 | v 0.192745 0.182903 0.438586 76 | v 0.160679 0.188001 0.441392 77 | v 0.131752 0.202792 0.443923 78 | v 0.108794 0.225838 0.445929 79 | v 0.0940562 0.254876 0.447221 80 | v 0.0889759 0.287065 0.447665 81 | v 0.104497 0.31629 0.462006 82 | v 0.117879 0.342656 0.460836 83 | v 0.138727 0.36358 0.459012 84 | v 0.164994 0.377014 0.456715 85 | v 0.194108 0.381644 0.454166 86 | v 0.223222 0.377014 0.451623 87 | v 0.249488 0.36358 0.449325 88 | v 0.27033 0.342656 0.447501 89 | v 0.283712 0.31629 0.446332 90 | v 0.288325 0.287065 0.445929 91 | v 0.283712 0.25784 0.446332 92 | v 0.27033 0.231473 0.447501 93 | v 0.249488 0.21055 0.449325 94 | v 0.223222 0.197115 0.451623 95 | v 0.194108 0.192485 0.454166 96 | v 0.164994 0.197115 0.456715 97 | v 0.138727 0.21055 0.459012 98 | v 0.117879 0.231473 0.460836 99 | v 0.104497 0.25784 0.462006 100 | v 0.0998848 0.287065 0.462415 101 | v 0.117002 0.312613 0.47492 102 | v 0.128701 0.335652 0.473891 103 | v 0.146917 0.353945 0.472301 104 | v 0.169875 0.365684 0.47029 105 | v 0.195324 0.36973 0.468062 106 | v 0.220772 0.365684 0.465841 107 | v 0.243724 0.353945 0.46383 108 | v 0.261947 0.335652 0.462234 109 | v 0.273645 0.312613 0.461211 110 | v 0.277673 0.287065 0.46086 111 | v 0.273645 0.261523 0.461211 112 | v 0.261947 0.238477 0.462234 113 | v 0.243724 0.220184 0.46383 114 | v 0.220772 0.208445 0.465841 115 | v 0.195324 0.2044 0.468062 116 | v 0.169875 0.208445 0.47029 117 | v 0.146917 0.220184 0.472301 118 | v 0.128701 0.238477 0.473891 119 | v 0.117002 0.261523 0.47492 120 | v 0.112969 0.287065 0.475271 121 | v 0.131255 0.308298 0.48563 122 | v 0.140978 0.327456 0.484777 123 | v 0.156125 0.342656 0.483455 124 | v 0.175207 0.352419 0.481783 125 | v 0.196358 0.355781 0.479936 126 | v 0.217516 0.352419 0.478083 127 | v 0.236598 0.342656 0.476411 128 | v 0.251739 0.327456 0.475089 129 | v 0.261467 0.308298 0.474236 130 | v 0.264817 0.287065 0.473944 131 | v 0.261467 0.265831 0.474236 132 | v 0.251739 0.246674 0.475089 133 | v 0.236598 0.231473 0.476411 134 | v 0.217516 0.22171 0.478083 135 | v 0.196358 0.218349 0.479936 136 | v 0.175207 0.22171 0.481783 137 | v 0.156125 0.231473 0.483455 138 | v 0.140978 0.246674 0.484777 139 | v 0.131255 0.265831 0.48563 140 | v 0.127906 0.287065 0.485922 141 | v 0.146911 0.303463 0.493885 142 | v 0.154424 0.31826 0.493224 143 | v 0.166116 0.330005 0.492201 144 | v 0.18086 0.337541 0.490915 145 | v 0.197194 0.340136 0.489483 146 | v 0.213534 0.337541 0.48805 147 | v 0.228273 0.330005 0.486764 148 | v 0.239971 0.31826 0.485741 149 | v 0.247483 0.303463 0.485081 150 | v 0.250067 0.287065 0.484858 151 | v 0.247483 0.270666 0.485081 152 | v 0.239971 0.25587 0.485741 153 | v 0.228273 0.244125 0.486764 154 | v 0.213534 0.236589 0.48805 155 | v 0.197194 0.233993 0.489483 156 | v 0.18086 0.236589 0.490915 157 | v 0.166116 0.244125 0.492201 158 | v 0.154424 0.25587 0.493224 159 | v 0.146911 0.270666 0.493885 160 | v 0.144322 0.287065 0.494107 161 | v 0.163579 0.298231 0.499468 162 | v 0.168694 0.308298 0.499024 163 | v 0.176657 0.31629 0.498328 164 | v 0.186689 0.321423 0.497451 165 | v 0.197808 0.323188 0.496475 166 | v 0.208928 0.321423 0.495504 167 | v 0.21896 0.31629 0.494627 168 | v 0.226922 0.308298 0.493932 169 | v 0.232038 0.298231 0.493482 170 | v 0.233797 0.287065 0.49333 171 | v 0.232038 0.275899 0.493482 172 | v 0.226922 0.265831 0.493932 173 | v 0.21896 0.25784 0.494627 174 | v 0.208928 0.252707 0.495504 175 | v 0.197808 0.250941 0.496475 176 | v 0.186689 0.252707 0.497451 177 | v 0.176657 0.25784 0.498328 178 | v 0.168694 0.265831 0.499024 179 | v 0.163579 0.275899 0.499468 180 | v 0.161819 0.287065 0.499626 181 | v 0.180854 0.292718 0.502257 182 | v 0.183444 0.297816 0.502034 183 | v 0.187472 0.301861 0.501678 184 | v 0.192553 0.304457 0.501234 185 | v 0.198182 0.305352 0.500742 186 | v 0.203812 0.304457 0.500251 187 | v 0.208893 0.301861 0.499807 188 | v 0.212921 0.297816 0.49945 189 | v 0.21551 0.292718 0.499228 190 | v 0.216399 0.287065 0.499146 191 | v 0.21551 0.281411 0.499228 192 | v 0.212921 0.276314 0.49945 193 | v 0.208893 0.272268 0.499807 194 | v 0.203812 0.269672 0.500251 195 | v 0.198182 0.268778 0.500742 196 | v 0.192553 0.269672 0.501234 197 | v 0.187472 0.272268 0.501678 198 | v 0.183444 0.276314 0.502034 199 | v 0.180854 0.281411 0.502257 200 | v 0.17996 0.287065 0.502338 201 | v 0.198305 0.287065 0.502175 202 | v -0.075249 0.323188 0.395406 203 | v -0.0917937 0.355781 0.393956 204 | v -0.117558 0.381644 0.391705 205 | v -0.150022 0.398247 0.388864 206 | v -0.186011 0.403971 0.385713 207 | v -0.222 0.398247 0.382568 208 | v -0.254469 0.381644 0.379727 209 | v -0.280234 0.355781 0.37747 210 | v -0.296772 0.323188 0.376026 211 | v -0.302472 0.287065 0.375523 212 | v -0.296772 0.250941 0.376026 213 | v -0.280234 0.218349 0.37747 214 | v -0.254469 0.192485 0.379727 215 | v -0.222 0.175882 0.382568 216 | v -0.186011 0.170159 0.385713 217 | v -0.150022 0.175882 0.388864 218 | v -0.117558 0.192485 0.391705 219 | v -0.0917937 0.218349 0.393956 220 | v -0.075249 0.250941 0.395406 221 | v -0.069549 0.287065 0.395903 222 | v -0.0782072 0.322744 0.413506 223 | v -0.0945473 0.354933 0.412074 224 | v -0.119996 0.380481 0.409846 225 | v -0.152062 0.396879 0.407046 226 | v -0.187607 0.402533 0.40393 227 | v -0.223151 0.396879 0.400825 228 | v -0.255218 0.380481 0.398019 229 | v -0.280666 0.354933 0.395792 230 | v -0.297006 0.322744 0.39436 231 | v -0.302636 0.287065 0.393869 232 | v -0.297006 0.251386 0.39436 233 | v -0.280666 0.219196 0.395792 234 | v -0.255218 0.193649 0.398019 235 | v -0.223151 0.17725 0.400825 236 | v -0.187607 0.171597 0.40393 237 | v -0.152062 0.17725 0.407046 238 | v -0.119996 0.193649 0.409846 239 | v -0.0945473 0.219196 0.412074 240 | v -0.0782072 0.251386 0.413506 241 | v -0.0725773 0.287065 0.413997 242 | v -0.0838195 0.321423 0.430922 243 | v -0.0995516 0.352419 0.429542 244 | v -0.124059 0.377014 0.427396 245 | v -0.154932 0.39281 0.424695 246 | v -0.189162 0.398247 0.421702 247 | v -0.223391 0.39281 0.418709 248 | v -0.254265 0.377014 0.416008 249 | v -0.278772 0.352419 0.413862 250 | v -0.294504 0.321423 0.412489 251 | v -0.299923 0.287065 0.412015 252 | v -0.294504 0.252707 0.412489 253 | v -0.278772 0.22171 0.413862 254 | v -0.254265 0.197115 0.416008 255 | v -0.223391 0.181319 0.418709 256 | v -0.189162 0.175882 0.421702 257 | v -0.154932 0.181319 0.424695 258 | v -0.124059 0.197115 0.427396 259 | v -0.0995516 0.22171 0.429542 260 | v -0.0838195 0.252707 0.430922 261 | v -0.0784001 0.287065 0.431395 262 | v -0.0919457 0.319254 0.447221 263 | v -0.10669 0.348292 0.445929 264 | v -0.129642 0.371337 0.443923 265 | v -0.158575 0.386134 0.441392 266 | v -0.190641 0.391232 0.438586 267 | v -0.222707 0.386134 0.43578 268 | v -0.251634 0.371337 0.433248 269 | v -0.274586 0.348292 0.431243 270 | v -0.28933 0.319254 0.429951 271 | v -0.294405 0.287065 0.429507 272 | v -0.28933 0.254876 0.429951 273 | v -0.274586 0.225838 0.431243 274 | v -0.251634 0.202792 0.433248 275 | v -0.222707 0.188001 0.43578 276 | v -0.190641 0.182903 0.438586 277 | v -0.158575 0.188001 0.441392 278 | v -0.129642 0.202792 0.443923 279 | v -0.10669 0.225838 0.445929 280 | v -0.0919457 0.254876 0.447221 281 | v -0.0868712 0.287065 0.447665 282 | v -0.102393 0.31629 0.462006 283 | v -0.115775 0.342656 0.460836 284 | v -0.136622 0.36358 0.459012 285 | v -0.162883 0.377014 0.456715 286 | v -0.192003 0.381644 0.454166 287 | v -0.221117 0.377014 0.451623 288 | v -0.247384 0.36358 0.449325 289 | v -0.268225 0.342656 0.447501 290 | v -0.281607 0.31629 0.446332 291 | v -0.28622 0.287065 0.445929 292 | v -0.281607 0.25784 0.446332 293 | v -0.268225 0.231473 0.447501 294 | v -0.247384 0.21055 0.449325 295 | v -0.221117 0.197115 0.451623 296 | v -0.192003 0.192485 0.454166 297 | v -0.162883 0.197115 0.456715 298 | v -0.136622 0.21055 0.459012 299 | v -0.115775 0.231473 0.460836 300 | v -0.102393 0.25784 0.462006 301 | v -0.0977802 0.287065 0.462415 302 | v -0.114898 0.312613 0.47492 303 | v -0.126596 0.335652 0.473891 304 | v -0.144813 0.353945 0.472301 305 | v -0.167771 0.365684 0.47029 306 | v -0.193219 0.36973 0.468062 307 | v -0.218667 0.365684 0.465841 308 | v -0.24162 0.353945 0.46383 309 | v -0.259842 0.335652 0.462234 310 | v -0.27154 0.312613 0.461211 311 | v -0.275568 0.287065 0.46086 312 | v -0.27154 0.261523 0.461211 313 | v -0.259842 0.238477 0.462234 314 | v -0.24162 0.220184 0.46383 315 | v -0.218667 0.208445 0.465841 316 | v -0.193219 0.2044 0.468062 317 | v -0.167771 0.208445 0.47029 318 | v -0.144813 0.220184 0.472301 319 | v -0.126596 0.238477 0.473891 320 | v -0.114898 0.261523 0.47492 321 | v -0.110864 0.287065 0.475271 322 | v -0.129151 0.308298 0.48563 323 | v -0.138873 0.327456 0.484777 324 | v -0.15402 0.342656 0.483455 325 | v -0.173102 0.352419 0.481783 326 | v -0.194254 0.355781 0.479936 327 | v -0.215411 0.352419 0.478083 328 | v -0.234493 0.342656 0.476411 329 | v -0.249635 0.327456 0.475089 330 | v -0.259357 0.308298 0.474236 331 | v -0.262713 0.287065 0.473944 332 | v -0.259357 0.265831 0.474236 333 | v -0.249635 0.246674 0.475089 334 | v -0.234493 0.231473 0.476411 335 | v -0.215411 0.22171 0.478083 336 | v -0.194254 0.218349 0.479936 337 | v -0.173102 0.22171 0.481783 338 | v -0.15402 0.231473 0.483455 339 | v -0.138873 0.246674 0.484777 340 | v -0.129151 0.265831 0.48563 341 | v -0.125801 0.287065 0.485922 342 | v -0.144807 0.303463 0.493885 343 | v -0.152313 0.31826 0.493224 344 | v -0.164012 0.330005 0.492201 345 | v -0.17875 0.337541 0.490915 346 | v -0.19509 0.340136 0.489483 347 | v -0.21143 0.337541 0.48805 348 | v -0.226168 0.330005 0.486764 349 | v -0.237866 0.31826 0.485741 350 | v -0.245373 0.303463 0.485081 351 | v -0.247963 0.287065 0.484858 352 | v -0.245379 0.270666 0.485081 353 | v -0.237866 0.25587 0.485741 354 | v -0.226168 0.244125 0.486764 355 | v -0.21143 0.236589 0.48805 356 | v -0.19509 0.233993 0.489483 357 | v -0.17875 0.236589 0.490915 358 | v -0.164012 0.244125 0.492201 359 | v -0.152313 0.25587 0.493224 360 | v -0.144807 0.270666 0.493885 361 | v -0.142217 0.287065 0.494107 362 | v -0.161474 0.298231 0.499468 363 | v -0.16659 0.308298 0.499024 364 | v -0.174546 0.31629 0.498328 365 | v -0.184584 0.321423 0.497451 366 | v -0.195704 0.323188 0.496475 367 | v -0.206823 0.321423 0.495504 368 | v -0.216855 0.31629 0.494627 369 | v -0.224818 0.308298 0.493932 370 | v -0.229927 0.298231 0.493482 371 | v -0.231693 0.287065 0.49333 372 | v -0.229927 0.275899 0.493482 373 | v -0.224818 0.265831 0.493932 374 | v -0.216855 0.25784 0.494627 375 | v -0.206823 0.252707 0.495504 376 | v -0.195704 0.250941 0.496475 377 | v -0.184584 0.252707 0.497451 378 | v -0.174546 0.25784 0.498328 379 | v -0.16659 0.265831 0.499024 380 | v -0.161474 0.275899 0.499468 381 | v -0.159715 0.287065 0.499626 382 | v -0.17875 0.292718 0.502257 383 | v -0.18134 0.297816 0.502034 384 | v -0.185368 0.301861 0.501678 385 | v -0.190448 0.304457 0.501234 386 | v -0.196078 0.305352 0.500742 387 | v -0.201708 0.304457 0.500251 388 | v -0.206782 0.301861 0.499807 389 | v -0.210816 0.297816 0.49945 390 | v -0.2134 0.292718 0.499228 391 | v -0.214294 0.287065 0.499146 392 | v -0.2134 0.281411 0.499228 393 | v -0.210816 0.276314 0.49945 394 | v -0.206782 0.272268 0.499807 395 | v -0.201708 0.269672 0.500251 396 | v -0.196078 0.268778 0.500742 397 | v -0.190448 0.269672 0.501234 398 | v -0.185368 0.272268 0.501678 399 | v -0.18134 0.276314 0.502034 400 | v -0.17875 0.281411 0.502257 401 | v -0.177855 0.287065 0.502338 402 | v -0.196201 0.287065 0.502175 403 | # 402 vertices 404 | 405 | vt 0.029 0.659 0.000 406 | vt 0.097 0.636 0.000 407 | vt 0.075 0.504 0.000 408 | vt 0.003 0.505 0.000 409 | vt 0.094 0.373 0.000 410 | vt 0.026 0.352 0.000 411 | vt 0.153 0.254 0.000 412 | vt 0.095 0.212 0.000 413 | vt 0.246 0.159 0.000 414 | vt 0.203 0.101 0.000 415 | vt 0.364 0.097 0.000 416 | vt 0.341 0.029 0.000 417 | vt 0.495 0.075 0.000 418 | vt 0.495 0.003 0.000 419 | vt 0.627 0.095 0.000 420 | vt 0.648 0.026 0.000 421 | vt 0.746 0.153 0.000 422 | vt 0.788 0.095 0.000 423 | vt 0.841 0.247 0.000 424 | vt 0.899 0.203 0.000 425 | vt 0.903 0.364 0.000 426 | vt 0.971 0.341 0.000 427 | vt 0.925 0.495 0.000 428 | vt 0.997 0.495 0.000 429 | vt 0.906 0.627 0.000 430 | vt 0.974 0.648 0.000 431 | vt 0.846 0.746 0.000 432 | vt 0.905 0.788 0.000 433 | vt 0.754 0.841 0.000 434 | vt 0.797 0.899 0.000 435 | vt 0.636 0.902 0.000 436 | vt 0.659 0.971 0.000 437 | vt 0.505 0.925 0.000 438 | vt 0.505 0.997 0.000 439 | vt 0.373 0.905 0.000 440 | vt 0.352 0.974 0.000 441 | vt 0.254 0.847 0.000 442 | vt 0.212 0.905 0.000 443 | vt 0.159 0.753 0.000 444 | vt 0.101 0.797 0.000 445 | vt 0.157 0.615 0.000 446 | vt 0.138 0.504 0.000 447 | vt 0.155 0.392 0.000 448 | vt 0.205 0.291 0.000 449 | vt 0.284 0.210 0.000 450 | vt 0.385 0.157 0.000 451 | vt 0.496 0.138 0.000 452 | vt 0.608 0.154 0.000 453 | vt 0.709 0.205 0.000 454 | vt 0.791 0.284 0.000 455 | vt 0.843 0.385 0.000 456 | vt 0.862 0.496 0.000 457 | vt 0.845 0.608 0.000 458 | vt 0.795 0.710 0.000 459 | vt 0.716 0.790 0.000 460 | vt 0.616 0.843 0.000 461 | vt 0.504 0.861 0.000 462 | vt 0.392 0.846 0.000 463 | vt 0.290 0.795 0.000 464 | vt 0.210 0.716 0.000 465 | vt 0.210 0.598 0.000 466 | vt 0.195 0.503 0.000 467 | vt 0.208 0.409 0.000 468 | vt 0.251 0.323 0.000 469 | vt 0.318 0.255 0.000 470 | vt 0.402 0.210 0.000 471 | vt 0.497 0.194 0.000 472 | vt 0.591 0.209 0.000 473 | vt 0.677 0.250 0.000 474 | vt 0.745 0.318 0.000 475 | vt 0.790 0.402 0.000 476 | vt 0.805 0.497 0.000 477 | vt 0.792 0.591 0.000 478 | vt 0.749 0.677 0.000 479 | vt 0.682 0.746 0.000 480 | vt 0.597 0.789 0.000 481 | vt 0.503 0.806 0.000 482 | vt 0.409 0.791 0.000 483 | vt 0.323 0.750 0.000 484 | vt 0.255 0.682 0.000 485 | vt 0.259 0.581 0.000 486 | vt 0.246 0.503 0.000 487 | vt 0.257 0.424 0.000 488 | vt 0.293 0.353 0.000 489 | vt 0.348 0.296 0.000 490 | vt 0.419 0.259 0.000 491 | vt 0.497 0.246 0.000 492 | vt 0.576 0.257 0.000 493 | vt 0.647 0.293 0.000 494 | vt 0.704 0.348 0.000 495 | vt 0.741 0.419 0.000 496 | vt 0.754 0.497 0.000 497 | vt 0.742 0.576 0.000 498 | vt 0.707 0.647 0.000 499 | vt 0.652 0.704 0.000 500 | vt 0.581 0.741 0.000 501 | vt 0.503 0.754 0.000 502 | vt 0.424 0.743 0.000 503 | vt 0.353 0.707 0.000 504 | vt 0.296 0.652 0.000 505 | vt 0.304 0.566 0.000 506 | vt 0.293 0.502 0.000 507 | vt 0.303 0.438 0.000 508 | vt 0.331 0.380 0.000 509 | vt 0.377 0.334 0.000 510 | vt 0.434 0.304 0.000 511 | vt 0.498 0.293 0.000 512 | vt 0.562 0.303 0.000 513 | vt 0.620 0.331 0.000 514 | vt 0.666 0.377 0.000 515 | vt 0.696 0.434 0.000 516 | vt 0.707 0.498 0.000 517 | vt 0.697 0.562 0.000 518 | vt 0.668 0.620 0.000 519 | vt 0.623 0.666 0.000 520 | vt 0.566 0.696 0.000 521 | vt 0.502 0.707 0.000 522 | vt 0.438 0.697 0.000 523 | vt 0.380 0.669 0.000 524 | vt 0.334 0.623 0.000 525 | vt 0.346 0.552 0.000 526 | vt 0.338 0.502 0.000 527 | vt 0.345 0.451 0.000 528 | vt 0.368 0.406 0.000 529 | vt 0.403 0.370 0.000 530 | vt 0.448 0.346 0.000 531 | vt 0.498 0.338 0.000 532 | vt 0.548 0.345 0.000 533 | vt 0.594 0.368 0.000 534 | vt 0.630 0.403 0.000 535 | vt 0.654 0.448 0.000 536 | vt 0.662 0.498 0.000 537 | vt 0.655 0.549 0.000 538 | vt 0.632 0.594 0.000 539 | vt 0.597 0.630 0.000 540 | vt 0.552 0.654 0.000 541 | vt 0.502 0.662 0.000 542 | vt 0.452 0.655 0.000 543 | vt 0.406 0.632 0.000 544 | vt 0.370 0.597 0.000 545 | vt 0.387 0.538 0.000 546 | vt 0.381 0.501 0.000 547 | vt 0.386 0.464 0.000 548 | vt 0.403 0.431 0.000 549 | vt 0.429 0.404 0.000 550 | vt 0.462 0.387 0.000 551 | vt 0.499 0.381 0.000 552 | vt 0.536 0.386 0.000 553 | vt 0.569 0.403 0.000 554 | vt 0.596 0.429 0.000 555 | vt 0.613 0.462 0.000 556 | vt 0.619 0.499 0.000 557 | vt 0.614 0.536 0.000 558 | vt 0.597 0.569 0.000 559 | vt 0.571 0.596 0.000 560 | vt 0.538 0.613 0.000 561 | vt 0.501 0.619 0.000 562 | vt 0.464 0.614 0.000 563 | vt 0.431 0.597 0.000 564 | vt 0.404 0.571 0.000 565 | vt 0.425 0.525 0.000 566 | vt 0.420 0.501 0.000 567 | vt 0.424 0.476 0.000 568 | vt 0.435 0.454 0.000 569 | vt 0.453 0.436 0.000 570 | vt 0.475 0.425 0.000 571 | vt 0.499 0.420 0.000 572 | vt 0.524 0.424 0.000 573 | vt 0.546 0.435 0.000 574 | vt 0.564 0.452 0.000 575 | vt 0.575 0.475 0.000 576 | vt 0.580 0.499 0.000 577 | vt 0.576 0.524 0.000 578 | vt 0.565 0.546 0.000 579 | vt 0.548 0.564 0.000 580 | vt 0.525 0.575 0.000 581 | vt 0.501 0.580 0.000 582 | vt 0.476 0.576 0.000 583 | vt 0.454 0.565 0.000 584 | vt 0.436 0.548 0.000 585 | vt 0.459 0.514 0.000 586 | vt 0.456 0.500 0.000 587 | vt 0.459 0.487 0.000 588 | vt 0.465 0.475 0.000 589 | vt 0.474 0.465 0.000 590 | vt 0.486 0.458 0.000 591 | vt 0.500 0.457 0.000 592 | vt 0.513 0.458 0.000 593 | vt 0.525 0.464 0.000 594 | vt 0.536 0.475 0.000 595 | vt 0.541 0.485 0.000 596 | vt 0.544 0.499 0.000 597 | vt 0.542 0.514 0.000 598 | vt 0.536 0.525 0.000 599 | vt 0.526 0.534 0.000 600 | vt 0.514 0.542 0.000 601 | vt 0.500 0.543 0.000 602 | vt 0.488 0.541 0.000 603 | vt 0.474 0.536 0.000 604 | vt 0.466 0.526 0.000 605 | vt 0.500 0.500 0.000 606 | vt 0.029 0.659 0.000 607 | vt 0.003 0.505 0.000 608 | vt 0.075 0.504 0.000 609 | vt 0.097 0.636 0.000 610 | vt 0.026 0.352 0.000 611 | vt 0.094 0.373 0.000 612 | vt 0.095 0.212 0.000 613 | vt 0.153 0.254 0.000 614 | vt 0.203 0.101 0.000 615 | vt 0.246 0.159 0.000 616 | vt 0.341 0.029 0.000 617 | vt 0.364 0.097 0.000 618 | vt 0.495 0.003 0.000 619 | vt 0.495 0.075 0.000 620 | vt 0.648 0.026 0.000 621 | vt 0.627 0.095 0.000 622 | vt 0.788 0.095 0.000 623 | vt 0.746 0.153 0.000 624 | vt 0.899 0.203 0.000 625 | vt 0.841 0.247 0.000 626 | vt 0.971 0.341 0.000 627 | vt 0.903 0.364 0.000 628 | vt 0.997 0.495 0.000 629 | vt 0.925 0.495 0.000 630 | vt 0.974 0.648 0.000 631 | vt 0.906 0.627 0.000 632 | vt 0.905 0.788 0.000 633 | vt 0.846 0.746 0.000 634 | vt 0.797 0.899 0.000 635 | vt 0.754 0.841 0.000 636 | vt 0.659 0.971 0.000 637 | vt 0.636 0.902 0.000 638 | vt 0.505 0.997 0.000 639 | vt 0.505 0.925 0.000 640 | vt 0.352 0.974 0.000 641 | vt 0.373 0.905 0.000 642 | vt 0.212 0.905 0.000 643 | vt 0.254 0.847 0.000 644 | vt 0.101 0.797 0.000 645 | vt 0.159 0.753 0.000 646 | vt 0.138 0.504 0.000 647 | vt 0.157 0.615 0.000 648 | vt 0.155 0.392 0.000 649 | vt 0.205 0.291 0.000 650 | vt 0.284 0.210 0.000 651 | vt 0.385 0.157 0.000 652 | vt 0.496 0.138 0.000 653 | vt 0.608 0.154 0.000 654 | vt 0.709 0.205 0.000 655 | vt 0.791 0.284 0.000 656 | vt 0.843 0.385 0.000 657 | vt 0.862 0.496 0.000 658 | vt 0.845 0.608 0.000 659 | vt 0.795 0.710 0.000 660 | vt 0.716 0.790 0.000 661 | vt 0.616 0.843 0.000 662 | vt 0.504 0.861 0.000 663 | vt 0.392 0.846 0.000 664 | vt 0.290 0.795 0.000 665 | vt 0.210 0.716 0.000 666 | vt 0.195 0.503 0.000 667 | vt 0.210 0.598 0.000 668 | vt 0.208 0.409 0.000 669 | vt 0.251 0.323 0.000 670 | vt 0.318 0.255 0.000 671 | vt 0.402 0.210 0.000 672 | vt 0.497 0.194 0.000 673 | vt 0.591 0.209 0.000 674 | vt 0.677 0.250 0.000 675 | vt 0.745 0.318 0.000 676 | vt 0.790 0.402 0.000 677 | vt 0.805 0.497 0.000 678 | vt 0.792 0.591 0.000 679 | vt 0.749 0.677 0.000 680 | vt 0.682 0.746 0.000 681 | vt 0.597 0.789 0.000 682 | vt 0.503 0.806 0.000 683 | vt 0.409 0.791 0.000 684 | vt 0.323 0.750 0.000 685 | vt 0.255 0.682 0.000 686 | vt 0.246 0.503 0.000 687 | vt 0.259 0.581 0.000 688 | vt 0.257 0.424 0.000 689 | vt 0.293 0.353 0.000 690 | vt 0.348 0.296 0.000 691 | vt 0.419 0.259 0.000 692 | vt 0.497 0.246 0.000 693 | vt 0.576 0.257 0.000 694 | vt 0.647 0.293 0.000 695 | vt 0.704 0.348 0.000 696 | vt 0.741 0.419 0.000 697 | vt 0.754 0.497 0.000 698 | vt 0.742 0.576 0.000 699 | vt 0.707 0.647 0.000 700 | vt 0.652 0.704 0.000 701 | vt 0.581 0.741 0.000 702 | vt 0.503 0.754 0.000 703 | vt 0.424 0.743 0.000 704 | vt 0.353 0.707 0.000 705 | vt 0.296 0.652 0.000 706 | vt 0.293 0.502 0.000 707 | vt 0.304 0.566 0.000 708 | vt 0.303 0.438 0.000 709 | vt 0.331 0.380 0.000 710 | vt 0.377 0.334 0.000 711 | vt 0.434 0.304 0.000 712 | vt 0.498 0.293 0.000 713 | vt 0.562 0.303 0.000 714 | vt 0.620 0.331 0.000 715 | vt 0.666 0.377 0.000 716 | vt 0.696 0.434 0.000 717 | vt 0.707 0.498 0.000 718 | vt 0.697 0.562 0.000 719 | vt 0.668 0.620 0.000 720 | vt 0.623 0.666 0.000 721 | vt 0.566 0.696 0.000 722 | vt 0.502 0.707 0.000 723 | vt 0.438 0.697 0.000 724 | vt 0.380 0.669 0.000 725 | vt 0.334 0.623 0.000 726 | vt 0.338 0.502 0.000 727 | vt 0.346 0.552 0.000 728 | vt 0.345 0.451 0.000 729 | vt 0.368 0.406 0.000 730 | vt 0.403 0.370 0.000 731 | vt 0.448 0.346 0.000 732 | vt 0.498 0.338 0.000 733 | vt 0.548 0.345 0.000 734 | vt 0.594 0.368 0.000 735 | vt 0.630 0.403 0.000 736 | vt 0.654 0.448 0.000 737 | vt 0.662 0.498 0.000 738 | vt 0.655 0.549 0.000 739 | vt 0.632 0.594 0.000 740 | vt 0.597 0.630 0.000 741 | vt 0.552 0.654 0.000 742 | vt 0.502 0.662 0.000 743 | vt 0.452 0.655 0.000 744 | vt 0.406 0.632 0.000 745 | vt 0.370 0.597 0.000 746 | vt 0.381 0.501 0.000 747 | vt 0.387 0.538 0.000 748 | vt 0.386 0.464 0.000 749 | vt 0.403 0.431 0.000 750 | vt 0.429 0.404 0.000 751 | vt 0.462 0.387 0.000 752 | vt 0.499 0.381 0.000 753 | vt 0.536 0.386 0.000 754 | vt 0.569 0.403 0.000 755 | vt 0.596 0.429 0.000 756 | vt 0.613 0.462 0.000 757 | vt 0.619 0.499 0.000 758 | vt 0.614 0.536 0.000 759 | vt 0.597 0.569 0.000 760 | vt 0.571 0.596 0.000 761 | vt 0.538 0.613 0.000 762 | vt 0.501 0.619 0.000 763 | vt 0.464 0.614 0.000 764 | vt 0.431 0.597 0.000 765 | vt 0.404 0.571 0.000 766 | vt 0.420 0.501 0.000 767 | vt 0.425 0.525 0.000 768 | vt 0.424 0.476 0.000 769 | vt 0.435 0.454 0.000 770 | vt 0.453 0.436 0.000 771 | vt 0.475 0.425 0.000 772 | vt 0.499 0.420 0.000 773 | vt 0.524 0.424 0.000 774 | vt 0.546 0.435 0.000 775 | vt 0.564 0.452 0.000 776 | vt 0.575 0.475 0.000 777 | vt 0.580 0.499 0.000 778 | vt 0.576 0.524 0.000 779 | vt 0.565 0.546 0.000 780 | vt 0.548 0.564 0.000 781 | vt 0.525 0.575 0.000 782 | vt 0.501 0.580 0.000 783 | vt 0.476 0.576 0.000 784 | vt 0.454 0.565 0.000 785 | vt 0.436 0.548 0.000 786 | vt 0.456 0.500 0.000 787 | vt 0.459 0.514 0.000 788 | vt 0.459 0.487 0.000 789 | vt 0.465 0.475 0.000 790 | vt 0.474 0.465 0.000 791 | vt 0.486 0.458 0.000 792 | vt 0.500 0.457 0.000 793 | vt 0.513 0.458 0.000 794 | vt 0.525 0.464 0.000 795 | vt 0.536 0.475 0.000 796 | vt 0.541 0.485 0.000 797 | vt 0.544 0.499 0.000 798 | vt 0.542 0.514 0.000 799 | vt 0.536 0.525 0.000 800 | vt 0.526 0.534 0.000 801 | vt 0.514 0.542 0.000 802 | vt 0.500 0.543 0.000 803 | vt 0.488 0.541 0.000 804 | vt 0.474 0.536 0.000 805 | vt 0.466 0.526 0.000 806 | vt 0.500 0.500 0.000 807 | # 402 texture vertices 808 | 809 | vn -0.938 0.308 0.161 810 | vn -0.797 0.586 0.148 811 | vn -0.577 0.807 0.129 812 | vn -0.300 0.948 0.105 813 | vn 0.007 0.997 0.078 814 | vn 0.314 0.948 0.051 815 | vn 0.591 0.807 0.027 816 | vn 0.810 0.586 0.008 817 | vn 0.951 0.308 -0.004 818 | vn 1.000 0.000 -0.009 819 | vn 0.951 -0.308 -0.004 820 | vn 0.810 -0.586 0.008 821 | vn 0.591 -0.807 0.027 822 | vn 0.314 -0.948 0.051 823 | vn 0.007 -0.997 0.078 824 | vn -0.300 -0.948 0.105 825 | vn -0.577 -0.807 0.129 826 | vn -0.797 -0.586 0.148 827 | vn -0.938 -0.308 0.161 828 | vn -0.986 0.000 0.165 829 | vn -0.922 0.305 0.237 830 | vn -0.783 0.581 0.224 831 | vn -0.565 0.799 0.205 832 | vn -0.291 0.940 0.181 833 | vn 0.014 0.988 0.155 834 | vn 0.318 0.940 0.128 835 | vn 0.592 0.799 0.104 836 | vn 0.810 0.581 0.085 837 | vn 0.949 0.305 0.073 838 | vn 0.998 0.000 0.069 839 | vn 0.949 -0.305 0.073 840 | vn 0.810 -0.581 0.085 841 | vn 0.592 -0.799 0.104 842 | vn 0.318 -0.940 0.128 843 | vn 0.014 -0.988 0.155 844 | vn -0.291 -0.940 0.181 845 | vn -0.565 -0.799 0.205 846 | vn -0.783 -0.581 0.224 847 | vn -0.922 -0.305 0.237 848 | vn -0.971 0.000 0.241 849 | vn -0.875 0.294 0.384 850 | vn -0.740 0.559 0.373 851 | vn -0.531 0.770 0.354 852 | vn -0.266 0.905 0.331 853 | vn 0.027 0.952 0.306 854 | vn 0.320 0.905 0.280 855 | vn 0.584 0.770 0.257 856 | vn 0.794 0.559 0.238 857 | vn 0.929 0.294 0.227 858 | vn 0.975 0.000 0.223 859 | vn 0.928 -0.294 0.227 860 | vn 0.794 -0.559 0.238 861 | vn 0.584 -0.770 0.257 862 | vn 0.320 -0.905 0.280 863 | vn 0.027 -0.952 0.306 864 | vn -0.266 -0.905 0.331 865 | vn -0.531 -0.770 0.354 866 | vn -0.740 -0.559 0.373 867 | vn -0.875 -0.294 0.384 868 | vn -0.921 0.000 0.389 869 | vn -0.806 0.276 0.523 870 | vn -0.680 0.525 0.512 871 | vn -0.483 0.722 0.495 872 | vn -0.235 0.849 0.473 873 | vn 0.039 0.893 0.449 874 | vn 0.314 0.849 0.425 875 | vn 0.562 0.722 0.403 876 | vn 0.759 0.525 0.386 877 | vn 0.885 0.276 0.375 878 | vn 0.928 0.000 0.371 879 | vn 0.885 -0.276 0.375 880 | vn 0.759 -0.525 0.386 881 | vn 0.562 -0.722 0.403 882 | vn 0.314 -0.849 0.425 883 | vn 0.039 -0.893 0.449 884 | vn -0.235 -0.849 0.473 885 | vn -0.483 -0.722 0.495 886 | vn -0.680 -0.525 0.512 887 | vn -0.806 -0.276 0.523 888 | vn -0.850 0.000 0.527 889 | vn -0.718 0.251 0.649 890 | vn -0.603 0.477 0.639 891 | vn -0.424 0.657 0.623 892 | vn -0.199 0.772 0.604 893 | vn 0.051 0.812 0.582 894 | vn 0.301 0.772 0.560 895 | vn 0.526 0.657 0.540 896 | vn 0.705 0.477 0.525 897 | vn 0.820 0.251 0.515 898 | vn 0.860 -0.000 0.511 899 | vn 0.820 -0.251 0.515 900 | vn 0.705 -0.477 0.525 901 | vn 0.526 -0.657 0.540 902 | vn 0.301 -0.772 0.560 903 | vn 0.051 -0.812 0.582 904 | vn -0.199 -0.772 0.604 905 | vn -0.424 -0.657 0.623 906 | vn -0.603 -0.477 0.639 907 | vn -0.718 -0.251 0.649 908 | vn -0.758 -0.000 0.653 909 | vn -0.612 0.220 0.759 910 | vn -0.512 0.418 0.751 911 | vn -0.355 0.575 0.737 912 | vn -0.158 0.676 0.720 913 | vn 0.061 0.711 0.701 914 | vn 0.280 0.676 0.681 915 | vn 0.478 0.575 0.664 916 | vn 0.634 0.418 0.650 917 | vn 0.735 0.220 0.642 918 | vn 0.770 0.000 0.639 919 | vn 0.735 -0.220 0.642 920 | vn 0.634 -0.418 0.650 921 | vn 0.478 -0.575 0.664 922 | vn 0.280 -0.676 0.681 923 | vn 0.061 -0.711 0.701 924 | vn -0.158 -0.676 0.720 925 | vn -0.355 -0.575 0.737 926 | vn -0.512 -0.418 0.751 927 | vn -0.612 -0.220 0.759 928 | vn -0.647 -0.000 0.763 929 | vn -0.492 0.183 0.851 930 | vn -0.408 0.348 0.844 931 | vn -0.277 0.480 0.833 932 | vn -0.112 0.564 0.818 933 | vn 0.070 0.593 0.802 934 | vn 0.253 0.564 0.786 935 | vn 0.417 0.480 0.772 936 | vn 0.548 0.348 0.760 937 | vn 0.632 0.183 0.753 938 | vn 0.661 0.000 0.751 939 | vn 0.632 -0.183 0.753 940 | vn 0.548 -0.348 0.760 941 | vn 0.417 -0.480 0.772 942 | vn 0.253 -0.564 0.786 943 | vn 0.070 -0.593 0.802 944 | vn -0.112 -0.564 0.818 945 | vn -0.277 -0.480 0.833 946 | vn -0.408 -0.348 0.844 947 | vn -0.492 -0.183 0.851 948 | vn -0.520 0.000 0.854 949 | vn -0.359 0.142 0.923 950 | vn -0.293 0.270 0.917 951 | vn -0.192 0.372 0.908 952 | vn -0.064 0.438 0.897 953 | vn 0.077 0.460 0.884 954 | vn 0.219 0.438 0.872 955 | vn 0.347 0.372 0.861 956 | vn 0.448 0.270 0.852 957 | vn 0.513 0.142 0.846 958 | vn 0.536 0.000 0.844 959 | vn 0.513 -0.142 0.846 960 | vn 0.448 -0.270 0.852 961 | vn 0.347 -0.372 0.861 962 | vn 0.219 -0.438 0.872 963 | vn 0.077 -0.460 0.884 964 | vn -0.064 -0.438 0.897 965 | vn -0.192 -0.372 0.908 966 | vn -0.293 -0.270 0.917 967 | vn -0.359 -0.142 0.923 968 | vn -0.381 0.000 0.925 969 | vn -0.217 0.098 0.971 970 | vn -0.172 0.186 0.967 971 | vn -0.102 0.256 0.961 972 | vn -0.015 0.301 0.954 973 | vn 0.083 0.316 0.945 974 | vn 0.180 0.301 0.937 975 | vn 0.268 0.256 0.929 976 | vn 0.337 0.186 0.923 977 | vn 0.382 0.098 0.919 978 | vn 0.398 -0.000 0.918 979 | vn 0.382 -0.098 0.919 980 | vn 0.337 -0.186 0.923 981 | vn 0.268 -0.256 0.929 982 | vn 0.180 -0.301 0.937 983 | vn 0.083 -0.316 0.945 984 | vn -0.015 -0.301 0.954 985 | vn -0.102 -0.256 0.961 986 | vn -0.172 -0.186 0.967 987 | vn -0.217 -0.098 0.971 988 | vn -0.232 0.000 0.973 989 | vn -0.069 0.051 0.996 990 | vn -0.046 0.096 0.994 991 | vn -0.010 0.133 0.991 992 | vn 0.035 0.156 0.987 993 | vn 0.086 0.164 0.983 994 | vn 0.136 0.156 0.978 995 | vn 0.182 0.133 0.974 996 | vn 0.218 0.096 0.971 997 | vn 0.241 0.051 0.969 998 | vn 0.249 0.000 0.968 999 | vn 0.241 -0.051 0.969 1000 | vn 0.218 -0.096 0.971 1001 | vn 0.182 -0.133 0.974 1002 | vn 0.137 -0.156 0.978 1003 | vn 0.086 -0.164 0.983 1004 | vn 0.035 -0.156 0.987 1005 | vn -0.010 -0.133 0.991 1006 | vn -0.046 -0.096 0.994 1007 | vn -0.069 -0.051 0.996 1008 | vn -0.077 -0.000 0.997 1009 | vn 0.087 -0.000 0.996 1010 | vn 0.938 0.308 0.161 1011 | vn 0.797 0.586 0.148 1012 | vn 0.577 0.807 0.129 1013 | vn 0.300 0.948 0.105 1014 | vn -0.007 0.997 0.078 1015 | vn -0.314 0.948 0.051 1016 | vn -0.591 0.807 0.027 1017 | vn -0.810 0.586 0.008 1018 | vn -0.951 0.308 -0.004 1019 | vn -1.000 0.000 -0.009 1020 | vn -0.951 -0.308 -0.004 1021 | vn -0.810 -0.586 0.008 1022 | vn -0.591 -0.807 0.027 1023 | vn -0.314 -0.948 0.051 1024 | vn -0.007 -0.997 0.078 1025 | vn 0.300 -0.948 0.105 1026 | vn 0.577 -0.807 0.129 1027 | vn 0.797 -0.586 0.148 1028 | vn 0.938 -0.308 0.161 1029 | vn 0.986 0.000 0.165 1030 | vn 0.922 0.305 0.237 1031 | vn 0.783 0.581 0.224 1032 | vn 0.565 0.799 0.205 1033 | vn 0.291 0.940 0.181 1034 | vn -0.014 0.988 0.155 1035 | vn -0.318 0.940 0.128 1036 | vn -0.592 0.799 0.104 1037 | vn -0.810 0.581 0.085 1038 | vn -0.949 0.305 0.073 1039 | vn -0.998 0.000 0.069 1040 | vn -0.949 -0.305 0.073 1041 | vn -0.810 -0.581 0.085 1042 | vn -0.592 -0.799 0.104 1043 | vn -0.318 -0.940 0.128 1044 | vn -0.014 -0.988 0.155 1045 | vn 0.291 -0.940 0.181 1046 | vn 0.565 -0.799 0.205 1047 | vn 0.783 -0.581 0.224 1048 | vn 0.922 -0.305 0.237 1049 | vn 0.971 0.000 0.241 1050 | vn 0.875 0.294 0.384 1051 | vn 0.740 0.559 0.373 1052 | vn 0.531 0.770 0.354 1053 | vn 0.266 0.905 0.331 1054 | vn -0.027 0.952 0.306 1055 | vn -0.320 0.905 0.280 1056 | vn -0.584 0.770 0.257 1057 | vn -0.794 0.559 0.238 1058 | vn -0.928 0.294 0.227 1059 | vn -0.975 0.000 0.223 1060 | vn -0.928 -0.294 0.227 1061 | vn -0.794 -0.559 0.238 1062 | vn -0.584 -0.770 0.257 1063 | vn -0.320 -0.905 0.280 1064 | vn -0.027 -0.952 0.306 1065 | vn 0.266 -0.905 0.331 1066 | vn 0.531 -0.770 0.354 1067 | vn 0.740 -0.559 0.373 1068 | vn 0.875 -0.294 0.384 1069 | vn 0.921 0.000 0.389 1070 | vn 0.806 0.276 0.523 1071 | vn 0.680 0.525 0.512 1072 | vn 0.483 0.722 0.495 1073 | vn 0.235 0.849 0.473 1074 | vn -0.039 0.893 0.449 1075 | vn -0.314 0.849 0.425 1076 | vn -0.562 0.722 0.403 1077 | vn -0.759 0.525 0.386 1078 | vn -0.885 0.276 0.375 1079 | vn -0.928 0.000 0.371 1080 | vn -0.885 -0.276 0.375 1081 | vn -0.759 -0.525 0.386 1082 | vn -0.562 -0.722 0.403 1083 | vn -0.314 -0.849 0.425 1084 | vn -0.039 -0.893 0.449 1085 | vn 0.235 -0.849 0.473 1086 | vn 0.483 -0.722 0.495 1087 | vn 0.680 -0.525 0.512 1088 | vn 0.806 -0.276 0.523 1089 | vn 0.850 0.000 0.527 1090 | vn 0.718 0.251 0.649 1091 | vn 0.603 0.477 0.639 1092 | vn 0.424 0.657 0.623 1093 | vn 0.199 0.772 0.604 1094 | vn -0.051 0.812 0.582 1095 | vn -0.301 0.772 0.560 1096 | vn -0.526 0.657 0.540 1097 | vn -0.705 0.477 0.525 1098 | vn -0.820 0.251 0.515 1099 | vn -0.860 -0.000 0.511 1100 | vn -0.820 -0.251 0.515 1101 | vn -0.705 -0.477 0.525 1102 | vn -0.526 -0.657 0.540 1103 | vn -0.301 -0.772 0.560 1104 | vn -0.051 -0.812 0.582 1105 | vn 0.199 -0.772 0.604 1106 | vn 0.424 -0.657 0.623 1107 | vn 0.603 -0.477 0.639 1108 | vn 0.718 -0.251 0.649 1109 | vn 0.758 -0.000 0.653 1110 | vn 0.612 0.220 0.759 1111 | vn 0.512 0.418 0.751 1112 | vn 0.355 0.575 0.737 1113 | vn 0.158 0.676 0.720 1114 | vn -0.061 0.711 0.701 1115 | vn -0.280 0.676 0.681 1116 | vn -0.478 0.575 0.664 1117 | vn -0.634 0.418 0.650 1118 | vn -0.735 0.220 0.642 1119 | vn -0.770 0.000 0.639 1120 | vn -0.735 -0.220 0.642 1121 | vn -0.634 -0.418 0.650 1122 | vn -0.478 -0.575 0.664 1123 | vn -0.280 -0.676 0.681 1124 | vn -0.061 -0.711 0.701 1125 | vn 0.158 -0.676 0.720 1126 | vn 0.355 -0.575 0.737 1127 | vn 0.512 -0.418 0.751 1128 | vn 0.612 -0.220 0.759 1129 | vn 0.647 -0.000 0.763 1130 | vn 0.492 0.183 0.851 1131 | vn 0.408 0.348 0.844 1132 | vn 0.277 0.480 0.833 1133 | vn 0.112 0.564 0.818 1134 | vn -0.070 0.593 0.802 1135 | vn -0.253 0.564 0.786 1136 | vn -0.417 0.480 0.772 1137 | vn -0.548 0.348 0.760 1138 | vn -0.632 0.183 0.753 1139 | vn -0.661 -0.000 0.751 1140 | vn -0.632 -0.183 0.753 1141 | vn -0.548 -0.348 0.760 1142 | vn -0.417 -0.480 0.772 1143 | vn -0.253 -0.564 0.786 1144 | vn -0.070 -0.593 0.802 1145 | vn 0.112 -0.564 0.818 1146 | vn 0.277 -0.480 0.833 1147 | vn 0.408 -0.348 0.844 1148 | vn 0.492 -0.183 0.851 1149 | vn 0.520 0.000 0.854 1150 | vn 0.359 0.142 0.923 1151 | vn 0.293 0.270 0.917 1152 | vn 0.192 0.372 0.908 1153 | vn 0.064 0.438 0.897 1154 | vn -0.077 0.460 0.884 1155 | vn -0.219 0.438 0.872 1156 | vn -0.347 0.372 0.861 1157 | vn -0.448 0.270 0.852 1158 | vn -0.513 0.142 0.846 1159 | vn -0.536 0.000 0.844 1160 | vn -0.513 -0.142 0.846 1161 | vn -0.448 -0.270 0.852 1162 | vn -0.347 -0.372 0.861 1163 | vn -0.219 -0.438 0.872 1164 | vn -0.077 -0.460 0.884 1165 | vn 0.064 -0.438 0.897 1166 | vn 0.192 -0.372 0.908 1167 | vn 0.293 -0.270 0.917 1168 | vn 0.359 -0.142 0.923 1169 | vn 0.381 0.000 0.925 1170 | vn 0.217 0.098 0.971 1171 | vn 0.172 0.186 0.967 1172 | vn 0.102 0.256 0.961 1173 | vn 0.015 0.301 0.954 1174 | vn -0.083 0.316 0.945 1175 | vn -0.180 0.301 0.937 1176 | vn -0.268 0.256 0.929 1177 | vn -0.337 0.186 0.923 1178 | vn -0.382 0.098 0.919 1179 | vn -0.398 0.000 0.918 1180 | vn -0.382 -0.098 0.919 1181 | vn -0.337 -0.186 0.923 1182 | vn -0.268 -0.256 0.929 1183 | vn -0.180 -0.301 0.937 1184 | vn -0.083 -0.316 0.945 1185 | vn 0.015 -0.301 0.954 1186 | vn 0.102 -0.256 0.961 1187 | vn 0.172 -0.186 0.967 1188 | vn 0.217 -0.098 0.971 1189 | vn 0.232 0.000 0.973 1190 | vn 0.069 0.051 0.996 1191 | vn 0.046 0.096 0.994 1192 | vn 0.010 0.133 0.991 1193 | vn -0.035 0.156 0.987 1194 | vn -0.086 0.164 0.983 1195 | vn -0.136 0.156 0.978 1196 | vn -0.182 0.133 0.974 1197 | vn -0.218 0.096 0.971 1198 | vn -0.241 0.051 0.969 1199 | vn -0.249 0.000 0.968 1200 | vn -0.241 -0.051 0.969 1201 | vn -0.218 -0.096 0.971 1202 | vn -0.182 -0.133 0.974 1203 | vn -0.137 -0.156 0.978 1204 | vn -0.086 -0.164 0.983 1205 | vn -0.035 -0.156 0.987 1206 | vn 0.010 -0.133 0.991 1207 | vn 0.046 -0.096 0.994 1208 | vn 0.069 -0.051 0.996 1209 | vn 0.077 -0.000 0.997 1210 | vn -0.087 -0.000 0.996 1211 | # 402 vertex normals 1212 | 1213 | g eyeOutter 1214 | s 1 1215 | f 1/1/1 21/2/21 22/3/22 1216 | f 1/1/1 22/3/22 2/4/2 1217 | f 2/4/2 22/3/22 23/5/23 1218 | f 2/4/2 23/5/23 3/6/3 1219 | f 3/6/3 23/5/23 24/7/24 1220 | f 3/6/3 24/7/24 4/8/4 1221 | f 4/8/4 24/7/24 25/9/25 1222 | f 4/8/4 25/9/25 5/10/5 1223 | f 5/10/5 25/9/25 26/11/26 1224 | f 5/10/5 26/11/26 6/12/6 1225 | f 6/12/6 26/11/26 27/13/27 1226 | f 6/12/6 27/13/27 7/14/7 1227 | f 7/14/7 27/13/27 28/15/28 1228 | f 7/14/7 28/15/28 8/16/8 1229 | f 8/16/8 28/15/28 29/17/29 1230 | f 8/16/8 29/17/29 9/18/9 1231 | f 9/18/9 29/17/29 30/19/30 1232 | f 9/18/9 30/19/30 10/20/10 1233 | f 10/20/10 30/19/30 31/21/31 1234 | f 10/20/10 31/21/31 11/22/11 1235 | f 11/22/11 31/21/31 32/23/32 1236 | f 11/22/11 32/23/32 12/24/12 1237 | f 12/24/12 32/23/32 33/25/33 1238 | f 12/24/12 33/25/33 13/26/13 1239 | f 13/26/13 33/25/33 34/27/34 1240 | f 13/26/13 34/27/34 14/28/14 1241 | f 14/28/14 34/27/34 35/29/35 1242 | f 14/28/14 35/29/35 15/30/15 1243 | f 15/30/15 35/29/35 36/31/36 1244 | f 15/30/15 36/31/36 16/32/16 1245 | f 16/32/16 36/31/36 37/33/37 1246 | f 16/32/16 37/33/37 17/34/17 1247 | f 17/34/17 37/33/37 38/35/38 1248 | f 17/34/17 38/35/38 18/36/18 1249 | f 18/36/18 38/35/38 39/37/39 1250 | f 18/36/18 39/37/39 19/38/19 1251 | f 19/38/19 39/37/39 40/39/40 1252 | f 19/38/19 40/39/40 20/40/20 1253 | f 20/40/20 40/39/40 21/2/21 1254 | f 20/40/20 21/2/21 1/1/1 1255 | f 21/2/21 41/41/41 42/42/42 1256 | f 21/2/21 42/42/42 22/3/22 1257 | f 22/3/22 42/42/42 43/43/43 1258 | f 22/3/22 43/43/43 23/5/23 1259 | f 23/5/23 43/43/43 44/44/44 1260 | f 23/5/23 44/44/44 24/7/24 1261 | f 24/7/24 44/44/44 45/45/45 1262 | f 24/7/24 45/45/45 25/9/25 1263 | f 25/9/25 45/45/45 46/46/46 1264 | f 25/9/25 46/46/46 26/11/26 1265 | f 26/11/26 46/46/46 47/47/47 1266 | f 26/11/26 47/47/47 27/13/27 1267 | f 27/13/27 47/47/47 48/48/48 1268 | f 27/13/27 48/48/48 28/15/28 1269 | f 28/15/28 48/48/48 49/49/49 1270 | f 28/15/28 49/49/49 29/17/29 1271 | f 29/17/29 49/49/49 50/50/50 1272 | f 29/17/29 50/50/50 30/19/30 1273 | f 30/19/30 50/50/50 51/51/51 1274 | f 30/19/30 51/51/51 31/21/31 1275 | f 31/21/31 51/51/51 52/52/52 1276 | f 31/21/31 52/52/52 32/23/32 1277 | f 32/23/32 52/52/52 53/53/53 1278 | f 32/23/32 53/53/53 33/25/33 1279 | f 33/25/33 53/53/53 54/54/54 1280 | f 33/25/33 54/54/54 34/27/34 1281 | f 34/27/34 54/54/54 55/55/55 1282 | f 34/27/34 55/55/55 35/29/35 1283 | f 35/29/35 55/55/55 56/56/56 1284 | f 35/29/35 56/56/56 36/31/36 1285 | f 36/31/36 56/56/56 57/57/57 1286 | f 36/31/36 57/57/57 37/33/37 1287 | f 37/33/37 57/57/57 58/58/58 1288 | f 37/33/37 58/58/58 38/35/38 1289 | f 38/35/38 58/58/58 59/59/59 1290 | f 38/35/38 59/59/59 39/37/39 1291 | f 39/37/39 59/59/59 60/60/60 1292 | f 39/37/39 60/60/60 40/39/40 1293 | f 40/39/40 60/60/60 41/41/41 1294 | f 40/39/40 41/41/41 21/2/21 1295 | f 41/41/41 61/61/61 62/62/62 1296 | f 41/41/41 62/62/62 42/42/42 1297 | f 42/42/42 62/62/62 63/63/63 1298 | f 42/42/42 63/63/63 43/43/43 1299 | f 43/43/43 63/63/63 64/64/64 1300 | f 43/43/43 64/64/64 44/44/44 1301 | f 44/44/44 64/64/64 65/65/65 1302 | f 44/44/44 65/65/65 45/45/45 1303 | f 45/45/45 65/65/65 66/66/66 1304 | f 45/45/45 66/66/66 46/46/46 1305 | f 46/46/46 66/66/66 67/67/67 1306 | f 46/46/46 67/67/67 47/47/47 1307 | f 47/47/47 67/67/67 68/68/68 1308 | f 47/47/47 68/68/68 48/48/48 1309 | f 48/48/48 68/68/68 69/69/69 1310 | f 48/48/48 69/69/69 49/49/49 1311 | f 49/49/49 69/69/69 70/70/70 1312 | f 49/49/49 70/70/70 50/50/50 1313 | f 50/50/50 70/70/70 71/71/71 1314 | f 50/50/50 71/71/71 51/51/51 1315 | f 51/51/51 71/71/71 72/72/72 1316 | f 51/51/51 72/72/72 52/52/52 1317 | f 52/52/52 72/72/72 73/73/73 1318 | f 52/52/52 73/73/73 53/53/53 1319 | f 53/53/53 73/73/73 74/74/74 1320 | f 53/53/53 74/74/74 54/54/54 1321 | f 54/54/54 74/74/74 75/75/75 1322 | f 54/54/54 75/75/75 55/55/55 1323 | f 55/55/55 75/75/75 76/76/76 1324 | f 55/55/55 76/76/76 56/56/56 1325 | f 56/56/56 76/76/76 77/77/77 1326 | f 56/56/56 77/77/77 57/57/57 1327 | f 57/57/57 77/77/77 78/78/78 1328 | f 57/57/57 78/78/78 58/58/58 1329 | f 58/58/58 78/78/78 79/79/79 1330 | f 58/58/58 79/79/79 59/59/59 1331 | f 59/59/59 79/79/79 80/80/80 1332 | f 59/59/59 80/80/80 60/60/60 1333 | f 60/60/60 80/80/80 61/61/61 1334 | f 60/60/60 61/61/61 41/41/41 1335 | f 61/61/61 81/81/81 82/82/82 1336 | f 61/61/61 82/82/82 62/62/62 1337 | f 62/62/62 82/82/82 83/83/83 1338 | f 62/62/62 83/83/83 63/63/63 1339 | f 63/63/63 83/83/83 84/84/84 1340 | f 63/63/63 84/84/84 64/64/64 1341 | f 64/64/64 84/84/84 85/85/85 1342 | f 64/64/64 85/85/85 65/65/65 1343 | f 65/65/65 85/85/85 86/86/86 1344 | f 65/65/65 86/86/86 66/66/66 1345 | f 66/66/66 86/86/86 87/87/87 1346 | f 66/66/66 87/87/87 67/67/67 1347 | f 67/67/67 87/87/87 88/88/88 1348 | f 67/67/67 88/88/88 68/68/68 1349 | f 68/68/68 88/88/88 89/89/89 1350 | f 68/68/68 89/89/89 69/69/69 1351 | f 69/69/69 89/89/89 90/90/90 1352 | f 69/69/69 90/90/90 70/70/70 1353 | f 70/70/70 90/90/90 91/91/91 1354 | f 70/70/70 91/91/91 71/71/71 1355 | f 71/71/71 91/91/91 92/92/92 1356 | f 71/71/71 92/92/92 72/72/72 1357 | f 72/72/72 92/92/92 93/93/93 1358 | f 72/72/72 93/93/93 73/73/73 1359 | f 73/73/73 93/93/93 94/94/94 1360 | f 73/73/73 94/94/94 74/74/74 1361 | f 74/74/74 94/94/94 95/95/95 1362 | f 74/74/74 95/95/95 75/75/75 1363 | f 75/75/75 95/95/95 96/96/96 1364 | f 75/75/75 96/96/96 76/76/76 1365 | f 76/76/76 96/96/96 97/97/97 1366 | f 76/76/76 97/97/97 77/77/77 1367 | f 77/77/77 97/97/97 98/98/98 1368 | f 77/77/77 98/98/98 78/78/78 1369 | f 78/78/78 98/98/98 99/99/99 1370 | f 78/78/78 99/99/99 79/79/79 1371 | f 79/79/79 99/99/99 100/100/100 1372 | f 79/79/79 100/100/100 80/80/80 1373 | f 80/80/80 100/100/100 81/81/81 1374 | f 80/80/80 81/81/81 61/61/61 1375 | f 81/81/81 101/101/101 102/102/102 1376 | f 81/81/81 102/102/102 82/82/82 1377 | f 82/82/82 102/102/102 103/103/103 1378 | f 82/82/82 103/103/103 83/83/83 1379 | f 83/83/83 103/103/103 104/104/104 1380 | f 83/83/83 104/104/104 84/84/84 1381 | f 84/84/84 104/104/104 105/105/105 1382 | f 84/84/84 105/105/105 85/85/85 1383 | f 85/85/85 105/105/105 106/106/106 1384 | f 85/85/85 106/106/106 86/86/86 1385 | f 86/86/86 106/106/106 107/107/107 1386 | f 86/86/86 107/107/107 87/87/87 1387 | f 87/87/87 107/107/107 108/108/108 1388 | f 87/87/87 108/108/108 88/88/88 1389 | f 88/88/88 108/108/108 109/109/109 1390 | f 88/88/88 109/109/109 89/89/89 1391 | f 89/89/89 109/109/109 110/110/110 1392 | f 89/89/89 110/110/110 90/90/90 1393 | f 90/90/90 110/110/110 111/111/111 1394 | f 90/90/90 111/111/111 91/91/91 1395 | f 91/91/91 111/111/111 112/112/112 1396 | f 91/91/91 112/112/112 92/92/92 1397 | f 92/92/92 112/112/112 113/113/113 1398 | f 92/92/92 113/113/113 93/93/93 1399 | f 93/93/93 113/113/113 114/114/114 1400 | f 93/93/93 114/114/114 94/94/94 1401 | f 94/94/94 114/114/114 115/115/115 1402 | f 94/94/94 115/115/115 95/95/95 1403 | f 95/95/95 115/115/115 116/116/116 1404 | f 95/95/95 116/116/116 96/96/96 1405 | f 96/96/96 116/116/116 117/117/117 1406 | f 96/96/96 117/117/117 97/97/97 1407 | f 97/97/97 117/117/117 118/118/118 1408 | f 97/97/97 118/118/118 98/98/98 1409 | f 98/98/98 118/118/118 119/119/119 1410 | f 98/98/98 119/119/119 99/99/99 1411 | f 99/99/99 119/119/119 120/120/120 1412 | f 99/99/99 120/120/120 100/100/100 1413 | f 100/100/100 120/120/120 101/101/101 1414 | f 100/100/100 101/101/101 81/81/81 1415 | f 101/101/101 121/121/121 122/122/122 1416 | f 101/101/101 122/122/122 102/102/102 1417 | f 102/102/102 122/122/122 123/123/123 1418 | f 102/102/102 123/123/123 103/103/103 1419 | f 103/103/103 123/123/123 124/124/124 1420 | f 103/103/103 124/124/124 104/104/104 1421 | f 104/104/104 124/124/124 125/125/125 1422 | f 104/104/104 125/125/125 105/105/105 1423 | f 105/105/105 125/125/125 126/126/126 1424 | f 105/105/105 126/126/126 106/106/106 1425 | f 106/106/106 126/126/126 127/127/127 1426 | f 106/106/106 127/127/127 107/107/107 1427 | f 107/107/107 127/127/127 128/128/128 1428 | f 107/107/107 128/128/128 108/108/108 1429 | f 108/108/108 128/128/128 129/129/129 1430 | f 108/108/108 129/129/129 109/109/109 1431 | f 109/109/109 129/129/129 130/130/130 1432 | f 109/109/109 130/130/130 110/110/110 1433 | f 110/110/110 130/130/130 131/131/131 1434 | f 110/110/110 131/131/131 111/111/111 1435 | f 111/111/111 131/131/131 132/132/132 1436 | f 111/111/111 132/132/132 112/112/112 1437 | f 112/112/112 132/132/132 133/133/133 1438 | f 112/112/112 133/133/133 113/113/113 1439 | f 113/113/113 133/133/133 134/134/134 1440 | f 113/113/113 134/134/134 114/114/114 1441 | f 114/114/114 134/134/134 135/135/135 1442 | f 114/114/114 135/135/135 115/115/115 1443 | f 115/115/115 135/135/135 136/136/136 1444 | f 115/115/115 136/136/136 116/116/116 1445 | f 116/116/116 136/136/136 137/137/137 1446 | f 116/116/116 137/137/137 117/117/117 1447 | f 117/117/117 137/137/137 138/138/138 1448 | f 117/117/117 138/138/138 118/118/118 1449 | f 118/118/118 138/138/138 139/139/139 1450 | f 118/118/118 139/139/139 119/119/119 1451 | f 119/119/119 139/139/139 140/140/140 1452 | f 119/119/119 140/140/140 120/120/120 1453 | f 120/120/120 140/140/140 121/121/121 1454 | f 120/120/120 121/121/121 101/101/101 1455 | f 121/121/121 141/141/141 142/142/142 1456 | f 121/121/121 142/142/142 122/122/122 1457 | f 122/122/122 142/142/142 143/143/143 1458 | f 122/122/122 143/143/143 123/123/123 1459 | f 123/123/123 143/143/143 144/144/144 1460 | f 123/123/123 144/144/144 124/124/124 1461 | f 124/124/124 144/144/144 145/145/145 1462 | f 124/124/124 145/145/145 125/125/125 1463 | f 125/125/125 145/145/145 146/146/146 1464 | f 125/125/125 146/146/146 126/126/126 1465 | f 126/126/126 146/146/146 147/147/147 1466 | f 126/126/126 147/147/147 127/127/127 1467 | f 127/127/127 147/147/147 148/148/148 1468 | f 127/127/127 148/148/148 128/128/128 1469 | f 128/128/128 148/148/148 149/149/149 1470 | f 128/128/128 149/149/149 129/129/129 1471 | f 129/129/129 149/149/149 150/150/150 1472 | f 129/129/129 150/150/150 130/130/130 1473 | f 130/130/130 150/150/150 151/151/151 1474 | f 130/130/130 151/151/151 131/131/131 1475 | f 131/131/131 151/151/151 152/152/152 1476 | f 131/131/131 152/152/152 132/132/132 1477 | f 132/132/132 152/152/152 153/153/153 1478 | f 132/132/132 153/153/153 133/133/133 1479 | f 133/133/133 153/153/153 154/154/154 1480 | f 133/133/133 154/154/154 134/134/134 1481 | f 134/134/134 154/154/154 155/155/155 1482 | f 134/134/134 155/155/155 135/135/135 1483 | f 135/135/135 155/155/155 156/156/156 1484 | f 135/135/135 156/156/156 136/136/136 1485 | f 136/136/136 156/156/156 157/157/157 1486 | f 136/136/136 157/157/157 137/137/137 1487 | f 137/137/137 157/157/157 158/158/158 1488 | f 137/137/137 158/158/158 138/138/138 1489 | f 138/138/138 158/158/158 159/159/159 1490 | f 138/138/138 159/159/159 139/139/139 1491 | f 139/139/139 159/159/159 160/160/160 1492 | f 139/139/139 160/160/160 140/140/140 1493 | f 140/140/140 160/160/160 141/141/141 1494 | f 140/140/140 141/141/141 121/121/121 1495 | f 141/141/141 161/161/161 162/162/162 1496 | f 141/141/141 162/162/162 142/142/142 1497 | f 142/142/142 162/162/162 163/163/163 1498 | f 142/142/142 163/163/163 143/143/143 1499 | f 143/143/143 163/163/163 164/164/164 1500 | f 143/143/143 164/164/164 144/144/144 1501 | f 144/144/144 164/164/164 165/165/165 1502 | f 144/144/144 165/165/165 145/145/145 1503 | f 145/145/145 165/165/165 166/166/166 1504 | f 145/145/145 166/166/166 146/146/146 1505 | f 146/146/146 166/166/166 167/167/167 1506 | f 146/146/146 167/167/167 147/147/147 1507 | f 147/147/147 167/167/167 168/168/168 1508 | f 147/147/147 168/168/168 148/148/148 1509 | f 148/148/148 168/168/168 169/169/169 1510 | f 148/148/148 169/169/169 149/149/149 1511 | f 149/149/149 169/169/169 170/170/170 1512 | f 149/149/149 170/170/170 150/150/150 1513 | f 150/150/150 170/170/170 171/171/171 1514 | f 150/150/150 171/171/171 151/151/151 1515 | f 151/151/151 171/171/171 172/172/172 1516 | f 151/151/151 172/172/172 152/152/152 1517 | f 152/152/152 172/172/172 173/173/173 1518 | f 152/152/152 173/173/173 153/153/153 1519 | f 153/153/153 173/173/173 174/174/174 1520 | f 153/153/153 174/174/174 154/154/154 1521 | f 154/154/154 174/174/174 175/175/175 1522 | f 154/154/154 175/175/175 155/155/155 1523 | f 155/155/155 175/175/175 176/176/176 1524 | f 155/155/155 176/176/176 156/156/156 1525 | f 156/156/156 176/176/176 177/177/177 1526 | f 156/156/156 177/177/177 157/157/157 1527 | f 157/157/157 177/177/177 178/178/178 1528 | f 157/157/157 178/178/178 158/158/158 1529 | f 158/158/158 178/178/178 179/179/179 1530 | f 158/158/158 179/179/179 159/159/159 1531 | f 159/159/159 179/179/179 180/180/180 1532 | f 159/159/159 180/180/180 160/160/160 1533 | f 160/160/160 180/180/180 161/161/161 1534 | f 160/160/160 161/161/161 141/141/141 1535 | f 161/161/161 181/181/181 182/182/182 1536 | f 161/161/161 182/182/182 162/162/162 1537 | f 162/162/162 182/182/182 183/183/183 1538 | f 162/162/162 183/183/183 163/163/163 1539 | f 163/163/163 183/183/183 184/184/184 1540 | f 163/163/163 184/184/184 164/164/164 1541 | f 164/164/164 184/184/184 185/185/185 1542 | f 164/164/164 185/185/185 165/165/165 1543 | f 165/165/165 185/185/185 186/186/186 1544 | f 165/165/165 186/186/186 166/166/166 1545 | f 166/166/166 186/186/186 187/187/187 1546 | f 166/166/166 187/187/187 167/167/167 1547 | f 167/167/167 187/187/187 188/188/188 1548 | f 167/167/167 188/188/188 168/168/168 1549 | f 168/168/168 188/188/188 189/189/189 1550 | f 168/168/168 189/189/189 169/169/169 1551 | f 169/169/169 189/189/189 190/190/190 1552 | f 169/169/169 190/190/190 170/170/170 1553 | f 170/170/170 190/190/190 191/191/191 1554 | f 170/170/170 191/191/191 171/171/171 1555 | f 171/171/171 191/191/191 192/192/192 1556 | f 171/171/171 192/192/192 172/172/172 1557 | f 172/172/172 192/192/192 193/193/193 1558 | f 172/172/172 193/193/193 173/173/173 1559 | f 173/173/173 193/193/193 194/194/194 1560 | f 173/173/173 194/194/194 174/174/174 1561 | f 174/174/174 194/194/194 195/195/195 1562 | f 174/174/174 195/195/195 175/175/175 1563 | f 175/175/175 195/195/195 196/196/196 1564 | f 175/175/175 196/196/196 176/176/176 1565 | f 176/176/176 196/196/196 197/197/197 1566 | f 176/176/176 197/197/197 177/177/177 1567 | f 177/177/177 197/197/197 198/198/198 1568 | f 177/177/177 198/198/198 178/178/178 1569 | f 178/178/178 198/198/198 199/199/199 1570 | f 178/178/178 199/199/199 179/179/179 1571 | f 179/179/179 199/199/199 200/200/200 1572 | f 179/179/179 200/200/200 180/180/180 1573 | f 180/180/180 200/200/200 181/181/181 1574 | f 180/180/180 181/181/181 161/161/161 1575 | f 181/181/181 201/201/201 182/182/182 1576 | f 182/182/182 201/201/201 183/183/183 1577 | f 183/183/183 201/201/201 184/184/184 1578 | f 184/184/184 201/201/201 185/185/185 1579 | f 185/185/185 201/201/201 186/186/186 1580 | f 186/186/186 201/201/201 187/187/187 1581 | f 187/187/187 201/201/201 188/188/188 1582 | f 188/188/188 201/201/201 189/189/189 1583 | f 189/189/189 201/201/201 190/190/190 1584 | f 190/190/190 201/201/201 191/191/191 1585 | f 191/191/191 201/201/201 192/192/192 1586 | f 192/192/192 201/201/201 193/193/193 1587 | f 193/193/193 201/201/201 194/194/194 1588 | f 194/194/194 201/201/201 195/195/195 1589 | f 195/195/195 201/201/201 196/196/196 1590 | f 196/196/196 201/201/201 197/197/197 1591 | f 197/197/197 201/201/201 198/198/198 1592 | f 198/198/198 201/201/201 199/199/199 1593 | f 199/199/199 201/201/201 200/200/200 1594 | f 200/200/200 201/201/201 181/181/181 1595 | f 202/202/202 203/203/203 223/204/223 1596 | f 202/202/202 223/204/223 222/205/222 1597 | f 203/203/203 204/206/204 224/207/224 1598 | f 203/203/203 224/207/224 223/204/223 1599 | f 204/206/204 205/208/205 225/209/225 1600 | f 204/206/204 225/209/225 224/207/224 1601 | f 205/208/205 206/210/206 226/211/226 1602 | f 205/208/205 226/211/226 225/209/225 1603 | f 206/210/206 207/212/207 227/213/227 1604 | f 206/210/206 227/213/227 226/211/226 1605 | f 207/212/207 208/214/208 228/215/228 1606 | f 207/212/207 228/215/228 227/213/227 1607 | f 208/214/208 209/216/209 229/217/229 1608 | f 208/214/208 229/217/229 228/215/228 1609 | f 209/216/209 210/218/210 230/219/230 1610 | f 209/216/209 230/219/230 229/217/229 1611 | f 210/218/210 211/220/211 231/221/231 1612 | f 210/218/210 231/221/231 230/219/230 1613 | f 211/220/211 212/222/212 232/223/232 1614 | f 211/220/211 232/223/232 231/221/231 1615 | f 212/222/212 213/224/213 233/225/233 1616 | f 212/222/212 233/225/233 232/223/232 1617 | f 213/224/213 214/226/214 234/227/234 1618 | f 213/224/213 234/227/234 233/225/233 1619 | f 214/226/214 215/228/215 235/229/235 1620 | f 214/226/214 235/229/235 234/227/234 1621 | f 215/228/215 216/230/216 236/231/236 1622 | f 215/228/215 236/231/236 235/229/235 1623 | f 216/230/216 217/232/217 237/233/237 1624 | f 216/230/216 237/233/237 236/231/236 1625 | f 217/232/217 218/234/218 238/235/238 1626 | f 217/232/217 238/235/238 237/233/237 1627 | f 218/234/218 219/236/219 239/237/239 1628 | f 218/234/218 239/237/239 238/235/238 1629 | f 219/236/219 220/238/220 240/239/240 1630 | f 219/236/219 240/239/240 239/237/239 1631 | f 220/238/220 221/240/221 241/241/241 1632 | f 220/238/220 241/241/241 240/239/240 1633 | f 221/240/221 202/202/202 222/205/222 1634 | f 221/240/221 222/205/222 241/241/241 1635 | f 222/205/222 223/204/223 243/242/243 1636 | f 222/205/222 243/242/243 242/243/242 1637 | f 223/204/223 224/207/224 244/244/244 1638 | f 223/204/223 244/244/244 243/242/243 1639 | f 224/207/224 225/209/225 245/245/245 1640 | f 224/207/224 245/245/245 244/244/244 1641 | f 225/209/225 226/211/226 246/246/246 1642 | f 225/209/225 246/246/246 245/245/245 1643 | f 226/211/226 227/213/227 247/247/247 1644 | f 226/211/226 247/247/247 246/246/246 1645 | f 227/213/227 228/215/228 248/248/248 1646 | f 227/213/227 248/248/248 247/247/247 1647 | f 228/215/228 229/217/229 249/249/249 1648 | f 228/215/228 249/249/249 248/248/248 1649 | f 229/217/229 230/219/230 250/250/250 1650 | f 229/217/229 250/250/250 249/249/249 1651 | f 230/219/230 231/221/231 251/251/251 1652 | f 230/219/230 251/251/251 250/250/250 1653 | f 231/221/231 232/223/232 252/252/252 1654 | f 231/221/231 252/252/252 251/251/251 1655 | f 232/223/232 233/225/233 253/253/253 1656 | f 232/223/232 253/253/253 252/252/252 1657 | f 233/225/233 234/227/234 254/254/254 1658 | f 233/225/233 254/254/254 253/253/253 1659 | f 234/227/234 235/229/235 255/255/255 1660 | f 234/227/234 255/255/255 254/254/254 1661 | f 235/229/235 236/231/236 256/256/256 1662 | f 235/229/235 256/256/256 255/255/255 1663 | f 236/231/236 237/233/237 257/257/257 1664 | f 236/231/236 257/257/257 256/256/256 1665 | f 237/233/237 238/235/238 258/258/258 1666 | f 237/233/237 258/258/258 257/257/257 1667 | f 238/235/238 239/237/239 259/259/259 1668 | f 238/235/238 259/259/259 258/258/258 1669 | f 239/237/239 240/239/240 260/260/260 1670 | f 239/237/239 260/260/260 259/259/259 1671 | f 240/239/240 241/241/241 261/261/261 1672 | f 240/239/240 261/261/261 260/260/260 1673 | f 241/241/241 222/205/222 242/243/242 1674 | f 241/241/241 242/243/242 261/261/261 1675 | f 242/243/242 243/242/243 263/262/263 1676 | f 242/243/242 263/262/263 262/263/262 1677 | f 243/242/243 244/244/244 264/264/264 1678 | f 243/242/243 264/264/264 263/262/263 1679 | f 244/244/244 245/245/245 265/265/265 1680 | f 244/244/244 265/265/265 264/264/264 1681 | f 245/245/245 246/246/246 266/266/266 1682 | f 245/245/245 266/266/266 265/265/265 1683 | f 246/246/246 247/247/247 267/267/267 1684 | f 246/246/246 267/267/267 266/266/266 1685 | f 247/247/247 248/248/248 268/268/268 1686 | f 247/247/247 268/268/268 267/267/267 1687 | f 248/248/248 249/249/249 269/269/269 1688 | f 248/248/248 269/269/269 268/268/268 1689 | f 249/249/249 250/250/250 270/270/270 1690 | f 249/249/249 270/270/270 269/269/269 1691 | f 250/250/250 251/251/251 271/271/271 1692 | f 250/250/250 271/271/271 270/270/270 1693 | f 251/251/251 252/252/252 272/272/272 1694 | f 251/251/251 272/272/272 271/271/271 1695 | f 252/252/252 253/253/253 273/273/273 1696 | f 252/252/252 273/273/273 272/272/272 1697 | f 253/253/253 254/254/254 274/274/274 1698 | f 253/253/253 274/274/274 273/273/273 1699 | f 254/254/254 255/255/255 275/275/275 1700 | f 254/254/254 275/275/275 274/274/274 1701 | f 255/255/255 256/256/256 276/276/276 1702 | f 255/255/255 276/276/276 275/275/275 1703 | f 256/256/256 257/257/257 277/277/277 1704 | f 256/256/256 277/277/277 276/276/276 1705 | f 257/257/257 258/258/258 278/278/278 1706 | f 257/257/257 278/278/278 277/277/277 1707 | f 258/258/258 259/259/259 279/279/279 1708 | f 258/258/258 279/279/279 278/278/278 1709 | f 259/259/259 260/260/260 280/280/280 1710 | f 259/259/259 280/280/280 279/279/279 1711 | f 260/260/260 261/261/261 281/281/281 1712 | f 260/260/260 281/281/281 280/280/280 1713 | f 261/261/261 242/243/242 262/263/262 1714 | f 261/261/261 262/263/262 281/281/281 1715 | f 262/263/262 263/262/263 283/282/283 1716 | f 262/263/262 283/282/283 282/283/282 1717 | f 263/262/263 264/264/264 284/284/284 1718 | f 263/262/263 284/284/284 283/282/283 1719 | f 264/264/264 265/265/265 285/285/285 1720 | f 264/264/264 285/285/285 284/284/284 1721 | f 265/265/265 266/266/266 286/286/286 1722 | f 265/265/265 286/286/286 285/285/285 1723 | f 266/266/266 267/267/267 287/287/287 1724 | f 266/266/266 287/287/287 286/286/286 1725 | f 267/267/267 268/268/268 288/288/288 1726 | f 267/267/267 288/288/288 287/287/287 1727 | f 268/268/268 269/269/269 289/289/289 1728 | f 268/268/268 289/289/289 288/288/288 1729 | f 269/269/269 270/270/270 290/290/290 1730 | f 269/269/269 290/290/290 289/289/289 1731 | f 270/270/270 271/271/271 291/291/291 1732 | f 270/270/270 291/291/291 290/290/290 1733 | f 271/271/271 272/272/272 292/292/292 1734 | f 271/271/271 292/292/292 291/291/291 1735 | f 272/272/272 273/273/273 293/293/293 1736 | f 272/272/272 293/293/293 292/292/292 1737 | f 273/273/273 274/274/274 294/294/294 1738 | f 273/273/273 294/294/294 293/293/293 1739 | f 274/274/274 275/275/275 295/295/295 1740 | f 274/274/274 295/295/295 294/294/294 1741 | f 275/275/275 276/276/276 296/296/296 1742 | f 275/275/275 296/296/296 295/295/295 1743 | f 276/276/276 277/277/277 297/297/297 1744 | f 276/276/276 297/297/297 296/296/296 1745 | f 277/277/277 278/278/278 298/298/298 1746 | f 277/277/277 298/298/298 297/297/297 1747 | f 278/278/278 279/279/279 299/299/299 1748 | f 278/278/278 299/299/299 298/298/298 1749 | f 279/279/279 280/280/280 300/300/300 1750 | f 279/279/279 300/300/300 299/299/299 1751 | f 280/280/280 281/281/281 301/301/301 1752 | f 280/280/280 301/301/301 300/300/300 1753 | f 281/281/281 262/263/262 282/283/282 1754 | f 281/281/281 282/283/282 301/301/301 1755 | f 282/283/282 283/282/283 303/302/303 1756 | f 282/283/282 303/302/303 302/303/302 1757 | f 283/282/283 284/284/284 304/304/304 1758 | f 283/282/283 304/304/304 303/302/303 1759 | f 284/284/284 285/285/285 305/305/305 1760 | f 284/284/284 305/305/305 304/304/304 1761 | f 285/285/285 286/286/286 306/306/306 1762 | f 285/285/285 306/306/306 305/305/305 1763 | f 286/286/286 287/287/287 307/307/307 1764 | f 286/286/286 307/307/307 306/306/306 1765 | f 287/287/287 288/288/288 308/308/308 1766 | f 287/287/287 308/308/308 307/307/307 1767 | f 288/288/288 289/289/289 309/309/309 1768 | f 288/288/288 309/309/309 308/308/308 1769 | f 289/289/289 290/290/290 310/310/310 1770 | f 289/289/289 310/310/310 309/309/309 1771 | f 290/290/290 291/291/291 311/311/311 1772 | f 290/290/290 311/311/311 310/310/310 1773 | f 291/291/291 292/292/292 312/312/312 1774 | f 291/291/291 312/312/312 311/311/311 1775 | f 292/292/292 293/293/293 313/313/313 1776 | f 292/292/292 313/313/313 312/312/312 1777 | f 293/293/293 294/294/294 314/314/314 1778 | f 293/293/293 314/314/314 313/313/313 1779 | f 294/294/294 295/295/295 315/315/315 1780 | f 294/294/294 315/315/315 314/314/314 1781 | f 295/295/295 296/296/296 316/316/316 1782 | f 295/295/295 316/316/316 315/315/315 1783 | f 296/296/296 297/297/297 317/317/317 1784 | f 296/296/296 317/317/317 316/316/316 1785 | f 297/297/297 298/298/298 318/318/318 1786 | f 297/297/297 318/318/318 317/317/317 1787 | f 298/298/298 299/299/299 319/319/319 1788 | f 298/298/298 319/319/319 318/318/318 1789 | f 299/299/299 300/300/300 320/320/320 1790 | f 299/299/299 320/320/320 319/319/319 1791 | f 300/300/300 301/301/301 321/321/321 1792 | f 300/300/300 321/321/321 320/320/320 1793 | f 301/301/301 282/283/282 302/303/302 1794 | f 301/301/301 302/303/302 321/321/321 1795 | f 302/303/302 303/302/303 323/322/323 1796 | f 302/303/302 323/322/323 322/323/322 1797 | f 303/302/303 304/304/304 324/324/324 1798 | f 303/302/303 324/324/324 323/322/323 1799 | f 304/304/304 305/305/305 325/325/325 1800 | f 304/304/304 325/325/325 324/324/324 1801 | f 305/305/305 306/306/306 326/326/326 1802 | f 305/305/305 326/326/326 325/325/325 1803 | f 306/306/306 307/307/307 327/327/327 1804 | f 306/306/306 327/327/327 326/326/326 1805 | f 307/307/307 308/308/308 328/328/328 1806 | f 307/307/307 328/328/328 327/327/327 1807 | f 308/308/308 309/309/309 329/329/329 1808 | f 308/308/308 329/329/329 328/328/328 1809 | f 309/309/309 310/310/310 330/330/330 1810 | f 309/309/309 330/330/330 329/329/329 1811 | f 310/310/310 311/311/311 331/331/331 1812 | f 310/310/310 331/331/331 330/330/330 1813 | f 311/311/311 312/312/312 332/332/332 1814 | f 311/311/311 332/332/332 331/331/331 1815 | f 312/312/312 313/313/313 333/333/333 1816 | f 312/312/312 333/333/333 332/332/332 1817 | f 313/313/313 314/314/314 334/334/334 1818 | f 313/313/313 334/334/334 333/333/333 1819 | f 314/314/314 315/315/315 335/335/335 1820 | f 314/314/314 335/335/335 334/334/334 1821 | f 315/315/315 316/316/316 336/336/336 1822 | f 315/315/315 336/336/336 335/335/335 1823 | f 316/316/316 317/317/317 337/337/337 1824 | f 316/316/316 337/337/337 336/336/336 1825 | f 317/317/317 318/318/318 338/338/338 1826 | f 317/317/317 338/338/338 337/337/337 1827 | f 318/318/318 319/319/319 339/339/339 1828 | f 318/318/318 339/339/339 338/338/338 1829 | f 319/319/319 320/320/320 340/340/340 1830 | f 319/319/319 340/340/340 339/339/339 1831 | f 320/320/320 321/321/321 341/341/341 1832 | f 320/320/320 341/341/341 340/340/340 1833 | f 321/321/321 302/303/302 322/323/322 1834 | f 321/321/321 322/323/322 341/341/341 1835 | f 322/323/322 323/322/323 343/342/343 1836 | f 322/323/322 343/342/343 342/343/342 1837 | f 323/322/323 324/324/324 344/344/344 1838 | f 323/322/323 344/344/344 343/342/343 1839 | f 324/324/324 325/325/325 345/345/345 1840 | f 324/324/324 345/345/345 344/344/344 1841 | f 325/325/325 326/326/326 346/346/346 1842 | f 325/325/325 346/346/346 345/345/345 1843 | f 326/326/326 327/327/327 347/347/347 1844 | f 326/326/326 347/347/347 346/346/346 1845 | f 327/327/327 328/328/328 348/348/348 1846 | f 327/327/327 348/348/348 347/347/347 1847 | f 328/328/328 329/329/329 349/349/349 1848 | f 328/328/328 349/349/349 348/348/348 1849 | f 329/329/329 330/330/330 350/350/350 1850 | f 329/329/329 350/350/350 349/349/349 1851 | f 330/330/330 331/331/331 351/351/351 1852 | f 330/330/330 351/351/351 350/350/350 1853 | f 331/331/331 332/332/332 352/352/352 1854 | f 331/331/331 352/352/352 351/351/351 1855 | f 332/332/332 333/333/333 353/353/353 1856 | f 332/332/332 353/353/353 352/352/352 1857 | f 333/333/333 334/334/334 354/354/354 1858 | f 333/333/333 354/354/354 353/353/353 1859 | f 334/334/334 335/335/335 355/355/355 1860 | f 334/334/334 355/355/355 354/354/354 1861 | f 335/335/335 336/336/336 356/356/356 1862 | f 335/335/335 356/356/356 355/355/355 1863 | f 336/336/336 337/337/337 357/357/357 1864 | f 336/336/336 357/357/357 356/356/356 1865 | f 337/337/337 338/338/338 358/358/358 1866 | f 337/337/337 358/358/358 357/357/357 1867 | f 338/338/338 339/339/339 359/359/359 1868 | f 338/338/338 359/359/359 358/358/358 1869 | f 339/339/339 340/340/340 360/360/360 1870 | f 339/339/339 360/360/360 359/359/359 1871 | f 340/340/340 341/341/341 361/361/361 1872 | f 340/340/340 361/361/361 360/360/360 1873 | f 341/341/341 322/323/322 342/343/342 1874 | f 341/341/341 342/343/342 361/361/361 1875 | f 342/343/342 343/342/343 363/362/363 1876 | f 342/343/342 363/362/363 362/363/362 1877 | f 343/342/343 344/344/344 364/364/364 1878 | f 343/342/343 364/364/364 363/362/363 1879 | f 344/344/344 345/345/345 365/365/365 1880 | f 344/344/344 365/365/365 364/364/364 1881 | f 345/345/345 346/346/346 366/366/366 1882 | f 345/345/345 366/366/366 365/365/365 1883 | f 346/346/346 347/347/347 367/367/367 1884 | f 346/346/346 367/367/367 366/366/366 1885 | f 347/347/347 348/348/348 368/368/368 1886 | f 347/347/347 368/368/368 367/367/367 1887 | f 348/348/348 349/349/349 369/369/369 1888 | f 348/348/348 369/369/369 368/368/368 1889 | f 349/349/349 350/350/350 370/370/370 1890 | f 349/349/349 370/370/370 369/369/369 1891 | f 350/350/350 351/351/351 371/371/371 1892 | f 350/350/350 371/371/371 370/370/370 1893 | f 351/351/351 352/352/352 372/372/372 1894 | f 351/351/351 372/372/372 371/371/371 1895 | f 352/352/352 353/353/353 373/373/373 1896 | f 352/352/352 373/373/373 372/372/372 1897 | f 353/353/353 354/354/354 374/374/374 1898 | f 353/353/353 374/374/374 373/373/373 1899 | f 354/354/354 355/355/355 375/375/375 1900 | f 354/354/354 375/375/375 374/374/374 1901 | f 355/355/355 356/356/356 376/376/376 1902 | f 355/355/355 376/376/376 375/375/375 1903 | f 356/356/356 357/357/357 377/377/377 1904 | f 356/356/356 377/377/377 376/376/376 1905 | f 357/357/357 358/358/358 378/378/378 1906 | f 357/357/357 378/378/378 377/377/377 1907 | f 358/358/358 359/359/359 379/379/379 1908 | f 358/358/358 379/379/379 378/378/378 1909 | f 359/359/359 360/360/360 380/380/380 1910 | f 359/359/359 380/380/380 379/379/379 1911 | f 360/360/360 361/361/361 381/381/381 1912 | f 360/360/360 381/381/381 380/380/380 1913 | f 361/361/361 342/343/342 362/363/362 1914 | f 361/361/361 362/363/362 381/381/381 1915 | f 362/363/362 363/362/363 383/382/383 1916 | f 362/363/362 383/382/383 382/383/382 1917 | f 363/362/363 364/364/364 384/384/384 1918 | f 363/362/363 384/384/384 383/382/383 1919 | f 364/364/364 365/365/365 385/385/385 1920 | f 364/364/364 385/385/385 384/384/384 1921 | f 365/365/365 366/366/366 386/386/386 1922 | f 365/365/365 386/386/386 385/385/385 1923 | f 366/366/366 367/367/367 387/387/387 1924 | f 366/366/366 387/387/387 386/386/386 1925 | f 367/367/367 368/368/368 388/388/388 1926 | f 367/367/367 388/388/388 387/387/387 1927 | f 368/368/368 369/369/369 389/389/389 1928 | f 368/368/368 389/389/389 388/388/388 1929 | f 369/369/369 370/370/370 390/390/390 1930 | f 369/369/369 390/390/390 389/389/389 1931 | f 370/370/370 371/371/371 391/391/391 1932 | f 370/370/370 391/391/391 390/390/390 1933 | f 371/371/371 372/372/372 392/392/392 1934 | f 371/371/371 392/392/392 391/391/391 1935 | f 372/372/372 373/373/373 393/393/393 1936 | f 372/372/372 393/393/393 392/392/392 1937 | f 373/373/373 374/374/374 394/394/394 1938 | f 373/373/373 394/394/394 393/393/393 1939 | f 374/374/374 375/375/375 395/395/395 1940 | f 374/374/374 395/395/395 394/394/394 1941 | f 375/375/375 376/376/376 396/396/396 1942 | f 375/375/375 396/396/396 395/395/395 1943 | f 376/376/376 377/377/377 397/397/397 1944 | f 376/376/376 397/397/397 396/396/396 1945 | f 377/377/377 378/378/378 398/398/398 1946 | f 377/377/377 398/398/398 397/397/397 1947 | f 378/378/378 379/379/379 399/399/399 1948 | f 378/378/378 399/399/399 398/398/398 1949 | f 379/379/379 380/380/380 400/400/400 1950 | f 379/379/379 400/400/400 399/399/399 1951 | f 380/380/380 381/381/381 401/401/401 1952 | f 380/380/380 401/401/401 400/400/400 1953 | f 381/381/381 362/363/362 382/383/382 1954 | f 381/381/381 382/383/382 401/401/401 1955 | f 382/383/382 383/382/383 402/402/402 1956 | f 383/382/383 384/384/384 402/402/402 1957 | f 384/384/384 385/385/385 402/402/402 1958 | f 385/385/385 386/386/386 402/402/402 1959 | f 386/386/386 387/387/387 402/402/402 1960 | f 387/387/387 388/388/388 402/402/402 1961 | f 388/388/388 389/389/389 402/402/402 1962 | f 389/389/389 390/390/390 402/402/402 1963 | f 390/390/390 391/391/391 402/402/402 1964 | f 391/391/391 392/392/392 402/402/402 1965 | f 392/392/392 393/393/393 402/402/402 1966 | f 393/393/393 394/394/394 402/402/402 1967 | f 394/394/394 395/395/395 402/402/402 1968 | f 395/395/395 396/396/396 402/402/402 1969 | f 396/396/396 397/397/397 402/402/402 1970 | f 397/397/397 398/398/398 402/402/402 1971 | f 398/398/398 399/399/399 402/402/402 1972 | f 399/399/399 400/400/400 402/402/402 1973 | f 400/400/400 401/401/401 402/402/402 1974 | f 401/401/401 382/383/382 402/402/402 1975 | # 760 faces 1976 | 1977 | g 1978 | -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_outer_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_outer_diffuse.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_outer_gloss.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_outer_gloss.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_outer_nm.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_outer_nm.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_outer_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_outer_nm_tangent.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_eye_outer_spec.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_eye_outer_spec.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_nm.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_nm.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_nm_tangent.tga -------------------------------------------------------------------------------- /obj/african_head/african_head_spec.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/african_head/african_head_spec.tga -------------------------------------------------------------------------------- /obj/african_head/readme.txt: -------------------------------------------------------------------------------- 1 | Male african head example (c) 2007. Vidar Rapp 2 | http://vidarrapp.se/ 3 | 4 | ===================================================== 5 | 6 | From: Vidar Rapp 7 | To: Dmitry Sokolov 8 | Subject: Re: african head model 9 | Date: Sat, 10 Dec 2011 22:59:48 +0100 10 | 11 | Hey Dmitry, 12 | 13 | Please feel free to use the model (specified below) as an example in 14 | your renderer. 15 | 16 | I hope you get a lot of use out of it. 17 | 18 | All the best, 19 | Vidar 20 | 21 | -------------------------------------------------------------------------------- /obj/boggie/body_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/body_diffuse.tga -------------------------------------------------------------------------------- /obj/boggie/body_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/body_nm_tangent.tga -------------------------------------------------------------------------------- /obj/boggie/body_spec.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/body_spec.tga -------------------------------------------------------------------------------- /obj/boggie/eyes_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/eyes_diffuse.tga -------------------------------------------------------------------------------- /obj/boggie/eyes_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/eyes_nm_tangent.tga -------------------------------------------------------------------------------- /obj/boggie/eyes_spec.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/eyes_spec.tga -------------------------------------------------------------------------------- /obj/boggie/head_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/head_diffuse.tga -------------------------------------------------------------------------------- /obj/boggie/head_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/head_nm_tangent.tga -------------------------------------------------------------------------------- /obj/boggie/head_spec.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/boggie/head_spec.tga -------------------------------------------------------------------------------- /obj/boggie/readme.txt: -------------------------------------------------------------------------------- 1 | model by Bojana Nedeljković 2 | http://fogmann.com/ 3 | 4 | Permission to use in this educational project granted 6 february 2015 5 | 6 | -------------------------------------------------------------------------------- /obj/diablo3_pose/diablo3_pose_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/diablo3_pose/diablo3_pose_diffuse.tga -------------------------------------------------------------------------------- /obj/diablo3_pose/diablo3_pose_glow.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/diablo3_pose/diablo3_pose_glow.tga -------------------------------------------------------------------------------- /obj/diablo3_pose/diablo3_pose_nm.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/diablo3_pose/diablo3_pose_nm.tga -------------------------------------------------------------------------------- /obj/diablo3_pose/diablo3_pose_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/diablo3_pose/diablo3_pose_nm_tangent.tga -------------------------------------------------------------------------------- /obj/diablo3_pose/diablo3_pose_spec.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/diablo3_pose/diablo3_pose_spec.tga -------------------------------------------------------------------------------- /obj/diablo3_pose/readme.txt: -------------------------------------------------------------------------------- 1 | Credits to Samuel (arshlevon) Sharit 2 | --- 3 | 4 | Date: Tue, 27 Jan 2015 19:24:30 -0800 5 | From: Samuel Sharit 6 | To: Dmitry Sokolov 7 | Subject: Re: diablo posing 8 | 9 | Go for it! 10 | 11 | [cut] 12 | 13 | -------------------------------------------------------------------------------- /obj/floor.obj: -------------------------------------------------------------------------------- 1 | v -1 -1 -1 2 | v 1 -1 -1 3 | v 1 -1 1 4 | v -1 -1 1 5 | 6 | vt 0 0 7 | vt 1 0 8 | vt 1 1 9 | vt 0 1 10 | 11 | vn 0 1 0 12 | 13 | f 3/3/1 2/2/1 1/1/1 14 | f 4/4/1 3/3/1 1/1/1 15 | 16 | -------------------------------------------------------------------------------- /obj/floor_diffuse.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/floor_diffuse.tga -------------------------------------------------------------------------------- /obj/floor_nm_tangent.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/floor_nm_tangent.tga -------------------------------------------------------------------------------- /obj/floor_spec.tga: -------------------------------------------------------------------------------- 1 | 2 | TRUEVISION-XFILE. -------------------------------------------------------------------------------- /obj/grid.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ssloy/tinyrenderer/41db15aaf41c536ba3170593453ce3b8526afcc6/obj/grid.tga -------------------------------------------------------------------------------- /our_gl.cpp: -------------------------------------------------------------------------------- 1 | #include "our_gl.h" 2 | 3 | mat<4,4> ModelView; 4 | mat<4,4> Viewport; 5 | mat<4,4> Projection; 6 | 7 | void viewport(const int x, const int y, const int w, const int h) { 8 | Viewport = {{{w/2., 0, 0, x+w/2.}, {0, h/2., 0, y+h/2.}, {0,0,1,0}, {0,0,0,1}}}; 9 | } 10 | 11 | void projection(const double f) { // check https://en.wikipedia.org/wiki/Camera_matrix 12 | Projection = {{{1,0,0,0}, {0,-1,0,0}, {0,0,1,0}, {0,0,-1/f,0}}}; 13 | } 14 | 15 | void lookat(const vec3 eye, const vec3 center, const vec3 up) { // check https://github.com/ssloy/tinyrenderer/wiki/Lesson-5-Moving-the-camera 16 | vec3 z = normalized(center-eye); 17 | vec3 x = normalized(cross(up,z)); 18 | vec3 y = normalized(cross(z, x)); 19 | ModelView = mat<4,4>{{{x.x,x.y,x.z,0}, {y.x,y.y,y.z,0}, {z.x,z.y,z.z,0}, {0,0,0,1}}} * 20 | mat<4,4>{{{1,0,0,-eye.x}, {0,1,0,-eye.y}, {0,0,1,-eye.z}, {0,0,0,1}}}; 21 | } 22 | 23 | vec3 barycentric(const vec2 tri[3], const vec2 P) { 24 | mat<3,3> ABC = {{ {tri[0].x, tri[0].y, 1.}, {tri[1].x, tri[1].y, 1.}, {tri[2].x, tri[2].y, 1.} }}; 25 | if (ABC.det()<1) return {-1,1,1}; // for a degenerate triangle generate negative coordinates, it will be thrown away by the rasterizator 26 | return ABC.invert_transpose() * vec3{P.x, P.y, 1.}; 27 | } 28 | 29 | void rasterize(const vec4 clip_verts[3], const IShader &shader, TGAImage &image, std::vector &zbuffer) { 30 | vec4 pts [3] = { Viewport*clip_verts[0], Viewport*clip_verts[1], Viewport*clip_verts[2] }; // screen coordinates before persp. division 31 | vec2 pts2[3] = { (pts[0]/pts[0].w).xy(), (pts[1]/pts[1].w).xy(), (pts[2]/pts[2].w).xy() }; // screen coordinates after perps. division 32 | 33 | int bbminx = std::max(0, static_cast(std::min(std::min(pts2[0].x, pts2[1].x), pts2[2].x))); // bounding box for the triangle 34 | int bbminy = std::max(0, static_cast(std::min(std::min(pts2[0].y, pts2[1].y), pts2[2].y))); // clipped by the screen 35 | int bbmaxx = std::min(image.width() -1, static_cast(std::max(std::max(pts2[0].x, pts2[1].x), pts2[2].x))); 36 | int bbmaxy = std::min(image.height()-1, static_cast(std::max(std::max(pts2[0].y, pts2[1].y), pts2[2].y))); 37 | #pragma omp parallel for 38 | for (int x=bbminx; x<=bbmaxx; x++) { // rasterize the bounding box 39 | for (int y=bbminy; y<=bbmaxy; y++) { 40 | vec3 bc_screen = barycentric(pts2, {static_cast(x), static_cast(y)}); 41 | vec3 bc_clip = { bc_screen.x/pts[0].w, bc_screen.y/pts[1].w, bc_screen.z/pts[2].w }; // check https://github.com/ssloy/tinyrenderer/wiki/Technical-difficulties-linear-interpolation-with-perspective-deformations 42 | bc_clip = bc_clip / (bc_clip.x + bc_clip.y + bc_clip.z); 43 | double frag_depth = bc_clip * vec3{ clip_verts[0].z, clip_verts[1].z, clip_verts[2].z }; 44 | if (bc_screen.x<0 || bc_screen.y<0 || bc_screen.z<0 || frag_depth > zbuffer[x+y*image.width()]) continue; 45 | TGAColor color; 46 | if (shader.fragment(bc_clip, color)) continue; // fragment shader can discard current fragment 47 | zbuffer[x+y*image.width()] = frag_depth; 48 | image.set(x, y, color); 49 | } 50 | } 51 | } 52 | 53 | -------------------------------------------------------------------------------- /our_gl.h: -------------------------------------------------------------------------------- 1 | #include "tgaimage.h" 2 | #include "geometry.h" 3 | 4 | void viewport(const int x, const int y, const int w, const int h); 5 | void projection(const double coeff=0); // coeff = -1/c 6 | void lookat(const vec3 eye, const vec3 center, const vec3 up); 7 | 8 | struct IShader { 9 | static TGAColor sample2D(const TGAImage &img, const vec2 &uvf) { 10 | return img.get(uvf[0] * img.width(), uvf[1] * img.height()); 11 | } 12 | virtual bool fragment(const vec3 bar, TGAColor &color) const = 0; 13 | }; 14 | 15 | void rasterize(const vec4 clip_verts[3], const IShader &shader, TGAImage &image, std::vector &zbuffer); 16 | 17 | -------------------------------------------------------------------------------- /tgaimage.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include "tgaimage.h" 4 | 5 | TGAImage::TGAImage(const int w, const int h, const int bpp) : w(w), h(h), bpp(bpp), data(w*h*bpp, 0) {} 6 | 7 | bool TGAImage::read_tga_file(const std::string filename) { 8 | std::ifstream in; 9 | in.open(filename, std::ios::binary); 10 | if (!in.is_open()) { 11 | std::cerr << "can't open file " << filename << "\n"; 12 | return false; 13 | } 14 | TGAHeader header; 15 | in.read(reinterpret_cast(&header), sizeof(header)); 16 | if (!in.good()) { 17 | std::cerr << "an error occured while reading the header\n"; 18 | return false; 19 | } 20 | w = header.width; 21 | h = header.height; 22 | bpp = header.bitsperpixel>>3; 23 | if (w<=0 || h<=0 || (bpp!=GRAYSCALE && bpp!=RGB && bpp!=RGBA)) { 24 | std::cerr << "bad bpp (or width/height) value\n"; 25 | return false; 26 | } 27 | size_t nbytes = bpp*w*h; 28 | data = std::vector(nbytes, 0); 29 | if (3==header.datatypecode || 2==header.datatypecode) { 30 | in.read(reinterpret_cast(data.data()), nbytes); 31 | if (!in.good()) { 32 | std::cerr << "an error occured while reading the data\n"; 33 | return false; 34 | } 35 | } else if (10==header.datatypecode||11==header.datatypecode) { 36 | if (!load_rle_data(in)) { 37 | std::cerr << "an error occured while reading the data\n"; 38 | return false; 39 | } 40 | } else { 41 | std::cerr << "unknown file format " << (int)header.datatypecode << "\n"; 42 | return false; 43 | } 44 | if (!(header.imagedescriptor & 0x20)) 45 | flip_vertically(); 46 | if (header.imagedescriptor & 0x10) 47 | flip_horizontally(); 48 | std::cerr << w << "x" << h << "/" << bpp*8 << "\n"; 49 | return true; 50 | } 51 | 52 | bool TGAImage::load_rle_data(std::ifstream &in) { 53 | size_t pixelcount = w*h; 54 | size_t currentpixel = 0; 55 | size_t currentbyte = 0; 56 | TGAColor colorbuffer; 57 | do { 58 | std::uint8_t chunkheader = 0; 59 | chunkheader = in.get(); 60 | if (!in.good()) { 61 | std::cerr << "an error occured while reading the data\n"; 62 | return false; 63 | } 64 | if (chunkheader<128) { 65 | chunkheader++; 66 | for (int i=0; i(colorbuffer.bgra), bpp); 68 | if (!in.good()) { 69 | std::cerr << "an error occured while reading the header\n"; 70 | return false; 71 | } 72 | for (int t=0; tpixelcount) { 76 | std::cerr << "Too many pixels read\n"; 77 | return false; 78 | } 79 | } 80 | } else { 81 | chunkheader -= 127; 82 | in.read(reinterpret_cast(colorbuffer.bgra), bpp); 83 | if (!in.good()) { 84 | std::cerr << "an error occured while reading the header\n"; 85 | return false; 86 | } 87 | for (int i=0; ipixelcount) { 92 | std::cerr << "Too many pixels read\n"; 93 | return false; 94 | } 95 | } 96 | } 97 | } while (currentpixel < pixelcount); 98 | return true; 99 | } 100 | 101 | bool TGAImage::write_tga_file(const std::string filename, const bool vflip, const bool rle) const { 102 | constexpr std::uint8_t developer_area_ref[4] = {0, 0, 0, 0}; 103 | constexpr std::uint8_t extension_area_ref[4] = {0, 0, 0, 0}; 104 | constexpr std::uint8_t footer[18] = {'T','R','U','E','V','I','S','I','O','N','-','X','F','I','L','E','.','\0'}; 105 | std::ofstream out; 106 | out.open(filename, std::ios::binary); 107 | if (!out.is_open()) { 108 | std::cerr << "can't open file " << filename << "\n"; 109 | return false; 110 | } 111 | TGAHeader header = {}; 112 | header.bitsperpixel = bpp<<3; 113 | header.width = w; 114 | header.height = h; 115 | header.datatypecode = (bpp==GRAYSCALE ? (rle?11:3) : (rle?10:2)); 116 | header.imagedescriptor = vflip ? 0x00 : 0x20; // top-left or bottom-left origin 117 | out.write(reinterpret_cast(&header), sizeof(header)); 118 | if (!out.good()) goto err; 119 | if (!rle) { 120 | out.write(reinterpret_cast(data.data()), w*h*bpp); 121 | if (!out.good()) goto err; 122 | } else if (!unload_rle_data(out)) goto err; 123 | out.write(reinterpret_cast(developer_area_ref), sizeof(developer_area_ref)); 124 | if (!out.good()) goto err; 125 | out.write(reinterpret_cast(extension_area_ref), sizeof(extension_area_ref)); 126 | if (!out.good()) goto err; 127 | out.write(reinterpret_cast(footer), sizeof(footer)); 128 | if (!out.good()) goto err; 129 | return true; 130 | err: 131 | std::cerr << "can't dump the tga file\n"; 132 | return false; 133 | } 134 | 135 | bool TGAImage::unload_rle_data(std::ofstream &out) const { 136 | const std::uint8_t max_chunk_length = 128; 137 | size_t npixels = w*h; 138 | size_t curpix = 0; 139 | while (curpix(data.data()+chunkstart), (raw?run_length*bpp:bpp)); 163 | if (!out.good()) return false; 164 | } 165 | return true; 166 | } 167 | 168 | TGAColor TGAImage::get(const int x, const int y) const { 169 | if (!data.size() || x<0 || y<0 || x>=w || y>=h) return {}; 170 | TGAColor ret = {0, 0, 0, 0, bpp}; 171 | const std::uint8_t *p = data.data()+(x+y*w)*bpp; 172 | for (int i=bpp; i--; ret.bgra[i] = p[i]); 173 | return ret; 174 | } 175 | 176 | void TGAImage::set(int x, int y, const TGAColor &c) { 177 | if (!data.size() || x<0 || y<0 || x>=w || y>=h) return; 178 | memcpy(data.data()+(x+y*w)*bpp, c.bgra, bpp); 179 | } 180 | 181 | void TGAImage::flip_horizontally() { 182 | for (int i=0; i 3 | #include 4 | #include 5 | 6 | #pragma pack(push,1) 7 | struct TGAHeader { 8 | std::uint8_t idlength = 0; 9 | std::uint8_t colormaptype = 0; 10 | std::uint8_t datatypecode = 0; 11 | std::uint16_t colormaporigin = 0; 12 | std::uint16_t colormaplength = 0; 13 | std::uint8_t colormapdepth = 0; 14 | std::uint16_t x_origin = 0; 15 | std::uint16_t y_origin = 0; 16 | std::uint16_t width = 0; 17 | std::uint16_t height = 0; 18 | std::uint8_t bitsperpixel = 0; 19 | std::uint8_t imagedescriptor = 0; 20 | }; 21 | #pragma pack(pop) 22 | 23 | struct TGAColor { 24 | std::uint8_t bgra[4] = {0,0,0,0}; 25 | std::uint8_t bytespp = 4; 26 | std::uint8_t& operator[](const int i) { return bgra[i]; } 27 | }; 28 | 29 | struct TGAImage { 30 | enum Format { GRAYSCALE=1, RGB=3, RGBA=4 }; 31 | TGAImage() = default; 32 | TGAImage(const int w, const int h, const int bpp); 33 | bool read_tga_file(const std::string filename); 34 | bool write_tga_file(const std::string filename, const bool vflip=true, const bool rle=true) const; 35 | void flip_horizontally(); 36 | void flip_vertically(); 37 | TGAColor get(const int x, const int y) const; 38 | void set(const int x, const int y, const TGAColor &c); 39 | int width() const; 40 | int height() const; 41 | private: 42 | bool load_rle_data(std::ifstream &in); 43 | bool unload_rle_data(std::ofstream &out) const; 44 | int w = 0, h = 0; 45 | std::uint8_t bpp = 0; 46 | std::vector data = {}; 47 | }; 48 | 49 | --------------------------------------------------------------------------------