merge master and mv FindDevIL to cmake-modules

pull/1212/head
aoowweenn 2017-03-05 23:07:06 +08:00
commit 7226d73682
35 changed files with 1853 additions and 1680 deletions

410
CHANGES
View File

@ -1,205 +1,205 @@
---------------------------------------------------------------------- ----------------------------------------------------------------------
CHANGELOG CHANGELOG
---------------------------------------------------------------------- ----------------------------------------------------------------------
3.3.1 (2016-07-08) 3.3.1 (2016-07-08)
FIXES/HOUSEKEEPING: FIXES/HOUSEKEEPING:
- Setup of default precision for 17 exporters - Setup of default precision for 17 exporters
- Fix xcode project files - Fix xcode project files
- Fix BlenderTesselator: offsetof operator - Fix BlenderTesselator: offsetof operator
- Invalid version in cmake file - Invalid version in cmake file
- Update pstdint.h to latest greatest - Update pstdint.h to latest greatest
3.3.0 (2016-07-05) 3.3.0 (2016-07-05)
FEATURES: FEATURES:
- C++11 support enabled - C++11 support enabled
- New regression-test-UI - New regression-test-UI
- Experimental glTF-importer support - Experimental glTF-importer support
- OpenGEX: add support for cameras and lights - OpenGEX: add support for cameras and lights
- C4D: update to latest Melange-SDK - C4D: update to latest Melange-SDK
- Add a gitter channel - Add a gitter channel
- Coverity check enabled - Coverity check enabled
- Switch to <...> include brackets for public headers - Switch to <...> include brackets for public headers
- Enable export by pyAssimp - Enable export by pyAssimp
- CI: check windows build - CI: check windows build
- Add functionality to perform a singlepost-processing step - Add functionality to perform a singlepost-processing step
- many more, just check the history - many more, just check the history
FIXES/HOUSEKEEPING: FIXES/HOUSEKEEPING:
- Fix of many resource leaks in unittests and main lib - Fix of many resource leaks in unittests and main lib
- Fix iOS-buildfor X64 - Fix iOS-buildfor X64
- Choosing zlib manually for cmake - Choosing zlib manually for cmake
- many more, just check the history - many more, just check the history
3.2.1 (2016-010-10) 3.2.1 (2016-010-10)
FEATURES: FEATURES:
- Updated glTF exporter to meet 1.0 specification. - Updated glTF exporter to meet 1.0 specification.
FIXES/HOUSEKEEPING: FIXES/HOUSEKEEPING:
- Fixed glTF Validator errors for exported glTF format. - Fixed glTF Validator errors for exported glTF format.
ISSUES: ISSUES:
- Hard coded sampler setting for - Hard coded sampler setting for
- magFilter - magFilter
- minFilter - minFilter
- void* in ExportData for accessor max and min. - void* in ExportData for accessor max and min.
3.2.0 (2015-11-03) 3.2.0 (2015-11-03)
FEATURES: FEATURES:
- OpenDDL-Parser is part of contrib-source. - OpenDDL-Parser is part of contrib-source.
- Experimental OpenGEX-support - Experimental OpenGEX-support
- CI-check for linux and windows - CI-check for linux and windows
- Coverity check added - Coverity check added
- New regression testsuite. - New regression testsuite.
FIXES/HOUSEKEEPING: FIXES/HOUSEKEEPING:
- Hundreds of bugfixes in all parts of the library - Hundreds of bugfixes in all parts of the library
- Unified line endings - Unified line endings
API COMPATIBILITY: API COMPATIBILITY:
- Removed precompiled header to increase build speed for linux - Removed precompiled header to increase build speed for linux
3.1.1 (2014-06-15) 3.1.1 (2014-06-15)
FEATURES: FEATURES:
- Support for FBX 2013 and newer, binary and ASCII (this is partly - Support for FBX 2013 and newer, binary and ASCII (this is partly
work from Google Summer of Code 2012) work from Google Summer of Code 2012)
- Support for OGRE binary mesh and skeleton format - Support for OGRE binary mesh and skeleton format
- Updated BLEND support for newer Blender versions - Updated BLEND support for newer Blender versions
- Support for arbitrary meta data, used to hold FBX and DAE metadata - Support for arbitrary meta data, used to hold FBX and DAE metadata
- OBJ Export now produces smaller files - OBJ Export now produces smaller files
- Meshes can now have names, this is supported by the major importers - Meshes can now have names, this is supported by the major importers
- Improved IFC geometry generation - Improved IFC geometry generation
- M3 support has been removed - M3 support has been removed
FIXES/HOUSEKEEPING: FIXES/HOUSEKEEPING:
- Hundreds of bugfixes in all parts of the library - Hundreds of bugfixes in all parts of the library
- CMake is now the primary build system - CMake is now the primary build system
API COMPATIBILITY: API COMPATIBILITY:
- 3.1.1 is not binary compatible to 3.0 due to aiNode::mMetaData - 3.1.1 is not binary compatible to 3.0 due to aiNode::mMetaData
and aiMesh::mName and aiMesh::mName
- Export interface has been cleaned up and unified - Export interface has been cleaned up and unified
- Other than that no relevant changes - Other than that no relevant changes
3.0 (2012-07-07) 3.0 (2012-07-07)
FEATURES: FEATURES:
- new export interface similar to the import API. - new export interface similar to the import API.
- Supported export formats: Collada, OBJ, PLY and STL - Supported export formats: Collada, OBJ, PLY and STL
- added new import formats: XGL/ZGL, M3 (experimental) - added new import formats: XGL/ZGL, M3 (experimental)
- new postprocessing steps: Debone - new postprocessing steps: Debone
- vastly improved IFC (Industry Foundation Classes) support - vastly improved IFC (Industry Foundation Classes) support
- introduced API to query importer meta information (such as supported - introduced API to query importer meta information (such as supported
format versions, full name, maintainer info). format versions, full name, maintainer info).
- reworked Ogre XML import - reworked Ogre XML import
- C-API now supports per-import properties - C-API now supports per-import properties
FIXES/HOUSEKEEPING: FIXES/HOUSEKEEPING:
- hundreds of bugfixes in all parts of the library - hundreds of bugfixes in all parts of the library
- unified naming and cleanup of public headers - unified naming and cleanup of public headers
- improved CMake build system - improved CMake build system
- templatized math library - templatized math library
- reduce dependency on boost.thread, only remaining spot - reduce dependency on boost.thread, only remaining spot
is synchronization for the C logging API is synchronization for the C logging API
API COMPATIBILITY: API COMPATIBILITY:
- renamed headers, export interface, C API properties and meta data - renamed headers, export interface, C API properties and meta data
prevent compatibility with code written for 2.0, but in prevent compatibility with code written for 2.0, but in
most cases these can be easily resolved most cases these can be easily resolved
- Note: 3.0 is not binary compatible with 2.0 - Note: 3.0 is not binary compatible with 2.0
2.0 (2010-11-21) 2.0 (2010-11-21)
FEATURES: FEATURES:
- Add support for static Blender (*.blend) scenes - Add support for static Blender (*.blend) scenes
- Add support for Q3BSP scenes - Add support for Q3BSP scenes
- Add a windows-based OpenGL sample featuring texturing & basic materials - Add a windows-based OpenGL sample featuring texturing & basic materials
- Add an experimental progress feedback interface. - Add an experimental progress feedback interface.
- Vastly improved performance (up to 500%, depending on mesh size and - Vastly improved performance (up to 500%, depending on mesh size and
spatial structure) in some expensive postprocessing steps spatial structure) in some expensive postprocessing steps
- AssimpView now uses a reworked layout which leaves more space - AssimpView now uses a reworked layout which leaves more space
to the scene hierarchy window to the scene hierarchy window
- Add C# bindings ('Assimp.NET') - Add C# bindings ('Assimp.NET')
- Keep BSD-licensed and otherwise free test files in separate - Keep BSD-licensed and otherwise free test files in separate
folders (./test/models and ./test/models-nonbsd). folders (./test/models and ./test/models-nonbsd).
FIXES: FIXES:
- Many Collada bugfixes, improve fault tolerance - Many Collada bugfixes, improve fault tolerance
- Fix possible crashes in the Obj loader - Fix possible crashes in the Obj loader
- Improve the Ogre XML loader - Improve the Ogre XML loader
- OpenGL-sample now works with MinGW - OpenGL-sample now works with MinGW
- Fix Importer::FindLoader failing on uppercase file extensions - Fix Importer::FindLoader failing on uppercase file extensions
- Fix flawed path handling when locating external files - Fix flawed path handling when locating external files
- Limit the maximum number of vertices, faces, face indices and - Limit the maximum number of vertices, faces, face indices and
weights that Assimp is able to handle. This is to avoid weights that Assimp is able to handle. This is to avoid
crashes due to overflowing counters. crashes due to overflowing counters.
- Updated XCode project files - Updated XCode project files
- Further CMAKE build improvements - Further CMAKE build improvements
API CHANGES: API CHANGES:
- Add data structures for vertex-based animations (These are not - Add data structures for vertex-based animations (These are not
currently used, however ...) currently used, however ...)
- Some Assimp::Importer methods are const now. - Some Assimp::Importer methods are const now.
1.1 (2010-04-17) 1.1 (2010-04-17)
This is the list of relevant changes from the 1.0 (r412) release to 1.1 (r700). This is the list of relevant changes from the 1.0 (r412) release to 1.1 (r700).
FEATURES: FEATURES:
- Vastly improved Collada support - Vastly improved Collada support
- Add MS3D (Milkshape 3D) support - Add MS3D (Milkshape 3D) support
- Add support for Ogre XML static meshes - Add support for Ogre XML static meshes
- Add experimental COB (TrueSpace) support - Add experimental COB (TrueSpace) support
- Automatic test suite to quickly locate regressions - Automatic test suite to quickly locate regressions
- D bindings (`dAssimp`) - D bindings (`dAssimp`)
- Python 2.n bindings (`PyAssimp`) - Python 2.n bindings (`PyAssimp`)
- Add basic support for Unicode input files (utf8, utf16 and utf32) - Add basic support for Unicode input files (utf8, utf16 and utf32)
- Add further utilities to the `assimp` tool (xml/binary dumps, quick file stats) - Add further utilities to the `assimp` tool (xml/binary dumps, quick file stats)
- Switch to a CMAKE-based build system including an install target for unix'es - Switch to a CMAKE-based build system including an install target for unix'es
- Automatic evaluation of subdivision surfaces for some formats. - Automatic evaluation of subdivision surfaces for some formats.
- Add `Importer::ReadFileFromMemory` and the corresponding C-API `aiReadFileFromMemory` - Add `Importer::ReadFileFromMemory` and the corresponding C-API `aiReadFileFromMemory`
- Expose further math utilities via the C-API (i.e. `aiMultiplyMatrix4`) - Expose further math utilities via the C-API (i.e. `aiMultiplyMatrix4`)
- Move noboost files away from the public include directory - Move noboost files away from the public include directory
- Many, many bugfixes and improvements in existing loaders and postprocessing steps - Many, many bugfixes and improvements in existing loaders and postprocessing steps
- Documentation improved and clarified in many places. - Documentation improved and clarified in many places.
- Add a sample on using Assimp in conjunction with OpenGL - Add a sample on using Assimp in conjunction with OpenGL
- Distribution/packaging: comfortable SDK installer for Windows - Distribution/packaging: comfortable SDK installer for Windows
- Distribution/packaging: improved release packages for other architectures - Distribution/packaging: improved release packages for other architectures
CRITICAL FIXES: CRITICAL FIXES:
- Resolve problems with clashing heap managers, STL ABIs and runtime libraries (win32) - Resolve problems with clashing heap managers, STL ABIs and runtime libraries (win32)
- Fix automatic detection of file type if no file extension is given - Fix automatic detection of file type if no file extension is given
- Improved exception safety and robustness, prevent leaking of exceptions through the C interface - Improved exception safety and robustness, prevent leaking of exceptions through the C interface
- Fix possible heap corruption due to material properties pulled in incorrectly - Fix possible heap corruption due to material properties pulled in incorrectly
- Avoid leaking in certain error scenarios - Avoid leaking in certain error scenarios
- Fix 64 bit compatibility problems in some loaders (i.e. MDL) - Fix 64 bit compatibility problems in some loaders (i.e. MDL)
BREAKING API CHANGES: BREAKING API CHANGES:
- None - - None -
MINOR API BEHAVIOUR CHANGES: MINOR API BEHAVIOUR CHANGES:
- Change quaternion orientation to suit to the more common convention (-w). - Change quaternion orientation to suit to the more common convention (-w).
- aiString is utf8 now. Not yet consistent, however. - aiString is utf8 now. Not yet consistent, however.

View File

@ -185,9 +185,9 @@ if (ASSIMP_COVERALLS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
endif() endif()
INCLUDE (FindPkgConfig)
INCLUDE_DIRECTORIES( include ) INCLUDE_DIRECTORIES( include )
INCLUDE (FindPkgMacros)
INCLUDE (PrecompiledHeader) INCLUDE (PrecompiledHeader)
# If this is an in-source build (CMAKE_SOURCE_DIR == CMAKE_BINARY_DIR), # If this is an in-source build (CMAKE_SOURCE_DIR == CMAKE_BINARY_DIR),
@ -255,9 +255,7 @@ ENDIF(NOT ZLIB_FOUND)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
# Search for unzip # Search for unzip
IF (PKG_CONFIG_FOUND) use_pkgconfig(UNZIP minizip)
PKG_CHECK_MODULES(UNZIP minizip)
ENDIF (PKG_CONFIG_FOUND)
IF ( ASSIMP_NO_EXPORT ) IF ( ASSIMP_NO_EXPORT )
ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT) ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT)
@ -344,11 +342,7 @@ IF ( ASSIMP_BUILD_ASSIMP_TOOLS )
# Why assimp_qt_viewer/CMakeLists.txt still contain similar check? # Why assimp_qt_viewer/CMakeLists.txt still contain similar check?
# Because viewer can be build independently of Assimp. # Because viewer can be build independently of Assimp.
FIND_PACKAGE(Qt5Widgets QUIET) FIND_PACKAGE(Qt5Widgets QUIET)
set(CMAKE_MODULE_PATH_BACKUP ${CMAKE_MODULE_PATH})
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
FIND_PACKAGE(DevIL QUIET) FIND_PACKAGE(DevIL QUIET)
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR})
set(CMAKE_MODULE_PATH_BACKUP ${CMAKE_MODULE_PATH})
FIND_PACKAGE(OpenGL QUIET) FIND_PACKAGE(OpenGL QUIET)
IF ( Qt5Widgets_FOUND AND IL_FOUND AND OPENGL_FOUND) IF ( Qt5Widgets_FOUND AND IL_FOUND AND OPENGL_FOUND)
ADD_SUBDIRECTORY( tools/assimp_qt_viewer/ ) ADD_SUBDIRECTORY( tools/assimp_qt_viewer/ )

320
CREDITS
View File

@ -1,160 +1,160 @@
=============================================================== ===============================================================
Open Asset Import Library (Assimp) Open Asset Import Library (Assimp)
Developers and Contributors Developers and Contributors
=============================================================== ===============================================================
The following is a non-exhaustive list of all constributors over the years. The following is a non-exhaustive list of all constributors over the years.
If you think your name should be listed here, drop us a line and we'll add you. If you think your name should be listed here, drop us a line and we'll add you.
- Alexander Gessler, - Alexander Gessler,
3DS-, BLEND-, ASE-, DXF-, HMP-, MDL-, MD2-, MD3-, MD5-, MDC-, NFF-, PLY-, STL-, RAW-, OFF-, MS3D-, Q3D- and LWO-Loader, Assimp-Viewer, assimp-cmd, -noboost, Website (Design). 3DS-, BLEND-, ASE-, DXF-, HMP-, MDL-, MD2-, MD3-, MD5-, MDC-, NFF-, PLY-, STL-, RAW-, OFF-, MS3D-, Q3D- and LWO-Loader, Assimp-Viewer, assimp-cmd, -noboost, Website (Design).
- Thomas Schulze, - Thomas Schulze,
X-, Collada-, BVH-Loader, Postprocessing framework. Data structure & Interface design, documentation. X-, Collada-, BVH-Loader, Postprocessing framework. Data structure & Interface design, documentation.
- Kim Kulling, - Kim Kulling,
Obj-, Q3BSD-, OpenGEX-Loader, Logging system, CMake-build-environment, Linux-build, Website ( Admin ), Coverity ( Admin ), Glitter ( Admin ). Obj-, Q3BSD-, OpenGEX-Loader, Logging system, CMake-build-environment, Linux-build, Website ( Admin ), Coverity ( Admin ), Glitter ( Admin ).
- R.Schmidt, - R.Schmidt,
Linux build, eclipse support. Linux build, eclipse support.
- Matthias Gubisch, - Matthias Gubisch,
Assimp.net Assimp.net
Visual Studio 9 support, bugfixes. Visual Studio 9 support, bugfixes.
- Mark Sibly - Mark Sibly
B3D-Loader, Assimp testing B3D-Loader, Assimp testing
- Jonathan Klein - Jonathan Klein
Ogre Loader, VC2010 fixes and CMake fixes. Ogre Loader, VC2010 fixes and CMake fixes.
- Sebastian Hempel, - Sebastian Hempel,
PyAssimp (first version) PyAssimp (first version)
Compile-Bugfixes for mingw, add environment for static library support in make. Compile-Bugfixes for mingw, add environment for static library support in make.
- Jonathan Pokrass - Jonathan Pokrass
Supplied a bugfix concerning the scaling in the md3 loader. Supplied a bugfix concerning the scaling in the md3 loader.
- Andrew Galante, - Andrew Galante,
Submitted patches to make Assimp compile with GCC-4, a makefile and the xcode3 workspace. Submitted patches to make Assimp compile with GCC-4, a makefile and the xcode3 workspace.
- Andreas Nagel - Andreas Nagel
First Assimp testing & verification under Windows Vista 64 Bit. First Assimp testing & verification under Windows Vista 64 Bit.
- Marius Schr<68>der - Marius Schr<68>der
Allowed us to use many of his models for screenshots and testing. Allowed us to use many of his models for screenshots and testing.
- Christian Schubert - Christian Schubert
Supplied various XFiles for testing purposes. Supplied various XFiles for testing purposes.
- Tizian Wieland - Tizian Wieland
Searched the web for hundreds of test models for internal use Searched the web for hundreds of test models for internal use
- John Connors - John Connors
Supplied patches for linux and SCons. Supplied patches for linux and SCons.
- T. R. - T. R.
The GUY who performed some of the CSM mocaps. The GUY who performed some of the CSM mocaps.
- Andy Maloney - Andy Maloney
Contributed fixes for the documentation and the doxygen markup Contributed fixes for the documentation and the doxygen markup
- Zhao Lei - Zhao Lei
Contributed several bugfixes fixing memory leaks and improving float parsing Contributed several bugfixes fixing memory leaks and improving float parsing
- sueastside - sueastside
Updated PyAssimp to the latest Assimp data structures and provided a script to keep the Python binding up-to-date. Updated PyAssimp to the latest Assimp data structures and provided a script to keep the Python binding up-to-date.
- Tobias Rittig - Tobias Rittig
Collada testing with Cinema 4D Collada testing with Cinema 4D
- Brad Grantham - Brad Grantham
Improvements in OpenGL-Sample. Improvements in OpenGL-Sample.
- Robert Ramirez - Robert Ramirez
Add group loading feature to Obj-Loader. Add group loading feature to Obj-Loader.
- Chris Maiwald - Chris Maiwald
Many bugreports, improving Assimp's portability, regular testing & feedback. Many bugreports, improving Assimp's portability, regular testing & feedback.
- Stepan Hrbek - Stepan Hrbek
Bugreport and fix for a obj-materialloader crash. Bugreport and fix for a obj-materialloader crash.
- David Nadlinger - David Nadlinger
D bindings, CMake install support. D bindings, CMake install support.
- Dario Accornero - Dario Accornero
Contributed several patches regarding Mac OS/XCode targets, bug reports. Contributed several patches regarding Mac OS/XCode targets, bug reports.
- Martin Walser (Samhayne) - Martin Walser (Samhayne)
Contributed the 'SimpleTexturedOpenGl' sample. Contributed the 'SimpleTexturedOpenGl' sample.
- Matthias Fauconneau - Matthias Fauconneau
Contributed a fix for the Q3-BSP loader. Contributed a fix for the Q3-BSP loader.
- J<EFBFBD>rgen P. Tjern<72> - Jørgen P. Tjernø
Contributed updated and improved xcode workspaces Contributed updated and improved xcode workspaces
- drparallax - drparallax
Contributed the /samples/SimpleAssimpViewX sample Contributed the /samples/SimpleAssimpViewX sample
- Carsten Fuchs - Carsten Fuchs
Contributed a fix for the Normalize method in aiQuaternion. Contributed a fix for the Normalize method in aiQuaternion.
- dbburgess - dbburgess
Contributes a Android-specific build issue: log the hardware architecture for ARM. Contributes a Android-specific build issue: log the hardware architecture for ARM.
- alfiereinre7 - alfiereinre7
Contributes a obj-fileparser fix: missing tokens in the obj-token list. Contributes a obj-fileparser fix: missing tokens in the obj-token list.
- Roman Kharitonov - Roman Kharitonov
Contributes a fix for the configure script environment. Contributes a fix for the configure script environment.
- Ed Diana - Ed Diana
Contributed AssimpDelphi (/port/AssimpDelphi). Contributed AssimpDelphi (/port/AssimpDelphi).
- rdb - rdb
Contributes a bundle of fixes and improvements for the bsp-importer. Contributes a bundle of fixes and improvements for the bsp-importer.
- Mick P - Mick P
For contributing the De-bone postprocessing step and filing various bug reports. For contributing the De-bone postprocessing step and filing various bug reports.
- Rosen Diankov - Rosen Diankov
Contributed patches to build assimp debian packages using cmake. Contributed patches to build assimp debian packages using cmake.
- Mark Page - Mark Page
Contributed a patch to fix the VertexTriangleAdjacency postprocessing step. Contributed a patch to fix the VertexTriangleAdjacency postprocessing step.
- IOhannes - IOhannes
Contributed the Debian build fixes ( architecture macro ). Contributed the Debian build fixes ( architecture macro ).
- gellule - gellule
Several LWO and LWS fixes (pivoting). Several LWO and LWS fixes (pivoting).
- Marcel Metz - Marcel Metz
GCC/Linux fixes for the SimpleOpenGL sample. GCC/Linux fixes for the SimpleOpenGL sample.
- Brian Miller - Brian Miller
Bugfix for a compiler fix for iOS on arm. Bugfix for a compiler fix for iOS on arm.
- S<EFBFBD>verin Lemaignan - SĂ©verin Lemaignan
Rewrite of PyAssimp, distutils and Python3 support Rewrite of PyAssimp, distutils and Python3 support
- albert-wang - albert-wang
Bugfixes for the collada parser Bugfixes for the collada parser
- Ya ping Jin - Ya ping Jin
Bugfixes for uv-tanget calculation. Bugfixes for uv-tanget calculation.
- Jonne Nauha - Jonne Nauha
Ogre Binary format support Ogre Binary format support
- Filip Wasil, Tieto Poland Sp. z o.o. - Filip Wasil, Tieto Poland Sp. z o.o.
Android JNI asset extraction support Android JNI asset extraction support
- Richard Steffen - Richard Steffen
Contributed ExportProperties interface Contributed ExportProperties interface
Contributed X File exporter Contributed X File exporter
Contributed Step (stp) exporter Contributed Step (stp) exporter

156
LICENSE
View File

@ -1,78 +1,78 @@
Open Asset Import Library (assimp) Open Asset Import Library (assimp)
Copyright (c) 2006-2016, assimp team Copyright (c) 2006-2016, assimp team
All rights reserved. All rights reserved.
Redistribution and use of this software in source and binary forms, Redistribution and use of this software in source and binary forms,
with or without modification, are permitted provided that the with or without modification, are permitted provided that the
following conditions are met: following conditions are met:
* Redistributions of source code must retain the above * Redistributions of source code must retain the above
copyright notice, this list of conditions and the copyright notice, this list of conditions and the
following disclaimer. following disclaimer.
* Redistributions in binary form must reproduce the above * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other following disclaimer in the documentation and/or other
materials provided with the distribution. materials provided with the distribution.
* Neither the name of the assimp team, nor the names of its * Neither the name of the assimp team, nor the names of its
contributors may be used to endorse or promote products contributors may be used to endorse or promote products
derived from this software without specific prior derived from this software without specific prior
written permission of the assimp team. written permission of the assimp team.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
****************************************************************************** ******************************************************************************
AN EXCEPTION applies to all files in the ./test/models-nonbsd folder. AN EXCEPTION applies to all files in the ./test/models-nonbsd folder.
These are 3d models for testing purposes, from various free sources These are 3d models for testing purposes, from various free sources
on the internet. They are - unless otherwise stated - copyright of on the internet. They are - unless otherwise stated - copyright of
their respective creators, which may impose additional requirements their respective creators, which may impose additional requirements
on the use of their work. For any of these models, see on the use of their work. For any of these models, see
<model-name>.source.txt for more legal information. Contact us if you <model-name>.source.txt for more legal information. Contact us if you
are a copyright holder and believe that we credited you inproperly or are a copyright holder and believe that we credited you inproperly or
if you don't want your files to appear in the repository. if you don't want your files to appear in the repository.
****************************************************************************** ******************************************************************************
Poly2Tri Copyright (c) 2009-2010, Poly2Tri Contributors Poly2Tri Copyright (c) 2009-2010, Poly2Tri Contributors
http://code.google.com/p/poly2tri/ http://code.google.com/p/poly2tri/
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met: are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, * Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, * Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution. and/or other materials provided with the distribution.
* Neither the name of Poly2Tri nor the names of its contributors may be * Neither the name of Poly2Tri nor the names of its contributors may be
used to endorse or promote products derived from this software without specific used to endorse or promote products derived from this software without specific
prior written permission. prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

290
Readme.md
View File

@ -1,143 +1,147 @@
Open Asset Import Library (assimp) Open Asset Import Library (assimp)
================================== ==================================
[![Linux Build Status](https://travis-ci.org/assimp/assimp.svg)](https://travis-ci.org/assimp/assimp) [![Linux Build Status](https://travis-ci.org/assimp/assimp.svg)](https://travis-ci.org/assimp/assimp)
[![Windows Build Status](https://ci.appveyor.com/api/projects/status/tmo433wax6u6cjp4?svg=true)](https://ci.appveyor.com/project/kimkulling/assimp) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/tmo433wax6u6cjp4?svg=true)](https://ci.appveyor.com/project/kimkulling/assimp)
<a href="https://scan.coverity.com/projects/5607"> <a href="https://scan.coverity.com/projects/5607">
<img alt="Coverity Scan Build Status" <img alt="Coverity Scan Build Status"
src="https://scan.coverity.com/projects/5607/badge.svg"/> src="https://scan.coverity.com/projects/5607/badge.svg"/>
</a> </a>
[![Coverage Status](https://coveralls.io/repos/github/assimp/assimp/badge.svg?branch=master)](https://coveralls.io/github/assimp/assimp?branch=master) [![Coverage Status](https://coveralls.io/repos/github/assimp/assimp/badge.svg?branch=master)](https://coveralls.io/github/assimp/assimp?branch=master)
<br> <br>
APIs are provided for C and C++. There are various bindings to other languages (C#, Java, Python, Delphi, D). Assimp also runs on Android and iOS. APIs are provided for C and C++. There are various bindings to other languages (C#, Java, Python, Delphi, D). Assimp also runs on Android and iOS.
Additionally, assimp features various __mesh post processing tools__: normals and tangent space generation, triangulation, vertex cache locality optimization, removal of degenerate primitives and duplicate vertices, sorting by primitive type, merging of redundant materials and many more. Additionally, assimp features various __mesh post processing tools__: normals and tangent space generation, triangulation, vertex cache locality optimization, removal of degenerate primitives and duplicate vertices, sorting by primitive type, merging of redundant materials and many more.
This is the development trunk containing the latest features and bugfixes. For productive use though, we recommend one of the stable releases available from [assimp.sf.net](http://assimp.sf.net) or from *nix package repositories. This is the development trunk containing the latest features and bugfixes. For productive use though, we recommend one of the stable releases available from [assimp.sf.net](http://assimp.sf.net) or from *nix package repositories.
The current build status is: The current build status is:
Gitter chat: [![Join the chat at https://gitter.im/assimp/assimp](https://badges.gitter.im/assimp/assimp.svg)](https://gitter.im/assimp/assimp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)<br> Gitter chat: [![Join the chat at https://gitter.im/assimp/assimp](https://badges.gitter.im/assimp/assimp.svg)](https://gitter.im/assimp/assimp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)<br>
__[open3mod](https://github.com/acgessler/open3mod) is a powerful 3D model viewer based on Assimp's import and export abilities.__ And we also have an IRC-channel at freenode: #assetimporterlib . You can easily join us via: [KiwiIRC/freenote](https://kiwiirc.com/client/irc.freenode.net), choose your nickname and type
> /join #assetimporterlib
Please check our Wiki as well: https://github.com/assimp/assimp/wiki
<br>
#### Supported file formats #### __[open3mod](https://github.com/acgessler/open3mod) is a powerful 3D model viewer based on Assimp's import and export abilities.__
A full list [is here](http://assimp.org/main_features_formats.html). Please check our Wiki as well: https://github.com/assimp/assimp/wiki
__Importers__:
#### Supported file formats ####
- 3DS
- BLEND (Blender) A full list [is here](http://assimp.org/main_features_formats.html).
- DAE/Collada __Importers__:
- FBX
- IFC-STEP - 3DS
- ASE - BLEND (Blender)
- DXF - DAE/Collada
- HMP - FBX
- MD2 - IFC-STEP
- MD3 - ASE
- MD5 - DXF
- MDC - HMP
- MDL - MD2
- NFF - MD3
- PLY - MD5
- STL - MDC
- X - MDL
- OBJ - NFF
- OpenGEX - PLY
- SMD - STL
- LWO - X
- LXO - OBJ
- LWS - OpenGEX
- TER - SMD
- AC3D - LWO
- MS3D - LXO
- COB - LWS
- Q3BSP - TER
- XGL - AC3D
- CSM - MS3D
- BVH - COB
- B3D - Q3BSP
- NDO - XGL
- Ogre Binary - CSM
- Ogre XML - BVH
- Q3D - B3D
- ASSBIN (Assimp custom format) - NDO
- glTF (partial) - Ogre Binary
- 3MF - Ogre XML
- Q3D
Additionally, some formats are supported by dependency on non-free code or external SDKs (not built by default): - ASSBIN (Assimp custom format)
- glTF (partial)
- C4D (https://github.com/acgessler/assimp-cinema4d) - 3MF
__Exporters__: Additionally, some formats are supported by dependency on non-free code or external SDKs (not built by default):
- DAE (Collada) - C4D (https://github.com/acgessler/assimp-cinema4d)
- STL
- OBJ __Exporters__:
- PLY
- X - DAE (Collada)
- 3DS - STL
- JSON (for WebGl, via https://github.com/acgessler/assimp2json) - OBJ
- ASSBIN - PLY
- STEP - X
- glTF (partial) - 3DS
- JSON (for WebGl, via https://github.com/acgessler/assimp2json)
### Building ### - ASSBIN
Take a look into the `INSTALL` file. Our build system is CMake, if you used CMake before there is a good chance you know what to do. - STEP
- glTF (partial)
### Ports ###
* [Android](port/AndroidJNI/README.md) ### Building ###
* [Python](port/PyAssimp/README.md) Take a look into the `INSTALL` file. Our build system is CMake, if you used CMake before there is a good chance you know what to do.
* [.NET](port/AssimpNET/Readme.md)
* [Pascal](port/AssimpPascal/Readme.md) ### Ports ###
* [Javascript (Alpha)](https://github.com/makc/assimp2json) * [Android](port/AndroidJNI/README.md)
* [Python](port/PyAssimp/README.md)
#### Repository structure #### * [.NET](port/AssimpNET/Readme.md)
Open Asset Import Library is implemented in C++. The directory structure is: * [Pascal](port/AssimpPascal/Readme.md)
* [Javascript (Alpha)](https://github.com/makc/assimp2json)
/code Source code
/contrib Third-party libraries #### Repository structure ####
/doc Documentation (doxysource and pre-compiled docs) Open Asset Import Library is implemented in C++. The directory structure is:
/include Public header C and C++ header files
/scripts Scripts used to generate the loading code for some formats /code Source code
/port Ports to other languages and scripts to maintain those. /contrib Third-party libraries
/test Unit- and regression tests, test suite of models /doc Documentation (doxysource and pre-compiled docs)
/tools Tools (old assimp viewer, command line `assimp`) /include Public header C and C++ header files
/samples A small number of samples to illustrate possible /scripts Scripts used to generate the loading code for some formats
use cases for Assimp /port Ports to other languages and scripts to maintain those.
/workspaces Build environments for vc,xcode,... (deprecated, /test Unit- and regression tests, test suite of models
CMake has superseeded all legacy build options!) /tools Tools (old assimp viewer, command line `assimp`)
/samples A small number of samples to illustrate possible
use cases for Assimp
### Where to get help ### /workspaces Build environments for vc,xcode,... (deprecated,
For more information, visit [our website](http://assimp.org/). Or check out the `./doc`- folder, which contains the official documentation in HTML format. CMake has superseeded all legacy build options!)
(CHMs for Windows are included in some release packages and should be located right here in the root folder).
If the docs don't solve your problem, ask on [StackOverflow](http://stackoverflow.com/questions/tagged/assimp?sort=newest). If you think you found a bug, please open an issue on Github. ### Where to get help ###
For more information, visit [our website](http://assimp.org/). Or check out the `./doc`- folder, which contains the official documentation in HTML format.
For development discussions, there is also a (very low-volume) mailing list, _assimp-discussions_ (CHMs for Windows are included in some release packages and should be located right here in the root folder).
[(subscribe here)]( https://lists.sourceforge.net/lists/listinfo/assimp-discussions)
If the docs don't solve your problem, ask on [StackOverflow](http://stackoverflow.com/questions/tagged/assimp?sort=newest). If you think you found a bug, please open an issue on Github.
Open Asset Import Library is a library to load various 3d file formats into a shared, in-memory format. It supports more than __40 file formats__ for import and a growing selection of file formats for export.
For development discussions, there is also a (very low-volume) mailing list, _assimp-discussions_
And we also have a Gitter-channel:Gitter [![Join the chat at https://gitter.im/assimp/assimp](https://badges.gitter.im/assimp/assimp.svg)](https://gitter.im/assimp/assimp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)<br> [(subscribe here)]( https://lists.sourceforge.net/lists/listinfo/assimp-discussions)
### Contributing ### Open Asset Import Library is a library to load various 3d file formats into a shared, in-memory format. It supports more than __40 file formats__ for import and a growing selection of file formats for export.
Contributions to assimp are highly appreciated. The easiest way to get involved is to submit
a pull request with your changes against the main repository's `master` branch. And we also have a Gitter-channel:Gitter [![Join the chat at https://gitter.im/assimp/assimp](https://badges.gitter.im/assimp/assimp.svg)](https://gitter.im/assimp/assimp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)<br>
### Donate ### ### Contributing ###
If you like assimp, consider buying us a beer (or two): Contributions to assimp are highly appreciated. The easiest way to get involved is to submit
[Donate](http://sourceforge.net/donate/index.php?group_id=226462) a pull request with your changes against the main repository's `master` branch.
### License ### ### Donate ###
Our license is based on the modified, __3-clause BSD__-License. If you like assimp, consider buying us a beer (or two):
[Donate](http://sourceforge.net/donate/index.php?group_id=226462)
An _informal_ summary is: do whatever you want, but include Assimp's license text with your product -
and don't sue us if our code doesn't work. Note that, unlike LGPLed code, you may link statically to Assimp. ### License ###
For the legal details, see the `LICENSE` file. Our license is based on the modified, __3-clause BSD__-License.
### Why this name ### An _informal_ summary is: do whatever you want, but include Assimp's license text with your product -
Sorry, we're germans :-), no english native speakers ... and don't sue us if our code doesn't work. Note that, unlike LGPLed code, you may link statically to Assimp.
For the legal details, see the `LICENSE` file.
### Why this name ###
Sorry, we're germans :-), no english native speakers ...

View File

@ -59,10 +59,13 @@ endmacro(clear_if_changed)
# Try to get some hints from pkg-config, if available # Try to get some hints from pkg-config, if available
macro(use_pkgconfig PREFIX PKGNAME) macro(use_pkgconfig PREFIX PKGNAME)
find_package(PkgConfig) # Android does not support PKG_CONFIG so we disable it
if (PKG_CONFIG_FOUND) IF ( NOT ANDROID )
pkg_check_modules(${PREFIX} ${PKGNAME}) find_package(PkgConfig)
endif () if (PKG_CONFIG_FOUND)
pkg_check_modules(${PREFIX} ${PKGNAME})
endif ()
ENDIF ( NOT ANDROID )
endmacro (use_pkgconfig) endmacro (use_pkgconfig)
# Couple a set of release AND debug libraries (or frameworks) # Couple a set of release AND debug libraries (or frameworks)

View File

@ -11,7 +11,7 @@
# Once done, this will define # Once done, this will define
# #
# ZLIB_FOUND - system has ZLIB # ZLIB_FOUND - system has ZLIB
# ZLIB_INCLUDE_DIRS - the ZLIB include directories # ZLIB_INCLUDE_DIRS - the ZLIB include directories
# ZLIB_LIBRARIES - link these to use ZLIB # ZLIB_LIBRARIES - link these to use ZLIB
include(FindPkgMacros) include(FindPkgMacros)

View File

@ -1858,7 +1858,7 @@ void Parser::ParseLV3MeshCFaceListBlock(unsigned int iNumFaces, ASE::Mesh& mesh)
++filePtr; ++filePtr;
// Face entry // Face entry
if (TokenMatch(filePtr,"MESH_CFACE" ,11)) if (TokenMatch(filePtr,"MESH_CFACE" ,10))
{ {
unsigned int aiValues[3]; unsigned int aiValues[3];
unsigned int iIndex = 0; unsigned int iIndex = 0;

View File

@ -165,6 +165,7 @@ void BlenderImporter::InternReadFile( const std::string& pFile,
free_it free_it_really(dest); free_it free_it_really(dest);
#endif #endif
FileDatabase file; FileDatabase file;
std::shared_ptr<IOStream> stream(pIOHandler->Open(pFile,"rb")); std::shared_ptr<IOStream> stream(pIOHandler->Open(pFile,"rb"));
if (!stream) { if (!stream) {

View File

@ -187,10 +187,16 @@ IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
SOURCE_GROUP( C4D FILES ${C4D_SRCS}) SOURCE_GROUP( C4D FILES ${C4D_SRCS})
ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER ) ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
# if this variable is set to TRUE, the user can manually disable importers by setting
# ASSIMP_BUILD_XXX_IMPORTER to FALSE for each importer
# if this variable is set to FALSE, the user can manually enable importers by setting
# ASSIMP_BUILD_XXX_IMPORTER to TRUE for each importer
OPTION(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_IMPORTER value" TRUE)
# macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader # macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
# this way selective loaders can be compiled (reduces filesize + compile time) # this way selective loaders can be compiled (reduces filesize + compile time)
MACRO(ADD_ASSIMP_IMPORTER name) MACRO(ADD_ASSIMP_IMPORTER name)
OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" TRUE) OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" ${ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT})
IF(ASSIMP_BUILD_${name}_IMPORTER) IF(ASSIMP_BUILD_${name}_IMPORTER)
LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN}) LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN})
SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}") SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}")

View File

@ -49,7 +49,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "StringComparison.h" #include "StringComparison.h"
#include "StringUtils.h" #include "StringUtils.h"
#include <string> #include <string>
#include <sstream> #include <sstream>
#include <vector> #include <vector>
@ -68,7 +67,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
namespace Assimp { namespace Assimp {
namespace D3MF { namespace D3MF {
namespace XmlTag { namespace XmlTag {
static const std::string model = "model"; static const std::string model = "model";
static const std::string metadata = "metadata"; static const std::string metadata = "metadata";

View File

@ -126,7 +126,7 @@ size_t DefaultIOStream::FileSize() const
if (0 != err) if (0 != err)
return 0; return 0;
mCachedSize = (size_t) (fileStat.st_size); mCachedSize = (size_t) (fileStat.st_size);
#elif defined __GNUC__ || defined __APPLE__ || defined __MACH__ #elif defined __GNUC__ || defined __APPLE__ || defined __MACH__ || defined __FreeBSD__
struct stat fileStat; struct stat fileStat;
int err = stat(mFilename.c_str(), &fileStat ); int err = stat(mFilename.c_str(), &fileStat );
if (0 != err) if (0 != err)

View File

@ -108,7 +108,7 @@ static const aiImporterDesc desc = {
0, 0,
0, 0,
0, 0,
"ifc ifczip" "ifc ifczip stp"
}; };
@ -128,11 +128,9 @@ IFCImporter::~IFCImporter()
bool IFCImporter::CanRead( const std::string& pFile, IOSystem* pIOHandler, bool checkSig) const bool IFCImporter::CanRead( const std::string& pFile, IOSystem* pIOHandler, bool checkSig) const
{ {
const std::string& extension = GetExtension(pFile); const std::string& extension = GetExtension(pFile);
if (extension == "ifc" || extension == "ifczip") { if (extension == "ifc" || extension == "ifczip" || extension == "stp" ) {
return true; return true;
} } else if ((!extension.length() || checkSig) && pIOHandler) {
else if ((!extension.length() || checkSig) && pIOHandler) {
// note: this is the common identification for STEP-encoded files, so // note: this is the common identification for STEP-encoded files, so
// it is only unambiguous as long as we don't support any further // it is only unambiguous as long as we don't support any further
// file formats with STEP as their encoding. // file formats with STEP as their encoding.

View File

@ -46,6 +46,9 @@ directly (unless you are adding new loaders), instead use the
corresponding preprocessor flag to selectively disable formats. corresponding preprocessor flag to selectively disable formats.
*/ */
#include <vector>
#include "BaseImporter.h"
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// Importers // Importers
// (include_new_importers_here) // (include_new_importers_here)

View File

@ -90,14 +90,16 @@ namespace
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer // Constructor to be privately used by Importer
PLYImporter::PLYImporter() PLYImporter::PLYImporter()
: mBuffer(), : mBuffer()
pcDOM() , pcDOM(){
{} // empty
}
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// Destructor, private as well // Destructor, private as well
PLYImporter::~PLYImporter() PLYImporter::~PLYImporter() {
{} // empty
}
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// Returns whether the class can handle the format of the given file. // Returns whether the class can handle the format of the given file.

View File

@ -206,29 +206,17 @@ PLY::ESemantic PLY::Property::ParseSemantic(const char* pCur,const char** pCurOu
else if (TokenMatch(pCur,"x",1)) else if (TokenMatch(pCur,"x",1))
{ {
eOut = PLY::EST_XCoord; eOut = PLY::EST_XCoord;
} } else if (TokenMatch(pCur,"y",1)) {
else if (TokenMatch(pCur,"y",1))
{
eOut = PLY::EST_YCoord; eOut = PLY::EST_YCoord;
} } else if (TokenMatch(pCur,"z",1)) {
else if (TokenMatch(pCur,"z",1))
{
eOut = PLY::EST_ZCoord; eOut = PLY::EST_ZCoord;
} } else if (TokenMatch(pCur,"nx",2)) {
else if (TokenMatch(pCur,"nx",2))
{
eOut = PLY::EST_XNormal; eOut = PLY::EST_XNormal;
} } else if (TokenMatch(pCur,"ny",2)) {
else if (TokenMatch(pCur,"ny",2))
{
eOut = PLY::EST_YNormal; eOut = PLY::EST_YNormal;
} } else if (TokenMatch(pCur,"nz",2)) {
else if (TokenMatch(pCur,"nz",2))
{
eOut = PLY::EST_ZNormal; eOut = PLY::EST_ZNormal;
} } else {
else
{
DefaultLogger::get()->info("Found unknown property semantic in file. This is ok"); DefaultLogger::get()->info("Found unknown property semantic in file. This is ok");
SkipLine(&pCur); SkipLine(&pCur);
} }

View File

@ -290,12 +290,12 @@ private:
throw DeadlyImportError("End of file or stream limit was reached"); throw DeadlyImportError("End of file or stream limit was reached");
} }
#ifdef __arm__ ///*#ifdef __arm__
T f; T f;
::memcpy (&f, current, sizeof(T)); ::memcpy (&f, current, sizeof(T));
#else //#else*/
T f = *((const T*)current); // T f = *((const T*)current);
#endif //#endif
Intern :: Getter<SwapEndianess,T,RuntimeSwitch>() (&f,le); Intern :: Getter<SwapEndianess,T,RuntimeSwitch>() (&f,le);
current += sizeof(T); current += sizeof(T);

View File

@ -1,80 +1,80 @@
// Microsoft Visual C++ generated resource script. // Microsoft Visual C++ generated resource script.
// //
#include "resource.h" #include "resource.h"
#include "..\..\revision.h" #include "..\..\revision.h"
#define APSTUDIO_READONLY_SYMBOLS #define APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Generated from the TEXTINCLUDE 2 resource. // Generated from the TEXTINCLUDE 2 resource.
// //
#define APSTUDIO_HIDDEN_SYMBOLS #define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h" #include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS #undef APSTUDIO_HIDDEN_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS #undef APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Deutsch (Deutschland) resources // Deutsch (Deutschland) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
#ifdef _WIN32 #ifdef _WIN32
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
#pragma code_page(1252) #pragma code_page(1252)
#endif //_WIN32 #endif //_WIN32
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Version // Version
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,1,SVNRevision, 0 FILEVERSION 1,1,SVNRevision, 0
PRODUCTVERSION 1,1,SVNRevision,0 PRODUCTVERSION 1,1,SVNRevision,0
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
#else #else
FILEFLAGS 0x0L FILEFLAGS 0x0L
#endif #endif
FILEOS 0x4L FILEOS 0x4L
FILETYPE 0x7L FILETYPE 0x7L
FILESUBTYPE 0x0L FILESUBTYPE 0x0L
BEGIN BEGIN
BLOCK "StringFileInfo" BLOCK "StringFileInfo"
BEGIN BEGIN
BLOCK "040704b0" BLOCK "040704b0"
BEGIN BEGIN
VALUE "Comments", "Licensed under a 3-clause BSD license" VALUE "Comments", "Licensed under a 3-clause BSD license"
VALUE "CompanyName", "assimp team" VALUE "CompanyName", "assimp team"
VALUE "FileDescription", "Open Asset Import Library" VALUE "FileDescription", "Open Asset Import Library"
VALUE "FileVersion", 1,1,SVNRevision,0 VALUE "FileVersion", 1,1,SVNRevision,0
VALUE "InternalName", "assimp " VALUE "InternalName", "assimp "
VALUE "LegalCopyright", "Copyright (C) 2006-2010" VALUE "LegalCopyright", "Copyright (C) 2006-2010"
VALUE "OriginalFilename", "assimpNN.dll" VALUE "OriginalFilename", "assimpNN.dll"
VALUE "ProductName", "Open Asset Import Library" VALUE "ProductName", "Open Asset Import Library"
VALUE "ProductVersion", 1,1,SVNRevision,0 VALUE "ProductVersion", 1,1,SVNRevision,0
,0 ,0
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"
BEGIN BEGIN
VALUE "Translation", 0x407, 1200 VALUE "Translation", 0x407, 1200
END END
END END
#endif // Deutsch (Deutschland) resources #endif // Deutsch (Deutschland) resources
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED #ifndef APSTUDIO_INVOKED
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Generated from the TEXTINCLUDE 3 resource. // Generated from the TEXTINCLUDE 3 resource.
// //
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED #endif // not APSTUDIO_INVOKED

View File

@ -1,72 +1,72 @@
/* /*
* Poly2Tri Copyright (c) 2009-2010, Poly2Tri Contributors * Poly2Tri Copyright (c) 2009-2010, Poly2Tri Contributors
* http://code.google.com/p/poly2tri/ * http://code.google.com/p/poly2tri/
* *
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modification, * Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met: * are permitted provided that the following conditions are met:
* *
* * Redistributions of source code must retain the above copyright notice, * * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer. * this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice, * * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation * this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution. * and/or other materials provided with the distribution.
* * Neither the name of Poly2Tri nor the names of its contributors may be * * Neither the name of Poly2Tri nor the names of its contributors may be
* used to endorse or promote products derived from this software without specific * used to endorse or promote products derived from this software without specific
* prior written permission. * prior written permission.
* *
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include "cdt.h" #include "cdt.h"
namespace p2t { namespace p2t {
CDT::CDT(std::vector<Point*> polyline) CDT::CDT(std::vector<Point*> polyline)
{ {
sweep_context_ = new SweepContext(polyline); sweep_context_ = new SweepContext(polyline);
sweep_ = new Sweep; sweep_ = new Sweep;
} }
void CDT::AddHole(std::vector<Point*> polyline) void CDT::AddHole(std::vector<Point*> polyline)
{ {
sweep_context_->AddHole(polyline); sweep_context_->AddHole(polyline);
} }
void CDT::AddPoint(Point* point) { void CDT::AddPoint(Point* point) {
sweep_context_->AddPoint(point); sweep_context_->AddPoint(point);
} }
void CDT::Triangulate() void CDT::Triangulate()
{ {
sweep_->Triangulate(*sweep_context_); sweep_->Triangulate(*sweep_context_);
} }
std::vector<p2t::Triangle*> CDT::GetTriangles() std::vector<p2t::Triangle*> CDT::GetTriangles()
{ {
return sweep_context_->GetTriangles(); return sweep_context_->GetTriangles();
} }
std::list<p2t::Triangle*> CDT::GetMap() std::list<p2t::Triangle*> CDT::GetMap()
{ {
return sweep_context_->GetMap(); return sweep_context_->GetMap();
} }
CDT::~CDT() CDT::~CDT()
{ {
delete sweep_context_; delete sweep_context_;
delete sweep_; delete sweep_;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -45,7 +45,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef AI_COLOR4D_H_INC #ifndef AI_COLOR4D_H_INC
#define AI_COLOR4D_H_INC #define AI_COLOR4D_H_INC
#include "./Compiler/pushpack1.h"
#include "defs.h" #include "defs.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -89,7 +88,7 @@ public:
// Red, green, blue and alpha color values // Red, green, blue and alpha color values
TReal r, g, b, a; TReal r, g, b, a;
} PACK_STRUCT; // !struct aiColor4D }; // !struct aiColor4D
typedef aiColor4t<ai_real> aiColor4D; typedef aiColor4t<ai_real> aiColor4D;
@ -97,10 +96,8 @@ typedef aiColor4t<ai_real> aiColor4D;
struct aiColor4D { struct aiColor4D {
ai_real r, g, b, a; ai_real r, g, b, a;
} PACK_STRUCT; };
#endif // __cplusplus #endif // __cplusplus
#include "./Compiler/poppack1.h"
#endif // AI_COLOR4D_H_INC #endif // AI_COLOR4D_H_INC

View File

@ -76,12 +76,34 @@ AI_FORCE_INLINE const aiColor4t<TReal>& aiColor4t<TReal>::operator /= (TReal f)
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>
AI_FORCE_INLINE TReal aiColor4t<TReal>::operator[](unsigned int i) const { AI_FORCE_INLINE TReal aiColor4t<TReal>::operator[](unsigned int i) const {
return *(&r + i); //return *(&r + i);
switch ( i ) {
case 0:
return r;
case 1:
return g;
case 2:
return b;
default:
break;
}
return r;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>
AI_FORCE_INLINE TReal& aiColor4t<TReal>::operator[](unsigned int i) { AI_FORCE_INLINE TReal& aiColor4t<TReal>::operator[](unsigned int i) {
return *(&r + i); // return *(&r + i);
switch ( i ) {
case 0:
return r;
case 1:
return g;
case 2:
return b;
default:
break;
}
return r;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>

View File

@ -46,7 +46,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef AI_MATRIX3X3_H_INC #ifndef AI_MATRIX3X3_H_INC
#define AI_MATRIX3X3_H_INC #define AI_MATRIX3X3_H_INC
#include "./Compiler/pushpack1.h"
#include "defs.h" #include "defs.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -153,7 +152,7 @@ public:
/** @brief A function for creating a rotation matrix that rotates a /** @brief A function for creating a rotation matrix that rotates a
* vector called "from" into another vector called "to". * vector called "from" into another vector called "to".
* Input : from[3], to[3] which both must be *normalized* non-zero vectors * Input : from[3], to[3] which both must be *normalized* non-zero vectors
* Output: mtx[3][3] -- a 3x3 matrix in colum-major form * Output: mtx[3][3] -- a 3x3 matrix in column-major form
* Authors: Tomas Möller, John Hughes * Authors: Tomas Möller, John Hughes
* "Efficiently Building a Matrix to Rotate One Vector to Another" * "Efficiently Building a Matrix to Rotate One Vector to Another"
* Journal of Graphics Tools, 4(4):1-4, 1999 * Journal of Graphics Tools, 4(4):1-4, 1999
@ -165,7 +164,7 @@ public:
TReal a1, a2, a3; TReal a1, a2, a3;
TReal b1, b2, b3; TReal b1, b2, b3;
TReal c1, c2, c3; TReal c1, c2, c3;
} PACK_STRUCT; };
typedef aiMatrix3x3t<ai_real> aiMatrix3x3; typedef aiMatrix3x3t<ai_real> aiMatrix3x3;
@ -175,10 +174,8 @@ struct aiMatrix3x3 {
ai_real a1, a2, a3; ai_real a1, a2, a3;
ai_real b1, b2, b3; ai_real b1, b2, b3;
ai_real c1, c2, c3; ai_real c1, c2, c3;
} PACK_STRUCT; };
#endif // __cplusplus #endif // __cplusplus
#include "./Compiler/poppack1.h"
#endif // AI_MATRIX3X3_H_INC #endif // AI_MATRIX3X3_H_INC

View File

@ -101,16 +101,34 @@ inline aiMatrix3x3t<TReal> aiMatrix3x3t<TReal>::operator* (const aiMatrix3x3t<TR
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>
inline TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex) inline TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex) {
{ switch ( p_iIndex ) {
return &this->a1 + p_iIndex * 3; case 0:
return &a1;
case 1:
return &b1;
case 2:
return &c1;
default:
break;
}
return &a1;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>
inline const TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex) const inline const TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex) const {
{ switch ( p_iIndex ) {
return &this->a1 + p_iIndex * 3; case 0:
return &a1;
case 1:
return &b1;
case 2:
return &c1;
default:
break;
}
return &a1;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------

View File

@ -46,7 +46,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define AI_MATRIX4X4_H_INC #define AI_MATRIX4X4_H_INC
#include "vector3.h" #include "vector3.h"
#include "./Compiler/pushpack1.h"
#include "defs.h" #include "defs.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -257,7 +256,7 @@ public:
TReal b1, b2, b3, b4; TReal b1, b2, b3, b4;
TReal c1, c2, c3, c4; TReal c1, c2, c3, c4;
TReal d1, d2, d3, d4; TReal d1, d2, d3, d4;
} PACK_STRUCT; };
typedef aiMatrix4x4t<ai_real> aiMatrix4x4; typedef aiMatrix4x4t<ai_real> aiMatrix4x4;
@ -268,11 +267,9 @@ struct aiMatrix4x4 {
ai_real b1, b2, b3, b4; ai_real b1, b2, b3, b4;
ai_real c1, c2, c3, c4; ai_real c1, c2, c3, c4;
ai_real d1, d2, d3, d4; ai_real d1, d2, d3, d4;
} PACK_STRUCT; };
#endif // __cplusplus #endif // __cplusplus
#include "./Compiler/poppack1.h"
#endif // AI_MATRIX4X4_H_INC #endif // AI_MATRIX4X4_H_INC

View File

@ -243,9 +243,19 @@ inline TReal* aiMatrix4x4t<TReal>::operator[](unsigned int p_iIndex) {
if (p_iIndex > 3) { if (p_iIndex > 3) {
return NULL; return NULL;
} }
switch ( p_iIndex ) {
// XXX this is UB. Has been for years. The fact that it works now does not make it better. case 0:
return &this->a1 + p_iIndex * 4; return &a1;
case 1:
return &b1;
case 2:
return &c1;
case 3:
return &d1;
default:
break;
}
return &a1;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------
@ -255,8 +265,19 @@ inline const TReal* aiMatrix4x4t<TReal>::operator[](unsigned int p_iIndex) const
return NULL; return NULL;
} }
// XXX same switch ( p_iIndex ) {
return &this->a1 + p_iIndex * 4; case 0:
return &a1;
case 1:
return &b1;
case 2:
return &c1;
case 3:
return &d1;
default:
break;
}
return &a1;
} }
// ---------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------

View File

@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# include <math.h> # include <math.h>
#endif #endif
#include "./Compiler/pushpack1.h"
#include "defs.h" #include "defs.h"
#ifdef __cplusplus #ifdef __cplusplus
@ -126,7 +125,7 @@ public:
const aiVector3t SymMul(const aiVector3t& o); const aiVector3t SymMul(const aiVector3t& o);
TReal x, y, z; TReal x, y, z;
} PACK_STRUCT; };
typedef aiVector3t<ai_real> aiVector3D; typedef aiVector3t<ai_real> aiVector3D;
@ -135,16 +134,12 @@ typedef aiVector3t<ai_real> aiVector3D;
struct aiVector3D { struct aiVector3D {
ai_real x, y, z; ai_real x, y, z;
} PACK_STRUCT; };
#endif // __cplusplus #endif // __cplusplus
#include "./Compiler/poppack1.h"
#ifdef __cplusplus #ifdef __cplusplus
#endif // __cplusplus #endif // __cplusplus
#endif // AI_VECTOR3D_H_INC #endif // AI_VECTOR3D_H_INC

View File

@ -141,12 +141,34 @@ AI_FORCE_INLINE aiVector3t<TReal>& aiVector3t<TReal>::operator *= (const aiMatri
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>
AI_FORCE_INLINE TReal aiVector3t<TReal>::operator[](unsigned int i) const { AI_FORCE_INLINE TReal aiVector3t<TReal>::operator[](unsigned int i) const {
return *(&x + i); // return *(&x + i);
switch (i) {
case 0:
return x;
case 1:
return y;
case 2:
return z;
default:
break;
}
return x;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>
AI_FORCE_INLINE TReal& aiVector3t<TReal>::operator[](unsigned int i) { AI_FORCE_INLINE TReal& aiVector3t<TReal>::operator[](unsigned int i) {
return *(&x + i); // return *(&x + i);
switch (i) {
case 0:
return x;
case 1:
return y;
case 2:
return z;
default:
break;
}
return x;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
template <typename TReal> template <typename TReal>

View File

@ -46,7 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <android/api-level.h> #include <android/api-level.h>
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT) #if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
#include <libgen.h>
#include <stdlib.h> #include <stdlib.h>
#include <sys/stat.h>
#include <android/log.h> #include <android/log.h>
#include <android/asset_manager.h> #include <android/asset_manager.h>
#include <android/asset_manager_jni.h> #include <android/asset_manager_jni.h>
@ -100,6 +102,27 @@ void AndroidJNIIOSystem::AndroidActivityInit(ANativeActivity* activity)
mApkAssetManager = activity->assetManager; mApkAssetManager = activity->assetManager;
} }
// ------------------------------------------------------------------------------------------------
// Create the directory for the extracted resource
static int mkpath(std::string path, mode_t mode)
{
if (mkdir(path.c_str(), mode) == -1) {
switch(errno) {
case ENOENT:
if (mkpath(path.substr(0, path.find_last_of('/')), mode) == -1)
return -1;
else
return mkdir(path.c_str(), mode);
case EEXIST:
return 0;
default:
return -1;
}
}
return 0;
}
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// Extracts android asset // Extracts android asset
bool AndroidJNIIOSystem::AndroidExtractAsset(std::string name) bool AndroidJNIIOSystem::AndroidExtractAsset(std::string name)
@ -131,6 +154,15 @@ bool AndroidJNIIOSystem::AndroidExtractAsset(std::string name)
// Close // Close
AAsset_close(asset); AAsset_close(asset);
// Prepare directory for output buffer
std::string directoryNewPath = newPath;
directoryNewPath = dirname(&directoryNewPath[0]);
if (mkpath(directoryNewPath, S_IRUSR | S_IWUSR | S_IXUSR) == -1) {
__android_log_print(ANDROID_LOG_ERROR, "assimp",
"Can not create the directory for the output file");
}
// Prepare output buffer // Prepare output buffer
std::ofstream assetExtracted(newPath.c_str(), std::ofstream assetExtracted(newPath.c_str(),
std::ios::out | std::ios::binary); std::ios::out | std::ios::binary);

View File

@ -121,6 +121,7 @@ SET( TEST_SRCS
unit/utTypes.cpp unit/utTypes.cpp
unit/utVertexTriangleAdjacency.cpp unit/utVertexTriangleAdjacency.cpp
unit/utVersion.cpp unit/utVersion.cpp
unit/utVector3.cpp
unit/utXImporterExporter.cpp unit/utXImporterExporter.cpp
) )

View File

@ -1,5 +1,5 @@
# File produced by Open Asset Import Library (http://www.assimp.sf.net) # File produced by Open Asset Import Library (http://www.assimp.sf.net)
# (assimp v3.3.102088114) # (assimp v3.3.128220959)
mtllib spider.obj.mtl mtllib spider.obj.mtl
@ -14,7 +14,7 @@ v -6.442715167999268 10.77740478515625 -0.5375289916992188
v -8.120363235473633 15.6844596862793 -10.5 v -8.120363235473633 15.6844596862793 -10.5
v -0.8867700099945068 23.4237174987793 -4.342854022979736 v -0.8867700099945068 23.4237174987793 -4.342854022979736
v -0.8867700099945068 23.4237174987793 -16.65714454650879 v -0.8867700099945068 23.4237174987793 -16.65714454650879
v 14.40229797363281 32.89186859130859 -26.41482543945312 v 14.40229797363281 32.89186859130859 -26.41482543945313
v 12.95316505432129 36.87333679199219 -11.5 v 12.95316505432129 36.87333679199219 -11.5
v 30.52731704711914 37.50395202636719 -2.733282089233398 v 30.52731704711914 37.50395202636719 -2.733282089233398
v 30.52731704711914 37.50395202636719 -20.26671600341797 v 30.52731704711914 37.50395202636719 -20.26671600341797
@ -23,15 +23,15 @@ v 45.09496688842773 27.71094512939453 2.684845924377441
v 57.93621826171875 30.27653312683105 -11.5 v 57.93621826171875 30.27653312683105 -11.5
v 54.50359344482422 5.934020042419434 -11.5 v 54.50359344482422 5.934020042419434 -11.5
v 51.09176254272461 11.23489952087402 2.684845924377441 v 51.09176254272461 11.23489952087402 2.684845924377441
v 45.09496688842773 27.71094512939453 -25.68484497070312 v 45.09496688842773 27.71094512939453 -25.68484497070313
v 39.18625640869141 16.23099708557129 -35.63270568847656 v 39.18625640869141 16.23099708557129 -35.63270568847656
v 51.09176254272461 11.23489952087402 -25.68484497070312 v 51.09176254272461 11.23489952087402 -25.68484497070313
v 27.52080917358398 27.08032608032227 -34.45156478881836 v 27.52080917358398 27.08032608032227 -34.45156478881836
v 4.568314075469971 16.85711288452148 -26.6196174621582 v 4.568314075469971 16.85711288452148 -26.6196174621582
v 1.160378932952881 4.512683868408203 -27.44916915893555 v 1.160378932952881 4.512683868408203 -27.44916915893555
v 22.65617179870605 10.21453857421875 -39.86968994140625 v 22.65617179870605 10.21453857421875 -39.86968994140625
v 7.838881015777588 -6.414187908172607 -26.6196174621582 v 7.838881015777588 -6.414187908172607 -26.6196174621582
v 30.91004180908203 -12.4627857208252 -26.41482543945312 v 30.91004180908203 -12.4627857208252 -26.41482543945313
v 37.22381591796875 0.4215309917926788 -34.45156478881836 v 37.22381591796875 0.4215309917926788 -34.45156478881836
v 46.22711181640625 -5.630886077880859 -20.26671600341797 v 46.22711181640625 -5.630886077880859 -20.26671600341797
v 32.35918426513672 -16.44425201416016 -11.5 v 32.35918426513672 -16.44425201416016 -11.5
@ -72,11 +72,11 @@ v -18.8264045715332 5.435883045196533 -20.58309173583984
v -32.62586212158203 10.86018753051758 -28.47975921630859 v -32.62586212158203 10.86018753051758 -28.47975921630859
v -41.85661315917969 -0.7548459768295288 -29.43077087402344 v -41.85661315917969 -0.7548459768295288 -29.43077087402344
v -27.9502124786377 1.303017020225525 -23.0814208984375 v -27.9502124786377 1.303017020225525 -23.0814208984375
v -39.19473266601562 -9.356718063354492 -28.47975921630859 v -39.19473266601563 -9.356718063354492 -28.47975921630859
v -31.49889755249023 -9.618716239929199 -16.87730979919434 v -31.49889755249023 -9.618716239929199 -16.87730979919434
v -22.99813652038574 -7.403382778167725 -20.58309173583984 v -22.99813652038574 -7.403382778167725 -20.58309173583984
v -49.71383666992188 -2.983590126037598 1.421121001243591 v -49.71383666992188 -2.983590126037598 1.421121001243591
v -39.19473266601562 -9.356718063354492 8.47976016998291 v -39.19473266601563 -9.356718063354492 8.47976016998291
v -22.99813652038574 -7.403382778167725 0.5830910205841064 v -22.99813652038574 -7.403382778167725 0.5830910205841064
v -31.49889755249023 -9.618716239929199 -3.122689962387085 v -31.49889755249023 -9.618716239929199 -3.122689962387085
v -50.63702392578125 8.975393295288086 -10 v -50.63702392578125 8.975393295288086 -10
@ -95,15 +95,15 @@ v -55.4437255859375 28.01696014404297 -51.02064895629883
v -55.80507659912109 29.50034332275391 -50.36057662963867 v -55.80507659912109 29.50034332275391 -50.36057662963867
v -56.41304779052734 27.51875305175781 -54.60213470458984 v -56.41304779052734 27.51875305175781 -54.60213470458984
v -57.93299102783203 29.20790100097656 -55.03944778442383 v -57.93299102783203 29.20790100097656 -55.03944778442383
v -67.98501586914062 13.43557167053223 -79.02035522460938 v -67.98501586914063 13.43557167053223 -79.02035522460938
v -69.89360046386719 14.10584259033203 -80.14413452148438 v -69.89360046386719 14.10584259033203 -80.14413452148438
v -81.67832183837891 -31.37918090820312 -101.2915573120117 v -81.67832183837891 -31.37918090820313 -101.2915573120117
v -82.77850341796875 -29.84352111816406 -101.2665863037109 v -82.77850341796875 -29.84352111816406 -101.2665863037109
v -45.27461242675781 -1.921316027641296 -17.56256103515625 v -45.27461242675781 -1.921316027641296 -17.56256103515625
v -88.2349853515625 -39.3502311706543 -103.8660430908203 v -88.2349853515625 -39.3502311706543 -103.8660430908203
v -48.86238861083984 8.964324951171875 -36.15071487426758 v -48.86238861083984 8.964324951171875 -36.15071487426758
v -56.92498016357422 29.82746124267578 -49.55580902099609 v -56.92498016357422 29.82746124267578 -49.55580902099609
v -60.01216888427734 29.56021118164062 -54.08668899536133 v -60.01216888427734 29.56021118164063 -54.08668899536133
v -72.06874084472656 14.20652008056641 -79.36090087890625 v -72.06874084472656 14.20652008056641 -79.36090087890625
v -83.47474670410156 -29.51860809326172 -100.4707794189453 v -83.47474670410156 -29.51860809326172 -100.4707794189453
v -48.11187744140625 -2.742969989776611 -19.29600143432617 v -48.11187744140625 -2.742969989776611 -19.29600143432617
@ -112,12 +112,12 @@ v -50.95351028442383 7.973351955413818 -36.14510726928711
v -57.96013641357422 28.75201416015625 -49.21238708496094 v -57.96013641357422 28.75201416015625 -49.21238708496094
v -61.08487701416016 28.31040191650391 -52.46125793457031 v -61.08487701416016 28.31040191650391 -52.46125793457031
v -72.87251281738281 13.66179847717285 -77.26039123535156 v -72.87251281738281 13.66179847717285 -77.26039123535156
v -83.24275207519531 -30.64902877807617 -99.50344848632812 v -83.24275207519531 -30.64902877807617 -99.50344848632813
v -48.33858871459961 -4.09240198135376 -22.38015365600586 v -48.33858871459961 -4.09240198135376 -22.38015365600586
v -87.97438049316406 -40.34838485717773 -103.3615341186523 v -87.97438049316406 -40.34838485717773 -103.3615341186523
v -51.84541320800781 6.477696895599365 -37.66901397705078 v -51.84541320800781 6.477696895599365 -37.66901397705078
v -58.13103866577148 27.08382415771484 -49.58887100219727 v -58.13103866577148 27.08382415771484 -49.58887100219727
v -60.34334564208984 26.39956665039062 -51.38712310791016 v -60.34334564208984 26.39956665039063 -51.38712310791016
v -71.69966125488281 12.8818302154541 -75.42439270019531 v -71.69966125488281 12.8818302154541 -75.42439270019531
v -82.25722503662109 -32.38360595703125 -99.09293365478516 v -82.25722503662109 -32.38360595703125 -99.09293365478516
v -45.78402709960938 -4.953472137451172 -24.49265670776367 v -45.78402709960938 -4.953472137451172 -24.49265670776367
@ -127,7 +127,7 @@ v -57.30899810791016 26.07907104492188 -50.40177917480469
v -58.34596252441406 25.26664733886719 -51.67315673828125 v -58.34596252441406 25.26664733886719 -51.67315673828125
v -69.433349609375 12.45395088195801 -75.23539733886719 v -69.433349609375 12.45395088195801 -75.23539733886719
v -81.26026153564453 -33.41617965698242 -99.54843139648438 v -81.26026153564453 -33.41617965698242 -99.54843139648438
v -42.37185668945312 -4.677759170532227 -24.04270935058594 v -42.37185668945313 -4.677759170532227 -24.04270935058594
v -87.46121978759766 -40.53748321533203 -104.0717544555664 v -87.46121978759766 -40.53748321533203 -104.0717544555664
v -48.75384521484375 6.009276866912842 -40.42763137817383 v -48.75384521484375 6.009276866912842 -40.42763137817383
v -56.11302947998047 26.49437713623047 -51.03896713256836 v -56.11302947998047 26.49437713623047 -51.03896713256836
@ -139,27 +139,27 @@ v -42.83802795410156 -1.822747945785522 -1.17337703704834
v -41.96012115478516 -3.15467095375061 1.817621946334839 v -41.96012115478516 -3.15467095375061 1.817621946334839
v -92.29042816162109 -39.21158981323242 57.38248825073242 v -92.29042816162109 -39.21158981323242 57.38248825073242
v -92.26210784912109 -39.83740234375 57.07994079589844 v -92.26210784912109 -39.83740234375 57.07994079589844
v -91.95950317382812 -39.73274230957031 57.5407600402832 v -91.95950317382813 -39.73274230957031 57.5407600402832
v -49.36812591552734 8.476757049560547 19.08589744567871 v -49.36812591552734 8.476757049560547 19.08589744567871
v -49.19630432128906 7.804555892944336 21.29348754882812 v -49.19630432128906 7.804555892944336 21.29348754882813
v -54.25469207763672 27.27288055419922 30.44888496398926 v -54.25469207763672 27.27288055419922 30.44888496398926
v -54.92575836181641 28.34239959716797 29.36605453491211 v -54.92575836181641 28.34239959716797 29.36605453491211
v -57.45500946044922 28.70623016357422 33.83551406860352 v -57.45500946044922 28.70623016357422 33.83551406860352
v -55.48647308349609 27.49809265136719 33.97690582275391 v -55.48647308349609 27.49809265136719 33.97690582275391
v -67.46834564208984 9.109057426452637 43.49641799926758 v -67.46834564208984 9.109057426452637 43.49641799926758
v -69.61196136474609 9.454971313476562 44.29645156860352 v -69.61196136474609 9.454971313476563 44.29645156860352
v -87.01417541503906 -30.51413726806641 52.42203521728516 v -87.01417541503906 -30.51413726806641 52.42203521728516
v -85.97149658203125 -32.07468414306641 52.63847351074219 v -85.97149658203125 -32.07468414306641 52.63847351074219
v -45.98867797851562 -1.450130939483643 -2.535742998123169 v -45.98867797851563 -1.450130939483643 -2.535742998123169
v -92.60006713867188 -39.16170501708984 56.99636840820312 v -92.60006713867188 -39.16170501708984 56.99636840820313
v -50.88497161865234 7.785149097442627 17.48099899291992 v -50.88497161865234 7.785149097442627 17.48099899291992
v -55.98342132568359 28.08773803710938 28.45757293701172 v -55.98342132568359 28.08773803710938 28.45757293701172
v -59.41564178466797 28.14698791503906 32.74097061157227 v -59.41564178466797 28.14698791503906 32.74097061157227
v -71.61580657958984 8.682785987854004 43.43437957763672 v -71.61580657958984 8.682785987854004 43.43437957763672
v -87.75607299804688 -30.29622077941895 51.63100051879883 v -87.75607299804688 -30.29622077941895 51.63100051879883
v -49.03958129882812 -2.317409992218018 -1.243530988693237 v -49.03958129882813 -2.317409992218018 -1.243530988693237
v -92.65523529052734 -39.6205940246582 56.67316055297852 v -92.65523529052734 -39.6205940246582 56.67316055297852
v -52.60464477539062 6.250553131103516 17.68733215332031 v -52.60464477539063 6.250553131103516 17.68733215332031
v -56.63124847412109 26.70069122314453 28.40756416320801 v -56.63124847412109 26.70069122314453 28.40756416320801
v -59.89194488525391 26.24149322509766 31.51743125915527 v -59.89194488525391 26.24149322509766 31.51743125915527
v -71.97093963623047 7.37397575378418 41.55935287475586 v -71.97093963623047 7.37397575378418 41.55935287475586
@ -184,11 +184,11 @@ v -50.4989013671875 6.274747848510742 22.44142532348633
v -54.47554779052734 25.68461608886719 30.89064788818359 v -54.47554779052734 25.68461608886719 30.89064788818359
v -54.99231719970703 25.43232727050781 33.05861282348633 v -54.99231719970703 25.43232727050781 33.05861282348633
v -66.79914093017578 7.905498027801514 41.6367301940918 v -66.79914093017578 7.905498027801514 41.6367301940918
v -85.4132080078125 -33.80271530151367 52.11734008789062 v -85.4132080078125 -33.80271530151367 52.11734008789063
v -32.53578186035156 -3.15467095375061 -19.16253662109375 v -32.53578186035156 -3.15467095375061 -19.16253662109375
v -34.38373184204102 -1.822747945785522 -16.65216445922852 v -34.38373184204102 -1.822747945785522 -16.65216445922852
v -36.48015213012695 -3.096683979034424 -19.71685028076172 v -36.48015213012695 -3.096683979034424 -19.71685028076172
v -43.38578033447266 -41.58316040039062 -95.21874237060547 v -43.38578033447266 -41.58316040039063 -95.21874237060547
v -43.91326141357422 -41.58873748779297 -95.02735137939453 v -43.91326141357422 -41.58873748779297 -95.02735137939453
v -43.69423675537109 -41.06890106201172 -95.43450164794922 v -43.69423675537109 -41.06890106201172 -95.43450164794922
v -35.0989875793457 7.804555892944336 -38.97930526733398 v -35.0989875793457 7.804555892944336 -38.97930526733398
@ -201,7 +201,7 @@ v -39.32158660888672 4.109056949615479 -79.20964813232422
v -40.77798843383789 4.454970836639404 -80.97431182861328 v -40.77798843383789 4.454970836639404 -80.97431182861328
v -40.8770866394043 -32.42660522460938 -89.88973236083984 v -40.8770866394043 -32.42660522460938 -89.88973236083984
v -41.6864128112793 -30.95858383178711 -90.76108551025391 v -41.6864128112793 -30.95858383178711 -90.76108551025391
v -37.81033325195312 -1.450130939483643 -16.44955062866211 v -37.81033325195313 -1.450130939483643 -16.44955062866211
v -44.16765594482422 -40.94609069824219 -95.34366607666016 v -44.16765594482422 -40.94609069824219 -95.34366607666016
v -38.46767044067383 7.785149097442627 -36.52191925048828 v -38.46767044067383 7.785149097442627 -36.52191925048828
v -40.04683303833008 28.08773803710938 -50.77265167236328 v -40.04683303833008 28.08773803710938 -50.77265167236328
@ -211,7 +211,7 @@ v -42.73056793212891 -30.60493469238281 -90.66996002197266
v -40.23527908325195 -2.317409992218018 -18.70730972290039 v -40.23527908325195 -2.317409992218018 -18.70730972290039
v -44.44951629638672 -41.30718231201172 -95.01465606689453 v -44.44951629638672 -41.30718231201172 -95.01465606689453
v -39.85378265380859 6.250553131103516 -37.56044387817383 v -39.85378265380859 6.250553131103516 -37.56044387817383
v -40.63287734985352 26.70069122314453 -51.05325317382812 v -40.63287734985352 26.70069122314453 -51.05325317382813
v -41.90177536010742 26.24149322509766 -55.37683486938477 v -41.90177536010742 26.24149322509766 -55.37683486938477
v -44.18946838378906 2.373975992202759 -79.78339385986328 v -44.18946838378906 2.373975992202759 -79.78339385986328
v -43.2232666015625 -31.63191223144531 -89.68506622314453 v -43.2232666015625 -31.63191223144531 -89.68506622314453
@ -231,7 +231,7 @@ v -41.56508255004883 1.750601053237915 -76.60358428955078
v -41.76493453979492 -34.27718353271484 -88.11498260498047 v -41.76493453979492 -34.27718353271484 -88.11498260498047
v -33.65802383422852 -4.442947864532471 -22.09029006958008 v -33.65802383422852 -4.442947864532471 -22.09029006958008
v -43.47456359863281 -42.10161590576172 -94.85892486572266 v -43.47456359863281 -42.10161590576172 -94.85892486572266
v -35.65310668945312 6.274747848510742 -40.62473678588867 v -35.65310668945313 6.274747848510742 -40.62473678588867
v -37.52444076538086 25.68461608886719 -52.12581634521484 v -37.52444076538086 25.68461608886719 -52.12581634521484
v -36.88800048828125 25.43232727050781 -54.26172637939453 v -36.88800048828125 25.43232727050781 -54.26172637939453
v -39.6718864440918 2.905498027801514 -77.26450347900391 v -39.6718864440918 2.905498027801514 -77.26450347900391
@ -251,7 +251,7 @@ v -38.03726577758789 27.49446105957031 33.66647720336914
v -34.5403938293457 17.31492233276367 46.75900650024414 v -34.5403938293457 17.31492233276367 46.75900650024414
v -35.8452262878418 17.43609428405762 48.66624069213867 v -35.8452262878418 17.43609428405762 48.66624069213867
v -28.96659469604492 -31.87043952941895 66.61157989501953 v -28.96659469604492 -31.87043952941895 66.61157989501953
v -28.00870513916016 -33.48403930664062 66.39229583740234 v -28.00870513916016 -33.48403930664063 66.39229583740234
v -37.94406127929688 -1.883904933929443 -4.875525951385498 v -37.94406127929688 -1.883904933929443 -4.875525951385498
v -29.19070816040039 -38.59844589233398 75.64435577392578 v -29.19070816040039 -38.59844589233398 75.64435577392578
v -38.12530136108398 7.461886882781982 15.15559387207031 v -38.12530136108398 7.461886882781982 15.15559387207031
@ -285,8 +285,8 @@ v -28.36112785339355 -39.7656364440918 75.63690948486328
v -34.68405532836914 6.534968852996826 18.94173622131348 v -34.68405532836914 6.534968852996826 18.94173622131348
v -38.70342254638672 25.53554534912109 30.5754222869873 v -38.70342254638672 25.53554534912109 30.5754222869873
v -37.81640243530273 25.43576812744141 32.63310623168945 v -37.81640243530273 25.43576812744141 32.63310623168945
v -34.87471389770508 16.03384399414062 44.86114120483398 v -34.87471389770508 16.03384399414063 44.86114120483398
v -27.90771293640137 -35.34060668945312 66.05712127685547 v -27.90771293640137 -35.34060668945313 66.05712127685547
v -26.45577621459961 -3.443838119506836 -2.149142980575562 v -26.45577621459961 -3.443838119506836 -2.149142980575562
v -26.46640014648438 -2.246160984039307 -5.887526988983154 v -26.46640014648438 -2.246160984039307 -5.887526988983154
v -23.49448394775391 -3.47288703918457 -4.813465118408203 v -23.49448394775391 -3.47288703918457 -4.813465118408203
@ -302,26 +302,26 @@ v -10.52369499206543 27.51875305175781 29.59563827514648
v -0.9972569942474365 13.43557167053223 54.88214111328125 v -0.9972569942474365 13.43557167053223 54.88214111328125
v -1.514698028564453 14.10584259033203 57.03571319580078 v -1.514698028564453 14.10584259033203 57.03571319580078
v 3.385565996170044 -29.84352111816406 80.76795196533203 v 3.385565996170044 -29.84352111816406 80.76795196533203
v 3.675970077514648 -31.37918090820312 79.70648956298828 v 3.675970077514648 -31.37918090820313 79.70648956298828
v -29.43033599853516 -1.921316027641296 -4.146553039550781 v -29.43033599853516 -1.921316027641296 -4.146553039550781
v 4.587766170501709 -39.3502311706543 86.69120025634766 v 4.587766170501709 -39.3502311706543 86.69120025634766
v -18.55141067504883 8.964324951171875 11.34670639038086 v -18.55141067504883 8.964324951171875 11.34670639038086
v -14.50934600830078 29.82746124267578 26.45841026306152 v -14.50934600830078 29.82746124267578 26.45841026306152
v -13.3946418762207 29.56021118164062 31.82656478881836 v -13.3946418762207 29.56021118164063 31.82656478881836
v -3.589093923568726 14.20652008056641 58.0562744140625 v -3.589093923568726 14.20652008056641 58.0562744140625
v 2.445001125335693 -29.51860809326172 81.25101470947266 v 2.445001125335693 -29.51860809326172 81.25101470947266
v -30.15432739257812 -2.742969989776611 -0.9014430046081543 v -30.15432739257813 -2.742969989776611 -0.9014430046081543
v 4.197091102600098 -39.74774169921875 86.60486602783203 v 4.197091102600098 -39.74774169921875 86.60486602783203
v -20.00806045532227 7.973351955413818 12.8470344543457 v -20.00806045532227 7.973351955413818 12.8470344543457
v -15.4754638671875 28.75201416015625 26.9644775390625 v -15.4754638671875 28.75201416015625 26.9644775390625
v -15.30904579162598 28.31040191650391 31.46907806396484 v -15.30904579162598 28.31040191650391 31.46907806396484
v -5.658416748046875 13.66179847717285 57.17532348632812 v -5.658416748046875 13.66179847717285 57.17532348632813
v 1.562493085861206 -30.64902877807617 80.79186248779297 v 1.562493085861206 -30.64902877807617 80.79186248779297
v -28.0932731628418 -4.09240198135376 1.404078960418701 v -28.0932731628418 -4.09240198135376 1.404078960418701
v 4.161306858062744 -40.34838485717773 86.31630706787109 v 4.161306858062744 -40.34838485717773 86.31630706787109
v -19.53142166137695 6.477696895599365 14.54720878601074 v -19.53142166137695 6.477696895599365 14.54720878601074
v -15.32335662841797 27.08382415771484 27.34894752502441 v -15.32335662841797 27.08382415771484 27.34894752502441
v -15.56659698486328 26.39956665039062 30.18951416015625 v -15.56659698486328 26.39956665039063 30.18951416015625
v -6.164387226104736 12.8818302154541 55.05625915527344 v -6.164387226104736 12.8818302154541 55.05625915527344
v 1.402615070343018 -32.38360595703125 79.73628997802734 v 1.402615070343018 -32.38360595703125 79.73628997802734
v -24.79911041259766 -4.953472137451172 1.033954977989197 v -24.79911041259766 -4.953472137451172 1.033954977989197
@ -340,7 +340,7 @@ v -2.426440954208374 12.70041084289551 53.21726226806641
v 3.097472906112671 -32.96916198730469 78.86588287353516 v 3.097472906112671 -32.96916198730469 78.86588287353516
v -23.49448394775391 -3.47288703918457 -15.18653869628906 v -23.49448394775391 -3.47288703918457 -15.18653869628906
v -26.46640014648438 -2.246160984039307 -14.11247634887695 v -26.46640014648438 -2.246160984039307 -14.11247634887695
v -26.45577621459961 -3.443838119506836 -17.85086059570312 v -26.45577621459961 -3.443838119506836 -17.85086059570313
v 5.211228847503662 -39.9835319519043 -106.1982498168945 v 5.211228847503662 -39.9835319519043 -106.1982498168945
v 4.668338775634766 -40.01747512817383 -106.3362197875977 v 4.668338775634766 -40.01747512817383 -106.3362197875977
v 5.039107799530029 -39.45514678955078 -106.5102310180664 v 5.039107799530029 -39.45514678955078 -106.5102310180664
@ -352,27 +352,27 @@ v -10.52369499206543 27.51875305175781 -49.59563446044922
v -11.26496505737305 29.20790100097656 -50.99276733398438 v -11.26496505737305 29.20790100097656 -50.99276733398438
v -0.9972569942474365 13.43557167053223 -74.88213348388672 v -0.9972569942474365 13.43557167053223 -74.88213348388672
v -1.514698028564453 14.10584259033203 -77.03571319580078 v -1.514698028564453 14.10584259033203 -77.03571319580078
v 3.675970077514648 -31.37918090820312 -99.70648956298828 v 3.675970077514648 -31.37918090820313 -99.70648956298828
v 3.38556694984436 -29.84352111816406 -100.767951965332 v 3.38556694984436 -29.84352111816406 -100.767951965332
v -29.43033599853516 -1.921316027641296 -15.85345077514648 v -29.43033599853516 -1.921316027641296 -15.85345077514648
v 4.587764739990234 -39.3502311706543 -106.6912002563477 v 4.587764739990234 -39.3502311706543 -106.6912002563477
v -18.55141067504883 8.964324951171875 -31.34671020507812 v -18.55141067504883 8.964324951171875 -31.34671020507813
v -14.50934600830078 29.82746124267578 -46.45841217041016 v -14.50934600830078 29.82746124267578 -46.45841217041016
v -13.3946418762207 29.56021118164062 -51.82656097412109 v -13.3946418762207 29.56021118164063 -51.82656097412109
v -3.589093923568726 14.20652008056641 -78.05626678466797 v -3.589093923568726 14.20652008056641 -78.05626678466797
v 2.445001125335693 -29.51860809326172 -101.2510147094727 v 2.445001125335693 -29.51860809326172 -101.2510147094727
v -30.15432739257812 -2.742969989776611 -19.09856033325195 v -30.15432739257813 -2.742969989776611 -19.09856033325195
v 4.197090148925781 -39.74774169921875 -106.604866027832 v 4.197090148925781 -39.74774169921875 -106.604866027832
v -20.00806045532227 7.973351955413818 -32.8470344543457 v -20.00806045532227 7.973351955413818 -32.8470344543457
v -15.4754638671875 28.75201416015625 -46.9644775390625 v -15.4754638671875 28.75201416015625 -46.9644775390625
v -15.30904579162598 28.31040191650391 -51.46907806396484 v -15.30904579162598 28.31040191650391 -51.46907806396484
v -5.658416748046875 13.66179847717285 -77.17531585693359 v -5.658416748046875 13.66179847717285 -77.17531585693359
v 1.562493085861206 -30.64902877807617 -100.791862487793 v 1.562493085861206 -30.64902877807617 -100.791862487793
v -28.0932731628418 -4.09240198135376 -21.40408325195312 v -28.0932731628418 -4.09240198135376 -21.40408325195313
v 4.161307811737061 -40.34838485717773 -106.3163070678711 v 4.161307811737061 -40.34838485717773 -106.3163070678711
v -19.53142166137695 6.477696895599365 -34.54721069335938 v -19.53142166137695 6.477696895599365 -34.54721069335938
v -15.32335662841797 27.08382415771484 -47.34894561767578 v -15.32335662841797 27.08382415771484 -47.34894561767578
v -15.56659698486328 26.39956665039062 -50.18951416015625 v -15.56659698486328 26.39956665039063 -50.18951416015625
v -6.164387226104736 12.8818302154541 -75.05625152587891 v -6.164387226104736 12.8818302154541 -75.05625152587891
v 1.402615070343018 -32.38360595703125 -99.73628997802734 v 1.402615070343018 -32.38360595703125 -99.73628997802734
v -24.79911041259766 -4.953472137451172 -21.03395843505859 v -24.79911041259766 -4.953472137451172 -21.03395843505859
@ -393,14 +393,14 @@ v -14.25648880004883 -6.954940795898438 -3.301691055297852
v -14.10265731811523 -6.075778961181641 -7.124460220336914 v -14.10265731811523 -6.075778961181641 -7.124460220336914
v -11.2052116394043 -7.280231952667236 -5.841878890991211 v -11.2052116394043 -7.280231952667236 -5.841878890991211
v 19.74986457824707 -37.60753631591797 68.32992553710938 v 19.74986457824707 -37.60753631591797 68.32992553710938
v 19.34836387634277 -38.14849472045898 68.15628051757812 v 19.34836387634277 -38.14849472045898 68.15628051757813
v 19.89711761474609 -38.15519714355469 68.03912353515625 v 19.89711761474609 -38.15519714355469 68.03912353515625
v -4.907510757446289 6.093640804290771 10.12681770324707 v -4.907510757446289 6.093640804290771 10.12681770324707
v -2.877649068832397 5.517601013183594 11.07694053649902 v -2.877649068832397 5.517601013183594 11.07694053649902
v 1.745674014091492 26.13694000244141 21.00781440734863 v 1.745674014091492 26.13694000244141 21.00781440734863
v 0.4745520055294037 27.20939636230469 20.97971534729004 v 0.4745520055294037 27.20939636230469 20.97971534729004
v 3.233434915542603 28.02400207519531 25.24942970275879 v 3.233434915542603 28.02400207519531 25.24942970275879
v 4.282450199127197 26.64773559570312 23.71314430236816 v 4.282450199127197 26.64773559570313 23.71314430236816
v 14.8602180480957 5.642467975616455 47.61897277832031 v 14.8602180480957 5.642467975616455 47.61897277832031
v 14.56025314331055 6.223588943481445 49.83868408203125 v 14.56025314331055 6.223588943481445 49.83868408203125
v 18.9760627746582 -28.07810020446777 62.27335357666016 v 18.9760627746582 -28.07810020446777 62.27335357666016
@ -434,28 +434,28 @@ v 1.932853937149048 23.20393180847168 23.79626274108887
v 11.57662582397461 3.190187931060791 46.84990692138672 v 11.57662582397461 3.190187931060791 46.84990692138672
v 17.50724792480469 -31.60873603820801 60.42989349365234 v 17.50724792480469 -31.60873603820801 60.42989349365234
v -10.6054573059082 -8.239757537841797 -2.646497964859009 v -10.6054573059082 -8.239757537841797 -2.646497964859009
v 19.63114547729492 -38.69778442382812 67.83663940429688 v 19.63114547729492 -38.69778442382813 67.83663940429688
v -2.475620031356812 4.172726154327393 12.91663932800293 v -2.475620031356812 4.172726154327393 12.91663932800293
v 2.032040119171143 24.59943771362305 21.57402229309082 v 2.032040119171143 24.59943771362305 21.57402229309082
v 3.703634023666382 24.50261497497559 23.06640815734863 v 3.703634023666382 24.50261497497559 23.06640815734863
v 13.53237915039062 4.292479038238525 46.28885650634766 v 13.53237915039063 4.292479038238525 46.28885650634766
v 18.54694938659668 -31.23143768310547 60.44495391845703 v 18.54694938659668 -31.23143768310547 60.44495391845703
v -12.53854370117188 -7.280231952667236 -13.491455078125 v -12.53854370117188 -7.280231952667236 -13.491455078125
v -15.43598937988281 -6.075778961181641 -12.2088737487793 v -15.43598937988281 -6.075778961181641 -12.2088737487793
v -15.58982086181641 -6.954940795898438 -16.03164291381836 v -15.58982086181641 -6.954940795898438 -16.03164291381836
v 18.56378555297852 -38.15519714355469 -87.37246704101562 v 18.56378555297852 -38.15519714355469 -87.37246704101563
v 18.0150318145752 -38.14849472045898 -87.4896240234375 v 18.0150318145752 -38.14849472045898 -87.4896240234375
v 18.41653251647949 -37.60753631591797 -87.66326904296875 v 18.41653251647949 -37.60753631591797 -87.66326904296875
v -4.210980892181396 5.517601013183594 -30.41027450561523 v -4.210980892181396 5.517601013183594 -30.41027450561523
v -6.240842819213867 6.093640804290771 -29.46015167236328 v -6.240842819213867 6.093640804290771 -29.46015167236328
v 0.4123420119285583 26.13694000244141 -40.34114837646484 v 0.4123420119285583 26.13694000244141 -40.34114837646484
v -0.8587800264358521 27.20939636230469 -40.31304931640625 v -0.8587800264358521 27.20939636230469 -40.31304931640625
v 2.949118137359619 26.64773559570312 -43.04647827148438 v 2.949118137359619 26.64773559570313 -43.04647827148438
v 1.900102972984314 28.02400207519531 -44.582763671875 v 1.900102972984314 28.02400207519531 -44.582763671875
v 13.52688598632812 5.642467975616455 -66.95231628417969 v 13.52688598632813 5.642467975616455 -66.95231628417969
v 13.22692108154297 6.223588943481445 -69.17202758789062 v 13.22692108154297 6.223588943481445 -69.17202758789063
v 17.86732864379883 -29.66015243530273 -80.59872436523438 v 17.86732864379883 -29.66015243530273 -80.59872436523438
v 17.64273071289062 -28.07810020446777 -81.60670471191406 v 17.64273071289063 -28.07810020446777 -81.60670471191406
v -18.44928359985352 -5.533359050750732 -13.80491638183594 v -18.44928359985352 -5.533359050750732 -13.80491638183594
v 17.96691513061523 -37.46723175048828 -87.82330322265625 v 17.96691513061523 -37.46723175048828 -87.82330322265625
v -8.370006561279297 5.467060089111328 -30.11508178710938 v -8.370006561279297 5.467060089111328 -30.11508178710938
@ -471,7 +471,7 @@ v -1.290704965591431 25.68392181396484 -45.89799499511719
v 9.702729225158691 4.237391948699951 -70.18302917480469 v 9.702729225158691 4.237391948699951 -70.18302917480469
v 15.76919937133789 -28.75799560546875 -81.57952880859375 v 15.76919937133789 -28.75799560546875 -81.57952880859375
v -17.36852645874023 -7.262344837188721 -19.56281280517578 v -17.36852645874023 -7.262344837188721 -19.56281280517578
v 17.48766136169434 -38.44494247436523 -87.45840454101562 v 17.48766136169434 -38.44494247436523 -87.45840454101563
v -7.645581245422363 3.043694019317627 -33.43013000488281 v -7.645581245422363 3.043694019317627 -33.43013000488281
v -1.641402959823608 24.23861885070801 -41.86458587646484 v -1.641402959823608 24.23861885070801 -41.86458587646484
v -1.029770016670227 23.72967147827148 -44.68647766113281 v -1.029770016670227 23.72967147827148 -44.68647766113281
@ -485,7 +485,7 @@ v 0.5995219945907593 23.20393180847168 -43.12960052490234
v 10.24329376220703 3.190187931060791 -66.18324279785156 v 10.24329376220703 3.190187931060791 -66.18324279785156
v 16.17391586303711 -31.60873603820801 -79.76324462890625 v 16.17391586303711 -31.60873603820801 -79.76324462890625
v -11.93878936767578 -8.239757537841797 -16.68683624267578 v -11.93878936767578 -8.239757537841797 -16.68683624267578
v 18.29781341552734 -38.69778442382812 -87.16998291015625 v 18.29781341552734 -38.69778442382813 -87.16998291015625
v -3.808951854705811 4.172726154327393 -32.24997329711914 v -3.808951854705811 4.172726154327393 -32.24997329711914
v 0.6987079977989197 24.59943771362305 -40.90735626220703 v 0.6987079977989197 24.59943771362305 -40.90735626220703
v 2.370301961898804 24.50261497497559 -42.39974212646484 v 2.370301961898804 24.50261497497559 -42.39974212646484
@ -519,7 +519,7 @@ v -51.75783920288086 11.98240089416504 0.8355600237846375
v -56.05172729492188 7.156466007232666 5.002277851104736 v -56.05172729492188 7.156466007232666 5.002277851104736
v -53.53396987915039 14.21004676818848 1.72101902961731 v -53.53396987915039 14.21004676818848 1.72101902961731
v -57.36484146118164 8.803488731384277 5.656900882720947 v -57.36484146118164 8.803488731384277 5.656900882720947
v -56.62808227539062 15.23869514465332 0.7346760034561157 v -56.62808227539063 15.23869514465332 0.7346760034561157
v -59.24757766723633 9.889246940612793 4.827473163604736 v -59.24757766723633 9.889246940612793 4.827473163604736
v -58.71025466918945 14.29374885559082 -1.380638957023621 v -58.71025466918945 14.29374885559082 -1.380638957023621
v -60.28214263916016 9.596194267272949 3.138458967208862 v -60.28214263916016 9.596194267272949 3.138458967208862
@ -556,7 +556,7 @@ v -40.64442825317383 21.88604164123535 -0.7607129812240601
v -44.44827651977539 21.88604164123535 2.546009063720703 v -44.44827651977539 21.88604164123535 2.546009063720703
v -53.9999885559082 20.33333778381348 0.4478580057621002 v -53.9999885559082 20.33333778381348 0.4478580057621002
v -60.29326629638672 19.47619819641113 -2.199142932891846 v -60.29326629638672 19.47619819641113 -2.199142932891846
v -63.06387329101562 19.47619819641113 -6.810235023498535 v -63.06387329101563 19.47619819641113 -6.810235023498535
v -64.39229583740234 20.33333778381348 -9.944446563720703 v -64.39229583740234 20.33333778381348 -9.944446563720703
v -63.32090759277344 15.14286994934082 -6.139256000518799 v -63.32090759277344 15.14286994934082 -6.139256000518799
v -62.36603164672852 15.39914894104004 -5.604844093322754 v -62.36603164672852 15.39914894104004 -5.604844093322754
@ -618,7 +618,7 @@ v -38.80768203735352 21.88604164123535 -9.988886833190918
v -44.44827651977539 21.88604164123535 -22.47934150695801 v -44.44827651977539 21.88604164123535 -22.47934150695801
v -53.9999885559082 20.33333778381348 -20.38118934631348 v -53.9999885559082 20.33333778381348 -20.38118934631348
v -60.29326629638672 19.47619819641113 -17.73418998718262 v -60.29326629638672 19.47619819641113 -17.73418998718262
v -63.06387329101562 19.47619819641113 -13.12309837341309 v -63.06387329101563 19.47619819641113 -13.12309837341309
v -64.39229583740234 20.33333778381348 -9.988886833190918 v -64.39229583740234 20.33333778381348 -9.988886833190918
v -62.33220672607422 15.06181526184082 -14.44650936126709 v -62.33220672607422 15.06181526184082 -14.44650936126709
v -62.36603164672852 15.39914894104004 -14.32849025726318 v -62.36603164672852 15.39914894104004 -14.32849025726318
@ -650,7 +650,7 @@ v -64.66415405273438 4.277801990509033 -18.2394905090332
v -63.78934860229492 3.570785999298096 -16.48468399047852 v -63.78934860229492 3.570785999298096 -16.48468399047852
v -62.37599182128906 11.21470260620117 -16.82923698425293 v -62.37599182128906 11.21470260620117 -16.82923698425293
v -66.95527648925781 4.531181812286377 -18.78395462036133 v -66.95527648925781 4.531181812286377 -18.78395462036133
v -63.80926132202148 13.24985885620117 -14.86489868164062 v -63.80926132202148 13.24985885620117 -14.86489868164063
v -68.93736267089844 4.140174865722656 -17.70805549621582 v -68.93736267089844 4.140174865722656 -17.70805549621582
v -64.48637390136719 12.67211532592773 -12.25428771972656 v -64.48637390136719 12.67211532592773 -12.25428771972656
v -69.1180419921875 3.399224042892456 -15.82198143005371 v -69.1180419921875 3.399224042892456 -15.82198143005371
@ -670,7 +670,7 @@ v -51.75783920288086 12.03694534301758 -19.50222587585449
v -56.05172729492188 7.211010932922363 -23.66894340515137 v -56.05172729492188 7.211010932922363 -23.66894340515137
v -53.53396987915039 14.26459121704102 -20.38768196105957 v -53.53396987915039 14.26459121704102 -20.38768196105957
v -57.36484146118164 8.858034133911133 -24.32356452941895 v -57.36484146118164 8.858034133911133 -24.32356452941895
v -56.62808227539062 15.29323959350586 -19.40134239196777 v -56.62808227539063 15.29323959350586 -19.40134239196777
v -59.24757766723633 9.943792343139648 -23.49413871765137 v -59.24757766723633 9.943792343139648 -23.49413871765137
v -58.71025466918945 14.34829330444336 -17.28602600097656 v -58.71025466918945 14.34829330444336 -17.28602600097656
v -60.28214263916016 9.650739669799805 -21.80512428283691 v -60.28214263916016 9.650739669799805 -21.80512428283691
@ -679,13 +679,13 @@ v -58.74361419677734 17.51846694946289 -2.271703958511353
v -59.46704864501953 18.40674209594727 -2.53897500038147 v -59.46704864501953 18.40674209594727 -2.53897500038147
v -60.63759613037109 18.10347366333008 -2.337920904159546 v -60.63759613037109 18.10347366333008 -2.337920904159546
v -61.55588531494141 18.15423965454102 -3.37207293510437 v -61.55588531494141 18.15423965454102 -3.37207293510437
v -60.57522583007812 18.69086074829102 -3.431842088699341 v -60.57522583007813 18.69086074829102 -3.431842088699341
v -61.64485168457031 18.26233291625977 -4.609260082244873 v -61.64485168457031 18.26233291625977 -4.609260082244873
v -61.38417816162109 17.94110488891602 -5.717274188995361 v -61.38417816162109 17.94110488891602 -5.717274188995361
v -61.48154449462891 16.98392105102539 -6.448155879974365 v -61.48154449462891 16.98392105102539 -6.448155879974365
v -62.26735687255859 17.28479385375977 -5.621510982513428 v -62.26735687255859 17.28479385375977 -5.621510982513428
v -62.61495971679688 16.49116897583008 -5.094202995300293 v -62.61495971679688 16.49116897583008 -5.094202995300293
v -62.20498657226562 16.13167190551758 -6.081917762756348 v -62.20498657226563 16.13167190551758 -6.081917762756348
v -61.27806091308594 15.97928333282471 -6.500585079193115 v -61.27806091308594 15.97928333282471 -6.500585079193115
v -62.26735687255859 15.54427146911621 -4.988009929656982 v -62.26735687255859 15.54427146911621 -4.988009929656982
v -61.38417816162109 14.97993564605713 -4.639497756958008 v -61.38417816162109 14.97993564605713 -4.639497756958008
@ -693,7 +693,7 @@ v -61.48154449462891 15.24338626861572 -5.814656257629395
v -60.47430419921875 15.08453464508057 -3.54331111907959 v -60.47430419921875 15.08453464508057 -3.54331111907959
v -61.64485168457031 15.44609451293945 -3.584233999252319 v -61.64485168457031 15.44609451293945 -3.584233999252319
v -61.55588531494141 16.32414627075195 -2.705970048904419 v -61.55588531494141 16.32414627075195 -2.705970048904419
v -60.57522583007812 15.87463855743408 -2.406815052032471 v -60.57522583007813 15.87463855743408 -2.406815052032471
v -59.56442260742188 15.70901966094971 -2.636348009109497 v -59.56442260742188 15.70901966094971 -2.636348009109497
v -60.63759613037109 17.02777481079102 -1.946398019790649 v -60.63759613037109 17.02777481079102 -1.946398019790649
v -59.46704864501953 16.66621780395508 -1.905473947525024 v -59.46704864501953 16.66621780395508 -1.905473947525024
@ -704,13 +704,13 @@ v -59.46704864501953 18.14007568359375 -17.19435882568359
v -58.74361419677734 17.25180053710938 -17.46162986755371 v -58.74361419677734 17.25180053710938 -17.46162986755371
v -59.67054748535156 17.40419006347656 -17.88029861450195 v -59.67054748535156 17.40419006347656 -17.88029861450195
v -60.63759613037109 17.83680725097656 -17.39541244506836 v -60.63759613037109 17.83680725097656 -17.39541244506836
v -60.57522583007812 18.4241943359375 -16.30149078369141 v -60.57522583007813 18.4241943359375 -16.30149078369141
v -61.55588531494141 17.8875732421875 -16.36125946044922 v -61.55588531494141 17.8875732421875 -16.36125946044922
v -61.64485168457031 17.99566650390625 -15.12407302856445 v -61.64485168457031 17.99566650390625 -15.12407302856445
v -62.26735687255859 17.01812744140625 -14.1118221282959 v -62.26735687255859 17.01812744140625 -14.1118221282959
v -61.48154449462891 16.71725463867188 -13.28517723083496 v -61.48154449462891 16.71725463867188 -13.28517723083496
v -61.38417816162109 17.6744384765625 -14.01605987548828 v -61.38417816162109 17.6744384765625 -14.01605987548828
v -62.20498657226562 15.86500549316406 -13.65141487121582 v -62.20498657226563 15.86500549316406 -13.65141487121582
v -62.61495971679688 16.22450256347656 -14.63912963867188 v -62.61495971679688 16.22450256347656 -14.63912963867188
v -61.27806091308594 15.71261596679688 -13.23274803161621 v -61.27806091308594 15.71261596679688 -13.23274803161621
v -62.26735687255859 15.27760314941406 -14.74532318115234 v -62.26735687255859 15.27760314941406 -14.74532318115234
@ -718,7 +718,7 @@ v -61.48154449462891 14.97671890258789 -13.91867828369141
v -61.38417816162109 14.7132682800293 -15.09383583068848 v -61.38417816162109 14.7132682800293 -15.09383583068848
v -61.64485168457031 15.17942810058594 -16.14909934997559 v -61.64485168457031 15.17942810058594 -16.14909934997559
v -60.47430419921875 14.81786727905273 -16.19002342224121 v -60.47430419921875 14.81786727905273 -16.19002342224121
v -60.57522583007812 15.60797119140625 -17.32651901245117 v -60.57522583007813 15.60797119140625 -17.32651901245117
v -61.55588531494141 16.05747985839844 -17.02736282348633 v -61.55588531494141 16.05747985839844 -17.02736282348633
v -59.56442260742188 15.44235229492188 -17.09698486328125 v -59.56442260742188 15.44235229492188 -17.09698486328125
v -60.63759613037109 16.7611083984375 -17.78693389892578 v -60.63759613037109 16.7611083984375 -17.78693389892578
@ -1249,7 +1249,7 @@ vn -0.7882999777793884 -0.6091880202293396 -0.08644299954175949
vn -0.6353080272674561 -0.5868319869041443 0.5020080208778381 vn -0.6353080272674561 -0.5868319869041443 0.5020080208778381
vn -0.7489200234413147 -0.3426479995250702 0.5671960115432739 vn -0.7489200234413147 -0.3426479995250702 0.5671960115432739
vn -0.8290749788284302 -0.1998199969530106 0.5222129821777344 vn -0.8290749788284302 -0.1998199969530106 0.5222129821777344
vn -0.8114089965820312 -0.2435930073261261 0.5312989950180054 vn -0.8114089965820313 -0.2435930073261261 0.5312989950180054
vn -0.02972600050270557 -0.7129759788513184 -0.7005580067634583 vn -0.02972600050270557 -0.7129759788513184 -0.7005580067634583
vn -0.1212550029158592 -0.8703849911689758 -0.4772070050239563 vn -0.1212550029158592 -0.8703849911689758 -0.4772070050239563
vn 0.1511760056018829 -0.9298509955406189 -0.3354449868202209 vn 0.1511760056018829 -0.9298509955406189 -0.3354449868202209
@ -1538,7 +1538,7 @@ vn -0.3590719997882843 -0.2934069931507111 -0.8859909772872925
vn -0.5312150120735168 -0.1616500020027161 -0.8316730260848999 vn -0.5312150120735168 -0.1616500020027161 -0.8316730260848999
vn 0.5217099785804749 -0.3334519863128662 -0.7852569818496704 vn 0.5217099785804749 -0.3334519863128662 -0.7852569818496704
vn 0.4982230067253113 -0.5182129740715027 -0.6951469779014587 vn 0.4982230067253113 -0.5182129740715027 -0.6951469779014587
vn 0.3192520141601562 -0.6669300198554993 -0.6732630133628845 vn 0.3192520141601563 -0.6669300198554993 -0.6732630133628845
vn 0.4172089993953705 0.6029300093650818 -0.6800090074539185 vn 0.4172089993953705 0.6029300093650818 -0.6800090074539185
vn -0.3909519910812378 -0.5063930153846741 -0.7685850262641907 vn -0.3909519910812378 -0.5063930153846741 -0.7685850262641907
vn -0.785847008228302 -0.2199160009622574 -0.5779989957809448 vn -0.785847008228302 -0.2199160009622574 -0.5779989957809448
@ -1595,7 +1595,7 @@ vn -0.8313949704170227 0.3698750138282776 0.414698988199234
vn -0.7773889899253845 0.439754992723465 0.4497570097446442 vn -0.7773889899253845 0.439754992723465 0.4497570097446442
vn -0.7120980024337769 0.07437500357627869 0.6981300115585327 vn -0.7120980024337769 0.07437500357627869 0.6981300115585327
vn -0.5221620202064514 -0.5821250081062317 0.6232789754867554 vn -0.5221620202064514 -0.5821250081062317 0.6232789754867554
vn -0.5362930297851562 0.8426250219345093 0.04870999976992607 vn -0.5362930297851563 0.8426250219345093 0.04870999976992607
vn -0.6278550028800964 0.7403159737586975 0.2402739971876144 vn -0.6278550028800964 0.7403159737586975 0.2402739971876144
vn -0.817995011806488 0.4767960011959076 0.3217920064926147 vn -0.817995011806488 0.4767960011959076 0.3217920064926147
vn -0.7291709780693054 0.6557949781417847 0.1955550014972687 vn -0.7291709780693054 0.6557949781417847 0.1955550014972687
@ -1780,8 +1780,8 @@ vn -0.7573840022087097 0.2233279943466187 -0.6135900020599365
vn -0.902417004108429 0.4006629884243011 -0.1584679931402206 vn -0.902417004108429 0.4006629884243011 -0.1584679931402206
vn -0.902417004108429 -0.2050659954547882 -0.3789339959621429 vn -0.902417004108429 -0.2050659954547882 -0.3789339959621429
# Mesh 'HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01' with 80 faces # Mesh 'HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01' with 80 faces
g HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01 g HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01
usemtl HLeibTex usemtl HLeibTex
f 1/1/1 2/2/2 3/3/3 f 1/1/1 2/2/2 3/3/3
f 4/4/4 3/3/3 5/5/5 f 4/4/4 3/3/3 5/5/5
@ -1864,8 +1864,8 @@ f 25/25/25 27/27/27 42/42/42
f 35/35/35 42/42/42 34/34/34 f 35/35/35 42/42/42 34/34/34
f 27/27/27 34/34/34 42/42/42 f 27/27/27 34/34/34 42/42/42
# Mesh 'OK_OK_OK_OK_OK_OK_OK_OK' with 60 faces # Mesh 'OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK' with 60 faces
g OK_OK_OK_OK_OK_OK_OK_OK g OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK
usemtl Skin usemtl Skin
f 43/43/43 44/44/44 45/45/45 f 43/43/43 44/44/44 45/45/45
f 46/46/46 45/45/45 47/47/47 f 46/46/46 45/45/45 47/47/47
@ -1928,8 +1928,8 @@ f 53/53/53 66/63/66 52/52/52
f 78/67/78 52/52/52 66/63/66 f 78/67/78 52/52/52 66/63/66
f 67/64/67 69/63/69 79/67/79 f 67/64/67 69/63/69 79/67/79
# Mesh 'Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li' with 98 faces # Mesh 'Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li' with 98 faces
g Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li g Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li
usemtl BeinTex usemtl BeinTex
f 80/68/80 81/68/80 82/68/80 f 80/68/80 81/68/80 82/68/80
f 83/68/81 84/68/81 85/68/81 f 83/68/81 84/68/81 85/68/81
@ -2030,8 +2030,8 @@ f 129/114/128 94/122/92 92/121/90
f 130/115/129 125/116/130 94/122/92 f 130/115/129 125/116/130 94/122/92
f 125/116/130 83/123/94 94/122/92 f 125/116/130 83/123/94 94/122/92
# Mesh 'Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re' with 98 faces # Mesh 'Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re' with 98 faces
g Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re g Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re
usemtl BeinTex usemtl BeinTex
f 131/68/131 132/68/131 133/68/131 f 131/68/131 132/68/131 133/68/131
f 134/68/132 135/68/132 136/68/132 f 134/68/132 135/68/132 136/68/132
@ -2132,8 +2132,8 @@ f 143/121/141 146/122/144 180/114/179
f 146/122/144 176/116/181 181/115/180 f 146/122/144 176/116/181 181/115/180
f 146/122/144 136/123/145 176/116/181 f 146/122/144 136/123/145 176/116/181
# Mesh 'Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li' with 98 faces # Mesh 'Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li' with 98 faces
g Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li g Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li
usemtl BeinTex usemtl BeinTex
f 182/68/182 183/68/182 184/68/182 f 182/68/182 183/68/182 184/68/182
f 185/68/183 186/68/183 187/68/183 f 185/68/183 186/68/183 187/68/183
@ -2234,8 +2234,8 @@ f 231/114/230 196/122/194 194/121/192
f 232/115/231 227/116/232 196/122/194 f 232/115/231 227/116/232 196/122/194
f 227/116/232 185/123/196 196/122/194 f 227/116/232 185/123/196 196/122/194
# Mesh 'Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re' with 98 faces # Mesh 'Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re' with 98 faces
g Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re g Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re
usemtl BeinTex usemtl BeinTex
f 233/68/233 234/68/233 235/68/233 f 233/68/233 234/68/233 235/68/233
f 236/68/234 237/68/234 238/68/234 f 236/68/234 237/68/234 238/68/234
@ -2336,8 +2336,8 @@ f 245/121/243 248/122/246 282/114/281
f 248/122/246 278/116/283 283/115/282 f 248/122/246 278/116/283 283/115/282
f 248/122/246 238/123/247 278/116/283 f 248/122/246 238/123/247 278/116/283
# Mesh 'Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re' with 98 faces # Mesh 'Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re' with 98 faces
g Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re g Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re
usemtl BeinTex usemtl BeinTex
f 284/68/284 285/68/284 286/68/284 f 284/68/284 285/68/284 286/68/284
f 287/68/285 288/68/285 289/68/285 f 287/68/285 288/68/285 289/68/285
@ -2438,8 +2438,8 @@ f 296/121/294 299/122/297 333/114/332
f 299/122/297 329/116/334 334/115/333 f 299/122/297 329/116/334 334/115/333
f 299/122/297 289/123/298 329/116/334 f 299/122/297 289/123/298 329/116/334
# Mesh 'Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li' with 98 faces # Mesh 'Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li' with 98 faces
g Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li g Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li
usemtl BeinTex usemtl BeinTex
f 335/68/335 336/68/335 337/68/335 f 335/68/335 336/68/335 337/68/335
f 338/68/336 339/68/336 340/68/336 f 338/68/336 339/68/336 340/68/336
@ -2540,8 +2540,8 @@ f 384/114/383 349/122/347 347/121/345
f 385/115/384 380/116/385 349/122/347 f 385/115/384 380/116/385 349/122/347
f 380/116/385 338/123/349 349/122/347 f 380/116/385 338/123/349 349/122/347
# Mesh 'Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re' with 98 faces # Mesh 'Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re' with 98 faces
g Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re g Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re
usemtl BeinTex usemtl BeinTex
f 386/68/386 387/68/386 388/68/386 f 386/68/386 387/68/386 388/68/386
f 389/68/387 390/68/387 391/68/387 f 389/68/387 390/68/387 391/68/387
@ -2642,8 +2642,8 @@ f 398/121/396 401/122/399 435/114/434
f 401/122/399 431/116/436 436/115/435 f 401/122/399 431/116/436 436/115/435
f 401/122/399 391/123/400 431/116/436 f 401/122/399 391/123/400 431/116/436
# Mesh 'Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li' with 98 faces # Mesh 'Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li' with 98 faces
g Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li g Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li
usemtl BeinTex usemtl BeinTex
f 437/68/437 438/68/437 439/68/437 f 437/68/437 438/68/437 439/68/437
f 440/68/438 441/68/438 442/68/438 f 440/68/438 441/68/438 442/68/438
@ -2744,8 +2744,8 @@ f 486/114/485 451/122/449 449/121/447
f 487/115/486 482/116/487 451/122/449 f 487/115/486 482/116/487 451/122/449
f 482/116/487 440/123/451 451/122/449 f 482/116/487 440/123/451 451/122/449
# Mesh 'Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn' with 42 faces # Mesh 'Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn' with 42 faces
g Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn g Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn
usemtl BeinTex usemtl BeinTex
f 488/124/488 488/124/488 488/124/488 f 488/124/488 488/124/488 488/124/488
f 489/125/489 490/126/489 491/127/489 f 489/125/489 490/126/489 491/127/489
@ -2790,8 +2790,8 @@ f 488/124/505 492/128/491 488/124/490
f 503/139/506 502/138/507 492/128/491 f 503/139/506 502/138/507 492/128/491
f 502/138/507 489/125/493 492/128/491 f 502/138/507 489/125/493 492/128/491
# Mesh 'klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn' with 42 faces # Mesh 'klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn' with 42 faces
g klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn g klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn
usemtl BeinTex usemtl BeinTex
f 504/140/488 504/140/488 504/140/488 f 504/140/488 504/140/488 504/140/488
f 505/141/508 506/142/508 507/143/508 f 505/141/508 506/142/508 507/143/508
@ -2836,8 +2836,8 @@ f 504/140/524 508/144/510 504/140/509
f 519/155/525 518/154/526 508/144/510 f 519/155/525 518/154/526 508/144/510
f 518/154/526 505/141/512 508/144/510 f 518/154/526 505/141/512 508/144/510
# Mesh 'Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf' with 90 faces # Mesh 'Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf' with 90 faces
g Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf g Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf
usemtl Skin usemtl Skin
f 520/68/527 521/156/528 522/157/529 f 520/68/527 521/156/528 522/157/529
f 520/68/527 523/158/530 521/156/528 f 520/68/527 523/158/530 521/156/528
@ -2930,8 +2930,8 @@ f 564/197/571 562/195/569 545/178/552
f 545/178/552 552/185/559 566/199/573 f 545/178/552 552/185/559 566/199/573
f 564/197/571 566/199/573 545/178/552 f 564/197/571 566/199/573 545/178/552
# Mesh 'Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust' with 20 faces # Mesh 'Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust' with 20 faces
g Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust g Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust
usemtl Skin usemtl Skin
f 70/210/584 71/211/585 577/212/586 f 70/210/584 71/211/585 577/212/586
f 60/120/587 577/212/586 64/213/588 f 60/120/587 577/212/586 64/213/588
@ -2954,8 +2954,8 @@ f 70/210/584 580/217/592 69/223/599
f 77/75/593 79/224/600 580/217/592 f 77/75/593 79/224/600 580/217/592
f 69/223/599 580/217/592 79/224/600 f 69/223/599 580/217/592 79/224/600
# Mesh 'Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2' with 90 faces # Mesh 'Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2' with 90 faces
g Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2 g Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2
usemtl Skin usemtl Skin
f 582/225/601 583/226/602 584/123/603 f 582/225/601 583/226/602 584/123/603
f 583/226/602 585/227/604 584/123/603 f 583/226/602 585/227/604 584/123/603
@ -3048,8 +3048,8 @@ f 607/245/626 624/262/643 625/263/644
f 627/265/646 614/252/633 607/245/626 f 627/265/646 614/252/633 607/245/626
f 607/245/626 627/265/646 625/263/644 f 607/245/626 627/265/646 625/263/644
# Mesh 'Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2' with 42 faces # Mesh 'Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2' with 42 faces
g Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2 g Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2
usemtl BeinTex usemtl BeinTex
f 639/124/488 639/124/488 639/124/488 f 639/124/488 639/124/488 639/124/488
f 640/127/658 641/126/658 642/125/658 f 640/127/658 641/126/658 642/125/658
@ -3094,8 +3094,8 @@ f 639/124/661 644/128/660 639/124/674
f 644/128/660 653/138/676 654/139/675 f 644/128/660 653/138/676 654/139/675
f 644/128/660 642/125/662 653/138/676 f 644/128/660 642/125/662 653/138/676
# Mesh 'klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2' with 42 faces # Mesh 'klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2' with 42 faces
g klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2 g klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2
usemtl BeinTex usemtl BeinTex
f 655/140/488 655/140/488 655/140/488 f 655/140/488 655/140/488 655/140/488
f 656/143/677 657/142/677 658/141/677 f 656/143/677 657/142/677 658/141/677
@ -3140,8 +3140,8 @@ f 655/140/680 660/144/679 655/140/693
f 660/144/679 669/154/695 670/155/694 f 660/144/679 669/154/695 670/155/694
f 660/144/679 658/141/681 669/154/695 f 660/144/679 658/141/681 669/154/695
# Mesh 'Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge' with 38 faces # Mesh 'Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge' with 38 faces
g Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge g Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge
usemtl Augentex usemtl Augentex
f 671/277/696 672/278/697 673/279/698 f 671/277/696 672/278/697 673/279/698
f 671/277/696 673/279/698 674/280/699 f 671/277/696 673/279/698 674/280/699
@ -3182,8 +3182,8 @@ f 681/287/706 684/290/709 696/302/721
f 689/295/714 696/302/721 688/294/713 f 689/295/714 696/302/721 688/294/713
f 684/290/709 688/294/713 696/302/721 f 684/290/709 688/294/713 696/302/721
# Mesh 'Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05' with 38 faces # Mesh 'Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05' with 38 faces
g Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05 g Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05
usemtl Augentex usemtl Augentex
f 697/279/722 698/278/723 699/277/724 f 697/279/722 698/278/723 699/277/724
f 700/280/725 697/279/722 699/277/724 f 700/280/725 697/279/722 699/277/724

View File

@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using namespace ::Assimp; using namespace ::Assimp;
class utMatrix3x3Test : public ::testing::Test { class utMatrix3x3Test : public ::testing::Test {
// empty
}; };
TEST_F( utMatrix3x3Test, FromToMatrixTest ) { TEST_F( utMatrix3x3Test, FromToMatrixTest ) {

View File

@ -57,3 +57,8 @@ public:
TEST_F( utPLYImportExport, importTest ) { TEST_F( utPLYImportExport, importTest ) {
EXPECT_TRUE( importerTest() ); EXPECT_TRUE( importerTest() );
} }
TEST_F( utPLYImportExport, vertexColorTest ) {
Assimp::Importer importer;
const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/PLY/float-color.ply", 0 );
}

View File

@ -0,0 +1,69 @@
/*-------------------------------------------------------------------------
Open Asset Import Library (assimp)
---------------------------------------------------------------------------
Copyright (c) 2006-2017, assimp team
All rights reserved.
Redistribution and use of this software in source and binary forms,
with or without modification, are permitted provided that the following
conditions are met:
* Redistributions of source code must retain the above
copyright notice, this list of conditions and the
following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other
materials provided with the distribution.
* Neither the name of the assimp team, nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior
written permission of the assimp team.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-------------------------------------------------------------------------*/
#include "UnitTestPCH.h"
#include <assimp/vector3.h>
using namespace ::Assimp;
class utVector3 : public ::testing::Test {
// empty
};
TEST_F(utVector3, CreationTest) {
aiVector3D v0;
aiVector3D v1( 1.0f, 2.0f, 3.0f );
EXPECT_FLOAT_EQ (1.0f, v1[ 0 ] );
EXPECT_FLOAT_EQ( 2.0f, v1[ 1 ] );
EXPECT_FLOAT_EQ( 3.0f, v1[ 2 ] );
aiVector3D v2( 1 );
EXPECT_FLOAT_EQ( 1.0f, v2[ 0 ] );
EXPECT_FLOAT_EQ( 1.0f, v2[ 1 ] );
EXPECT_FLOAT_EQ( 1.0f, v2[ 2 ] );
aiVector3D v3( v1 );
EXPECT_FLOAT_EQ( v1[ 0 ], v3[ 0 ] );
EXPECT_FLOAT_EQ( v1[ 1 ], v3[ 1 ] );
EXPECT_FLOAT_EQ( v1[ 2 ], v3[ 2 ] );
}
TEST_F( utVector3, BracketOpTest ) {
aiVector3D v(1.0f, 2.0f, 3.0f);
EXPECT_FLOAT_EQ( 1.0f, v[ 0 ] );
EXPECT_FLOAT_EQ( 2.0f, v[ 1 ] );
EXPECT_FLOAT_EQ( 3.0f, v[ 2 ] );
}