diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index c244123..9514767 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -20,9 +20,11 @@ jobs: sudo apt-get install -y build-essential cmake - name: build + working-directory: ${{ github.workspace }} run: | - cmake -DCLOTH_DEBUG=ON . + cmake -DCLOTH_TESTING_ONLY=ON . make -j - name: test + working-directory: ${{ github.workspace }} run: make test diff --git a/.gitignore b/.gitignore index d4fb281..8ea30e8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ *.slo *.lo *.o -*.obj # Precompiled Headers *.gch diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..40242ff --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,46 @@ +# Copyright Matt Overby 2021. +# Distributed under the MIT License. +cmake_minimum_required(VERSION 3.5) + +project(cloth_sim_tutorial LANGUAGES CXX) + +option(CLOTH_DEBUG "run with debug options" OFF) +option(CLOTH_TESTING_ONLY "only compile unit tests" OFF) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +list(PREPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) +add_definitions(-DCLOTH_ROOT_DIR="${CMAKE_CURRENT_SOURCE_DIR}") + +# Change compile flags for debug +if (CLOTH_DEBUG) + add_definitions(-DCLOTH_DEBUG) + set(CMAKE_BUILD_TYPE Debug) + if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wundef -Wextra -Wno-long-long -Wlogical-op -Wshadow -Wmaybe-uninitialized") + endif() +else() + set(CMAKE_BUILD_TYPE Release) +endif() + +# Libigl also includes Eigen, etc +include(libigl) + +# Gather src +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) +file(GLOB SRC + ${CMAKE_CURRENT_SOURCE_DIR}/src/*.hpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) + +# Create binary +if (NOT CLOTH_TESTING_ONLY) + igl_include(glfw) + add_executable(${PROJECT_NAME} ${SRC}) + target_link_libraries(${PROJECT_NAME} PUBLIC igl::glfw) +endif() + +# Unit testing (work in progress) +enable_testing() +add_executable(cloth_test ${CMAKE_CURRENT_SOURCE_DIR}/test/test.cpp) +target_link_libraries(cloth_test PUBLIC igl::core) +add_test(NAME TestClothSolver COMMAND cloth_test) diff --git a/README.md b/README.md index 74e7534..465159a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,91 @@ -# optimization-cloth-tutorial -A tutorial to implicit cloth simulation with numerical optimization +# Implicit Cloth Simulation with Gradient Descent + +A gentle introduction to optimization-based implicit time integration for [CSCI 5611](https://umtc.catalog.prod.coursedog.com/courses/8103481). + +_This is a work in progress. I released this around 2021 and it hasn't seen many updates. Please let me know if you have suggestions: mattoverby@gmail.com_ + +## Introduction + +Cloth simulation is standard coursework for undergraduate computer graphics. +Many assignments focus on explicit methods like [forward Euler](https://en.wikipedia.org/wiki/Euler_method). +While efficient and simple, explicit integrators are notoriously unstable for large time steps and high stiffness. +Implicit methods, e.g., [backward Euler](https://en.wikipedia.org/wiki/Backward_Euler_method), offer a solution to that problem. +The standard [Baraff & Witkin approach](https://doi.org/10.1145/280814.280821) (B&W) forms a Taylor approximation to the Eqs. of motion, i.e., Newton's method. +This results in a block-sparse linear system for which the velocity deltas are solved via [conjugate gradient](https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf). + +The B&W method is conceptually straight forward. However, there are numerous gotchas not apparent in the original references. +In particular, working out the Jacobians of some models can be nontrivial. Even when correct, the derivatives can still produce hard-to-debug instabilities. +The [dynamic deformables course notes](https://doi.org/10.1145/3388769.3407490) describes this well, and I highly recommend reviewing the later chapters on cloth simulation for a thorough review of the topic. +Nonetheless, implicit time integration remains a valuable and sometimes necessary tool for modern graphics applications. + +Recently, optimization-based methods have grown in popularity. This approach formulates the Eqs. of motion as an [iteratively minimized objective function](https://en.wikipedia.org/wiki/Optimization_problem). +These methods provide unparalleled robustness and extensibility, e.g., [state of the art solvers](https://doi.org/10.1145/3450626.3459767) for cloth simulation. +The implementation is often easier to construct piece-by-piece than B&W-style integrators. + +Below we describe a simple implicit solver for mass-spring systems using gradient descent. +This is meant solely as a tutorial to optimization-based time stepping, and not for practical applications. +For that, you'll want to consider higher-order optimization algorithms or [local-global type solvers](https://github.com/alecjacobson/computer-graphics-mass-spring-systems). + +## Implementation + +The objective we aim to minimize is the sum of internal elastic energy potentials plus a quadratic penalty of linear momentum: + +,
+, + +for vertex locations *x*, time step (sec) *h*, diagonal mass matrix *M*, velocities *v*, and external forces (gravity, wind, etc...) +. The term is the *explicit predictor* +that is computed at the beginning of the time step. Computing a frame of animation amounts to iteratively minimizing the above objective until some convergence criteria is met +(e.g., the norm of the gradient is below some threshold). + +### Interface + +Below we lay out the steps to produce an optimization-based solver for implicit cloth simulation. +The dependencies will be fetched through a [DownloadProject](https://github.com/Crascit/DownloadProject) CMake script. +[Eigen](https://eigen.tuxfamily.org) is used for linear algebra, which is an industry standard library for vector math. +Rendering and mesh I/O is handled with [libigl](https://libigl.github.io) which also contains many excellent routines for mesh processing. +In libigl, meshes are stored as two dense matrices, an nx3 matrix for vertices and an mx3 matrix for faces. +Animating the mesh is done through a pre-draw callback in which we call our solver to update the vertex positions. +It takes a little finesse to improve the rendering, so we'll save that for another day. + +To compile, execute the following commands: +1. mkdir build +2. cd build +3. cmake .. +4. make -j + +### Energies + +Whenever I write a new simulator, I start with the most basic elastic energy as the deformable primitives: a Hookean spring with stiffness *k* and rest length . The potential energy of a spring is . +These springs are created from the unique edges of tCe triangle mesh, with bending springs created between adjacent triangles. +The [ClothMesh class](src/ClothMesh.hpp) generates this data given vertex and face buffers. +We can also evaluate temporary springs to deal with collisions. One end point is the vertex, and the other is the projection onto the surface it's penetrating. + +### Optimization + +[Gradient descent](https://en.wikipedia.org/wiki/Gradient_descent) is a simple first-order method that steps along the negative gradient w.r.t. *x* at each iteration: . We use *i* to denote the iteration and *p* as the descent direction. By all accounts, gradient descent is a poor choice due to its low rate of convergence. You can certainly improve performance with other higher-order optimizers. However, I personally advocate starting with gradient descent when writing new optimization code. The optimizer is so simple it's hard to make a mistake - if there are bugs, they are surely in your energy or gradient calculations. This can be a helpful debugging strategy! + +Each iteration, we have to make sure we aren't overshooting the objective and increase the energy. This is accomplished by scaling the descent direction with a scalar *s* using [line search](https://en.wikipedia.org/wiki/Line_search). All together, an iteration of gradient descent involves: + +,
+,
+. + +Both energy and gradient use similar calculations so you can save resources (and implementation efforts) by computing them both at same time. I like to use one function for both and skip gradient calculation with a conditional during line search. You can see the evaluation of the objective and gradient in the [Objective class](src/Objective.hpp), with gradient descent in [Solver](src/Solver.hpp). + +### Common Problems +With these pieces you have enough to implement an implicit cloth solver. But there are a number of common problems to be aware of if your solver starts behaving erratically: +- Using masses that aren't scaled by the area of the mesh +- The cloth mesh is unrealistically large or small: Each unit of the implementation should correspond to one meter or centimeter. Whatever you choose, be consistent. +- The time step is too large or small (it should be somewhere between 1/1000 and 1/20) +- Forgetting to resize or initialize matrix values +- Dividing by zero and error propogation: A single zero-length spring can produce instabilities, as its result is passed all the way up the food chain to the solver. Using asserts, guards, and std::isfinite any time you do a division will save you a lot of trouble (see the [Objective class](src/Objective.hpp) for an example). + +## Next Steps + +There are many ways to improve the solver illustrated above: +- Parallelizing the objective and gradient calculation (I recommend [TBB](https://software.intel.com/en-us/oneapi/onetbb)) +- Collision against triangle meshes with a [signed distance field](https://github.com/InteractiveComputerGraphics/TriangleMeshDistance) +- Better energy models with triangular elements ([Dynamic Deformables appendix D](https://doi.org/10.1145/3388769.3407490)) +- Preconditioning or accelerated versions of gradient descent +- Optimizers with better convergence like [L-BFGS](https://en.wikipedia.org/wiki/Limited-memory_BFGS) or [projected Newton](https://doi.org/10.1145/1073368.1073394) diff --git a/cmake/libigl.cmake b/cmake/libigl.cmake new file mode 100644 index 0000000..1aae978 --- /dev/null +++ b/cmake/libigl.cmake @@ -0,0 +1,11 @@ +if(TARGET igl::core) + return() +endif() + +include(FetchContent) +FetchContent_Declare( + libigl + GIT_REPOSITORY https://github.com/libigl/libigl.git + GIT_TAG v2.5.0 +) +FetchContent_MakeAvailable(libigl) \ No newline at end of file diff --git a/data/plane.obj b/data/plane.obj new file mode 100644 index 0000000..a4f9c26 --- /dev/null +++ b/data/plane.obj @@ -0,0 +1,3966 @@ +v 0.778336 0.000000 0.778336 +v 0.778336 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v 1.000000 0.000000 0.778336 +v 0.556664 0.000000 0.778336 +v 0.556664 0.000000 1.000000 +v 0.335000 0.000000 0.778336 +v 0.335000 0.000000 1.000000 +v 0.113336 0.000000 0.778336 +v 0.113336 0.000000 1.000000 +v -0.108336 0.000000 0.778336 +v -0.108336 0.000000 1.000000 +v -0.330000 0.000000 0.778336 +v -0.330000 0.000000 1.000000 +v -0.551664 0.000000 0.778336 +v -0.551664 0.000000 1.000000 +v -0.773336 0.000000 0.778336 +v -0.773336 0.000000 1.000000 +v -0.995000 0.000000 0.778336 +v -0.995000 0.000000 1.000000 +v 0.778336 0.000000 0.556664 +v 1.000000 0.000000 0.556664 +v 0.556664 0.000000 0.556664 +v 0.335000 0.000000 0.556664 +v 0.113336 0.000000 0.556664 +v -0.108336 0.000000 0.556664 +v -0.330000 0.000000 0.556664 +v -0.551664 0.000000 0.556664 +v -0.773336 0.000000 0.556664 +v -0.995000 0.000000 0.556664 +v 0.778336 0.000000 0.335000 +v 1.000000 0.000000 0.335000 +v 0.556664 0.000000 0.335000 +v 0.335000 0.000000 0.335000 +v 0.113336 0.000000 0.335000 +v -0.108336 0.000000 0.335000 +v -0.330000 0.000000 0.335000 +v -0.551664 0.000000 0.335000 +v -0.773336 0.000000 0.335000 +v -0.995000 0.000000 0.335000 +v 0.778336 0.000000 0.113336 +v 1.000000 0.000000 0.113336 +v 0.556664 0.000000 0.113336 +v 0.335000 0.000000 0.113336 +v 0.113336 0.000000 0.113336 +v -0.108336 0.000000 0.113336 +v -0.330000 0.000000 0.113336 +v -0.551664 0.000000 0.113336 +v -0.773336 0.000000 0.113336 +v -0.995000 0.000000 0.113336 +v 0.778336 0.000000 -0.108336 +v 1.000000 0.000000 -0.108336 +v 0.556664 0.000000 -0.108336 +v 0.335000 0.000000 -0.108336 +v 0.113336 0.000000 -0.108336 +v -0.108336 0.000000 -0.108336 +v -0.330000 0.000000 -0.108336 +v -0.551664 0.000000 -0.108336 +v -0.773336 0.000000 -0.108336 +v -0.995000 0.000000 -0.108336 +v 0.778336 0.000000 -0.330000 +v 1.000000 0.000000 -0.330000 +v 0.556664 0.000000 -0.330000 +v 0.335000 0.000000 -0.330000 +v 0.113336 0.000000 -0.330000 +v -0.108336 0.000000 -0.330000 +v -0.330000 0.000000 -0.330000 +v -0.551664 0.000000 -0.330000 +v -0.773336 0.000000 -0.330000 +v -0.995000 0.000000 -0.330000 +v 0.778336 0.000000 -0.551664 +v 1.000000 0.000000 -0.551664 +v 0.556664 0.000000 -0.551664 +v 0.335000 0.000000 -0.551664 +v 0.113336 0.000000 -0.551664 +v -0.108336 0.000000 -0.551664 +v -0.330000 0.000000 -0.551664 +v -0.551664 0.000000 -0.551664 +v -0.773336 0.000000 -0.551664 +v -0.995000 0.000000 -0.551664 +v 0.778336 0.000000 -0.773336 +v 1.000000 0.000000 -0.773336 +v 0.556664 0.000000 -0.773336 +v 0.335000 0.000000 -0.773336 +v 0.113336 0.000000 -0.773336 +v -0.108336 0.000000 -0.773336 +v -0.330000 0.000000 -0.773336 +v -0.551664 0.000000 -0.773336 +v -0.773336 0.000000 -0.773336 +v -0.995000 0.000000 -0.773336 +v 0.778336 0.000000 -0.995000 +v 1.000000 0.000000 -0.995000 +v 0.556664 0.000000 -0.995000 +v 0.335000 0.000000 -0.995000 +v 0.113336 0.000000 -0.995000 +v -0.108336 0.000000 -0.995000 +v -0.330000 0.000000 -0.995000 +v -0.551664 0.000000 -0.995000 +v -0.773336 0.000000 -0.995000 +v -0.995000 0.000000 -0.995000 +v 0.778336 0.000000 0.889168 +v 0.889168 0.000000 1.000000 +v 0.889168 0.000000 0.889168 +v 1.000000 0.000000 0.889168 +v 0.889168 0.000000 0.778336 +v 0.556664 0.000000 0.889168 +v 0.667500 0.000000 1.000000 +v 0.667500 0.000000 0.889168 +v 0.667500 0.000000 0.778336 +v 0.335000 0.000000 0.889168 +v 0.445832 0.000000 1.000000 +v 0.445832 0.000000 0.889168 +v 0.445832 0.000000 0.778336 +v 0.113336 0.000000 0.889168 +v 0.224168 0.000000 1.000000 +v 0.224168 0.000000 0.889168 +v 0.224168 0.000000 0.778336 +v -0.108336 0.000000 0.889168 +v 0.002500 0.000000 1.000000 +v 0.002500 0.000000 0.889168 +v 0.002500 0.000000 0.778336 +v -0.330000 0.000000 0.889168 +v -0.219168 0.000000 1.000000 +v -0.219168 0.000000 0.889168 +v -0.219168 0.000000 0.778336 +v -0.551664 0.000000 0.889168 +v -0.440832 0.000000 1.000000 +v -0.440832 0.000000 0.889168 +v -0.440832 0.000000 0.778336 +v -0.773336 0.000000 0.889168 +v -0.662500 0.000000 1.000000 +v -0.662500 0.000000 0.889168 +v -0.662500 0.000000 0.778336 +v -0.995000 0.000000 0.889168 +v -0.884168 0.000000 1.000000 +v -0.884168 0.000000 0.889168 +v -0.884168 0.000000 0.778336 +v 0.778336 0.000000 0.667500 +v 0.889168 0.000000 0.667500 +v 1.000000 0.000000 0.667500 +v 0.889168 0.000000 0.556664 +v 0.556664 0.000000 0.667500 +v 0.667500 0.000000 0.667500 +v 0.667500 0.000000 0.556664 +v 0.335000 0.000000 0.667500 +v 0.445832 0.000000 0.667500 +v 0.445832 0.000000 0.556664 +v 0.113336 0.000000 0.667500 +v 0.224168 0.000000 0.667500 +v 0.224168 0.000000 0.556664 +v -0.108336 0.000000 0.667500 +v 0.002500 0.000000 0.667500 +v 0.002500 0.000000 0.556664 +v -0.330000 0.000000 0.667500 +v -0.219168 0.000000 0.667500 +v -0.219168 0.000000 0.556664 +v -0.551664 0.000000 0.667500 +v -0.440832 0.000000 0.667500 +v -0.440832 0.000000 0.556664 +v -0.773336 0.000000 0.667500 +v -0.662500 0.000000 0.667500 +v -0.662500 0.000000 0.556664 +v -0.995000 0.000000 0.667500 +v -0.884168 0.000000 0.667500 +v -0.884168 0.000000 0.556664 +v 0.778336 0.000000 0.445832 +v 0.889168 0.000000 0.445832 +v 1.000000 0.000000 0.445832 +v 0.889168 0.000000 0.335000 +v 0.556664 0.000000 0.445832 +v 0.667500 0.000000 0.445832 +v 0.667500 0.000000 0.335000 +v 0.335000 0.000000 0.445832 +v 0.445832 0.000000 0.445832 +v 0.445832 0.000000 0.335000 +v 0.113336 0.000000 0.445832 +v 0.224168 0.000000 0.445832 +v 0.224168 0.000000 0.335000 +v -0.108336 0.000000 0.445832 +v 0.002500 0.000000 0.445832 +v 0.002500 0.000000 0.335000 +v -0.330000 0.000000 0.445832 +v -0.219168 0.000000 0.445832 +v -0.219168 0.000000 0.335000 +v -0.551664 0.000000 0.445832 +v -0.440832 0.000000 0.445832 +v -0.440832 0.000000 0.335000 +v -0.773336 0.000000 0.445832 +v -0.662500 0.000000 0.445832 +v -0.662500 0.000000 0.335000 +v -0.995000 0.000000 0.445832 +v -0.884168 0.000000 0.445832 +v -0.884168 0.000000 0.335000 +v 0.778336 0.000000 0.224168 +v 0.889168 0.000000 0.224168 +v 1.000000 0.000000 0.224168 +v 0.889168 0.000000 0.113336 +v 0.556664 0.000000 0.224168 +v 0.667500 0.000000 0.224168 +v 0.667500 0.000000 0.113336 +v 0.335000 0.000000 0.224168 +v 0.445832 0.000000 0.224168 +v 0.445832 0.000000 0.113336 +v 0.113336 0.000000 0.224168 +v 0.224168 0.000000 0.224168 +v 0.224168 0.000000 0.113336 +v -0.108336 0.000000 0.224168 +v 0.002500 0.000000 0.224168 +v 0.002500 0.000000 0.113336 +v -0.330000 0.000000 0.224168 +v -0.219168 0.000000 0.224168 +v -0.219168 0.000000 0.113336 +v -0.551664 0.000000 0.224168 +v -0.440832 0.000000 0.224168 +v -0.440832 0.000000 0.113336 +v -0.773336 0.000000 0.224168 +v -0.662500 0.000000 0.224168 +v -0.662500 0.000000 0.113336 +v -0.995000 0.000000 0.224168 +v -0.884168 0.000000 0.224168 +v -0.884168 0.000000 0.113336 +v 0.778336 0.000000 0.002500 +v 0.889168 0.000000 0.002500 +v 1.000000 0.000000 0.002500 +v 0.889168 0.000000 -0.108336 +v 0.556664 0.000000 0.002500 +v 0.667500 0.000000 0.002500 +v 0.667500 0.000000 -0.108336 +v 0.335000 0.000000 0.002500 +v 0.445832 0.000000 0.002500 +v 0.445832 0.000000 -0.108336 +v 0.113336 0.000000 0.002500 +v 0.224168 0.000000 0.002500 +v 0.224168 0.000000 -0.108336 +v -0.108336 0.000000 0.002500 +v 0.002500 0.000000 0.002500 +v 0.002500 0.000000 -0.108336 +v -0.330000 0.000000 0.002500 +v -0.219168 0.000000 0.002500 +v -0.219168 0.000000 -0.108336 +v -0.551664 0.000000 0.002500 +v -0.440832 0.000000 0.002500 +v -0.440832 0.000000 -0.108336 +v -0.773336 0.000000 0.002500 +v -0.662500 0.000000 0.002500 +v -0.662500 0.000000 -0.108336 +v -0.995000 0.000000 0.002500 +v -0.884168 0.000000 0.002500 +v -0.884168 0.000000 -0.108336 +v 0.778336 0.000000 -0.219168 +v 0.889168 0.000000 -0.219168 +v 1.000000 0.000000 -0.219168 +v 0.889168 0.000000 -0.330000 +v 0.556664 0.000000 -0.219168 +v 0.667500 0.000000 -0.219168 +v 0.667500 0.000000 -0.330000 +v 0.335000 0.000000 -0.219168 +v 0.445832 0.000000 -0.219168 +v 0.445832 0.000000 -0.330000 +v 0.113336 0.000000 -0.219168 +v 0.224168 0.000000 -0.219168 +v 0.224168 0.000000 -0.330000 +v -0.108336 0.000000 -0.219168 +v 0.002500 0.000000 -0.219168 +v 0.002500 0.000000 -0.330000 +v -0.330000 0.000000 -0.219168 +v -0.219168 0.000000 -0.219168 +v -0.219168 0.000000 -0.330000 +v -0.551664 0.000000 -0.219168 +v -0.440832 0.000000 -0.219168 +v -0.440832 0.000000 -0.330000 +v -0.773336 0.000000 -0.219168 +v -0.662500 0.000000 -0.219168 +v -0.662500 0.000000 -0.330000 +v -0.995000 0.000000 -0.219168 +v -0.884168 0.000000 -0.219168 +v -0.884168 0.000000 -0.330000 +v 0.778336 0.000000 -0.440832 +v 0.889168 0.000000 -0.440832 +v 1.000000 0.000000 -0.440832 +v 0.889168 0.000000 -0.551664 +v 0.556664 0.000000 -0.440832 +v 0.667500 0.000000 -0.440832 +v 0.667500 0.000000 -0.551664 +v 0.335000 0.000000 -0.440832 +v 0.445832 0.000000 -0.440832 +v 0.445832 0.000000 -0.551664 +v 0.113336 0.000000 -0.440832 +v 0.224168 0.000000 -0.440832 +v 0.224168 0.000000 -0.551664 +v -0.108336 0.000000 -0.440832 +v 0.002500 0.000000 -0.440832 +v 0.002500 0.000000 -0.551664 +v -0.330000 0.000000 -0.440832 +v -0.219168 0.000000 -0.440832 +v -0.219168 0.000000 -0.551664 +v -0.551664 0.000000 -0.440832 +v -0.440832 0.000000 -0.440832 +v -0.440832 0.000000 -0.551664 +v -0.773336 0.000000 -0.440832 +v -0.662500 0.000000 -0.440832 +v -0.662500 0.000000 -0.551664 +v -0.995000 0.000000 -0.440832 +v -0.884168 0.000000 -0.440832 +v -0.884168 0.000000 -0.551664 +v 0.778336 0.000000 -0.662500 +v 0.889168 0.000000 -0.662500 +v 1.000000 0.000000 -0.662500 +v 0.889168 0.000000 -0.773336 +v 0.556664 0.000000 -0.662500 +v 0.667500 0.000000 -0.662500 +v 0.667500 0.000000 -0.773336 +v 0.335000 0.000000 -0.662500 +v 0.445832 0.000000 -0.662500 +v 0.445832 0.000000 -0.773336 +v 0.113336 0.000000 -0.662500 +v 0.224168 0.000000 -0.662500 +v 0.224168 0.000000 -0.773336 +v -0.108336 0.000000 -0.662500 +v 0.002500 0.000000 -0.662500 +v 0.002500 0.000000 -0.773336 +v -0.330000 0.000000 -0.662500 +v -0.219168 0.000000 -0.662500 +v -0.219168 0.000000 -0.773336 +v -0.551664 0.000000 -0.662500 +v -0.440832 0.000000 -0.662500 +v -0.440832 0.000000 -0.773336 +v -0.773336 0.000000 -0.662500 +v -0.662500 0.000000 -0.662500 +v -0.662500 0.000000 -0.773336 +v -0.995000 0.000000 -0.662500 +v -0.884168 0.000000 -0.662500 +v -0.884168 0.000000 -0.773336 +v 0.778336 0.000000 -0.884168 +v 0.889168 0.000000 -0.884168 +v 1.000000 0.000000 -0.884168 +v 0.889168 0.000000 -0.995000 +v 0.556664 0.000000 -0.884168 +v 0.667500 0.000000 -0.884168 +v 0.667500 0.000000 -0.995000 +v 0.335000 0.000000 -0.884168 +v 0.445832 0.000000 -0.884168 +v 0.445832 0.000000 -0.995000 +v 0.113336 0.000000 -0.884168 +v 0.224168 0.000000 -0.884168 +v 0.224168 0.000000 -0.995000 +v -0.108336 0.000000 -0.884168 +v 0.002500 0.000000 -0.884168 +v 0.002500 0.000000 -0.995000 +v -0.330000 0.000000 -0.884168 +v -0.219168 0.000000 -0.884168 +v -0.219168 0.000000 -0.995000 +v -0.551664 0.000000 -0.884168 +v -0.440832 0.000000 -0.884168 +v -0.440832 0.000000 -0.995000 +v -0.773336 0.000000 -0.884168 +v -0.662500 0.000000 -0.884168 +v -0.662500 0.000000 -0.995000 +v -0.995000 0.000000 -0.884168 +v -0.884168 0.000000 -0.884168 +v -0.884168 0.000000 -0.995000 +v 0.833752 0.000000 0.944584 +v 0.889168 0.000000 0.944584 +v 0.833752 0.000000 0.889168 +v 0.944584 0.000000 0.833752 +v 0.889168 0.000000 0.833752 +v 0.944584 0.000000 0.889168 +v 0.612082 0.000000 0.944584 +v 0.667500 0.000000 0.944584 +v 0.612082 0.000000 0.889168 +v 0.722918 0.000000 0.833752 +v 0.667500 0.000000 0.833752 +v 0.722918 0.000000 0.889168 +v 0.390416 0.000000 0.944584 +v 0.445832 0.000000 0.944584 +v 0.390416 0.000000 0.889168 +v 0.501248 0.000000 0.833752 +v 0.445832 0.000000 0.833752 +v 0.501248 0.000000 0.889168 +v 0.168752 0.000000 0.944584 +v 0.224168 0.000000 0.944584 +v 0.168752 0.000000 0.889168 +v 0.279584 0.000000 0.833752 +v 0.224168 0.000000 0.833752 +v 0.279584 0.000000 0.889168 +v -0.052918 0.000000 0.944584 +v 0.002500 0.000000 0.944584 +v -0.052918 0.000000 0.889168 +v 0.057918 0.000000 0.833752 +v 0.002500 0.000000 0.833752 +v 0.057918 0.000000 0.889168 +v -0.274584 0.000000 0.944584 +v -0.219168 0.000000 0.944584 +v -0.274584 0.000000 0.889168 +v -0.163752 0.000000 0.833752 +v -0.219168 0.000000 0.833752 +v -0.163752 0.000000 0.889168 +v -0.496248 0.000000 0.944584 +v -0.440832 0.000000 0.944584 +v -0.496248 0.000000 0.889168 +v -0.385416 0.000000 0.833752 +v -0.440832 0.000000 0.833752 +v -0.385416 0.000000 0.889168 +v -0.717918 0.000000 0.944584 +v -0.662500 0.000000 0.944584 +v -0.717918 0.000000 0.889168 +v -0.607082 0.000000 0.833752 +v -0.662500 0.000000 0.833752 +v -0.607082 0.000000 0.889168 +v -0.939584 0.000000 0.944584 +v -0.884168 0.000000 0.944584 +v -0.939584 0.000000 0.889168 +v -0.828752 0.000000 0.833752 +v -0.884168 0.000000 0.833752 +v -0.828752 0.000000 0.889168 +v 0.833752 0.000000 0.722918 +v 0.889168 0.000000 0.722918 +v 0.833752 0.000000 0.667500 +v 0.944584 0.000000 0.612082 +v 0.889168 0.000000 0.612082 +v 0.944584 0.000000 0.667500 +v 0.612082 0.000000 0.722918 +v 0.667500 0.000000 0.722918 +v 0.612082 0.000000 0.667500 +v 0.722918 0.000000 0.612082 +v 0.667500 0.000000 0.612082 +v 0.722918 0.000000 0.667500 +v 0.390416 0.000000 0.722918 +v 0.445832 0.000000 0.722918 +v 0.390416 0.000000 0.667500 +v 0.501248 0.000000 0.612082 +v 0.445832 0.000000 0.612082 +v 0.501248 0.000000 0.667500 +v 0.168752 0.000000 0.722918 +v 0.224168 0.000000 0.722918 +v 0.168752 0.000000 0.667500 +v 0.279584 0.000000 0.612082 +v 0.224168 0.000000 0.612082 +v 0.279584 0.000000 0.667500 +v -0.052918 0.000000 0.722918 +v 0.002500 0.000000 0.722918 +v -0.052918 0.000000 0.667500 +v 0.057918 0.000000 0.612082 +v 0.002500 0.000000 0.612082 +v 0.057918 0.000000 0.667500 +v -0.274584 0.000000 0.722918 +v -0.219168 0.000000 0.722918 +v -0.274584 0.000000 0.667500 +v -0.163752 0.000000 0.612082 +v -0.219168 0.000000 0.612082 +v -0.163752 0.000000 0.667500 +v -0.496248 0.000000 0.722918 +v -0.440832 0.000000 0.722918 +v -0.496248 0.000000 0.667500 +v -0.385416 0.000000 0.612082 +v -0.440832 0.000000 0.612082 +v -0.385416 0.000000 0.667500 +v -0.717918 0.000000 0.722918 +v -0.662500 0.000000 0.722918 +v -0.717918 0.000000 0.667500 +v -0.607082 0.000000 0.612082 +v -0.662500 0.000000 0.612082 +v -0.607082 0.000000 0.667500 +v -0.939584 0.000000 0.722918 +v -0.884168 0.000000 0.722918 +v -0.939584 0.000000 0.667500 +v -0.828752 0.000000 0.612082 +v -0.884168 0.000000 0.612082 +v -0.828752 0.000000 0.667500 +v 0.833752 0.000000 0.501248 +v 0.889168 0.000000 0.501248 +v 0.833752 0.000000 0.445832 +v 0.944584 0.000000 0.390416 +v 0.889168 0.000000 0.390416 +v 0.944584 0.000000 0.445832 +v 0.612082 0.000000 0.501248 +v 0.667500 0.000000 0.501248 +v 0.612082 0.000000 0.445832 +v 0.722918 0.000000 0.390416 +v 0.667500 0.000000 0.390416 +v 0.722918 0.000000 0.445832 +v 0.390416 0.000000 0.501248 +v 0.445832 0.000000 0.501248 +v 0.390416 0.000000 0.445832 +v 0.501248 0.000000 0.390416 +v 0.445832 0.000000 0.390416 +v 0.501248 0.000000 0.445832 +v 0.168752 0.000000 0.501248 +v 0.224168 0.000000 0.501248 +v 0.168752 0.000000 0.445832 +v 0.279584 0.000000 0.390416 +v 0.224168 0.000000 0.390416 +v 0.279584 0.000000 0.445832 +v -0.052918 0.000000 0.501248 +v 0.002500 0.000000 0.501248 +v -0.052918 0.000000 0.445832 +v 0.057918 0.000000 0.390416 +v 0.002500 0.000000 0.390416 +v 0.057918 0.000000 0.445832 +v -0.274584 0.000000 0.501248 +v -0.219168 0.000000 0.501248 +v -0.274584 0.000000 0.445832 +v -0.163752 0.000000 0.390416 +v -0.219168 0.000000 0.390416 +v -0.163752 0.000000 0.445832 +v -0.496248 0.000000 0.501248 +v -0.440832 0.000000 0.501248 +v -0.496248 0.000000 0.445832 +v -0.385416 0.000000 0.390416 +v -0.440832 0.000000 0.390416 +v -0.385416 0.000000 0.445832 +v -0.717918 0.000000 0.501248 +v -0.662500 0.000000 0.501248 +v -0.717918 0.000000 0.445832 +v -0.607082 0.000000 0.390416 +v -0.662500 0.000000 0.390416 +v -0.607082 0.000000 0.445832 +v -0.939584 0.000000 0.501248 +v -0.884168 0.000000 0.501248 +v -0.939584 0.000000 0.445832 +v -0.828752 0.000000 0.390416 +v -0.884168 0.000000 0.390416 +v -0.828752 0.000000 0.445832 +v 0.833752 0.000000 0.279584 +v 0.889168 0.000000 0.279584 +v 0.833752 0.000000 0.224168 +v 0.944584 0.000000 0.168752 +v 0.889168 0.000000 0.168752 +v 0.944584 0.000000 0.224168 +v 0.612082 0.000000 0.279584 +v 0.667500 0.000000 0.279584 +v 0.612082 0.000000 0.224168 +v 0.722918 0.000000 0.168752 +v 0.667500 0.000000 0.168752 +v 0.722918 0.000000 0.224168 +v 0.390416 0.000000 0.279584 +v 0.445832 0.000000 0.279584 +v 0.390416 0.000000 0.224168 +v 0.501248 0.000000 0.168752 +v 0.445832 0.000000 0.168752 +v 0.501248 0.000000 0.224168 +v 0.168752 0.000000 0.279584 +v 0.224168 0.000000 0.279584 +v 0.168752 0.000000 0.224168 +v 0.279584 0.000000 0.168752 +v 0.224168 0.000000 0.168752 +v 0.279584 0.000000 0.224168 +v -0.052918 0.000000 0.279584 +v 0.002500 0.000000 0.279584 +v -0.052918 0.000000 0.224168 +v 0.057918 0.000000 0.168752 +v 0.002500 0.000000 0.168752 +v 0.057918 0.000000 0.224168 +v -0.274584 0.000000 0.279584 +v -0.219168 0.000000 0.279584 +v -0.274584 0.000000 0.224168 +v -0.163752 0.000000 0.168752 +v -0.219168 0.000000 0.168752 +v -0.163752 0.000000 0.224168 +v -0.496248 0.000000 0.279584 +v -0.440832 0.000000 0.279584 +v -0.496248 0.000000 0.224168 +v -0.385416 0.000000 0.168752 +v -0.440832 0.000000 0.168752 +v -0.385416 0.000000 0.224168 +v -0.717918 0.000000 0.279584 +v -0.662500 0.000000 0.279584 +v -0.717918 0.000000 0.224168 +v -0.607082 0.000000 0.168752 +v -0.662500 0.000000 0.168752 +v -0.607082 0.000000 0.224168 +v -0.939584 0.000000 0.279584 +v -0.884168 0.000000 0.279584 +v -0.939584 0.000000 0.224168 +v -0.828752 0.000000 0.168752 +v -0.884168 0.000000 0.168752 +v -0.828752 0.000000 0.224168 +v 0.833752 0.000000 0.057918 +v 0.889168 0.000000 0.057918 +v 0.833752 0.000000 0.002500 +v 0.944584 0.000000 -0.052918 +v 0.889168 0.000000 -0.052918 +v 0.944584 0.000000 0.002500 +v 0.612082 0.000000 0.057918 +v 0.667500 0.000000 0.057918 +v 0.612082 0.000000 0.002500 +v 0.722918 0.000000 -0.052918 +v 0.667500 0.000000 -0.052918 +v 0.722918 0.000000 0.002500 +v 0.390416 0.000000 0.057918 +v 0.445832 0.000000 0.057918 +v 0.390416 0.000000 0.002500 +v 0.501248 0.000000 -0.052918 +v 0.445832 0.000000 -0.052918 +v 0.501248 0.000000 0.002500 +v 0.168752 0.000000 0.057918 +v 0.224168 0.000000 0.057918 +v 0.168752 0.000000 0.002500 +v 0.279584 0.000000 -0.052918 +v 0.224168 0.000000 -0.052918 +v 0.279584 0.000000 0.002500 +v -0.052918 0.000000 0.057918 +v 0.002500 0.000000 0.057918 +v -0.052918 0.000000 0.002500 +v 0.057918 0.000000 -0.052918 +v 0.002500 0.000000 -0.052918 +v 0.057918 0.000000 0.002500 +v -0.274584 0.000000 0.057918 +v -0.219168 0.000000 0.057918 +v -0.274584 0.000000 0.002500 +v -0.163752 0.000000 -0.052918 +v -0.219168 0.000000 -0.052918 +v -0.163752 0.000000 0.002500 +v -0.496248 0.000000 0.057918 +v -0.440832 0.000000 0.057918 +v -0.496248 0.000000 0.002500 +v -0.385416 0.000000 -0.052918 +v -0.440832 0.000000 -0.052918 +v -0.385416 0.000000 0.002500 +v -0.717918 0.000000 0.057918 +v -0.662500 0.000000 0.057918 +v -0.717918 0.000000 0.002500 +v -0.607082 0.000000 -0.052918 +v -0.662500 0.000000 -0.052918 +v -0.607082 0.000000 0.002500 +v -0.939584 0.000000 0.057918 +v -0.884168 0.000000 0.057918 +v -0.939584 0.000000 0.002500 +v -0.828752 0.000000 -0.052918 +v -0.884168 0.000000 -0.052918 +v -0.828752 0.000000 0.002500 +v 0.833752 0.000000 -0.163752 +v 0.889168 0.000000 -0.163752 +v 0.833752 0.000000 -0.219168 +v 0.944584 0.000000 -0.274584 +v 0.889168 0.000000 -0.274584 +v 0.944584 0.000000 -0.219168 +v 0.612082 0.000000 -0.163752 +v 0.667500 0.000000 -0.163752 +v 0.612082 0.000000 -0.219168 +v 0.722918 0.000000 -0.274584 +v 0.667500 0.000000 -0.274584 +v 0.722918 0.000000 -0.219168 +v 0.390416 0.000000 -0.163752 +v 0.445832 0.000000 -0.163752 +v 0.390416 0.000000 -0.219168 +v 0.501248 0.000000 -0.274584 +v 0.445832 0.000000 -0.274584 +v 0.501248 0.000000 -0.219168 +v 0.168752 0.000000 -0.163752 +v 0.224168 0.000000 -0.163752 +v 0.168752 0.000000 -0.219168 +v 0.279584 0.000000 -0.274584 +v 0.224168 0.000000 -0.274584 +v 0.279584 0.000000 -0.219168 +v -0.052918 0.000000 -0.163752 +v 0.002500 0.000000 -0.163752 +v -0.052918 0.000000 -0.219168 +v 0.057918 0.000000 -0.274584 +v 0.002500 0.000000 -0.274584 +v 0.057918 0.000000 -0.219168 +v -0.274584 0.000000 -0.163752 +v -0.219168 0.000000 -0.163752 +v -0.274584 0.000000 -0.219168 +v -0.163752 0.000000 -0.274584 +v -0.219168 0.000000 -0.274584 +v -0.163752 0.000000 -0.219168 +v -0.496248 0.000000 -0.163752 +v -0.440832 0.000000 -0.163752 +v -0.496248 0.000000 -0.219168 +v -0.385416 0.000000 -0.274584 +v -0.440832 0.000000 -0.274584 +v -0.385416 0.000000 -0.219168 +v -0.717918 0.000000 -0.163752 +v -0.662500 0.000000 -0.163752 +v -0.717918 0.000000 -0.219168 +v -0.607082 0.000000 -0.274584 +v -0.662500 0.000000 -0.274584 +v -0.607082 0.000000 -0.219168 +v -0.939584 0.000000 -0.163752 +v -0.884168 0.000000 -0.163752 +v -0.939584 0.000000 -0.219168 +v -0.828752 0.000000 -0.274584 +v -0.884168 0.000000 -0.274584 +v -0.828752 0.000000 -0.219168 +v 0.833752 0.000000 -0.385416 +v 0.889168 0.000000 -0.385416 +v 0.833752 0.000000 -0.440832 +v 0.944584 0.000000 -0.496248 +v 0.889168 0.000000 -0.496248 +v 0.944584 0.000000 -0.440832 +v 0.612082 0.000000 -0.385416 +v 0.667500 0.000000 -0.385416 +v 0.612082 0.000000 -0.440832 +v 0.722918 0.000000 -0.496248 +v 0.667500 0.000000 -0.496248 +v 0.722918 0.000000 -0.440832 +v 0.390416 0.000000 -0.385416 +v 0.445832 0.000000 -0.385416 +v 0.390416 0.000000 -0.440832 +v 0.501248 0.000000 -0.496248 +v 0.445832 0.000000 -0.496248 +v 0.501248 0.000000 -0.440832 +v 0.168752 0.000000 -0.385416 +v 0.224168 0.000000 -0.385416 +v 0.168752 0.000000 -0.440832 +v 0.279584 0.000000 -0.496248 +v 0.224168 0.000000 -0.496248 +v 0.279584 0.000000 -0.440832 +v -0.052918 0.000000 -0.385416 +v 0.002500 0.000000 -0.385416 +v -0.052918 0.000000 -0.440832 +v 0.057918 0.000000 -0.496248 +v 0.002500 0.000000 -0.496248 +v 0.057918 0.000000 -0.440832 +v -0.274584 0.000000 -0.385416 +v -0.219168 0.000000 -0.385416 +v -0.274584 0.000000 -0.440832 +v -0.163752 0.000000 -0.496248 +v -0.219168 0.000000 -0.496248 +v -0.163752 0.000000 -0.440832 +v -0.496248 0.000000 -0.385416 +v -0.440832 0.000000 -0.385416 +v -0.496248 0.000000 -0.440832 +v -0.385416 0.000000 -0.496248 +v -0.440832 0.000000 -0.496248 +v -0.385416 0.000000 -0.440832 +v -0.717918 0.000000 -0.385416 +v -0.662500 0.000000 -0.385416 +v -0.717918 0.000000 -0.440832 +v -0.607082 0.000000 -0.496248 +v -0.662500 0.000000 -0.496248 +v -0.607082 0.000000 -0.440832 +v -0.939584 0.000000 -0.385416 +v -0.884168 0.000000 -0.385416 +v -0.939584 0.000000 -0.440832 +v -0.828752 0.000000 -0.496248 +v -0.884168 0.000000 -0.496248 +v -0.828752 0.000000 -0.440832 +v 0.833752 0.000000 -0.607082 +v 0.889168 0.000000 -0.607082 +v 0.833752 0.000000 -0.662500 +v 0.944584 0.000000 -0.717918 +v 0.889168 0.000000 -0.717918 +v 0.944584 0.000000 -0.662500 +v 0.612082 0.000000 -0.607082 +v 0.667500 0.000000 -0.607082 +v 0.612082 0.000000 -0.662500 +v 0.722918 0.000000 -0.717918 +v 0.667500 0.000000 -0.717918 +v 0.722918 0.000000 -0.662500 +v 0.390416 0.000000 -0.607082 +v 0.445832 0.000000 -0.607082 +v 0.390416 0.000000 -0.662500 +v 0.501248 0.000000 -0.717918 +v 0.445832 0.000000 -0.717918 +v 0.501248 0.000000 -0.662500 +v 0.168752 0.000000 -0.607082 +v 0.224168 0.000000 -0.607082 +v 0.168752 0.000000 -0.662500 +v 0.279584 0.000000 -0.717918 +v 0.224168 0.000000 -0.717918 +v 0.279584 0.000000 -0.662500 +v -0.052918 0.000000 -0.607082 +v 0.002500 0.000000 -0.607082 +v -0.052918 0.000000 -0.662500 +v 0.057918 0.000000 -0.717918 +v 0.002500 0.000000 -0.717918 +v 0.057918 0.000000 -0.662500 +v -0.274584 0.000000 -0.607082 +v -0.219168 0.000000 -0.607082 +v -0.274584 0.000000 -0.662500 +v -0.163752 0.000000 -0.717918 +v -0.219168 0.000000 -0.717918 +v -0.163752 0.000000 -0.662500 +v -0.496248 0.000000 -0.607082 +v -0.440832 0.000000 -0.607082 +v -0.496248 0.000000 -0.662500 +v -0.385416 0.000000 -0.717918 +v -0.440832 0.000000 -0.717918 +v -0.385416 0.000000 -0.662500 +v -0.717918 0.000000 -0.607082 +v -0.662500 0.000000 -0.607082 +v -0.717918 0.000000 -0.662500 +v -0.607082 0.000000 -0.717918 +v -0.662500 0.000000 -0.717918 +v -0.607082 0.000000 -0.662500 +v -0.939584 0.000000 -0.607082 +v -0.884168 0.000000 -0.607082 +v -0.939584 0.000000 -0.662500 +v -0.828752 0.000000 -0.717918 +v -0.884168 0.000000 -0.717918 +v -0.828752 0.000000 -0.662500 +v 0.833752 0.000000 -0.828752 +v 0.889168 0.000000 -0.828752 +v 0.833752 0.000000 -0.884168 +v 0.944584 0.000000 -0.939584 +v 0.889168 0.000000 -0.939584 +v 0.944584 0.000000 -0.884168 +v 0.612082 0.000000 -0.828752 +v 0.667500 0.000000 -0.828752 +v 0.612082 0.000000 -0.884168 +v 0.722918 0.000000 -0.939584 +v 0.667500 0.000000 -0.939584 +v 0.722918 0.000000 -0.884168 +v 0.390416 0.000000 -0.828752 +v 0.445832 0.000000 -0.828752 +v 0.390416 0.000000 -0.884168 +v 0.501248 0.000000 -0.939584 +v 0.445832 0.000000 -0.939584 +v 0.501248 0.000000 -0.884168 +v 0.168752 0.000000 -0.828752 +v 0.224168 0.000000 -0.828752 +v 0.168752 0.000000 -0.884168 +v 0.279584 0.000000 -0.939584 +v 0.224168 0.000000 -0.939584 +v 0.279584 0.000000 -0.884168 +v -0.052918 0.000000 -0.828752 +v 0.002500 0.000000 -0.828752 +v -0.052918 0.000000 -0.884168 +v 0.057918 0.000000 -0.939584 +v 0.002500 0.000000 -0.939584 +v 0.057918 0.000000 -0.884168 +v -0.274584 0.000000 -0.828752 +v -0.219168 0.000000 -0.828752 +v -0.274584 0.000000 -0.884168 +v -0.163752 0.000000 -0.939584 +v -0.219168 0.000000 -0.939584 +v -0.163752 0.000000 -0.884168 +v -0.496248 0.000000 -0.828752 +v -0.440832 0.000000 -0.828752 +v -0.496248 0.000000 -0.884168 +v -0.385416 0.000000 -0.939584 +v -0.440832 0.000000 -0.939584 +v -0.385416 0.000000 -0.884168 +v -0.717918 0.000000 -0.828752 +v -0.662500 0.000000 -0.828752 +v -0.717918 0.000000 -0.884168 +v -0.607082 0.000000 -0.939584 +v -0.662500 0.000000 -0.939584 +v -0.607082 0.000000 -0.884168 +v -0.939584 0.000000 -0.828752 +v -0.884168 0.000000 -0.828752 +v -0.939584 0.000000 -0.884168 +v -0.828752 0.000000 -0.939584 +v -0.884168 0.000000 -0.939584 +v -0.828752 0.000000 -0.884168 +v 0.778336 0.000000 0.833752 +v 0.833752 0.000000 0.833752 +v 0.778336 0.000000 0.944584 +v 0.833752 0.000000 1.000000 +v 0.944584 0.000000 1.000000 +v 0.944584 0.000000 0.944584 +v 1.000000 0.000000 0.944584 +v 1.000000 0.000000 0.833752 +v 0.944584 0.000000 0.778336 +v 0.833752 0.000000 0.778336 +v 0.556664 0.000000 0.833752 +v 0.612082 0.000000 0.833752 +v 0.556664 0.000000 0.944584 +v 0.612082 0.000000 1.000000 +v 0.722918 0.000000 1.000000 +v 0.722918 0.000000 0.944584 +v 0.722918 0.000000 0.778336 +v 0.612082 0.000000 0.778336 +v 0.335000 0.000000 0.833752 +v 0.390416 0.000000 0.833752 +v 0.335000 0.000000 0.944584 +v 0.390416 0.000000 1.000000 +v 0.501248 0.000000 1.000000 +v 0.501248 0.000000 0.944584 +v 0.501248 0.000000 0.778336 +v 0.390416 0.000000 0.778336 +v 0.113336 0.000000 0.833752 +v 0.168752 0.000000 0.833752 +v 0.113336 0.000000 0.944584 +v 0.168752 0.000000 1.000000 +v 0.279584 0.000000 1.000000 +v 0.279584 0.000000 0.944584 +v 0.279584 0.000000 0.778336 +v 0.168752 0.000000 0.778336 +v -0.108336 0.000000 0.833752 +v -0.052918 0.000000 0.833752 +v -0.108336 0.000000 0.944584 +v -0.052918 0.000000 1.000000 +v 0.057918 0.000000 1.000000 +v 0.057918 0.000000 0.944584 +v 0.057918 0.000000 0.778336 +v -0.052918 0.000000 0.778336 +v -0.330000 0.000000 0.833752 +v -0.274584 0.000000 0.833752 +v -0.330000 0.000000 0.944584 +v -0.274584 0.000000 1.000000 +v -0.163752 0.000000 1.000000 +v -0.163752 0.000000 0.944584 +v -0.163752 0.000000 0.778336 +v -0.274584 0.000000 0.778336 +v -0.551664 0.000000 0.833752 +v -0.496248 0.000000 0.833752 +v -0.551664 0.000000 0.944584 +v -0.496248 0.000000 1.000000 +v -0.385416 0.000000 1.000000 +v -0.385416 0.000000 0.944584 +v -0.385416 0.000000 0.778336 +v -0.496248 0.000000 0.778336 +v -0.773336 0.000000 0.833752 +v -0.717918 0.000000 0.833752 +v -0.773336 0.000000 0.944584 +v -0.717918 0.000000 1.000000 +v -0.607082 0.000000 1.000000 +v -0.607082 0.000000 0.944584 +v -0.607082 0.000000 0.778336 +v -0.717918 0.000000 0.778336 +v -0.995000 0.000000 0.833752 +v -0.939584 0.000000 0.833752 +v -0.995000 0.000000 0.944584 +v -0.939584 0.000000 1.000000 +v -0.828752 0.000000 1.000000 +v -0.828752 0.000000 0.944584 +v -0.828752 0.000000 0.778336 +v -0.939584 0.000000 0.778336 +v 0.778336 0.000000 0.612082 +v 0.833752 0.000000 0.612082 +v 0.778336 0.000000 0.722918 +v 0.944584 0.000000 0.722918 +v 1.000000 0.000000 0.722918 +v 1.000000 0.000000 0.612082 +v 0.944584 0.000000 0.556664 +v 0.833752 0.000000 0.556664 +v 0.556664 0.000000 0.612082 +v 0.612082 0.000000 0.612082 +v 0.556664 0.000000 0.722918 +v 0.722918 0.000000 0.722918 +v 0.722918 0.000000 0.556664 +v 0.612082 0.000000 0.556664 +v 0.335000 0.000000 0.612082 +v 0.390416 0.000000 0.612082 +v 0.335000 0.000000 0.722918 +v 0.501248 0.000000 0.722918 +v 0.501248 0.000000 0.556664 +v 0.390416 0.000000 0.556664 +v 0.113336 0.000000 0.612082 +v 0.168752 0.000000 0.612082 +v 0.113336 0.000000 0.722918 +v 0.279584 0.000000 0.722918 +v 0.279584 0.000000 0.556664 +v 0.168752 0.000000 0.556664 +v -0.108336 0.000000 0.612082 +v -0.052918 0.000000 0.612082 +v -0.108336 0.000000 0.722918 +v 0.057918 0.000000 0.722918 +v 0.057918 0.000000 0.556664 +v -0.052918 0.000000 0.556664 +v -0.330000 0.000000 0.612082 +v -0.274584 0.000000 0.612082 +v -0.330000 0.000000 0.722918 +v -0.163752 0.000000 0.722918 +v -0.163752 0.000000 0.556664 +v -0.274584 0.000000 0.556664 +v -0.551664 0.000000 0.612082 +v -0.496248 0.000000 0.612082 +v -0.551664 0.000000 0.722918 +v -0.385416 0.000000 0.722918 +v -0.385416 0.000000 0.556664 +v -0.496248 0.000000 0.556664 +v -0.773336 0.000000 0.612082 +v -0.717918 0.000000 0.612082 +v -0.773336 0.000000 0.722918 +v -0.607082 0.000000 0.722918 +v -0.607082 0.000000 0.556664 +v -0.717918 0.000000 0.556664 +v -0.995000 0.000000 0.612082 +v -0.939584 0.000000 0.612082 +v -0.995000 0.000000 0.722918 +v -0.828752 0.000000 0.722918 +v -0.828752 0.000000 0.556664 +v -0.939584 0.000000 0.556664 +v 0.778336 0.000000 0.390416 +v 0.833752 0.000000 0.390416 +v 0.778336 0.000000 0.501248 +v 0.944584 0.000000 0.501248 +v 1.000000 0.000000 0.501248 +v 1.000000 0.000000 0.390416 +v 0.944584 0.000000 0.335000 +v 0.833752 0.000000 0.335000 +v 0.556664 0.000000 0.390416 +v 0.612082 0.000000 0.390416 +v 0.556664 0.000000 0.501248 +v 0.722918 0.000000 0.501248 +v 0.722918 0.000000 0.335000 +v 0.612082 0.000000 0.335000 +v 0.335000 0.000000 0.390416 +v 0.390416 0.000000 0.390416 +v 0.335000 0.000000 0.501248 +v 0.501248 0.000000 0.501248 +v 0.501248 0.000000 0.335000 +v 0.390416 0.000000 0.335000 +v 0.113336 0.000000 0.390416 +v 0.168752 0.000000 0.390416 +v 0.113336 0.000000 0.501248 +v 0.279584 0.000000 0.501248 +v 0.279584 0.000000 0.335000 +v 0.168752 0.000000 0.335000 +v -0.108336 0.000000 0.390416 +v -0.052918 0.000000 0.390416 +v -0.108336 0.000000 0.501248 +v 0.057918 0.000000 0.501248 +v 0.057918 0.000000 0.335000 +v -0.052918 0.000000 0.335000 +v -0.330000 0.000000 0.390416 +v -0.274584 0.000000 0.390416 +v -0.330000 0.000000 0.501248 +v -0.163752 0.000000 0.501248 +v -0.163752 0.000000 0.335000 +v -0.274584 0.000000 0.335000 +v -0.551664 0.000000 0.390416 +v -0.496248 0.000000 0.390416 +v -0.551664 0.000000 0.501248 +v -0.385416 0.000000 0.501248 +v -0.385416 0.000000 0.335000 +v -0.496248 0.000000 0.335000 +v -0.773336 0.000000 0.390416 +v -0.717918 0.000000 0.390416 +v -0.773336 0.000000 0.501248 +v -0.607082 0.000000 0.501248 +v -0.607082 0.000000 0.335000 +v -0.717918 0.000000 0.335000 +v -0.995000 0.000000 0.390416 +v -0.939584 0.000000 0.390416 +v -0.995000 0.000000 0.501248 +v -0.828752 0.000000 0.501248 +v -0.828752 0.000000 0.335000 +v -0.939584 0.000000 0.335000 +v 0.778336 0.000000 0.168752 +v 0.833752 0.000000 0.168752 +v 0.778336 0.000000 0.279584 +v 0.944584 0.000000 0.279584 +v 1.000000 0.000000 0.279584 +v 1.000000 0.000000 0.168752 +v 0.944584 0.000000 0.113336 +v 0.833752 0.000000 0.113336 +v 0.556664 0.000000 0.168752 +v 0.612082 0.000000 0.168752 +v 0.556664 0.000000 0.279584 +v 0.722918 0.000000 0.279584 +v 0.722918 0.000000 0.113336 +v 0.612082 0.000000 0.113336 +v 0.335000 0.000000 0.168752 +v 0.390416 0.000000 0.168752 +v 0.335000 0.000000 0.279584 +v 0.501248 0.000000 0.279584 +v 0.501248 0.000000 0.113336 +v 0.390416 0.000000 0.113336 +v 0.113336 0.000000 0.168752 +v 0.168752 0.000000 0.168752 +v 0.113336 0.000000 0.279584 +v 0.279584 0.000000 0.279584 +v 0.279584 0.000000 0.113336 +v 0.168752 0.000000 0.113336 +v -0.108336 0.000000 0.168752 +v -0.052918 0.000000 0.168752 +v -0.108336 0.000000 0.279584 +v 0.057918 0.000000 0.279584 +v 0.057918 0.000000 0.113336 +v -0.052918 0.000000 0.113336 +v -0.330000 0.000000 0.168752 +v -0.274584 0.000000 0.168752 +v -0.330000 0.000000 0.279584 +v -0.163752 0.000000 0.279584 +v -0.163752 0.000000 0.113336 +v -0.274584 0.000000 0.113336 +v -0.551664 0.000000 0.168752 +v -0.496248 0.000000 0.168752 +v -0.551664 0.000000 0.279584 +v -0.385416 0.000000 0.279584 +v -0.385416 0.000000 0.113336 +v -0.496248 0.000000 0.113336 +v -0.773336 0.000000 0.168752 +v -0.717918 0.000000 0.168752 +v -0.773336 0.000000 0.279584 +v -0.607082 0.000000 0.279584 +v -0.607082 0.000000 0.113336 +v -0.717918 0.000000 0.113336 +v -0.995000 0.000000 0.168752 +v -0.939584 0.000000 0.168752 +v -0.995000 0.000000 0.279584 +v -0.828752 0.000000 0.279584 +v -0.828752 0.000000 0.113336 +v -0.939584 0.000000 0.113336 +v 0.778336 0.000000 -0.052918 +v 0.833752 0.000000 -0.052918 +v 0.778336 0.000000 0.057918 +v 0.944584 0.000000 0.057918 +v 1.000000 0.000000 0.057918 +v 1.000000 0.000000 -0.052918 +v 0.944584 0.000000 -0.108336 +v 0.833752 0.000000 -0.108336 +v 0.556664 0.000000 -0.052918 +v 0.612082 0.000000 -0.052918 +v 0.556664 0.000000 0.057918 +v 0.722918 0.000000 0.057918 +v 0.722918 0.000000 -0.108336 +v 0.612082 0.000000 -0.108336 +v 0.335000 0.000000 -0.052918 +v 0.390416 0.000000 -0.052918 +v 0.335000 0.000000 0.057918 +v 0.501248 0.000000 0.057918 +v 0.501248 0.000000 -0.108336 +v 0.390416 0.000000 -0.108336 +v 0.113336 0.000000 -0.052918 +v 0.168752 0.000000 -0.052918 +v 0.113336 0.000000 0.057918 +v 0.279584 0.000000 0.057918 +v 0.279584 0.000000 -0.108336 +v 0.168752 0.000000 -0.108336 +v -0.108336 0.000000 -0.052918 +v -0.052918 0.000000 -0.052918 +v -0.108336 0.000000 0.057918 +v 0.057918 0.000000 0.057918 +v 0.057918 0.000000 -0.108336 +v -0.052918 0.000000 -0.108336 +v -0.330000 0.000000 -0.052918 +v -0.274584 0.000000 -0.052918 +v -0.330000 0.000000 0.057918 +v -0.163752 0.000000 0.057918 +v -0.163752 0.000000 -0.108336 +v -0.274584 0.000000 -0.108336 +v -0.551664 0.000000 -0.052918 +v -0.496248 0.000000 -0.052918 +v -0.551664 0.000000 0.057918 +v -0.385416 0.000000 0.057918 +v -0.385416 0.000000 -0.108336 +v -0.496248 0.000000 -0.108336 +v -0.773336 0.000000 -0.052918 +v -0.717918 0.000000 -0.052918 +v -0.773336 0.000000 0.057918 +v -0.607082 0.000000 0.057918 +v -0.607082 0.000000 -0.108336 +v -0.717918 0.000000 -0.108336 +v -0.995000 0.000000 -0.052918 +v -0.939584 0.000000 -0.052918 +v -0.995000 0.000000 0.057918 +v -0.828752 0.000000 0.057918 +v -0.828752 0.000000 -0.108336 +v -0.939584 0.000000 -0.108336 +v 0.778336 0.000000 -0.274584 +v 0.833752 0.000000 -0.274584 +v 0.778336 0.000000 -0.163752 +v 0.944584 0.000000 -0.163752 +v 1.000000 0.000000 -0.163752 +v 1.000000 0.000000 -0.274584 +v 0.944584 0.000000 -0.330000 +v 0.833752 0.000000 -0.330000 +v 0.556664 0.000000 -0.274584 +v 0.612082 0.000000 -0.274584 +v 0.556664 0.000000 -0.163752 +v 0.722918 0.000000 -0.163752 +v 0.722918 0.000000 -0.330000 +v 0.612082 0.000000 -0.330000 +v 0.335000 0.000000 -0.274584 +v 0.390416 0.000000 -0.274584 +v 0.335000 0.000000 -0.163752 +v 0.501248 0.000000 -0.163752 +v 0.501248 0.000000 -0.330000 +v 0.390416 0.000000 -0.330000 +v 0.113336 0.000000 -0.274584 +v 0.168752 0.000000 -0.274584 +v 0.113336 0.000000 -0.163752 +v 0.279584 0.000000 -0.163752 +v 0.279584 0.000000 -0.330000 +v 0.168752 0.000000 -0.330000 +v -0.108336 0.000000 -0.274584 +v -0.052918 0.000000 -0.274584 +v -0.108336 0.000000 -0.163752 +v 0.057918 0.000000 -0.163752 +v 0.057918 0.000000 -0.330000 +v -0.052918 0.000000 -0.330000 +v -0.330000 0.000000 -0.274584 +v -0.274584 0.000000 -0.274584 +v -0.330000 0.000000 -0.163752 +v -0.163752 0.000000 -0.163752 +v -0.163752 0.000000 -0.330000 +v -0.274584 0.000000 -0.330000 +v -0.551664 0.000000 -0.274584 +v -0.496248 0.000000 -0.274584 +v -0.551664 0.000000 -0.163752 +v -0.385416 0.000000 -0.163752 +v -0.385416 0.000000 -0.330000 +v -0.496248 0.000000 -0.330000 +v -0.773336 0.000000 -0.274584 +v -0.717918 0.000000 -0.274584 +v -0.773336 0.000000 -0.163752 +v -0.607082 0.000000 -0.163752 +v -0.607082 0.000000 -0.330000 +v -0.717918 0.000000 -0.330000 +v -0.995000 0.000000 -0.274584 +v -0.939584 0.000000 -0.274584 +v -0.995000 0.000000 -0.163752 +v -0.828752 0.000000 -0.163752 +v -0.828752 0.000000 -0.330000 +v -0.939584 0.000000 -0.330000 +v 0.778336 0.000000 -0.496248 +v 0.833752 0.000000 -0.496248 +v 0.778336 0.000000 -0.385416 +v 0.944584 0.000000 -0.385416 +v 1.000000 0.000000 -0.385416 +v 1.000000 0.000000 -0.496248 +v 0.944584 0.000000 -0.551664 +v 0.833752 0.000000 -0.551664 +v 0.556664 0.000000 -0.496248 +v 0.612082 0.000000 -0.496248 +v 0.556664 0.000000 -0.385416 +v 0.722918 0.000000 -0.385416 +v 0.722918 0.000000 -0.551664 +v 0.612082 0.000000 -0.551664 +v 0.335000 0.000000 -0.496248 +v 0.390416 0.000000 -0.496248 +v 0.335000 0.000000 -0.385416 +v 0.501248 0.000000 -0.385416 +v 0.501248 0.000000 -0.551664 +v 0.390416 0.000000 -0.551664 +v 0.113336 0.000000 -0.496248 +v 0.168752 0.000000 -0.496248 +v 0.113336 0.000000 -0.385416 +v 0.279584 0.000000 -0.385416 +v 0.279584 0.000000 -0.551664 +v 0.168752 0.000000 -0.551664 +v -0.108336 0.000000 -0.496248 +v -0.052918 0.000000 -0.496248 +v -0.108336 0.000000 -0.385416 +v 0.057918 0.000000 -0.385416 +v 0.057918 0.000000 -0.551664 +v -0.052918 0.000000 -0.551664 +v -0.330000 0.000000 -0.496248 +v -0.274584 0.000000 -0.496248 +v -0.330000 0.000000 -0.385416 +v -0.163752 0.000000 -0.385416 +v -0.163752 0.000000 -0.551664 +v -0.274584 0.000000 -0.551664 +v -0.551664 0.000000 -0.496248 +v -0.496248 0.000000 -0.496248 +v -0.551664 0.000000 -0.385416 +v -0.385416 0.000000 -0.385416 +v -0.385416 0.000000 -0.551664 +v -0.496248 0.000000 -0.551664 +v -0.773336 0.000000 -0.496248 +v -0.717918 0.000000 -0.496248 +v -0.773336 0.000000 -0.385416 +v -0.607082 0.000000 -0.385416 +v -0.607082 0.000000 -0.551664 +v -0.717918 0.000000 -0.551664 +v -0.995000 0.000000 -0.496248 +v -0.939584 0.000000 -0.496248 +v -0.995000 0.000000 -0.385416 +v -0.828752 0.000000 -0.385416 +v -0.828752 0.000000 -0.551664 +v -0.939584 0.000000 -0.551664 +v 0.778336 0.000000 -0.717918 +v 0.833752 0.000000 -0.717918 +v 0.778336 0.000000 -0.607082 +v 0.944584 0.000000 -0.607082 +v 1.000000 0.000000 -0.607082 +v 1.000000 0.000000 -0.717918 +v 0.944584 0.000000 -0.773336 +v 0.833752 0.000000 -0.773336 +v 0.556664 0.000000 -0.717918 +v 0.612082 0.000000 -0.717918 +v 0.556664 0.000000 -0.607082 +v 0.722918 0.000000 -0.607082 +v 0.722918 0.000000 -0.773336 +v 0.612082 0.000000 -0.773336 +v 0.335000 0.000000 -0.717918 +v 0.390416 0.000000 -0.717918 +v 0.335000 0.000000 -0.607082 +v 0.501248 0.000000 -0.607082 +v 0.501248 0.000000 -0.773336 +v 0.390416 0.000000 -0.773336 +v 0.113336 0.000000 -0.717918 +v 0.168752 0.000000 -0.717918 +v 0.113336 0.000000 -0.607082 +v 0.279584 0.000000 -0.607082 +v 0.279584 0.000000 -0.773336 +v 0.168752 0.000000 -0.773336 +v -0.108336 0.000000 -0.717918 +v -0.052918 0.000000 -0.717918 +v -0.108336 0.000000 -0.607082 +v 0.057918 0.000000 -0.607082 +v 0.057918 0.000000 -0.773336 +v -0.052918 0.000000 -0.773336 +v -0.330000 0.000000 -0.717918 +v -0.274584 0.000000 -0.717918 +v -0.330000 0.000000 -0.607082 +v -0.163752 0.000000 -0.607082 +v -0.163752 0.000000 -0.773336 +v -0.274584 0.000000 -0.773336 +v -0.551664 0.000000 -0.717918 +v -0.496248 0.000000 -0.717918 +v -0.551664 0.000000 -0.607082 +v -0.385416 0.000000 -0.607082 +v -0.385416 0.000000 -0.773336 +v -0.496248 0.000000 -0.773336 +v -0.773336 0.000000 -0.717918 +v -0.717918 0.000000 -0.717918 +v -0.773336 0.000000 -0.607082 +v -0.607082 0.000000 -0.607082 +v -0.607082 0.000000 -0.773336 +v -0.717918 0.000000 -0.773336 +v -0.995000 0.000000 -0.717918 +v -0.939584 0.000000 -0.717918 +v -0.995000 0.000000 -0.607082 +v -0.828752 0.000000 -0.607082 +v -0.828752 0.000000 -0.773336 +v -0.939584 0.000000 -0.773336 +v 0.778336 0.000000 -0.939584 +v 0.833752 0.000000 -0.939584 +v 0.778336 0.000000 -0.828752 +v 0.944584 0.000000 -0.828752 +v 1.000000 0.000000 -0.828752 +v 1.000000 0.000000 -0.939584 +v 0.944584 0.000000 -0.995000 +v 0.833752 0.000000 -0.995000 +v 0.556664 0.000000 -0.939584 +v 0.612082 0.000000 -0.939584 +v 0.556664 0.000000 -0.828752 +v 0.722918 0.000000 -0.828752 +v 0.722918 0.000000 -0.995000 +v 0.612082 0.000000 -0.995000 +v 0.335000 0.000000 -0.939584 +v 0.390416 0.000000 -0.939584 +v 0.335000 0.000000 -0.828752 +v 0.501248 0.000000 -0.828752 +v 0.501248 0.000000 -0.995000 +v 0.390416 0.000000 -0.995000 +v 0.113336 0.000000 -0.939584 +v 0.168752 0.000000 -0.939584 +v 0.113336 0.000000 -0.828752 +v 0.279584 0.000000 -0.828752 +v 0.279584 0.000000 -0.995000 +v 0.168752 0.000000 -0.995000 +v -0.108336 0.000000 -0.939584 +v -0.052918 0.000000 -0.939584 +v -0.108336 0.000000 -0.828752 +v 0.057918 0.000000 -0.828752 +v 0.057918 0.000000 -0.995000 +v -0.052918 0.000000 -0.995000 +v -0.330000 0.000000 -0.939584 +v -0.274584 0.000000 -0.939584 +v -0.330000 0.000000 -0.828752 +v -0.163752 0.000000 -0.828752 +v -0.163752 0.000000 -0.995000 +v -0.274584 0.000000 -0.995000 +v -0.551664 0.000000 -0.939584 +v -0.496248 0.000000 -0.939584 +v -0.551664 0.000000 -0.828752 +v -0.385416 0.000000 -0.828752 +v -0.385416 0.000000 -0.995000 +v -0.496248 0.000000 -0.995000 +v -0.773336 0.000000 -0.939584 +v -0.717918 0.000000 -0.939584 +v -0.773336 0.000000 -0.828752 +v -0.607082 0.000000 -0.828752 +v -0.607082 0.000000 -0.995000 +v -0.717918 0.000000 -0.995000 +v -0.995000 0.000000 -0.939584 +v -0.939584 0.000000 -0.939584 +v -0.995000 0.000000 -0.828752 +v -0.828752 0.000000 -0.828752 +v -0.828752 0.000000 -0.995000 +v -0.939584 0.000000 -0.995000 +# 1369 vertices, 0 vertices normals + +f 362 363 364 +f 365 366 367 +f 368 369 370 +f 371 372 373 +f 374 375 376 +f 377 378 379 +f 380 381 382 +f 383 384 385 +f 386 387 388 +f 389 390 391 +f 392 393 394 +f 395 396 397 +f 398 399 400 +f 401 402 403 +f 404 405 406 +f 407 408 409 +f 410 411 412 +f 413 414 415 +f 416 417 418 +f 419 420 421 +f 422 423 424 +f 425 426 427 +f 428 429 430 +f 431 432 433 +f 434 435 436 +f 437 438 439 +f 440 441 442 +f 443 444 445 +f 446 447 448 +f 449 450 451 +f 452 453 454 +f 455 456 457 +f 458 459 460 +f 461 462 463 +f 464 465 466 +f 467 468 469 +f 470 471 472 +f 473 474 475 +f 476 477 478 +f 479 480 481 +f 482 483 484 +f 485 486 487 +f 488 489 490 +f 491 492 493 +f 494 495 496 +f 497 498 499 +f 500 501 502 +f 503 504 505 +f 506 507 508 +f 509 510 511 +f 512 513 514 +f 515 516 517 +f 518 519 520 +f 521 522 523 +f 524 525 526 +f 527 528 529 +f 530 531 532 +f 533 534 535 +f 536 537 538 +f 539 540 541 +f 542 543 544 +f 545 546 547 +f 548 549 550 +f 551 552 553 +f 554 555 556 +f 557 558 559 +f 560 561 562 +f 563 564 565 +f 566 567 568 +f 569 570 571 +f 572 573 574 +f 575 576 577 +f 578 579 580 +f 581 582 583 +f 584 585 586 +f 587 588 589 +f 590 591 592 +f 593 594 595 +f 596 597 598 +f 599 600 601 +f 602 603 604 +f 605 606 607 +f 608 609 610 +f 611 612 613 +f 614 615 616 +f 617 618 619 +f 620 621 622 +f 623 624 625 +f 626 627 628 +f 629 630 631 +f 632 633 634 +f 635 636 637 +f 638 639 640 +f 641 642 643 +f 644 645 646 +f 647 648 649 +f 650 651 652 +f 653 654 655 +f 656 657 658 +f 659 660 661 +f 662 663 664 +f 665 666 667 +f 668 669 670 +f 671 672 673 +f 674 675 676 +f 677 678 679 +f 680 681 682 +f 683 684 685 +f 686 687 688 +f 689 690 691 +f 692 693 694 +f 695 696 697 +f 698 699 700 +f 701 702 703 +f 704 705 706 +f 707 708 709 +f 710 711 712 +f 713 714 715 +f 716 717 718 +f 719 720 721 +f 722 723 724 +f 725 726 727 +f 728 729 730 +f 731 732 733 +f 734 735 736 +f 737 738 739 +f 740 741 742 +f 743 744 745 +f 746 747 748 +f 749 750 751 +f 752 753 754 +f 755 756 757 +f 758 759 760 +f 761 762 763 +f 764 765 766 +f 767 768 769 +f 770 771 772 +f 773 774 775 +f 776 777 778 +f 779 780 781 +f 782 783 784 +f 785 786 787 +f 788 789 790 +f 791 792 793 +f 794 795 796 +f 797 798 799 +f 800 801 802 +f 803 804 805 +f 806 807 808 +f 809 810 811 +f 812 813 814 +f 815 816 817 +f 818 819 820 +f 821 822 823 +f 824 825 826 +f 827 828 829 +f 830 831 832 +f 833 834 835 +f 836 837 838 +f 839 840 841 +f 842 843 844 +f 845 846 847 +f 848 364 849 +f 850 851 362 +f 363 852 853 +f 854 367 853 +f 855 856 365 +f 366 857 849 +f 858 370 859 +f 860 861 368 +f 369 862 863 +f 850 373 863 +f 848 864 371 +f 372 865 859 +f 866 376 867 +f 868 869 374 +f 375 870 871 +f 860 379 871 +f 858 872 377 +f 378 873 867 +f 874 382 875 +f 876 877 380 +f 381 878 879 +f 868 385 879 +f 866 880 383 +f 384 881 875 +f 882 388 883 +f 884 885 386 +f 387 886 887 +f 876 391 887 +f 874 888 389 +f 390 889 883 +f 890 394 891 +f 892 893 392 +f 393 894 895 +f 884 397 895 +f 882 896 395 +f 396 897 891 +f 898 400 899 +f 900 901 398 +f 399 902 903 +f 892 403 903 +f 890 904 401 +f 402 905 899 +f 906 406 907 +f 908 909 404 +f 405 910 911 +f 900 409 911 +f 898 912 407 +f 408 913 907 +f 914 412 915 +f 916 917 410 +f 411 918 919 +f 908 415 919 +f 906 920 413 +f 414 921 915 +f 922 418 923 +f 924 857 416 +f 417 856 925 +f 926 421 925 +f 927 928 419 +f 420 929 923 +f 930 424 931 +f 932 865 422 +f 423 864 933 +f 924 427 933 +f 922 934 425 +f 426 935 931 +f 936 430 937 +f 938 873 428 +f 429 872 939 +f 932 433 939 +f 930 940 431 +f 432 941 937 +f 942 436 943 +f 944 881 434 +f 435 880 945 +f 938 439 945 +f 936 946 437 +f 438 947 943 +f 948 442 949 +f 950 889 440 +f 441 888 951 +f 944 445 951 +f 942 952 443 +f 444 953 949 +f 954 448 955 +f 956 897 446 +f 447 896 957 +f 950 451 957 +f 948 958 449 +f 450 959 955 +f 960 454 961 +f 962 905 452 +f 453 904 963 +f 956 457 963 +f 954 964 455 +f 456 965 961 +f 966 460 967 +f 968 913 458 +f 459 912 969 +f 962 463 969 +f 960 970 461 +f 462 971 967 +f 972 466 973 +f 974 921 464 +f 465 920 975 +f 968 469 975 +f 966 976 467 +f 468 977 973 +f 978 472 979 +f 980 929 470 +f 471 928 981 +f 982 475 981 +f 983 984 473 +f 474 985 979 +f 986 478 987 +f 988 935 476 +f 477 934 989 +f 980 481 989 +f 978 990 479 +f 480 991 987 +f 992 484 993 +f 994 941 482 +f 483 940 995 +f 988 487 995 +f 986 996 485 +f 486 997 993 +f 998 490 999 +f 1000 947 488 +f 489 946 1001 +f 994 493 1001 +f 992 1002 491 +f 492 1003 999 +f 1004 496 1005 +f 1006 953 494 +f 495 952 1007 +f 1000 499 1007 +f 998 1008 497 +f 498 1009 1005 +f 1010 502 1011 +f 1012 959 500 +f 501 958 1013 +f 1006 505 1013 +f 1004 1014 503 +f 504 1015 1011 +f 1016 508 1017 +f 1018 965 506 +f 507 964 1019 +f 1012 511 1019 +f 1010 1020 509 +f 510 1021 1017 +f 1022 514 1023 +f 1024 971 512 +f 513 970 1025 +f 1018 517 1025 +f 1016 1026 515 +f 516 1027 1023 +f 1028 520 1029 +f 1030 977 518 +f 519 976 1031 +f 1024 523 1031 +f 1022 1032 521 +f 522 1033 1029 +f 1034 526 1035 +f 1036 985 524 +f 525 984 1037 +f 1038 529 1037 +f 1039 1040 527 +f 528 1041 1035 +f 1042 532 1043 +f 1044 991 530 +f 531 990 1045 +f 1036 535 1045 +f 1034 1046 533 +f 534 1047 1043 +f 1048 538 1049 +f 1050 997 536 +f 537 996 1051 +f 1044 541 1051 +f 1042 1052 539 +f 540 1053 1049 +f 1054 544 1055 +f 1056 1003 542 +f 543 1002 1057 +f 1050 547 1057 +f 1048 1058 545 +f 546 1059 1055 +f 1060 550 1061 +f 1062 1009 548 +f 549 1008 1063 +f 1056 553 1063 +f 1054 1064 551 +f 552 1065 1061 +f 1066 556 1067 +f 1068 1015 554 +f 555 1014 1069 +f 1062 559 1069 +f 1060 1070 557 +f 558 1071 1067 +f 1072 562 1073 +f 1074 1021 560 +f 561 1020 1075 +f 1068 565 1075 +f 1066 1076 563 +f 564 1077 1073 +f 1078 568 1079 +f 1080 1027 566 +f 567 1026 1081 +f 1074 571 1081 +f 1072 1082 569 +f 570 1083 1079 +f 1084 574 1085 +f 1086 1033 572 +f 573 1032 1087 +f 1080 577 1087 +f 1078 1088 575 +f 576 1089 1085 +f 1090 580 1091 +f 1092 1041 578 +f 579 1040 1093 +f 1094 583 1093 +f 1095 1096 581 +f 582 1097 1091 +f 1098 586 1099 +f 1100 1047 584 +f 585 1046 1101 +f 1092 589 1101 +f 1090 1102 587 +f 588 1103 1099 +f 1104 592 1105 +f 1106 1053 590 +f 591 1052 1107 +f 1100 595 1107 +f 1098 1108 593 +f 594 1109 1105 +f 1110 598 1111 +f 1112 1059 596 +f 597 1058 1113 +f 1106 601 1113 +f 1104 1114 599 +f 600 1115 1111 +f 1116 604 1117 +f 1118 1065 602 +f 603 1064 1119 +f 1112 607 1119 +f 1110 1120 605 +f 606 1121 1117 +f 1122 610 1123 +f 1124 1071 608 +f 609 1070 1125 +f 1118 613 1125 +f 1116 1126 611 +f 612 1127 1123 +f 1128 616 1129 +f 1130 1077 614 +f 615 1076 1131 +f 1124 619 1131 +f 1122 1132 617 +f 618 1133 1129 +f 1134 622 1135 +f 1136 1083 620 +f 621 1082 1137 +f 1130 625 1137 +f 1128 1138 623 +f 624 1139 1135 +f 1140 628 1141 +f 1142 1089 626 +f 627 1088 1143 +f 1136 631 1143 +f 1134 1144 629 +f 630 1145 1141 +f 1146 634 1147 +f 1148 1097 632 +f 633 1096 1149 +f 1150 637 1149 +f 1151 1152 635 +f 636 1153 1147 +f 1154 640 1155 +f 1156 1103 638 +f 639 1102 1157 +f 1148 643 1157 +f 1146 1158 641 +f 642 1159 1155 +f 1160 646 1161 +f 1162 1109 644 +f 645 1108 1163 +f 1156 649 1163 +f 1154 1164 647 +f 648 1165 1161 +f 1166 652 1167 +f 1168 1115 650 +f 651 1114 1169 +f 1162 655 1169 +f 1160 1170 653 +f 654 1171 1167 +f 1172 658 1173 +f 1174 1121 656 +f 657 1120 1175 +f 1168 661 1175 +f 1166 1176 659 +f 660 1177 1173 +f 1178 664 1179 +f 1180 1127 662 +f 663 1126 1181 +f 1174 667 1181 +f 1172 1182 665 +f 666 1183 1179 +f 1184 670 1185 +f 1186 1133 668 +f 669 1132 1187 +f 1180 673 1187 +f 1178 1188 671 +f 672 1189 1185 +f 1190 676 1191 +f 1192 1139 674 +f 675 1138 1193 +f 1186 679 1193 +f 1184 1194 677 +f 678 1195 1191 +f 1196 682 1197 +f 1198 1145 680 +f 681 1144 1199 +f 1192 685 1199 +f 1190 1200 683 +f 684 1201 1197 +f 1202 688 1203 +f 1204 1153 686 +f 687 1152 1205 +f 1206 691 1205 +f 1207 1208 689 +f 690 1209 1203 +f 1210 694 1211 +f 1212 1159 692 +f 693 1158 1213 +f 1204 697 1213 +f 1202 1214 695 +f 696 1215 1211 +f 1216 700 1217 +f 1218 1165 698 +f 699 1164 1219 +f 1212 703 1219 +f 1210 1220 701 +f 702 1221 1217 +f 1222 706 1223 +f 1224 1171 704 +f 705 1170 1225 +f 1218 709 1225 +f 1216 1226 707 +f 708 1227 1223 +f 1228 712 1229 +f 1230 1177 710 +f 711 1176 1231 +f 1224 715 1231 +f 1222 1232 713 +f 714 1233 1229 +f 1234 718 1235 +f 1236 1183 716 +f 717 1182 1237 +f 1230 721 1237 +f 1228 1238 719 +f 720 1239 1235 +f 1240 724 1241 +f 1242 1189 722 +f 723 1188 1243 +f 1236 727 1243 +f 1234 1244 725 +f 726 1245 1241 +f 1246 730 1247 +f 1248 1195 728 +f 729 1194 1249 +f 1242 733 1249 +f 1240 1250 731 +f 732 1251 1247 +f 1252 736 1253 +f 1254 1201 734 +f 735 1200 1255 +f 1248 739 1255 +f 1246 1256 737 +f 738 1257 1253 +f 1258 742 1259 +f 1260 1209 740 +f 741 1208 1261 +f 1262 745 1261 +f 1263 1264 743 +f 744 1265 1259 +f 1266 748 1267 +f 1268 1215 746 +f 747 1214 1269 +f 1260 751 1269 +f 1258 1270 749 +f 750 1271 1267 +f 1272 754 1273 +f 1274 1221 752 +f 753 1220 1275 +f 1268 757 1275 +f 1266 1276 755 +f 756 1277 1273 +f 1278 760 1279 +f 1280 1227 758 +f 759 1226 1281 +f 1274 763 1281 +f 1272 1282 761 +f 762 1283 1279 +f 1284 766 1285 +f 1286 1233 764 +f 765 1232 1287 +f 1280 769 1287 +f 1278 1288 767 +f 768 1289 1285 +f 1290 772 1291 +f 1292 1239 770 +f 771 1238 1293 +f 1286 775 1293 +f 1284 1294 773 +f 774 1295 1291 +f 1296 778 1297 +f 1298 1245 776 +f 777 1244 1299 +f 1292 781 1299 +f 1290 1300 779 +f 780 1301 1297 +f 1302 784 1303 +f 1304 1251 782 +f 783 1250 1305 +f 1298 787 1305 +f 1296 1306 785 +f 786 1307 1303 +f 1308 790 1309 +f 1310 1257 788 +f 789 1256 1311 +f 1304 793 1311 +f 1302 1312 791 +f 792 1313 1309 +f 1314 796 1315 +f 1316 1265 794 +f 795 1264 1317 +f 1318 799 1317 +f 1319 1320 797 +f 798 1321 1315 +f 1322 802 1323 +f 1324 1271 800 +f 801 1270 1325 +f 1316 805 1325 +f 1314 1326 803 +f 804 1327 1323 +f 1328 808 1329 +f 1330 1277 806 +f 807 1276 1331 +f 1324 811 1331 +f 1322 1332 809 +f 810 1333 1329 +f 1334 814 1335 +f 1336 1283 812 +f 813 1282 1337 +f 1330 817 1337 +f 1328 1338 815 +f 816 1339 1335 +f 1340 820 1341 +f 1342 1289 818 +f 819 1288 1343 +f 1336 823 1343 +f 1334 1344 821 +f 822 1345 1341 +f 1346 826 1347 +f 1348 1295 824 +f 825 1294 1349 +f 1342 829 1349 +f 1340 1350 827 +f 828 1351 1347 +f 1352 832 1353 +f 1354 1301 830 +f 831 1300 1355 +f 1348 835 1355 +f 1346 1356 833 +f 834 1357 1353 +f 1358 838 1359 +f 1360 1307 836 +f 837 1306 1361 +f 1354 841 1361 +f 1352 1362 839 +f 840 1363 1359 +f 1364 844 1365 +f 1366 1313 842 +f 843 1312 1367 +f 1360 847 1367 +f 1358 1368 845 +f 846 1369 1365 +f 101 362 364 +f 362 102 363 +f 364 363 103 +f 104 365 367 +f 365 105 366 +f 367 366 103 +f 106 368 370 +f 368 107 369 +f 370 369 108 +f 101 371 373 +f 371 109 372 +f 373 372 108 +f 110 374 376 +f 374 111 375 +f 376 375 112 +f 106 377 379 +f 377 113 378 +f 379 378 112 +f 114 380 382 +f 380 115 381 +f 382 381 116 +f 110 383 385 +f 383 117 384 +f 385 384 116 +f 118 386 388 +f 386 119 387 +f 388 387 120 +f 114 389 391 +f 389 121 390 +f 391 390 120 +f 122 392 394 +f 392 123 393 +f 394 393 124 +f 118 395 397 +f 395 125 396 +f 397 396 124 +f 126 398 400 +f 398 127 399 +f 400 399 128 +f 122 401 403 +f 401 129 402 +f 403 402 128 +f 130 404 406 +f 404 131 405 +f 406 405 132 +f 126 407 409 +f 407 133 408 +f 409 408 132 +f 134 410 412 +f 410 135 411 +f 412 411 136 +f 130 413 415 +f 413 137 414 +f 415 414 136 +f 138 416 418 +f 416 105 417 +f 418 417 139 +f 140 419 421 +f 419 141 420 +f 421 420 139 +f 142 422 424 +f 422 109 423 +f 424 423 143 +f 138 425 427 +f 425 144 426 +f 427 426 143 +f 145 428 430 +f 428 113 429 +f 430 429 146 +f 142 431 433 +f 431 147 432 +f 433 432 146 +f 148 434 436 +f 434 117 435 +f 436 435 149 +f 145 437 439 +f 437 150 438 +f 439 438 149 +f 151 440 442 +f 440 121 441 +f 442 441 152 +f 148 443 445 +f 443 153 444 +f 445 444 152 +f 154 446 448 +f 446 125 447 +f 448 447 155 +f 151 449 451 +f 449 156 450 +f 451 450 155 +f 157 452 454 +f 452 129 453 +f 454 453 158 +f 154 455 457 +f 455 159 456 +f 457 456 158 +f 160 458 460 +f 458 133 459 +f 460 459 161 +f 157 461 463 +f 461 162 462 +f 463 462 161 +f 163 464 466 +f 464 137 465 +f 466 465 164 +f 160 467 469 +f 467 165 468 +f 469 468 164 +f 166 470 472 +f 470 141 471 +f 472 471 167 +f 168 473 475 +f 473 169 474 +f 475 474 167 +f 170 476 478 +f 476 144 477 +f 478 477 171 +f 166 479 481 +f 479 172 480 +f 481 480 171 +f 173 482 484 +f 482 147 483 +f 484 483 174 +f 170 485 487 +f 485 175 486 +f 487 486 174 +f 176 488 490 +f 488 150 489 +f 490 489 177 +f 173 491 493 +f 491 178 492 +f 493 492 177 +f 179 494 496 +f 494 153 495 +f 496 495 180 +f 176 497 499 +f 497 181 498 +f 499 498 180 +f 182 500 502 +f 500 156 501 +f 502 501 183 +f 179 503 505 +f 503 184 504 +f 505 504 183 +f 185 506 508 +f 506 159 507 +f 508 507 186 +f 182 509 511 +f 509 187 510 +f 511 510 186 +f 188 512 514 +f 512 162 513 +f 514 513 189 +f 185 515 517 +f 515 190 516 +f 517 516 189 +f 191 518 520 +f 518 165 519 +f 520 519 192 +f 188 521 523 +f 521 193 522 +f 523 522 192 +f 194 524 526 +f 524 169 525 +f 526 525 195 +f 196 527 529 +f 527 197 528 +f 529 528 195 +f 198 530 532 +f 530 172 531 +f 532 531 199 +f 194 533 535 +f 533 200 534 +f 535 534 199 +f 201 536 538 +f 536 175 537 +f 538 537 202 +f 198 539 541 +f 539 203 540 +f 541 540 202 +f 204 542 544 +f 542 178 543 +f 544 543 205 +f 201 545 547 +f 545 206 546 +f 547 546 205 +f 207 548 550 +f 548 181 549 +f 550 549 208 +f 204 551 553 +f 551 209 552 +f 553 552 208 +f 210 554 556 +f 554 184 555 +f 556 555 211 +f 207 557 559 +f 557 212 558 +f 559 558 211 +f 213 560 562 +f 560 187 561 +f 562 561 214 +f 210 563 565 +f 563 215 564 +f 565 564 214 +f 216 566 568 +f 566 190 567 +f 568 567 217 +f 213 569 571 +f 569 218 570 +f 571 570 217 +f 219 572 574 +f 572 193 573 +f 574 573 220 +f 216 575 577 +f 575 221 576 +f 577 576 220 +f 222 578 580 +f 578 197 579 +f 580 579 223 +f 224 581 583 +f 581 225 582 +f 583 582 223 +f 226 584 586 +f 584 200 585 +f 586 585 227 +f 222 587 589 +f 587 228 588 +f 589 588 227 +f 229 590 592 +f 590 203 591 +f 592 591 230 +f 226 593 595 +f 593 231 594 +f 595 594 230 +f 232 596 598 +f 596 206 597 +f 598 597 233 +f 229 599 601 +f 599 234 600 +f 601 600 233 +f 235 602 604 +f 602 209 603 +f 604 603 236 +f 232 605 607 +f 605 237 606 +f 607 606 236 +f 238 608 610 +f 608 212 609 +f 610 609 239 +f 235 611 613 +f 611 240 612 +f 613 612 239 +f 241 614 616 +f 614 215 615 +f 616 615 242 +f 238 617 619 +f 617 243 618 +f 619 618 242 +f 244 620 622 +f 620 218 621 +f 622 621 245 +f 241 623 625 +f 623 246 624 +f 625 624 245 +f 247 626 628 +f 626 221 627 +f 628 627 248 +f 244 629 631 +f 629 249 630 +f 631 630 248 +f 250 632 634 +f 632 225 633 +f 634 633 251 +f 252 635 637 +f 635 253 636 +f 637 636 251 +f 254 638 640 +f 638 228 639 +f 640 639 255 +f 250 641 643 +f 641 256 642 +f 643 642 255 +f 257 644 646 +f 644 231 645 +f 646 645 258 +f 254 647 649 +f 647 259 648 +f 649 648 258 +f 260 650 652 +f 650 234 651 +f 652 651 261 +f 257 653 655 +f 653 262 654 +f 655 654 261 +f 263 656 658 +f 656 237 657 +f 658 657 264 +f 260 659 661 +f 659 265 660 +f 661 660 264 +f 266 662 664 +f 662 240 663 +f 664 663 267 +f 263 665 667 +f 665 268 666 +f 667 666 267 +f 269 668 670 +f 668 243 669 +f 670 669 270 +f 266 671 673 +f 671 271 672 +f 673 672 270 +f 272 674 676 +f 674 246 675 +f 676 675 273 +f 269 677 679 +f 677 274 678 +f 679 678 273 +f 275 680 682 +f 680 249 681 +f 682 681 276 +f 272 683 685 +f 683 277 684 +f 685 684 276 +f 278 686 688 +f 686 253 687 +f 688 687 279 +f 280 689 691 +f 689 281 690 +f 691 690 279 +f 282 692 694 +f 692 256 693 +f 694 693 283 +f 278 695 697 +f 695 284 696 +f 697 696 283 +f 285 698 700 +f 698 259 699 +f 700 699 286 +f 282 701 703 +f 701 287 702 +f 703 702 286 +f 288 704 706 +f 704 262 705 +f 706 705 289 +f 285 707 709 +f 707 290 708 +f 709 708 289 +f 291 710 712 +f 710 265 711 +f 712 711 292 +f 288 713 715 +f 713 293 714 +f 715 714 292 +f 294 716 718 +f 716 268 717 +f 718 717 295 +f 291 719 721 +f 719 296 720 +f 721 720 295 +f 297 722 724 +f 722 271 723 +f 724 723 298 +f 294 725 727 +f 725 299 726 +f 727 726 298 +f 300 728 730 +f 728 274 729 +f 730 729 301 +f 297 731 733 +f 731 302 732 +f 733 732 301 +f 303 734 736 +f 734 277 735 +f 736 735 304 +f 300 737 739 +f 737 305 738 +f 739 738 304 +f 306 740 742 +f 740 281 741 +f 742 741 307 +f 308 743 745 +f 743 309 744 +f 745 744 307 +f 310 746 748 +f 746 284 747 +f 748 747 311 +f 306 749 751 +f 749 312 750 +f 751 750 311 +f 313 752 754 +f 752 287 753 +f 754 753 314 +f 310 755 757 +f 755 315 756 +f 757 756 314 +f 316 758 760 +f 758 290 759 +f 760 759 317 +f 313 761 763 +f 761 318 762 +f 763 762 317 +f 319 764 766 +f 764 293 765 +f 766 765 320 +f 316 767 769 +f 767 321 768 +f 769 768 320 +f 322 770 772 +f 770 296 771 +f 772 771 323 +f 319 773 775 +f 773 324 774 +f 775 774 323 +f 325 776 778 +f 776 299 777 +f 778 777 326 +f 322 779 781 +f 779 327 780 +f 781 780 326 +f 328 782 784 +f 782 302 783 +f 784 783 329 +f 325 785 787 +f 785 330 786 +f 787 786 329 +f 331 788 790 +f 788 305 789 +f 790 789 332 +f 328 791 793 +f 791 333 792 +f 793 792 332 +f 334 794 796 +f 794 309 795 +f 796 795 335 +f 336 797 799 +f 797 337 798 +f 799 798 335 +f 338 800 802 +f 800 312 801 +f 802 801 339 +f 334 803 805 +f 803 340 804 +f 805 804 339 +f 341 806 808 +f 806 315 807 +f 808 807 342 +f 338 809 811 +f 809 343 810 +f 811 810 342 +f 344 812 814 +f 812 318 813 +f 814 813 345 +f 341 815 817 +f 815 346 816 +f 817 816 345 +f 347 818 820 +f 818 321 819 +f 820 819 348 +f 344 821 823 +f 821 349 822 +f 823 822 348 +f 350 824 826 +f 824 324 825 +f 826 825 351 +f 347 827 829 +f 827 352 828 +f 829 828 351 +f 353 830 832 +f 830 327 831 +f 832 831 354 +f 350 833 835 +f 833 355 834 +f 835 834 354 +f 356 836 838 +f 836 330 837 +f 838 837 357 +f 353 839 841 +f 839 358 840 +f 841 840 357 +f 359 842 844 +f 842 333 843 +f 844 843 360 +f 356 845 847 +f 845 361 846 +f 847 846 360 +f 1 848 849 +f 848 101 364 +f 849 364 103 +f 101 850 362 +f 850 2 851 +f 362 851 102 +f 103 363 853 +f 363 102 852 +f 853 852 3 +f 3 854 853 +f 854 104 367 +f 853 367 103 +f 104 855 365 +f 855 4 856 +f 365 856 105 +f 103 366 849 +f 366 105 857 +f 849 857 1 +f 5 858 859 +f 858 106 370 +f 859 370 108 +f 106 860 368 +f 860 6 861 +f 368 861 107 +f 108 369 863 +f 369 107 862 +f 863 862 2 +f 2 850 863 +f 850 101 373 +f 863 373 108 +f 101 848 371 +f 848 1 864 +f 371 864 109 +f 108 372 859 +f 372 109 865 +f 859 865 5 +f 7 866 867 +f 866 110 376 +f 867 376 112 +f 110 868 374 +f 868 8 869 +f 374 869 111 +f 112 375 871 +f 375 111 870 +f 871 870 6 +f 6 860 871 +f 860 106 379 +f 871 379 112 +f 106 858 377 +f 858 5 872 +f 377 872 113 +f 112 378 867 +f 378 113 873 +f 867 873 7 +f 9 874 875 +f 874 114 382 +f 875 382 116 +f 114 876 380 +f 876 10 877 +f 380 877 115 +f 116 381 879 +f 381 115 878 +f 879 878 8 +f 8 868 879 +f 868 110 385 +f 879 385 116 +f 110 866 383 +f 866 7 880 +f 383 880 117 +f 116 384 875 +f 384 117 881 +f 875 881 9 +f 11 882 883 +f 882 118 388 +f 883 388 120 +f 118 884 386 +f 884 12 885 +f 386 885 119 +f 120 387 887 +f 387 119 886 +f 887 886 10 +f 10 876 887 +f 876 114 391 +f 887 391 120 +f 114 874 389 +f 874 9 888 +f 389 888 121 +f 120 390 883 +f 390 121 889 +f 883 889 11 +f 13 890 891 +f 890 122 394 +f 891 394 124 +f 122 892 392 +f 892 14 893 +f 392 893 123 +f 124 393 895 +f 393 123 894 +f 895 894 12 +f 12 884 895 +f 884 118 397 +f 895 397 124 +f 118 882 395 +f 882 11 896 +f 395 896 125 +f 124 396 891 +f 396 125 897 +f 891 897 13 +f 15 898 899 +f 898 126 400 +f 899 400 128 +f 126 900 398 +f 900 16 901 +f 398 901 127 +f 128 399 903 +f 399 127 902 +f 903 902 14 +f 14 892 903 +f 892 122 403 +f 903 403 128 +f 122 890 401 +f 890 13 904 +f 401 904 129 +f 128 402 899 +f 402 129 905 +f 899 905 15 +f 17 906 907 +f 906 130 406 +f 907 406 132 +f 130 908 404 +f 908 18 909 +f 404 909 131 +f 132 405 911 +f 405 131 910 +f 911 910 16 +f 16 900 911 +f 900 126 409 +f 911 409 132 +f 126 898 407 +f 898 15 912 +f 407 912 133 +f 132 408 907 +f 408 133 913 +f 907 913 17 +f 19 914 915 +f 914 134 412 +f 915 412 136 +f 134 916 410 +f 916 20 917 +f 410 917 135 +f 136 411 919 +f 411 135 918 +f 919 918 18 +f 18 908 919 +f 908 130 415 +f 919 415 136 +f 130 906 413 +f 906 17 920 +f 413 920 137 +f 136 414 915 +f 414 137 921 +f 915 921 19 +f 21 922 923 +f 922 138 418 +f 923 418 139 +f 138 924 416 +f 924 1 857 +f 416 857 105 +f 139 417 925 +f 417 105 856 +f 925 856 4 +f 4 926 925 +f 926 140 421 +f 925 421 139 +f 140 927 419 +f 927 22 928 +f 419 928 141 +f 139 420 923 +f 420 141 929 +f 923 929 21 +f 23 930 931 +f 930 142 424 +f 931 424 143 +f 142 932 422 +f 932 5 865 +f 422 865 109 +f 143 423 933 +f 423 109 864 +f 933 864 1 +f 1 924 933 +f 924 138 427 +f 933 427 143 +f 138 922 425 +f 922 21 934 +f 425 934 144 +f 143 426 931 +f 426 144 935 +f 931 935 23 +f 24 936 937 +f 936 145 430 +f 937 430 146 +f 145 938 428 +f 938 7 873 +f 428 873 113 +f 146 429 939 +f 429 113 872 +f 939 872 5 +f 5 932 939 +f 932 142 433 +f 939 433 146 +f 142 930 431 +f 930 23 940 +f 431 940 147 +f 146 432 937 +f 432 147 941 +f 937 941 24 +f 25 942 943 +f 942 148 436 +f 943 436 149 +f 148 944 434 +f 944 9 881 +f 434 881 117 +f 149 435 945 +f 435 117 880 +f 945 880 7 +f 7 938 945 +f 938 145 439 +f 945 439 149 +f 145 936 437 +f 936 24 946 +f 437 946 150 +f 149 438 943 +f 438 150 947 +f 943 947 25 +f 26 948 949 +f 948 151 442 +f 949 442 152 +f 151 950 440 +f 950 11 889 +f 440 889 121 +f 152 441 951 +f 441 121 888 +f 951 888 9 +f 9 944 951 +f 944 148 445 +f 951 445 152 +f 148 942 443 +f 942 25 952 +f 443 952 153 +f 152 444 949 +f 444 153 953 +f 949 953 26 +f 27 954 955 +f 954 154 448 +f 955 448 155 +f 154 956 446 +f 956 13 897 +f 446 897 125 +f 155 447 957 +f 447 125 896 +f 957 896 11 +f 11 950 957 +f 950 151 451 +f 957 451 155 +f 151 948 449 +f 948 26 958 +f 449 958 156 +f 155 450 955 +f 450 156 959 +f 955 959 27 +f 28 960 961 +f 960 157 454 +f 961 454 158 +f 157 962 452 +f 962 15 905 +f 452 905 129 +f 158 453 963 +f 453 129 904 +f 963 904 13 +f 13 956 963 +f 956 154 457 +f 963 457 158 +f 154 954 455 +f 954 27 964 +f 455 964 159 +f 158 456 961 +f 456 159 965 +f 961 965 28 +f 29 966 967 +f 966 160 460 +f 967 460 161 +f 160 968 458 +f 968 17 913 +f 458 913 133 +f 161 459 969 +f 459 133 912 +f 969 912 15 +f 15 962 969 +f 962 157 463 +f 969 463 161 +f 157 960 461 +f 960 28 970 +f 461 970 162 +f 161 462 967 +f 462 162 971 +f 967 971 29 +f 30 972 973 +f 972 163 466 +f 973 466 164 +f 163 974 464 +f 974 19 921 +f 464 921 137 +f 164 465 975 +f 465 137 920 +f 975 920 17 +f 17 968 975 +f 968 160 469 +f 975 469 164 +f 160 966 467 +f 966 29 976 +f 467 976 165 +f 164 468 973 +f 468 165 977 +f 973 977 30 +f 31 978 979 +f 978 166 472 +f 979 472 167 +f 166 980 470 +f 980 21 929 +f 470 929 141 +f 167 471 981 +f 471 141 928 +f 981 928 22 +f 22 982 981 +f 982 168 475 +f 981 475 167 +f 168 983 473 +f 983 32 984 +f 473 984 169 +f 167 474 979 +f 474 169 985 +f 979 985 31 +f 33 986 987 +f 986 170 478 +f 987 478 171 +f 170 988 476 +f 988 23 935 +f 476 935 144 +f 171 477 989 +f 477 144 934 +f 989 934 21 +f 21 980 989 +f 980 166 481 +f 989 481 171 +f 166 978 479 +f 978 31 990 +f 479 990 172 +f 171 480 987 +f 480 172 991 +f 987 991 33 +f 34 992 993 +f 992 173 484 +f 993 484 174 +f 173 994 482 +f 994 24 941 +f 482 941 147 +f 174 483 995 +f 483 147 940 +f 995 940 23 +f 23 988 995 +f 988 170 487 +f 995 487 174 +f 170 986 485 +f 986 33 996 +f 485 996 175 +f 174 486 993 +f 486 175 997 +f 993 997 34 +f 35 998 999 +f 998 176 490 +f 999 490 177 +f 176 1000 488 +f 1000 25 947 +f 488 947 150 +f 177 489 1001 +f 489 150 946 +f 1001 946 24 +f 24 994 1001 +f 994 173 493 +f 1001 493 177 +f 173 992 491 +f 992 34 1002 +f 491 1002 178 +f 177 492 999 +f 492 178 1003 +f 999 1003 35 +f 36 1004 1005 +f 1004 179 496 +f 1005 496 180 +f 179 1006 494 +f 1006 26 953 +f 494 953 153 +f 180 495 1007 +f 495 153 952 +f 1007 952 25 +f 25 1000 1007 +f 1000 176 499 +f 1007 499 180 +f 176 998 497 +f 998 35 1008 +f 497 1008 181 +f 180 498 1005 +f 498 181 1009 +f 1005 1009 36 +f 37 1010 1011 +f 1010 182 502 +f 1011 502 183 +f 182 1012 500 +f 1012 27 959 +f 500 959 156 +f 183 501 1013 +f 501 156 958 +f 1013 958 26 +f 26 1006 1013 +f 1006 179 505 +f 1013 505 183 +f 179 1004 503 +f 1004 36 1014 +f 503 1014 184 +f 183 504 1011 +f 504 184 1015 +f 1011 1015 37 +f 38 1016 1017 +f 1016 185 508 +f 1017 508 186 +f 185 1018 506 +f 1018 28 965 +f 506 965 159 +f 186 507 1019 +f 507 159 964 +f 1019 964 27 +f 27 1012 1019 +f 1012 182 511 +f 1019 511 186 +f 182 1010 509 +f 1010 37 1020 +f 509 1020 187 +f 186 510 1017 +f 510 187 1021 +f 1017 1021 38 +f 39 1022 1023 +f 1022 188 514 +f 1023 514 189 +f 188 1024 512 +f 1024 29 971 +f 512 971 162 +f 189 513 1025 +f 513 162 970 +f 1025 970 28 +f 28 1018 1025 +f 1018 185 517 +f 1025 517 189 +f 185 1016 515 +f 1016 38 1026 +f 515 1026 190 +f 189 516 1023 +f 516 190 1027 +f 1023 1027 39 +f 40 1028 1029 +f 1028 191 520 +f 1029 520 192 +f 191 1030 518 +f 1030 30 977 +f 518 977 165 +f 192 519 1031 +f 519 165 976 +f 1031 976 29 +f 29 1024 1031 +f 1024 188 523 +f 1031 523 192 +f 188 1022 521 +f 1022 39 1032 +f 521 1032 193 +f 192 522 1029 +f 522 193 1033 +f 1029 1033 40 +f 41 1034 1035 +f 1034 194 526 +f 1035 526 195 +f 194 1036 524 +f 1036 31 985 +f 524 985 169 +f 195 525 1037 +f 525 169 984 +f 1037 984 32 +f 32 1038 1037 +f 1038 196 529 +f 1037 529 195 +f 196 1039 527 +f 1039 42 1040 +f 527 1040 197 +f 195 528 1035 +f 528 197 1041 +f 1035 1041 41 +f 43 1042 1043 +f 1042 198 532 +f 1043 532 199 +f 198 1044 530 +f 1044 33 991 +f 530 991 172 +f 199 531 1045 +f 531 172 990 +f 1045 990 31 +f 31 1036 1045 +f 1036 194 535 +f 1045 535 199 +f 194 1034 533 +f 1034 41 1046 +f 533 1046 200 +f 199 534 1043 +f 534 200 1047 +f 1043 1047 43 +f 44 1048 1049 +f 1048 201 538 +f 1049 538 202 +f 201 1050 536 +f 1050 34 997 +f 536 997 175 +f 202 537 1051 +f 537 175 996 +f 1051 996 33 +f 33 1044 1051 +f 1044 198 541 +f 1051 541 202 +f 198 1042 539 +f 1042 43 1052 +f 539 1052 203 +f 202 540 1049 +f 540 203 1053 +f 1049 1053 44 +f 45 1054 1055 +f 1054 204 544 +f 1055 544 205 +f 204 1056 542 +f 1056 35 1003 +f 542 1003 178 +f 205 543 1057 +f 543 178 1002 +f 1057 1002 34 +f 34 1050 1057 +f 1050 201 547 +f 1057 547 205 +f 201 1048 545 +f 1048 44 1058 +f 545 1058 206 +f 205 546 1055 +f 546 206 1059 +f 1055 1059 45 +f 46 1060 1061 +f 1060 207 550 +f 1061 550 208 +f 207 1062 548 +f 1062 36 1009 +f 548 1009 181 +f 208 549 1063 +f 549 181 1008 +f 1063 1008 35 +f 35 1056 1063 +f 1056 204 553 +f 1063 553 208 +f 204 1054 551 +f 1054 45 1064 +f 551 1064 209 +f 208 552 1061 +f 552 209 1065 +f 1061 1065 46 +f 47 1066 1067 +f 1066 210 556 +f 1067 556 211 +f 210 1068 554 +f 1068 37 1015 +f 554 1015 184 +f 211 555 1069 +f 555 184 1014 +f 1069 1014 36 +f 36 1062 1069 +f 1062 207 559 +f 1069 559 211 +f 207 1060 557 +f 1060 46 1070 +f 557 1070 212 +f 211 558 1067 +f 558 212 1071 +f 1067 1071 47 +f 48 1072 1073 +f 1072 213 562 +f 1073 562 214 +f 213 1074 560 +f 1074 38 1021 +f 560 1021 187 +f 214 561 1075 +f 561 187 1020 +f 1075 1020 37 +f 37 1068 1075 +f 1068 210 565 +f 1075 565 214 +f 210 1066 563 +f 1066 47 1076 +f 563 1076 215 +f 214 564 1073 +f 564 215 1077 +f 1073 1077 48 +f 49 1078 1079 +f 1078 216 568 +f 1079 568 217 +f 216 1080 566 +f 1080 39 1027 +f 566 1027 190 +f 217 567 1081 +f 567 190 1026 +f 1081 1026 38 +f 38 1074 1081 +f 1074 213 571 +f 1081 571 217 +f 213 1072 569 +f 1072 48 1082 +f 569 1082 218 +f 217 570 1079 +f 570 218 1083 +f 1079 1083 49 +f 50 1084 1085 +f 1084 219 574 +f 1085 574 220 +f 219 1086 572 +f 1086 40 1033 +f 572 1033 193 +f 220 573 1087 +f 573 193 1032 +f 1087 1032 39 +f 39 1080 1087 +f 1080 216 577 +f 1087 577 220 +f 216 1078 575 +f 1078 49 1088 +f 575 1088 221 +f 220 576 1085 +f 576 221 1089 +f 1085 1089 50 +f 51 1090 1091 +f 1090 222 580 +f 1091 580 223 +f 222 1092 578 +f 1092 41 1041 +f 578 1041 197 +f 223 579 1093 +f 579 197 1040 +f 1093 1040 42 +f 42 1094 1093 +f 1094 224 583 +f 1093 583 223 +f 224 1095 581 +f 1095 52 1096 +f 581 1096 225 +f 223 582 1091 +f 582 225 1097 +f 1091 1097 51 +f 53 1098 1099 +f 1098 226 586 +f 1099 586 227 +f 226 1100 584 +f 1100 43 1047 +f 584 1047 200 +f 227 585 1101 +f 585 200 1046 +f 1101 1046 41 +f 41 1092 1101 +f 1092 222 589 +f 1101 589 227 +f 222 1090 587 +f 1090 51 1102 +f 587 1102 228 +f 227 588 1099 +f 588 228 1103 +f 1099 1103 53 +f 54 1104 1105 +f 1104 229 592 +f 1105 592 230 +f 229 1106 590 +f 1106 44 1053 +f 590 1053 203 +f 230 591 1107 +f 591 203 1052 +f 1107 1052 43 +f 43 1100 1107 +f 1100 226 595 +f 1107 595 230 +f 226 1098 593 +f 1098 53 1108 +f 593 1108 231 +f 230 594 1105 +f 594 231 1109 +f 1105 1109 54 +f 55 1110 1111 +f 1110 232 598 +f 1111 598 233 +f 232 1112 596 +f 1112 45 1059 +f 596 1059 206 +f 233 597 1113 +f 597 206 1058 +f 1113 1058 44 +f 44 1106 1113 +f 1106 229 601 +f 1113 601 233 +f 229 1104 599 +f 1104 54 1114 +f 599 1114 234 +f 233 600 1111 +f 600 234 1115 +f 1111 1115 55 +f 56 1116 1117 +f 1116 235 604 +f 1117 604 236 +f 235 1118 602 +f 1118 46 1065 +f 602 1065 209 +f 236 603 1119 +f 603 209 1064 +f 1119 1064 45 +f 45 1112 1119 +f 1112 232 607 +f 1119 607 236 +f 232 1110 605 +f 1110 55 1120 +f 605 1120 237 +f 236 606 1117 +f 606 237 1121 +f 1117 1121 56 +f 57 1122 1123 +f 1122 238 610 +f 1123 610 239 +f 238 1124 608 +f 1124 47 1071 +f 608 1071 212 +f 239 609 1125 +f 609 212 1070 +f 1125 1070 46 +f 46 1118 1125 +f 1118 235 613 +f 1125 613 239 +f 235 1116 611 +f 1116 56 1126 +f 611 1126 240 +f 239 612 1123 +f 612 240 1127 +f 1123 1127 57 +f 58 1128 1129 +f 1128 241 616 +f 1129 616 242 +f 241 1130 614 +f 1130 48 1077 +f 614 1077 215 +f 242 615 1131 +f 615 215 1076 +f 1131 1076 47 +f 47 1124 1131 +f 1124 238 619 +f 1131 619 242 +f 238 1122 617 +f 1122 57 1132 +f 617 1132 243 +f 242 618 1129 +f 618 243 1133 +f 1129 1133 58 +f 59 1134 1135 +f 1134 244 622 +f 1135 622 245 +f 244 1136 620 +f 1136 49 1083 +f 620 1083 218 +f 245 621 1137 +f 621 218 1082 +f 1137 1082 48 +f 48 1130 1137 +f 1130 241 625 +f 1137 625 245 +f 241 1128 623 +f 1128 58 1138 +f 623 1138 246 +f 245 624 1135 +f 624 246 1139 +f 1135 1139 59 +f 60 1140 1141 +f 1140 247 628 +f 1141 628 248 +f 247 1142 626 +f 1142 50 1089 +f 626 1089 221 +f 248 627 1143 +f 627 221 1088 +f 1143 1088 49 +f 49 1136 1143 +f 1136 244 631 +f 1143 631 248 +f 244 1134 629 +f 1134 59 1144 +f 629 1144 249 +f 248 630 1141 +f 630 249 1145 +f 1141 1145 60 +f 61 1146 1147 +f 1146 250 634 +f 1147 634 251 +f 250 1148 632 +f 1148 51 1097 +f 632 1097 225 +f 251 633 1149 +f 633 225 1096 +f 1149 1096 52 +f 52 1150 1149 +f 1150 252 637 +f 1149 637 251 +f 252 1151 635 +f 1151 62 1152 +f 635 1152 253 +f 251 636 1147 +f 636 253 1153 +f 1147 1153 61 +f 63 1154 1155 +f 1154 254 640 +f 1155 640 255 +f 254 1156 638 +f 1156 53 1103 +f 638 1103 228 +f 255 639 1157 +f 639 228 1102 +f 1157 1102 51 +f 51 1148 1157 +f 1148 250 643 +f 1157 643 255 +f 250 1146 641 +f 1146 61 1158 +f 641 1158 256 +f 255 642 1155 +f 642 256 1159 +f 1155 1159 63 +f 64 1160 1161 +f 1160 257 646 +f 1161 646 258 +f 257 1162 644 +f 1162 54 1109 +f 644 1109 231 +f 258 645 1163 +f 645 231 1108 +f 1163 1108 53 +f 53 1156 1163 +f 1156 254 649 +f 1163 649 258 +f 254 1154 647 +f 1154 63 1164 +f 647 1164 259 +f 258 648 1161 +f 648 259 1165 +f 1161 1165 64 +f 65 1166 1167 +f 1166 260 652 +f 1167 652 261 +f 260 1168 650 +f 1168 55 1115 +f 650 1115 234 +f 261 651 1169 +f 651 234 1114 +f 1169 1114 54 +f 54 1162 1169 +f 1162 257 655 +f 1169 655 261 +f 257 1160 653 +f 1160 64 1170 +f 653 1170 262 +f 261 654 1167 +f 654 262 1171 +f 1167 1171 65 +f 66 1172 1173 +f 1172 263 658 +f 1173 658 264 +f 263 1174 656 +f 1174 56 1121 +f 656 1121 237 +f 264 657 1175 +f 657 237 1120 +f 1175 1120 55 +f 55 1168 1175 +f 1168 260 661 +f 1175 661 264 +f 260 1166 659 +f 1166 65 1176 +f 659 1176 265 +f 264 660 1173 +f 660 265 1177 +f 1173 1177 66 +f 67 1178 1179 +f 1178 266 664 +f 1179 664 267 +f 266 1180 662 +f 1180 57 1127 +f 662 1127 240 +f 267 663 1181 +f 663 240 1126 +f 1181 1126 56 +f 56 1174 1181 +f 1174 263 667 +f 1181 667 267 +f 263 1172 665 +f 1172 66 1182 +f 665 1182 268 +f 267 666 1179 +f 666 268 1183 +f 1179 1183 67 +f 68 1184 1185 +f 1184 269 670 +f 1185 670 270 +f 269 1186 668 +f 1186 58 1133 +f 668 1133 243 +f 270 669 1187 +f 669 243 1132 +f 1187 1132 57 +f 57 1180 1187 +f 1180 266 673 +f 1187 673 270 +f 266 1178 671 +f 1178 67 1188 +f 671 1188 271 +f 270 672 1185 +f 672 271 1189 +f 1185 1189 68 +f 69 1190 1191 +f 1190 272 676 +f 1191 676 273 +f 272 1192 674 +f 1192 59 1139 +f 674 1139 246 +f 273 675 1193 +f 675 246 1138 +f 1193 1138 58 +f 58 1186 1193 +f 1186 269 679 +f 1193 679 273 +f 269 1184 677 +f 1184 68 1194 +f 677 1194 274 +f 273 678 1191 +f 678 274 1195 +f 1191 1195 69 +f 70 1196 1197 +f 1196 275 682 +f 1197 682 276 +f 275 1198 680 +f 1198 60 1145 +f 680 1145 249 +f 276 681 1199 +f 681 249 1144 +f 1199 1144 59 +f 59 1192 1199 +f 1192 272 685 +f 1199 685 276 +f 272 1190 683 +f 1190 69 1200 +f 683 1200 277 +f 276 684 1197 +f 684 277 1201 +f 1197 1201 70 +f 71 1202 1203 +f 1202 278 688 +f 1203 688 279 +f 278 1204 686 +f 1204 61 1153 +f 686 1153 253 +f 279 687 1205 +f 687 253 1152 +f 1205 1152 62 +f 62 1206 1205 +f 1206 280 691 +f 1205 691 279 +f 280 1207 689 +f 1207 72 1208 +f 689 1208 281 +f 279 690 1203 +f 690 281 1209 +f 1203 1209 71 +f 73 1210 1211 +f 1210 282 694 +f 1211 694 283 +f 282 1212 692 +f 1212 63 1159 +f 692 1159 256 +f 283 693 1213 +f 693 256 1158 +f 1213 1158 61 +f 61 1204 1213 +f 1204 278 697 +f 1213 697 283 +f 278 1202 695 +f 1202 71 1214 +f 695 1214 284 +f 283 696 1211 +f 696 284 1215 +f 1211 1215 73 +f 74 1216 1217 +f 1216 285 700 +f 1217 700 286 +f 285 1218 698 +f 1218 64 1165 +f 698 1165 259 +f 286 699 1219 +f 699 259 1164 +f 1219 1164 63 +f 63 1212 1219 +f 1212 282 703 +f 1219 703 286 +f 282 1210 701 +f 1210 73 1220 +f 701 1220 287 +f 286 702 1217 +f 702 287 1221 +f 1217 1221 74 +f 75 1222 1223 +f 1222 288 706 +f 1223 706 289 +f 288 1224 704 +f 1224 65 1171 +f 704 1171 262 +f 289 705 1225 +f 705 262 1170 +f 1225 1170 64 +f 64 1218 1225 +f 1218 285 709 +f 1225 709 289 +f 285 1216 707 +f 1216 74 1226 +f 707 1226 290 +f 289 708 1223 +f 708 290 1227 +f 1223 1227 75 +f 76 1228 1229 +f 1228 291 712 +f 1229 712 292 +f 291 1230 710 +f 1230 66 1177 +f 710 1177 265 +f 292 711 1231 +f 711 265 1176 +f 1231 1176 65 +f 65 1224 1231 +f 1224 288 715 +f 1231 715 292 +f 288 1222 713 +f 1222 75 1232 +f 713 1232 293 +f 292 714 1229 +f 714 293 1233 +f 1229 1233 76 +f 77 1234 1235 +f 1234 294 718 +f 1235 718 295 +f 294 1236 716 +f 1236 67 1183 +f 716 1183 268 +f 295 717 1237 +f 717 268 1182 +f 1237 1182 66 +f 66 1230 1237 +f 1230 291 721 +f 1237 721 295 +f 291 1228 719 +f 1228 76 1238 +f 719 1238 296 +f 295 720 1235 +f 720 296 1239 +f 1235 1239 77 +f 78 1240 1241 +f 1240 297 724 +f 1241 724 298 +f 297 1242 722 +f 1242 68 1189 +f 722 1189 271 +f 298 723 1243 +f 723 271 1188 +f 1243 1188 67 +f 67 1236 1243 +f 1236 294 727 +f 1243 727 298 +f 294 1234 725 +f 1234 77 1244 +f 725 1244 299 +f 298 726 1241 +f 726 299 1245 +f 1241 1245 78 +f 79 1246 1247 +f 1246 300 730 +f 1247 730 301 +f 300 1248 728 +f 1248 69 1195 +f 728 1195 274 +f 301 729 1249 +f 729 274 1194 +f 1249 1194 68 +f 68 1242 1249 +f 1242 297 733 +f 1249 733 301 +f 297 1240 731 +f 1240 78 1250 +f 731 1250 302 +f 301 732 1247 +f 732 302 1251 +f 1247 1251 79 +f 80 1252 1253 +f 1252 303 736 +f 1253 736 304 +f 303 1254 734 +f 1254 70 1201 +f 734 1201 277 +f 304 735 1255 +f 735 277 1200 +f 1255 1200 69 +f 69 1248 1255 +f 1248 300 739 +f 1255 739 304 +f 300 1246 737 +f 1246 79 1256 +f 737 1256 305 +f 304 738 1253 +f 738 305 1257 +f 1253 1257 80 +f 81 1258 1259 +f 1258 306 742 +f 1259 742 307 +f 306 1260 740 +f 1260 71 1209 +f 740 1209 281 +f 307 741 1261 +f 741 281 1208 +f 1261 1208 72 +f 72 1262 1261 +f 1262 308 745 +f 1261 745 307 +f 308 1263 743 +f 1263 82 1264 +f 743 1264 309 +f 307 744 1259 +f 744 309 1265 +f 1259 1265 81 +f 83 1266 1267 +f 1266 310 748 +f 1267 748 311 +f 310 1268 746 +f 1268 73 1215 +f 746 1215 284 +f 311 747 1269 +f 747 284 1214 +f 1269 1214 71 +f 71 1260 1269 +f 1260 306 751 +f 1269 751 311 +f 306 1258 749 +f 1258 81 1270 +f 749 1270 312 +f 311 750 1267 +f 750 312 1271 +f 1267 1271 83 +f 84 1272 1273 +f 1272 313 754 +f 1273 754 314 +f 313 1274 752 +f 1274 74 1221 +f 752 1221 287 +f 314 753 1275 +f 753 287 1220 +f 1275 1220 73 +f 73 1268 1275 +f 1268 310 757 +f 1275 757 314 +f 310 1266 755 +f 1266 83 1276 +f 755 1276 315 +f 314 756 1273 +f 756 315 1277 +f 1273 1277 84 +f 85 1278 1279 +f 1278 316 760 +f 1279 760 317 +f 316 1280 758 +f 1280 75 1227 +f 758 1227 290 +f 317 759 1281 +f 759 290 1226 +f 1281 1226 74 +f 74 1274 1281 +f 1274 313 763 +f 1281 763 317 +f 313 1272 761 +f 1272 84 1282 +f 761 1282 318 +f 317 762 1279 +f 762 318 1283 +f 1279 1283 85 +f 86 1284 1285 +f 1284 319 766 +f 1285 766 320 +f 319 1286 764 +f 1286 76 1233 +f 764 1233 293 +f 320 765 1287 +f 765 293 1232 +f 1287 1232 75 +f 75 1280 1287 +f 1280 316 769 +f 1287 769 320 +f 316 1278 767 +f 1278 85 1288 +f 767 1288 321 +f 320 768 1285 +f 768 321 1289 +f 1285 1289 86 +f 87 1290 1291 +f 1290 322 772 +f 1291 772 323 +f 322 1292 770 +f 1292 77 1239 +f 770 1239 296 +f 323 771 1293 +f 771 296 1238 +f 1293 1238 76 +f 76 1286 1293 +f 1286 319 775 +f 1293 775 323 +f 319 1284 773 +f 1284 86 1294 +f 773 1294 324 +f 323 774 1291 +f 774 324 1295 +f 1291 1295 87 +f 88 1296 1297 +f 1296 325 778 +f 1297 778 326 +f 325 1298 776 +f 1298 78 1245 +f 776 1245 299 +f 326 777 1299 +f 777 299 1244 +f 1299 1244 77 +f 77 1292 1299 +f 1292 322 781 +f 1299 781 326 +f 322 1290 779 +f 1290 87 1300 +f 779 1300 327 +f 326 780 1297 +f 780 327 1301 +f 1297 1301 88 +f 89 1302 1303 +f 1302 328 784 +f 1303 784 329 +f 328 1304 782 +f 1304 79 1251 +f 782 1251 302 +f 329 783 1305 +f 783 302 1250 +f 1305 1250 78 +f 78 1298 1305 +f 1298 325 787 +f 1305 787 329 +f 325 1296 785 +f 1296 88 1306 +f 785 1306 330 +f 329 786 1303 +f 786 330 1307 +f 1303 1307 89 +f 90 1308 1309 +f 1308 331 790 +f 1309 790 332 +f 331 1310 788 +f 1310 80 1257 +f 788 1257 305 +f 332 789 1311 +f 789 305 1256 +f 1311 1256 79 +f 79 1304 1311 +f 1304 328 793 +f 1311 793 332 +f 328 1302 791 +f 1302 89 1312 +f 791 1312 333 +f 332 792 1309 +f 792 333 1313 +f 1309 1313 90 +f 91 1314 1315 +f 1314 334 796 +f 1315 796 335 +f 334 1316 794 +f 1316 81 1265 +f 794 1265 309 +f 335 795 1317 +f 795 309 1264 +f 1317 1264 82 +f 82 1318 1317 +f 1318 336 799 +f 1317 799 335 +f 336 1319 797 +f 1319 92 1320 +f 797 1320 337 +f 335 798 1315 +f 798 337 1321 +f 1315 1321 91 +f 93 1322 1323 +f 1322 338 802 +f 1323 802 339 +f 338 1324 800 +f 1324 83 1271 +f 800 1271 312 +f 339 801 1325 +f 801 312 1270 +f 1325 1270 81 +f 81 1316 1325 +f 1316 334 805 +f 1325 805 339 +f 334 1314 803 +f 1314 91 1326 +f 803 1326 340 +f 339 804 1323 +f 804 340 1327 +f 1323 1327 93 +f 94 1328 1329 +f 1328 341 808 +f 1329 808 342 +f 341 1330 806 +f 1330 84 1277 +f 806 1277 315 +f 342 807 1331 +f 807 315 1276 +f 1331 1276 83 +f 83 1324 1331 +f 1324 338 811 +f 1331 811 342 +f 338 1322 809 +f 1322 93 1332 +f 809 1332 343 +f 342 810 1329 +f 810 343 1333 +f 1329 1333 94 +f 95 1334 1335 +f 1334 344 814 +f 1335 814 345 +f 344 1336 812 +f 1336 85 1283 +f 812 1283 318 +f 345 813 1337 +f 813 318 1282 +f 1337 1282 84 +f 84 1330 1337 +f 1330 341 817 +f 1337 817 345 +f 341 1328 815 +f 1328 94 1338 +f 815 1338 346 +f 345 816 1335 +f 816 346 1339 +f 1335 1339 95 +f 96 1340 1341 +f 1340 347 820 +f 1341 820 348 +f 347 1342 818 +f 1342 86 1289 +f 818 1289 321 +f 348 819 1343 +f 819 321 1288 +f 1343 1288 85 +f 85 1336 1343 +f 1336 344 823 +f 1343 823 348 +f 344 1334 821 +f 1334 95 1344 +f 821 1344 349 +f 348 822 1341 +f 822 349 1345 +f 1341 1345 96 +f 97 1346 1347 +f 1346 350 826 +f 1347 826 351 +f 350 1348 824 +f 1348 87 1295 +f 824 1295 324 +f 351 825 1349 +f 825 324 1294 +f 1349 1294 86 +f 86 1342 1349 +f 1342 347 829 +f 1349 829 351 +f 347 1340 827 +f 1340 96 1350 +f 827 1350 352 +f 351 828 1347 +f 828 352 1351 +f 1347 1351 97 +f 98 1352 1353 +f 1352 353 832 +f 1353 832 354 +f 353 1354 830 +f 1354 88 1301 +f 830 1301 327 +f 354 831 1355 +f 831 327 1300 +f 1355 1300 87 +f 87 1348 1355 +f 1348 350 835 +f 1355 835 354 +f 350 1346 833 +f 1346 97 1356 +f 833 1356 355 +f 354 834 1353 +f 834 355 1357 +f 1353 1357 98 +f 99 1358 1359 +f 1358 356 838 +f 1359 838 357 +f 356 1360 836 +f 1360 89 1307 +f 836 1307 330 +f 357 837 1361 +f 837 330 1306 +f 1361 1306 88 +f 88 1354 1361 +f 1354 353 841 +f 1361 841 357 +f 353 1352 839 +f 1352 98 1362 +f 839 1362 358 +f 357 840 1359 +f 840 358 1363 +f 1359 1363 99 +f 100 1364 1365 +f 1364 359 844 +f 1365 844 360 +f 359 1366 842 +f 1366 90 1313 +f 842 1313 333 +f 360 843 1367 +f 843 333 1312 +f 1367 1312 89 +f 89 1360 1367 +f 1360 356 847 +f 1367 847 360 +f 356 1358 845 +f 1358 99 1368 +f 845 1368 361 +f 360 846 1365 +f 846 361 1369 +f 1365 1369 100 +# 2592 faces, 0 coords texture + +# End of File diff --git a/data/sphere.obj b/data/sphere.obj new file mode 100644 index 0000000..66d8c5e --- /dev/null +++ b/data/sphere.obj @@ -0,0 +1,2564 @@ +v 0.199804 0.456491 0.041162 +v 0.199804 0.456491 -0.041162 +v 0.133202 0.481930 0.000000 +v -0.199804 0.456491 -0.041162 +v -0.199804 0.456491 0.041162 +v -0.133202 0.481930 0.000000 +v 0.199804 -0.456491 -0.041162 +v 0.199804 -0.456491 0.041162 +v 0.133202 -0.481930 -0.000000 +v -0.199804 -0.456491 0.041162 +v -0.199804 -0.456491 -0.041162 +v -0.133202 -0.481930 -0.000000 +v 0.456491 -0.041162 -0.199804 +v 0.456491 0.041162 -0.199804 +v 0.481930 0.000000 -0.133202 +v 0.456491 0.041162 0.199804 +v 0.456491 -0.041162 0.199804 +v 0.481930 -0.000000 0.133202 +v -0.456491 -0.041162 0.199804 +v -0.456491 0.041162 0.199804 +v -0.481930 -0.000000 0.133202 +v -0.456491 0.041162 -0.199804 +v -0.456491 -0.041162 -0.199804 +v -0.481930 0.000000 -0.133202 +v -0.041162 -0.199804 0.456491 +v 0.041162 -0.199804 0.456491 +v 0.000000 -0.133203 0.481930 +v 0.041162 0.199803 0.456491 +v -0.041162 0.199803 0.456491 +v 0.000000 0.133202 0.481930 +v -0.041162 0.199804 -0.456491 +v 0.041162 0.199804 -0.456491 +v 0.000000 0.133203 -0.481930 +v 0.041162 -0.199803 -0.456491 +v -0.041162 -0.199803 -0.456491 +v 0.000000 -0.133202 -0.481930 +v 0.323289 0.256687 0.282127 +v 0.282127 0.323289 0.256687 +v 0.256687 0.282127 0.323289 +v -0.323289 0.256687 0.282127 +v -0.256687 0.282127 0.323289 +v -0.282127 0.323289 0.256687 +v 0.323289 0.256687 -0.282127 +v 0.256687 0.282127 -0.323289 +v 0.282127 0.323289 -0.256687 +v -0.323289 0.256687 -0.282127 +v -0.282127 0.323289 -0.256687 +v -0.256687 0.282127 -0.323289 +v 0.323289 -0.256687 0.282127 +v 0.256687 -0.282127 0.323289 +v 0.282127 -0.323289 0.256687 +v -0.323289 -0.256687 0.282127 +v -0.282127 -0.323289 0.256687 +v -0.256687 -0.282127 0.323289 +v 0.323289 -0.256687 -0.282127 +v 0.282127 -0.323289 -0.256687 +v 0.256687 -0.282127 -0.323289 +v -0.323289 -0.256687 -0.282127 +v -0.256687 -0.282127 -0.323289 +v -0.282127 -0.323289 -0.256687 +v 0.066396 0.483196 -0.110058 +v 0.132041 0.458122 -0.150629 +v 0.065827 0.462153 -0.179114 +v 0.065827 0.462153 0.179115 +v 0.132041 0.458122 0.150630 +v 0.066396 0.483196 0.110059 +v 0.310120 0.390102 0.040571 +v 0.355641 0.351454 0.000000 +v 0.310120 0.390102 -0.040571 +v -0.066396 0.483196 0.110059 +v -0.132041 0.458122 0.150630 +v -0.065827 0.462153 0.179115 +v -0.065827 0.462153 -0.179114 +v -0.132041 0.458122 -0.150629 +v -0.066396 0.483196 -0.110058 +v -0.310120 0.390102 -0.040571 +v -0.355641 0.351454 0.000000 +v -0.310120 0.390102 0.040571 +v 0.066396 -0.483196 0.110058 +v 0.132041 -0.458122 0.150629 +v 0.065827 -0.462153 0.179114 +v 0.065827 -0.462153 -0.179115 +v 0.132041 -0.458122 -0.150630 +v 0.066396 -0.483196 -0.110059 +v 0.310120 -0.390102 -0.040571 +v 0.355641 -0.351454 -0.000000 +v 0.310120 -0.390102 0.040571 +v -0.066396 -0.483196 -0.110059 +v -0.132041 -0.458122 -0.150630 +v -0.065827 -0.462153 -0.179115 +v -0.065827 -0.462153 0.179114 +v -0.132041 -0.458122 0.150629 +v -0.066396 -0.483196 0.110058 +v -0.310120 -0.390102 0.040571 +v -0.355641 -0.351454 -0.000000 +v -0.310120 -0.390102 -0.040571 +v 0.483196 0.110059 -0.066396 +v 0.458122 0.150630 -0.132041 +v 0.462153 0.179115 -0.065827 +v 0.462153 -0.179115 -0.065828 +v 0.458122 -0.150630 -0.132041 +v 0.483196 -0.110059 -0.066396 +v 0.390102 -0.040571 -0.310120 +v 0.351454 0.000000 -0.355641 +v 0.390102 0.040571 -0.310120 +v 0.483196 -0.110059 0.066396 +v 0.458122 -0.150630 0.132041 +v 0.462153 -0.179115 0.065827 +v 0.462153 0.179115 0.065828 +v 0.458122 0.150630 0.132041 +v 0.483196 0.110059 0.066396 +v 0.390102 0.040571 0.310120 +v 0.351454 -0.000000 0.355641 +v 0.390102 -0.040571 0.310120 +v -0.483196 0.110059 0.066396 +v -0.458122 0.150630 0.132041 +v -0.462153 0.179115 0.065828 +v -0.462153 -0.179115 0.065827 +v -0.458122 -0.150630 0.132041 +v -0.483196 -0.110059 0.066396 +v -0.390102 -0.040571 0.310120 +v -0.351454 -0.000000 0.355641 +v -0.390102 0.040571 0.310120 +v -0.483196 -0.110059 -0.066396 +v -0.458122 -0.150630 -0.132041 +v -0.462153 -0.179115 -0.065828 +v -0.462153 0.179115 -0.065827 +v -0.458122 0.150630 -0.132041 +v -0.483196 0.110059 -0.066396 +v -0.390102 0.040571 -0.310120 +v -0.351454 0.000000 -0.355641 +v -0.390102 -0.040571 -0.310120 +v 0.110059 -0.066396 0.483196 +v 0.150630 -0.132042 0.458122 +v 0.179115 -0.065828 0.462153 +v -0.179115 -0.065828 0.462153 +v -0.150630 -0.132042 0.458122 +v -0.110059 -0.066396 0.483196 +v -0.040571 -0.310120 0.390102 +v 0.000000 -0.355641 0.351453 +v 0.040571 -0.310120 0.390102 +v -0.110059 0.066396 0.483196 +v -0.150630 0.132041 0.458122 +v -0.179115 0.065827 0.462153 +v 0.179115 0.065827 0.462153 +v 0.150630 0.132041 0.458122 +v 0.110059 0.066396 0.483196 +v 0.040571 0.310120 0.390102 +v 0.000000 0.355641 0.351454 +v -0.040571 0.310120 0.390102 +v 0.110059 0.066396 -0.483196 +v 0.150630 0.132042 -0.458122 +v 0.179115 0.065828 -0.462153 +v -0.179115 0.065828 -0.462153 +v -0.150630 0.132042 -0.458122 +v -0.110059 0.066396 -0.483196 +v -0.040571 0.310120 -0.390102 +v 0.000000 0.355641 -0.351453 +v 0.040571 0.310120 -0.390102 +v -0.110059 -0.066396 -0.483196 +v -0.150630 -0.132041 -0.458122 +v -0.179115 -0.065827 -0.462153 +v 0.179115 -0.065827 -0.462153 +v 0.150630 -0.132041 -0.458122 +v 0.110059 -0.066396 -0.483196 +v 0.040571 -0.310120 -0.390102 +v 0.000000 -0.355641 -0.351454 +v -0.040571 -0.310120 -0.390102 +v 0.148003 0.351155 0.323706 +v 0.173076 0.391726 0.258061 +v 0.106512 0.396324 0.285626 +v 0.285626 0.106511 0.396324 +v 0.323706 0.148002 0.351155 +v 0.258061 0.173076 0.391726 +v 0.391726 0.258061 0.173077 +v 0.396324 0.285626 0.106512 +v 0.351155 0.323706 0.148003 +v -0.173076 0.391726 0.258061 +v -0.148003 0.351155 0.323706 +v -0.106512 0.396324 0.285626 +v -0.396324 0.285626 0.106512 +v -0.391726 0.258061 0.173077 +v -0.351155 0.323706 0.148003 +v -0.323706 0.148002 0.351155 +v -0.285626 0.106511 0.396324 +v -0.258061 0.173076 0.391726 +v 0.173076 0.391726 -0.258061 +v 0.148003 0.351155 -0.323706 +v 0.106512 0.396324 -0.285626 +v 0.396324 0.285626 -0.106511 +v 0.391726 0.258061 -0.173076 +v 0.351155 0.323706 -0.148002 +v 0.323706 0.148003 -0.351155 +v 0.285626 0.106512 -0.396324 +v 0.258061 0.173077 -0.391726 +v -0.148003 0.351155 -0.323706 +v -0.173076 0.391726 -0.258061 +v -0.106512 0.396324 -0.285626 +v -0.285626 0.106512 -0.396324 +v -0.323706 0.148003 -0.351155 +v -0.258061 0.173077 -0.391726 +v -0.391726 0.258061 -0.173076 +v -0.396324 0.285626 -0.106511 +v -0.351155 0.323706 -0.148002 +v 0.173076 -0.391726 0.258061 +v 0.148003 -0.351155 0.323706 +v 0.106512 -0.396324 0.285626 +v 0.396324 -0.285626 0.106511 +v 0.391726 -0.258061 0.173076 +v 0.351155 -0.323706 0.148002 +v 0.323706 -0.148003 0.351155 +v 0.285626 -0.106512 0.396324 +v 0.258061 -0.173077 0.391726 +v -0.148003 -0.351155 0.323706 +v -0.173076 -0.391726 0.258061 +v -0.106512 -0.396324 0.285626 +v -0.285626 -0.106512 0.396324 +v -0.323706 -0.148003 0.351155 +v -0.258061 -0.173077 0.391726 +v -0.391726 -0.258061 0.173076 +v -0.396324 -0.285626 0.106511 +v -0.351155 -0.323706 0.148002 +v 0.148003 -0.351155 -0.323706 +v 0.173076 -0.391726 -0.258061 +v 0.106512 -0.396324 -0.285626 +v 0.285626 -0.106511 -0.396324 +v 0.323706 -0.148002 -0.351155 +v 0.258061 -0.173076 -0.391726 +v 0.391726 -0.258061 -0.173077 +v 0.396324 -0.285626 -0.106512 +v 0.351155 -0.323706 -0.148003 +v -0.173076 -0.391726 -0.258061 +v -0.148003 -0.351155 -0.323706 +v -0.106512 -0.396324 -0.285626 +v -0.396324 -0.285626 -0.106512 +v -0.391726 -0.258061 -0.173077 +v -0.351155 -0.323706 -0.148003 +v -0.323706 -0.148002 -0.351155 +v -0.285626 -0.106511 -0.396324 +v -0.258061 -0.173076 -0.391726 +v 0.066536 0.493844 0.041121 +v 0.066536 0.493844 -0.041121 +v 0.193093 0.445504 0.119339 +v 0.259629 0.420089 0.078217 +v 0.259629 0.420089 -0.078217 +v 0.193093 0.445504 -0.119338 +v -0.066536 0.493844 -0.041121 +v -0.066536 0.493844 0.041121 +v -0.193093 0.445504 -0.119338 +v -0.259629 0.420089 -0.078217 +v -0.259629 0.420089 0.078217 +v -0.193093 0.445504 0.119339 +v 0.066536 -0.493844 -0.041121 +v 0.066536 -0.493844 0.041121 +v 0.193093 -0.445504 -0.119339 +v 0.259629 -0.420089 -0.078217 +v 0.259629 -0.420089 0.078217 +v 0.193093 -0.445504 0.119338 +v -0.066536 -0.493844 0.041121 +v -0.066536 -0.493844 -0.041121 +v -0.193093 -0.445504 0.119338 +v -0.259629 -0.420089 0.078217 +v -0.259629 -0.420089 -0.078217 +v -0.193093 -0.445504 -0.119339 +v 0.493844 -0.041121 -0.066536 +v 0.493844 0.041121 -0.066536 +v 0.445504 -0.119338 -0.193093 +v 0.420089 -0.078217 -0.259629 +v 0.420089 0.078217 -0.259629 +v 0.445504 0.119339 -0.193093 +v 0.493844 0.041121 0.066536 +v 0.493844 -0.041121 0.066536 +v 0.445504 0.119338 0.193093 +v 0.420089 0.078217 0.259629 +v 0.420089 -0.078217 0.259629 +v 0.445504 -0.119339 0.193093 +v -0.493844 -0.041121 0.066536 +v -0.493844 0.041121 0.066536 +v -0.445504 -0.119339 0.193093 +v -0.420089 -0.078217 0.259629 +v -0.420089 0.078217 0.259629 +v -0.445504 0.119338 0.193093 +v -0.493844 0.041121 -0.066536 +v -0.493844 -0.041121 -0.066536 +v -0.445504 0.119339 -0.193093 +v -0.420089 0.078217 -0.259629 +v -0.420089 -0.078217 -0.259629 +v -0.445504 -0.119338 -0.193093 +v -0.041121 -0.066536 0.493844 +v 0.041121 -0.066536 0.493844 +v -0.119338 -0.193094 0.445504 +v -0.078217 -0.259629 0.420089 +v 0.078217 -0.259629 0.420089 +v 0.119338 -0.193094 0.445504 +v 0.041121 0.066535 0.493844 +v -0.041121 0.066535 0.493844 +v 0.119338 0.193093 0.445504 +v 0.078217 0.259629 0.420089 +v -0.078217 0.259629 0.420089 +v -0.119338 0.193093 0.445504 +v -0.041121 0.066536 -0.493844 +v 0.041121 0.066536 -0.493844 +v -0.119338 0.193094 -0.445504 +v -0.078217 0.259629 -0.420089 +v 0.078217 0.259629 -0.420089 +v 0.119338 0.193094 -0.445504 +v 0.041121 -0.066535 -0.493844 +v -0.041121 -0.066535 -0.493844 +v 0.119338 -0.193093 -0.445504 +v 0.078217 -0.259629 -0.420089 +v -0.078217 -0.259629 -0.420089 +v -0.119338 -0.193093 -0.445504 +v 0.226995 0.234215 0.378967 +v 0.185874 0.300750 0.353554 +v 0.353554 0.185874 0.300750 +v 0.378967 0.226995 0.234215 +v 0.300750 0.353554 0.185874 +v 0.234215 0.378967 0.226996 +v -0.300750 0.353554 0.185874 +v -0.234215 0.378967 0.226996 +v -0.378967 0.226995 0.234215 +v -0.353554 0.185874 0.300750 +v -0.226995 0.234215 0.378967 +v -0.185874 0.300750 0.353554 +v 0.300750 0.353554 -0.185874 +v 0.234215 0.378967 -0.226995 +v 0.378967 0.226996 -0.234215 +v 0.353554 0.185874 -0.300750 +v 0.226995 0.234215 -0.378967 +v 0.185874 0.300751 -0.353554 +v -0.226995 0.234215 -0.378967 +v -0.185874 0.300751 -0.353554 +v -0.353554 0.185874 -0.300750 +v -0.378967 0.226996 -0.234215 +v -0.300750 0.353554 -0.185874 +v -0.234215 0.378967 -0.226995 +v 0.300750 -0.353554 0.185874 +v 0.234215 -0.378967 0.226995 +v 0.378967 -0.226996 0.234215 +v 0.353554 -0.185874 0.300750 +v 0.226995 -0.234215 0.378967 +v 0.185874 -0.300751 0.353554 +v -0.226995 -0.234215 0.378967 +v -0.185874 -0.300751 0.353554 +v -0.353554 -0.185874 0.300750 +v -0.378967 -0.226996 0.234215 +v -0.300750 -0.353554 0.185874 +v -0.234215 -0.378967 0.226995 +v 0.226995 -0.234215 -0.378967 +v 0.185874 -0.300750 -0.353554 +v 0.353554 -0.185874 -0.300750 +v 0.378967 -0.226995 -0.234215 +v 0.300750 -0.353554 -0.185874 +v 0.234215 -0.378967 -0.226996 +v -0.300750 -0.353554 -0.185874 +v -0.234215 -0.378967 -0.226996 +v -0.378967 -0.226995 -0.234215 +v -0.353554 -0.185874 -0.300750 +v -0.226995 -0.234215 -0.378967 +v -0.185874 -0.300750 -0.353554 +v 0.000000 0.457521 -0.201677 +v 0.065600 0.432465 -0.242221 +v 0.000000 0.495219 -0.068976 +v 0.191807 0.421955 -0.187519 +v 0.000000 0.495219 0.068976 +v 0.000000 0.457521 0.201678 +v 0.065600 0.432465 0.242221 +v 0.191807 0.421955 0.187520 +v 0.303412 0.379326 -0.118543 +v 0.303412 0.379326 0.118543 +v 0.391921 0.307821 0.040543 +v 0.391921 0.307821 -0.040543 +v -0.065600 0.432465 0.242221 +v -0.191807 0.421955 0.187520 +v -0.065600 0.432465 -0.242221 +v -0.191807 0.421955 -0.187519 +v -0.303412 0.379326 0.118543 +v -0.303412 0.379326 -0.118543 +v -0.391921 0.307821 -0.040543 +v -0.391921 0.307821 0.040543 +v 0.000000 -0.457521 0.201677 +v 0.065600 -0.432465 0.242221 +v 0.000000 -0.495219 0.068976 +v 0.191807 -0.421955 0.187519 +v 0.000000 -0.495219 -0.068976 +v 0.000000 -0.457521 -0.201678 +v 0.065600 -0.432465 -0.242221 +v 0.191807 -0.421955 -0.187520 +v 0.303412 -0.379326 0.118543 +v 0.303412 -0.379326 -0.118543 +v 0.391921 -0.307821 -0.040543 +v 0.391921 -0.307821 0.040543 +v -0.065600 -0.432465 -0.242221 +v -0.191807 -0.421955 -0.187520 +v -0.065600 -0.432465 0.242221 +v -0.191807 -0.421955 0.187519 +v -0.303412 -0.379326 -0.118543 +v -0.303412 -0.379326 0.118543 +v -0.391921 -0.307821 0.040543 +v -0.391921 -0.307821 -0.040543 +v 0.457521 0.201678 0.000000 +v 0.432465 0.242221 -0.065600 +v 0.495219 0.068976 0.000000 +v 0.421955 0.187520 -0.191807 +v 0.495219 -0.068976 -0.000000 +v 0.457521 -0.201678 -0.000000 +v 0.432465 -0.242221 -0.065600 +v 0.421955 -0.187519 -0.191807 +v 0.379326 0.118543 -0.303412 +v 0.379326 -0.118543 -0.303412 +v 0.307821 -0.040543 -0.391921 +v 0.307821 0.040543 -0.391921 +v 0.432465 -0.242221 0.065600 +v 0.421955 -0.187520 0.191807 +v 0.432465 0.242221 0.065600 +v 0.421955 0.187519 0.191807 +v 0.379326 -0.118543 0.303412 +v 0.379326 0.118543 0.303412 +v 0.307821 0.040543 0.391921 +v 0.307821 -0.040543 0.391921 +v -0.457521 0.201678 0.000000 +v -0.432465 0.242221 0.065600 +v -0.495219 0.068976 0.000000 +v -0.421955 0.187519 0.191807 +v -0.495219 -0.068976 -0.000000 +v -0.457521 -0.201678 -0.000000 +v -0.432465 -0.242221 0.065600 +v -0.421955 -0.187520 0.191807 +v -0.379326 0.118543 0.303412 +v -0.379326 -0.118543 0.303412 +v -0.307821 -0.040543 0.391921 +v -0.307821 0.040543 0.391921 +v -0.432465 -0.242221 -0.065600 +v -0.421955 -0.187519 -0.191807 +v -0.432465 0.242221 -0.065600 +v -0.421955 0.187520 -0.191807 +v -0.379326 -0.118543 -0.303412 +v -0.379326 0.118543 -0.303412 +v -0.307821 0.040543 -0.391921 +v -0.307821 -0.040543 -0.391921 +v 0.201678 -0.000000 0.457521 +v 0.242221 -0.065600 0.432465 +v 0.068976 -0.000000 0.495219 +v 0.187520 -0.191807 0.421955 +v -0.068976 -0.000000 0.495219 +v -0.201678 -0.000000 0.457521 +v -0.242221 -0.065600 0.432465 +v -0.187520 -0.191807 0.421955 +v 0.118543 -0.303413 0.379326 +v -0.118543 -0.303413 0.379326 +v -0.040543 -0.391921 0.307821 +v 0.040543 -0.391921 0.307821 +v -0.242221 0.065600 0.432465 +v -0.187520 0.191807 0.421955 +v 0.242221 0.065600 0.432465 +v 0.187520 0.191807 0.421955 +v -0.118543 0.303412 0.379326 +v 0.118543 0.303412 0.379326 +v 0.040543 0.391921 0.307821 +v -0.040543 0.391921 0.307821 +v 0.201678 0.000000 -0.457521 +v 0.242221 0.065600 -0.432465 +v 0.068976 0.000000 -0.495219 +v 0.187520 0.191807 -0.421955 +v -0.068976 0.000000 -0.495219 +v -0.201678 0.000000 -0.457521 +v -0.242221 0.065600 -0.432465 +v -0.187520 0.191807 -0.421955 +v 0.118543 0.303413 -0.379326 +v -0.118543 0.303413 -0.379326 +v -0.040543 0.391921 -0.307821 +v 0.040543 0.391921 -0.307821 +v -0.242221 -0.065600 -0.432465 +v -0.187520 -0.191807 -0.421955 +v 0.242221 -0.065600 -0.432465 +v 0.187520 -0.191807 -0.421955 +v -0.118543 -0.303412 -0.379326 +v 0.118543 -0.303412 -0.379326 +v 0.040543 -0.391921 -0.307821 +v -0.040543 -0.391921 -0.307821 +v 0.131433 0.475529 0.081230 +v 0.262866 0.425326 0.000000 +v 0.131433 0.475529 -0.081230 +v -0.131433 0.475529 -0.081230 +v -0.262866 0.425326 0.000000 +v -0.131433 0.475529 0.081230 +v 0.131433 -0.475529 -0.081230 +v 0.262866 -0.425326 -0.000000 +v 0.131433 -0.475529 0.081230 +v -0.131433 -0.475529 0.081230 +v -0.262866 -0.425326 -0.000000 +v -0.131433 -0.475529 -0.081230 +v 0.475529 -0.081230 -0.131433 +v 0.425326 0.000000 -0.262866 +v 0.475529 0.081230 -0.131433 +v 0.475529 0.081230 0.131433 +v 0.425326 -0.000000 0.262866 +v 0.475529 -0.081230 0.131433 +v -0.475529 -0.081230 0.131433 +v -0.425326 -0.000000 0.262866 +v -0.475529 0.081230 0.131433 +v -0.475529 0.081230 -0.131433 +v -0.425326 0.000000 -0.262866 +v -0.475529 -0.081230 -0.131433 +v -0.081230 -0.131433 0.475529 +v 0.000000 -0.262866 0.425326 +v 0.081230 -0.131433 0.475529 +v 0.081230 0.131433 0.475529 +v 0.000000 0.262865 0.425326 +v -0.081230 0.131433 0.475529 +v -0.081230 0.131433 -0.475529 +v 0.000000 0.262866 -0.425326 +v 0.081230 0.131433 -0.475529 +v 0.081230 -0.131433 -0.475529 +v 0.000000 -0.262865 -0.425326 +v -0.081230 -0.131433 -0.475529 +v 0.293893 0.212662 0.344095 +v 0.344095 0.293893 0.212663 +v 0.212663 0.344095 0.293893 +v -0.344095 0.293893 0.212663 +v -0.293893 0.212662 0.344095 +v -0.212663 0.344095 0.293893 +v 0.344095 0.293893 -0.212662 +v 0.293893 0.212663 -0.344095 +v 0.212663 0.344095 -0.293892 +v -0.293893 0.212663 -0.344095 +v -0.344095 0.293893 -0.212662 +v -0.212663 0.344095 -0.293892 +v 0.344095 -0.293893 0.212662 +v 0.293893 -0.212663 0.344095 +v 0.212663 -0.344095 0.293892 +v -0.293893 -0.212663 0.344095 +v -0.344095 -0.293893 0.212662 +v -0.212663 -0.344095 0.293892 +v 0.293893 -0.212662 -0.344095 +v 0.344095 -0.293893 -0.212663 +v 0.212663 -0.344095 -0.293893 +v -0.344095 -0.293893 -0.212663 +v -0.293893 -0.212662 -0.344095 +v -0.212663 -0.344095 -0.293893 +v 0.000000 0.480969 -0.136633 +v 0.129946 0.431334 -0.216944 +v 0.000000 0.480969 0.136634 +v 0.129946 0.431334 0.216945 +v 0.351023 0.346890 0.080311 +v 0.351023 0.346890 -0.080311 +v -0.129946 0.431334 0.216945 +v -0.129946 0.431334 -0.216944 +v -0.351023 0.346890 -0.080311 +v -0.351023 0.346890 0.080311 +v 0.000000 -0.480969 0.136633 +v 0.129946 -0.431334 0.216944 +v 0.000000 -0.480969 -0.136634 +v 0.129946 -0.431334 -0.216945 +v 0.351023 -0.346890 -0.080311 +v 0.351023 -0.346890 0.080311 +v -0.129946 -0.431334 -0.216945 +v -0.129946 -0.431334 0.216944 +v -0.351023 -0.346890 0.080311 +v -0.351023 -0.346890 -0.080311 +v 0.480969 0.136634 0.000000 +v 0.431334 0.216945 -0.129946 +v 0.480969 -0.136634 -0.000000 +v 0.431334 -0.216945 -0.129946 +v 0.346890 -0.080311 -0.351023 +v 0.346890 0.080311 -0.351023 +v 0.431334 -0.216945 0.129946 +v 0.431334 0.216945 0.129946 +v 0.346890 0.080311 0.351023 +v 0.346890 -0.080311 0.351023 +v -0.480969 0.136634 0.000000 +v -0.431334 0.216945 0.129946 +v -0.480969 -0.136634 -0.000000 +v -0.431334 -0.216945 0.129946 +v -0.346890 -0.080311 0.351023 +v -0.346890 0.080311 0.351023 +v -0.431334 -0.216945 -0.129946 +v -0.431334 0.216945 -0.129946 +v -0.346890 0.080311 -0.351023 +v -0.346890 -0.080311 -0.351023 +v 0.136634 -0.000000 0.480969 +v 0.216945 -0.129946 0.431334 +v -0.136634 -0.000000 0.480969 +v -0.216945 -0.129946 0.431334 +v -0.080311 -0.351023 0.346890 +v 0.080311 -0.351023 0.346890 +v -0.216945 0.129946 0.431334 +v 0.216945 0.129946 0.431334 +v 0.080311 0.351023 0.346890 +v -0.080311 0.351023 0.346890 +v 0.136634 0.000000 -0.480969 +v 0.216945 0.129946 -0.431334 +v -0.136634 0.000000 -0.480969 +v -0.216945 0.129946 -0.431334 +v -0.080311 0.351023 -0.346890 +v 0.080311 0.351023 -0.346890 +v -0.216945 -0.129946 -0.431334 +v 0.216945 -0.129946 -0.431334 +v 0.080311 -0.351023 -0.346890 +v -0.080311 -0.351023 -0.346890 +v 0.000000 0.500000 0.000000 +v 0.250000 0.404509 0.154509 +v 0.250000 0.404509 -0.154508 +v -0.250000 0.404509 -0.154508 +v -0.250000 0.404509 0.154509 +v 0.000000 -0.500000 -0.000000 +v 0.250000 -0.404509 -0.154509 +v 0.250000 -0.404509 0.154508 +v -0.250000 -0.404509 0.154508 +v -0.250000 -0.404509 -0.154509 +v 0.500000 0.000000 0.000000 +v 0.404509 -0.154508 -0.250000 +v 0.404509 0.154509 -0.250000 +v 0.404509 0.154508 0.250000 +v 0.404509 -0.154509 0.250000 +v -0.500000 0.000000 0.000000 +v -0.404509 -0.154509 0.250000 +v -0.404509 0.154508 0.250000 +v -0.404509 0.154509 -0.250000 +v -0.404509 -0.154508 -0.250000 +v 0.000000 -0.000000 0.500000 +v -0.154509 -0.250000 0.404509 +v 0.154509 -0.250000 0.404509 +v 0.154509 0.250000 0.404509 +v -0.154509 0.250000 0.404509 +v 0.000000 0.000000 -0.500000 +v -0.154509 0.250000 -0.404509 +v 0.154509 0.250000 -0.404509 +v 0.154509 -0.250000 -0.404509 +v -0.154509 -0.250000 -0.404509 +v 0.000000 0.425326 -0.262865 +v 0.000000 0.425326 0.262866 +v 0.425326 0.262866 0.000000 +v -0.425326 0.262866 0.000000 +v 0.000000 -0.425326 0.262865 +v 0.000000 -0.425326 -0.262866 +v 0.425326 -0.262866 -0.000000 +v -0.425326 -0.262866 -0.000000 +v 0.262866 0.000000 -0.425326 +v 0.262866 -0.000000 0.425326 +v -0.262866 -0.000000 0.425326 +v -0.262866 0.000000 -0.425326 +vn 0.3980 0.9139 0.0792 +vn 0.3981 0.9139 -0.0792 +vn 0.2698 0.9629 -0.0000 +vn -0.3980 0.9139 -0.0792 +vn -0.3981 0.9139 0.0792 +vn -0.2698 0.9629 0.0000 +vn 0.3980 -0.9139 -0.0792 +vn 0.3981 -0.9139 0.0792 +vn 0.2698 -0.9629 0.0000 +vn -0.3980 -0.9139 0.0792 +vn -0.3981 -0.9139 -0.0792 +vn -0.2698 -0.9629 -0.0000 +vn 0.9139 -0.0792 -0.3980 +vn 0.9139 0.0792 -0.3980 +vn 0.9629 0.0000 -0.2698 +vn 0.9139 0.0792 0.3980 +vn 0.9139 -0.0792 0.3980 +vn 0.9629 -0.0000 0.2698 +vn -0.9139 -0.0792 0.3980 +vn -0.9139 0.0792 0.3980 +vn -0.9629 0.0000 0.2698 +vn -0.9139 0.0792 -0.3980 +vn -0.9139 -0.0792 -0.3980 +vn -0.9629 -0.0000 -0.2698 +vn -0.0792 -0.3981 0.9139 +vn 0.0792 -0.3981 0.9139 +vn 0.0000 -0.2698 0.9629 +vn 0.0792 0.3981 0.9139 +vn -0.0792 0.3981 0.9139 +vn -0.0000 0.2698 0.9629 +vn -0.0792 0.3981 -0.9139 +vn 0.0792 0.3981 -0.9139 +vn 0.0000 0.2698 -0.9629 +vn 0.0792 -0.3981 -0.9139 +vn -0.0792 -0.3981 -0.9139 +vn -0.0000 -0.2698 -0.9629 +vn 0.6441 0.5159 0.5648 +vn 0.5648 0.6441 0.5159 +vn 0.5159 0.5648 0.6441 +vn -0.6441 0.5159 0.5648 +vn -0.5159 0.5648 0.6441 +vn -0.5648 0.6441 0.5159 +vn 0.6441 0.5159 -0.5648 +vn 0.5159 0.5648 -0.6441 +vn 0.5648 0.6441 -0.5159 +vn -0.6441 0.5159 -0.5648 +vn -0.5648 0.6441 -0.5159 +vn -0.5159 0.5648 -0.6441 +vn 0.6441 -0.5159 0.5648 +vn 0.5159 -0.5648 0.6441 +vn 0.5648 -0.6441 0.5159 +vn -0.6441 -0.5159 0.5648 +vn -0.5648 -0.6441 0.5159 +vn -0.5159 -0.5648 0.6441 +vn 0.6441 -0.5159 -0.5648 +vn 0.5648 -0.6441 -0.5159 +vn 0.5159 -0.5648 -0.6441 +vn -0.6441 -0.5159 -0.5648 +vn -0.5159 -0.5648 -0.6441 +vn -0.5648 -0.6441 -0.5159 +vn 0.1339 0.9657 -0.2224 +vn 0.2615 0.9170 -0.3013 +vn 0.1334 0.9250 -0.3558 +vn 0.1334 0.9250 0.3558 +vn 0.2615 0.9170 0.3013 +vn 0.1339 0.9657 0.2224 +vn 0.6214 0.7795 0.0789 +vn 0.7092 0.7050 -0.0000 +vn 0.6214 0.7795 -0.0789 +vn -0.1339 0.9657 0.2224 +vn -0.2615 0.9170 0.3013 +vn -0.1334 0.9250 0.3558 +vn -0.1334 0.9250 -0.3558 +vn -0.2615 0.9170 -0.3013 +vn -0.1339 0.9657 -0.2224 +vn -0.6214 0.7795 -0.0789 +vn -0.7092 0.7050 0.0000 +vn -0.6214 0.7795 0.0789 +vn 0.1339 -0.9657 0.2224 +vn 0.2615 -0.9170 0.3013 +vn 0.1334 -0.9250 0.3558 +vn 0.1334 -0.9250 -0.3558 +vn 0.2615 -0.9170 -0.3013 +vn 0.1339 -0.9657 -0.2224 +vn 0.6214 -0.7795 -0.0789 +vn 0.7092 -0.7050 0.0000 +vn 0.6214 -0.7795 0.0789 +vn -0.1339 -0.9657 -0.2224 +vn -0.2615 -0.9170 -0.3013 +vn -0.1334 -0.9250 -0.3558 +vn -0.1334 -0.9250 0.3558 +vn -0.2615 -0.9170 0.3013 +vn -0.1339 -0.9657 0.2224 +vn -0.6214 -0.7795 0.0789 +vn -0.7092 -0.7050 -0.0000 +vn -0.6214 -0.7795 -0.0789 +vn 0.9657 0.2224 -0.1339 +vn 0.9169 0.3013 -0.2617 +vn 0.9250 0.3558 -0.1334 +vn 0.9250 -0.3558 -0.1334 +vn 0.9169 -0.3013 -0.2617 +vn 0.9657 -0.2224 -0.1339 +vn 0.7795 -0.0789 -0.6214 +vn 0.7050 0.0000 -0.7092 +vn 0.7795 0.0790 -0.6214 +vn 0.9657 -0.2224 0.1339 +vn 0.9169 -0.3013 0.2617 +vn 0.9250 -0.3558 0.1334 +vn 0.9250 0.3558 0.1334 +vn 0.9169 0.3013 0.2617 +vn 0.9657 0.2224 0.1339 +vn 0.7795 0.0789 0.6214 +vn 0.7050 -0.0000 0.7092 +vn 0.7795 -0.0790 0.6214 +vn -0.9657 0.2224 0.1339 +vn -0.9169 0.3013 0.2617 +vn -0.9250 0.3558 0.1334 +vn -0.9250 -0.3558 0.1334 +vn -0.9169 -0.3013 0.2617 +vn -0.9657 -0.2224 0.1339 +vn -0.7795 -0.0789 0.6214 +vn -0.7050 0.0000 0.7092 +vn -0.7795 0.0790 0.6214 +vn -0.9657 -0.2224 -0.1339 +vn -0.9169 -0.3013 -0.2617 +vn -0.9250 -0.3558 -0.1334 +vn -0.9250 0.3558 -0.1334 +vn -0.9169 0.3013 -0.2617 +vn -0.9657 0.2224 -0.1339 +vn -0.7795 0.0789 -0.6214 +vn -0.7050 -0.0000 -0.7092 +vn -0.7795 -0.0790 -0.6214 +vn 0.2224 -0.1339 0.9657 +vn 0.3013 -0.2615 0.9170 +vn 0.3558 -0.1334 0.9250 +vn -0.3558 -0.1334 0.9250 +vn -0.3013 -0.2615 0.9170 +vn -0.2224 -0.1339 0.9657 +vn -0.0789 -0.6214 0.7795 +vn 0.0000 -0.7092 0.7050 +vn 0.0789 -0.6214 0.7795 +vn -0.2224 0.1339 0.9657 +vn -0.3013 0.2615 0.9170 +vn -0.3558 0.1334 0.9250 +vn 0.3558 0.1334 0.9250 +vn 0.3013 0.2615 0.9170 +vn 0.2224 0.1339 0.9657 +vn 0.0789 0.6214 0.7795 +vn -0.0000 0.7092 0.7050 +vn -0.0789 0.6214 0.7795 +vn 0.2224 0.1339 -0.9657 +vn 0.3013 0.2615 -0.9170 +vn 0.3558 0.1334 -0.9250 +vn -0.3558 0.1334 -0.9250 +vn -0.3013 0.2615 -0.9170 +vn -0.2224 0.1339 -0.9657 +vn -0.0789 0.6214 -0.7795 +vn 0.0000 0.7092 -0.7050 +vn 0.0789 0.6214 -0.7795 +vn -0.2224 -0.1339 -0.9657 +vn -0.3013 -0.2615 -0.9170 +vn -0.3558 -0.1334 -0.9250 +vn 0.3558 -0.1334 -0.9250 +vn 0.3013 -0.2615 -0.9170 +vn 0.2224 -0.1339 -0.9657 +vn 0.0789 -0.6214 -0.7795 +vn -0.0000 -0.7092 -0.7050 +vn -0.0789 -0.6214 -0.7795 +vn 0.2955 0.7042 0.6456 +vn 0.3443 0.7831 0.5180 +vn 0.2156 0.7917 0.5716 +vn 0.5716 0.2157 0.7916 +vn 0.6456 0.2955 0.7042 +vn 0.5179 0.3443 0.7831 +vn 0.7831 0.5180 0.3443 +vn 0.7916 0.5717 0.2157 +vn 0.7041 0.6456 0.2955 +vn -0.3443 0.7831 0.5179 +vn -0.2955 0.7042 0.6456 +vn -0.2156 0.7917 0.5716 +vn -0.7917 0.5716 0.2156 +vn -0.7831 0.5179 0.3443 +vn -0.7041 0.6456 0.2955 +vn -0.6456 0.2955 0.7042 +vn -0.5717 0.2157 0.7916 +vn -0.5179 0.3443 0.7831 +vn 0.3443 0.7831 -0.5179 +vn 0.2955 0.7042 -0.6456 +vn 0.2156 0.7917 -0.5716 +vn 0.7917 0.5716 -0.2156 +vn 0.7831 0.5179 -0.3443 +vn 0.7041 0.6456 -0.2955 +vn 0.6456 0.2955 -0.7042 +vn 0.5717 0.2157 -0.7916 +vn 0.5179 0.3443 -0.7831 +vn -0.2955 0.7042 -0.6456 +vn -0.3443 0.7831 -0.5180 +vn -0.2156 0.7917 -0.5716 +vn -0.5716 0.2157 -0.7916 +vn -0.6456 0.2955 -0.7042 +vn -0.5179 0.3443 -0.7831 +vn -0.7831 0.5180 -0.3443 +vn -0.7916 0.5717 -0.2157 +vn -0.7041 0.6456 -0.2955 +vn 0.3443 -0.7831 0.5179 +vn 0.2955 -0.7042 0.6456 +vn 0.2156 -0.7917 0.5716 +vn 0.7917 -0.5716 0.2156 +vn 0.7831 -0.5179 0.3443 +vn 0.7041 -0.6456 0.2955 +vn 0.6456 -0.2955 0.7042 +vn 0.5717 -0.2157 0.7916 +vn 0.5179 -0.3443 0.7831 +vn -0.2955 -0.7042 0.6456 +vn -0.3443 -0.7831 0.5180 +vn -0.2156 -0.7917 0.5716 +vn -0.5716 -0.2157 0.7916 +vn -0.6456 -0.2955 0.7042 +vn -0.5179 -0.3443 0.7831 +vn -0.7831 -0.5180 0.3443 +vn -0.7916 -0.5717 0.2157 +vn -0.7041 -0.6456 0.2955 +vn 0.2955 -0.7042 -0.6456 +vn 0.3443 -0.7831 -0.5180 +vn 0.2156 -0.7917 -0.5716 +vn 0.5716 -0.2157 -0.7916 +vn 0.6456 -0.2955 -0.7042 +vn 0.5179 -0.3443 -0.7831 +vn 0.7831 -0.5180 -0.3443 +vn 0.7916 -0.5717 -0.2157 +vn 0.7041 -0.6456 -0.2955 +vn -0.3443 -0.7831 -0.5179 +vn -0.2955 -0.7042 -0.6456 +vn -0.2156 -0.7917 -0.5716 +vn -0.7917 -0.5716 -0.2156 +vn -0.7831 -0.5179 -0.3443 +vn -0.7041 -0.6456 -0.2955 +vn -0.6456 -0.2955 -0.7042 +vn -0.5717 -0.2157 -0.7916 +vn -0.5179 -0.3443 -0.7831 +vn 0.1376 0.9879 0.0715 +vn 0.1376 0.9879 -0.0715 +vn 0.3935 0.8901 0.2297 +vn 0.5093 0.8459 0.1582 +vn 0.5093 0.8459 -0.1582 +vn 0.3935 0.8901 -0.2297 +vn -0.1376 0.9879 -0.0715 +vn -0.1376 0.9879 0.0715 +vn -0.3935 0.8901 -0.2297 +vn -0.5093 0.8459 -0.1582 +vn -0.5093 0.8459 0.1582 +vn -0.3935 0.8901 0.2297 +vn 0.1376 -0.9879 -0.0715 +vn 0.1376 -0.9879 0.0715 +vn 0.3935 -0.8901 -0.2297 +vn 0.5093 -0.8459 -0.1582 +vn 0.5093 -0.8459 0.1582 +vn 0.3935 -0.8901 0.2297 +vn -0.1376 -0.9879 0.0715 +vn -0.1376 -0.9879 -0.0715 +vn -0.3935 -0.8901 0.2297 +vn -0.5093 -0.8459 0.1582 +vn -0.5093 -0.8459 -0.1582 +vn -0.3935 -0.8901 -0.2297 +vn 0.9879 -0.0715 -0.1376 +vn 0.9879 0.0715 -0.1376 +vn 0.8901 -0.2297 -0.3935 +vn 0.8459 -0.1582 -0.5093 +vn 0.8459 0.1582 -0.5093 +vn 0.8901 0.2297 -0.3935 +vn 0.9879 0.0715 0.1376 +vn 0.9879 -0.0715 0.1376 +vn 0.8901 0.2297 0.3935 +vn 0.8459 0.1582 0.5093 +vn 0.8459 -0.1582 0.5093 +vn 0.8901 -0.2297 0.3935 +vn -0.9879 -0.0715 0.1376 +vn -0.9879 0.0715 0.1376 +vn -0.8901 -0.2297 0.3935 +vn -0.8459 -0.1582 0.5093 +vn -0.8459 0.1582 0.5093 +vn -0.8901 0.2297 0.3935 +vn -0.9879 0.0715 -0.1376 +vn -0.9879 -0.0715 -0.1376 +vn -0.8901 0.2297 -0.3935 +vn -0.8459 0.1582 -0.5093 +vn -0.8459 -0.1582 -0.5093 +vn -0.8901 -0.2297 -0.3935 +vn -0.0715 -0.1376 0.9879 +vn 0.0715 -0.1376 0.9879 +vn -0.2297 -0.3935 0.8901 +vn -0.1582 -0.5093 0.8459 +vn 0.1582 -0.5093 0.8459 +vn 0.2297 -0.3935 0.8901 +vn 0.0715 0.1376 0.9879 +vn -0.0715 0.1376 0.9879 +vn 0.2297 0.3935 0.8901 +vn 0.1582 0.5093 0.8459 +vn -0.1582 0.5093 0.8459 +vn -0.2297 0.3935 0.8901 +vn -0.0715 0.1376 -0.9879 +vn 0.0715 0.1376 -0.9879 +vn -0.2297 0.3935 -0.8901 +vn -0.1582 0.5093 -0.8459 +vn 0.1582 0.5093 -0.8459 +vn 0.2297 0.3935 -0.8901 +vn 0.0715 -0.1376 -0.9879 +vn -0.0715 -0.1376 -0.9879 +vn 0.2297 -0.3935 -0.8901 +vn 0.1582 -0.5093 -0.8459 +vn -0.1582 -0.5093 -0.8459 +vn -0.2297 -0.3935 -0.8901 +vn 0.4524 0.4786 0.7525 +vn 0.3808 0.5944 0.7083 +vn 0.7083 0.3808 0.5944 +vn 0.7525 0.4524 0.4786 +vn 0.5943 0.7083 0.3809 +vn 0.4786 0.7525 0.4524 +vn -0.5944 0.7083 0.3808 +vn -0.4786 0.7525 0.4524 +vn -0.7525 0.4524 0.4786 +vn -0.7083 0.3808 0.5944 +vn -0.4524 0.4786 0.7525 +vn -0.3808 0.5944 0.7083 +vn 0.5944 0.7083 -0.3808 +vn 0.4786 0.7525 -0.4524 +vn 0.7525 0.4524 -0.4786 +vn 0.7083 0.3808 -0.5944 +vn 0.4524 0.4786 -0.7525 +vn 0.3808 0.5944 -0.7083 +vn -0.4524 0.4786 -0.7525 +vn -0.3808 0.5944 -0.7083 +vn -0.7083 0.3808 -0.5944 +vn -0.7525 0.4524 -0.4786 +vn -0.5943 0.7083 -0.3809 +vn -0.4786 0.7525 -0.4524 +vn 0.5944 -0.7083 0.3808 +vn 0.4786 -0.7525 0.4524 +vn 0.7525 -0.4524 0.4786 +vn 0.7083 -0.3808 0.5944 +vn 0.4524 -0.4786 0.7525 +vn 0.3808 -0.5944 0.7083 +vn -0.4524 -0.4786 0.7525 +vn -0.3808 -0.5944 0.7083 +vn -0.7083 -0.3808 0.5944 +vn -0.7525 -0.4524 0.4786 +vn -0.5943 -0.7083 0.3809 +vn -0.4786 -0.7525 0.4524 +vn 0.4524 -0.4786 -0.7525 +vn 0.3808 -0.5944 -0.7083 +vn 0.7083 -0.3808 -0.5944 +vn 0.7525 -0.4524 -0.4786 +vn 0.5943 -0.7083 -0.3809 +vn 0.4786 -0.7525 -0.4524 +vn -0.5944 -0.7083 -0.3808 +vn -0.4786 -0.7525 -0.4524 +vn -0.7525 -0.4524 -0.4786 +vn -0.7083 -0.3808 -0.5944 +vn -0.4524 -0.4786 -0.7525 +vn -0.3808 -0.5944 -0.7083 +vn -0.0000 0.9117 -0.4109 +vn 0.1235 0.8645 -0.4872 +vn -0.0000 0.9897 -0.1429 +vn 0.3793 0.8449 -0.3773 +vn -0.0000 0.9897 0.1429 +vn 0.0000 0.9117 0.4109 +vn 0.1234 0.8645 0.4872 +vn 0.3793 0.8449 0.3773 +vn 0.6105 0.7566 -0.2344 +vn 0.6105 0.7566 0.2344 +vn 0.7883 0.6106 0.0763 +vn 0.7883 0.6106 -0.0763 +vn -0.1235 0.8645 0.4872 +vn -0.3793 0.8449 0.3773 +vn -0.1234 0.8645 -0.4872 +vn -0.3793 0.8449 -0.3773 +vn -0.6105 0.7566 0.2344 +vn -0.6105 0.7566 -0.2344 +vn -0.7883 0.6106 -0.0763 +vn -0.7883 0.6106 0.0763 +vn -0.0000 -0.9117 0.4109 +vn 0.1235 -0.8645 0.4872 +vn -0.0000 -0.9897 0.1429 +vn 0.3793 -0.8449 0.3773 +vn -0.0000 -0.9897 -0.1429 +vn 0.0000 -0.9117 -0.4109 +vn 0.1234 -0.8645 -0.4872 +vn 0.3793 -0.8449 -0.3773 +vn 0.6105 -0.7566 0.2344 +vn 0.6105 -0.7566 -0.2344 +vn 0.7883 -0.6106 -0.0763 +vn 0.7883 -0.6106 0.0763 +vn -0.1235 -0.8645 -0.4872 +vn -0.3793 -0.8449 -0.3773 +vn -0.1234 -0.8645 0.4872 +vn -0.3793 -0.8449 0.3773 +vn -0.6105 -0.7566 -0.2344 +vn -0.6105 -0.7566 0.2344 +vn -0.7883 -0.6106 0.0763 +vn -0.7883 -0.6106 -0.0763 +vn 0.9117 0.4109 0.0000 +vn 0.8645 0.4872 -0.1235 +vn 0.9897 0.1429 0.0000 +vn 0.8449 0.3773 -0.3793 +vn 0.9897 -0.1429 0.0000 +vn 0.9117 -0.4109 -0.0000 +vn 0.8645 -0.4872 -0.1234 +vn 0.8449 -0.3773 -0.3793 +vn 0.7566 0.2344 -0.6104 +vn 0.7566 -0.2344 -0.6105 +vn 0.6106 -0.0763 -0.7883 +vn 0.6106 0.0763 -0.7883 +vn 0.8645 -0.4872 0.1235 +vn 0.8449 -0.3773 0.3793 +vn 0.8645 0.4872 0.1234 +vn 0.8449 0.3773 0.3793 +vn 0.7566 -0.2344 0.6104 +vn 0.7566 0.2344 0.6105 +vn 0.6106 0.0763 0.7883 +vn 0.6106 -0.0763 0.7883 +vn -0.9117 0.4109 -0.0000 +vn -0.8645 0.4872 0.1235 +vn -0.9897 0.1429 -0.0000 +vn -0.8449 0.3773 0.3793 +vn -0.9897 -0.1429 -0.0000 +vn -0.9117 -0.4109 0.0000 +vn -0.8645 -0.4872 0.1234 +vn -0.8449 -0.3773 0.3793 +vn -0.7566 0.2344 0.6104 +vn -0.7566 -0.2344 0.6105 +vn -0.6106 -0.0763 0.7883 +vn -0.6106 0.0763 0.7883 +vn -0.8645 -0.4872 -0.1235 +vn -0.8449 -0.3773 -0.3793 +vn -0.8645 0.4872 -0.1234 +vn -0.8449 0.3773 -0.3793 +vn -0.7566 -0.2344 -0.6104 +vn -0.7566 0.2344 -0.6105 +vn -0.6106 0.0763 -0.7883 +vn -0.6106 -0.0763 -0.7883 +vn 0.4109 0.0000 0.9117 +vn 0.4872 -0.1234 0.8645 +vn 0.1429 0.0000 0.9897 +vn 0.3773 -0.3793 0.8449 +vn -0.1429 0.0000 0.9897 +vn -0.4109 -0.0000 0.9117 +vn -0.4872 -0.1235 0.8645 +vn -0.3773 -0.3793 0.8449 +vn 0.2344 -0.6105 0.7566 +vn -0.2344 -0.6105 0.7566 +vn -0.0763 -0.7883 0.6106 +vn 0.0763 -0.7883 0.6106 +vn -0.4872 0.1234 0.8645 +vn -0.3773 0.3793 0.8449 +vn 0.4872 0.1235 0.8645 +vn 0.3773 0.3793 0.8449 +vn -0.2344 0.6105 0.7566 +vn 0.2344 0.6105 0.7566 +vn 0.0763 0.7883 0.6106 +vn -0.0763 0.7883 0.6106 +vn 0.4109 -0.0000 -0.9117 +vn 0.4872 0.1234 -0.8645 +vn 0.1429 -0.0000 -0.9897 +vn 0.3773 0.3793 -0.8449 +vn -0.1429 -0.0000 -0.9897 +vn -0.4109 0.0000 -0.9117 +vn -0.4872 0.1235 -0.8645 +vn -0.3773 0.3793 -0.8449 +vn 0.2344 0.6105 -0.7566 +vn -0.2344 0.6105 -0.7566 +vn -0.0763 0.7883 -0.6106 +vn 0.0763 0.7883 -0.6106 +vn -0.4872 -0.1234 -0.8645 +vn -0.3773 -0.3793 -0.8449 +vn 0.4872 -0.1235 -0.8645 +vn 0.3773 -0.3793 -0.8449 +vn -0.2344 -0.6105 -0.7566 +vn 0.2344 -0.6105 -0.7566 +vn 0.0763 -0.7883 -0.6106 +vn -0.0763 -0.7883 -0.6106 +vn 0.2691 0.9510 0.1524 +vn 0.5157 0.8568 -0.0000 +vn 0.2691 0.9510 -0.1524 +vn -0.2691 0.9510 -0.1524 +vn -0.5157 0.8568 0.0000 +vn -0.2691 0.9510 0.1524 +vn 0.2691 -0.9510 -0.1524 +vn 0.5157 -0.8568 0.0000 +vn 0.2691 -0.9510 0.1524 +vn -0.2691 -0.9510 0.1524 +vn -0.5157 -0.8568 -0.0000 +vn -0.2691 -0.9510 -0.1524 +vn 0.9510 -0.1524 -0.2691 +vn 0.8568 0.0000 -0.5157 +vn 0.9510 0.1524 -0.2691 +vn 0.9510 0.1524 0.2691 +vn 0.8568 -0.0000 0.5157 +vn 0.9510 -0.1524 0.2691 +vn -0.9510 -0.1524 0.2691 +vn -0.8568 0.0000 0.5157 +vn -0.9510 0.1524 0.2691 +vn -0.9510 0.1524 -0.2691 +vn -0.8568 -0.0000 -0.5157 +vn -0.9510 -0.1524 -0.2691 +vn -0.1524 -0.2691 0.9510 +vn 0.0000 -0.5157 0.8568 +vn 0.1524 -0.2691 0.9510 +vn 0.1524 0.2691 0.9510 +vn -0.0000 0.5157 0.8568 +vn -0.1524 0.2691 0.9510 +vn -0.1524 0.2691 -0.9510 +vn 0.0000 0.5157 -0.8568 +vn 0.1524 0.2691 -0.9510 +vn 0.1524 -0.2691 -0.9510 +vn -0.0000 -0.5157 -0.8568 +vn -0.1524 -0.2691 -0.9510 +vn 0.5877 0.4353 0.6819 +vn 0.6819 0.5877 0.4353 +vn 0.4353 0.6819 0.5877 +vn -0.6819 0.5877 0.4353 +vn -0.5877 0.4353 0.6819 +vn -0.4353 0.6819 0.5877 +vn 0.6819 0.5877 -0.4353 +vn 0.5877 0.4353 -0.6819 +vn 0.4353 0.6819 -0.5877 +vn -0.5877 0.4353 -0.6819 +vn -0.6819 0.5877 -0.4353 +vn -0.4353 0.6819 -0.5877 +vn 0.6819 -0.5877 0.4353 +vn 0.5877 -0.4353 0.6819 +vn 0.4353 -0.6819 0.5877 +vn -0.5877 -0.4353 0.6819 +vn -0.6819 -0.5877 0.4353 +vn -0.4353 -0.6819 0.5877 +vn 0.5877 -0.4353 -0.6819 +vn 0.6819 -0.5877 -0.4353 +vn 0.4353 -0.6819 -0.5877 +vn -0.6819 -0.5877 -0.4353 +vn -0.5877 -0.4353 -0.6819 +vn -0.4353 -0.6819 -0.5877 +vn -0.0000 0.9601 -0.2796 +vn 0.2539 0.8631 -0.4365 +vn 0.0000 0.9601 0.2796 +vn 0.2539 0.8631 0.4365 +vn 0.7062 0.6904 0.1569 +vn 0.7062 0.6904 -0.1569 +vn -0.2539 0.8631 0.4365 +vn -0.2539 0.8631 -0.4365 +vn -0.7062 0.6904 -0.1569 +vn -0.7062 0.6904 0.1569 +vn -0.0000 -0.9601 0.2796 +vn 0.2539 -0.8631 0.4365 +vn 0.0000 -0.9601 -0.2796 +vn 0.2539 -0.8631 -0.4365 +vn 0.7062 -0.6904 -0.1569 +vn 0.7062 -0.6904 0.1569 +vn -0.2539 -0.8631 -0.4365 +vn -0.2539 -0.8631 0.4365 +vn -0.7062 -0.6904 0.1569 +vn -0.7062 -0.6904 -0.1569 +vn 0.9601 0.2796 0.0000 +vn 0.8631 0.4365 -0.2539 +vn 0.9601 -0.2796 -0.0000 +vn 0.8631 -0.4365 -0.2539 +vn 0.6904 -0.1569 -0.7062 +vn 0.6904 0.1569 -0.7062 +vn 0.8631 -0.4365 0.2539 +vn 0.8631 0.4365 0.2539 +vn 0.6904 0.1569 0.7062 +vn 0.6904 -0.1569 0.7062 +vn -0.9601 0.2796 -0.0000 +vn -0.8631 0.4365 0.2539 +vn -0.9601 -0.2796 0.0000 +vn -0.8631 -0.4365 0.2539 +vn -0.6904 -0.1569 0.7062 +vn -0.6904 0.1569 0.7062 +vn -0.8631 -0.4365 -0.2539 +vn -0.8631 0.4365 -0.2539 +vn -0.6904 0.1569 -0.7062 +vn -0.6904 -0.1569 -0.7062 +vn 0.2796 0.0000 0.9601 +vn 0.4365 -0.2539 0.8631 +vn -0.2796 -0.0000 0.9601 +vn -0.4365 -0.2539 0.8631 +vn -0.1569 -0.7062 0.6904 +vn 0.1569 -0.7062 0.6904 +vn -0.4365 0.2539 0.8631 +vn 0.4365 0.2539 0.8631 +vn 0.1569 0.7062 0.6904 +vn -0.1569 0.7062 0.6904 +vn 0.2796 -0.0000 -0.9601 +vn 0.4365 0.2539 -0.8631 +vn -0.2796 0.0000 -0.9601 +vn -0.4365 0.2539 -0.8631 +vn -0.1569 0.7062 -0.6904 +vn 0.1569 0.7062 -0.6904 +vn -0.4365 -0.2539 -0.8631 +vn 0.4365 -0.2539 -0.8631 +vn 0.1569 -0.7062 -0.6904 +vn -0.1569 -0.7062 -0.6904 +vn 0.0000 1.0000 0.0000 +vn 0.5000 0.8090 0.3090 +vn 0.5000 0.8090 -0.3090 +vn -0.5000 0.8090 -0.3090 +vn -0.5000 0.8090 0.3090 +vn 0.0000 -1.0000 0.0000 +vn 0.5000 -0.8090 -0.3090 +vn 0.5000 -0.8090 0.3090 +vn -0.5000 -0.8090 0.3090 +vn -0.5000 -0.8090 -0.3090 +vn 1.0000 0.0000 0.0000 +vn 0.8090 -0.3090 -0.5000 +vn 0.8090 0.3090 -0.5000 +vn 0.8090 0.3090 0.5000 +vn 0.8090 -0.3090 0.5000 +vn -1.0000 0.0000 0.0000 +vn -0.8090 -0.3090 0.5000 +vn -0.8090 0.3090 0.5000 +vn -0.8090 0.3090 -0.5000 +vn -0.8090 -0.3090 -0.5000 +vn 0.0000 0.0000 1.0000 +vn -0.3090 -0.5000 0.8090 +vn 0.3090 -0.5000 0.8090 +vn 0.3090 0.5000 0.8090 +vn -0.3090 0.5000 0.8090 +vn 0.0000 0.0000 -1.0000 +vn -0.3090 0.5000 -0.8090 +vn 0.3090 0.5000 -0.8090 +vn 0.3090 -0.5000 -0.8090 +vn -0.3090 -0.5000 -0.8090 +vn 0.0000 0.8507 -0.5257 +vn 0.0000 0.8507 0.5257 +vn 0.8507 0.5257 -0.0000 +vn -0.8507 0.5257 0.0000 +vn 0.0000 -0.8507 0.5257 +vn 0.0000 -0.8507 -0.5257 +vn 0.8507 -0.5257 0.0000 +vn -0.8507 -0.5257 -0.0000 +vn 0.5257 0.0000 -0.8507 +vn 0.5257 -0.0000 0.8507 +vn -0.5257 0.0000 0.8507 +vn -0.5257 -0.0000 -0.8507 +f 1//1 2//2 3//3 +f 4//4 5//5 6//6 +f 7//7 8//8 9//9 +f 10//10 11//11 12//12 +f 13//13 14//14 15//15 +f 16//16 17//17 18//18 +f 19//19 20//20 21//21 +f 22//22 23//23 24//24 +f 25//25 26//26 27//27 +f 28//28 29//29 30//30 +f 31//31 32//32 33//33 +f 34//34 35//35 36//36 +f 37//37 38//38 39//39 +f 40//40 41//41 42//42 +f 43//43 44//44 45//45 +f 46//46 47//47 48//48 +f 49//49 50//50 51//51 +f 52//52 53//53 54//54 +f 55//55 56//56 57//57 +f 58//58 59//59 60//60 +f 61//61 62//62 63//63 +f 64//64 65//65 66//66 +f 67//67 68//68 69//69 +f 70//70 71//71 72//72 +f 73//73 74//74 75//75 +f 76//76 77//77 78//78 +f 79//79 80//80 81//81 +f 82//82 83//83 84//84 +f 85//85 86//86 87//87 +f 88//88 89//89 90//90 +f 91//91 92//92 93//93 +f 94//94 95//95 96//96 +f 97//97 98//98 99//99 +f 100//100 101//101 102//102 +f 103//103 104//104 105//105 +f 106//106 107//107 108//108 +f 109//109 110//110 111//111 +f 112//112 113//113 114//114 +f 115//115 116//116 117//117 +f 118//118 119//119 120//120 +f 121//121 122//122 123//123 +f 124//124 125//125 126//126 +f 127//127 128//128 129//129 +f 130//130 131//131 132//132 +f 133//133 134//134 135//135 +f 136//136 137//137 138//138 +f 139//139 140//140 141//141 +f 142//142 143//143 144//144 +f 145//145 146//146 147//147 +f 148//148 149//149 150//150 +f 151//151 152//152 153//153 +f 154//154 155//155 156//156 +f 157//157 158//158 159//159 +f 160//160 161//161 162//162 +f 163//163 164//164 165//165 +f 166//166 167//167 168//168 +f 169//169 170//170 171//171 +f 172//172 173//173 174//174 +f 175//175 176//176 177//177 +f 178//178 179//179 180//180 +f 181//181 182//182 183//183 +f 184//184 185//185 186//186 +f 187//187 188//188 189//189 +f 190//190 191//191 192//192 +f 193//193 194//194 195//195 +f 196//196 197//197 198//198 +f 199//199 200//200 201//201 +f 202//202 203//203 204//204 +f 205//205 206//206 207//207 +f 208//208 209//209 210//210 +f 211//211 212//212 213//213 +f 214//214 215//215 216//216 +f 217//217 218//218 219//219 +f 220//220 221//221 222//222 +f 223//223 224//224 225//225 +f 226//226 227//227 228//228 +f 229//229 230//230 231//231 +f 232//232 233//233 234//234 +f 235//235 236//236 237//237 +f 238//238 239//239 240//240 +f 241//241 3//3 242//242 +f 243//243 244//244 1//1 +f 2//2 245//245 246//246 +f 247//247 6//6 248//248 +f 249//249 250//250 4//4 +f 5//5 251//251 252//252 +f 253//253 9//9 254//254 +f 255//255 256//256 7//7 +f 8//8 257//257 258//258 +f 259//259 12//12 260//260 +f 261//261 262//262 10//10 +f 11//11 263//263 264//264 +f 265//265 15//15 266//266 +f 267//267 268//268 13//13 +f 14//14 269//269 270//270 +f 271//271 18//18 272//272 +f 273//273 274//274 16//16 +f 17//17 275//275 276//276 +f 277//277 21//21 278//278 +f 279//279 280//280 19//19 +f 20//20 281//281 282//282 +f 283//283 24//24 284//284 +f 285//285 286//286 22//22 +f 23//23 287//287 288//288 +f 289//289 27//27 290//290 +f 291//291 292//292 25//25 +f 26//26 293//293 294//294 +f 295//295 30//30 296//296 +f 297//297 298//298 28//28 +f 29//29 299//299 300//300 +f 301//301 33//33 302//302 +f 303//303 304//304 31//31 +f 32//32 305//305 306//306 +f 307//307 36//36 308//308 +f 309//309 310//310 34//34 +f 35//35 311//311 312//312 +f 313//313 39//39 314//314 +f 315//315 316//316 37//37 +f 38//38 317//317 318//318 +f 319//319 42//42 320//320 +f 321//321 322//322 40//40 +f 41//41 323//323 324//324 +f 325//325 45//45 326//326 +f 327//327 328//328 43//43 +f 44//44 329//329 330//330 +f 331//331 48//48 332//332 +f 333//333 334//334 46//46 +f 47//47 335//335 336//336 +f 337//337 51//51 338//338 +f 339//339 340//340 49//49 +f 50//50 341//341 342//342 +f 343//343 54//54 344//344 +f 345//345 346//346 52//52 +f 53//53 347//347 348//348 +f 349//349 57//57 350//350 +f 351//351 352//352 55//55 +f 56//56 353//353 354//354 +f 355//355 60//60 356//356 +f 357//357 358//358 58//58 +f 59//59 359//359 360//360 +f 361//361 63//63 362//362 +f 363//363 242//242 61//61 +f 62//62 246//246 364//364 +f 365//365 66//66 241//241 +f 366//366 367//367 64//64 +f 65//65 368//368 243//243 +f 245//245 69//69 369//369 +f 244//244 370//370 67//67 +f 68//68 371//371 372//372 +f 366//366 72//72 373//373 +f 365//365 248//248 70//70 +f 71//71 252//252 374//374 +f 363//363 75//75 247//247 +f 361//361 375//375 73//73 +f 74//74 376//376 249//249 +f 251//251 78//78 377//377 +f 250//250 378//378 76//76 +f 77//77 379//379 380//380 +f 381//381 81//81 382//382 +f 383//383 254//254 79//79 +f 80//80 258//258 384//384 +f 385//385 84//84 253//253 +f 386//386 387//387 82//82 +f 83//83 388//388 255//255 +f 257//257 87//87 389//389 +f 256//256 390//390 85//85 +f 86//86 391//391 392//392 +f 386//386 90//90 393//393 +f 385//385 260//260 88//88 +f 89//89 264//264 394//394 +f 383//383 93//93 259//259 +f 381//381 395//395 91//91 +f 92//92 396//396 261//261 +f 263//263 96//96 397//397 +f 262//262 398//398 94//94 +f 95//95 399//399 400//400 +f 401//401 99//99 402//402 +f 403//403 266//266 97//97 +f 98//98 270//270 404//404 +f 405//405 102//102 265//265 +f 406//406 407//407 100//100 +f 101//101 408//408 267//267 +f 269//269 105//105 409//409 +f 268//268 410//410 103//103 +f 104//104 411//411 412//412 +f 406//406 108//108 413//413 +f 405//405 272//272 106//106 +f 107//107 276//276 414//414 +f 403//403 111//111 271//271 +f 401//401 415//415 109//109 +f 110//110 416//416 273//273 +f 275//275 114//114 417//417 +f 274//274 418//418 112//112 +f 113//113 419//419 420//420 +f 421//421 117//117 422//422 +f 423//423 278//278 115//115 +f 116//116 282//282 424//424 +f 425//425 120//120 277//277 +f 426//426 427//427 118//118 +f 119//119 428//428 279//279 +f 281//281 123//123 429//429 +f 280//280 430//430 121//121 +f 122//122 431//431 432//432 +f 426//426 126//126 433//433 +f 425//425 284//284 124//124 +f 125//125 288//288 434//434 +f 423//423 129//129 283//283 +f 421//421 435//435 127//127 +f 128//128 436//436 285//285 +f 287//287 132//132 437//437 +f 286//286 438//438 130//130 +f 131//131 439//439 440//440 +f 441//441 135//135 442//442 +f 443//443 290//290 133//133 +f 134//134 294//294 444//444 +f 445//445 138//138 289//289 +f 446//446 447//447 136//136 +f 137//137 448//448 291//291 +f 293//293 141//141 449//449 +f 292//292 450//450 139//139 +f 140//140 451//451 452//452 +f 446//446 144//144 453//453 +f 445//445 296//296 142//142 +f 143//143 300//300 454//454 +f 443//443 147//147 295//295 +f 441//441 455//455 145//145 +f 146//146 456//456 297//297 +f 299//299 150//150 457//457 +f 298//298 458//458 148//148 +f 149//149 459//459 460//460 +f 461//461 153//153 462//462 +f 463//463 302//302 151//151 +f 152//152 306//306 464//464 +f 465//465 156//156 301//301 +f 466//466 467//467 154//154 +f 155//155 468//468 303//303 +f 305//305 159//159 469//469 +f 304//304 470//470 157//157 +f 158//158 471//471 472//472 +f 466//466 162//162 473//473 +f 465//465 308//308 160//160 +f 161//161 312//312 474//474 +f 463//463 165//165 307//307 +f 461//461 475//475 163//163 +f 164//164 476//476 309//309 +f 311//311 168//168 477//477 +f 310//310 478//478 166//166 +f 167//167 479//479 480//480 +f 459//459 171//171 367//367 +f 458//458 314//314 169//169 +f 170//170 318//318 368//368 +f 456//456 174//174 313//313 +f 455//455 419//419 172//172 +f 173//173 418//418 315//315 +f 317//317 177//177 370//370 +f 316//316 416//416 175//175 +f 176//176 415//415 371//371 +f 373//373 180//180 460//460 +f 374//374 320//320 178//178 +f 179//179 324//324 457//457 +f 377//377 183//183 319//319 +f 380//380 422//422 181//181 +f 182//182 424//424 321//321 +f 323//323 186//186 454//454 +f 322//322 429//429 184//184 +f 185//185 432//432 453//453 +f 362//362 189//189 472//472 +f 364//364 326//326 187//187 +f 188//188 330//330 469//469 +f 369//369 192//192 325//325 +f 372//372 402//402 190//190 +f 191//191 404//404 327//327 +f 329//329 195//195 464//464 +f 328//328 409//409 193//193 +f 194//194 412//412 462//462 +f 471//471 198//198 375//375 +f 470//470 332//332 196//196 +f 197//197 336//336 376//376 +f 468//468 201//201 331//331 +f 467//467 439//439 199//199 +f 200//200 438//438 333//333 +f 335//335 204//204 378//378 +f 334//334 436//436 202//202 +f 203//203 435//435 379//379 +f 382//382 207//207 452//452 +f 384//384 338//338 205//205 +f 206//206 342//342 449//449 +f 389//389 210//210 337//337 +f 392//392 413//413 208//208 +f 209//209 414//414 339//339 +f 341//341 213//213 444//444 +f 340//340 417//417 211//211 +f 212//212 420//420 442//442 +f 451//451 216//216 395//395 +f 450//450 344//344 214//214 +f 215//215 348//348 396//396 +f 448//448 219//219 343//343 +f 447//447 431//431 217//217 +f 218//218 430//430 345//345 +f 347//347 222//222 398//398 +f 346//346 428//428 220//220 +f 221//221 427//427 399//399 +f 479//479 225//225 387//387 +f 478//478 350//350 223//223 +f 224//224 354//354 388//388 +f 476//476 228//228 349//349 +f 475//475 411//411 226//226 +f 227//227 410//410 351//351 +f 353//353 231//231 390//390 +f 352//352 408//408 229//229 +f 230//230 407//407 391//391 +f 393//393 234//234 480//480 +f 394//394 356//356 232//232 +f 233//233 360//360 477//477 +f 397//397 237//237 355//355 +f 400//400 433//433 235//235 +f 236//236 434//434 357//357 +f 359//359 240//240 474//474 +f 358//358 437//437 238//238 +f 239//239 440//440 473//473 +f 481//481 1//1 3//3 +f 1//1 482//482 2//2 +f 3//3 2//2 483//483 +f 484//484 4//4 6//6 +f 4//4 485//485 5//5 +f 6//6 5//5 486//486 +f 487//487 7//7 9//9 +f 7//7 488//488 8//8 +f 9//9 8//8 489//489 +f 490//490 10//10 12//12 +f 10//10 491//491 11//11 +f 12//12 11//11 492//492 +f 493//493 13//13 15//15 +f 13//13 494//494 14//14 +f 15//15 14//14 495//495 +f 496//496 16//16 18//18 +f 16//16 497//497 17//17 +f 18//18 17//17 498//498 +f 499//499 19//19 21//21 +f 19//19 500//500 20//20 +f 21//21 20//20 501//501 +f 502//502 22//22 24//24 +f 22//22 503//503 23//23 +f 24//24 23//23 504//504 +f 505//505 25//25 27//27 +f 25//25 506//506 26//26 +f 27//27 26//26 507//507 +f 508//508 28//28 30//30 +f 28//28 509//509 29//29 +f 30//30 29//29 510//510 +f 511//511 31//31 33//33 +f 31//31 512//512 32//32 +f 33//33 32//32 513//513 +f 514//514 34//34 36//36 +f 34//34 515//515 35//35 +f 36//36 35//35 516//516 +f 517//517 37//37 39//39 +f 37//37 518//518 38//38 +f 39//39 38//38 519//519 +f 520//520 40//40 42//42 +f 40//40 521//521 41//41 +f 42//42 41//41 522//522 +f 523//523 43//43 45//45 +f 43//43 524//524 44//44 +f 45//45 44//44 525//525 +f 526//526 46//46 48//48 +f 46//46 527//527 47//47 +f 48//48 47//47 528//528 +f 529//529 49//49 51//51 +f 49//49 530//530 50//50 +f 51//51 50//50 531//531 +f 532//532 52//52 54//54 +f 52//52 533//533 53//53 +f 54//54 53//53 534//534 +f 535//535 55//55 57//57 +f 55//55 536//536 56//56 +f 57//57 56//56 537//537 +f 538//538 58//58 60//60 +f 58//58 539//539 59//59 +f 60//60 59//59 540//540 +f 541//541 61//61 63//63 +f 61//61 483//483 62//62 +f 63//63 62//62 542//542 +f 543//543 64//64 66//66 +f 64//64 544//544 65//65 +f 66//66 65//65 481//481 +f 482//482 67//67 69//69 +f 67//67 545//545 68//68 +f 69//69 68//68 546//546 +f 543//543 70//70 72//72 +f 70//70 486//486 71//71 +f 72//72 71//71 547//547 +f 541//541 73//73 75//75 +f 73//73 548//548 74//74 +f 75//75 74//74 484//484 +f 485//485 76//76 78//78 +f 76//76 549//549 77//77 +f 78//78 77//77 550//550 +f 551//551 79//79 81//81 +f 79//79 489//489 80//80 +f 81//81 80//80 552//552 +f 553//553 82//82 84//84 +f 82//82 554//554 83//83 +f 84//84 83//83 487//487 +f 488//488 85//85 87//87 +f 85//85 555//555 86//86 +f 87//87 86//86 556//556 +f 553//553 88//88 90//90 +f 88//88 492//492 89//89 +f 90//90 89//89 557//557 +f 551//551 91//91 93//93 +f 91//91 558//558 92//92 +f 93//93 92//92 490//490 +f 491//491 94//94 96//96 +f 94//94 559//559 95//95 +f 96//96 95//95 560//560 +f 561//561 97//97 99//99 +f 97//97 495//495 98//98 +f 99//99 98//98 562//562 +f 563//563 100//100 102//102 +f 100//100 564//564 101//101 +f 102//102 101//101 493//493 +f 494//494 103//103 105//105 +f 103//103 565//565 104//104 +f 105//105 104//104 566//566 +f 563//563 106//106 108//108 +f 106//106 498//498 107//107 +f 108//108 107//107 567//567 +f 561//561 109//109 111//111 +f 109//109 568//568 110//110 +f 111//111 110//110 496//496 +f 497//497 112//112 114//114 +f 112//112 569//569 113//113 +f 114//114 113//113 570//570 +f 571//571 115//115 117//117 +f 115//115 501//501 116//116 +f 117//117 116//116 572//572 +f 573//573 118//118 120//120 +f 118//118 574//574 119//119 +f 120//120 119//119 499//499 +f 500//500 121//121 123//123 +f 121//121 575//575 122//122 +f 123//123 122//122 576//576 +f 573//573 124//124 126//126 +f 124//124 504//504 125//125 +f 126//126 125//125 577//577 +f 571//571 127//127 129//129 +f 127//127 578//578 128//128 +f 129//129 128//128 502//502 +f 503//503 130//130 132//132 +f 130//130 579//579 131//131 +f 132//132 131//131 580//580 +f 581//581 133//133 135//135 +f 133//133 507//507 134//134 +f 135//135 134//134 582//582 +f 583//583 136//136 138//138 +f 136//136 584//584 137//137 +f 138//138 137//137 505//505 +f 506//506 139//139 141//141 +f 139//139 585//585 140//140 +f 141//141 140//140 586//586 +f 583//583 142//142 144//144 +f 142//142 510//510 143//143 +f 144//144 143//143 587//587 +f 581//581 145//145 147//147 +f 145//145 588//588 146//146 +f 147//147 146//146 508//508 +f 509//509 148//148 150//150 +f 148//148 589//589 149//149 +f 150//150 149//149 590//590 +f 591//591 151//151 153//153 +f 151//151 513//513 152//152 +f 153//153 152//152 592//592 +f 593//593 154//154 156//156 +f 154//154 594//594 155//155 +f 156//156 155//155 511//511 +f 512//512 157//157 159//159 +f 157//157 595//595 158//158 +f 159//159 158//158 596//596 +f 593//593 160//160 162//162 +f 160//160 516//516 161//161 +f 162//162 161//161 597//597 +f 591//591 163//163 165//165 +f 163//163 598//598 164//164 +f 165//165 164//164 514//514 +f 515//515 166//166 168//168 +f 166//166 599//599 167//167 +f 168//168 167//167 600//600 +f 589//589 169//169 171//171 +f 169//169 519//519 170//170 +f 171//171 170//170 544//544 +f 588//588 172//172 174//174 +f 172//172 569//569 173//173 +f 174//174 173//173 517//517 +f 518//518 175//175 177//177 +f 175//175 568//568 176//176 +f 177//177 176//176 545//545 +f 547//547 178//178 180//180 +f 178//178 522//522 179//179 +f 180//180 179//179 590//590 +f 550//550 181//181 183//183 +f 181//181 572//572 182//182 +f 183//183 182//182 520//520 +f 521//521 184//184 186//186 +f 184//184 576//576 185//185 +f 186//186 185//185 587//587 +f 542//542 187//187 189//189 +f 187//187 525//525 188//188 +f 189//189 188//188 596//596 +f 546//546 190//190 192//192 +f 190//190 562//562 191//191 +f 192//192 191//191 523//523 +f 524//524 193//193 195//195 +f 193//193 566//566 194//194 +f 195//195 194//194 592//592 +f 595//595 196//196 198//198 +f 196//196 528//528 197//197 +f 198//198 197//197 548//548 +f 594//594 199//199 201//201 +f 199//199 579//579 200//200 +f 201//201 200//200 526//526 +f 527//527 202//202 204//204 +f 202//202 578//578 203//203 +f 204//204 203//203 549//549 +f 552//552 205//205 207//207 +f 205//205 531//531 206//206 +f 207//207 206//206 586//586 +f 556//556 208//208 210//210 +f 208//208 567//567 209//209 +f 210//210 209//209 529//529 +f 530//530 211//211 213//213 +f 211//211 570//570 212//212 +f 213//213 212//212 582//582 +f 585//585 214//214 216//216 +f 214//214 534//534 215//215 +f 216//216 215//215 558//558 +f 584//584 217//217 219//219 +f 217//217 575//575 218//218 +f 219//219 218//218 532//532 +f 533//533 220//220 222//222 +f 220//220 574//574 221//221 +f 222//222 221//221 559//559 +f 599//599 223//223 225//225 +f 223//223 537//537 224//224 +f 225//225 224//224 554//554 +f 598//598 226//226 228//228 +f 226//226 565//565 227//227 +f 228//228 227//227 535//535 +f 536//536 229//229 231//231 +f 229//229 564//564 230//230 +f 231//231 230//230 555//555 +f 557//557 232//232 234//234 +f 232//232 540//540 233//233 +f 234//234 233//233 600//600 +f 560//560 235//235 237//237 +f 235//235 577//577 236//236 +f 237//237 236//236 538//538 +f 539//539 238//238 240//240 +f 238//238 580//580 239//239 +f 240//240 239//239 597//597 +f 601//601 241//241 242//242 +f 241//241 481//481 3//3 +f 242//242 3//3 483//483 +f 481//481 243//243 1//1 +f 243//243 602//602 244//244 +f 1//1 244//244 482//482 +f 483//483 2//2 246//246 +f 2//2 482//482 245//245 +f 246//246 245//245 603//603 +f 601//601 247//247 248//248 +f 247//247 484//484 6//6 +f 248//248 6//6 486//486 +f 484//484 249//249 4//4 +f 249//249 604//604 250//250 +f 4//4 250//250 485//485 +f 486//486 5//5 252//252 +f 5//5 485//485 251//251 +f 252//252 251//251 605//605 +f 606//606 253//253 254//254 +f 253//253 487//487 9//9 +f 254//254 9//9 489//489 +f 487//487 255//255 7//7 +f 255//255 607//607 256//256 +f 7//7 256//256 488//488 +f 489//489 8//8 258//258 +f 8//8 488//488 257//257 +f 258//258 257//257 608//608 +f 606//606 259//259 260//260 +f 259//259 490//490 12//12 +f 260//260 12//12 492//492 +f 490//490 261//261 10//10 +f 261//261 609//609 262//262 +f 10//10 262//262 491//491 +f 492//492 11//11 264//264 +f 11//11 491//491 263//263 +f 264//264 263//263 610//610 +f 611//611 265//265 266//266 +f 265//265 493//493 15//15 +f 266//266 15//15 495//495 +f 493//493 267//267 13//13 +f 267//267 612//612 268//268 +f 13//13 268//268 494//494 +f 495//495 14//14 270//270 +f 14//14 494//494 269//269 +f 270//270 269//269 613//613 +f 611//611 271//271 272//272 +f 271//271 496//496 18//18 +f 272//272 18//18 498//498 +f 496//496 273//273 16//16 +f 273//273 614//614 274//274 +f 16//16 274//274 497//497 +f 498//498 17//17 276//276 +f 17//17 497//497 275//275 +f 276//276 275//275 615//615 +f 616//616 277//277 278//278 +f 277//277 499//499 21//21 +f 278//278 21//21 501//501 +f 499//499 279//279 19//19 +f 279//279 617//617 280//280 +f 19//19 280//280 500//500 +f 501//501 20//20 282//282 +f 20//20 500//500 281//281 +f 282//282 281//281 618//618 +f 616//616 283//283 284//284 +f 283//283 502//502 24//24 +f 284//284 24//24 504//504 +f 502//502 285//285 22//22 +f 285//285 619//619 286//286 +f 22//22 286//286 503//503 +f 504//504 23//23 288//288 +f 23//23 503//503 287//287 +f 288//288 287//287 620//620 +f 621//621 289//289 290//290 +f 289//289 505//505 27//27 +f 290//290 27//27 507//507 +f 505//505 291//291 25//25 +f 291//291 622//622 292//292 +f 25//25 292//292 506//506 +f 507//507 26//26 294//294 +f 26//26 506//506 293//293 +f 294//294 293//293 623//623 +f 621//621 295//295 296//296 +f 295//295 508//508 30//30 +f 296//296 30//30 510//510 +f 508//508 297//297 28//28 +f 297//297 624//624 298//298 +f 28//28 298//298 509//509 +f 510//510 29//29 300//300 +f 29//29 509//509 299//299 +f 300//300 299//299 625//625 +f 626//626 301//301 302//302 +f 301//301 511//511 33//33 +f 302//302 33//33 513//513 +f 511//511 303//303 31//31 +f 303//303 627//627 304//304 +f 31//31 304//304 512//512 +f 513//513 32//32 306//306 +f 32//32 512//512 305//305 +f 306//306 305//305 628//628 +f 626//626 307//307 308//308 +f 307//307 514//514 36//36 +f 308//308 36//36 516//516 +f 514//514 309//309 34//34 +f 309//309 629//629 310//310 +f 34//34 310//310 515//515 +f 516//516 35//35 312//312 +f 35//35 515//515 311//311 +f 312//312 311//311 630//630 +f 624//624 313//313 314//314 +f 313//313 517//517 39//39 +f 314//314 39//39 519//519 +f 517//517 315//315 37//37 +f 315//315 614//614 316//316 +f 37//37 316//316 518//518 +f 519//519 38//38 318//318 +f 38//38 518//518 317//317 +f 318//318 317//317 602//602 +f 605//605 319//319 320//320 +f 319//319 520//520 42//42 +f 320//320 42//42 522//522 +f 520//520 321//321 40//40 +f 321//321 618//618 322//322 +f 40//40 322//322 521//521 +f 522//522 41//41 324//324 +f 41//41 521//521 323//323 +f 324//324 323//323 625//625 +f 603//603 325//325 326//326 +f 325//325 523//523 45//45 +f 326//326 45//45 525//525 +f 523//523 327//327 43//43 +f 327//327 613//613 328//328 +f 43//43 328//328 524//524 +f 525//525 44//44 330//330 +f 44//44 524//524 329//329 +f 330//330 329//329 628//628 +f 627//627 331//331 332//332 +f 331//331 526//526 48//48 +f 332//332 48//48 528//528 +f 526//526 333//333 46//46 +f 333//333 619//619 334//334 +f 46//46 334//334 527//527 +f 528//528 47//47 336//336 +f 47//47 527//527 335//335 +f 336//336 335//335 604//604 +f 608//608 337//337 338//338 +f 337//337 529//529 51//51 +f 338//338 51//51 531//531 +f 529//529 339//339 49//49 +f 339//339 615//615 340//340 +f 49//49 340//340 530//530 +f 531//531 50//50 342//342 +f 50//50 530//530 341//341 +f 342//342 341//341 623//623 +f 622//622 343//343 344//344 +f 343//343 532//532 54//54 +f 344//344 54//54 534//534 +f 532//532 345//345 52//52 +f 345//345 617//617 346//346 +f 52//52 346//346 533//533 +f 534//534 53//53 348//348 +f 53//53 533//533 347//347 +f 348//348 347//347 609//609 +f 629//629 349//349 350//350 +f 349//349 535//535 57//57 +f 350//350 57//57 537//537 +f 535//535 351//351 55//55 +f 351//351 612//612 352//352 +f 55//55 352//352 536//536 +f 537//537 56//56 354//354 +f 56//56 536//536 353//353 +f 354//354 353//353 607//607 +f 610//610 355//355 356//356 +f 355//355 538//538 60//60 +f 356//356 60//60 540//540 +f 538//538 357//357 58//58 +f 357//357 620//620 358//358 +f 58//58 358//358 539//539 +f 540//540 59//59 360//360 +f 59//59 539//539 359//359 +f 360//360 359//359 630//630 +f 631//631 361//361 362//362 +f 361//361 541//541 63//63 +f 362//362 63//63 542//542 +f 541//541 363//363 61//61 +f 363//363 601//601 242//242 +f 61//61 242//242 483//483 +f 542//542 62//62 364//364 +f 62//62 483//483 246//246 +f 364//364 246//246 603//603 +f 601//601 365//365 241//241 +f 365//365 543//543 66//66 +f 241//241 66//66 481//481 +f 543//543 366//366 64//64 +f 366//366 632//632 367//367 +f 64//64 367//367 544//544 +f 481//481 65//65 243//243 +f 65//65 544//544 368//368 +f 243//243 368//368 602//602 +f 603//603 245//245 369//369 +f 245//245 482//482 69//69 +f 369//369 69//69 546//546 +f 482//482 244//244 67//67 +f 244//244 602//602 370//370 +f 67//67 370//370 545//545 +f 546//546 68//68 372//372 +f 68//68 545//545 371//371 +f 372//372 371//371 633//633 +f 632//632 366//366 373//373 +f 366//366 543//543 72//72 +f 373//373 72//72 547//547 +f 543//543 365//365 70//70 +f 365//365 601//601 248//248 +f 70//70 248//248 486//486 +f 547//547 71//71 374//374 +f 71//71 486//486 252//252 +f 374//374 252//252 605//605 +f 601//601 363//363 247//247 +f 363//363 541//541 75//75 +f 247//247 75//75 484//484 +f 541//541 361//361 73//73 +f 361//361 631//631 375//375 +f 73//73 375//375 548//548 +f 484//484 74//74 249//249 +f 74//74 548//548 376//376 +f 249//249 376//376 604//604 +f 605//605 251//251 377//377 +f 251//251 485//485 78//78 +f 377//377 78//78 550//550 +f 485//485 250//250 76//76 +f 250//250 604//604 378//378 +f 76//76 378//378 549//549 +f 550//550 77//77 380//380 +f 77//77 549//549 379//379 +f 380//380 379//379 634//634 +f 635//635 381//381 382//382 +f 381//381 551//551 81//81 +f 382//382 81//81 552//552 +f 551//551 383//383 79//79 +f 383//383 606//606 254//254 +f 79//79 254//254 489//489 +f 552//552 80//80 384//384 +f 80//80 489//489 258//258 +f 384//384 258//258 608//608 +f 606//606 385//385 253//253 +f 385//385 553//553 84//84 +f 253//253 84//84 487//487 +f 553//553 386//386 82//82 +f 386//386 636//636 387//387 +f 82//82 387//387 554//554 +f 487//487 83//83 255//255 +f 83//83 554//554 388//388 +f 255//255 388//388 607//607 +f 608//608 257//257 389//389 +f 257//257 488//488 87//87 +f 389//389 87//87 556//556 +f 488//488 256//256 85//85 +f 256//256 607//607 390//390 +f 85//85 390//390 555//555 +f 556//556 86//86 392//392 +f 86//86 555//555 391//391 +f 392//392 391//391 637//637 +f 636//636 386//386 393//393 +f 386//386 553//553 90//90 +f 393//393 90//90 557//557 +f 553//553 385//385 88//88 +f 385//385 606//606 260//260 +f 88//88 260//260 492//492 +f 557//557 89//89 394//394 +f 89//89 492//492 264//264 +f 394//394 264//264 610//610 +f 606//606 383//383 259//259 +f 383//383 551//551 93//93 +f 259//259 93//93 490//490 +f 551//551 381//381 91//91 +f 381//381 635//635 395//395 +f 91//91 395//395 558//558 +f 490//490 92//92 261//261 +f 92//92 558//558 396//396 +f 261//261 396//396 609//609 +f 610//610 263//263 397//397 +f 263//263 491//491 96//96 +f 397//397 96//96 560//560 +f 491//491 262//262 94//94 +f 262//262 609//609 398//398 +f 94//94 398//398 559//559 +f 560//560 95//95 400//400 +f 95//95 559//559 399//399 +f 400//400 399//399 638//638 +f 633//633 401//401 402//402 +f 401//401 561//561 99//99 +f 402//402 99//99 562//562 +f 561//561 403//403 97//97 +f 403//403 611//611 266//266 +f 97//97 266//266 495//495 +f 562//562 98//98 404//404 +f 98//98 495//495 270//270 +f 404//404 270//270 613//613 +f 611//611 405//405 265//265 +f 405//405 563//563 102//102 +f 265//265 102//102 493//493 +f 563//563 406//406 100//100 +f 406//406 637//637 407//407 +f 100//100 407//407 564//564 +f 493//493 101//101 267//267 +f 101//101 564//564 408//408 +f 267//267 408//408 612//612 +f 613//613 269//269 409//409 +f 269//269 494//494 105//105 +f 409//409 105//105 566//566 +f 494//494 268//268 103//103 +f 268//268 612//612 410//410 +f 103//103 410//410 565//565 +f 566//566 104//104 412//412 +f 104//104 565//565 411//411 +f 412//412 411//411 639//639 +f 637//637 406//406 413//413 +f 406//406 563//563 108//108 +f 413//413 108//108 567//567 +f 563//563 405//405 106//106 +f 405//405 611//611 272//272 +f 106//106 272//272 498//498 +f 567//567 107//107 414//414 +f 107//107 498//498 276//276 +f 414//414 276//276 615//615 +f 611//611 403//403 271//271 +f 403//403 561//561 111//111 +f 271//271 111//111 496//496 +f 561//561 401//401 109//109 +f 401//401 633//633 415//415 +f 109//109 415//415 568//568 +f 496//496 110//110 273//273 +f 110//110 568//568 416//416 +f 273//273 416//416 614//614 +f 615//615 275//275 417//417 +f 275//275 497//497 114//114 +f 417//417 114//114 570//570 +f 497//497 274//274 112//112 +f 274//274 614//614 418//418 +f 112//112 418//418 569//569 +f 570//570 113//113 420//420 +f 113//113 569//569 419//419 +f 420//420 419//419 640//640 +f 634//634 421//421 422//422 +f 421//421 571//571 117//117 +f 422//422 117//117 572//572 +f 571//571 423//423 115//115 +f 423//423 616//616 278//278 +f 115//115 278//278 501//501 +f 572//572 116//116 424//424 +f 116//116 501//501 282//282 +f 424//424 282//282 618//618 +f 616//616 425//425 277//277 +f 425//425 573//573 120//120 +f 277//277 120//120 499//499 +f 573//573 426//426 118//118 +f 426//426 638//638 427//427 +f 118//118 427//427 574//574 +f 499//499 119//119 279//279 +f 119//119 574//574 428//428 +f 279//279 428//428 617//617 +f 618//618 281//281 429//429 +f 281//281 500//500 123//123 +f 429//429 123//123 576//576 +f 500//500 280//280 121//121 +f 280//280 617//617 430//430 +f 121//121 430//430 575//575 +f 576//576 122//122 432//432 +f 122//122 575//575 431//431 +f 432//432 431//431 641//641 +f 638//638 426//426 433//433 +f 426//426 573//573 126//126 +f 433//433 126//126 577//577 +f 573//573 425//425 124//124 +f 425//425 616//616 284//284 +f 124//124 284//284 504//504 +f 577//577 125//125 434//434 +f 125//125 504//504 288//288 +f 434//434 288//288 620//620 +f 616//616 423//423 283//283 +f 423//423 571//571 129//129 +f 283//283 129//129 502//502 +f 571//571 421//421 127//127 +f 421//421 634//634 435//435 +f 127//127 435//435 578//578 +f 502//502 128//128 285//285 +f 128//128 578//578 436//436 +f 285//285 436//436 619//619 +f 620//620 287//287 437//437 +f 287//287 503//503 132//132 +f 437//437 132//132 580//580 +f 503//503 286//286 130//130 +f 286//286 619//619 438//438 +f 130//130 438//438 579//579 +f 580//580 131//131 440//440 +f 131//131 579//579 439//439 +f 440//440 439//439 642//642 +f 640//640 441//441 442//442 +f 441//441 581//581 135//135 +f 442//442 135//135 582//582 +f 581//581 443//443 133//133 +f 443//443 621//621 290//290 +f 133//133 290//290 507//507 +f 582//582 134//134 444//444 +f 134//134 507//507 294//294 +f 444//444 294//294 623//623 +f 621//621 445//445 289//289 +f 445//445 583//583 138//138 +f 289//289 138//138 505//505 +f 583//583 446//446 136//136 +f 446//446 641//641 447//447 +f 136//136 447//447 584//584 +f 505//505 137//137 291//291 +f 137//137 584//584 448//448 +f 291//291 448//448 622//622 +f 623//623 293//293 449//449 +f 293//293 506//506 141//141 +f 449//449 141//141 586//586 +f 506//506 292//292 139//139 +f 292//292 622//622 450//450 +f 139//139 450//450 585//585 +f 586//586 140//140 452//452 +f 140//140 585//585 451//451 +f 452//452 451//451 635//635 +f 641//641 446//446 453//453 +f 446//446 583//583 144//144 +f 453//453 144//144 587//587 +f 583//583 445//445 142//142 +f 445//445 621//621 296//296 +f 142//142 296//296 510//510 +f 587//587 143//143 454//454 +f 143//143 510//510 300//300 +f 454//454 300//300 625//625 +f 621//621 443//443 295//295 +f 443//443 581//581 147//147 +f 295//295 147//147 508//508 +f 581//581 441//441 145//145 +f 441//441 640//640 455//455 +f 145//145 455//455 588//588 +f 508//508 146//146 297//297 +f 146//146 588//588 456//456 +f 297//297 456//456 624//624 +f 625//625 299//299 457//457 +f 299//299 509//509 150//150 +f 457//457 150//150 590//590 +f 509//509 298//298 148//148 +f 298//298 624//624 458//458 +f 148//148 458//458 589//589 +f 590//590 149//149 460//460 +f 149//149 589//589 459//459 +f 460//460 459//459 632//632 +f 639//639 461//461 462//462 +f 461//461 591//591 153//153 +f 462//462 153//153 592//592 +f 591//591 463//463 151//151 +f 463//463 626//626 302//302 +f 151//151 302//302 513//513 +f 592//592 152//152 464//464 +f 152//152 513//513 306//306 +f 464//464 306//306 628//628 +f 626//626 465//465 301//301 +f 465//465 593//593 156//156 +f 301//301 156//156 511//511 +f 593//593 466//466 154//154 +f 466//466 642//642 467//467 +f 154//154 467//467 594//594 +f 511//511 155//155 303//303 +f 155//155 594//594 468//468 +f 303//303 468//468 627//627 +f 628//628 305//305 469//469 +f 305//305 512//512 159//159 +f 469//469 159//159 596//596 +f 512//512 304//304 157//157 +f 304//304 627//627 470//470 +f 157//157 470//470 595//595 +f 596//596 158//158 472//472 +f 158//158 595//595 471//471 +f 472//472 471//471 631//631 +f 642//642 466//466 473//473 +f 466//466 593//593 162//162 +f 473//473 162//162 597//597 +f 593//593 465//465 160//160 +f 465//465 626//626 308//308 +f 160//160 308//308 516//516 +f 597//597 161//161 474//474 +f 161//161 516//516 312//312 +f 474//474 312//312 630//630 +f 626//626 463//463 307//307 +f 463//463 591//591 165//165 +f 307//307 165//165 514//514 +f 591//591 461//461 163//163 +f 461//461 639//639 475//475 +f 163//163 475//475 598//598 +f 514//514 164//164 309//309 +f 164//164 598//598 476//476 +f 309//309 476//476 629//629 +f 630//630 311//311 477//477 +f 311//311 515//515 168//168 +f 477//477 168//168 600//600 +f 515//515 310//310 166//166 +f 310//310 629//629 478//478 +f 166//166 478//478 599//599 +f 600//600 167//167 480//480 +f 167//167 599//599 479//479 +f 480//480 479//479 636//636 +f 632//632 459//459 367//367 +f 459//459 589//589 171//171 +f 367//367 171//171 544//544 +f 589//589 458//458 169//169 +f 458//458 624//624 314//314 +f 169//169 314//314 519//519 +f 544//544 170//170 368//368 +f 170//170 519//519 318//318 +f 368//368 318//318 602//602 +f 624//624 456//456 313//313 +f 456//456 588//588 174//174 +f 313//313 174//174 517//517 +f 588//588 455//455 172//172 +f 455//455 640//640 419//419 +f 172//172 419//419 569//569 +f 517//517 173//173 315//315 +f 173//173 569//569 418//418 +f 315//315 418//418 614//614 +f 602//602 317//317 370//370 +f 317//317 518//518 177//177 +f 370//370 177//177 545//545 +f 518//518 316//316 175//175 +f 316//316 614//614 416//416 +f 175//175 416//416 568//568 +f 545//545 176//176 371//371 +f 176//176 568//568 415//415 +f 371//371 415//415 633//633 +f 632//632 373//373 460//460 +f 373//373 547//547 180//180 +f 460//460 180//180 590//590 +f 547//547 374//374 178//178 +f 374//374 605//605 320//320 +f 178//178 320//320 522//522 +f 590//590 179//179 457//457 +f 179//179 522//522 324//324 +f 457//457 324//324 625//625 +f 605//605 377//377 319//319 +f 377//377 550//550 183//183 +f 319//319 183//183 520//520 +f 550//550 380//380 181//181 +f 380//380 634//634 422//422 +f 181//181 422//422 572//572 +f 520//520 182//182 321//321 +f 182//182 572//572 424//424 +f 321//321 424//424 618//618 +f 625//625 323//323 454//454 +f 323//323 521//521 186//186 +f 454//454 186//186 587//587 +f 521//521 322//322 184//184 +f 322//322 618//618 429//429 +f 184//184 429//429 576//576 +f 587//587 185//185 453//453 +f 185//185 576//576 432//432 +f 453//453 432//432 641//641 +f 631//631 362//362 472//472 +f 362//362 542//542 189//189 +f 472//472 189//189 596//596 +f 542//542 364//364 187//187 +f 364//364 603//603 326//326 +f 187//187 326//326 525//525 +f 596//596 188//188 469//469 +f 188//188 525//525 330//330 +f 469//469 330//330 628//628 +f 603//603 369//369 325//325 +f 369//369 546//546 192//192 +f 325//325 192//192 523//523 +f 546//546 372//372 190//190 +f 372//372 633//633 402//402 +f 190//190 402//402 562//562 +f 523//523 191//191 327//327 +f 191//191 562//562 404//404 +f 327//327 404//404 613//613 +f 628//628 329//329 464//464 +f 329//329 524//524 195//195 +f 464//464 195//195 592//592 +f 524//524 328//328 193//193 +f 328//328 613//613 409//409 +f 193//193 409//409 566//566 +f 592//592 194//194 462//462 +f 194//194 566//566 412//412 +f 462//462 412//412 639//639 +f 631//631 471//471 375//375 +f 471//471 595//595 198//198 +f 375//375 198//198 548//548 +f 595//595 470//470 196//196 +f 470//470 627//627 332//332 +f 196//196 332//332 528//528 +f 548//548 197//197 376//376 +f 197//197 528//528 336//336 +f 376//376 336//336 604//604 +f 627//627 468//468 331//331 +f 468//468 594//594 201//201 +f 331//331 201//201 526//526 +f 594//594 467//467 199//199 +f 467//467 642//642 439//439 +f 199//199 439//439 579//579 +f 526//526 200//200 333//333 +f 200//200 579//579 438//438 +f 333//333 438//438 619//619 +f 604//604 335//335 378//378 +f 335//335 527//527 204//204 +f 378//378 204//204 549//549 +f 527//527 334//334 202//202 +f 334//334 619//619 436//436 +f 202//202 436//436 578//578 +f 549//549 203//203 379//379 +f 203//203 578//578 435//435 +f 379//379 435//435 634//634 +f 635//635 382//382 452//452 +f 382//382 552//552 207//207 +f 452//452 207//207 586//586 +f 552//552 384//384 205//205 +f 384//384 608//608 338//338 +f 205//205 338//338 531//531 +f 586//586 206//206 449//449 +f 206//206 531//531 342//342 +f 449//449 342//342 623//623 +f 608//608 389//389 337//337 +f 389//389 556//556 210//210 +f 337//337 210//210 529//529 +f 556//556 392//392 208//208 +f 392//392 637//637 413//413 +f 208//208 413//413 567//567 +f 529//529 209//209 339//339 +f 209//209 567//567 414//414 +f 339//339 414//414 615//615 +f 623//623 341//341 444//444 +f 341//341 530//530 213//213 +f 444//444 213//213 582//582 +f 530//530 340//340 211//211 +f 340//340 615//615 417//417 +f 211//211 417//417 570//570 +f 582//582 212//212 442//442 +f 212//212 570//570 420//420 +f 442//442 420//420 640//640 +f 635//635 451//451 395//395 +f 451//451 585//585 216//216 +f 395//395 216//216 558//558 +f 585//585 450//450 214//214 +f 450//450 622//622 344//344 +f 214//214 344//344 534//534 +f 558//558 215//215 396//396 +f 215//215 534//534 348//348 +f 396//396 348//348 609//609 +f 622//622 448//448 343//343 +f 448//448 584//584 219//219 +f 343//343 219//219 532//532 +f 584//584 447//447 217//217 +f 447//447 641//641 431//431 +f 217//217 431//431 575//575 +f 532//532 218//218 345//345 +f 218//218 575//575 430//430 +f 345//345 430//430 617//617 +f 609//609 347//347 398//398 +f 347//347 533//533 222//222 +f 398//398 222//222 559//559 +f 533//533 346//346 220//220 +f 346//346 617//617 428//428 +f 220//220 428//428 574//574 +f 559//559 221//221 399//399 +f 221//221 574//574 427//427 +f 399//399 427//427 638//638 +f 636//636 479//479 387//387 +f 479//479 599//599 225//225 +f 387//387 225//225 554//554 +f 599//599 478//478 223//223 +f 478//478 629//629 350//350 +f 223//223 350//350 537//537 +f 554//554 224//224 388//388 +f 224//224 537//537 354//354 +f 388//388 354//354 607//607 +f 629//629 476//476 349//349 +f 476//476 598//598 228//228 +f 349//349 228//228 535//535 +f 598//598 475//475 226//226 +f 475//475 639//639 411//411 +f 226//226 411//411 565//565 +f 535//535 227//227 351//351 +f 227//227 565//565 410//410 +f 351//351 410//410 612//612 +f 607//607 353//353 390//390 +f 353//353 536//536 231//231 +f 390//390 231//231 555//555 +f 536//536 352//352 229//229 +f 352//352 612//612 408//408 +f 229//229 408//408 564//564 +f 555//555 230//230 391//391 +f 230//230 564//564 407//407 +f 391//391 407//407 637//637 +f 636//636 393//393 480//480 +f 393//393 557//557 234//234 +f 480//480 234//234 600//600 +f 557//557 394//394 232//232 +f 394//394 610//610 356//356 +f 232//232 356//356 540//540 +f 600//600 233//233 477//477 +f 233//233 540//540 360//360 +f 477//477 360//360 630//630 +f 610//610 397//397 355//355 +f 397//397 560//560 237//237 +f 355//355 237//237 538//538 +f 560//560 400//400 235//235 +f 400//400 638//638 433//433 +f 235//235 433//433 577//577 +f 538//538 236//236 357//357 +f 236//236 577//577 434//434 +f 357//357 434//434 620//620 +f 630//630 359//359 474//474 +f 359//359 539//539 240//240 +f 474//474 240//240 597//597 +f 539//539 358//358 238//238 +f 358//358 620//620 437//437 +f 238//238 437//437 580//580 +f 597//597 239//239 473//473 +f 239//239 580//580 440//440 +f 473//473 440//440 642//642 diff --git a/src/ClothAssert.hpp b/src/ClothAssert.hpp new file mode 100644 index 0000000..7975731 --- /dev/null +++ b/src/ClothAssert.hpp @@ -0,0 +1,48 @@ +// Copyright Matt Overby 2021. +// Distributed under the MIT License. + +#ifndef CLOTHASSERT_HPP +#define CLOTHASSERT_HPP 1 + +#include +#include +#include + +namespace cloth +{ + +static inline void AssertHandler(bool cond, const std::string& file, const int& line) +{ + if (!cond) + { + std::string err_msg = "Assertion failed in "+file+" line "+std::to_string(line); + throw std::runtime_error(err_msg.c_str()); + } +} + +static inline void AssertHandlerMsg(bool cond, const std::string& file, const int& line, const std::string &msg) +{ + if (!cond) + { + std::string err_msg = "Assertion failed in "+file+" line "+std::to_string(line)+": "+msg; + throw std::runtime_error(err_msg.c_str()); + } +} + +} + +// Neat trick that allows macros with multiple arguments: +// https://stackoverflow.com/questions/3046889/optional-parameters-with-c-macros +// Also consider using #condition + +#define ClothAssert_withmsg(cond, msg) AssertHandlerMsg(cond, std::string(__FILE__), __LINE__, msg) +#define ClothAssert_nomsg(cond) AssertHandler(cond, std::string(__FILE__), __LINE__) +#define ClothAssert_stripargs(xx,cond,msg,FUNC, ...) FUNC + +#define ClothAssert(...) \ + ClothAssert_stripargs(,##__VA_ARGS__,\ + ClothAssert_withmsg(__VA_ARGS__),\ + ClothAssert_nomsg(__VA_ARGS__),\ + ) + +#endif diff --git a/src/ClothMesh.hpp b/src/ClothMesh.hpp new file mode 100644 index 0000000..214ab9d --- /dev/null +++ b/src/ClothMesh.hpp @@ -0,0 +1,140 @@ +// Copyright Matt Overby 2021. +// Distributed under the MIT License. + +#ifndef CLOTHMESH_HPP +#define CLOTHMESH_HPP 1 + +#include "ClothAssert.hpp" +#include +#include + +namespace cloth +{ + +class ClothMesh +{ +public: + + Eigen::MatrixXd V; // rest vertices [nx3] + Eigen::MatrixXi F; // faces [fx3] + Eigen::MatrixXi E; // edges [ex3] + Eigen::VectorXd E0; // edge rest length + Eigen::MatrixXi B; // bend edges [bx3] + Eigen::VectorXd B0; // bend rest length + Eigen::VectorXd masses; // per-vertex masses + Eigen::VectorXi V_offset; // per-mesh index into V + Eigen::VectorXi F_offset; // per-mesh index into F + + // Adds a mesh to the collection of deformables and returns mesh number + inline int add_mesh(const Eigen::MatrixXd &inV, const Eigen::MatrixXi &inF) + { + int mesh_idx = -1; + ClothAssert(inV.rows() > 0 && inV.cols()==3); + ClothAssert(inF.rows() > 0 && inF.cols()==3); + + // First mesh? + if (V_offset.size()==0) + { + using namespace Eigen; + V_offset = VectorXi::Zero(2); + F_offset = VectorXi::Zero(2); + V_offset[1] = inV.rows(); + F_offset[1] = inF.rows(); + V = inV; + F = inF; + mesh_idx = 0; + } + else + { + mesh_idx = V_offset.size()-1; + V_offset.conservativeResize(mesh_idx+2); + F_offset.conservativeResize(mesh_idx+2); + V_offset[mesh_idx+1] = inV.rows(); + F_offset[mesh_idx+1] = inF.rows(); + V.conservativeResize(V.rows() + inV.rows(), 3); + V.bottomRows(inV.rows()) = inV; + F.conservativeResize(F.rows() + inF.rows(), 3); + F.bottomRows(inF.rows()) = inF; + } + + masses = Eigen::VectorXd::Constant(V.rows(), 0.1/V.rows()); + + compute_edges(); + return mesh_idx; + } + + // Computes edges and cross-edges from faces + inline void compute_edges() + { + using namespace Eigen; + std::map, std::pair> edges; // [edge, bend] + typedef std::map, std::pair>::iterator EdgeIter; + int n_bend = 0; // keep track of valid bend edges (non-border) + + int nf = F.rows(); + for (int i=0; i edge = std::make_pair(F(i,j), F(i,(j+1)%3)); + int adj = F(i,(j+2)%3); + if (edge.second < edge.first) + { + std::swap(edge.first, edge.second); + } + + EdgeIter it = edges.find(edge); + if (it == edges.end()) + { + edges[edge] = std::make_pair(adj, -1); + } + else + { + n_bend++; + std::pair &adj_pair = it->second; + adj_pair.second = adj; + if (adj_pair.second < adj_pair.first) + { + std::swap(adj_pair.first, adj_pair.second); + } + } + } + } + + // Loop over map and create eigen buffers + E = MatrixXi::Zero(edges.size(), 2); + E0 = VectorXd::Constant(edges.size(), -1); + B = MatrixXi::Zero(n_bend, 2); + B0 = VectorXd::Constant(n_bend, -1); + + int edge_idx = 0; + int bend_idx = 0; + for(EdgeIter it = edges.begin(); it != edges.end(); ++it, ++edge_idx) + { + const std::pair &e = it->first; + E(edge_idx,0) = e.first; + E(edge_idx,1) = e.second; + E0[edge_idx] = (V.row(e.first) - V.row(e.second)).norm(); + + const std::pair &b = it->second; + if (b.first >= 0 && b.second >= 0) + { + ClothAssert(bend_idx < B.rows()); + B(bend_idx,0) = b.first; + B(bend_idx,1) = b.second; + B0[bend_idx] = (V.row(b.first) - V.row(b.second)).norm(); + bend_idx++; + } + } + + // Check to make sure we set every edge + ClothAssert(E0.minCoeff() >= 0); + ClothAssert(B0.minCoeff() >= 0); + + } // end compute edges + +}; + +} + +#endif diff --git a/src/Objective.hpp b/src/Objective.hpp new file mode 100644 index 0000000..4e0d1ff --- /dev/null +++ b/src/Objective.hpp @@ -0,0 +1,108 @@ +// Copyright Matt Overby 2021. +// Distributed under the MIT License. + +#ifndef OBJECTIVE_HPP +#define OBJECTIVE_HPP 1 + +#include "ClothAssert.hpp" +#include "ClothMesh.hpp" + +namespace cloth +{ + +class Objective +{ +public: + + // Computes and returns the Hookean energy of a spring with rest length r and stiffness k. + // If x.rows == grad.rows, the gradients (f, -f) are added to grad. + double spring_gradient( + const Eigen::MatrixXd &x, + int e0, + int e1, + double r, + double k, + Eigen::MatrixXd &grad) const + { + using namespace Eigen; + Vector3d x0 = x.row(e0); + Vector3d x1 = x.row(e1); + Vector3d edge = (x0-x1); + double l = edge.norm(); + if (grad.rows() == x.rows() && l > 1e-12) + { + edge /= l; + edge *= (l-r)*k; + ClothAssert(edge.allFinite()); + grad.row(e0) += edge; + grad.row(e1) -= edge; + } + double energy = 0.5 * k * (l-r) * (l-r); // (k/2)||l-l0||^2 + ClothAssert(std::isfinite(energy)); + return energy; + } + + // Spring energies that push vertices out of collision. + // We'll cheat a bit and hard code the sphere radius and center since we know it. + double collision_gradient( + const Eigen::MatrixXd &x, + int idx, + double k, + Eigen::MatrixXd &grad) const + { + using namespace Eigen; + Vector3d cent(0,0,0); + double rad = 0.51; + Vector3d xi = x.row(idx); + Vector3d dir = (xi-cent); + double l = dir.norm(); + if (l > rad) { return 0; } + if (grad.rows() == x.rows() && l > 1e-12) + { + dir /= l; + dir *= (l-rad)*k; + ClothAssert(dir.allFinite()); + grad.row(idx) += dir; + } + double energy = 0.5 * k * (l-rad) * (l-rad); // (k/2)||l-l0||^2 + ClothAssert(std::isfinite(energy)); + return energy; + } + + // Momentum potential: ||x-xbar||^2_M / (2dt^2) + // Like springs above, if xrows == grad.rows, gradient is added. + // Unlike springs, the momentum is a global term. + inline double momentum_gradient( + const Eigen::MatrixXd &x, + const Eigen::MatrixXd &x_start, + const Eigen::MatrixXd &v, + const Eigen::VectorXd &masses, + double dt, + Eigen::MatrixXd &grad) const + { + using namespace Eigen; + // Some of this can be precomputed to speed up evaluations + MatrixXd x_bar = x_start + dt * v; + MatrixXd dx = x - x_bar; + MatrixXd M_dx = masses.asDiagonal() * dx; + double dot = 0; + for (int i=0; i<3; ++i) + { + dot += dx.col(i).dot(M_dx.col(i)); + } + + double energy = dot / (2.0*dt*dt); + if (grad.rows() == x.rows()) + { + M_dx *= (1.0 / (dt*dt)); + grad += M_dx; + } + ClothAssert(std::isfinite(energy)); + return energy; + } + +}; + +} + +#endif diff --git a/src/Solver.hpp b/src/Solver.hpp new file mode 100644 index 0000000..1b065a3 --- /dev/null +++ b/src/Solver.hpp @@ -0,0 +1,134 @@ +// Copyright Matt Overby 2021. +// Distributed under the MIT License. + +#ifndef SOLVER_HPP +#define SOLVER_HPP 1 + +#include "Objective.hpp" +#include "ClothMesh.hpp" + +namespace cloth +{ + +class Solver +{ +public: + + // State variables + Eigen::MatrixXd x; // positions [nx3] + Eigen::MatrixXd v; // velocities [nx3] + Eigen::MatrixXd x_start; // start of timestep [nx3] + double spring_k; + double bend_k; + double collision_k; + int max_solver_iter; + + Solver() : + spring_k(100), + bend_k(100), + collision_k(300), + max_solver_iter(400) + {} + + // Initalizes state variables, returns true if success + bool initialize(const ClothMesh &cloth) + { + if (cloth.V.rows() == 0 || cloth.V.cols() != 3) + { + return false; + } + + x = cloth.V; + v = Eigen::MatrixXd::Zero(x.rows(), 3); + x_start = x; + return true; + } + + // Computes the energy and gradient (if desired) of the objective + double gradient(const ClothMesh &cloth, const Objective &objective, + double dt, const Eigen::MatrixXd &xk, Eigen::MatrixXd &grad) const + { + double tot_energy = 0; + + // Momentum potential + tot_energy += objective.momentum_gradient( + xk, x_start, v, cloth.masses, dt, grad); + + // Stretch springs + int num_edges = cloth.E.rows(); + for (int i=0; i energy_k) + { + alpha *= 0.5; + x = xk - alpha * grad; + } + } + } + +}; + +} + +#endif diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..2b04ccd --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,82 @@ +// Copyright Matt Overby 2021. +// Distributed under the MIT License. + +#include +#include +#include +#include +#include "Solver.hpp" + +using namespace Eigen; +using namespace cloth; + +int main(int argc, char *argv[]) +{ + (void)(argc); + (void)(argv); + + std::string plane = CLOTH_ROOT_DIR "/data/plane.obj"; + std::string sphere = CLOTH_ROOT_DIR "/data/sphere.obj"; + MatrixXd V, sphereV; + MatrixXi F, sphereF; + if (!igl::readOBJ(plane, V, F) || !igl::readOBJ(sphere, sphereV, sphereF)) + { + return EXIT_FAILURE; + } + + // Move cloth above the sphere + V.col(1).array() += 0.6; + + // Create cloth object + ClothMesh cloth; + cloth.add_mesh(V, F); + + // Objective function + Objective objective; + + // Create solver + double dt = 1.0 / 24.0; + Solver solver; + if (!solver.initialize(cloth)) + { + return EXIT_FAILURE; + } + + std::cout << "Press A to simulate, R to reset" << std::endl; + + // Create viewer + igl::opengl::glfw::Viewer viewer; + viewer.data().set_face_based(true); + viewer.data().set_mesh(V, F); + viewer.data().set_colors(RowVector3d(0.659, 0.847, 1)); + viewer.append_mesh(); + viewer.data(1).set_mesh(sphereV, sphereF); + viewer.data(1).set_colors(RowVector3d(0.7, 0.7, 0.7)); + viewer.core().is_animating = false; + + viewer.callback_key_pressed = [&](igl::opengl::glfw::Viewer&, unsigned int key, int)->bool + { + char c = char(key); + if (c == 'r') + { + solver.initialize(cloth); + } + return false; + }; + + viewer.callback_pre_draw = [&](igl::opengl::glfw::Viewer&)->bool + { + if (viewer.core().is_animating) + { + solver.solve(cloth, objective, dt); // solve the time step + V = solver.x; // update vertex positions + viewer.data(0).set_mesh(V, F); + viewer.data(0).compute_normals(); // update normals after defo + } + return false; + }; + + viewer.launch(); + + return EXIT_SUCCESS; +} diff --git a/test/test.cpp b/test/test.cpp new file mode 100644 index 0000000..5a6bd9a --- /dev/null +++ b/test/test.cpp @@ -0,0 +1,56 @@ +// Copyright Matt Overby 2021. +// Distributed under the MIT License. + +#include +#include +#include +#include "Solver.hpp" + +using namespace Eigen; +using namespace cloth; + +int main(int argc, char *argv[]) +{ + (void)(argc); + (void)(argv); + + std::string plane = CLOTH_ROOT_DIR "/data/plane.obj"; + std::string sphere = CLOTH_ROOT_DIR "/data/sphere.obj"; + MatrixXd V, cV; + MatrixXi F, cF; + if (!igl::readOBJ(plane, V, F) || !igl::readOBJ(sphere, cV, cF)) + { + return EXIT_FAILURE; + } + + // Move cloth above the sphere + V.col(1).array() += 0.5; + + // Create cloth object + ClothMesh cloth; + cloth.add_mesh(V, F); + + // Objective function + Objective objective; + + // Create solver + double dt = 1.0 / 24.0; + Solver solver; + + // 20 iters won't converge but it will test + // all the functions are operational. + solver.max_solver_iter = 20; + + if (!solver.initialize(cloth)) + { + return EXIT_FAILURE; + } + + int timesteps = 10; + for (int step=0; step < timesteps; ++step) + { + solver.solve(cloth, objective, dt); // solve the time step + } + + return EXIT_SUCCESS; +}