├── .gitmodules ├── CMakeLists.txt ├── LICENSE ├── Readme.md ├── assimp2json ├── cencode.c ├── cencode.h ├── json_exporter.cpp ├── main.cpp ├── mesh_splitter.cpp ├── mesh_splitter.h └── version.h.in └── samples ├── Animated.x ├── Animated.x.assimp.json ├── COLLADA.dae ├── Collada.dae.assimp.json ├── EmbeddedTexture.blend ├── EmbeddedTexture.blend.assimp.json ├── spider.mtl ├── spider.obj ├── spider.obj.assimp.json ├── teapots.DAE └── teapots.dae.assimp.json /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "assimp"] 2 | path = assimp 3 | url = git://github.com/assimp/assimp.git 4 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.6) 2 | project (assimp2json) 3 | 4 | # The version number. 5 | set (ASSIMP2JSON_VERSION_MAJOR 2) 6 | set (ASSIMP2JSON_VERSION_MINOR 0) 7 | 8 | set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules") 9 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin) 10 | 11 | # configure a header file to pass some of the CMake settings 12 | # to the source code 13 | configure_file ( 14 | "${PROJECT_SOURCE_DIR}/assimp2json/version.h.in" 15 | "${PROJECT_SOURCE_DIR}/assimp2json/version.h" 16 | ) 17 | 18 | set ( ASSIMP_BUILD_ASSIMP_TOOLS OFF CACHE BOOL 19 | "If the supplementary tools for Assimp are built in addition to the library." 20 | ) 21 | 22 | add_subdirectory (assimp) 23 | set (EXTRA_LIBS ${EXTRA_LIBS} assimp) 24 | 25 | include_directories("assimp/include") 26 | 27 | add_executable(assimp2json assimp2json/main.cpp assimp2json/json_exporter.cpp assimp2json/cencode.c assimp2json/mesh_splitter.h assimp2json/mesh_splitter.cpp) 28 | target_link_libraries (assimp2json ${EXTRA_LIBS}) 29 | 30 | if( MSVC_IDE ) 31 | add_custom_command( 32 | TARGET assimp2json 33 | POST_BUILD 34 | COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/assimp/code/$(ConfigurationName)/assimp.dll ${CMAKE_BINARY_DIR}/$(ConfigurationName)/assimp.dll 35 | ) 36 | endif( MSVC_IDE ) 37 | 38 | INSTALL( TARGETS assimp2json 39 | LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR} 40 | RUNTIME DESTINATION ${ASSIMP_BIN_INSTALL_DIR}) 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Assimp2Json - Assimp-to-Json command-line converter 2 | 3 | Copyright (c) 2013, Alexander Christoph Gessler 4 | All rights reserved. 5 | 6 | Redistribution and use of this software in source and binary forms, 7 | with or without modification, are permitted provided that the 8 | following conditions are met: 9 | 10 | * Redistributions of source code must retain the above 11 | copyright notice, this list of conditions and the 12 | following disclaimer. 13 | 14 | * Redistributions in binary form must reproduce the above 15 | copyright notice, this list of conditions and the 16 | following disclaimer in the documentation and/or other 17 | materials provided with the distribution. 18 | 19 | * Neither the name of the ASSIMP team, nor the names of its 20 | contributors may be used to endorse or promote products 21 | derived from this software without specific prior 22 | written permission of the ASSIMP Development Team. 23 | 24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 25 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 26 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 27 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 28 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 29 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 30 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 31 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 32 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 33 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 34 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 35 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | assimp2json 2 | ======== 3 | 4 | #### JSON exporter for Open Asset Import Library #### 5 | 6 | Convert files in 40+ 3D file formats, including __Collada, 3DS, OBJ, LWO, FBX, Blender, X, STL, PLY, MS3D, B3D, MD3, MDL, DXF__ and __IFC__ to plain `json`. 7 | 8 | [__Convert models online here__.](http://www.greentoken.de/onlineconv/) (Select JSON as output format) 9 | 10 | [__Download Windows binaries here__.](https://github.com/acgessler/assimp2json/releases) (_v2.0, October 2013_) 11 | 12 | ![quak](http://s21.postimg.org/nu1bfiobr/dwarf22.png) 13 | 14 | ### Introduction ### 15 | 16 | `assimp2json` is a command line tool designed to expose the import capabilities of `assimp`, the [Open Asset Import Library](http://assimp.sourceforge.net) to WebGl developers. The tool takes a single 3d model as input file, imports it using `assimp` and converts the result to `json`. 17 | 18 | `assimp2json` is platform-independent, its only dependency is `assimp` itself. 19 | 20 | ### Output Format ### 21 | 22 | The output format is a one-by-one translation of [Assimp's C datastructure](http://assimp.sourceforge.net/lib_html/structai_scene.html) , with a few changes to make the resulting `json` look more natural. All fields are lower-case and the prefixes (such as m, pc, ..) are omitted. Array lengths are not written as this information is implicitly given. Empty arrays are not written at all, i.e. a node without children doesn't have an empty `children:[]` field. 23 | 24 | The `/samples` folder contains some sample `assimp.json` files. 25 | 26 | `assimp.json` files carry a little format header in the JSON root element. This allows them to be disambiguated from other JSON-based 3D formats (such as Three.JS scenes). The numeric value specifies the assimp2json format version in (major, minor, revision) format. Currently, only 100 is defined. 27 | 28 | "__metadata__": { 29 | "format" : "assimp2json" 30 | ,"version": 100 31 | } 32 | 33 | ### Build ### 34 | 35 | The build system for assimp2json is CMake. To build, use either the CMake GUI or the CMake command line utility. __Note__: make sure you pulled the `assimp` submodule, i.e. with `git submodule init && git submodule update` 36 | 37 | ### Usage ### 38 | 39 | ``` 40 | $ assimp2json [flags] input_file [output_file] 41 | ``` 42 | 43 | (omit the `output_file` argument to get the `json` string on stdout) 44 | 45 | Invoke `assimp2json` with no arguments for detailed information. 46 | 47 | ### Future Plans ### 48 | 49 | I plan to build a proper content pipeline for WebGl assets based on assimp, assimp2json, possibly OpenCTM, WebP and Crunch/DXT to be able to preprocess 3D assets and their textures for fast streaming. Stay tuned, or drop me a note if you want to help out. 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /assimp2json/cencode.c: -------------------------------------------------------------------------------- 1 | /* 2 | cencoder.c - c source to a base64 encoding algorithm implementation 3 | 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #include "cencode.h" // changed from 9 | 10 | const int CHARS_PER_LINE = 72; 11 | 12 | void base64_init_encodestate(base64_encodestate* state_in) 13 | { 14 | state_in->step = step_A; 15 | state_in->result = 0; 16 | state_in->stepcount = 0; 17 | } 18 | 19 | char base64_encode_value(char value_in) 20 | { 21 | static const char* encoding = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 22 | if (value_in > 63) return '='; 23 | return encoding[(int)value_in]; 24 | } 25 | 26 | int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in) 27 | { 28 | const char* plainchar = plaintext_in; 29 | const char* const plaintextend = plaintext_in + length_in; 30 | char* codechar = code_out; 31 | char result; 32 | char fragment; 33 | 34 | result = state_in->result; 35 | 36 | switch (state_in->step) 37 | { 38 | while (1) 39 | { 40 | case step_A: 41 | if (plainchar == plaintextend) 42 | { 43 | state_in->result = result; 44 | state_in->step = step_A; 45 | return codechar - code_out; 46 | } 47 | fragment = *plainchar++; 48 | result = (fragment & 0x0fc) >> 2; 49 | *codechar++ = base64_encode_value(result); 50 | result = (fragment & 0x003) << 4; 51 | case step_B: 52 | if (plainchar == plaintextend) 53 | { 54 | state_in->result = result; 55 | state_in->step = step_B; 56 | return codechar - code_out; 57 | } 58 | fragment = *plainchar++; 59 | result |= (fragment & 0x0f0) >> 4; 60 | *codechar++ = base64_encode_value(result); 61 | result = (fragment & 0x00f) << 2; 62 | case step_C: 63 | if (plainchar == plaintextend) 64 | { 65 | state_in->result = result; 66 | state_in->step = step_C; 67 | return codechar - code_out; 68 | } 69 | fragment = *plainchar++; 70 | result |= (fragment & 0x0c0) >> 6; 71 | *codechar++ = base64_encode_value(result); 72 | result = (fragment & 0x03f) >> 0; 73 | *codechar++ = base64_encode_value(result); 74 | 75 | ++(state_in->stepcount); 76 | if (state_in->stepcount == CHARS_PER_LINE/4) 77 | { 78 | *codechar++ = '\n'; 79 | state_in->stepcount = 0; 80 | } 81 | } 82 | } 83 | /* control should not reach here */ 84 | return codechar - code_out; 85 | } 86 | 87 | int base64_encode_blockend(char* code_out, base64_encodestate* state_in) 88 | { 89 | char* codechar = code_out; 90 | 91 | switch (state_in->step) 92 | { 93 | case step_B: 94 | *codechar++ = base64_encode_value(state_in->result); 95 | *codechar++ = '='; 96 | *codechar++ = '='; 97 | break; 98 | case step_C: 99 | *codechar++ = base64_encode_value(state_in->result); 100 | *codechar++ = '='; 101 | break; 102 | case step_A: 103 | break; 104 | } 105 | *codechar++ = '\n'; 106 | 107 | return codechar - code_out; 108 | } 109 | 110 | -------------------------------------------------------------------------------- /assimp2json/cencode.h: -------------------------------------------------------------------------------- 1 | /* 2 | cencode.h - c header for a base64 encoding algorithm 3 | 4 | This is part of the libb64 project, and has been placed in the public domain. 5 | For details, see http://sourceforge.net/projects/libb64 6 | */ 7 | 8 | #ifndef BASE64_CENCODE_H 9 | #define BASE64_CENCODE_H 10 | 11 | typedef enum 12 | { 13 | step_A, step_B, step_C 14 | } base64_encodestep; 15 | 16 | typedef struct 17 | { 18 | base64_encodestep step; 19 | char result; 20 | int stepcount; 21 | } base64_encodestate; 22 | 23 | void base64_init_encodestate(base64_encodestate* state_in); 24 | 25 | char base64_encode_value(char value_in); 26 | 27 | int base64_encode_block(const char* plaintext_in, int length_in, char* code_out, base64_encodestate* state_in); 28 | 29 | int base64_encode_blockend(char* code_out, base64_encodestate* state_in); 30 | 31 | #endif /* BASE64_CENCODE_H */ 32 | -------------------------------------------------------------------------------- /assimp2json/json_exporter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Assimp2Json 3 | Copyright (c) 2011, Alexander C. Gessler 4 | 5 | Licensed under a 3-clause BSD license. See the LICENSE file for more information. 6 | 7 | */ 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | 20 | #define CURRENT_FORMAT_VERSION 100 21 | 22 | // grab scoped_ptr from assimp to avoid a dependency on boost. 23 | #include 24 | 25 | #include "mesh_splitter.h" 26 | 27 | 28 | extern "C" { 29 | #include "cencode.h" 30 | } 31 | 32 | namespace { 33 | void Assimp2Json(const char*, Assimp::IOSystem*, const aiScene*, const Assimp::ExportProperties*); 34 | } 35 | 36 | Assimp::Exporter::ExportFormatEntry Assimp2Json_desc = Assimp::Exporter::ExportFormatEntry( 37 | "assimp.json", 38 | "Plain JSON representation of the Assimp scene data structure", 39 | "assimp.json", 40 | Assimp2Json, 41 | 0u); 42 | 43 | namespace { 44 | 45 | 46 | // small utility class to simplify serializing the aiScene to Json 47 | class JSONWriter 48 | { 49 | 50 | public: 51 | 52 | enum { 53 | Flag_DoNotIndent = 0x1, 54 | Flag_WriteSpecialFloats = 0x2, 55 | }; 56 | 57 | public: 58 | 59 | JSONWriter(Assimp::IOStream& out, unsigned int flags = 0u) 60 | : out(out) 61 | , first() 62 | , flags(flags) 63 | { 64 | // make sure that all formatting happens using the standard, C locale and not the user's current locale 65 | buff.imbue( std::locale("C") ); 66 | } 67 | 68 | ~JSONWriter() 69 | { 70 | Flush(); 71 | } 72 | 73 | public: 74 | 75 | void Flush() { 76 | const std::string s = buff.str(); 77 | out.Write(s.c_str(),s.length(),1); 78 | buff.clear(); 79 | } 80 | 81 | void PushIndent() { 82 | indent += '\t'; 83 | } 84 | 85 | void PopIndent() { 86 | indent.erase(indent.end()-1); 87 | } 88 | 89 | void Key(const std::string& name) { 90 | AddIndentation(); 91 | Delimit(); 92 | buff << '\"'+name+"\": "; 93 | } 94 | 95 | template 96 | void Element(const Literal& name) { 97 | AddIndentation(); 98 | Delimit(); 99 | 100 | LiteralToString(buff, name) << '\n'; 101 | } 102 | 103 | template 104 | void SimpleValue(const Literal& s) { 105 | LiteralToString(buff, s) << '\n'; 106 | } 107 | 108 | 109 | void SimpleValue(const void* buffer, size_t len) { 110 | base64_encodestate s; 111 | base64_init_encodestate(&s); 112 | 113 | char* const out = new char[std::max(len*2, static_cast(16u))]; 114 | const int n = base64_encode_block(reinterpret_cast( buffer ), static_cast( len ),out,&s); 115 | out[n+base64_encode_blockend(out + n,&s)] = '\0'; 116 | 117 | // base64 encoding may add newlines, but JSON strings may not contain 'real' newlines 118 | // (only escaped ones). Remove any newlines in out. 119 | for(char* cur = out; *cur; ++cur) { 120 | if(*cur == '\n') { 121 | *cur = ' '; 122 | } 123 | } 124 | 125 | 126 | buff << '\"' << out << "\"\n"; 127 | delete[] out; 128 | } 129 | 130 | void StartObj(bool is_element = false) { 131 | // if this appears as a plain array element, we need to insert a delimiter and we should also indent it 132 | if(is_element) { 133 | AddIndentation(); 134 | if(!first) { 135 | buff << ','; 136 | } 137 | } 138 | first = true; 139 | buff << "{\n"; 140 | PushIndent(); 141 | } 142 | 143 | void EndObj() { 144 | PopIndent(); 145 | AddIndentation(); 146 | first = false; 147 | buff << "}\n"; 148 | } 149 | 150 | void StartArray(bool is_element = false) { 151 | // if this appears as a plain array element, we need to insert a delimiter and we should also indent it 152 | if(is_element) { 153 | AddIndentation(); 154 | if(!first) { 155 | buff << ','; 156 | } 157 | } 158 | first = true; 159 | buff << "[\n"; 160 | PushIndent(); 161 | } 162 | 163 | void EndArray() { 164 | PopIndent(); 165 | AddIndentation(); 166 | buff << "]\n"; 167 | first = false; 168 | } 169 | 170 | void AddIndentation() { 171 | if(!(flags & Flag_DoNotIndent)) { 172 | buff << indent; 173 | } 174 | } 175 | 176 | void Delimit() { 177 | if(!first) { 178 | buff << ','; 179 | } 180 | else { 181 | buff << ' '; 182 | first = false; 183 | } 184 | } 185 | 186 | private: 187 | 188 | template 189 | std::stringstream& LiteralToString(std::stringstream& stream, const Literal& s) { 190 | stream << s; 191 | return stream; 192 | } 193 | 194 | std::stringstream& LiteralToString(std::stringstream& stream, const aiString& s) { 195 | std::string t; 196 | 197 | // escape backslashes and single quotes, both would render the JSON invalid if left as is 198 | t.reserve(s.length); 199 | for(size_t i = 0; i < s.length; ++i) { 200 | 201 | if (s.data[i] == '\\' || s.data[i] == '\'' || s.data[i] == '\"') { 202 | t.push_back('\\'); 203 | } 204 | 205 | t.push_back(s.data[i]); 206 | } 207 | stream << "\""; 208 | stream << t; 209 | stream << "\""; 210 | return stream; 211 | } 212 | 213 | std::stringstream& LiteralToString(std::stringstream& stream, float f) { 214 | if (!std::numeric_limits::is_iec559) { 215 | // on a non IEEE-754 platform, we make no assumptions about the representation or existence 216 | // of special floating-point numbers. 217 | stream << f; 218 | return stream; 219 | } 220 | 221 | // JSON does not support writing Inf/Nan 222 | // [RFC 4672: "Numeric values that cannot be represented as sequences of digits 223 | // (such as Infinity and NaN) are not permitted."] 224 | // Nevertheless, many parsers will accept the special keywords Infinity, -Infinity and NaN 225 | if (std::numeric_limits::infinity() == fabs(f)) { 226 | if (flags & Flag_WriteSpecialFloats) { 227 | stream << (f < 0 ? "\"-" : "\"") + std::string( "Infinity\"" ); 228 | return stream; 229 | } 230 | // we should print this warning, but we can't - this is called from within a generic assimp exporter, we cannot use cerr 231 | // std::cerr << "warning: cannot represent infinite number literal, substituting 0 instead (use -i flag to enforce Infinity/NaN)" << std::endl; 232 | stream << "0.0"; 233 | return stream; 234 | } 235 | // f!=f is the most reliable test for NaNs that I know of 236 | else if (f != f) { 237 | if (flags & Flag_WriteSpecialFloats) { 238 | stream << "\"NaN\""; 239 | return stream; 240 | } 241 | // we should print this warning, but we can't - this is called from within a generic assimp exporter, we cannot use cerr 242 | // std::cerr << "warning: cannot represent infinite number literal, substituting 0 instead (use -i flag to enforce Infinity/NaN)" << std::endl; 243 | stream << "0.0"; 244 | return stream; 245 | } 246 | 247 | stream << f; 248 | return stream; 249 | } 250 | 251 | private: 252 | Assimp::IOStream& out; 253 | std::string indent, newline; 254 | std::stringstream buff; 255 | bool first; 256 | 257 | unsigned int flags; 258 | }; 259 | 260 | 261 | void Write(JSONWriter& out, const aiVector3D& ai, bool is_elem = true) 262 | { 263 | out.StartArray(is_elem); 264 | out.Element(ai.x); 265 | out.Element(ai.y); 266 | out.Element(ai.z); 267 | out.EndArray(); 268 | } 269 | 270 | void Write(JSONWriter& out, const aiQuaternion& ai, bool is_elem = true) 271 | { 272 | out.StartArray(is_elem); 273 | out.Element(ai.w); 274 | out.Element(ai.x); 275 | out.Element(ai.y); 276 | out.Element(ai.z); 277 | out.EndArray(); 278 | } 279 | 280 | void Write(JSONWriter& out, const aiColor3D& ai, bool is_elem = true) 281 | { 282 | out.StartArray(is_elem); 283 | out.Element(ai.r); 284 | out.Element(ai.g); 285 | out.Element(ai.b); 286 | out.EndArray(); 287 | } 288 | 289 | void Write(JSONWriter& out, const aiMatrix4x4& ai, bool is_elem = true) 290 | { 291 | out.StartArray(is_elem); 292 | for(unsigned int x = 0; x < 4; ++x) { 293 | for(unsigned int y = 0; y < 4; ++y) { 294 | out.Element(ai[x][y]); 295 | } 296 | } 297 | out.EndArray(); 298 | } 299 | 300 | void Write(JSONWriter& out, const aiBone& ai, bool is_elem = true) 301 | { 302 | out.StartObj(is_elem); 303 | 304 | out.Key("name"); 305 | out.SimpleValue(ai.mName); 306 | 307 | out.Key("offsetmatrix"); 308 | Write(out,ai.mOffsetMatrix,false); 309 | 310 | out.Key("weights"); 311 | out.StartArray(); 312 | for(unsigned int i = 0; i < ai.mNumWeights; ++i) { 313 | out.StartArray(true); 314 | out.Element(ai.mWeights[i].mVertexId); 315 | out.Element(ai.mWeights[i].mWeight); 316 | out.EndArray(); 317 | } 318 | out.EndArray(); 319 | out.EndObj(); 320 | } 321 | 322 | 323 | void Write(JSONWriter& out, const aiFace& ai, bool is_elem = true) 324 | { 325 | out.StartArray(is_elem); 326 | for(unsigned int i = 0; i < ai.mNumIndices; ++i) { 327 | out.Element(ai.mIndices[i]); 328 | } 329 | out.EndArray(); 330 | } 331 | 332 | 333 | void Write(JSONWriter& out, const aiMesh& ai, bool is_elem = true) 334 | { 335 | out.StartObj(is_elem); 336 | 337 | out.Key("name"); 338 | out.SimpleValue(ai.mName); 339 | 340 | out.Key("materialindex"); 341 | out.SimpleValue(ai.mMaterialIndex); 342 | 343 | out.Key("primitivetypes"); 344 | out.SimpleValue(ai.mPrimitiveTypes); 345 | 346 | out.Key("vertices"); 347 | out.StartArray(); 348 | for(unsigned int i = 0; i < ai.mNumVertices; ++i) { 349 | out.Element(ai.mVertices[i].x); 350 | out.Element(ai.mVertices[i].y); 351 | out.Element(ai.mVertices[i].z); 352 | } 353 | out.EndArray(); 354 | 355 | if(ai.HasNormals()) { 356 | out.Key("normals"); 357 | out.StartArray(); 358 | for(unsigned int i = 0; i < ai.mNumVertices; ++i) { 359 | out.Element(ai.mNormals[i].x); 360 | out.Element(ai.mNormals[i].y); 361 | out.Element(ai.mNormals[i].z); 362 | } 363 | out.EndArray(); 364 | } 365 | 366 | if(ai.HasTangentsAndBitangents()) { 367 | out.Key("tangents"); 368 | out.StartArray(); 369 | for(unsigned int i = 0; i < ai.mNumVertices; ++i) { 370 | out.Element(ai.mTangents[i].x); 371 | out.Element(ai.mTangents[i].y); 372 | out.Element(ai.mTangents[i].z); 373 | } 374 | out.EndArray(); 375 | 376 | out.Key("bitangents"); 377 | out.StartArray(); 378 | for(unsigned int i = 0; i < ai.mNumVertices; ++i) { 379 | out.Element(ai.mBitangents[i].x); 380 | out.Element(ai.mBitangents[i].y); 381 | out.Element(ai.mBitangents[i].z); 382 | } 383 | out.EndArray(); 384 | } 385 | 386 | if(ai.GetNumUVChannels()) { 387 | out.Key("numuvcomponents"); 388 | out.StartArray(); 389 | for(unsigned int n = 0; n < ai.GetNumUVChannels(); ++n) { 390 | out.Element(ai.mNumUVComponents[n]); 391 | } 392 | out.EndArray(); 393 | 394 | out.Key("texturecoords"); 395 | out.StartArray(); 396 | for(unsigned int n = 0; n < ai.GetNumUVChannels(); ++n) { 397 | 398 | const unsigned int numc = ai.mNumUVComponents[n] ? ai.mNumUVComponents[n] : 2; 399 | 400 | out.StartArray(true); 401 | for(unsigned int i = 0; i < ai.mNumVertices; ++i) { 402 | for(unsigned int c = 0; c < numc; ++c) { 403 | out.Element(ai.mTextureCoords[n][i][c]); 404 | } 405 | } 406 | out.EndArray(); 407 | } 408 | out.EndArray(); 409 | } 410 | 411 | if(ai.GetNumColorChannels()) { 412 | out.Key("colors"); 413 | out.StartArray(); 414 | for(unsigned int n = 0; n < ai.GetNumColorChannels(); ++n) { 415 | 416 | out.StartArray(true); 417 | for(unsigned int i = 0; i < ai.mNumVertices; ++i) { 418 | out.Element(ai.mColors[n][i].r); 419 | out.Element(ai.mColors[n][i].g); 420 | out.Element(ai.mColors[n][i].b); 421 | out.Element(ai.mColors[n][i].a); 422 | } 423 | out.EndArray(); 424 | } 425 | out.EndArray(); 426 | } 427 | 428 | if(ai.mNumBones) { 429 | out.Key("bones"); 430 | out.StartArray(); 431 | for(unsigned int n = 0; n < ai.mNumBones; ++n) { 432 | Write(out, *ai.mBones[n]); 433 | } 434 | out.EndArray(); 435 | } 436 | 437 | 438 | out.Key("faces"); 439 | out.StartArray(); 440 | for(unsigned int n = 0; n < ai.mNumFaces; ++n) { 441 | Write(out, ai.mFaces[n]); 442 | } 443 | out.EndArray(); 444 | 445 | out.EndObj(); 446 | } 447 | 448 | 449 | void Write(JSONWriter& out, const aiNode& ai, bool is_elem = true) 450 | { 451 | out.StartObj(is_elem); 452 | 453 | out.Key("name"); 454 | out.SimpleValue(ai.mName); 455 | 456 | out.Key("transformation"); 457 | Write(out,ai.mTransformation,false); 458 | 459 | if(ai.mNumMeshes) { 460 | out.Key("meshes"); 461 | out.StartArray(); 462 | for(unsigned int n = 0; n < ai.mNumMeshes; ++n) { 463 | out.Element(ai.mMeshes[n]); 464 | } 465 | out.EndArray(); 466 | } 467 | 468 | if(ai.mNumChildren) { 469 | out.Key("children"); 470 | out.StartArray(); 471 | for(unsigned int n = 0; n < ai.mNumChildren; ++n) { 472 | Write(out,*ai.mChildren[n]); 473 | } 474 | out.EndArray(); 475 | } 476 | 477 | out.EndObj(); 478 | } 479 | 480 | void Write(JSONWriter& out, const aiMaterial& ai, bool is_elem = true) 481 | { 482 | out.StartObj(is_elem); 483 | 484 | out.Key("properties"); 485 | out.StartArray(); 486 | for(unsigned int i = 0; i < ai.mNumProperties; ++i) { 487 | const aiMaterialProperty* const prop = ai.mProperties[i]; 488 | out.StartObj(true); 489 | out.Key("key"); 490 | out.SimpleValue(prop->mKey); 491 | out.Key("semantic"); 492 | out.SimpleValue(prop->mSemantic); 493 | out.Key("index"); 494 | out.SimpleValue(prop->mIndex); 495 | 496 | out.Key("type"); 497 | out.SimpleValue(prop->mType); 498 | 499 | out.Key("value"); 500 | switch(prop->mType) 501 | { 502 | case aiPTI_Float: 503 | if(prop->mDataLength/sizeof(float) > 1) { 504 | out.StartArray(); 505 | for(unsigned int i = 0; i < prop->mDataLength/sizeof(float); ++i) { 506 | out.Element(reinterpret_cast(prop->mData)[i]); 507 | } 508 | out.EndArray(); 509 | } 510 | else { 511 | out.SimpleValue(*reinterpret_cast(prop->mData)); 512 | } 513 | break; 514 | 515 | case aiPTI_Integer: 516 | if(prop->mDataLength/sizeof(int) > 1) { 517 | out.StartArray(); 518 | for(unsigned int i = 0; i < prop->mDataLength/sizeof(int); ++i) { 519 | out.Element(reinterpret_cast(prop->mData)[i]); 520 | } 521 | out.EndArray(); 522 | } 523 | else { 524 | out.SimpleValue(*reinterpret_cast(prop->mData)); 525 | } 526 | break; 527 | case aiPTI_String: 528 | { 529 | aiString s; 530 | aiGetMaterialString(&ai,prop->mKey.data,prop->mSemantic,prop->mIndex,&s); 531 | out.SimpleValue(s); 532 | } 533 | break; 534 | case aiPTI_Buffer: 535 | { 536 | // binary data is written as series of hex-encoded octets 537 | out.SimpleValue(prop->mData,prop->mDataLength); 538 | } 539 | break; 540 | default: 541 | assert(false); 542 | } 543 | 544 | out.EndObj(); 545 | } 546 | 547 | out.EndArray(); 548 | out.EndObj(); 549 | } 550 | 551 | void Write(JSONWriter& out, const aiTexture& ai, bool is_elem = true) 552 | { 553 | out.StartObj(is_elem); 554 | 555 | out.Key("width"); 556 | out.SimpleValue(ai.mWidth); 557 | 558 | out.Key("height"); 559 | out.SimpleValue(ai.mHeight); 560 | 561 | out.Key("formathint"); 562 | out.SimpleValue(aiString(ai.achFormatHint)); 563 | 564 | out.Key("data"); 565 | if(!ai.mHeight) { 566 | out.SimpleValue(ai.pcData,ai.mWidth); 567 | } 568 | else { 569 | out.StartArray(); 570 | for(unsigned int y = 0; y < ai.mHeight; ++y) { 571 | out.StartArray(true); 572 | for(unsigned int x = 0; x < ai.mWidth; ++x) { 573 | const aiTexel& tx = ai.pcData[y*ai.mWidth+x]; 574 | out.StartArray(true); 575 | out.Element(static_cast(tx.r)); 576 | out.Element(static_cast(tx.g)); 577 | out.Element(static_cast(tx.b)); 578 | out.Element(static_cast(tx.a)); 579 | out.EndArray(); 580 | } 581 | out.EndArray(); 582 | } 583 | out.EndArray(); 584 | } 585 | 586 | out.EndObj(); 587 | } 588 | 589 | void Write(JSONWriter& out, const aiLight& ai, bool is_elem = true) 590 | { 591 | out.StartObj(is_elem); 592 | 593 | out.Key("name"); 594 | out.SimpleValue(ai.mName); 595 | 596 | out.Key("type"); 597 | out.SimpleValue(ai.mType); 598 | 599 | if(ai.mType == aiLightSource_SPOT || ai.mType == aiLightSource_UNDEFINED) { 600 | out.Key("angleinnercone"); 601 | out.SimpleValue(ai.mAngleInnerCone); 602 | 603 | out.Key("angleoutercone"); 604 | out.SimpleValue(ai.mAngleOuterCone); 605 | } 606 | 607 | out.Key("attenuationconstant"); 608 | out.SimpleValue(ai.mAttenuationConstant); 609 | 610 | out.Key("attenuationlinear"); 611 | out.SimpleValue(ai.mAttenuationLinear); 612 | 613 | out.Key("attenuationquadratic"); 614 | out.SimpleValue(ai.mAttenuationQuadratic); 615 | 616 | out.Key("diffusecolor"); 617 | Write(out,ai.mColorDiffuse,false); 618 | 619 | out.Key("specularcolor"); 620 | Write(out,ai.mColorSpecular,false); 621 | 622 | out.Key("ambientcolor"); 623 | Write(out,ai.mColorAmbient,false); 624 | 625 | if(ai.mType != aiLightSource_POINT) { 626 | out.Key("direction"); 627 | Write(out,ai.mDirection,false); 628 | 629 | } 630 | 631 | if(ai.mType != aiLightSource_DIRECTIONAL) { 632 | out.Key("position"); 633 | Write(out,ai.mPosition,false); 634 | } 635 | 636 | out.EndObj(); 637 | } 638 | 639 | void Write(JSONWriter& out, const aiNodeAnim& ai, bool is_elem = true) 640 | { 641 | out.StartObj(is_elem); 642 | 643 | out.Key("name"); 644 | out.SimpleValue(ai.mNodeName); 645 | 646 | out.Key("prestate"); 647 | out.SimpleValue(ai.mPreState); 648 | 649 | out.Key("poststate"); 650 | out.SimpleValue(ai.mPostState); 651 | 652 | if(ai.mNumPositionKeys) { 653 | out.Key("positionkeys"); 654 | out.StartArray(); 655 | for(unsigned int n = 0; n < ai.mNumPositionKeys; ++n) { 656 | const aiVectorKey& pos = ai.mPositionKeys[n]; 657 | out.StartArray(true); 658 | out.Element(pos.mTime); 659 | Write(out,pos.mValue); 660 | out.EndArray(); 661 | } 662 | out.EndArray(); 663 | } 664 | 665 | if(ai.mNumRotationKeys) { 666 | out.Key("rotationkeys"); 667 | out.StartArray(); 668 | for(unsigned int n = 0; n < ai.mNumRotationKeys; ++n) { 669 | const aiQuatKey& rot = ai.mRotationKeys[n]; 670 | out.StartArray(true); 671 | out.Element(rot.mTime); 672 | Write(out,rot.mValue); 673 | out.EndArray(); 674 | } 675 | out.EndArray(); 676 | } 677 | 678 | if(ai.mNumScalingKeys) { 679 | out.Key("scalingkeys"); 680 | out.StartArray(); 681 | for(unsigned int n = 0; n < ai.mNumScalingKeys; ++n) { 682 | const aiVectorKey& scl = ai.mScalingKeys[n]; 683 | out.StartArray(true); 684 | out.Element(scl.mTime); 685 | Write(out,scl.mValue); 686 | out.EndArray(); 687 | } 688 | out.EndArray(); 689 | } 690 | out.EndObj(); 691 | } 692 | 693 | void Write(JSONWriter& out, const aiAnimation& ai, bool is_elem = true) 694 | { 695 | out.StartObj(is_elem); 696 | 697 | out.Key("name"); 698 | out.SimpleValue(ai.mName); 699 | 700 | out.Key("tickspersecond"); 701 | out.SimpleValue(ai.mTicksPerSecond); 702 | 703 | out.Key("duration"); 704 | out.SimpleValue(ai.mDuration); 705 | 706 | out.Key("channels"); 707 | out.StartArray(); 708 | for(unsigned int n = 0; n < ai.mNumChannels; ++n) { 709 | Write(out,*ai.mChannels[n]); 710 | } 711 | out.EndArray(); 712 | out.EndObj(); 713 | } 714 | 715 | void Write(JSONWriter& out, const aiCamera& ai, bool is_elem = true) 716 | { 717 | out.StartObj(is_elem); 718 | 719 | out.Key("name"); 720 | out.SimpleValue(ai.mName); 721 | 722 | out.Key("aspect"); 723 | out.SimpleValue(ai.mAspect); 724 | 725 | out.Key("clipplanefar"); 726 | out.SimpleValue(ai.mClipPlaneFar); 727 | 728 | out.Key("clipplanenear"); 729 | out.SimpleValue(ai.mClipPlaneNear); 730 | 731 | out.Key("horizontalfov"); 732 | out.SimpleValue(ai.mHorizontalFOV); 733 | 734 | out.Key("up"); 735 | Write(out,ai.mUp,false); 736 | 737 | out.Key("lookat"); 738 | Write(out,ai.mLookAt,false); 739 | 740 | out.EndObj(); 741 | } 742 | 743 | void WriteFormatInfo(JSONWriter& out) 744 | { 745 | out.StartObj(); 746 | out.Key("format"); 747 | out.SimpleValue("\"assimp2json\""); 748 | out.Key("version"); 749 | out.SimpleValue(CURRENT_FORMAT_VERSION); 750 | out.EndObj(); 751 | } 752 | 753 | void Write(JSONWriter& out, const aiScene& ai) 754 | { 755 | out.StartObj(); 756 | 757 | out.Key("__metadata__"); 758 | WriteFormatInfo(out); 759 | 760 | out.Key("rootnode"); 761 | Write(out,*ai.mRootNode, false); 762 | 763 | out.Key("flags"); 764 | out.SimpleValue(ai.mFlags); 765 | 766 | if(ai.HasMeshes()) { 767 | out.Key("meshes"); 768 | out.StartArray(); 769 | for(unsigned int n = 0; n < ai.mNumMeshes; ++n) { 770 | Write(out,*ai.mMeshes[n]); 771 | } 772 | out.EndArray(); 773 | } 774 | 775 | if(ai.HasMaterials()) { 776 | out.Key("materials"); 777 | out.StartArray(); 778 | for(unsigned int n = 0; n < ai.mNumMaterials; ++n) { 779 | Write(out,*ai.mMaterials[n]); 780 | } 781 | out.EndArray(); 782 | } 783 | 784 | if(ai.HasAnimations()) { 785 | out.Key("animations"); 786 | out.StartArray(); 787 | for(unsigned int n = 0; n < ai.mNumAnimations; ++n) { 788 | Write(out,*ai.mAnimations[n]); 789 | } 790 | out.EndArray(); 791 | } 792 | 793 | if(ai.HasLights()) { 794 | out.Key("lights"); 795 | out.StartArray(); 796 | for(unsigned int n = 0; n < ai.mNumLights; ++n) { 797 | Write(out,*ai.mLights[n]); 798 | } 799 | out.EndArray(); 800 | } 801 | 802 | if(ai.HasCameras()) { 803 | out.Key("cameras"); 804 | out.StartArray(); 805 | for(unsigned int n = 0; n < ai.mNumCameras; ++n) { 806 | Write(out,*ai.mCameras[n]); 807 | } 808 | out.EndArray(); 809 | } 810 | 811 | if(ai.HasTextures()) { 812 | out.Key("textures"); 813 | out.StartArray(); 814 | for(unsigned int n = 0; n < ai.mNumTextures; ++n) { 815 | Write(out,*ai.mTextures[n]); 816 | } 817 | out.EndArray(); 818 | } 819 | out.EndObj(); 820 | } 821 | 822 | 823 | void Assimp2Json(const char* file, Assimp::IOSystem* io, const aiScene* scene, const Assimp::ExportProperties*) 824 | { 825 | boost::scoped_ptr str(io->Open(file,"wt")); 826 | if(!str) { 827 | //throw Assimp::DeadlyExportError("could not open output file"); 828 | } 829 | 830 | // get a copy of the scene so we can modify it 831 | aiScene* scenecopy_tmp; 832 | aiCopyScene(scene, &scenecopy_tmp); 833 | 834 | try { 835 | // split meshes so they fit into a 16 bit index buffer 836 | MeshSplitter splitter; 837 | splitter.SetLimit(1 << 16); 838 | splitter.Execute(scenecopy_tmp); 839 | 840 | // XXX Flag_WriteSpecialFloats is turned on by default, right now we don't have a configuration interface for exporters 841 | JSONWriter s(*str,JSONWriter::Flag_WriteSpecialFloats); 842 | Write(s,*scenecopy_tmp); 843 | 844 | } 845 | catch(...) { 846 | aiFreeScene(scenecopy_tmp); 847 | throw; 848 | } 849 | aiFreeScene(scenecopy_tmp); 850 | } 851 | 852 | } // 853 | -------------------------------------------------------------------------------- /assimp2json/main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Assimp2Json 3 | Copyright (c) 2011, Alexander C. Gessler 4 | 5 | Licensed under a 3-clause BSD license. See the LICENSE file for more information. 6 | 7 | */ 8 | 9 | #include 10 | #include 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | #include 17 | 18 | #include "version.h" 19 | 20 | // json_exporter.cpp 21 | extern Assimp::Exporter::ExportFormatEntry Assimp2Json_desc; 22 | 23 | int unrecog_exit(int ex = -1) 24 | { 25 | std::cout << "usage: assimp2json [--log --verbose] input [output]" << std::endl; 26 | return ex; 27 | } 28 | 29 | void printver() 30 | { 31 | std::cout << "assimp2json v" << ASSIMP2JSON_VERSION_MAJOR << "." << ASSIMP2JSON_VERSION_MINOR << "\n"; 32 | std::cout << "(c) 2013, Alexander C. Gessler\nThis is free software, made available under a 3-clause BSD license\n" << 33 | "(assimp version: " 34 | << aiGetVersionMajor() << "." 35 | << aiGetVersionMinor() << "." 36 | << aiGetVersionRevision() << ")" 37 | << std::endl; 38 | } 39 | 40 | void printhelp() 41 | { 42 | } 43 | 44 | int main (int argc, char *argv[]) 45 | { 46 | if (argc == 1) { 47 | return unrecog_exit(-1); 48 | } 49 | 50 | int nextarg = 1; 51 | while(nextarg < argc && argv[nextarg][0] == '-') { 52 | if (!strcmp(argv[nextarg],"--help")) { 53 | printhelp(); 54 | return 0; 55 | } 56 | else if (!strcmp(argv[nextarg],"--version")) { 57 | printver(); 58 | return 0; 59 | } 60 | ++nextarg; 61 | } 62 | 63 | if (argc < nextarg+1) { 64 | return unrecog_exit(-2); 65 | } 66 | 67 | const char* in = argv[nextarg], *out = (argc < nextarg+2 ? NULL : argv[nextarg+1]); 68 | 69 | Assimp::Importer imp; 70 | 71 | // instruct aiProcess_FindDegenerates to drop degenerates 72 | imp.SetPropertyBool(AI_CONFIG_PP_FD_REMOVE, true); 73 | // instruct aiProcess_SortByPrimitiveType to drop line and point meshes 74 | imp.SetPropertyInteger(AI_CONFIG_PP_SBP_REMOVE, aiPrimitiveType_POINT | aiPrimitiveType_LINE); 75 | 76 | // instruct aiProcess_GenSmoothNormals to not smooth normals with an angle of more than 70deg 77 | imp.SetPropertyFloat(AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE, 70.0f); 78 | // instruct aiProcess_CalcTangents to not smooth normals with an angle of more than 70deg 79 | imp.SetPropertyFloat(AI_CONFIG_PP_CT_MAX_SMOOTHING_ANGLE, 70.0f); 80 | 81 | const aiScene* const sc = imp.ReadFile(in,aiProcessPreset_TargetRealtime_MaxQuality); 82 | if (!sc) { 83 | std::cerr << "failure reading file: " << in << std::endl; 84 | return -3; 85 | } 86 | 87 | Assimp::Exporter exp; 88 | exp.RegisterExporter(Assimp2Json_desc); 89 | 90 | if(out) { 91 | if(aiReturn_SUCCESS != exp.Export(sc,"assimp.json",out)) { 92 | std::cerr << "failure exporting file: " << out << ": " << exp.GetErrorString() << std::endl; 93 | return -4; 94 | } 95 | } 96 | else { 97 | // write to stdout, but we might do better than using ExportToBlob() 98 | const aiExportDataBlob* const blob = exp.ExportToBlob(sc,"assimp.json"); 99 | if(!blob) { 100 | std::cerr << "failure exporting to (stdout) " << exp.GetErrorString() << std::endl; 101 | return -5; 102 | } 103 | 104 | const std::string s(static_cast( blob->data), blob->size); 105 | std::cout << s << std::endl; 106 | } 107 | return 0; 108 | } 109 | -------------------------------------------------------------------------------- /assimp2json/mesh_splitter.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | Assimp2Json 3 | Copyright (c) 2011, Alexander C. Gessler 4 | 5 | Licensed under a 3-clause BSD license. See the LICENSE file for more information. 6 | 7 | */ 8 | 9 | 10 | #include "mesh_splitter.h" 11 | 12 | #include 13 | 14 | // ---------------------------------------------------------------------------- 15 | // Note: this is largely based on assimp's SplitLargeMeshes_Vertex process. 16 | // it is refactored and the coding style is slightly improved, though. 17 | // ---------------------------------------------------------------------------- 18 | 19 | // ------------------------------------------------------------------------------------------------ 20 | // Executes the post processing step on the given imported data. 21 | void MeshSplitter :: Execute( aiScene* pScene) 22 | { 23 | std::vector > source_mesh_map; 24 | 25 | for( unsigned int a = 0; a < pScene->mNumMeshes; a++) { 26 | SplitMesh(a, pScene->mMeshes[a],source_mesh_map); 27 | } 28 | 29 | const unsigned int size = static_cast(source_mesh_map.size()); 30 | if (size != pScene->mNumMeshes) 31 | { 32 | // it seems something has been split. rebuild the mesh list 33 | delete[] pScene->mMeshes; 34 | pScene->mNumMeshes = size; 35 | pScene->mMeshes = new aiMesh*[size](); 36 | 37 | for (unsigned int i = 0; i < size;++i) { 38 | pScene->mMeshes[i] = source_mesh_map[i].first; 39 | } 40 | 41 | // now we need to update all nodes 42 | UpdateNode(pScene->mRootNode,source_mesh_map); 43 | } 44 | } 45 | 46 | 47 | // ------------------------------------------------------------------------------------------------ 48 | void MeshSplitter :: UpdateNode(aiNode* pcNode, const std::vector >& source_mesh_map) 49 | { 50 | // TODO: should better use std::(multi)set for source_mesh_map. 51 | 52 | // for every index in out list build a new entry 53 | std::vector aiEntries; 54 | aiEntries.reserve(pcNode->mNumMeshes + 1); 55 | for (unsigned int i = 0; i < pcNode->mNumMeshes;++i) { 56 | for (unsigned int a = 0, end = static_cast(source_mesh_map.size()); a < end;++a) { 57 | if (source_mesh_map[a].second == pcNode->mMeshes[i]) { 58 | aiEntries.push_back(a); 59 | } 60 | } 61 | } 62 | 63 | // now build the new list 64 | delete pcNode->mMeshes; 65 | pcNode->mNumMeshes = static_cast(aiEntries.size()); 66 | pcNode->mMeshes = new unsigned int[pcNode->mNumMeshes]; 67 | 68 | for (unsigned int b = 0; b < pcNode->mNumMeshes;++b) { 69 | pcNode->mMeshes[b] = aiEntries[b]; 70 | } 71 | 72 | // recursively update children 73 | for (unsigned int i = 0, end = pcNode->mNumChildren; i < end;++i) { 74 | UpdateNode ( pcNode->mChildren[i], source_mesh_map ); 75 | } 76 | return; 77 | } 78 | 79 | #define WAS_NOT_COPIED 0xffffffff 80 | 81 | typedef std::pair PerVertexWeight; 82 | typedef std::vector VertexWeightTable; 83 | 84 | // ------------------------------------------------------------------------------------------------ 85 | VertexWeightTable* ComputeVertexBoneWeightTable(const aiMesh* pMesh) 86 | { 87 | if (!pMesh || !pMesh->mNumVertices || !pMesh->mNumBones) { 88 | return NULL; 89 | } 90 | 91 | VertexWeightTable* const avPerVertexWeights = new VertexWeightTable[pMesh->mNumVertices]; 92 | for (unsigned int i = 0; i < pMesh->mNumBones;++i) { 93 | 94 | aiBone* bone = pMesh->mBones[i]; 95 | for (unsigned int a = 0; a < bone->mNumWeights;++a) { 96 | const aiVertexWeight& weight = bone->mWeights[a]; 97 | avPerVertexWeights[weight.mVertexId].push_back( std::make_pair(i,weight.mWeight) ); 98 | } 99 | } 100 | return avPerVertexWeights; 101 | } 102 | 103 | // ------------------------------------------------------------------------------------------------ 104 | void MeshSplitter :: SplitMesh(unsigned int a, aiMesh* in_mesh, 105 | std::vector >& source_mesh_map) 106 | { 107 | // TODO: should better use std::(multi)set for source_mesh_map. 108 | 109 | if (in_mesh->mNumVertices <= LIMIT) { 110 | source_mesh_map.push_back(std::make_pair(in_mesh,a)); 111 | return; 112 | } 113 | 114 | // build a per-vertex weight list if necessary 115 | VertexWeightTable* avPerVertexWeights = ComputeVertexBoneWeightTable(in_mesh); 116 | 117 | // we need to split this mesh into sub meshes. Estimate submesh size 118 | const unsigned int sub_meshes = (in_mesh->mNumVertices / LIMIT) + 1; 119 | 120 | // create a std::vector to remember which vertices have already 121 | // been copied and to which position (i.e. output index) 122 | std::vector was_copied_to; 123 | was_copied_to.resize(in_mesh->mNumVertices,WAS_NOT_COPIED); 124 | 125 | // Try to find a good estimate for the number of output faces 126 | // per mesh. Add 12.5% as buffer 127 | unsigned int size_estimated = in_mesh->mNumFaces / sub_meshes; 128 | size_estimated += size_estimated / 8; 129 | 130 | // now generate all submeshes 131 | unsigned int base = 0; 132 | while (true) { 133 | const unsigned int out_vertex_index = LIMIT; 134 | 135 | aiMesh* out_mesh = new aiMesh(); 136 | out_mesh->mNumVertices = 0; 137 | out_mesh->mMaterialIndex = in_mesh->mMaterialIndex; 138 | 139 | // the name carries the adjacency information between the meshes 140 | out_mesh->mName = in_mesh->mName; 141 | 142 | typedef std::vector BoneWeightList; 143 | if (in_mesh->HasBones()) { 144 | out_mesh->mBones = new aiBone*[in_mesh->mNumBones](); 145 | } 146 | 147 | // clear the temporary helper array 148 | if (base) { 149 | std::fill(was_copied_to.begin(), was_copied_to.end(), WAS_NOT_COPIED); 150 | } 151 | 152 | std::vector vFaces; 153 | 154 | // reserve enough storage for most cases 155 | if (in_mesh->HasPositions()) { 156 | out_mesh->mVertices = new aiVector3D[out_vertex_index]; 157 | } 158 | 159 | if (in_mesh->HasNormals()) { 160 | out_mesh->mNormals = new aiVector3D[out_vertex_index]; 161 | } 162 | 163 | if (in_mesh->HasTangentsAndBitangents()) { 164 | out_mesh->mTangents = new aiVector3D[out_vertex_index]; 165 | out_mesh->mBitangents = new aiVector3D[out_vertex_index]; 166 | } 167 | 168 | for (unsigned int c = 0; in_mesh->HasVertexColors(c);++c) { 169 | out_mesh->mColors[c] = new aiColor4D[out_vertex_index]; 170 | } 171 | 172 | for (unsigned int c = 0; in_mesh->HasTextureCoords(c);++c) { 173 | out_mesh->mNumUVComponents[c] = in_mesh->mNumUVComponents[c]; 174 | out_mesh->mTextureCoords[c] = new aiVector3D[out_vertex_index]; 175 | } 176 | vFaces.reserve(size_estimated); 177 | 178 | // (we will also need to copy the array of indices) 179 | while (base < in_mesh->mNumFaces) { 180 | const unsigned int iNumIndices = in_mesh->mFaces[base].mNumIndices; 181 | 182 | // doesn't catch degenerates but is quite fast 183 | unsigned int iNeed = 0; 184 | for (unsigned int v = 0; v < iNumIndices;++v) { 185 | unsigned int index = in_mesh->mFaces[base].mIndices[v]; 186 | 187 | // check whether we do already have this vertex 188 | if (WAS_NOT_COPIED == was_copied_to[index]) { 189 | iNeed++; 190 | } 191 | } 192 | if (out_mesh->mNumVertices + iNeed > out_vertex_index) { 193 | // don't use this face 194 | break; 195 | } 196 | 197 | vFaces.push_back(aiFace()); 198 | aiFace& rFace = vFaces.back(); 199 | 200 | // setup face type and number of indices 201 | rFace.mNumIndices = iNumIndices; 202 | rFace.mIndices = new unsigned int[iNumIndices]; 203 | 204 | // need to update the output primitive types 205 | switch (rFace.mNumIndices) 206 | { 207 | case 1: 208 | out_mesh->mPrimitiveTypes |= aiPrimitiveType_POINT; 209 | break; 210 | case 2: 211 | out_mesh->mPrimitiveTypes |= aiPrimitiveType_LINE; 212 | break; 213 | case 3: 214 | out_mesh->mPrimitiveTypes |= aiPrimitiveType_TRIANGLE; 215 | break; 216 | default: 217 | out_mesh->mPrimitiveTypes |= aiPrimitiveType_POLYGON; 218 | } 219 | 220 | // and copy the contents of the old array, offset them by current base 221 | for (unsigned int v = 0; v < iNumIndices;++v) { 222 | const unsigned int index = in_mesh->mFaces[base].mIndices[v]; 223 | 224 | // check whether we do already have this vertex 225 | if (WAS_NOT_COPIED != was_copied_to[index]) { 226 | rFace.mIndices[v] = was_copied_to[index]; 227 | continue; 228 | } 229 | 230 | // copy positions 231 | out_mesh->mVertices[out_mesh->mNumVertices] = (in_mesh->mVertices[index]); 232 | 233 | // copy normals 234 | if (in_mesh->HasNormals()) { 235 | out_mesh->mNormals[out_mesh->mNumVertices] = (in_mesh->mNormals[index]); 236 | } 237 | 238 | // copy tangents/bi-tangents 239 | if (in_mesh->HasTangentsAndBitangents()) { 240 | out_mesh->mTangents[out_mesh->mNumVertices] = (in_mesh->mTangents[index]); 241 | out_mesh->mBitangents[out_mesh->mNumVertices] = (in_mesh->mBitangents[index]); 242 | } 243 | 244 | // texture coordinates 245 | for (unsigned int c = 0; c < AI_MAX_NUMBER_OF_TEXTURECOORDS;++c) { 246 | if (in_mesh->HasTextureCoords( c)) { 247 | out_mesh->mTextureCoords[c][out_mesh->mNumVertices] = in_mesh->mTextureCoords[c][index]; 248 | } 249 | } 250 | // vertex colors 251 | for (unsigned int c = 0; c < AI_MAX_NUMBER_OF_COLOR_SETS;++c) { 252 | if (in_mesh->HasVertexColors( c)) { 253 | out_mesh->mColors[c][out_mesh->mNumVertices] = in_mesh->mColors[c][index]; 254 | } 255 | } 256 | // check whether we have bone weights assigned to this vertex 257 | rFace.mIndices[v] = out_mesh->mNumVertices; 258 | if (avPerVertexWeights) { 259 | VertexWeightTable& table = avPerVertexWeights[ out_mesh->mNumVertices ]; 260 | for (VertexWeightTable::const_iterator iter = table.begin(), end = table.end(); iter != end;++iter) { 261 | // allocate the bone weight array if necessary and store it in the mBones field (HACK!) 262 | BoneWeightList* weight_list = reinterpret_cast(out_mesh->mBones[(*iter).first]); 263 | if (!weight_list) { 264 | weight_list = new BoneWeightList(); 265 | out_mesh->mBones[(*iter).first] = reinterpret_cast(weight_list); 266 | } 267 | weight_list->push_back(aiVertexWeight(out_mesh->mNumVertices,(*iter).second)); 268 | } 269 | } 270 | 271 | was_copied_to[index] = out_mesh->mNumVertices; 272 | out_mesh->mNumVertices++; 273 | } 274 | base++; 275 | if(out_mesh->mNumVertices == out_vertex_index) { 276 | // break here. The face is only added if it was complete 277 | break; 278 | } 279 | } 280 | 281 | // check which bones we'll need to create for this submesh 282 | if (in_mesh->HasBones()) { 283 | aiBone** ppCurrent = out_mesh->mBones; 284 | for (unsigned int k = 0; k < in_mesh->mNumBones;++k) { 285 | // check whether the bone exists 286 | BoneWeightList* const weight_list = reinterpret_cast(out_mesh->mBones[k]); 287 | 288 | if (weight_list) { 289 | const aiBone* const bone_in = in_mesh->mBones[k]; 290 | aiBone* const bone_out = new aiBone(); 291 | *ppCurrent++ = bone_out; 292 | bone_out->mName = aiString(bone_in->mName); 293 | bone_out->mOffsetMatrix =bone_in->mOffsetMatrix; 294 | bone_out->mNumWeights = (unsigned int)weight_list->size(); 295 | bone_out->mWeights = new aiVertexWeight[bone_out->mNumWeights]; 296 | 297 | // copy the vertex weights 298 | ::memcpy(bone_out->mWeights, &(*weight_list)[0],bone_out->mNumWeights * sizeof(aiVertexWeight)); 299 | 300 | delete weight_list; 301 | out_mesh->mNumBones++; 302 | } 303 | } 304 | } 305 | 306 | // copy the face list to the mesh 307 | out_mesh->mFaces = new aiFace[vFaces.size()]; 308 | out_mesh->mNumFaces = (unsigned int)vFaces.size(); 309 | 310 | for (unsigned int p = 0; p < out_mesh->mNumFaces;++p) { 311 | out_mesh->mFaces[p] = vFaces[p]; 312 | } 313 | 314 | // add the newly created mesh to the list 315 | source_mesh_map.push_back(std::make_pair(out_mesh,a)); 316 | 317 | if (base == in_mesh->mNumFaces) { 318 | break; 319 | } 320 | } 321 | 322 | // delete the per-vertex weight list again 323 | delete[] avPerVertexWeights; 324 | 325 | // now delete the old mesh data 326 | delete in_mesh; 327 | } 328 | -------------------------------------------------------------------------------- /assimp2json/mesh_splitter.h: -------------------------------------------------------------------------------- 1 | /* 2 | Assimp2Json 3 | Copyright (c) 2011, Alexander C. Gessler 4 | 5 | Licensed under a 3-clause BSD license. See the LICENSE file for more information. 6 | 7 | */ 8 | 9 | #ifndef INCLUDED_MESH_SPLITTER 10 | #define INCLUDED_MESH_SPLITTER 11 | 12 | // ---------------------------------------------------------------------------- 13 | // Note: this is largely based on assimp's SplitLargeMeshes_Vertex process. 14 | // it is refactored and the coding style is slightly improved, though. 15 | // ---------------------------------------------------------------------------- 16 | 17 | #include 18 | 19 | struct aiScene; 20 | struct aiMesh; 21 | struct aiNode; 22 | 23 | // --------------------------------------------------------------------------- 24 | /** Splits meshes of unique vertices into meshes with no more vertices than 25 | * a given, configurable threshold value. 26 | */ 27 | class MeshSplitter 28 | { 29 | 30 | public: 31 | 32 | void SetLimit(unsigned int l) { 33 | LIMIT = l; 34 | } 35 | 36 | unsigned int GetLimit() const { 37 | return LIMIT; 38 | } 39 | 40 | public: 41 | 42 | // ------------------------------------------------------------------- 43 | /** Executes the post processing step on the given imported data. 44 | * At the moment a process is not supposed to fail. 45 | * @param pScene The imported data to work at. 46 | */ 47 | void Execute( aiScene* pScene); 48 | 49 | 50 | private: 51 | 52 | void UpdateNode(aiNode* pcNode, const std::vector >& source_mesh_map); 53 | void SplitMesh (unsigned int index, aiMesh* mesh, std::vector >& source_mesh_map); 54 | 55 | public: 56 | 57 | unsigned int LIMIT; 58 | }; 59 | 60 | #endif // INCLUDED_MESH_SPLITTER 61 | 62 | -------------------------------------------------------------------------------- /assimp2json/version.h.in: -------------------------------------------------------------------------------- 1 | #define ASSIMP2JSON_VERSION_MAJOR @ASSIMP2JSON_VERSION_MAJOR@ 2 | #define ASSIMP2JSON_VERSION_MINOR @ASSIMP2JSON_VERSION_MINOR@ -------------------------------------------------------------------------------- /samples/Animated.x: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acgessler/assimp2json/3b4469466120d9dfcf21aa72eeb02cb85fdd7b2c/samples/Animated.x -------------------------------------------------------------------------------- /samples/EmbeddedTexture.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/acgessler/assimp2json/3b4469466120d9dfcf21aa72eeb02cb85fdd7b2c/samples/EmbeddedTexture.blend -------------------------------------------------------------------------------- /samples/EmbeddedTexture.blend.assimp.json: -------------------------------------------------------------------------------- 1 | { 2 | "__metadata__": { 3 | "format" : "assimp2json" 4 | ,"version": 100 5 | } 6 | ,"rootnode": { 7 | "name": "" 8 | ,"transformation": [ 9 | 1 10 | ,0 11 | ,0 12 | ,0 13 | ,0 14 | ,1 15 | ,0 16 | ,0 17 | ,0 18 | ,0 19 | ,1 20 | ,0 21 | ,0 22 | ,0 23 | ,0 24 | ,1 25 | ] 26 | ,"children": [ 27 | { 28 | "name": "Plane" 29 | ,"transformation": [ 30 | 1 31 | ,0 32 | ,0 33 | ,2.07692 34 | ,0 35 | ,1 36 | ,0 37 | ,4.64629 38 | ,0 39 | ,0 40 | ,1 41 | ,-5.75265 42 | ,0 43 | ,0 44 | ,0 45 | ,1 46 | ] 47 | ,"meshes": [ 48 | 0 49 | ] 50 | } 51 | ,{ 52 | "name": "Lamp" 53 | ,"transformation": [ 54 | -0.290865 55 | ,-0.771101 56 | ,0.566393 57 | ,4.07625 58 | ,0.955171 59 | ,-0.199883 60 | ,0.218391 61 | ,1.00545 62 | ,-0.0551891 63 | ,0.604525 64 | ,0.794672 65 | ,5.90386 66 | ,0 67 | ,0 68 | ,0 69 | ,1 70 | ] 71 | } 72 | ,{ 73 | "name": "Camera" 74 | ,"transformation": [ 75 | 0.685881 76 | ,-0.31737 77 | ,0.654862 78 | ,7.48113 79 | ,0.727634 80 | ,0.312469 81 | ,-0.610666 82 | ,-6.50764 83 | ,-0.0108168 84 | ,0.895343 85 | ,0.445245 86 | ,4.63206 87 | ,0 88 | ,0 89 | ,0 90 | ,1 91 | ] 92 | } 93 | ] 94 | } 95 | ,"flags": 8 96 | ,"meshes": [ 97 | { 98 | "name": "Plane" 99 | ,"materialindex": 0 100 | ,"primitivetypes": 4 101 | ,"vertices": [ 102 | 1 103 | ,1 104 | ,0 105 | ,-1 106 | ,1 107 | ,0 108 | ,-1 109 | ,-1 110 | ,0 111 | ,1 112 | ,-1 113 | ,0 114 | ] 115 | ,"normals": [ 116 | 0 117 | ,0 118 | ,1 119 | ,0 120 | ,0 121 | ,1 122 | ,0 123 | ,0 124 | ,1 125 | ,0 126 | ,0 127 | ,1 128 | ] 129 | ,"tangents": [ 130 | -1 131 | ,1.19209e-007 132 | ,0 133 | ,-1 134 | ,2.08616e-007 135 | ,0 136 | ,-1 137 | ,1.19209e-007 138 | ,0 139 | ,-1 140 | ,1.19209e-007 141 | ,0 142 | ] 143 | ,"bitangents": [ 144 | 0 145 | ,1 146 | ,0 147 | ,1.78814e-007 148 | ,1 149 | ,0 150 | ,0 151 | ,1 152 | ,0 153 | ,0 154 | ,1 155 | ,0 156 | ] 157 | ,"numuvcomponents": [ 158 | 2 159 | ] 160 | ,"texturecoords": [ 161 | [ 162 | 0 163 | ,0 164 | ,1 165 | ,0 166 | ,1 167 | ,1 168 | ,0 169 | ,1 170 | ] 171 | ] 172 | ,"faces": [ 173 | [ 174 | 0 175 | ,1 176 | ,2 177 | ] 178 | ,[ 179 | 0 180 | ,2 181 | ,3 182 | ] 183 | ] 184 | } 185 | ] 186 | ,"materials": [ 187 | { 188 | "properties": [ 189 | { 190 | "key": "?mat.name" 191 | ,"semantic": 0 192 | ,"index": 0 193 | ,"type": 3 194 | ,"value": "Material.002" 195 | } 196 | ,{ 197 | "key": "$clr.diffuse" 198 | ,"semantic": 0 199 | ,"index": 0 200 | ,"type": 1 201 | ,"value": [ 202 | 0.8 203 | ,0.8 204 | ,0.8 205 | ] 206 | } 207 | ,{ 208 | "key": "$clr.specular" 209 | ,"semantic": 0 210 | ,"index": 0 211 | ,"type": 1 212 | ,"value": [ 213 | 1 214 | ,1 215 | ,1 216 | ] 217 | } 218 | ,{ 219 | "key": "$mat.shininess" 220 | ,"semantic": 0 221 | ,"index": 0 222 | ,"type": 1 223 | ,"value": 50 224 | } 225 | ,{ 226 | "key": "$clr.ambient" 227 | ,"semantic": 0 228 | ,"index": 0 229 | ,"type": 1 230 | ,"value": [ 231 | 0 232 | ,0 233 | ,0 234 | ] 235 | } 236 | ,{ 237 | "key": "$clr.reflective" 238 | ,"semantic": 0 239 | ,"index": 0 240 | ,"type": 1 241 | ,"value": [ 242 | 1 243 | ,1 244 | ,1 245 | ] 246 | } 247 | ,{ 248 | "key": "$tex.file" 249 | ,"semantic": 1 250 | ,"index": 0 251 | ,"type": 3 252 | ,"value": "*0" 253 | } 254 | ] 255 | } 256 | ] 257 | ,"lights": [ 258 | { 259 | "name": "Lamp" 260 | ,"type": 2 261 | ,"attenuationconstant": 0 262 | ,"attenuationlinear": 1 263 | ,"attenuationquadratic": 0 264 | ,"diffusecolor": [ 265 | 1 266 | ,1 267 | ,1 268 | ] 269 | ,"specularcolor": [ 270 | 1 271 | ,1 272 | ,1 273 | ] 274 | ,"ambientcolor": [ 275 | 1 276 | ,1 277 | ,1 278 | ] 279 | ,"position": [ 280 | 0 281 | ,0 282 | ,0 283 | ] 284 | } 285 | ] 286 | ,"cameras": [ 287 | { 288 | "name": "Camera" 289 | ,"aspect": 0 290 | ,"clipplanefar": 1000 291 | ,"clipplanenear": 0.1 292 | ,"horizontalfov": 0.785398 293 | ,"up": [ 294 | 0 295 | ,1 296 | ,0 297 | ] 298 | ,"lookat": [ 299 | 0 300 | ,0 301 | ,-1 302 | ] 303 | } 304 | ] 305 | ,"textures": [ 306 | { 307 | "width": 3495 308 | ,"height": 0 309 | ,"formathint": "png" 310 | ,"data": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAAAlwSFlz AAALEwAACxMBAJqcGAAAAAd0SU1FB9gLDRQbJU4eyV8AAAAZdEVYdENvbW1lbnQAQ3JlYXRl ZCB3aXRoIEdJTVBXgQ4XAAANFElEQVR42u3dTW9c1QHH4f9JTIOtAhVUgmInCllUbYwQqqDq ApQgpNgoLMJLWJgq3yNlQxc0/RwRRIj3TRBBgmCVVdNNW5KyClHeEAsQjZBNCOF0QS4wwVYd MvbM+DzP7l4nx55zZub+PHd8p9RaaxpWSknjUxDrX5u+/S2rtTY/B9a/3fXf4C4AAAIAABAA AIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAAAQA ACAAAIBVVjOXmrk1/75jg7ixpZRvb3StVh6Adec3uTl7MpU9mcrvc1tKSkoOrfkYaxIAF8ts DuR8DuajnMtCJjORfbkrf8qv87P6yorG+LA8mjdyNm/kbP6eT1NFAgAj6D95dCjGWJMAmMuJ vJYz321/lC/y5/w7H+TzvLLCMX6bw+41AIy8E/lvXs7pvJzT+SC7BzbGqgfAW+WhvJYzuTk3 5KU8kB25nPlszFN5P6/mTN4uO7Orvvd/x9meW7I3W7I3m3N33nQPAmAkTffhF9rpVf6luC8B 8EJOJUn2Z3tm6rtJkpkk+8u92Z9/5vmczq4VjHO8fv79xpX3CQAA/deXvwI4ls+SJLtze8/+ bvtYPjXTALDeAuBcFpIk23K5Z3+3fS6LZhoA1lsALFw50I/nnZ793fZCvjbTALDeAmAiG5Mk i3m4Z3+3PTGYyw0AAKsZAJOZSJKcvBICnW57MuNmGgDWWwDcn1uTJIfzSc/+bvu+K18HAIZD X16bn8uWPJ9TOZAT+V3ZmR25MfP5MgdyIknydLaaaQCasdS1/X+4byWX9O3HGKseAI/U+ewp m/NGzmYm8z1feyxTma1HVzROWeJv/3+4z2WBAWCIXgFIkhcznedySw7mVM5nMXdmPPuyNc9k yiwD0JR+fGhPPz/4Z8nx6wB+rR6mTwMspXhloeUHaePrXxq/4mattfk5sP6DX//uZf3VPuBf bYO7AAC0RwAAQIOcAnAKoO0HgFMATa+/UwCx/g2v/9igJh0AGBynAABAAAAAAgAAEAAAgAAA AAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAACAAAAABAAAIAAA AAEAAAgAAEAAAADDrCSppgHaVKuHP7RqrPUngFKKJ0Hr3/Ttbz2AWp8D69/u+jsFAAACAAAQ AACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAE AAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAE AAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAAB AAAIAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAA AAACAAAQAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAA AIAAAAAEAAAgAAAAAQAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQA ACAAAAABAAAIAABAAAAAAgAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEA AAgAAEAAAAACAAAQAACAAAAABAAACAAAQAAAAAIAABAAAIAAAABGS0lSTQO0qVYPf2jVWOtP AKUUT4LWv+nb33oAtT4H1r/d9XcKAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAg AAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAI AABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAAAQAABAO8ZMAQBLqZlb9e9RcshEewUAABAA AIAAAAAEAAAgAAAAAQAACAAAQAAAgAAwBQAgAAAAAQAACAAAQAAAAAIAABAAAIAAAACGxpgp gPWvlLLk/pq55ufGHOAVAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAMWklSW56AWuuyF0nB +q+b27nMxW5KDrkTMPDH4MAOgKUM9Pt7BQAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAA BAAAIAAAAAEAAAgAAEAAAAACAAAYeiVJbXkCWvk8eKz/cre/6SfAxj8PfiXzs57vg62vv1cA AEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAcK3GTAEAS/FR yV4BAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAAAQA ACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQA AFBqrdU0QKNPAKWYBGj18Z+k6QCotXoStP5N3/7WA8jvQNa/VU4BAIAAAAAEAAAgAAAAAQAA CAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAABAAAIAABAAAAA AgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAACAAAQAACA AAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAEAAAg AAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAI AABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAABAAAI AABAAACAAAAABAAAIAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAAAAAC AAAQAACAAAAAAQAACAAAQAAAAAIAABAAAIAAAAAEAAAgAAAAAQAACAAAQAAAAAIAABAAAIAA AAAEAAAgAAAAAQAAAgAAEAAAgAAAAAQAACAAAIDRUmqt1TRAo08ApZgEaPXxn6TpAKi1ehK0 /k3f/tYDyO9A1r9VTgEAgAAAAAQAACAAAAABAAAIAABAAAAAAgAAEAAAgAAAAAQAACAAAAAB AAAIAABAAAAAAgAAEAAAgAAAAAEAAAgAAEAAAAACAAAQAACAAAAABAAAIAAAAAEAAAgAAEAA AAACAAAQAAAwkkopKaW0EwA1c6mZs/IArDsflkfz13Jv/lB+mQ0/8QB/sczm2XJPtpWbsqls zLZyU54t9+Sr8mR/AyRJvd5BNmVD9mc6+3JXJjOec1nMwXyUv+R4vso3PwqAb7/xoZ88Rl+D pNaBFhiD1fr611qbXv9SSvNzYP1r38dc6eOs+7dXf/2JsiWv5cyP/v0T2ZxX6unhCoBX82Ae z+Yl9p/Ok3l/RQFwLWM4AGD9BYAAYBjXf7r8InuzJXuzOXfnzWsOgLfKQ3kk7+Xm3JCX8kB2 5HLmszFP5f1cyKUcyY7squ/15We97lMAs/lVHs/mXMilzOZoxvNiZnM0F3IpT2RLduWONRkD AAbteP08z9Z/Zboe/kn//4WcSpLsz/bM1HdzY53PTH03+7M9SfJ8+vcKwHUHwNPZmiQ5kOM5 ko/zZb7JkXycAzmeJPlj7lqTMQBg1B3LZ0mS3bm9Z3+3fSyfDk8A3J/bkiSHc65nf7d9f25d kzEAYNSdy0KSZFsu9+zvts9lcXgCYDLjSZKT+aJnf7c9mYk1GQMARt3ClQP9eN7p2d9tL+Tr 4QmAiYwlSRavqpVueyIb12QMABh13fFuMQ9fdTx8uOd4ORQB0NXI+FUH6W574aqD+mqNAQCj rnvF++RVx8Nuu3vFfCgCoDsfsS0/79nfbXfnM1Z7DAAYdd173g7nk5793fZ9fXxP3HUHQPeO xN2Z7Nnfbf/jyjsaV3sMABh1c9mSJDmQE3m77MzFMpu3y84cyIkk3//V3FAEwKHv/mZxOrty RzZlQ3bljuzPdJLv/6ZxtccAgEHrru//wwuMLbVvOY/U+ezJVC7kUmYynxtzJDOZz4VcymOZ ymw92r+fNX24EuDreTB7lriK3+s5k8fzt559y10J8FrG6CdXAmybKwG6EqArAVr/fo+50sfc cpcCvlhm81zO5mBO5XwWc2fGsy9b80ymsqm+NVwBsCkb8kymsy/bcmfGcz6LOZiTeS7Hc/Ea PgtgpWM4AGD9BYAAYNTXf7kAWLPv348AuKYnnGUCwAEA6y8ABAACYO1scBcAgPYIAABo0Jgp AIC1N+jTT2v+HoBhXADvAbD+noDa5D0Asf4Nr79TAAAgAAAAAQAACAAAQAAAAAIAABAAAIAA AAAEAAAgAAAAAQAACAAAoL/+B6TqrjCUyuL8AAAAAElFTkSuQmCC " 311 | } 312 | ] 313 | } 314 | -------------------------------------------------------------------------------- /samples/spider.mtl: -------------------------------------------------------------------------------- 1 | # 2 | # spider.mtl 3 | # 4 | 5 | newmtl Skin 6 | Ka 0.200000 0.200000 0.200000 7 | Kd 0.827451 0.792157 0.772549 8 | Ks 0.000000 0.000000 0.000000 9 | Ns 0.000000 10 | map_Kd .\wal67ar_small.jpg 11 | 12 | newmtl Brusttex 13 | Ka 0.200000 0.200000 0.200000 14 | Kd 0.800000 0.800000 0.800000 15 | Ks 0.000000 0.000000 0.000000 16 | Ns 0.000000 17 | map_Kd .\wal69ar_small.jpg 18 | 19 | newmtl HLeibTex 20 | Ka 0.200000 0.200000 0.200000 21 | Kd 0.690196 0.639216 0.615686 22 | Ks 0.000000 0.000000 0.000000 23 | Ns 0.000000 24 | map_Kd .\SpiderTex.jpg 25 | 26 | newmtl BeinTex 27 | Ka 0.200000 0.200000 0.200000 28 | Kd 0.800000 0.800000 0.800000 29 | Ks 0.000000 0.000000 0.000000 30 | Ns 0.000000 31 | map_Kd .\drkwood2.jpg 32 | 33 | newmtl Augentex 34 | Ka 0.200000 0.200000 0.200000 35 | Kd 0.800000 0.800000 0.800000 36 | Ks 0.000000 0.000000 0.000000 37 | Ns 0.000000 38 | map_Kd .\engineflare1.jpg -------------------------------------------------------------------------------- /samples/spider.obj: -------------------------------------------------------------------------------- 1 | # Wavefront OBJ exported by MilkShape 3D 2 | 3 | mtllib spider.mtl 4 | 5 | v 1.160379 4.512684 6.449167 6 | v 22.656172 10.214539 16.869690 7 | v 4.568314 16.857113 5.619617 8 | v 14.402298 32.891869 3.414829 9 | v 27.520809 27.080326 11.451565 10 | v 39.186256 16.230997 12.632702 11 | v -6.442715 10.777405 -0.537529 12 | v -8.120363 15.684460 -10.500000 13 | v -0.886770 23.423717 -4.342854 14 | v -0.886770 23.423717 -16.657145 15 | v 14.402298 32.891869 -26.414825 16 | v 12.953165 36.873337 -11.500000 17 | v 30.527317 37.503952 -2.733282 18 | v 30.527317 37.503952 -20.266716 19 | v 44.301250 33.964729 -11.500000 20 | v 45.094967 27.710945 2.684846 21 | v 57.936218 30.276533 -11.500000 22 | v 54.503593 5.934020 -11.500000 23 | v 51.091763 11.234900 2.684846 24 | v 45.094967 27.710945 -25.684845 25 | v 39.186256 16.230997 -35.632706 26 | v 51.091763 11.234900 -25.684845 27 | v 27.520809 27.080326 -34.451565 28 | v 4.568314 16.857113 -26.619617 29 | v 1.160379 4.512684 -27.449169 30 | v 22.656172 10.214539 -39.869690 31 | v 7.838881 -6.414188 -26.619617 32 | v 30.910042 -12.462786 -26.414825 33 | v 37.223816 0.421531 -34.451565 34 | v 46.227112 -5.630886 -20.266716 35 | v 32.359184 -16.444252 -11.500000 36 | v 30.910042 -12.462786 3.414829 37 | v 46.227112 -5.630886 -2.733282 38 | v 4.405119 -14.230042 -16.657145 39 | v -4.681486 -8.784435 -10.500000 40 | v 4.405119 -14.230042 -4.342854 41 | v -4.421391 -3.605049 -0.537529 42 | v 7.838881 -6.414188 5.619617 43 | v 37.223816 0.421531 11.451565 44 | v -9.876476 2.961555 -10.500000 45 | v -6.442715 10.777405 -20.462471 46 | v -4.421391 -3.605049 -20.462471 47 | v -41.856613 -0.754846 9.430772 48 | v -27.950212 1.303017 3.081421 49 | v -32.625862 10.860188 8.479760 50 | v -24.401524 12.224749 -3.122690 51 | v -18.826405 5.435883 0.583091 52 | v -11.221268 -4.132547 1.127722 53 | v -44.882015 11.887197 1.421121 54 | v -44.844704 15.228493 -10.000000 55 | v -35.570240 16.598591 -2.941359 56 | v -35.570240 16.598591 -17.058643 57 | v -24.401524 12.224749 -16.877310 58 | v -23.778482 14.142281 -10.000000 59 | v -8.432302 6.445052 -5.957618 60 | v -8.432302 6.445052 -14.042381 61 | v -1.337093 1.108110 -10.000000 62 | v -3.309273 -1.735224 -0.594703 63 | v -0.419668 -7.642198 -10.000000 64 | v -6.305182 -14.182098 -10.000000 65 | v -6.229439 -10.722575 -0.594703 66 | v -3.309273 -1.735224 -19.405296 67 | v -11.221268 -4.132547 -21.127720 68 | v -6.229439 -10.722575 -19.405296 69 | v -18.826405 5.435883 -20.583092 70 | v -32.625862 10.860188 -28.479759 71 | v -41.856613 -0.754846 -29.430771 72 | v -27.950212 1.303017 -23.081421 73 | v -39.194733 -9.356718 -28.479759 74 | v -31.498898 -9.618716 -16.877310 75 | v -22.998137 -7.403383 -20.583092 76 | v -31.498898 -9.618716 -3.122690 77 | v -51.647591 -5.708694 -10.000000 78 | v -49.713837 -2.983590 1.421121 79 | v -39.194733 -9.356718 8.479760 80 | v -22.998137 -7.403383 0.583091 81 | v -50.637024 8.975393 -10.000000 82 | v -44.882015 11.887197 -21.421116 83 | v -49.713837 -2.983590 -21.421116 84 | v -40.671478 -3.472887 -21.369167 85 | v -47.098404 7.389261 -39.585033 86 | v -55.443726 28.016960 -51.020649 87 | v -56.413048 27.518753 -54.602135 88 | v -67.985016 13.435572 -79.020355 89 | v -81.678322 -31.379181 -101.291557 90 | v -87.605835 -39.983532 -104.351723 91 | v -41.963333 -2.246161 -18.485233 92 | v -47.146698 8.704388 -37.681622 93 | v -55.805077 29.500343 -50.360577 94 | v -57.932991 29.207901 -55.039448 95 | v -69.893600 14.105843 -80.144135 96 | v -82.778503 -29.843521 -101.266586 97 | v -87.950195 -39.455147 -104.260185 98 | v -45.274612 -1.921316 -17.562561 99 | v -48.862389 8.964325 -36.150715 100 | v -56.924980 29.827461 -49.555809 101 | v -60.012169 29.560211 -54.086689 102 | v -72.068741 14.206520 -79.360901 103 | v -83.474747 -29.518608 -100.470779 104 | v -88.234985 -39.350231 -103.866043 105 | v -48.111877 -2.742970 -19.296001 106 | v -50.953510 7.973352 -36.145107 107 | v -57.960136 28.752014 -49.212387 108 | v -61.084877 28.310402 -52.461258 109 | v -72.872513 13.661798 -77.260391 110 | v -83.242752 -30.649029 -99.503448 111 | v -88.245728 -39.747742 -103.466080 112 | v -48.338589 -4.092402 -22.380154 113 | v -51.845413 6.477697 -37.669014 114 | v -58.131039 27.083824 -49.588871 115 | v -60.343346 26.399567 -51.387123 116 | v -71.699661 12.881830 -75.424393 117 | v -82.257225 -32.383606 -99.092934 118 | v -87.974380 -40.348385 -103.361534 119 | v -45.784027 -4.953472 -24.492657 120 | v -50.866463 5.603586 -39.574917 121 | v -57.308998 26.079071 -50.401779 122 | v -58.345963 25.266647 -51.673157 123 | v -69.433350 12.453951 -75.235397 124 | v -81.260262 -33.416180 -99.548431 125 | v -87.625252 -40.699837 -103.631096 126 | v -42.371857 -4.677759 -24.042709 127 | v -48.753845 6.009277 -40.427631 128 | v -56.113029 26.494377 -51.038967 129 | v -56.596836 25.764732 -53.103985 130 | v -67.780197 12.700411 -76.835770 131 | v -81.002632 -32.969162 -100.526863 132 | v -87.461220 -40.537483 -104.071754 133 | v -87.871048 -40.017475 -103.858307 134 | v -44.645119 -3.443838 -21.089790 135 | v -41.960121 -3.154671 1.817622 136 | v -49.196304 7.804556 21.293488 137 | v -54.254692 27.272881 30.448885 138 | v -55.486473 27.498093 33.976906 139 | v -67.468346 9.109057 43.496418 140 | v -85.971497 -32.074684 52.638474 141 | v -91.959503 -39.732742 57.540760 142 | v -42.838028 -1.822748 -1.173377 143 | v -49.368126 8.476757 19.085897 144 | v -54.925758 28.342400 29.366055 145 | v -57.455009 28.706230 33.835514 146 | v -69.611961 9.454971 44.296452 147 | v -87.014175 -30.514137 52.422035 148 | v -92.290428 -39.211590 57.382488 149 | v -45.988678 -1.450131 -2.535743 150 | v -50.884972 7.785149 17.480999 151 | v -55.983421 28.087738 28.457573 152 | v -59.415642 28.146988 32.740971 153 | v -71.615807 8.682786 43.434380 154 | v -87.756073 -30.296221 51.631001 155 | v -92.600067 -39.161705 56.996368 156 | v -49.039581 -2.317410 -1.243531 157 | v -52.604645 6.250553 17.687332 158 | v -56.631248 26.700691 28.407564 159 | v -59.891945 26.241493 31.517431 160 | v -71.970940 7.373976 41.559353 161 | v -87.638519 -31.584965 50.861065 162 | v -92.655235 -39.620594 56.673161 163 | v -49.693314 -3.771509 1.730138 164 | v -53.232193 5.028540 19.549484 165 | v -56.381416 25.225716 29.253666 166 | v -58.525230 24.424589 31.086275 167 | v -70.409966 6.514069 40.083332 168 | v -86.750092 -33.409981 50.691986 169 | v -92.414413 -40.242748 56.656296 170 | v -47.457619 -4.717469 4.146055 171 | v -52.295036 5.039291 21.665272 172 | v -55.422035 24.773529 30.358753 173 | v -56.344688 24.064466 31.772144 174 | v -68.108238 6.750601 40.117752 175 | v -85.759720 -34.396961 51.251087 176 | v -92.058937 -40.559631 56.958412 177 | v -44.016029 -4.442948 4.184989 178 | v -50.498901 6.274748 22.441425 179 | v -54.475548 25.684616 30.890648 180 | v -54.992317 25.432327 33.058613 181 | v -66.799141 7.905498 41.636730 182 | v -85.413208 -33.802715 52.117340 183 | v -91.856499 -40.332680 57.352055 184 | v -92.262108 -39.837402 57.079941 185 | v -45.856201 -3.096684 0.989461 186 | v -32.535782 -3.154671 -19.162537 187 | v -35.098988 7.804556 -38.979305 188 | v -37.554058 27.272881 -51.632816 189 | v -36.856800 27.498093 -55.304066 190 | v -39.321587 4.109057 -79.209648 191 | v -40.877087 -32.426605 -89.889732 192 | v -43.385780 -41.583160 -95.218742 193 | v -34.383732 -1.822748 -16.652164 194 | v -36.351589 8.476757 -37.153374 195 | v -38.676632 28.342400 -51.030598 196 | v -38.632298 28.706230 -56.165878 197 | v -40.777988 4.454971 -80.974312 198 | v -41.686413 -30.958584 -90.761086 199 | v -43.694237 -41.068901 -95.434502 200 | v -37.810333 -1.450131 -16.449551 201 | v -38.467670 7.785149 -36.521919 202 | v -40.046833 28.087738 -50.772652 203 | v -40.877529 28.146988 -56.198307 204 | v -42.944405 3.682786 -81.229652 205 | v -42.730568 -30.604935 -90.669960 206 | v -44.167656 -40.946091 -95.343666 207 | v -40.235279 -2.317410 -18.707310 208 | v -39.853783 6.250553 -37.560444 209 | v -40.632877 26.700691 -51.053253 210 | v -41.901775 26.241493 -55.376835 211 | v -44.189468 2.373976 -79.783394 212 | v -43.223267 -31.631912 -89.685066 213 | v -44.449516 -41.307182 -95.014656 214 | v -39.832531 -3.771509 -21.725227 215 | v -39.466175 5.028540 -39.486904 216 | v -39.993458 25.225716 -51.661091 217 | v -40.933758 24.424589 -54.320080 218 | v -43.575638 1.514069 -77.724648 219 | v -42.793549 -33.266224 -88.547981 220 | v -44.327614 -41.880302 -94.695259 221 | v -36.905369 -4.717469 -23.230795 222 | v -37.596676 5.039291 -40.850639 223 | v -38.610062 24.773529 -52.138432 224 | v -38.702415 24.064466 -53.823795 225 | v -41.565083 1.750601 -76.603584 226 | v -41.764935 -34.277184 -88.114983 227 | v -43.893715 -42.233826 -94.625923 228 | v -33.658024 -4.442948 -22.090290 229 | v -35.653107 6.274748 -40.624737 230 | v -37.524441 25.684616 -52.125816 231 | v -36.888000 25.432327 -54.261726 232 | v -39.671886 2.905498 -77.264503 233 | v -40.912052 -33.903522 -88.712090 234 | v -43.474564 -42.101616 -94.858925 235 | v -43.913261 -41.588737 -95.027351 236 | v -36.480152 -3.096684 -19.716850 237 | v -32.202831 -2.602407 -2.728741 238 | v -34.576370 8.107365 17.247396 239 | v -39.058979 27.085625 30.088219 240 | v -38.037266 27.494461 33.666477 241 | v -34.540394 17.314922 46.759007 242 | v -28.008705 -33.484039 66.392296 243 | v -28.327166 -39.131874 75.694695 244 | v -34.502445 -1.655421 -5.032196 245 | v -36.107876 8.519890 15.562401 246 | v -40.406155 27.934097 29.606636 247 | v -39.897282 28.393272 34.709156 248 | v -35.845226 17.436094 48.666241 249 | v -28.966595 -31.870440 66.611580 250 | v -28.696358 -38.612408 75.698051 251 | v -37.944061 -1.883905 -4.875526 252 | v -38.125301 7.461887 15.155594 253 | v -41.730480 27.441978 29.493328 254 | v -41.995846 27.455360 34.976097 255 | v -37.806667 16.306143 49.146633 256 | v -30.060040 -31.714916 66.549873 257 | v -29.190708 -38.598446 75.644356 258 | v -39.936069 -3.115807 -2.376659 259 | v -39.109486 5.730080 16.333321 260 | v -42.034714 25.979904 29.833651 261 | v -42.752686 25.387024 34.266190 262 | v -38.947704 14.775947 47.838451 263 | v -30.465645 -33.134476 66.253670 264 | v -29.437933 -39.100452 75.574059 265 | v -38.978443 -4.423484 0.582626 266 | v -38.319347 4.628540 18.208712 267 | v -41.089756 24.648787 30.371326 268 | v -41.597874 23.745718 33.114037 269 | v -38.409119 13.997741 45.726810 270 | v -29.878033 -35.060257 65.945946 271 | v -29.251896 -39.740452 75.540138 272 | v -35.792297 -4.822233 1.773979 273 | v -36.349819 4.986736 19.369556 274 | v -39.607189 24.451040 30.701448 275 | v -39.401020 23.767401 32.387234 276 | v -36.596428 14.557548 44.401737 277 | v -28.739618 -36.042065 65.858498 278 | v -28.772676 -40.036469 75.568077 279 | v -32.776875 -4.011777 0.300282 280 | v -34.684055 6.534969 18.941736 281 | v -38.703423 25.535545 30.575422 282 | v -37.816402 25.435768 32.633106 283 | v -34.874714 16.033844 44.861141 284 | v -27.907713 -35.340607 66.057121 285 | v -28.361128 -39.765636 75.636909 286 | v -28.862520 -39.283707 75.622292 287 | v -36.019009 -3.216418 -1.765163 288 | v -23.494484 -3.472887 -4.813465 289 | v -14.855604 7.389261 12.463476 290 | v -12.426659 28.016960 26.410450 291 | v -10.523695 27.518753 29.595638 292 | v -0.997257 13.435572 54.882141 293 | v 3.675970 -31.379181 79.706490 294 | v 5.211229 -39.983532 86.198250 295 | v -26.466400 -2.246161 -5.887527 296 | v -16.258350 8.704388 11.176008 297 | v -13.152491 29.500343 26.211857 298 | v -11.264965 29.207901 30.992771 299 | v -1.514698 14.105843 57.035713 300 | v 3.385566 -29.843521 80.767952 301 | v 5.039108 -39.455147 86.510231 302 | v -29.430336 -1.921316 -4.146553 303 | v -18.551411 8.964325 11.346706 304 | v -14.509346 29.827461 26.458410 305 | v -13.394642 29.560211 31.826565 306 | v -3.589094 14.206520 58.056274 307 | v 2.445001 -29.518608 81.251015 308 | v 4.587766 -39.350231 86.691200 309 | v -30.154327 -2.742970 -0.901443 310 | v -20.008060 7.973352 12.847034 311 | v -15.475464 28.752014 26.964478 312 | v -15.309046 28.310402 31.469078 313 | v -5.658417 13.661798 57.175323 314 | v 1.562493 -30.649029 80.791862 315 | v 4.197091 -39.747742 86.604866 316 | v -28.093273 -4.092402 1.404079 317 | v -19.531422 6.477697 14.547209 318 | v -15.323357 27.083824 27.348948 319 | v -15.566597 26.399567 30.189514 320 | v -6.164387 12.881830 55.056259 321 | v 1.402615 -32.383606 79.736290 322 | v 4.161307 -40.348385 86.316307 323 | v -24.799110 -4.953472 1.033955 324 | v -17.480396 5.603586 15.166962 325 | v -14.167568 26.079071 27.322308 326 | v -13.973347 25.266647 28.951418 327 | v -4.726027 12.453951 53.294724 328 | v 2.085765 -33.416180 78.879143 329 | v 4.507323 -40.699837 86.042763 330 | v -22.752468 -4.677759 -1.733124 331 | v -15.399448 6.009277 14.239624 332 | v -12.878420 26.494377 26.904627 333 | v -11.729046 25.764732 28.687138 334 | v -2.426441 12.700411 53.217262 335 | v 3.097473 -32.969162 78.865883 336 | v 4.974566 -40.537483 85.990211 337 | v 4.668339 -40.017475 86.336220 338 | v -26.455776 -3.443838 -2.149143 339 | v -23.494484 -3.472887 -15.186539 340 | v -14.855604 7.389261 -32.463478 341 | v -12.426659 28.016960 -46.410446 342 | v -10.523695 27.518753 -49.595634 343 | v -0.997257 13.435572 -74.882133 344 | v 3.675970 -31.379181 -99.706490 345 | v 5.211229 -39.983532 -106.198250 346 | v -26.466400 -2.246161 -14.112476 347 | v -16.258350 8.704388 -31.176010 348 | v -13.152491 29.500343 -46.211853 349 | v -11.264965 29.207901 -50.992767 350 | v -1.514698 14.105843 -77.035713 351 | v 3.385567 -29.843521 -100.767952 352 | v 5.039108 -39.455147 -106.510231 353 | v -29.430336 -1.921316 -15.853451 354 | v -18.551411 8.964325 -31.346710 355 | v -14.509346 29.827461 -46.458412 356 | v -13.394642 29.560211 -51.826561 357 | v -3.589094 14.206520 -78.056267 358 | v 2.445001 -29.518608 -101.251015 359 | v 4.587765 -39.350231 -106.691200 360 | v -30.154327 -2.742970 -19.098560 361 | v -20.008060 7.973352 -32.847034 362 | v -15.475464 28.752014 -46.964478 363 | v -15.309046 28.310402 -51.469078 364 | v -5.658417 13.661798 -77.175316 365 | v 1.562493 -30.649029 -100.791862 366 | v 4.197090 -39.747742 -106.604866 367 | v -28.093273 -4.092402 -21.404083 368 | v -19.531422 6.477697 -34.547211 369 | v -15.323357 27.083824 -47.348946 370 | v -15.566597 26.399567 -50.189514 371 | v -6.164387 12.881830 -75.056252 372 | v 1.402615 -32.383606 -99.736290 373 | v 4.161308 -40.348385 -106.316307 374 | v -24.799110 -4.953472 -21.033958 375 | v -17.480396 5.603586 -35.166962 376 | v -14.167568 26.079071 -47.322304 377 | v -13.973347 25.266647 -48.951416 378 | v -4.726027 12.453951 -73.294716 379 | v 2.085765 -33.416180 -98.879143 380 | v 4.507324 -40.699837 -106.042763 381 | v -22.752468 -4.677759 -18.266880 382 | v -15.399448 6.009277 -34.239624 383 | v -12.878420 26.494377 -46.904625 384 | v -11.729046 25.764732 -48.687134 385 | v -2.426441 12.700411 -73.217262 386 | v 3.097473 -32.969162 -98.865883 387 | v 4.974566 -40.537483 -105.990211 388 | v 4.668339 -40.017475 -106.336220 389 | v -26.455776 -3.443838 -17.850861 390 | v -11.205212 -7.280232 -5.841879 391 | v -2.877649 5.517601 11.076941 392 | v 1.745674 26.136940 21.007814 393 | v 4.282450 26.647736 23.713144 394 | v 14.860218 5.642468 47.618973 395 | v 19.200661 -29.660152 61.265373 396 | v 19.897118 -38.155197 68.039124 397 | v -14.102657 -6.075779 -7.124460 398 | v -4.907511 6.093641 10.126818 399 | v 0.474552 27.209396 20.979715 400 | v 3.233435 28.024002 25.249430 401 | v 14.560253 6.223589 49.838684 402 | v 18.976063 -28.078100 62.273354 403 | v 19.749865 -37.607536 68.329926 404 | v -17.115952 -5.533359 -5.528418 405 | v -7.036675 5.467060 10.781746 406 | v -0.824137 27.009163 21.510900 407 | v 1.346554 27.595062 26.518511 408 | v 12.858335 5.598270 51.276505 409 | v 18.042278 -27.676632 62.709824 410 | v 19.300247 -37.467232 68.489960 411 | v -17.975994 -6.061425 -2.255571 412 | v -7.661821 4.109711 12.548561 413 | v -1.172436 25.687050 22.201403 414 | v 0.042627 25.683922 26.564661 415 | v 11.036061 4.237392 50.849693 416 | v 17.102531 -28.757996 62.246178 417 | v 18.886868 -37.839897 68.398773 418 | v -16.035194 -7.262345 0.229479 419 | v -6.312249 3.043694 14.096798 420 | v -0.308071 24.238619 22.531248 421 | v 0.303562 23.729671 25.353144 422 | v 10.465651 3.165695 48.879730 423 | v 16.864386 -30.507956 61.231514 424 | v 18.820993 -38.444942 68.125061 425 | v -12.754986 -8.231801 0.055506 426 | v -4.004155 3.071719 14.260595 427 | v 1.118067 23.754597 22.252031 428 | v 1.932854 23.203932 23.796263 429 | v 11.576626 3.190188 46.849907 430 | v 17.507248 -31.608736 60.429893 431 | v 19.152214 -38.826717 67.874832 432 | v -10.605457 -8.239758 -2.646498 433 | v -2.475620 4.172726 12.916639 434 | v 2.032040 24.599438 21.574022 435 | v 3.703634 24.502615 23.066408 436 | v 13.532379 4.292479 46.288857 437 | v 18.546949 -31.231438 60.444954 438 | v 19.631145 -38.697784 67.836639 439 | v 19.348364 -38.148495 68.156281 440 | v -14.256489 -6.954941 -3.301691 441 | v -12.538544 -7.280232 -13.491455 442 | v -4.210981 5.517601 -30.410275 443 | v 0.412342 26.136940 -40.341148 444 | v 2.949118 26.647736 -43.046478 445 | v 13.526886 5.642468 -66.952316 446 | v 17.867329 -29.660152 -80.598724 447 | v 18.563786 -38.155197 -87.372467 448 | v -15.435989 -6.075779 -12.208874 449 | v -6.240843 6.093641 -29.460152 450 | v -0.858780 27.209396 -40.313049 451 | v 1.900103 28.024002 -44.582764 452 | v 13.226921 6.223589 -69.172028 453 | v 17.642731 -28.078100 -81.606705 454 | v 18.416533 -37.607536 -87.663269 455 | v -18.449284 -5.533359 -13.804916 456 | v -8.370007 5.467060 -30.115082 457 | v -2.157469 27.009163 -40.844238 458 | v 0.013222 27.595062 -45.851845 459 | v 11.525003 5.598270 -70.609848 460 | v 16.708946 -27.676632 -82.043167 461 | v 17.966915 -37.467232 -87.823303 462 | v -19.309326 -6.061425 -17.077763 463 | v -8.995153 4.109711 -31.881897 464 | v -2.505768 25.687050 -41.534737 465 | v -1.290705 25.683922 -45.897995 466 | v 9.702729 4.237392 -70.183029 467 | v 15.769199 -28.757996 -81.579529 468 | v 17.553535 -37.839897 -87.732117 469 | v -17.368526 -7.262345 -19.562813 470 | v -7.645581 3.043694 -33.430130 471 | v -1.641403 24.238619 -41.864586 472 | v -1.029770 23.729671 -44.686478 473 | v 9.132318 3.165695 -68.213074 474 | v 15.531054 -30.507956 -80.564865 475 | v 17.487661 -38.444942 -87.458405 476 | v -14.088318 -8.231801 -19.388840 477 | v -5.337487 3.071719 -33.593929 478 | v -0.215265 23.754597 -41.585365 479 | v 0.599522 23.203932 -43.129601 480 | v 10.243294 3.190188 -66.183243 481 | v 16.173916 -31.608736 -79.763245 482 | v 17.818882 -38.826717 -87.208176 483 | v -11.938789 -8.239758 -16.686836 484 | v -3.808952 4.172726 -32.249973 485 | v 0.698708 24.599438 -40.907356 486 | v 2.370302 24.502615 -42.399742 487 | v 12.199047 4.292479 -65.622192 488 | v 17.213617 -31.231438 -79.778305 489 | v 18.297813 -38.697784 -87.169983 490 | v 18.015032 -38.148495 -87.489624 491 | v -15.589821 -6.954941 -16.031643 492 | v -66.772987 -11.885618 -0.202999 493 | v -63.971184 3.661695 -3.830468 494 | v -61.496513 6.340155 -5.812276 495 | v -66.772987 -11.885618 -0.202999 496 | v -64.845985 4.368711 -2.075660 497 | v -61.447578 8.190097 -3.647036 498 | v -66.772987 -11.885618 -0.202999 499 | v -67.137108 4.622091 -1.531196 500 | v -62.557804 11.305613 -3.485914 501 | v -66.772987 -11.885618 -0.202999 502 | v -69.119194 4.231085 -2.607096 503 | v -63.991096 13.340770 -5.450253 504 | v -66.772987 -11.885618 -0.202999 505 | v -69.299873 3.490133 -4.493171 506 | v -64.668205 12.763025 -8.060863 507 | v -66.772987 -11.885618 -0.202999 508 | v -67.542992 2.957121 -5.769162 509 | v -64.079262 10.007396 -9.351896 510 | v -66.772987 -11.885618 -0.202999 511 | v -65.171471 3.033510 -5.474240 512 | v -62.667759 7.148978 -8.351185 513 | v -62.986851 9.870845 -6.308486 514 | v -66.772987 -11.885618 -0.202999 515 | v -66.724846 1.179926 10.029461 516 | v -59.689461 8.144950 1.861810 517 | v -58.212650 12.086802 -3.032124 518 | v -66.724846 1.179926 10.029461 519 | v -57.915882 6.628378 1.958869 520 | v -55.509857 10.279719 -2.976122 521 | v -66.724846 1.179926 10.029461 522 | v -56.296860 6.188433 3.356508 523 | v -52.637226 10.233272 -1.254851 524 | v -66.724846 1.179926 10.029461 525 | v -56.051727 7.156466 5.002278 526 | v -51.757839 11.982401 0.835560 527 | v -66.724846 1.179926 10.029461 528 | v -57.364841 8.803489 5.656901 529 | v -53.533970 14.210047 1.721019 530 | v -66.724846 1.179926 10.029461 531 | v -59.247578 9.889247 4.827473 532 | v -56.628082 15.238695 0.734676 533 | v -66.724846 1.179926 10.029461 534 | v -60.282143 9.596194 3.138459 535 | v -58.710255 14.293749 -1.380639 536 | v -55.284286 12.617801 -0.764661 537 | v -66.724846 1.179926 10.029461 538 | v -53.999989 26.333338 -9.944447 539 | v -53.999989 2.333334 -9.944447 540 | v -50.999989 3.941031 -4.748295 541 | v -53.999989 3.941031 -3.944447 542 | v -55.800003 6.941027 -4.748295 543 | v -57.996159 5.774363 -6.944447 544 | v -58.800007 5.774363 -9.944447 545 | v -43.607685 8.333335 -9.944447 546 | v -45.444431 8.333335 -0.081627 547 | v -48.803837 8.333335 -0.944447 548 | v -53.999989 10.666674 1.822437 549 | v -59.196140 8.333335 -0.944447 550 | v -62.999989 8.333335 -4.748294 551 | v -64.192299 7.533351 -9.944447 552 | v -37.199986 18.654428 -9.944447 553 | v -39.252125 18.654428 -0.061920 554 | v -43.644428 18.654428 3.756354 555 | v -53.999989 14.333338 2.055553 556 | v -61.410072 13.476199 -1.042666 557 | v -64.609299 13.476199 -6.367094 558 | v -66.399986 12.333346 -9.944447 559 | v -38.807682 21.886042 -9.944447 560 | v -40.644428 21.886042 -0.760713 561 | v -44.448277 21.886042 2.546009 562 | v -53.999989 20.333338 0.447858 563 | v -60.293266 19.476198 -2.199143 564 | v -63.063873 19.476198 -6.810235 565 | v -64.392296 20.333338 -9.944447 566 | v -43.199986 24.251795 -9.944447 567 | v -44.003834 24.251795 -7.336517 568 | v -46.644428 24.251795 -0.760711 569 | v -53.999989 24.725641 -3.944446 570 | v -56.999985 24.725641 -4.748293 571 | v -59.196140 24.725641 -6.944447 572 | v -59.999992 24.725641 -9.944447 573 | v -61.567451 17.809526 -2.544080 574 | v -61.859703 18.476198 -3.143273 575 | v -62.298088 18.642870 -4.042075 576 | v -62.736469 18.142870 -4.940860 577 | v -62.955631 16.976198 -5.390261 578 | v -63.247864 16.309526 -5.989458 579 | v -63.320908 15.142870 -6.139256 580 | v -62.955631 14.642870 -5.390261 581 | v -62.371128 14.476198 -4.191869 582 | v -61.640526 15.309526 -2.693877 583 | v -61.421349 16.642870 -2.244477 584 | v -61.724983 18.155695 -3.369263 585 | v -61.894066 18.041590 -3.958856 586 | v -62.070351 17.699663 -4.573657 587 | v -62.118629 16.981066 -4.741918 588 | v -62.201881 16.161669 -5.032282 589 | v -62.366032 15.399149 -5.604844 590 | v -62.332207 15.061815 -5.486823 591 | v -62.077385 15.070856 -4.598178 592 | v -61.738106 15.737185 -3.414914 593 | v -61.553413 16.745081 -2.770823 594 | v -61.582451 17.634455 -2.872150 595 | v -6.305182 -14.182098 -10.000000 596 | v -6.229439 -10.722575 -0.594703 597 | v -6.229439 -10.722575 -19.405296 598 | v -39.194733 -9.356718 -28.479759 599 | v -31.498898 -9.618716 -16.877310 600 | v -22.998137 -7.403383 -20.583092 601 | v -15.182299 -14.329319 -14.042381 602 | v -32.121948 -11.536249 -10.000000 603 | v -31.498898 -9.618716 -3.122690 604 | v -15.182299 -14.329319 -5.957618 605 | v -44.949730 -12.268521 -17.058643 606 | v -51.647591 -5.708694 -10.000000 607 | v -44.949730 -12.268521 -2.941359 608 | v -49.713837 -2.983590 1.421121 609 | v -39.194733 -9.356718 8.479760 610 | v -22.998137 -7.403383 0.583091 611 | v -49.713837 -2.983590 -21.421116 612 | v -53.999989 26.333338 -9.988887 613 | v -53.999989 2.333334 -9.988887 614 | v -50.999989 3.941031 -15.185039 615 | v -53.999989 3.941031 -15.988886 616 | v -55.800003 6.941027 -15.185039 617 | v -57.996159 5.774363 -12.988887 618 | v -58.800007 5.774363 -9.988887 619 | v -43.607685 8.333335 -9.988887 620 | v -45.444431 8.333335 -19.851706 621 | v -48.803837 8.333335 -18.988886 622 | v -53.999989 10.666674 -21.755770 623 | v -59.196140 8.333335 -18.988886 624 | v -62.999989 8.333335 -15.185039 625 | v -64.192299 7.533351 -9.988887 626 | v -37.199986 18.654428 -9.988887 627 | v -39.252125 18.654428 -19.871412 628 | v -43.644428 18.654428 -23.689688 629 | v -53.999989 14.333338 -21.988886 630 | v -61.410072 13.476199 -18.890669 631 | v -64.609299 13.476199 -13.566239 632 | v -66.399986 12.333346 -9.988887 633 | v -38.807682 21.886042 -9.988887 634 | v -40.644428 21.886042 -19.172621 635 | v -44.448277 21.886042 -22.479342 636 | v -53.999989 20.333338 -20.381189 637 | v -60.293266 19.476198 -17.734190 638 | v -63.063873 19.476198 -13.123098 639 | v -64.392296 20.333338 -9.988887 640 | v -43.199986 24.251795 -9.988887 641 | v -44.003834 24.251795 -12.596816 642 | v -46.644428 24.251795 -19.172621 643 | v -53.999989 24.725641 -15.988886 644 | v -56.999985 24.725641 -15.185040 645 | v -59.196140 24.725641 -12.988887 646 | v -59.999992 24.725641 -9.988887 647 | v -61.567451 17.809526 -17.389254 648 | v -61.859703 18.476198 -16.790060 649 | v -62.298088 18.642870 -15.891256 650 | v -62.736469 18.142870 -14.992473 651 | v -62.955631 16.976198 -14.543073 652 | v -63.247864 16.309526 -13.943875 653 | v -63.320908 15.142870 -13.794078 654 | v -62.955631 14.642870 -14.543073 655 | v -62.371128 14.476198 -15.741465 656 | v -61.640526 15.309526 -17.239454 657 | v -61.421349 16.642870 -17.688856 658 | v -61.724983 18.155695 -16.564070 659 | v -61.894066 18.041590 -15.974478 660 | v -62.070351 17.699663 -15.359674 661 | v -62.118629 16.981066 -15.191415 662 | v -62.201881 16.161669 -14.901052 663 | v -62.366032 15.399149 -14.328490 664 | v -62.332207 15.061815 -14.446509 665 | v -62.077385 15.070856 -15.335154 666 | v -61.738106 15.737185 -16.518419 667 | v -61.553413 16.745081 -17.162512 668 | v -61.582451 17.634455 -17.061182 669 | v -66.591156 -11.976528 -20.112152 670 | v -63.789349 3.570786 -16.484684 671 | v -61.314701 6.249245 -14.502876 672 | v -66.591156 -11.976528 -20.112152 673 | v -64.664154 4.277802 -18.239491 674 | v -61.265766 8.099188 -16.668116 675 | v -66.591156 -11.976528 -20.112152 676 | v -66.955276 4.531182 -18.783955 677 | v -62.375992 11.214703 -16.829237 678 | v -66.591156 -11.976528 -20.112152 679 | v -68.937363 4.140175 -17.708055 680 | v -63.809261 13.249859 -14.864899 681 | v -66.591156 -11.976528 -20.112152 682 | v -69.118042 3.399224 -15.821981 683 | v -64.486374 12.672115 -12.254288 684 | v -66.591156 -11.976528 -20.112152 685 | v -67.361160 2.866211 -14.545990 686 | v -63.897427 9.916485 -10.963255 687 | v -66.591156 -11.976528 -20.112152 688 | v -64.989639 2.942601 -14.840912 689 | v -62.485947 7.058069 -11.963966 690 | v -62.805038 9.779934 -14.006666 691 | v -66.591156 -11.976528 -20.112152 692 | v -66.724846 1.234471 -28.696123 693 | v -59.689461 8.199495 -20.528475 694 | v -58.212650 12.141348 -15.634542 695 | v -66.724846 1.234471 -28.696123 696 | v -57.915882 6.682923 -20.625532 697 | v -55.509857 10.334265 -15.690544 698 | v -66.724846 1.234471 -28.696123 699 | v -56.296860 6.242978 -22.023172 700 | v -52.637226 10.287817 -17.411816 701 | v -66.724846 1.234471 -28.696123 702 | v -56.051727 7.211011 -23.668943 703 | v -51.757839 12.036945 -19.502226 704 | v -66.724846 1.234471 -28.696123 705 | v -57.364841 8.858034 -24.323565 706 | v -53.533970 14.264591 -20.387682 707 | v -66.724846 1.234471 -28.696123 708 | v -59.247578 9.943792 -23.494139 709 | v -56.628082 15.293240 -19.401342 710 | v -66.724846 1.234471 -28.696123 711 | v -60.282143 9.650740 -21.805124 712 | v -58.710255 14.348293 -17.286026 713 | v -55.284286 12.672346 -17.902004 714 | v -66.724846 1.234471 -28.696123 715 | v -59.670547 17.670856 -1.853035 716 | v -58.743614 17.518467 -2.271704 717 | v -59.467049 18.406742 -2.538975 718 | v -60.637596 18.103474 -2.337921 719 | v -61.555885 18.154240 -3.372073 720 | v -60.575226 18.690861 -3.431842 721 | v -61.644852 18.262333 -4.609260 722 | v -61.384178 17.941105 -5.717274 723 | v -61.278061 15.979283 -6.500585 724 | v -61.481544 16.983921 -6.448156 725 | v -62.267357 17.284794 -5.621511 726 | v -62.614960 16.491169 -5.094203 727 | v -62.204987 16.131672 -6.081918 728 | v -62.267357 15.544271 -4.988010 729 | v -61.384178 14.979936 -4.639498 730 | v -61.481544 15.243386 -5.814656 731 | v -60.474304 15.084535 -3.543311 732 | v -59.564423 15.709020 -2.636348 733 | v -61.644852 15.446095 -3.584234 734 | v -61.555885 16.324146 -2.705970 735 | v -60.575226 15.874639 -2.406815 736 | v -60.637596 17.027775 -1.946398 737 | v -59.467049 16.666218 -1.905474 738 | v -61.745773 17.311893 -2.839265 739 | v -62.368286 17.410069 -4.243031 740 | v -62.368286 16.334370 -3.851508 741 | v -59.670547 17.404190 -17.880299 742 | v -58.743614 17.251801 -17.461630 743 | v -59.467049 18.140076 -17.194359 744 | v -60.637596 17.836807 -17.395412 745 | v -61.555885 17.887573 -16.361259 746 | v -60.575226 18.424194 -16.301491 747 | v -61.644852 17.995667 -15.124073 748 | v -61.384178 17.674438 -14.016060 749 | v -61.278061 15.712616 -13.232748 750 | v -61.481544 16.717255 -13.285177 751 | v -62.267357 17.018127 -14.111822 752 | v -62.614960 16.224503 -14.639130 753 | v -62.204987 15.865005 -13.651415 754 | v -62.267357 15.277603 -14.745323 755 | v -61.384178 14.713268 -15.093836 756 | v -61.481544 14.976719 -13.918678 757 | v -60.474304 14.817867 -16.190023 758 | v -59.564423 15.442352 -17.096985 759 | v -61.644852 15.179428 -16.149099 760 | v -61.555885 16.057480 -17.027363 761 | v -60.575226 15.607971 -17.326519 762 | v -60.637596 16.761108 -17.786934 763 | v -59.467049 16.399551 -17.827860 764 | v -61.745773 17.045227 -16.894068 765 | v -62.368286 17.143402 -15.490303 766 | v -62.368286 16.067703 -15.881825 767 | # 762 vertices 768 | 769 | vt 0.186192 0.222718 770 | vt 0.503180 0.039063 771 | vt 0.236448 0.237339 772 | vt 0.381464 0.276197 773 | vt 0.574917 0.134554 774 | vt 0.746941 0.113737 775 | vt 0.074073 0.345855 776 | vt 0.049334 0.521438 777 | vt 0.156004 0.412922 778 | vt 0.156004 0.629954 779 | vt 0.381464 0.801928 780 | vt 0.360095 0.539063 781 | vt 0.619252 0.384554 782 | vt 0.619252 0.693571 783 | vt 0.822369 0.539063 784 | vt 0.834074 0.289063 785 | vt 1.023438 0.539063 786 | vt 0.972818 0.539063 787 | vt 0.922506 0.289063 788 | vt 0.834074 0.789063 789 | vt 0.746941 0.964388 790 | vt 0.922506 0.789063 791 | vt 0.574917 0.943571 792 | vt 0.236448 0.805537 793 | vt 0.186192 0.820158 794 | vt 0.503180 1.039063 795 | vt 0.284677 0.805537 796 | vt 0.624896 0.801928 797 | vt 0.718002 0.943571 798 | vt 0.850769 0.693571 799 | vt 0.646266 0.539063 800 | vt 0.624896 0.276197 801 | vt 0.850769 0.384554 802 | vt 0.234041 0.629954 803 | vt 0.100045 0.521438 804 | vt 0.234041 0.412922 805 | vt 0.103881 0.345855 806 | vt 0.284677 0.237339 807 | vt 0.718002 0.134554 808 | vt 0.023438 0.521438 809 | vt 0.074073 0.697021 810 | vt 0.103881 0.697021 811 | vt -0.065871 -0.410016 812 | vt 0.403088 -0.109437 813 | vt 0.127441 -0.364995 814 | vt 0.403088 0.184267 815 | vt 0.678735 0.008835 816 | vt 1.058291 -0.016948 817 | vt -0.318566 -0.030837 818 | vt -0.355704 0.509840 819 | vt -0.042919 0.175683 820 | vt -0.042919 0.843998 821 | vt 0.403088 0.835414 822 | vt 0.403088 0.509840 823 | vt 1.035339 0.318473 824 | vt 1.035339 0.701207 825 | vt 1.348124 0.509840 826 | vt 1.310985 0.064592 827 | vt 1.481345 0.509840 828 | vt 1.310985 0.955089 829 | vt 1.058291 1.036629 830 | vt 0.678735 1.010846 831 | vt 0.127441 1.384675 832 | vt -0.065871 1.429696 833 | vt 0.403088 1.129117 834 | vt -0.488925 0.509840 835 | vt -0.318566 1.050518 836 | vt 0.000000 1.000000 837 | vt 0.000000 0.000000 838 | vt 0.000000 0.166667 839 | vt 0.142857 0.166667 840 | vt 0.142857 0.000000 841 | vt 0.000000 0.333333 842 | vt 0.142857 0.333333 843 | vt 0.000000 0.500000 844 | vt 0.142857 0.500000 845 | vt 0.000000 0.666667 846 | vt 0.142857 0.666667 847 | vt 0.000000 0.833333 848 | vt 0.142857 0.833333 849 | vt 0.142857 1.000000 850 | vt 0.285714 0.000000 851 | vt 0.285714 0.166667 852 | vt 0.285714 0.333333 853 | vt 0.285714 0.500000 854 | vt 0.285714 0.666667 855 | vt 0.285714 0.833333 856 | vt 0.285714 1.000000 857 | vt 0.428571 0.166667 858 | vt 0.428571 0.000000 859 | vt 0.428571 0.333333 860 | vt 0.428571 0.500000 861 | vt 0.428571 0.666667 862 | vt 0.428571 0.833333 863 | vt 0.428571 1.000000 864 | vt 0.571429 0.000000 865 | vt 0.571429 0.166667 866 | vt 0.571429 0.333333 867 | vt 0.571429 0.500000 868 | vt 0.571429 0.666667 869 | vt 0.571429 0.833333 870 | vt 0.571429 1.000000 871 | vt 0.714286 0.166667 872 | vt 0.714286 0.000000 873 | vt 0.714286 0.333333 874 | vt 0.714286 0.500000 875 | vt 0.714286 0.666667 876 | vt 0.714286 0.833333 877 | vt 0.714286 1.000000 878 | vt 0.857143 0.000000 879 | vt 0.857143 0.166667 880 | vt 0.857143 0.333333 881 | vt 0.857143 0.500000 882 | vt 0.857143 0.666667 883 | vt 0.857143 0.833333 884 | vt 0.857143 1.000000 885 | vt 1.000000 0.166667 886 | vt 1.000000 0.000000 887 | vt 1.000000 0.333333 888 | vt 1.000000 0.500000 889 | vt 1.000000 0.666667 890 | vt 1.000000 0.833333 891 | vt 1.000000 1.000000 892 | vt 0.332919 0.272694 893 | vt 0.446895 0.397773 894 | vt 0.456977 0.422004 895 | vt 0.402899 0.410469 896 | vt 0.406626 0.379392 897 | vt 0.370970 0.384244 898 | vt 0.399625 0.431850 899 | vt 0.359907 0.385983 900 | vt 0.439539 0.445817 901 | vt 0.381768 0.383299 902 | vt 0.492584 0.441852 903 | vt 0.420092 0.378214 904 | vt 0.518816 0.422941 905 | vt 0.446019 0.374556 906 | vt 0.498483 0.403324 907 | vt 0.440026 0.375080 908 | vt 0.344810 0.338084 909 | vt 0.488018 0.424091 910 | vt 0.463158 0.428278 911 | vt 0.487405 0.409841 912 | vt 0.434361 0.393007 913 | vt 0.433297 0.381048 914 | vt 0.468532 0.409475 915 | vt 0.417973 0.377579 916 | vt 0.445613 0.423268 917 | vt 0.399928 0.385213 918 | vt 0.435904 0.440834 919 | vt 0.392751 0.398200 920 | vt 0.446719 0.448945 921 | vt 0.401845 0.406762 922 | vt 0.469911 0.441494 923 | vt 0.420363 0.404451 924 | vt 0.190349 0.913269 925 | vt 0.000000 0.913269 926 | vt 0.670306 0.913269 927 | vt 0.379259 0.066987 928 | vt 0.437931 0.066987 929 | vt 0.437931 0.933013 930 | vt 0.379259 0.191987 931 | vt 0.379259 0.933013 932 | vt 0.218965 0.143376 933 | vt 0.218965 0.933013 934 | vt 0.000000 0.143376 935 | vt 0.000000 0.933013 936 | vt 0.719872 0.250000 937 | vt 0.656896 0.250000 938 | vt 0.858846 0.347222 939 | vt 0.379259 0.250000 940 | vt 0.000000 0.216667 941 | vt 0.000000 0.250000 942 | vt 0.000000 0.680045 943 | vt 0.721310 0.680045 944 | vt 1.000000 0.680045 945 | vt 0.875861 0.500000 946 | vt 0.649727 0.464286 947 | vt 0.261105 0.464286 948 | vt 0.000000 0.416667 949 | vt 0.000000 0.814696 950 | vt 0.670306 0.814696 951 | vt 0.911659 0.814696 952 | vt 0.758518 0.750000 953 | vt 0.565318 0.714286 954 | vt 0.228761 0.714286 955 | vt 0.000000 0.750000 956 | vt 0.277735 0.533731 957 | vt 0.316741 0.544409 958 | vt 0.325355 0.530353 959 | vt 0.332403 0.512897 960 | vt 0.419872 0.505953 961 | vt 0.390216 0.530730 962 | vt 0.476580 0.558494 963 | vt 0.529208 0.540675 964 | vt 0.523592 0.600489 965 | vt 0.562009 0.596231 966 | vt 0.516196 0.637547 967 | vt 0.540141 0.644841 968 | vt 0.479912 0.659265 969 | vt 0.496407 0.672619 970 | vt 0.430805 0.679564 971 | vt 0.436879 0.654511 972 | vt 0.365204 0.658731 973 | vt 0.392006 0.640264 974 | vt 0.379724 0.610322 975 | vt 0.332403 0.610119 976 | vt 0.358531 0.576181 977 | vt 0.288668 0.582341 978 | vt 0.445345 0.686077 979 | vt 0.607126 0.786343 980 | vt 0.816422 0.609373 981 | vt 0.978203 0.754476 982 | vt 0.445345 0.500000 983 | vt 0.445345 0.313923 984 | vt 0.816422 0.390627 985 | vt 0.183578 0.690983 986 | vt 0.183578 0.309017 987 | vt 0.021797 0.190983 988 | vt 0.283564 0.000000 989 | vt 0.607126 0.213657 990 | vt 0.978203 0.245524 991 | vt 0.283564 1.000000 992 | vt 0.021797 0.809017 993 | vt 1.000000 0.913269 994 | vt 0.809651 0.913269 995 | vt 0.329694 0.913269 996 | vt 0.562069 0.066987 997 | vt 0.620741 0.066987 998 | vt 0.562069 0.933013 999 | vt 0.620741 0.191987 1000 | vt 0.620741 0.933013 1001 | vt 0.781035 0.143376 1002 | vt 0.781035 0.933013 1003 | vt 1.000000 0.143376 1004 | vt 1.000000 0.933013 1005 | vt 0.343104 0.250000 1006 | vt 0.280128 0.250000 1007 | vt 0.141154 0.347222 1008 | vt 0.620741 0.250000 1009 | vt 1.000000 0.216667 1010 | vt 1.000000 0.250000 1011 | vt 0.278690 0.680045 1012 | vt 0.124139 0.500000 1013 | vt 0.350273 0.464286 1014 | vt 0.738895 0.464286 1015 | vt 1.000000 0.416667 1016 | vt 0.329694 0.814696 1017 | vt 1.000000 0.814696 1018 | vt 0.088341 0.814696 1019 | vt 0.241482 0.750000 1020 | vt 0.434682 0.714286 1021 | vt 0.771239 0.714286 1022 | vt 1.000000 0.750000 1023 | vt 0.674645 0.530353 1024 | vt 0.683259 0.544409 1025 | vt 0.722265 0.533731 1026 | vt 0.667597 0.512897 1027 | vt 0.580128 0.505953 1028 | vt 0.609784 0.530730 1029 | vt 0.523420 0.558494 1030 | vt 0.470792 0.540675 1031 | vt 0.437991 0.596231 1032 | vt 0.476408 0.600489 1033 | vt 0.459859 0.644841 1034 | vt 0.483804 0.637547 1035 | vt 0.520088 0.659265 1036 | vt 0.503593 0.672619 1037 | vt 0.569195 0.679564 1038 | vt 0.563121 0.654511 1039 | vt 0.634796 0.658731 1040 | vt 0.607995 0.640264 1041 | vt 0.620276 0.610322 1042 | vt 0.667597 0.610119 1043 | vt 0.641469 0.576181 1044 | vt 0.711332 0.582341 1045 | vt 1.046875 0.772010 1046 | vt 0.956791 0.730945 1047 | vt 0.899283 0.970312 1048 | vt 0.942544 0.888589 1049 | vt 0.720028 0.902269 1050 | vt 0.707168 1.046875 1051 | vt 0.453826 0.931398 1052 | vt 0.215418 0.844835 1053 | vt 0.058156 0.586898 1054 | vt 0.236023 0.667976 1055 | vt 0.349482 0.454114 1056 | vt 0.136958 0.357239 1057 | vt 0.046875 0.316174 1058 | vt 0.372331 0.198949 1059 | vt 0.447320 0.046875 1060 | vt 0.194464 0.117868 1061 | vt 0.683183 0.075062 1062 | vt 0.674378 0.172493 1063 | vt 0.863351 0.409106 1064 | vt 0.927720 0.287975 1065 | vt 0.878332 0.243345 1066 | vt 1.026786 0.598716 1067 | vt 1.035592 0.501285 1068 | vt 0.834671 0.675278 1069 | vt 0.532626 0.701734 1070 | vt 0.616869 0.411861 1071 | # 302 texture coordinates 1072 | 1073 | vn -0.537588 -0.071798 0.840146 1074 | vn -0.151555 -0.017111 0.988301 1075 | vn -0.510264 0.347193 0.786822 1076 | vn -0.383883 0.724753 0.572160 1077 | vn 0.006791 0.547083 0.837051 1078 | vn 0.441964 0.160862 0.882492 1079 | vn -0.810413 0.184718 0.555976 1080 | vn -0.915534 0.402240 -0.000000 1081 | vn -0.710113 0.620185 0.333331 1082 | vn -0.721673 0.607891 -0.331145 1083 | vn -0.413629 0.701858 -0.579920 1084 | vn -0.409411 0.912350 0.000434 1085 | vn 0.132323 0.938010 0.320355 1086 | vn 0.132323 0.938010 -0.320355 1087 | vn 0.339768 0.940509 -0.000000 1088 | vn 0.481852 0.617859 0.621345 1089 | vn 0.881337 0.472488 -0.000000 1090 | vn 0.942952 -0.332930 -0.000000 1091 | vn 0.795204 -0.092522 0.599242 1092 | vn 0.481852 0.617859 -0.621345 1093 | vn 0.441964 0.160862 -0.882492 1094 | vn 0.795204 -0.092522 -0.599242 1095 | vn -0.012521 0.539701 -0.841764 1096 | vn -0.544858 0.327294 -0.772016 1097 | vn -0.561303 -0.075179 -0.824189 1098 | vn -0.195775 -0.027076 -0.980275 1099 | vn -0.299847 -0.529265 -0.793707 1100 | vn 0.144885 -0.802478 -0.578824 1101 | vn 0.343163 -0.420370 -0.839957 1102 | vn 0.704306 -0.633502 -0.320355 1103 | vn 0.260986 -0.965343 0.000322 1104 | vn 0.173226 -0.803252 0.569894 1105 | vn 0.704306 -0.633502 0.320355 1106 | vn -0.346230 -0.872998 -0.343510 1107 | vn -0.769195 -0.639014 0.000000 1108 | vn -0.334289 -0.877615 0.343575 1109 | vn -0.728104 -0.400942 0.555976 1110 | vn -0.264904 -0.527345 0.807300 1111 | vn 0.359321 -0.413990 0.836362 1112 | vn -0.990268 -0.139173 -0.000000 1113 | vn -0.810413 0.184718 -0.555976 1114 | vn -0.728104 -0.400942 -0.555976 1115 | vn -0.236279 0.029185 0.971247 1116 | vn 0.320907 -0.108176 0.940913 1117 | vn 0.232851 0.492069 0.838838 1118 | vn 0.401159 0.816009 0.416173 1119 | vn 0.362076 0.383575 0.849571 1120 | vn 0.126098 -0.040972 0.991171 1121 | vn -0.604687 0.614896 0.506218 1122 | vn -0.478910 0.877864 -0.000000 1123 | vn 0.038576 0.969348 0.242645 1124 | vn 0.038576 0.969348 -0.242645 1125 | vn 0.401159 0.816009 -0.416173 1126 | vn 0.360915 0.932599 0.000000 1127 | vn 0.494411 0.798675 0.343038 1128 | vn 0.494411 0.798675 -0.343038 1129 | vn 0.861265 0.508156 -0.000000 1130 | vn 0.647910 0.246087 0.720870 1131 | vn 0.951057 -0.309017 -0.000000 1132 | vn 0.743317 -0.668940 -0.000000 1133 | vn 0.535463 -0.362827 0.762651 1134 | vn 0.647910 0.246086 -0.720870 1135 | vn 0.126098 -0.040972 -0.991171 1136 | vn 0.535463 -0.362827 -0.762651 1137 | vn 0.362076 0.383575 -0.849571 1138 | vn 0.232851 0.492069 -0.838838 1139 | vn -0.236279 0.029185 -0.971247 1140 | vn 0.320907 -0.108176 -0.940913 1141 | vn 0.132934 -0.415219 -0.899956 1142 | vn 0.188857 -0.970911 -0.147192 1143 | vn 0.199321 -0.435181 -0.878003 1144 | vn -0.862018 0.083023 0.500032 1145 | vn 0.132934 -0.415219 0.899956 1146 | vn 0.199321 -0.435181 0.878002 1147 | vn 0.188857 -0.970911 0.147192 1148 | vn -0.930205 0.367040 -0.000000 1149 | vn -0.997640 0.068658 -0.000000 1150 | vn -0.604687 0.614896 -0.506218 1151 | vn -0.862018 0.083023 -0.500032 1152 | vn 0.021383 -0.916512 0.399436 1153 | vn -0.781862 -0.431561 -0.449942 1154 | vn 0.956336 0.228461 -0.182283 1155 | vn 0.833901 -0.104561 -0.541919 1156 | vn 0.767800 0.601842 0.219702 1157 | vn 0.546124 0.782549 0.298940 1158 | vn 0.910925 0.174919 -0.373656 1159 | vn 0.748758 0.661676 -0.039313 1160 | vn 0.949258 -0.047485 -0.310893 1161 | vn 0.406836 0.802260 -0.436879 1162 | vn 0.769156 0.182669 -0.612398 1163 | vn 0.199512 0.609083 -0.767602 1164 | vn 0.667603 0.001959 -0.744515 1165 | vn -0.099388 0.414937 -0.904405 1166 | vn 0.352774 0.079499 -0.932325 1167 | vn -0.283318 0.420843 -0.861755 1168 | vn -0.057479 0.857527 0.511218 1169 | vn 0.131724 0.743022 0.656177 1170 | vn -0.005809 0.859552 0.511016 1171 | vn -0.350571 0.931431 -0.097655 1172 | vn -0.647693 0.664816 -0.372173 1173 | vn -0.898309 0.404808 -0.170794 1174 | vn -0.866249 0.480043 -0.138459 1175 | vn -0.715121 0.360250 0.599018 1176 | vn -0.866625 0.341770 0.363530 1177 | vn -0.662377 0.297013 0.687780 1178 | vn -0.811725 0.388839 0.435782 1179 | vn -0.950899 0.243388 0.191190 1180 | vn -0.846773 0.078043 0.526199 1181 | vn -0.759416 0.140950 0.635154 1182 | vn -0.940011 -0.340515 -0.020693 1183 | vn -0.972400 -0.204991 0.111430 1184 | vn -0.817030 -0.331766 0.471585 1185 | vn -0.616700 -0.385898 0.686122 1186 | vn -0.565415 -0.413211 0.713837 1187 | vn -0.342437 -0.316577 0.884599 1188 | vn -0.263317 -0.310224 0.913469 1189 | vn -0.492073 -0.677280 -0.546952 1190 | vn -0.216535 -0.832588 -0.509814 1191 | vn -0.336313 -0.936688 -0.097510 1192 | vn 0.085084 -0.882948 0.461697 1193 | vn 0.196057 -0.733951 0.650291 1194 | vn 0.454815 -0.615703 0.643470 1195 | vn 0.489338 -0.710824 0.505250 1196 | vn 0.458185 -0.654603 -0.601300 1197 | vn 0.273617 -0.575276 -0.770838 1198 | vn 0.557258 -0.641859 -0.526765 1199 | vn 0.770791 -0.636825 0.018306 1200 | vn 0.873238 -0.487283 0.003170 1201 | vn 0.878760 -0.285726 -0.382285 1202 | vn 0.775252 -0.453136 -0.440060 1203 | vn 0.076768 -0.902254 -0.424317 1204 | vn -0.760858 -0.310029 0.570067 1205 | vn 0.698983 0.632728 -0.333285 1206 | vn 0.918945 -0.018611 0.393945 1207 | vn 0.946923 0.242706 0.210787 1208 | vn 0.597706 0.775902 -0.201801 1209 | vn 0.898457 0.395975 0.189682 1210 | vn 0.584977 0.777578 -0.230597 1211 | vn 0.061121 0.865503 0.497161 1212 | vn 0.814891 0.173456 0.553052 1213 | vn 0.488324 0.052196 0.871100 1214 | vn -0.073338 0.372458 0.925147 1215 | vn -0.168557 0.420636 0.891433 1216 | vn 0.562606 0.011650 0.826643 1217 | vn 0.424549 0.220069 0.878253 1218 | vn -0.202274 0.574889 0.792835 1219 | vn -0.201495 0.870711 -0.448622 1220 | vn -0.147519 0.700066 -0.698674 1221 | vn -0.247406 0.680029 -0.690182 1222 | vn -0.659229 0.742690 -0.117596 1223 | vn -0.823828 0.514402 0.238115 1224 | vn -0.880755 0.462224 0.103053 1225 | vn -0.835446 0.538148 0.111476 1226 | vn -0.835433 0.291149 -0.466138 1227 | vn -0.799017 0.476863 -0.366296 1228 | vn -0.796565 -0.008375 -0.604495 1229 | vn -0.746076 0.124458 -0.654126 1230 | vn -0.847027 0.257512 -0.465008 1231 | vn -0.774335 0.094113 -0.625738 1232 | vn -0.799434 0.067311 -0.596971 1233 | vn -0.914826 -0.403289 0.021240 1234 | vn -0.960708 -0.276547 0.023720 1235 | vn -0.776094 -0.562737 -0.284613 1236 | vn -0.248105 -0.514857 -0.820589 1237 | vn -0.231599 -0.234207 -0.944198 1238 | vn -0.235950 -0.324119 -0.916119 1239 | vn -0.342337 -0.448272 -0.825747 1240 | vn -0.389047 -0.677991 0.623675 1241 | vn -0.286549 -0.868467 0.404542 1242 | vn -0.058292 -0.911347 0.407491 1243 | vn 0.455951 -0.795072 -0.399962 1244 | vn 0.489715 -0.524665 -0.696352 1245 | vn 0.515843 -0.636580 -0.573300 1246 | vn 0.423912 -0.809501 -0.406210 1247 | vn 0.535603 -0.635581 0.556027 1248 | vn 0.490862 -0.467516 0.735176 1249 | vn 0.731377 -0.368576 0.573793 1250 | vn 0.890119 -0.387697 0.239538 1251 | vn 0.883630 -0.404120 0.236399 1252 | vn 0.822699 -0.324540 0.466733 1253 | vn 0.789247 -0.408589 0.458414 1254 | vn -0.072988 -0.902254 0.424984 1255 | vn -0.288148 -0.512224 -0.809072 1256 | vn 0.918806 0.383987 0.091372 1257 | vn 0.993163 0.114096 -0.024688 1258 | vn 0.434383 0.709098 0.555420 1259 | vn 0.471863 0.805177 0.359216 1260 | vn 0.868051 0.441893 0.226313 1261 | vn 0.386966 0.811178 0.438461 1262 | vn 0.971729 0.236044 0.005163 1263 | vn 0.277939 0.903859 -0.325252 1264 | vn 0.907561 0.183989 -0.377467 1265 | vn 0.389798 0.457680 -0.799116 1266 | vn 0.974181 -0.045977 -0.221037 1267 | vn 0.441749 0.266583 -0.856616 1268 | vn 0.886674 0.017475 -0.462065 1269 | vn 0.372092 0.327554 -0.868479 1270 | vn -0.385080 0.834046 0.395071 1271 | vn -0.476106 0.659961 0.581185 1272 | vn -0.556161 0.685573 0.469761 1273 | vn -0.626859 0.745436 -0.226656 1274 | vn -0.554271 0.436146 -0.708915 1275 | vn -0.561559 0.310302 -0.767049 1276 | vn -0.543810 0.416915 -0.728322 1277 | vn -0.974714 0.176358 0.137223 1278 | vn -0.917252 0.369282 0.149263 1279 | vn -0.982764 -0.036304 0.181267 1280 | vn -0.987205 0.070377 0.143084 1281 | vn -0.988708 0.090661 -0.119319 1282 | vn -0.995465 0.069805 -0.064628 1283 | vn -0.986899 0.153108 -0.050882 1284 | vn -0.785702 -0.546219 -0.290374 1285 | vn -0.802167 -0.447423 -0.395400 1286 | vn -0.788300 -0.609188 -0.086443 1287 | vn -0.635308 -0.586832 0.502008 1288 | vn -0.748920 -0.342648 0.567196 1289 | vn -0.829075 -0.199820 0.522213 1290 | vn -0.811409 -0.243593 0.531299 1291 | vn -0.029726 -0.712976 -0.700558 1292 | vn -0.121255 -0.870385 -0.477207 1293 | vn 0.151176 -0.929851 -0.335445 1294 | vn 0.202841 -0.825731 0.526331 1295 | vn 0.080914 -0.528183 0.845266 1296 | vn 0.010675 -0.474241 0.880330 1297 | vn 0.014489 -0.635546 0.771927 1298 | vn 0.742724 -0.545146 -0.388814 1299 | vn 0.786510 -0.383302 -0.484233 1300 | vn 0.920594 -0.358142 -0.155695 1301 | vn 0.889767 -0.359426 0.281297 1302 | vn 0.873005 -0.294226 0.388965 1303 | vn 0.907656 -0.291730 0.301752 1304 | vn 0.863097 -0.445709 0.237502 1305 | vn 0.041443 -0.908865 -0.415027 1306 | vn -0.109957 -0.084548 0.990334 1307 | vn 0.245131 0.763260 -0.597783 1308 | vn 0.955445 0.284327 -0.079261 1309 | vn 0.823805 0.535171 -0.186913 1310 | vn 0.285353 0.867913 -0.406571 1311 | vn 0.750150 0.580981 -0.315809 1312 | vn 0.193001 0.857724 -0.476509 1313 | vn 0.122062 0.961258 0.247151 1314 | vn 0.890764 0.429947 -0.147257 1315 | vn 0.869360 0.404802 0.283458 1316 | vn 0.342558 0.602318 0.721018 1317 | vn 0.449593 0.557051 0.698255 1318 | vn 0.979971 0.160598 0.117751 1319 | vn 0.912952 0.330027 0.240004 1320 | vn 0.396960 0.742707 0.539267 1321 | vn -0.562652 0.747701 -0.352655 1322 | vn -0.640733 0.557163 -0.528234 1323 | vn -0.712118 0.570582 -0.409053 1324 | vn -0.719414 0.632988 0.285953 1325 | vn -0.541635 0.392908 0.743139 1326 | vn -0.506872 0.445328 0.738081 1327 | vn -0.530036 0.658014 0.534864 1328 | vn -0.999398 0.002857 -0.034586 1329 | vn -0.977859 0.202556 -0.052566 1330 | vn -0.974887 -0.208763 -0.077548 1331 | vn -0.990809 -0.134971 -0.008911 1332 | vn -0.971468 -0.084083 0.221765 1333 | vn -0.983987 -0.035832 0.174602 1334 | vn -0.987930 0.055655 0.144559 1335 | vn -0.644785 -0.668339 0.370912 1336 | vn -0.667256 -0.571980 0.477084 1337 | vn -0.657389 -0.734501 0.168369 1338 | vn -0.560535 -0.736307 -0.379015 1339 | vn -0.692904 -0.540327 -0.477421 1340 | vn -0.805447 -0.450708 -0.384860 1341 | vn -0.807097 -0.552297 -0.208715 1342 | vn 0.166809 -0.694562 0.699828 1343 | vn 0.081505 -0.869441 0.487268 1344 | vn 0.344060 -0.883528 0.317807 1345 | vn 0.303265 -0.806548 -0.507455 1346 | vn 0.132506 -0.587487 -0.798312 1347 | vn 0.022610 -0.693630 -0.719976 1348 | vn 0.045100 -0.923914 -0.379933 1349 | vn 0.862122 -0.401541 0.309048 1350 | vn 0.886724 -0.232862 0.399368 1351 | vn 0.979859 -0.190892 0.058615 1352 | vn 0.901262 -0.198277 -0.385245 1353 | vn 0.854374 -0.181939 -0.486768 1354 | vn 0.901238 -0.252507 -0.352151 1355 | vn 0.898278 -0.412999 -0.150093 1356 | vn -0.272473 -0.916512 -0.292854 1357 | vn 0.247462 -0.431597 0.867460 1358 | vn 0.375319 0.601842 -0.704927 1359 | vn 0.969100 -0.104559 -0.223412 1360 | vn 0.795449 0.228463 -0.561307 1361 | vn 0.164332 0.782548 -0.600511 1362 | vn 0.901567 0.174919 -0.395701 1363 | vn 0.548411 0.661676 -0.511303 1364 | vn 0.596875 0.802261 0.010829 1365 | vn 0.883048 -0.047484 -0.466875 1366 | vn 0.975847 0.140489 -0.167289 1367 | vn 0.695006 0.600563 0.395335 1368 | vn 0.804391 0.375485 0.460397 1369 | vn 0.950455 -0.062330 -0.304551 1370 | vn 0.989975 0.079498 -0.116747 1371 | vn 0.767612 0.420846 0.483385 1372 | vn -0.407667 0.857527 -0.313775 1373 | vn -0.380509 0.743022 -0.550574 1374 | vn -0.371629 0.859552 -0.350803 1375 | vn -0.173281 0.931431 0.320017 1376 | vn -0.088344 0.681833 0.726154 1377 | vn -0.097862 0.460784 0.882100 1378 | vn -0.075217 0.480042 0.874015 1379 | vn -0.927662 0.360250 0.098302 1380 | vn -0.863510 0.341772 0.370868 1381 | vn -0.954873 0.297012 -0.001297 1382 | vn -0.877348 0.388838 0.281187 1383 | vn -0.798205 0.258643 0.544033 1384 | vn -0.830945 0.129933 0.540970 1385 | vn -0.800009 0.140946 0.583197 1386 | vn -0.638103 -0.340513 0.690562 1387 | vn -0.755642 -0.204991 0.622080 1388 | vn -0.906786 -0.331767 0.260133 1389 | vn -0.921950 -0.385899 -0.033004 1390 | vn -0.932303 -0.360848 -0.024508 1391 | vn -0.971643 -0.236380 0.005919 1392 | vn -0.950036 -0.310227 0.034503 1393 | vn 0.051621 -0.677280 0.733912 1394 | vn 0.216310 -0.832587 0.509910 1395 | vn -0.163481 -0.936688 0.309662 1396 | vn -0.273013 -0.882948 -0.381925 1397 | vn -0.334489 -0.728676 -0.597619 1398 | vn -0.408235 -0.602580 -0.685741 1399 | vn -0.371857 -0.710825 -0.597035 1400 | vn 0.750822 -0.654602 0.088107 1401 | vn 0.744565 -0.575276 0.338646 1402 | vn 0.766027 -0.641859 -0.034936 1403 | vn 0.522268 -0.636825 -0.567176 1404 | vn 0.527667 -0.527467 -0.665842 1405 | vn 0.641037 -0.375221 -0.669538 1406 | vn 0.614542 -0.453134 -0.645761 1407 | vn -0.272476 -0.916512 0.292854 1408 | vn 0.247445 -0.431549 -0.867488 1409 | vn 0.795449 0.228463 0.561307 1410 | vn 0.969100 -0.104559 0.223412 1411 | vn 0.375318 0.601842 0.704927 1412 | vn 0.164332 0.782548 0.600511 1413 | vn 0.901567 0.174919 0.395701 1414 | vn 0.548410 0.661676 0.511303 1415 | vn 0.883047 -0.047485 0.466875 1416 | vn 0.596875 0.802261 -0.010829 1417 | vn 0.975847 0.140489 0.167289 1418 | vn 0.695006 0.600564 -0.395336 1419 | vn 0.950454 -0.062330 0.304551 1420 | vn 0.804391 0.375485 -0.460397 1421 | vn 0.989975 0.079498 0.116747 1422 | vn 0.767611 0.420846 -0.483385 1423 | vn -0.407667 0.857527 0.313775 1424 | vn -0.380509 0.743022 0.550574 1425 | vn -0.371629 0.859552 0.350803 1426 | vn -0.173281 0.931431 -0.320017 1427 | vn -0.088345 0.681833 -0.726154 1428 | vn -0.097862 0.460784 -0.882100 1429 | vn -0.075217 0.480042 -0.874015 1430 | vn -0.927662 0.360250 -0.098302 1431 | vn -0.863510 0.341772 -0.370868 1432 | vn -0.954873 0.297012 0.001297 1433 | vn -0.877348 0.388838 -0.281187 1434 | vn -0.798205 0.258643 -0.544033 1435 | vn -0.830945 0.129933 -0.540970 1436 | vn -0.800010 0.140945 -0.583196 1437 | vn -0.638103 -0.340513 -0.690562 1438 | vn -0.755642 -0.204991 -0.622081 1439 | vn -0.906786 -0.331767 -0.260133 1440 | vn -0.921950 -0.385899 0.033004 1441 | vn -0.932303 -0.360848 0.024508 1442 | vn -0.971643 -0.236380 -0.005919 1443 | vn -0.950036 -0.310227 -0.034503 1444 | vn 0.051621 -0.677280 -0.733912 1445 | vn 0.216310 -0.832587 -0.509910 1446 | vn -0.163481 -0.936687 -0.309662 1447 | vn -0.273013 -0.882948 0.381925 1448 | vn -0.334488 -0.728676 0.597620 1449 | vn -0.408235 -0.602580 0.685741 1450 | vn -0.371857 -0.710825 0.597035 1451 | vn 0.750822 -0.654602 -0.088107 1452 | vn 0.744565 -0.575276 -0.338646 1453 | vn 0.766027 -0.641859 0.034936 1454 | vn 0.522268 -0.636825 0.567177 1455 | vn 0.527667 -0.527467 0.665842 1456 | vn 0.641037 -0.375221 0.669538 1457 | vn 0.614542 -0.453134 0.645761 1458 | vn -0.287103 -0.930941 -0.225656 1459 | vn 0.184368 -0.421801 0.887746 1460 | vn 0.074051 0.631917 -0.771490 1461 | vn 0.855333 0.060647 -0.514517 1462 | vn 0.730773 0.322890 -0.601426 1463 | vn 0.209807 0.742786 -0.635807 1464 | vn 0.616222 0.371327 -0.694540 1465 | vn 0.095819 0.746431 -0.658528 1466 | vn 0.408064 0.912344 0.033360 1467 | vn 0.821336 0.180467 -0.541146 1468 | vn 0.969682 0.166170 -0.179176 1469 | vn 0.754037 0.504418 0.420704 1470 | vn 0.828561 0.316590 0.461798 1471 | vn 0.943283 -0.080094 -0.322182 1472 | vn 0.996799 0.009221 -0.079417 1473 | vn 0.775768 0.382141 0.502148 1474 | vn -0.535922 0.815786 -0.217442 1475 | vn -0.711742 0.631198 -0.308241 1476 | vn -0.720586 0.670982 -0.174754 1477 | vn -0.411496 0.796168 0.443607 1478 | vn -0.094379 0.527301 0.844421 1479 | vn -0.069752 0.407704 0.910446 1480 | vn -0.075227 0.509317 0.857284 1481 | vn -0.899322 0.217218 0.379522 1482 | vn -0.856971 0.404836 0.318918 1483 | vn -0.929488 0.002263 0.368846 1484 | vn -0.913020 0.111991 0.392239 1485 | vn -0.775244 0.155507 0.612221 1486 | vn -0.809953 0.130294 0.571839 1487 | vn -0.809970 0.211451 0.547026 1488 | vn -0.512438 -0.473965 0.716075 1489 | vn -0.470746 -0.365488 0.803005 1490 | vn -0.622708 -0.554524 0.552030 1491 | vn -0.804795 -0.592927 -0.027236 1492 | vn -0.935688 -0.349566 -0.047865 1493 | vn -0.979826 -0.199093 0.017388 1494 | vn -0.969660 -0.244405 0.004995 1495 | vn 0.346030 -0.645322 0.681045 1496 | vn 0.150051 -0.816598 0.557361 1497 | vn 0.305963 -0.903395 0.300439 1498 | vn -0.106894 -0.879100 -0.464497 1499 | vn -0.379304 -0.604701 -0.700332 1500 | vn -0.457451 -0.550271 -0.698527 1501 | vn -0.396771 -0.701295 -0.592249 1502 | vn 0.835906 -0.548834 -0.006518 1503 | vn 0.923602 -0.381844 0.033966 1504 | vn 0.863214 -0.393372 -0.316418 1505 | vn 0.605500 -0.431678 -0.668598 1506 | vn 0.534229 -0.375452 -0.757387 1507 | vn 0.609831 -0.367158 -0.702354 1508 | vn 0.606094 -0.512127 -0.608586 1509 | vn -0.287104 -0.930941 0.225655 1510 | vn 0.184384 -0.421751 -0.887766 1511 | vn 0.730773 0.322890 0.601426 1512 | vn 0.855333 0.060647 0.514517 1513 | vn 0.074051 0.631917 0.771490 1514 | vn 0.209807 0.742786 0.635807 1515 | vn 0.616222 0.371327 0.694540 1516 | vn 0.095818 0.746431 0.658528 1517 | vn 0.821336 0.180467 0.541145 1518 | vn 0.408064 0.912344 -0.033360 1519 | vn 0.969682 0.166170 0.179175 1520 | vn 0.754037 0.504418 -0.420704 1521 | vn 0.943283 -0.080094 0.322182 1522 | vn 0.828560 0.316590 -0.461799 1523 | vn 0.996799 0.009221 0.079417 1524 | vn 0.775768 0.382141 -0.502148 1525 | vn -0.535922 0.815786 0.217442 1526 | vn -0.711742 0.631198 0.308241 1527 | vn -0.720586 0.670982 0.174754 1528 | vn -0.411496 0.796168 -0.443607 1529 | vn -0.094380 0.527301 -0.844421 1530 | vn -0.069752 0.407704 -0.910446 1531 | vn -0.075227 0.509317 -0.857285 1532 | vn -0.899322 0.217218 -0.379522 1533 | vn -0.856971 0.404836 -0.318918 1534 | vn -0.929488 0.002263 -0.368845 1535 | vn -0.913020 0.111991 -0.392239 1536 | vn -0.775244 0.155506 -0.612221 1537 | vn -0.809952 0.130294 -0.571839 1538 | vn -0.809969 0.211450 -0.547027 1539 | vn -0.512438 -0.473965 -0.716075 1540 | vn -0.470746 -0.365488 -0.803005 1541 | vn -0.622708 -0.554524 -0.552030 1542 | vn -0.804795 -0.592928 0.027236 1543 | vn -0.935688 -0.349566 0.047865 1544 | vn -0.979826 -0.199093 -0.017388 1545 | vn -0.969660 -0.244405 -0.004995 1546 | vn 0.346030 -0.645322 -0.681045 1547 | vn 0.150051 -0.816598 -0.557361 1548 | vn 0.305964 -0.903395 -0.300439 1549 | vn -0.106895 -0.879100 0.464496 1550 | vn -0.379305 -0.604701 0.700332 1551 | vn -0.457451 -0.550271 0.698527 1552 | vn -0.396771 -0.701294 0.592249 1553 | vn 0.835906 -0.548834 0.006518 1554 | vn 0.923602 -0.381844 -0.033966 1555 | vn 0.863214 -0.393373 0.316418 1556 | vn 0.605500 -0.431679 0.668598 1557 | vn 0.534230 -0.375452 0.757387 1558 | vn 0.609831 -0.367158 0.702354 1559 | vn 0.606094 -0.512126 0.608586 1560 | vn 0.000000 0.000000 0.000000 1561 | vn 0.891945 0.333606 -0.305190 1562 | vn 0.885286 -0.051708 0.462163 1563 | vn 0.871701 -0.486404 -0.059574 1564 | vn 0.602535 -0.114023 0.789906 1565 | vn 0.767332 -0.613878 0.185353 1566 | vn 0.615704 -0.238766 0.750932 1567 | vn -0.132228 0.076598 0.988255 1568 | vn -0.134483 0.218923 0.966430 1569 | vn -0.082654 0.333036 0.939285 1570 | vn -0.794263 0.362851 0.487325 1571 | vn -0.686973 0.538875 0.487527 1572 | vn -0.911656 -0.242414 -0.331840 1573 | vn -0.903470 -0.005854 -0.428611 1574 | vn -0.880207 0.284493 -0.379868 1575 | vn -0.359072 -0.293407 -0.885991 1576 | vn -0.531215 -0.161650 -0.831673 1577 | vn 0.521710 -0.333452 -0.785257 1578 | vn 0.498223 -0.518213 -0.695147 1579 | vn 0.319252 -0.666930 -0.673263 1580 | vn 0.417209 0.602930 -0.680009 1581 | vn -0.390952 -0.506393 -0.768585 1582 | vn -0.785847 -0.219916 -0.577999 1583 | vn -0.112803 -0.767065 -0.631575 1584 | vn -0.676852 -0.452073 -0.580948 1585 | vn -0.070613 -0.785109 -0.615320 1586 | vn 0.404464 -0.913005 -0.053206 1587 | vn 0.510041 -0.851111 -0.124372 1588 | vn 0.600863 -0.776753 -0.188727 1589 | vn 0.734160 -0.298249 0.609964 1590 | vn 0.802855 -0.245127 0.543449 1591 | vn 0.203920 0.286548 0.936113 1592 | vn 0.259058 0.346923 0.901407 1593 | vn 0.305077 0.413607 0.857821 1594 | vn -0.395140 0.672313 0.625987 1595 | vn -0.388204 0.672327 0.630297 1596 | vn -0.844407 0.508563 -0.168344 1597 | vn -0.907377 0.410201 -0.091666 1598 | vn -0.943128 0.331776 0.020840 1599 | vn -0.032685 0.987521 0.154060 1600 | vn 0.285617 0.953018 0.100890 1601 | vn 0.356408 0.929723 0.092678 1602 | vn 0.058045 0.915295 0.398579 1603 | vn -0.438098 -0.839825 0.320570 1604 | vn 0.039808 -0.749385 0.660937 1605 | vn -0.436422 -0.758689 0.483660 1606 | vn -0.144622 0.858467 0.492057 1607 | vn -0.390508 -0.802547 0.451023 1608 | vn -0.378955 0.768626 0.515371 1609 | vn -0.351840 -0.855427 0.380071 1610 | vn -0.503913 0.811284 0.296463 1611 | vn -0.434503 -0.886238 0.160593 1612 | vn -0.589554 0.766850 0.253707 1613 | vn 0.461124 -0.566742 0.682765 1614 | vn -0.033279 -0.530249 0.847189 1615 | vn -0.155076 -0.479386 0.863794 1616 | vn -0.332554 -0.675497 0.658112 1617 | vn -0.624353 -0.649034 0.434671 1618 | vn -0.640430 -0.723275 0.258307 1619 | vn 0.839146 -0.520972 0.156274 1620 | vn 0.979386 -0.047392 0.196359 1621 | vn 0.859197 -0.013066 0.511478 1622 | vn 0.169781 0.017978 0.985318 1623 | vn -0.298124 0.093164 0.949970 1624 | vn -0.602581 0.140795 0.785540 1625 | vn -0.760623 0.356880 0.542300 1626 | vn -0.916442 -0.012784 0.399964 1627 | vn 0.709959 0.689780 0.141992 1628 | vn 0.616328 0.711155 0.338227 1629 | vn 0.121528 0.638102 0.760300 1630 | vn -0.308158 0.474484 0.824563 1631 | vn -0.584949 0.497866 0.640284 1632 | vn -0.831395 0.369875 0.414699 1633 | vn -0.777389 0.439755 0.449757 1634 | vn -0.712098 0.074375 0.698130 1635 | vn -0.522162 -0.582125 0.623279 1636 | vn -0.536293 0.842625 0.048710 1637 | vn -0.627855 0.740316 0.240274 1638 | vn -0.817995 0.476796 0.321792 1639 | vn -0.729171 0.655795 0.195555 1640 | vn -0.958544 0.215108 0.186875 1641 | vn -0.950592 0.163928 0.263634 1642 | vn -0.983392 -0.022830 0.180052 1643 | vn -0.891745 0.110754 0.438776 1644 | vn -0.991858 -0.087830 0.092218 1645 | vn -0.859104 0.044821 0.509835 1646 | vn -0.894952 -0.402899 0.191658 1647 | vn -0.903611 0.009093 0.428257 1648 | vn -0.889320 0.017457 0.456952 1649 | vn -0.731541 -0.492421 0.471561 1650 | vn -0.794103 -0.178378 0.581017 1651 | vn -0.625933 -0.373553 0.684592 1652 | vn -0.584508 -0.184831 0.790056 1653 | vn -0.801518 -0.104269 0.588809 1654 | vn -0.642031 -0.296727 0.706929 1655 | vn -0.820281 -0.123456 0.558478 1656 | vn 0.016905 -0.936472 -0.350333 1657 | vn -0.098795 -0.739900 -0.665423 1658 | vn -0.069462 -0.936749 -0.343039 1659 | vn 0.123931 -0.992291 -0.000000 1660 | vn 0.035891 -0.855981 -0.515760 1661 | vn -0.028951 -0.999581 0.000000 1662 | vn 0.016905 -0.936472 0.350333 1663 | vn -0.069462 -0.936749 0.343039 1664 | vn -0.334402 -0.916161 -0.220964 1665 | vn -0.790477 -0.612492 -0.000000 1666 | vn -0.334402 -0.916161 0.220964 1667 | vn -0.741010 -0.556660 0.375544 1668 | vn -0.274313 -0.889661 0.365042 1669 | vn -0.098795 -0.739900 0.665423 1670 | vn 0.035891 -0.855981 0.515760 1671 | vn -0.274313 -0.889661 -0.365042 1672 | vn -0.741010 -0.556660 -0.375544 1673 | vn 0.356408 0.929723 -0.092678 1674 | vn 0.285617 0.953018 -0.100890 1675 | vn -0.032685 0.987521 -0.154060 1676 | vn 0.058045 0.915295 -0.398579 1677 | vn -0.436422 -0.758689 -0.483660 1678 | vn 0.039808 -0.749385 -0.660937 1679 | vn -0.438098 -0.839825 -0.320570 1680 | vn -0.144622 0.858467 -0.492057 1681 | vn -0.390508 -0.802547 -0.451023 1682 | vn -0.378955 0.768626 -0.515371 1683 | vn -0.351840 -0.855427 -0.380071 1684 | vn -0.503913 0.811284 -0.296463 1685 | vn -0.434503 -0.886238 -0.160593 1686 | vn -0.589554 0.766850 -0.253707 1687 | vn -0.033279 -0.530249 -0.847189 1688 | vn 0.461124 -0.566742 -0.682765 1689 | vn -0.155076 -0.479386 -0.863794 1690 | vn -0.332554 -0.675497 -0.658112 1691 | vn -0.624352 -0.649034 -0.434671 1692 | vn -0.640430 -0.723275 -0.258307 1693 | vn 0.979386 -0.047392 -0.196359 1694 | vn 0.839147 -0.520972 -0.156274 1695 | vn 0.859197 -0.013067 -0.511478 1696 | vn 0.169781 0.017978 -0.985318 1697 | vn -0.298124 0.093164 -0.949970 1698 | vn -0.602580 0.140795 -0.785540 1699 | vn -0.760623 0.356880 -0.542300 1700 | vn -0.916442 -0.012784 -0.399964 1701 | vn 0.616328 0.711155 -0.338227 1702 | vn 0.709959 0.689780 -0.141992 1703 | vn 0.121527 0.638102 -0.760300 1704 | vn -0.308158 0.474484 -0.824563 1705 | vn -0.584949 0.497867 -0.640284 1706 | vn -0.831395 0.369875 -0.414699 1707 | vn -0.777389 0.439755 -0.449757 1708 | vn -0.536292 0.842626 -0.048710 1709 | vn -0.522164 -0.582123 -0.623280 1710 | vn -0.712098 0.074377 -0.698129 1711 | vn -0.627854 0.740316 -0.240274 1712 | vn -0.817995 0.476797 -0.321792 1713 | vn -0.729171 0.655796 -0.195555 1714 | vn -0.958544 0.215108 -0.186875 1715 | vn -0.950592 0.163928 -0.263634 1716 | vn -0.891745 0.110753 -0.438776 1717 | vn -0.983392 -0.022830 -0.180053 1718 | vn -0.859104 0.044821 -0.509834 1719 | vn -0.991858 -0.087831 -0.092217 1720 | vn -0.894953 -0.402899 -0.191657 1721 | vn -0.903611 0.009093 -0.428257 1722 | vn -0.889320 0.017458 -0.456952 1723 | vn -0.731541 -0.492420 -0.471561 1724 | vn -0.794103 -0.178378 -0.581018 1725 | vn -0.625932 -0.373553 -0.684593 1726 | vn -0.584507 -0.184830 -0.790056 1727 | vn -0.801518 -0.104269 -0.588809 1728 | vn -0.642031 -0.296727 -0.706930 1729 | vn -0.820281 -0.123456 -0.558478 1730 | vn 0.891944 0.333618 0.305179 1731 | vn 0.602535 -0.114021 -0.789905 1732 | vn 0.871702 -0.486402 0.059575 1733 | vn 0.885285 -0.051707 -0.462165 1734 | vn 0.767335 -0.613875 -0.185352 1735 | vn 0.615706 -0.238765 -0.750931 1736 | vn -0.132228 0.076598 -0.988255 1737 | vn -0.134482 0.218923 -0.966430 1738 | vn -0.082654 0.333036 -0.939284 1739 | vn -0.794263 0.362851 -0.487325 1740 | vn -0.686973 0.538875 -0.487526 1741 | vn -0.911656 -0.242414 0.331840 1742 | vn -0.903470 -0.005854 0.428611 1743 | vn -0.880207 0.284493 0.379868 1744 | vn -0.359072 -0.293407 0.885991 1745 | vn -0.531215 -0.161650 0.831673 1746 | vn 0.521709 -0.333452 0.785258 1747 | vn 0.498223 -0.518212 0.695148 1748 | vn 0.319253 -0.666929 0.673264 1749 | vn 0.417208 0.602931 0.680009 1750 | vn -0.112803 -0.767065 0.631575 1751 | vn -0.785847 -0.219916 0.577998 1752 | vn -0.390952 -0.506392 0.768585 1753 | vn -0.676852 -0.452073 0.580948 1754 | vn -0.070613 -0.785108 0.615320 1755 | vn 0.404464 -0.913005 0.053206 1756 | vn 0.510042 -0.851111 0.124372 1757 | vn 0.600863 -0.776753 0.188727 1758 | vn 0.734160 -0.298249 -0.609964 1759 | vn 0.802854 -0.245127 -0.543450 1760 | vn 0.203920 0.286548 -0.936113 1761 | vn 0.259058 0.346923 -0.901407 1762 | vn 0.305077 0.413607 -0.857821 1763 | vn -0.395140 0.672312 -0.625988 1764 | vn -0.388204 0.672327 -0.630297 1765 | vn -0.844407 0.508563 0.168344 1766 | vn -0.907377 0.410201 0.091666 1767 | vn -0.943128 0.331776 -0.020840 1768 | vn 0.092832 0.340544 0.935634 1769 | vn 0.433215 0.308260 0.846936 1770 | vn 0.075136 0.741809 0.666389 1771 | vn -0.375593 0.622444 0.686654 1772 | vn -0.641388 0.689588 0.336288 1773 | vn -0.353918 0.873123 0.335258 1774 | vn -0.662764 0.746241 -0.062188 1775 | vn -0.545563 0.658509 -0.518389 1776 | vn -0.542286 0.268594 -0.796105 1777 | vn -0.776382 0.468027 -0.422116 1778 | vn -0.995559 -0.032197 -0.088459 1779 | vn -0.738154 -0.230737 -0.633948 1780 | vn -0.433216 -0.308258 -0.846936 1781 | vn -0.776385 -0.629857 -0.022517 1782 | vn -0.467564 -0.874397 0.129668 1783 | vn -0.542292 -0.717476 -0.437204 1784 | vn -0.189834 -0.854102 0.484223 1785 | vn -0.545805 -0.711395 0.442735 1786 | vn -0.641391 -0.312091 0.700868 1787 | vn -0.215356 -0.623780 0.751346 1788 | vn 0.037501 -0.724698 0.688046 1789 | vn -0.375594 -0.035443 0.926107 1790 | vn 0.078137 -0.268605 0.960076 1791 | vn -0.757385 0.223328 0.613590 1792 | vn -0.902417 0.400663 0.158468 1793 | vn -0.902417 -0.205066 0.378934 1794 | vn 0.075136 0.741809 -0.666389 1795 | vn 0.433215 0.308260 -0.846936 1796 | vn 0.092832 0.340544 -0.935635 1797 | vn -0.375593 0.622444 -0.686654 1798 | vn -0.353918 0.873123 -0.335257 1799 | vn -0.641388 0.689588 -0.336288 1800 | vn -0.662764 0.746241 0.062188 1801 | vn -0.776382 0.468027 0.422116 1802 | vn -0.542286 0.268594 0.796105 1803 | vn -0.545562 0.658510 0.518389 1804 | vn -0.738154 -0.230737 0.633948 1805 | vn -0.995559 -0.032196 0.088459 1806 | vn -0.433216 -0.308258 0.846936 1807 | vn -0.776385 -0.629856 0.022517 1808 | vn -0.542292 -0.717477 0.437204 1809 | vn -0.467565 -0.874397 -0.129668 1810 | vn -0.545805 -0.711394 -0.442736 1811 | vn -0.189834 -0.854102 -0.484223 1812 | vn -0.215356 -0.623779 -0.751346 1813 | vn -0.641391 -0.312091 -0.700869 1814 | vn 0.037501 -0.724698 -0.688046 1815 | vn -0.375594 -0.035443 -0.926106 1816 | vn 0.078136 -0.268605 -0.960076 1817 | vn -0.757384 0.223328 -0.613590 1818 | vn -0.902417 0.400663 -0.158468 1819 | vn -0.902417 -0.205066 -0.378934 1820 | # 747 normals 1821 | 1822 | g HLeib01 1823 | usemtl HLeibTex 1824 | s 1 1825 | f 1/1/1 2/2/2 3/3/3 1826 | f 4/4/4 3/3/3 5/5/5 1827 | f 6/6/6 5/5/5 2/2/2 1828 | f 3/3/3 2/2/2 5/5/5 1829 | f 1/1/1 3/3/3 7/7/7 1830 | f 8/8/8 7/7/7 9/9/9 1831 | f 4/4/4 9/9/9 3/3/3 1832 | f 7/7/7 3/3/3 9/9/9 1833 | f 8/8/8 9/9/9 10/10/10 1834 | f 11/11/11 10/10/10 12/12/12 1835 | f 4/4/4 12/12/12 9/9/9 1836 | f 10/10/10 9/9/9 12/12/12 1837 | f 4/4/4 13/13/13 12/12/12 1838 | f 11/11/11 12/12/12 14/14/14 1839 | f 15/15/15 14/14/14 13/13/13 1840 | f 12/12/12 13/13/13 14/14/14 1841 | f 4/4/4 5/5/5 13/13/13 1842 | f 15/15/15 13/13/13 16/16/16 1843 | f 6/6/6 16/16/16 5/5/5 1844 | f 13/13/13 5/5/5 16/16/16 1845 | f 15/15/15 16/16/16 17/17/17 1846 | f 18/18/18 17/17/17 19/19/19 1847 | f 6/6/6 19/19/19 16/16/16 1848 | f 17/17/17 16/16/16 19/19/19 1849 | f 15/15/15 17/17/17 20/20/20 1850 | f 21/21/21 20/20/20 22/22/22 1851 | f 18/18/18 22/22/22 17/17/17 1852 | f 20/20/20 17/17/17 22/22/22 1853 | f 11/11/11 14/14/14 23/23/23 1854 | f 21/21/21 23/23/23 20/20/20 1855 | f 15/15/15 20/20/20 14/14/14 1856 | f 23/23/23 14/14/14 20/20/20 1857 | f 11/11/11 23/23/23 24/24/24 1858 | f 25/25/25 24/24/24 26/26/26 1859 | f 21/21/21 26/26/26 23/23/23 1860 | f 24/24/24 23/23/23 26/26/26 1861 | f 25/25/25 26/26/26 27/27/27 1862 | f 28/28/28 27/27/27 29/29/29 1863 | f 21/21/21 29/29/29 26/26/26 1864 | f 27/27/27 26/26/26 29/29/29 1865 | f 28/28/28 29/29/29 30/30/30 1866 | f 18/18/18 30/30/30 22/22/22 1867 | f 21/21/21 22/22/22 29/29/29 1868 | f 30/30/30 29/29/29 22/22/22 1869 | f 28/28/28 30/30/30 31/31/31 1870 | f 32/32/32 31/31/31 33/33/33 1871 | f 18/18/18 33/33/33 30/30/30 1872 | f 31/31/31 30/30/30 33/33/33 1873 | f 28/28/28 31/31/31 34/34/34 1874 | f 35/35/35 34/34/34 36/36/36 1875 | f 32/32/32 36/36/36 31/31/31 1876 | f 34/34/34 31/31/31 36/36/36 1877 | f 35/35/35 36/36/36 37/37/37 1878 | f 1/1/1 37/37/37 38/38/38 1879 | f 32/32/32 38/38/38 36/36/36 1880 | f 37/37/37 36/36/36 38/38/38 1881 | f 1/1/1 38/38/38 2/2/2 1882 | f 6/6/6 2/2/2 39/39/39 1883 | f 32/32/32 39/39/39 38/38/38 1884 | f 2/2/2 38/38/38 39/39/39 1885 | f 32/32/32 33/33/33 39/39/39 1886 | f 6/6/6 39/39/39 19/19/19 1887 | f 18/18/18 19/19/19 33/33/33 1888 | f 39/39/39 33/33/33 19/19/19 1889 | f 8/8/8 40/40/40 7/7/7 1890 | f 1/1/1 7/7/7 37/37/37 1891 | f 35/35/35 37/37/37 40/40/40 1892 | f 7/7/7 40/40/40 37/37/37 1893 | f 8/8/8 41/41/41 40/40/40 1894 | f 35/35/35 40/40/40 42/42/42 1895 | f 25/25/25 42/42/42 41/41/41 1896 | f 40/40/40 41/41/41 42/42/42 1897 | f 8/8/8 10/10/10 41/41/41 1898 | f 25/25/25 41/41/41 24/24/24 1899 | f 11/11/11 24/24/24 10/10/10 1900 | f 41/41/41 10/10/10 24/24/24 1901 | f 28/28/28 34/34/34 27/27/27 1902 | f 25/25/25 27/27/27 42/42/42 1903 | f 35/35/35 42/42/42 34/34/34 1904 | f 27/27/27 34/34/34 42/42/42 1905 | # 80 triangles in group 1906 | 1907 | g OK 1908 | usemtl Skin 1909 | f 43/43/43 44/44/44 45/45/45 1910 | f 46/46/46 45/45/45 47/47/47 1911 | f 48/48/48 47/47/47 44/44/44 1912 | f 45/45/45 44/44/44 47/47/47 1913 | f 43/43/43 45/45/45 49/49/49 1914 | f 50/50/50 49/49/49 51/51/51 1915 | f 46/46/46 51/51/51 45/45/45 1916 | f 49/49/49 45/45/45 51/51/51 1917 | f 50/50/50 51/51/51 52/52/52 1918 | f 53/53/53 52/52/52 54/54/54 1919 | f 46/46/46 54/54/54 51/51/51 1920 | f 52/52/52 51/51/51 54/54/54 1921 | f 46/46/46 55/55/55 54/54/54 1922 | f 53/53/53 54/54/54 56/56/56 1923 | f 57/57/57 56/56/56 55/55/55 1924 | f 54/54/54 55/55/55 56/56/56 1925 | f 46/46/46 47/47/47 55/55/55 1926 | f 57/57/57 55/55/55 58/58/58 1927 | f 48/48/48 58/58/58 47/47/47 1928 | f 55/55/55 47/47/47 58/58/58 1929 | f 57/57/57 58/58/58 59/59/59 1930 | f 60/57/60 59/59/59 61/58/61 1931 | f 48/48/48 61/58/61 58/58/58 1932 | f 59/59/59 58/58/58 61/58/61 1933 | f 57/57/57 59/59/59 62/60/62 1934 | f 63/61/63 62/60/62 64/60/64 1935 | f 60/57/60 64/60/64 59/59/59 1936 | f 62/60/62 59/59/59 64/60/64 1937 | f 53/53/53 56/56/56 65/62/65 1938 | f 63/61/63 65/62/65 62/60/62 1939 | f 57/57/57 62/60/62 56/56/56 1940 | f 65/62/65 56/56/56 62/60/62 1941 | f 53/53/53 65/62/65 66/63/66 1942 | f 67/64/67 66/63/66 68/65/68 1943 | f 63/61/63 68/65/68 65/62/65 1944 | f 66/63/66 65/62/65 68/65/68 1945 | f 67/64/67 68/65/68 69/63/69 1946 | f 70/53/70 69/63/69 71/62/71 1947 | f 63/61/63 71/62/71 68/65/68 1948 | f 69/63/69 68/65/68 71/62/71 1949 | f 63/61/63 64/60/64 71/62/71 1950 | f 43/43/43 74/49/72 75/45/73 1951 | f 43/43/43 75/45/73 44/44/44 1952 | f 48/48/48 44/44/44 76/47/74 1953 | f 72/46/75 76/47/74 75/45/73 1954 | f 44/44/44 75/45/73 76/47/74 1955 | f 48/48/48 76/47/74 61/58/61 1956 | f 50/50/50 77/66/76 49/49/49 1957 | f 43/43/43 49/49/49 74/49/72 1958 | f 73/50/77 74/49/72 77/66/76 1959 | f 49/49/49 77/66/76 74/49/72 1960 | f 50/50/50 78/67/78 77/66/76 1961 | f 73/50/77 77/66/76 79/67/79 1962 | f 67/64/67 79/67/79 78/67/78 1963 | f 77/66/76 78/67/78 79/67/79 1964 | f 50/50/50 52/52/52 78/67/78 1965 | f 67/64/67 78/67/78 66/63/66 1966 | f 53/53/53 66/63/66 52/52/52 1967 | f 78/67/78 52/52/52 66/63/66 1968 | f 67/64/67 69/63/69 79/67/79 1969 | # 60 triangles in group 1970 | 1971 | g Bein1Li 1972 | usemtl BeinTex 1973 | s 2 1974 | f 80/68/80 87/68/80 130/68/80 1975 | f 86/68/81 129/68/81 93/68/81 1976 | s 1 1977 | f 80/69/82 81/70/83 88/71/84 1978 | f 80/69/82 88/71/84 87/72/85 1979 | f 81/70/83 82/73/86 88/71/84 1980 | f 82/73/86 89/74/87 88/71/84 1981 | f 82/73/86 83/75/88 90/76/89 1982 | f 82/73/86 90/76/89 89/74/87 1983 | f 83/75/88 84/77/90 90/76/89 1984 | f 84/77/90 91/78/91 90/76/89 1985 | f 84/77/90 85/79/92 92/80/93 1986 | f 84/77/90 92/80/93 91/78/91 1987 | f 85/79/92 86/68/94 92/80/93 1988 | f 86/68/94 93/81/95 92/80/93 1989 | s 2 1990 | f 87/68/80 94/68/80 130/68/80 1991 | f 93/68/81 129/68/81 100/68/81 1992 | s 1 1993 | f 87/72/85 88/71/84 94/82/96 1994 | f 88/71/84 95/83/97 94/82/96 1995 | f 88/71/84 89/74/87 96/84/98 1996 | f 88/71/84 96/84/98 95/83/97 1997 | f 89/74/87 90/76/89 96/84/98 1998 | f 90/76/89 97/85/99 96/84/98 1999 | f 90/76/89 91/78/91 98/86/100 2000 | f 90/76/89 98/86/100 97/85/99 2001 | f 91/78/91 92/80/93 98/86/100 2002 | f 92/80/93 99/87/101 98/86/100 2003 | f 92/80/93 93/81/95 100/88/102 2004 | f 92/80/93 100/88/102 99/87/101 2005 | s 2 2006 | f 94/68/80 101/68/80 130/68/80 2007 | f 100/68/81 129/68/81 107/68/81 2008 | s 1 2009 | f 94/82/96 95/83/97 102/89/103 2010 | f 94/82/96 102/89/103 101/90/104 2011 | f 95/83/97 96/84/98 102/89/103 2012 | f 96/84/98 103/91/105 102/89/103 2013 | f 96/84/98 97/85/99 104/92/106 2014 | f 96/84/98 104/92/106 103/91/105 2015 | f 97/85/99 98/86/100 104/92/106 2016 | f 98/86/100 105/93/107 104/92/106 2017 | f 98/86/100 99/87/101 106/94/108 2018 | f 98/86/100 106/94/108 105/93/107 2019 | f 99/87/101 100/88/102 106/94/108 2020 | f 100/88/102 107/95/109 106/94/108 2021 | s 2 2022 | f 101/68/80 108/68/80 130/68/80 2023 | f 107/68/81 129/68/81 114/68/81 2024 | s 1 2025 | f 101/90/104 102/89/103 108/96/110 2026 | f 102/89/103 109/97/111 108/96/110 2027 | f 102/89/103 103/91/105 110/98/112 2028 | f 102/89/103 110/98/112 109/97/111 2029 | f 103/91/105 104/92/106 110/98/112 2030 | f 104/92/106 111/99/113 110/98/112 2031 | f 104/92/106 105/93/107 112/100/114 2032 | f 104/92/106 112/100/114 111/99/113 2033 | f 105/93/107 106/94/108 112/100/114 2034 | f 106/94/108 113/101/115 112/100/114 2035 | f 106/94/108 107/95/109 114/102/116 2036 | f 106/94/108 114/102/116 113/101/115 2037 | s 2 2038 | f 108/68/80 115/68/80 130/68/80 2039 | f 114/68/81 129/68/81 121/68/81 2040 | s 1 2041 | f 108/96/110 109/97/111 116/103/117 2042 | f 108/96/110 116/103/117 115/104/118 2043 | f 109/97/111 110/98/112 116/103/117 2044 | f 110/98/112 117/105/119 116/103/117 2045 | f 110/98/112 111/99/113 118/106/120 2046 | f 110/98/112 118/106/120 117/105/119 2047 | f 111/99/113 112/100/114 118/106/120 2048 | f 112/100/114 119/107/121 118/106/120 2049 | f 112/100/114 113/101/115 120/108/122 2050 | f 112/100/114 120/108/122 119/107/121 2051 | f 113/101/115 114/102/116 120/108/122 2052 | f 114/102/116 121/109/123 120/108/122 2053 | s 2 2054 | f 115/68/80 122/68/80 130/68/80 2055 | f 121/68/81 129/68/81 128/68/81 2056 | s 1 2057 | f 115/104/118 116/103/117 122/110/124 2058 | f 116/103/117 123/111/125 122/110/124 2059 | f 116/103/117 117/105/119 124/112/126 2060 | f 116/103/117 124/112/126 123/111/125 2061 | f 117/105/119 118/106/120 124/112/126 2062 | f 118/106/120 125/113/127 124/112/126 2063 | f 118/106/120 119/107/121 126/114/128 2064 | f 118/106/120 126/114/128 125/113/127 2065 | f 119/107/121 120/108/122 126/114/128 2066 | f 120/108/122 127/115/129 126/114/128 2067 | f 120/108/122 121/109/123 128/116/130 2068 | f 120/108/122 128/116/130 127/115/129 2069 | s 2 2070 | f 122/68/80 80/68/80 130/68/80 2071 | f 128/68/81 129/68/81 86/68/81 2072 | s 1 2073 | f 122/110/124 123/111/125 81/117/83 2074 | f 122/110/124 81/117/83 80/118/82 2075 | f 123/111/125 124/112/126 81/117/83 2076 | f 124/112/126 82/119/86 81/117/83 2077 | f 124/112/126 125/113/127 83/120/88 2078 | f 124/112/126 83/120/88 82/119/86 2079 | f 125/113/127 126/114/128 83/120/88 2080 | f 126/114/128 84/121/90 83/120/88 2081 | f 126/114/128 127/115/129 85/122/92 2082 | f 126/114/128 85/122/92 84/121/90 2083 | f 127/115/129 128/116/130 85/122/92 2084 | f 128/116/130 86/123/94 85/122/92 2085 | # 98 triangles in group 2086 | 2087 | g Bein1Re 2088 | usemtl BeinTex 2089 | s 2 2090 | f 181/68/131 138/68/131 131/68/131 2091 | f 144/68/132 180/68/132 137/68/132 2092 | s 1 2093 | f 139/71/133 132/70/134 131/69/135 2094 | f 138/72/136 139/71/133 131/69/135 2095 | f 139/71/133 133/73/137 132/70/134 2096 | f 139/71/133 140/74/138 133/73/137 2097 | f 141/76/139 134/75/140 133/73/137 2098 | f 140/74/138 141/76/139 133/73/137 2099 | f 141/76/139 135/77/141 134/75/140 2100 | f 141/76/139 142/78/142 135/77/141 2101 | f 143/80/143 136/79/144 135/77/141 2102 | f 142/78/142 143/80/143 135/77/141 2103 | f 143/80/143 137/68/145 136/79/144 2104 | f 143/80/143 144/81/146 137/68/145 2105 | s 2 2106 | f 181/68/131 145/68/131 138/68/131 2107 | f 151/68/132 180/68/132 144/68/132 2108 | s 1 2109 | f 145/82/147 139/71/133 138/72/136 2110 | f 145/82/147 146/83/148 139/71/133 2111 | f 147/84/149 140/74/138 139/71/133 2112 | f 146/83/148 147/84/149 139/71/133 2113 | f 147/84/149 141/76/139 140/74/138 2114 | f 147/84/149 148/85/150 141/76/139 2115 | f 149/86/151 142/78/142 141/76/139 2116 | f 148/85/150 149/86/151 141/76/139 2117 | f 149/86/151 143/80/143 142/78/142 2118 | f 149/86/151 150/87/152 143/80/143 2119 | f 151/88/153 144/81/146 143/80/143 2120 | f 150/87/152 151/88/153 143/80/143 2121 | s 2 2122 | f 181/68/131 152/68/131 145/68/131 2123 | f 158/68/132 180/68/132 151/68/132 2124 | s 1 2125 | f 153/89/154 146/83/148 145/82/147 2126 | f 152/90/155 153/89/154 145/82/147 2127 | f 153/89/154 147/84/149 146/83/148 2128 | f 153/89/154 154/91/156 147/84/149 2129 | f 155/92/157 148/85/150 147/84/149 2130 | f 154/91/156 155/92/157 147/84/149 2131 | f 155/92/157 149/86/151 148/85/150 2132 | f 155/92/157 156/93/158 149/86/151 2133 | f 157/94/159 150/87/152 149/86/151 2134 | f 156/93/158 157/94/159 149/86/151 2135 | f 157/94/159 151/88/153 150/87/152 2136 | f 157/94/159 158/95/160 151/88/153 2137 | s 2 2138 | f 181/68/131 159/68/131 152/68/131 2139 | f 165/68/132 180/68/132 158/68/132 2140 | s 1 2141 | f 159/96/161 153/89/154 152/90/155 2142 | f 159/96/161 160/97/162 153/89/154 2143 | f 161/98/163 154/91/156 153/89/154 2144 | f 160/97/162 161/98/163 153/89/154 2145 | f 161/98/163 155/92/157 154/91/156 2146 | f 161/98/163 162/99/164 155/92/157 2147 | f 163/100/165 156/93/158 155/92/157 2148 | f 162/99/164 163/100/165 155/92/157 2149 | f 163/100/165 157/94/159 156/93/158 2150 | f 163/100/165 164/101/166 157/94/159 2151 | f 165/102/167 158/95/160 157/94/159 2152 | f 164/101/166 165/102/167 157/94/159 2153 | s 2 2154 | f 181/68/131 166/68/131 159/68/131 2155 | f 172/68/132 180/68/132 165/68/132 2156 | s 1 2157 | f 167/103/168 160/97/162 159/96/161 2158 | f 166/104/169 167/103/168 159/96/161 2159 | f 167/103/168 161/98/163 160/97/162 2160 | f 167/103/168 168/105/170 161/98/163 2161 | f 169/106/171 162/99/164 161/98/163 2162 | f 168/105/170 169/106/171 161/98/163 2163 | f 169/106/171 163/100/165 162/99/164 2164 | f 169/106/171 170/107/172 163/100/165 2165 | f 171/108/173 164/101/166 163/100/165 2166 | f 170/107/172 171/108/173 163/100/165 2167 | f 171/108/173 165/102/167 164/101/166 2168 | f 171/108/173 172/109/174 165/102/167 2169 | s 2 2170 | f 181/68/131 173/68/131 166/68/131 2171 | f 179/68/132 180/68/132 172/68/132 2172 | s 1 2173 | f 173/110/175 167/103/168 166/104/169 2174 | f 173/110/175 174/111/176 167/103/168 2175 | f 175/112/177 168/105/170 167/103/168 2176 | f 174/111/176 175/112/177 167/103/168 2177 | f 175/112/177 169/106/171 168/105/170 2178 | f 175/112/177 176/113/178 169/106/171 2179 | f 177/114/179 170/107/172 169/106/171 2180 | f 176/113/178 177/114/179 169/106/171 2181 | f 177/114/179 171/108/173 170/107/172 2182 | f 177/114/179 178/115/180 171/108/173 2183 | f 179/116/181 172/109/174 171/108/173 2184 | f 178/115/180 179/116/181 171/108/173 2185 | s 2 2186 | f 181/68/131 131/68/131 173/68/131 2187 | f 137/68/132 180/68/132 179/68/132 2188 | s 1 2189 | f 132/117/134 174/111/176 173/110/175 2190 | f 131/118/135 132/117/134 173/110/175 2191 | f 132/117/134 175/112/177 174/111/176 2192 | f 132/117/134 133/119/137 175/112/177 2193 | f 134/120/140 176/113/178 175/112/177 2194 | f 133/119/137 134/120/140 175/112/177 2195 | f 134/120/140 177/114/179 176/113/178 2196 | f 134/120/140 135/121/141 177/114/179 2197 | f 136/122/144 178/115/180 177/114/179 2198 | f 135/121/141 136/122/144 177/114/179 2199 | f 136/122/144 179/116/181 178/115/180 2200 | f 136/122/144 137/123/145 179/116/181 2201 | # 98 triangles in group 2202 | 2203 | g Bein2Li 2204 | usemtl BeinTex 2205 | s 2 2206 | f 182/68/182 189/68/182 232/68/182 2207 | f 188/68/183 231/68/183 195/68/183 2208 | s 1 2209 | f 182/69/184 183/70/185 190/71/186 2210 | f 182/69/184 190/71/186 189/72/187 2211 | f 183/70/185 184/73/188 190/71/186 2212 | f 184/73/188 191/74/189 190/71/186 2213 | f 184/73/188 185/75/190 192/76/191 2214 | f 184/73/188 192/76/191 191/74/189 2215 | f 185/75/190 186/77/192 192/76/191 2216 | f 186/77/192 193/78/193 192/76/191 2217 | f 186/77/192 187/79/194 194/80/195 2218 | f 186/77/192 194/80/195 193/78/193 2219 | f 187/79/194 188/68/196 194/80/195 2220 | f 188/68/196 195/81/197 194/80/195 2221 | s 2 2222 | f 189/68/182 196/68/182 232/68/182 2223 | f 195/68/183 231/68/183 202/68/183 2224 | s 1 2225 | f 189/72/187 190/71/186 196/82/198 2226 | f 190/71/186 197/83/199 196/82/198 2227 | f 190/71/186 191/74/189 198/84/200 2228 | f 190/71/186 198/84/200 197/83/199 2229 | f 191/74/189 192/76/191 198/84/200 2230 | f 192/76/191 199/85/201 198/84/200 2231 | f 192/76/191 193/78/193 200/86/202 2232 | f 192/76/191 200/86/202 199/85/201 2233 | f 193/78/193 194/80/195 200/86/202 2234 | f 194/80/195 201/87/203 200/86/202 2235 | f 194/80/195 195/81/197 202/88/204 2236 | f 194/80/195 202/88/204 201/87/203 2237 | s 2 2238 | f 196/68/182 203/68/182 232/68/182 2239 | f 202/68/183 231/68/183 209/68/183 2240 | s 1 2241 | f 196/82/198 197/83/199 204/89/205 2242 | f 196/82/198 204/89/205 203/90/206 2243 | f 197/83/199 198/84/200 204/89/205 2244 | f 198/84/200 205/91/207 204/89/205 2245 | f 198/84/200 199/85/201 206/92/208 2246 | f 198/84/200 206/92/208 205/91/207 2247 | f 199/85/201 200/86/202 206/92/208 2248 | f 200/86/202 207/93/209 206/92/208 2249 | f 200/86/202 201/87/203 208/94/210 2250 | f 200/86/202 208/94/210 207/93/209 2251 | f 201/87/203 202/88/204 208/94/210 2252 | f 202/88/204 209/95/211 208/94/210 2253 | s 2 2254 | f 203/68/182 210/68/182 232/68/182 2255 | f 209/68/183 231/68/183 216/68/183 2256 | s 1 2257 | f 203/90/206 204/89/205 210/96/212 2258 | f 204/89/205 211/97/213 210/96/212 2259 | f 204/89/205 205/91/207 212/98/214 2260 | f 204/89/205 212/98/214 211/97/213 2261 | f 205/91/207 206/92/208 212/98/214 2262 | f 206/92/208 213/99/215 212/98/214 2263 | f 206/92/208 207/93/209 214/100/216 2264 | f 206/92/208 214/100/216 213/99/215 2265 | f 207/93/209 208/94/210 214/100/216 2266 | f 208/94/210 215/101/217 214/100/216 2267 | f 208/94/210 209/95/211 216/102/218 2268 | f 208/94/210 216/102/218 215/101/217 2269 | s 2 2270 | f 210/68/182 217/68/182 232/68/182 2271 | f 216/68/183 231/68/183 223/68/183 2272 | s 1 2273 | f 210/96/212 211/97/213 218/103/219 2274 | f 210/96/212 218/103/219 217/104/220 2275 | f 211/97/213 212/98/214 218/103/219 2276 | f 212/98/214 219/105/221 218/103/219 2277 | f 212/98/214 213/99/215 220/106/222 2278 | f 212/98/214 220/106/222 219/105/221 2279 | f 213/99/215 214/100/216 220/106/222 2280 | f 214/100/216 221/107/223 220/106/222 2281 | f 214/100/216 215/101/217 222/108/224 2282 | f 214/100/216 222/108/224 221/107/223 2283 | f 215/101/217 216/102/218 222/108/224 2284 | f 216/102/218 223/109/225 222/108/224 2285 | s 2 2286 | f 217/68/182 224/68/182 232/68/182 2287 | f 223/68/183 231/68/183 230/68/183 2288 | s 1 2289 | f 217/104/220 218/103/219 224/110/226 2290 | f 218/103/219 225/111/227 224/110/226 2291 | f 218/103/219 219/105/221 226/112/228 2292 | f 218/103/219 226/112/228 225/111/227 2293 | f 219/105/221 220/106/222 226/112/228 2294 | f 220/106/222 227/113/229 226/112/228 2295 | f 220/106/222 221/107/223 228/114/230 2296 | f 220/106/222 228/114/230 227/113/229 2297 | f 221/107/223 222/108/224 228/114/230 2298 | f 222/108/224 229/115/231 228/114/230 2299 | f 222/108/224 223/109/225 230/116/232 2300 | f 222/108/224 230/116/232 229/115/231 2301 | s 2 2302 | f 224/68/182 182/68/182 232/68/182 2303 | f 230/68/183 231/68/183 188/68/183 2304 | s 1 2305 | f 224/110/226 225/111/227 183/117/185 2306 | f 224/110/226 183/117/185 182/118/184 2307 | f 225/111/227 226/112/228 183/117/185 2308 | f 226/112/228 184/119/188 183/117/185 2309 | f 226/112/228 227/113/229 185/120/190 2310 | f 226/112/228 185/120/190 184/119/188 2311 | f 227/113/229 228/114/230 185/120/190 2312 | f 228/114/230 186/121/192 185/120/190 2313 | f 228/114/230 229/115/231 187/122/194 2314 | f 228/114/230 187/122/194 186/121/192 2315 | f 229/115/231 230/116/232 187/122/194 2316 | f 230/116/232 188/123/196 187/122/194 2317 | # 98 triangles in group 2318 | 2319 | g Bein2Re 2320 | usemtl BeinTex 2321 | s 2 2322 | f 283/68/233 240/68/233 233/68/233 2323 | f 246/68/234 282/68/234 239/68/234 2324 | s 1 2325 | f 241/71/235 234/70/236 233/69/237 2326 | f 240/72/238 241/71/235 233/69/237 2327 | f 241/71/235 235/73/239 234/70/236 2328 | f 241/71/235 242/74/240 235/73/239 2329 | f 243/76/241 236/75/242 235/73/239 2330 | f 242/74/240 243/76/241 235/73/239 2331 | f 243/76/241 237/77/243 236/75/242 2332 | f 243/76/241 244/78/244 237/77/243 2333 | f 245/80/245 238/79/246 237/77/243 2334 | f 244/78/244 245/80/245 237/77/243 2335 | f 245/80/245 239/68/247 238/79/246 2336 | f 245/80/245 246/81/248 239/68/247 2337 | s 2 2338 | f 283/68/233 247/68/233 240/68/233 2339 | f 253/68/234 282/68/234 246/68/234 2340 | s 1 2341 | f 247/82/249 241/71/235 240/72/238 2342 | f 247/82/249 248/83/250 241/71/235 2343 | f 249/84/251 242/74/240 241/71/235 2344 | f 248/83/250 249/84/251 241/71/235 2345 | f 249/84/251 243/76/241 242/74/240 2346 | f 249/84/251 250/85/252 243/76/241 2347 | f 251/86/253 244/78/244 243/76/241 2348 | f 250/85/252 251/86/253 243/76/241 2349 | f 251/86/253 245/80/245 244/78/244 2350 | f 251/86/253 252/87/254 245/80/245 2351 | f 253/88/255 246/81/248 245/80/245 2352 | f 252/87/254 253/88/255 245/80/245 2353 | s 2 2354 | f 283/68/233 254/68/233 247/68/233 2355 | f 260/68/234 282/68/234 253/68/234 2356 | s 1 2357 | f 255/89/256 248/83/250 247/82/249 2358 | f 254/90/257 255/89/256 247/82/249 2359 | f 255/89/256 249/84/251 248/83/250 2360 | f 255/89/256 256/91/258 249/84/251 2361 | f 257/92/259 250/85/252 249/84/251 2362 | f 256/91/258 257/92/259 249/84/251 2363 | f 257/92/259 251/86/253 250/85/252 2364 | f 257/92/259 258/93/260 251/86/253 2365 | f 259/94/261 252/87/254 251/86/253 2366 | f 258/93/260 259/94/261 251/86/253 2367 | f 259/94/261 253/88/255 252/87/254 2368 | f 259/94/261 260/95/262 253/88/255 2369 | s 2 2370 | f 283/68/233 261/68/233 254/68/233 2371 | f 267/68/234 282/68/234 260/68/234 2372 | s 1 2373 | f 261/96/263 255/89/256 254/90/257 2374 | f 261/96/263 262/97/264 255/89/256 2375 | f 263/98/265 256/91/258 255/89/256 2376 | f 262/97/264 263/98/265 255/89/256 2377 | f 263/98/265 257/92/259 256/91/258 2378 | f 263/98/265 264/99/266 257/92/259 2379 | f 265/100/267 258/93/260 257/92/259 2380 | f 264/99/266 265/100/267 257/92/259 2381 | f 265/100/267 259/94/261 258/93/260 2382 | f 265/100/267 266/101/268 259/94/261 2383 | f 267/102/269 260/95/262 259/94/261 2384 | f 266/101/268 267/102/269 259/94/261 2385 | s 2 2386 | f 283/68/233 268/68/233 261/68/233 2387 | f 274/68/234 282/68/234 267/68/234 2388 | s 1 2389 | f 269/103/270 262/97/264 261/96/263 2390 | f 268/104/271 269/103/270 261/96/263 2391 | f 269/103/270 263/98/265 262/97/264 2392 | f 269/103/270 270/105/272 263/98/265 2393 | f 271/106/273 264/99/266 263/98/265 2394 | f 270/105/272 271/106/273 263/98/265 2395 | f 271/106/273 265/100/267 264/99/266 2396 | f 271/106/273 272/107/274 265/100/267 2397 | f 273/108/275 266/101/268 265/100/267 2398 | f 272/107/274 273/108/275 265/100/267 2399 | f 273/108/275 267/102/269 266/101/268 2400 | f 273/108/275 274/109/276 267/102/269 2401 | s 2 2402 | f 283/68/233 275/68/233 268/68/233 2403 | f 281/68/234 282/68/234 274/68/234 2404 | s 1 2405 | f 275/110/277 269/103/270 268/104/271 2406 | f 275/110/277 276/111/278 269/103/270 2407 | f 277/112/279 270/105/272 269/103/270 2408 | f 276/111/278 277/112/279 269/103/270 2409 | f 277/112/279 271/106/273 270/105/272 2410 | f 277/112/279 278/113/280 271/106/273 2411 | f 279/114/281 272/107/274 271/106/273 2412 | f 278/113/280 279/114/281 271/106/273 2413 | f 279/114/281 273/108/275 272/107/274 2414 | f 279/114/281 280/115/282 273/108/275 2415 | f 281/116/283 274/109/276 273/108/275 2416 | f 280/115/282 281/116/283 273/108/275 2417 | s 2 2418 | f 283/68/233 233/68/233 275/68/233 2419 | f 239/68/234 282/68/234 281/68/234 2420 | s 1 2421 | f 234/117/236 276/111/278 275/110/277 2422 | f 233/118/237 234/117/236 275/110/277 2423 | f 234/117/236 277/112/279 276/111/278 2424 | f 234/117/236 235/119/239 277/112/279 2425 | f 236/120/242 278/113/280 277/112/279 2426 | f 235/119/239 236/120/242 277/112/279 2427 | f 236/120/242 279/114/281 278/113/280 2428 | f 236/120/242 237/121/243 279/114/281 2429 | f 238/122/246 280/115/282 279/114/281 2430 | f 237/121/243 238/122/246 279/114/281 2431 | f 238/122/246 281/116/283 280/115/282 2432 | f 238/122/246 239/123/247 281/116/283 2433 | # 98 triangles in group 2434 | 2435 | g Bein3Re 2436 | usemtl BeinTex 2437 | s 2 2438 | f 334/68/284 291/68/284 284/68/284 2439 | f 297/68/285 333/68/285 290/68/285 2440 | s 1 2441 | f 292/71/286 285/70/287 284/69/288 2442 | f 291/72/289 292/71/286 284/69/288 2443 | f 292/71/286 286/73/290 285/70/287 2444 | f 292/71/286 293/74/291 286/73/290 2445 | f 294/76/292 287/75/293 286/73/290 2446 | f 293/74/291 294/76/292 286/73/290 2447 | f 294/76/292 288/77/294 287/75/293 2448 | f 294/76/292 295/78/295 288/77/294 2449 | f 296/80/296 289/79/297 288/77/294 2450 | f 295/78/295 296/80/296 288/77/294 2451 | f 296/80/296 290/68/298 289/79/297 2452 | f 296/80/296 297/81/299 290/68/298 2453 | s 2 2454 | f 334/68/284 298/68/284 291/68/284 2455 | f 304/68/285 333/68/285 297/68/285 2456 | s 1 2457 | f 298/82/300 292/71/286 291/72/289 2458 | f 298/82/300 299/83/301 292/71/286 2459 | f 300/84/302 293/74/291 292/71/286 2460 | f 299/83/301 300/84/302 292/71/286 2461 | f 300/84/302 294/76/292 293/74/291 2462 | f 300/84/302 301/85/303 294/76/292 2463 | f 302/86/304 295/78/295 294/76/292 2464 | f 301/85/303 302/86/304 294/76/292 2465 | f 302/86/304 296/80/296 295/78/295 2466 | f 302/86/304 303/87/305 296/80/296 2467 | f 304/88/306 297/81/299 296/80/296 2468 | f 303/87/305 304/88/306 296/80/296 2469 | s 2 2470 | f 334/68/284 305/68/284 298/68/284 2471 | f 311/68/285 333/68/285 304/68/285 2472 | s 1 2473 | f 306/89/307 299/83/301 298/82/300 2474 | f 305/90/308 306/89/307 298/82/300 2475 | f 306/89/307 300/84/302 299/83/301 2476 | f 306/89/307 307/91/309 300/84/302 2477 | f 308/92/310 301/85/303 300/84/302 2478 | f 307/91/309 308/92/310 300/84/302 2479 | f 308/92/310 302/86/304 301/85/303 2480 | f 308/92/310 309/93/311 302/86/304 2481 | f 310/94/312 303/87/305 302/86/304 2482 | f 309/93/311 310/94/312 302/86/304 2483 | f 310/94/312 304/88/306 303/87/305 2484 | f 310/94/312 311/95/313 304/88/306 2485 | s 2 2486 | f 334/68/284 312/68/284 305/68/284 2487 | f 318/68/285 333/68/285 311/68/285 2488 | s 1 2489 | f 312/96/314 306/89/307 305/90/308 2490 | f 312/96/314 313/97/315 306/89/307 2491 | f 314/98/316 307/91/309 306/89/307 2492 | f 313/97/315 314/98/316 306/89/307 2493 | f 314/98/316 308/92/310 307/91/309 2494 | f 314/98/316 315/99/317 308/92/310 2495 | f 316/100/318 309/93/311 308/92/310 2496 | f 315/99/317 316/100/318 308/92/310 2497 | f 316/100/318 310/94/312 309/93/311 2498 | f 316/100/318 317/101/319 310/94/312 2499 | f 318/102/320 311/95/313 310/94/312 2500 | f 317/101/319 318/102/320 310/94/312 2501 | s 2 2502 | f 334/68/284 319/68/284 312/68/284 2503 | f 325/68/285 333/68/285 318/68/285 2504 | s 1 2505 | f 320/103/321 313/97/315 312/96/314 2506 | f 319/104/322 320/103/321 312/96/314 2507 | f 320/103/321 314/98/316 313/97/315 2508 | f 320/103/321 321/105/323 314/98/316 2509 | f 322/106/324 315/99/317 314/98/316 2510 | f 321/105/323 322/106/324 314/98/316 2511 | f 322/106/324 316/100/318 315/99/317 2512 | f 322/106/324 323/107/325 316/100/318 2513 | f 324/108/326 317/101/319 316/100/318 2514 | f 323/107/325 324/108/326 316/100/318 2515 | f 324/108/326 318/102/320 317/101/319 2516 | f 324/108/326 325/109/327 318/102/320 2517 | s 2 2518 | f 334/68/284 326/68/284 319/68/284 2519 | f 332/68/285 333/68/285 325/68/285 2520 | s 1 2521 | f 326/110/328 320/103/321 319/104/322 2522 | f 326/110/328 327/111/329 320/103/321 2523 | f 328/112/330 321/105/323 320/103/321 2524 | f 327/111/329 328/112/330 320/103/321 2525 | f 328/112/330 322/106/324 321/105/323 2526 | f 328/112/330 329/113/331 322/106/324 2527 | f 330/114/332 323/107/325 322/106/324 2528 | f 329/113/331 330/114/332 322/106/324 2529 | f 330/114/332 324/108/326 323/107/325 2530 | f 330/114/332 331/115/333 324/108/326 2531 | f 332/116/334 325/109/327 324/108/326 2532 | f 331/115/333 332/116/334 324/108/326 2533 | s 2 2534 | f 334/68/284 284/68/284 326/68/284 2535 | f 290/68/285 333/68/285 332/68/285 2536 | s 1 2537 | f 285/117/287 327/111/329 326/110/328 2538 | f 284/118/288 285/117/287 326/110/328 2539 | f 285/117/287 328/112/330 327/111/329 2540 | f 285/117/287 286/119/290 328/112/330 2541 | f 287/120/293 329/113/331 328/112/330 2542 | f 286/119/290 287/120/293 328/112/330 2543 | f 287/120/293 330/114/332 329/113/331 2544 | f 287/120/293 288/121/294 330/114/332 2545 | f 289/122/297 331/115/333 330/114/332 2546 | f 288/121/294 289/122/297 330/114/332 2547 | f 289/122/297 332/116/334 331/115/333 2548 | f 289/122/297 290/123/298 332/116/334 2549 | # 98 triangles in group 2550 | 2551 | g Bein3Li 2552 | usemtl BeinTex 2553 | s 2 2554 | f 335/68/335 342/68/335 385/68/335 2555 | f 341/68/336 384/68/336 348/68/336 2556 | s 1 2557 | f 335/69/337 336/70/338 343/71/339 2558 | f 335/69/337 343/71/339 342/72/340 2559 | f 336/70/338 337/73/341 343/71/339 2560 | f 337/73/341 344/74/342 343/71/339 2561 | f 337/73/341 338/75/343 345/76/344 2562 | f 337/73/341 345/76/344 344/74/342 2563 | f 338/75/343 339/77/345 345/76/344 2564 | f 339/77/345 346/78/346 345/76/344 2565 | f 339/77/345 340/79/347 347/80/348 2566 | f 339/77/345 347/80/348 346/78/346 2567 | f 340/79/347 341/68/349 347/80/348 2568 | f 341/68/349 348/81/350 347/80/348 2569 | s 2 2570 | f 342/68/335 349/68/335 385/68/335 2571 | f 348/68/336 384/68/336 355/68/336 2572 | s 1 2573 | f 342/72/340 343/71/339 349/82/351 2574 | f 343/71/339 350/83/352 349/82/351 2575 | f 343/71/339 344/74/342 351/84/353 2576 | f 343/71/339 351/84/353 350/83/352 2577 | f 344/74/342 345/76/344 351/84/353 2578 | f 345/76/344 352/85/354 351/84/353 2579 | f 345/76/344 346/78/346 353/86/355 2580 | f 345/76/344 353/86/355 352/85/354 2581 | f 346/78/346 347/80/348 353/86/355 2582 | f 347/80/348 354/87/356 353/86/355 2583 | f 347/80/348 348/81/350 355/88/357 2584 | f 347/80/348 355/88/357 354/87/356 2585 | s 2 2586 | f 349/68/335 356/68/335 385/68/335 2587 | f 355/68/336 384/68/336 362/68/336 2588 | s 1 2589 | f 349/82/351 350/83/352 357/89/358 2590 | f 349/82/351 357/89/358 356/90/359 2591 | f 350/83/352 351/84/353 357/89/358 2592 | f 351/84/353 358/91/360 357/89/358 2593 | f 351/84/353 352/85/354 359/92/361 2594 | f 351/84/353 359/92/361 358/91/360 2595 | f 352/85/354 353/86/355 359/92/361 2596 | f 353/86/355 360/93/362 359/92/361 2597 | f 353/86/355 354/87/356 361/94/363 2598 | f 353/86/355 361/94/363 360/93/362 2599 | f 354/87/356 355/88/357 361/94/363 2600 | f 355/88/357 362/95/364 361/94/363 2601 | s 2 2602 | f 356/68/335 363/68/335 385/68/335 2603 | f 362/68/336 384/68/336 369/68/336 2604 | s 1 2605 | f 356/90/359 357/89/358 363/96/365 2606 | f 357/89/358 364/97/366 363/96/365 2607 | f 357/89/358 358/91/360 365/98/367 2608 | f 357/89/358 365/98/367 364/97/366 2609 | f 358/91/360 359/92/361 365/98/367 2610 | f 359/92/361 366/99/368 365/98/367 2611 | f 359/92/361 360/93/362 367/100/369 2612 | f 359/92/361 367/100/369 366/99/368 2613 | f 360/93/362 361/94/363 367/100/369 2614 | f 361/94/363 368/101/370 367/100/369 2615 | f 361/94/363 362/95/364 369/102/371 2616 | f 361/94/363 369/102/371 368/101/370 2617 | s 2 2618 | f 363/68/335 370/68/335 385/68/335 2619 | f 369/68/336 384/68/336 376/68/336 2620 | s 1 2621 | f 363/96/365 364/97/366 371/103/372 2622 | f 363/96/365 371/103/372 370/104/373 2623 | f 364/97/366 365/98/367 371/103/372 2624 | f 365/98/367 372/105/374 371/103/372 2625 | f 365/98/367 366/99/368 373/106/375 2626 | f 365/98/367 373/106/375 372/105/374 2627 | f 366/99/368 367/100/369 373/106/375 2628 | f 367/100/369 374/107/376 373/106/375 2629 | f 367/100/369 368/101/370 375/108/377 2630 | f 367/100/369 375/108/377 374/107/376 2631 | f 368/101/370 369/102/371 375/108/377 2632 | f 369/102/371 376/109/378 375/108/377 2633 | s 2 2634 | f 370/68/335 377/68/335 385/68/335 2635 | f 376/68/336 384/68/336 383/68/336 2636 | s 1 2637 | f 370/104/373 371/103/372 377/110/379 2638 | f 371/103/372 378/111/380 377/110/379 2639 | f 371/103/372 372/105/374 379/112/381 2640 | f 371/103/372 379/112/381 378/111/380 2641 | f 372/105/374 373/106/375 379/112/381 2642 | f 373/106/375 380/113/382 379/112/381 2643 | f 373/106/375 374/107/376 381/114/383 2644 | f 373/106/375 381/114/383 380/113/382 2645 | f 374/107/376 375/108/377 381/114/383 2646 | f 375/108/377 382/115/384 381/114/383 2647 | f 375/108/377 376/109/378 383/116/385 2648 | f 375/108/377 383/116/385 382/115/384 2649 | s 2 2650 | f 377/68/335 335/68/335 385/68/335 2651 | f 383/68/336 384/68/336 341/68/336 2652 | s 1 2653 | f 377/110/379 378/111/380 336/117/338 2654 | f 377/110/379 336/117/338 335/118/337 2655 | f 378/111/380 379/112/381 336/117/338 2656 | f 379/112/381 337/119/341 336/117/338 2657 | f 379/112/381 380/113/382 338/120/343 2658 | f 379/112/381 338/120/343 337/119/341 2659 | f 380/113/382 381/114/383 338/120/343 2660 | f 381/114/383 339/121/345 338/120/343 2661 | f 381/114/383 382/115/384 340/122/347 2662 | f 381/114/383 340/122/347 339/121/345 2663 | f 382/115/384 383/116/385 340/122/347 2664 | f 383/116/385 341/123/349 340/122/347 2665 | # 98 triangles in group 2666 | 2667 | g Bein4Re 2668 | usemtl BeinTex 2669 | s 2 2670 | f 436/68/386 393/68/386 386/68/386 2671 | f 399/68/387 435/68/387 392/68/387 2672 | s 1 2673 | f 394/71/388 387/70/389 386/69/390 2674 | f 393/72/391 394/71/388 386/69/390 2675 | f 394/71/388 388/73/392 387/70/389 2676 | f 394/71/388 395/74/393 388/73/392 2677 | f 396/76/394 389/75/395 388/73/392 2678 | f 395/74/393 396/76/394 388/73/392 2679 | f 396/76/394 390/77/396 389/75/395 2680 | f 396/76/394 397/78/397 390/77/396 2681 | f 398/80/398 391/79/399 390/77/396 2682 | f 397/78/397 398/80/398 390/77/396 2683 | f 398/80/398 392/68/400 391/79/399 2684 | f 398/80/398 399/81/401 392/68/400 2685 | s 2 2686 | f 436/68/386 400/68/386 393/68/386 2687 | f 406/68/387 435/68/387 399/68/387 2688 | s 1 2689 | f 400/82/402 394/71/388 393/72/391 2690 | f 400/82/402 401/83/403 394/71/388 2691 | f 402/84/404 395/74/393 394/71/388 2692 | f 401/83/403 402/84/404 394/71/388 2693 | f 402/84/404 396/76/394 395/74/393 2694 | f 402/84/404 403/85/405 396/76/394 2695 | f 404/86/406 397/78/397 396/76/394 2696 | f 403/85/405 404/86/406 396/76/394 2697 | f 404/86/406 398/80/398 397/78/397 2698 | f 404/86/406 405/87/407 398/80/398 2699 | f 406/88/408 399/81/401 398/80/398 2700 | f 405/87/407 406/88/408 398/80/398 2701 | s 2 2702 | f 436/68/386 407/68/386 400/68/386 2703 | f 413/68/387 435/68/387 406/68/387 2704 | s 1 2705 | f 408/89/409 401/83/403 400/82/402 2706 | f 407/90/410 408/89/409 400/82/402 2707 | f 408/89/409 402/84/404 401/83/403 2708 | f 408/89/409 409/91/411 402/84/404 2709 | f 410/92/412 403/85/405 402/84/404 2710 | f 409/91/411 410/92/412 402/84/404 2711 | f 410/92/412 404/86/406 403/85/405 2712 | f 410/92/412 411/93/413 404/86/406 2713 | f 412/94/414 405/87/407 404/86/406 2714 | f 411/93/413 412/94/414 404/86/406 2715 | f 412/94/414 406/88/408 405/87/407 2716 | f 412/94/414 413/95/415 406/88/408 2717 | s 2 2718 | f 436/68/386 414/68/386 407/68/386 2719 | f 420/68/387 435/68/387 413/68/387 2720 | s 1 2721 | f 414/96/416 408/89/409 407/90/410 2722 | f 414/96/416 415/97/417 408/89/409 2723 | f 416/98/418 409/91/411 408/89/409 2724 | f 415/97/417 416/98/418 408/89/409 2725 | f 416/98/418 410/92/412 409/91/411 2726 | f 416/98/418 417/99/419 410/92/412 2727 | f 418/100/420 411/93/413 410/92/412 2728 | f 417/99/419 418/100/420 410/92/412 2729 | f 418/100/420 412/94/414 411/93/413 2730 | f 418/100/420 419/101/421 412/94/414 2731 | f 420/102/422 413/95/415 412/94/414 2732 | f 419/101/421 420/102/422 412/94/414 2733 | s 2 2734 | f 436/68/386 421/68/386 414/68/386 2735 | f 427/68/387 435/68/387 420/68/387 2736 | s 1 2737 | f 422/103/423 415/97/417 414/96/416 2738 | f 421/104/424 422/103/423 414/96/416 2739 | f 422/103/423 416/98/418 415/97/417 2740 | f 422/103/423 423/105/425 416/98/418 2741 | f 424/106/426 417/99/419 416/98/418 2742 | f 423/105/425 424/106/426 416/98/418 2743 | f 424/106/426 418/100/420 417/99/419 2744 | f 424/106/426 425/107/427 418/100/420 2745 | f 426/108/428 419/101/421 418/100/420 2746 | f 425/107/427 426/108/428 418/100/420 2747 | f 426/108/428 420/102/422 419/101/421 2748 | f 426/108/428 427/109/429 420/102/422 2749 | s 2 2750 | f 436/68/386 428/68/386 421/68/386 2751 | f 434/68/387 435/68/387 427/68/387 2752 | s 1 2753 | f 428/110/430 422/103/423 421/104/424 2754 | f 428/110/430 429/111/431 422/103/423 2755 | f 430/112/432 423/105/425 422/103/423 2756 | f 429/111/431 430/112/432 422/103/423 2757 | f 430/112/432 424/106/426 423/105/425 2758 | f 430/112/432 431/113/433 424/106/426 2759 | f 432/114/434 425/107/427 424/106/426 2760 | f 431/113/433 432/114/434 424/106/426 2761 | f 432/114/434 426/108/428 425/107/427 2762 | f 432/114/434 433/115/435 426/108/428 2763 | f 434/116/436 427/109/429 426/108/428 2764 | f 433/115/435 434/116/436 426/108/428 2765 | s 2 2766 | f 436/68/386 386/68/386 428/68/386 2767 | f 392/68/387 435/68/387 434/68/387 2768 | s 1 2769 | f 387/117/389 429/111/431 428/110/430 2770 | f 386/118/390 387/117/389 428/110/430 2771 | f 387/117/389 430/112/432 429/111/431 2772 | f 387/117/389 388/119/392 430/112/432 2773 | f 389/120/395 431/113/433 430/112/432 2774 | f 388/119/392 389/120/395 430/112/432 2775 | f 389/120/395 432/114/434 431/113/433 2776 | f 389/120/395 390/121/396 432/114/434 2777 | f 391/122/399 433/115/435 432/114/434 2778 | f 390/121/396 391/122/399 432/114/434 2779 | f 391/122/399 434/116/436 433/115/435 2780 | f 391/122/399 392/123/400 434/116/436 2781 | # 98 triangles in group 2782 | 2783 | g Bein4Li 2784 | usemtl BeinTex 2785 | s 2 2786 | f 437/68/437 444/68/437 487/68/437 2787 | f 443/68/438 486/68/438 450/68/438 2788 | s 1 2789 | f 437/69/439 438/70/440 445/71/441 2790 | f 437/69/439 445/71/441 444/72/442 2791 | f 438/70/440 439/73/443 445/71/441 2792 | f 439/73/443 446/74/444 445/71/441 2793 | f 439/73/443 440/75/445 447/76/446 2794 | f 439/73/443 447/76/446 446/74/444 2795 | f 440/75/445 441/77/447 447/76/446 2796 | f 441/77/447 448/78/448 447/76/446 2797 | f 441/77/447 442/79/449 449/80/450 2798 | f 441/77/447 449/80/450 448/78/448 2799 | f 442/79/449 443/68/451 449/80/450 2800 | f 443/68/451 450/81/452 449/80/450 2801 | s 2 2802 | f 444/68/437 451/68/437 487/68/437 2803 | f 450/68/438 486/68/438 457/68/438 2804 | s 1 2805 | f 444/72/442 445/71/441 451/82/453 2806 | f 445/71/441 452/83/454 451/82/453 2807 | f 445/71/441 446/74/444 453/84/455 2808 | f 445/71/441 453/84/455 452/83/454 2809 | f 446/74/444 447/76/446 453/84/455 2810 | f 447/76/446 454/85/456 453/84/455 2811 | f 447/76/446 448/78/448 455/86/457 2812 | f 447/76/446 455/86/457 454/85/456 2813 | f 448/78/448 449/80/450 455/86/457 2814 | f 449/80/450 456/87/458 455/86/457 2815 | f 449/80/450 450/81/452 457/88/459 2816 | f 449/80/450 457/88/459 456/87/458 2817 | s 2 2818 | f 451/68/437 458/68/437 487/68/437 2819 | f 457/68/438 486/68/438 464/68/438 2820 | s 1 2821 | f 451/82/453 452/83/454 459/89/460 2822 | f 451/82/453 459/89/460 458/90/461 2823 | f 452/83/454 453/84/455 459/89/460 2824 | f 453/84/455 460/91/462 459/89/460 2825 | f 453/84/455 454/85/456 461/92/463 2826 | f 453/84/455 461/92/463 460/91/462 2827 | f 454/85/456 455/86/457 461/92/463 2828 | f 455/86/457 462/93/464 461/92/463 2829 | f 455/86/457 456/87/458 463/94/465 2830 | f 455/86/457 463/94/465 462/93/464 2831 | f 456/87/458 457/88/459 463/94/465 2832 | f 457/88/459 464/95/466 463/94/465 2833 | s 2 2834 | f 458/68/437 465/68/437 487/68/437 2835 | f 464/68/438 486/68/438 471/68/438 2836 | s 1 2837 | f 458/90/461 459/89/460 465/96/467 2838 | f 459/89/460 466/97/468 465/96/467 2839 | f 459/89/460 460/91/462 467/98/469 2840 | f 459/89/460 467/98/469 466/97/468 2841 | f 460/91/462 461/92/463 467/98/469 2842 | f 461/92/463 468/99/470 467/98/469 2843 | f 461/92/463 462/93/464 469/100/471 2844 | f 461/92/463 469/100/471 468/99/470 2845 | f 462/93/464 463/94/465 469/100/471 2846 | f 463/94/465 470/101/472 469/100/471 2847 | f 463/94/465 464/95/466 471/102/473 2848 | f 463/94/465 471/102/473 470/101/472 2849 | s 2 2850 | f 465/68/437 472/68/437 487/68/437 2851 | f 471/68/438 486/68/438 478/68/438 2852 | s 1 2853 | f 465/96/467 466/97/468 473/103/474 2854 | f 465/96/467 473/103/474 472/104/475 2855 | f 466/97/468 467/98/469 473/103/474 2856 | f 467/98/469 474/105/476 473/103/474 2857 | f 467/98/469 468/99/470 475/106/477 2858 | f 467/98/469 475/106/477 474/105/476 2859 | f 468/99/470 469/100/471 475/106/477 2860 | f 469/100/471 476/107/478 475/106/477 2861 | f 469/100/471 470/101/472 477/108/479 2862 | f 469/100/471 477/108/479 476/107/478 2863 | f 470/101/472 471/102/473 477/108/479 2864 | f 471/102/473 478/109/480 477/108/479 2865 | s 2 2866 | f 472/68/437 479/68/437 487/68/437 2867 | f 478/68/438 486/68/438 485/68/438 2868 | s 1 2869 | f 472/104/475 473/103/474 479/110/481 2870 | f 473/103/474 480/111/482 479/110/481 2871 | f 473/103/474 474/105/476 481/112/483 2872 | f 473/103/474 481/112/483 480/111/482 2873 | f 474/105/476 475/106/477 481/112/483 2874 | f 475/106/477 482/113/484 481/112/483 2875 | f 475/106/477 476/107/478 483/114/485 2876 | f 475/106/477 483/114/485 482/113/484 2877 | f 476/107/478 477/108/479 483/114/485 2878 | f 477/108/479 484/115/486 483/114/485 2879 | f 477/108/479 478/109/480 485/116/487 2880 | f 477/108/479 485/116/487 484/115/486 2881 | s 2 2882 | f 479/68/437 437/68/437 487/68/437 2883 | f 485/68/438 486/68/438 443/68/438 2884 | s 1 2885 | f 479/110/481 480/111/482 438/117/440 2886 | f 479/110/481 438/117/440 437/118/439 2887 | f 480/111/482 481/112/483 438/117/440 2888 | f 481/112/483 439/119/443 438/117/440 2889 | f 481/112/483 482/113/484 440/120/445 2890 | f 481/112/483 440/120/445 439/119/443 2891 | f 482/113/484 483/114/485 440/120/445 2892 | f 483/114/485 441/121/447 440/120/445 2893 | f 483/114/485 484/115/486 442/122/449 2894 | f 483/114/485 442/122/449 441/121/447 2895 | f 484/115/486 485/116/487 442/122/449 2896 | f 485/116/487 443/123/451 442/122/449 2897 | # 98 triangles in group 2898 | 2899 | g Zahn 2900 | usemtl BeinTex 2901 | s 2 2902 | f 488/124/488 491/124/488 510/124/488 2903 | f 490/125/489 509/126/489 493/127/489 2904 | s 1 2905 | f 488/124/490 489/128/491 492/129/492 2906 | f 488/124/490 492/129/492 491/124/488 2907 | f 489/128/491 490/125/493 492/129/492 2908 | f 490/125/493 493/127/494 492/129/492 2909 | s 2 2910 | f 491/124/488 494/124/488 510/124/488 2911 | f 493/127/489 509/126/489 496/130/489 2912 | s 1 2913 | f 491/124/488 492/129/492 494/124/495 2914 | f 492/129/492 495/131/496 494/124/495 2915 | f 492/129/492 493/127/494 496/130/497 2916 | f 492/129/492 496/130/497 495/131/496 2917 | s 2 2918 | f 494/124/488 497/124/488 510/124/488 2919 | f 496/130/489 509/126/489 499/132/489 2920 | s 1 2921 | f 494/124/495 495/131/496 498/133/498 2922 | f 494/124/495 498/133/498 497/124/488 2923 | f 495/131/496 496/130/497 498/133/498 2924 | f 496/130/497 499/132/499 498/133/498 2925 | s 2 2926 | f 497/124/488 500/124/488 510/124/488 2927 | f 499/132/489 509/126/489 502/134/489 2928 | s 1 2929 | f 497/124/488 498/133/498 500/124/500 2930 | f 498/133/498 501/135/501 500/124/500 2931 | f 498/133/498 499/132/499 502/134/502 2932 | f 498/133/498 502/134/502 501/135/501 2933 | s 2 2934 | f 500/124/488 503/124/488 510/124/488 2935 | f 502/134/489 509/126/489 505/136/489 2936 | s 1 2937 | f 500/124/500 501/135/501 504/137/503 2938 | f 500/124/500 504/137/503 503/124/488 2939 | f 501/135/501 502/134/502 504/137/503 2940 | f 502/134/502 505/136/504 504/137/503 2941 | s 2 2942 | f 503/124/488 506/124/488 510/124/488 2943 | f 505/136/489 509/126/489 508/138/489 2944 | s 1 2945 | f 503/124/488 504/137/503 506/124/505 2946 | f 504/137/503 507/139/506 506/124/505 2947 | f 504/137/503 505/136/504 508/138/507 2948 | f 504/137/503 508/138/507 507/139/506 2949 | s 2 2950 | f 506/124/488 488/124/488 510/124/488 2951 | f 508/138/489 509/126/489 490/125/489 2952 | s 1 2953 | f 506/124/505 507/139/506 489/128/491 2954 | f 506/124/505 489/128/491 488/124/490 2955 | f 507/139/506 508/138/507 489/128/491 2956 | f 508/138/507 490/125/493 489/128/491 2957 | # 42 triangles in group 2958 | 2959 | g klZahn 2960 | usemtl BeinTex 2961 | s 2 2962 | f 511/140/488 514/140/488 533/140/488 2963 | f 513/141/508 532/142/508 516/143/508 2964 | s 1 2965 | f 511/140/509 512/144/510 515/145/511 2966 | f 511/140/509 515/145/511 514/140/488 2967 | f 512/144/510 513/141/512 515/145/511 2968 | f 513/141/512 516/143/513 515/145/511 2969 | s 2 2970 | f 514/140/488 517/140/488 533/140/488 2971 | f 516/143/508 532/142/508 519/146/508 2972 | s 1 2973 | f 514/140/488 515/145/511 517/140/514 2974 | f 515/145/511 518/147/515 517/140/514 2975 | f 515/145/511 516/143/513 519/146/516 2976 | f 515/145/511 519/146/516 518/147/515 2977 | s 2 2978 | f 517/140/488 520/140/488 533/140/488 2979 | f 519/146/508 532/142/508 522/148/508 2980 | s 1 2981 | f 517/140/514 518/147/515 521/149/517 2982 | f 517/140/514 521/149/517 520/140/488 2983 | f 518/147/515 519/146/516 521/149/517 2984 | f 519/146/516 522/148/518 521/149/517 2985 | s 2 2986 | f 520/140/488 523/140/488 533/140/488 2987 | f 522/148/508 532/142/508 525/150/508 2988 | s 1 2989 | f 520/140/488 521/149/517 523/140/519 2990 | f 521/149/517 524/151/520 523/140/519 2991 | f 521/149/517 522/148/518 525/150/521 2992 | f 521/149/517 525/150/521 524/151/520 2993 | s 2 2994 | f 523/140/488 526/140/488 533/140/488 2995 | f 525/150/508 532/142/508 528/152/508 2996 | s 1 2997 | f 523/140/519 524/151/520 527/153/522 2998 | f 523/140/519 527/153/522 526/140/488 2999 | f 524/151/520 525/150/521 527/153/522 3000 | f 525/150/521 528/152/523 527/153/522 3001 | s 2 3002 | f 526/140/488 529/140/488 533/140/488 3003 | f 528/152/508 532/142/508 531/154/508 3004 | s 1 3005 | f 526/140/488 527/153/522 529/140/524 3006 | f 527/153/522 530/155/525 529/140/524 3007 | f 527/153/522 528/152/523 531/154/526 3008 | f 527/153/522 531/154/526 530/155/525 3009 | s 2 3010 | f 529/140/488 511/140/488 533/140/488 3011 | f 531/154/508 532/142/508 513/141/508 3012 | s 1 3013 | f 529/140/524 530/155/525 512/144/510 3014 | f 529/140/524 512/144/510 511/140/509 3015 | f 530/155/525 531/154/526 512/144/510 3016 | f 531/154/526 513/141/512 512/144/510 3017 | # 42 triangles in group 3018 | 3019 | g Kopf 3020 | usemtl Skin 3021 | f 534/68/527 563/156/528 562/157/529 3022 | f 534/68/527 564/158/530 563/156/528 3023 | f 535/69/531 536/159/532 537/160/533 3024 | f 534/68/527 565/161/534 564/158/530 3025 | f 535/69/531 537/160/533 538/162/535 3026 | f 534/68/527 566/163/536 565/161/534 3027 | f 535/69/531 538/162/535 539/164/537 3028 | f 534/68/527 567/165/538 566/163/536 3029 | f 535/69/531 539/164/537 540/166/539 3030 | f 534/68/527 568/167/540 567/165/538 3031 | f 542/168/541 543/169/542 536/159/532 3032 | f 536/159/532 543/169/542 544/170/543 3033 | f 536/159/532 544/170/543 537/160/533 3034 | f 537/160/533 544/170/543 538/162/535 3035 | f 544/170/543 545/169/544 538/162/535 3036 | f 538/162/535 545/169/544 546/171/545 3037 | f 538/162/535 546/171/545 539/164/537 3038 | f 539/164/537 546/171/545 540/166/539 3039 | f 546/171/545 547/172/546 540/166/539 3040 | f 541/173/547 548/174/548 542/168/541 3041 | f 548/174/548 549/175/549 542/168/541 3042 | f 542/168/541 549/175/549 550/176/550 3043 | f 542/168/541 550/176/550 543/169/542 3044 | f 543/169/542 550/176/550 544/170/543 3045 | f 550/176/550 551/177/551 544/170/543 3046 | f 544/170/543 551/177/551 552/178/552 3047 | f 544/170/543 552/178/552 545/169/544 3048 | f 545/169/544 552/178/552 546/171/545 3049 | f 552/178/552 553/179/553 546/171/545 3050 | f 546/171/545 553/179/553 554/180/554 3051 | f 546/171/545 554/180/554 547/172/546 3052 | f 548/174/548 555/181/555 556/182/556 3053 | f 548/174/548 556/182/556 549/175/549 3054 | f 549/175/549 556/182/556 550/176/550 3055 | f 556/182/556 557/183/557 550/176/550 3056 | f 550/176/550 557/183/557 558/184/558 3057 | f 550/176/550 558/184/558 551/177/551 3058 | f 551/177/551 558/184/558 552/178/552 3059 | f 558/184/558 559/185/559 552/178/552 3060 | f 553/179/553 560/186/560 554/180/554 3061 | f 560/186/560 561/187/561 554/180/554 3062 | f 555/181/555 562/157/529 556/182/556 3063 | f 562/157/529 563/156/528 556/182/556 3064 | f 556/182/556 563/156/528 564/158/530 3065 | f 556/182/556 564/158/530 557/183/557 3066 | f 557/183/557 564/158/530 558/184/558 3067 | f 564/158/530 565/161/534 558/184/558 3068 | f 558/184/558 565/161/534 566/163/536 3069 | f 558/184/558 566/163/536 559/185/559 3070 | f 559/185/559 566/163/536 560/186/560 3071 | f 566/163/536 567/165/538 560/186/560 3072 | f 560/186/560 567/165/538 568/167/540 3073 | f 560/186/560 568/167/540 561/187/561 3074 | f 575/188/562 585/189/563 586/190/564 3075 | f 553/179/553 576/191/565 586/190/564 3076 | f 586/190/564 575/188/562 553/179/553 3077 | f 577/192/566 576/191/565 553/179/553 3078 | f 576/191/565 577/192/566 587/193/567 3079 | f 587/193/567 586/190/564 576/191/565 3080 | f 588/194/568 587/193/567 577/192/566 3081 | f 577/192/566 578/195/569 588/194/568 3082 | f 589/196/570 588/194/568 579/197/571 3083 | f 578/195/569 579/197/571 588/194/568 3084 | f 590/198/572 589/196/570 569/199/573 3085 | f 589/196/570 579/197/571 569/199/573 3086 | f 569/199/573 580/200/574 590/198/572 3087 | f 569/199/573 570/201/575 580/200/574 3088 | f 570/201/575 571/202/576 580/200/574 3089 | f 581/203/577 580/200/574 571/202/576 3090 | f 571/202/576 572/204/578 581/203/577 3091 | f 582/205/579 581/203/577 572/204/578 3092 | f 583/206/580 582/205/579 572/204/578 3093 | f 572/204/578 573/207/581 583/206/580 3094 | f 584/208/582 583/206/580 573/207/581 3095 | f 573/207/581 574/209/583 584/208/582 3096 | f 585/189/563 584/208/582 574/209/583 3097 | f 574/209/583 575/188/562 585/189/563 3098 | f 575/188/562 560/186/560 553/179/553 3099 | f 575/188/562 574/209/583 560/186/560 3100 | f 574/209/583 573/207/581 560/186/560 3101 | f 573/207/581 572/204/578 560/186/560 3102 | f 572/204/578 571/202/576 560/186/560 3103 | f 559/185/559 560/186/560 571/202/576 3104 | f 571/202/576 570/201/575 559/185/559 3105 | f 570/201/575 569/199/573 559/185/559 3106 | f 577/192/566 553/179/553 552/178/552 3107 | f 578/195/569 577/192/566 552/178/552 3108 | f 579/197/571 578/195/569 552/178/552 3109 | f 552/178/552 559/185/559 569/199/573 3110 | f 579/197/571 569/199/573 552/178/552 3111 | # 90 triangles in group 3112 | 3113 | g Brust 3114 | usemtl Skin 3115 | f 595/210/584 596/211/585 597/212/586 3116 | f 591/120/587 597/212/586 593/213/588 3117 | f 597/212/586 596/211/585 593/213/588 3118 | f 595/210/584 597/212/586 598/214/589 3119 | f 599/215/590 598/214/589 600/216/591 3120 | f 591/120/587 600/216/591 597/212/586 3121 | f 598/214/589 597/212/586 600/216/591 3122 | f 595/210/584 598/214/589 601/217/592 3123 | f 602/75/593 601/217/592 603/218/594 3124 | f 599/215/590 603/218/594 598/214/589 3125 | f 601/217/592 598/214/589 603/218/594 3126 | f 602/75/593 603/218/594 604/219/595 3127 | f 599/215/590 605/220/596 603/218/594 3128 | f 604/219/595 603/218/594 605/220/596 3129 | f 599/215/590 600/216/591 606/221/597 3130 | f 591/120/587 592/222/598 600/216/591 3131 | f 606/221/597 600/216/591 592/222/598 3132 | f 595/210/584 601/217/592 594/223/599 3133 | f 602/75/593 607/224/600 601/217/592 3134 | f 594/223/599 601/217/592 607/224/600 3135 | # 20 triangles in group 3136 | 3137 | g Kopf2 3138 | usemtl Skin 3139 | f 636/225/601 637/226/602 608/123/603 3140 | f 637/226/602 638/227/604 608/123/603 3141 | f 611/228/605 610/229/606 609/118/607 3142 | f 638/227/604 639/230/608 608/123/603 3143 | f 612/231/609 611/228/605 609/118/607 3144 | f 639/230/608 640/232/610 608/123/603 3145 | f 613/233/611 612/231/609 609/118/607 3146 | f 640/232/610 641/234/612 608/123/603 3147 | f 614/235/613 613/233/611 609/118/607 3148 | f 641/234/612 642/236/614 608/123/603 3149 | f 610/229/606 617/237/615 616/238/616 3150 | f 618/239/617 617/237/615 610/229/606 3151 | f 611/228/605 618/239/617 610/229/606 3152 | f 612/231/609 618/239/617 611/228/605 3153 | f 612/231/609 619/237/618 618/239/617 3154 | f 620/240/619 619/237/618 612/231/609 3155 | f 613/233/611 620/240/619 612/231/609 3156 | f 614/235/613 620/240/619 613/233/611 3157 | f 614/235/613 621/241/620 620/240/619 3158 | f 616/238/616 622/176/621 615/242/622 3159 | f 616/238/616 623/243/623 622/176/621 3160 | f 624/174/624 623/243/623 616/238/616 3161 | f 617/237/615 624/174/624 616/238/616 3162 | f 618/239/617 624/174/624 617/237/615 3163 | f 618/239/617 625/244/625 624/174/624 3164 | f 626/245/626 625/244/625 618/239/617 3165 | f 619/237/618 626/245/626 618/239/617 3166 | f 620/240/619 626/245/626 619/237/618 3167 | f 620/240/619 627/246/627 626/245/626 3168 | f 628/247/628 627/246/627 620/240/619 3169 | f 621/241/620 628/247/628 620/240/619 3170 | f 630/248/629 629/249/630 622/176/621 3171 | f 623/243/623 630/248/629 622/176/621 3172 | f 624/174/624 630/248/629 623/243/623 3173 | f 624/174/624 631/250/631 630/248/629 3174 | f 632/251/632 631/250/631 624/174/624 3175 | f 625/244/625 632/251/632 624/174/624 3176 | f 626/245/626 632/251/632 625/244/625 3177 | f 626/245/626 633/252/633 632/251/632 3178 | f 628/247/628 634/253/634 627/246/627 3179 | f 628/247/628 635/254/635 634/253/634 3180 | f 630/248/629 636/225/601 629/249/630 3181 | f 630/248/629 637/226/602 636/225/601 3182 | f 638/227/604 637/226/602 630/248/629 3183 | f 631/250/631 638/227/604 630/248/629 3184 | f 632/251/632 638/227/604 631/250/631 3185 | f 632/251/632 639/230/608 638/227/604 3186 | f 640/232/610 639/230/608 632/251/632 3187 | f 633/252/633 640/232/610 632/251/632 3188 | f 634/253/634 640/232/610 633/252/633 3189 | f 634/253/634 641/234/612 640/232/610 3190 | f 642/236/614 641/234/612 634/253/634 3191 | f 635/254/635 642/236/614 634/253/634 3192 | f 660/255/636 659/256/637 649/257/638 3193 | f 660/255/636 650/258/639 627/246/627 3194 | f 627/246/627 649/257/638 660/255/636 3195 | f 627/246/627 650/258/639 651/259/640 3196 | f 661/260/641 651/259/640 650/258/639 3197 | f 650/258/639 660/255/636 661/260/641 3198 | f 651/259/640 661/260/641 662/261/642 3199 | f 662/261/642 652/262/643 651/259/640 3200 | f 653/263/644 662/261/642 663/264/645 3201 | f 662/261/642 653/263/644 652/262/643 3202 | f 643/265/646 663/264/645 664/266/647 3203 | f 643/265/646 653/263/644 663/264/645 3204 | f 664/266/647 654/267/648 643/265/646 3205 | f 654/267/648 644/268/649 643/265/646 3206 | f 654/267/648 645/269/650 644/268/649 3207 | f 645/269/650 654/267/648 655/270/651 3208 | f 655/270/651 646/271/652 645/269/650 3209 | f 646/271/652 655/270/651 656/272/653 3210 | f 646/271/652 656/272/653 657/273/654 3211 | f 657/273/654 647/274/655 646/271/652 3212 | f 647/274/655 657/273/654 658/275/656 3213 | f 658/275/656 648/276/657 647/274/655 3214 | f 648/276/657 658/275/656 659/256/637 3215 | f 659/256/637 649/257/638 648/276/657 3216 | f 627/246/627 634/253/634 649/257/638 3217 | f 634/253/634 648/276/657 649/257/638 3218 | f 634/253/634 647/274/655 648/276/657 3219 | f 634/253/634 646/271/652 647/274/655 3220 | f 634/253/634 645/269/650 646/271/652 3221 | f 645/269/650 634/253/634 633/252/633 3222 | f 633/252/633 644/268/649 645/269/650 3223 | f 633/252/633 643/265/646 644/268/649 3224 | f 626/245/626 627/246/627 651/259/640 3225 | f 626/245/626 651/259/640 652/262/643 3226 | f 626/245/626 652/262/643 653/263/644 3227 | f 643/265/646 633/252/633 626/245/626 3228 | f 626/245/626 643/265/646 653/263/644 3229 | # 90 triangles in group 3230 | 3231 | g Zahn2 3232 | usemtl BeinTex 3233 | s 2 3234 | f 687/124/488 668/124/488 665/124/488 3235 | f 670/127/658 686/126/658 667/125/658 3236 | s 1 3237 | f 669/129/659 666/128/660 665/124/661 3238 | f 668/124/488 669/129/659 665/124/661 3239 | f 669/129/659 667/125/662 666/128/660 3240 | f 669/129/659 670/127/663 667/125/662 3241 | s 2 3242 | f 687/124/488 671/124/488 668/124/488 3243 | f 673/130/658 686/126/658 670/127/658 3244 | s 1 3245 | f 671/124/664 669/129/659 668/124/488 3246 | f 671/124/664 672/131/665 669/129/659 3247 | f 673/130/666 670/127/663 669/129/659 3248 | f 672/131/665 673/130/666 669/129/659 3249 | s 2 3250 | f 687/124/488 674/124/488 671/124/488 3251 | f 676/132/658 686/126/658 673/130/658 3252 | s 1 3253 | f 675/133/667 672/131/665 671/124/664 3254 | f 674/124/488 675/133/667 671/124/664 3255 | f 675/133/667 673/130/666 672/131/665 3256 | f 675/133/667 676/132/668 673/130/666 3257 | s 2 3258 | f 687/124/488 677/124/488 674/124/488 3259 | f 679/134/658 686/126/658 676/132/658 3260 | s 1 3261 | f 677/124/669 675/133/667 674/124/488 3262 | f 677/124/669 678/135/670 675/133/667 3263 | f 679/134/671 676/132/668 675/133/667 3264 | f 678/135/670 679/134/671 675/133/667 3265 | s 2 3266 | f 687/124/488 680/124/488 677/124/488 3267 | f 682/136/658 686/126/658 679/134/658 3268 | s 1 3269 | f 681/137/672 678/135/670 677/124/669 3270 | f 680/124/488 681/137/672 677/124/669 3271 | f 681/137/672 679/134/671 678/135/670 3272 | f 681/137/672 682/136/673 679/134/671 3273 | s 2 3274 | f 687/124/488 683/124/488 680/124/488 3275 | f 685/138/658 686/126/658 682/136/658 3276 | s 1 3277 | f 683/124/674 681/137/672 680/124/488 3278 | f 683/124/674 684/139/675 681/137/672 3279 | f 685/138/676 682/136/673 681/137/672 3280 | f 684/139/675 685/138/676 681/137/672 3281 | s 2 3282 | f 687/124/488 665/124/488 683/124/488 3283 | f 667/125/658 686/126/658 685/138/658 3284 | s 1 3285 | f 666/128/660 684/139/675 683/124/674 3286 | f 665/124/661 666/128/660 683/124/674 3287 | f 666/128/660 685/138/676 684/139/675 3288 | f 666/128/660 667/125/662 685/138/676 3289 | # 42 triangles in group 3290 | 3291 | g klZahn2 3292 | usemtl BeinTex 3293 | s 2 3294 | f 710/140/488 691/140/488 688/140/488 3295 | f 693/143/677 709/142/677 690/141/677 3296 | s 1 3297 | f 692/145/678 689/144/679 688/140/680 3298 | f 691/140/488 692/145/678 688/140/680 3299 | f 692/145/678 690/141/681 689/144/679 3300 | f 692/145/678 693/143/682 690/141/681 3301 | s 2 3302 | f 710/140/488 694/140/488 691/140/488 3303 | f 696/146/677 709/142/677 693/143/677 3304 | s 1 3305 | f 694/140/683 692/145/678 691/140/488 3306 | f 694/140/683 695/147/684 692/145/678 3307 | f 696/146/685 693/143/682 692/145/678 3308 | f 695/147/684 696/146/685 692/145/678 3309 | s 2 3310 | f 710/140/488 697/140/488 694/140/488 3311 | f 699/148/677 709/142/677 696/146/677 3312 | s 1 3313 | f 698/149/686 695/147/684 694/140/683 3314 | f 697/140/488 698/149/686 694/140/683 3315 | f 698/149/686 696/146/685 695/147/684 3316 | f 698/149/686 699/148/687 696/146/685 3317 | s 2 3318 | f 710/140/488 700/140/488 697/140/488 3319 | f 702/150/677 709/142/677 699/148/677 3320 | s 1 3321 | f 700/140/688 698/149/686 697/140/488 3322 | f 700/140/688 701/151/689 698/149/686 3323 | f 702/150/690 699/148/687 698/149/686 3324 | f 701/151/689 702/150/690 698/149/686 3325 | s 2 3326 | f 710/140/488 703/140/488 700/140/488 3327 | f 705/152/677 709/142/677 702/150/677 3328 | s 1 3329 | f 704/153/691 701/151/689 700/140/688 3330 | f 703/140/488 704/153/691 700/140/688 3331 | f 704/153/691 702/150/690 701/151/689 3332 | f 704/153/691 705/152/692 702/150/690 3333 | s 2 3334 | f 710/140/488 706/140/488 703/140/488 3335 | f 708/154/677 709/142/677 705/152/677 3336 | s 1 3337 | f 706/140/693 704/153/691 703/140/488 3338 | f 706/140/693 707/155/694 704/153/691 3339 | f 708/154/695 705/152/692 704/153/691 3340 | f 707/155/694 708/154/695 704/153/691 3341 | s 2 3342 | f 710/140/488 688/140/488 706/140/488 3343 | f 690/141/677 709/142/677 708/154/677 3344 | s 1 3345 | f 689/144/679 707/155/694 706/140/693 3346 | f 688/140/680 689/144/679 706/140/693 3347 | f 689/144/679 708/154/695 707/155/694 3348 | f 689/144/679 690/141/681 708/154/695 3349 | # 42 triangles in group 3350 | 3351 | g Auge 3352 | usemtl Augentex 3353 | f 711/277/696 712/278/697 713/279/698 3354 | f 711/277/696 713/279/698 714/280/699 3355 | f 715/281/700 714/280/699 716/282/701 3356 | f 714/280/699 713/279/698 716/282/701 3357 | f 715/281/700 716/282/701 717/283/702 3358 | f 718/284/703 720/285/704 721/286/705 3359 | f 722/287/706 721/286/705 723/288/707 3360 | f 719/289/708 723/288/707 720/285/704 3361 | f 721/286/705 720/285/704 723/288/707 3362 | f 722/287/706 723/288/707 724/290/709 3363 | f 725/291/710 724/290/709 726/292/711 3364 | f 719/289/708 726/292/711 723/288/707 3365 | f 724/290/709 723/288/707 726/292/711 3366 | f 725/291/710 727/293/712 729/294/713 3367 | f 730/295/714 729/294/713 731/296/715 3368 | f 728/297/716 731/296/715 727/293/712 3369 | f 729/294/713 727/293/712 731/296/715 3370 | f 730/295/714 731/296/715 732/298/717 3371 | f 711/277/696 732/298/717 733/299/718 3372 | f 728/297/716 733/299/718 731/296/715 3373 | f 732/298/717 731/296/715 733/299/718 3374 | f 711/277/696 733/299/718 712/278/697 3375 | f 715/281/700 734/300/719 714/280/699 3376 | f 711/277/696 714/280/699 732/298/717 3377 | f 730/295/714 732/298/717 734/300/719 3378 | f 714/280/699 734/300/719 732/298/717 3379 | f 715/281/700 735/301/720 734/300/719 3380 | f 730/295/714 734/300/719 736/302/721 3381 | f 722/287/706 736/302/721 735/301/720 3382 | f 734/300/719 735/301/720 736/302/721 3383 | f 715/281/700 717/283/702 735/301/720 3384 | f 722/287/706 735/301/720 721/286/705 3385 | f 718/284/703 721/286/705 717/283/702 3386 | f 735/301/720 717/283/702 721/286/705 3387 | f 725/291/710 729/294/713 724/290/709 3388 | f 722/287/706 724/290/709 736/302/721 3389 | f 730/295/714 736/302/721 729/294/713 3390 | f 724/290/709 729/294/713 736/302/721 3391 | # 38 triangles in group 3392 | 3393 | g Duplicate05 3394 | usemtl Augentex 3395 | f 739/279/722 738/278/723 737/277/724 3396 | f 740/280/725 739/279/722 737/277/724 3397 | f 742/282/726 740/280/725 741/281/727 3398 | f 742/282/726 739/279/722 740/280/725 3399 | f 743/283/728 742/282/726 741/281/727 3400 | f 747/286/729 746/285/730 744/284/731 3401 | f 749/288/732 747/286/729 748/287/733 3402 | f 746/285/730 749/288/732 745/289/734 3403 | f 749/288/732 746/285/730 747/286/729 3404 | f 750/290/735 749/288/732 748/287/733 3405 | f 752/292/736 750/290/735 751/291/737 3406 | f 749/288/732 752/292/736 745/289/734 3407 | f 752/292/736 749/288/732 750/290/735 3408 | f 755/294/738 753/293/739 751/291/737 3409 | f 757/296/740 755/294/738 756/295/741 3410 | f 753/293/739 757/296/740 754/297/742 3411 | f 757/296/740 753/293/739 755/294/738 3412 | f 758/298/743 757/296/740 756/295/741 3413 | f 759/299/744 758/298/743 737/277/724 3414 | f 757/296/740 759/299/744 754/297/742 3415 | f 759/299/744 757/296/740 758/298/743 3416 | f 738/278/723 759/299/744 737/277/724 3417 | f 740/280/725 760/300/745 741/281/727 3418 | f 758/298/743 740/280/725 737/277/724 3419 | f 760/300/745 758/298/743 756/295/741 3420 | f 758/298/743 760/300/745 740/280/725 3421 | f 760/300/745 761/301/746 741/281/727 3422 | f 762/302/747 760/300/745 756/295/741 3423 | f 761/301/746 762/302/747 748/287/733 3424 | f 762/302/747 761/301/746 760/300/745 3425 | f 761/301/746 743/283/728 741/281/727 3426 | f 747/286/729 761/301/746 748/287/733 3427 | f 743/283/728 747/286/729 744/284/731 3428 | f 747/286/729 743/283/728 761/301/746 3429 | f 750/290/735 755/294/738 751/291/737 3430 | f 762/302/747 750/290/735 748/287/733 3431 | f 755/294/738 762/302/747 756/295/741 3432 | f 762/302/747 755/294/738 750/290/735 3433 | # 38 triangles in group 3434 | 3435 | # 1368 triangles total 3436 | 3437 | --------------------------------------------------------------------------------