Getting to the way it's supposed to be!
This commit is contained in:
10
modules/ufbx/.gitattributes
vendored
Normal file
10
modules/ufbx/.gitattributes
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
* text=auto
|
||||
|
||||
# Treat all .fbx/.obj/.mtl files (even ASCII) as binary
|
||||
*.fbx binary
|
||||
*.obj binary
|
||||
*.mtl binary
|
||||
|
||||
*.png binary
|
||||
*.mcx binary
|
||||
*.mc binary
|
||||
19
modules/ufbx/.github/codecov.yml
vendored
Normal file
19
modules/ufbx/.github/codecov.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
coverage:
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
informational: true
|
||||
patch:
|
||||
default:
|
||||
informational: true
|
||||
parsers:
|
||||
gcov:
|
||||
branch_detection:
|
||||
conditional: yes
|
||||
loop: yes
|
||||
method: yes
|
||||
macro: yes
|
||||
ignore:
|
||||
- "test"
|
||||
comment:
|
||||
layout: "diff"
|
||||
500
modules/ufbx/.github/workflows/ci.yml
vendored
Normal file
500
modules/ufbx/.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,500 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
# Cancel any in-flight jobs for the same PR/branch so there's only one active
|
||||
# at a time
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
|
||||
ci_pre_hashes:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Compile hash_scene
|
||||
run: |
|
||||
mkdir build
|
||||
clang test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
- name: Generate reference hashes
|
||||
run: |
|
||||
python3 misc/generate_hashses.py --exe build/hash_scene -o build/hashes.txt --verbose
|
||||
- name: Upload reference hashes
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build/hashes.txt
|
||||
|
||||
ci_ubuntu:
|
||||
runs-on: ubuntu-20.04
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Update apt
|
||||
run: sudo apt-get update
|
||||
- name: Install apt dependencies
|
||||
run: sudo apt-get install -y gcc-multilib g++-multilib lcov llvm-11
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- name: Run tests
|
||||
run: python3 misc/run_tests.py tests stack readme threadcheck hashes --runner ci_linux
|
||||
- name: Verbose test info
|
||||
run: build/runner_clang_release_x64/runner -d data -v
|
||||
- name: Generate coverage
|
||||
run: LLVM_COV=llvm-cov-11 bash misc/generate_coverage.sh
|
||||
- name: Upload coverage
|
||||
run: bash <(curl -s https://codecov.io/bash) -f coverage.lcov -y .github/codecov.yml
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_linux.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_linux.txt.gz
|
||||
|
||||
ci_windows:
|
||||
runs-on: windows-2019
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- run: type build\hashes.txt
|
||||
- name: Run tests
|
||||
run: python misc/run_tests.py tests stack readme threadcheck hashes --runner ci_windows
|
||||
- name: Verbose test info
|
||||
run: build\runner_vs_cl64_release_x64\runner.exe -d data -v
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_windows.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_windows.txt.gz
|
||||
|
||||
ci_macos:
|
||||
runs-on: macos-11
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- name: Run tests
|
||||
run: python3 misc/run_tests.py tests stack readme threadcheck hashes --remove-compiler gcc --additional-compiler gcc-11 --remove-arch x86 --runner ci_macos
|
||||
- name: Compile ufbx as Objective C
|
||||
run: clang -Wall -Wextra -Werror -ObjC -c ufbx.c -o build/ufbx-objc.o
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_macos.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_macos.txt.gz
|
||||
|
||||
ci_picort:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run picort
|
||||
run: python misc/run_tests.py picort
|
||||
- name: Upload result images
|
||||
env:
|
||||
BUNNY_API_TOKEN: ${{ secrets.BUNNY_API_TOKEN }}
|
||||
if: ${{ always() && !cancelled() }}
|
||||
continue-on-error: true
|
||||
run: |
|
||||
HASH="$(git rev-parse --short=16 HEAD)"
|
||||
URL="https://storage.bunnycdn.com/ufbx-images/$HASH"
|
||||
DST_URL="https://ufbx-images.b-cdn.net/$HASH"
|
||||
curl -sS -w " -> $DST_URL/barbarian.png \n" --request PUT --header "AccessKey: $BUNNY_API_TOKEN" --header "Content-Type: image/png" --url $URL/barbarian.png --data-binary @build/images/barbarian.png
|
||||
curl -sS -w " -> $DST_URL/barbarian-scalar.png \n" --request PUT --header "AccessKey: $BUNNY_API_TOKEN" --header "Content-Type: image/png" --url $URL/barbarian-scalar.png --data-binary @build/images/barbarian-scalar.png
|
||||
curl -sS -w " -> $DST_URL/barbarian-big.png \n" --request PUT --header "AccessKey: $BUNNY_API_TOKEN" --header "Content-Type: image/png" --url $URL/barbarian-big.png --data-binary @build/images/barbarian-big.png
|
||||
curl -sS -w " -> $DST_URL/slime-binary.png \n" --request PUT --header "AccessKey: $BUNNY_API_TOKEN" --header "Content-Type: image/png" --url $URL/slime-binary.png --data-binary @build/images/slime-binary.png
|
||||
curl -sS -w " -> $DST_URL/slime-ascii.png \n" --request PUT --header "AccessKey: $BUNNY_API_TOKEN" --header "Content-Type: image/png" --url $URL/slime-ascii.png --data-binary @build/images/slime-ascii.png
|
||||
curl -sS -w " -> $DST_URL/slime-big.png \n" --request PUT --header "AccessKey: $BUNNY_API_TOKEN" --header "Content-Type: image/png" --url $URL/slime-big.png --data-binary @build/images/slime-big.png
|
||||
|
||||
ci_domfuzz:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run domfuzz/objfuzz
|
||||
run: python misc/run_tests.py domfuzz objfuzz
|
||||
|
||||
ci_viewer:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Run viewer
|
||||
run: python misc/run_tests.py viewer
|
||||
|
||||
ci_features:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Compile feature permutations
|
||||
run: python misc/run_tests.py features
|
||||
|
||||
ci_analysis:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Update apt
|
||||
run: sudo apt-get update
|
||||
- name: Install apt dependencies
|
||||
run: sudo apt-get install -y cppcheck
|
||||
- name: Install PIP dependencies
|
||||
run: sudo pip3 install pcpp pycparser
|
||||
- name: Prepare directories
|
||||
run: mkdir build
|
||||
- name: cppcheck
|
||||
run: cppcheck --error-exitcode=1 --inline-suppr --std=c99 ufbx.c -DUFBX_STATIC_ANALYSIS=1
|
||||
- name: Clang Analyzer
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: clang --analyze -Xanalyzer -analyzer-werror -Xanalyzer -analyzer-disable-checker=unix.Malloc ufbx.c
|
||||
- name: Get Clang debug stack usage
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: clang -fstack-usage -DUFBX_DEV -DUFBX_STANDARD_C -c ufbx.c -o build/ufbx-clang-debug.o
|
||||
- name: Get Clang release stack usage
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: clang -fstack-usage -DUFBX_DEV -O2 -c ufbx.c -o build/ufbx-clang-release.o
|
||||
- name: Get GCC debug stack usage
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: gcc -fstack-usage -DUFBX_DEV -DUFBX_STANDARD_C -c ufbx.c -o build/ufbx-gcc-debug.o
|
||||
- name: Get GCC release stack usage
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: gcc -fstack-usage -DUFBX_DEV -O2 -c ufbx.c -o build/ufbx-gcc-release.o
|
||||
- name: Parse ufbx.c to AST for analysis
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/analyze_stack.py --no-su --cache build/ufbx-cache.pickle
|
||||
- name: Analyze Clang debug stack
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/analyze_stack.py build/ufbx-clang-debug.su --limit 0x20000 --cache build/ufbx-cache.pickle
|
||||
- name: Analyze Clang release stack
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/analyze_stack.py build/ufbx-clang-release.su --limit 0x10000 --cache build/ufbx-cache.pickle
|
||||
- name: Analyze GCC debug stack
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/analyze_stack.py build/ufbx-gcc-debug.su --limit 0x20000 --cache build/ufbx-cache.pickle
|
||||
- name: Analyze GCC release stack
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/analyze_stack.py build/ufbx-gcc-release.su --limit 0x10000 --cache build/ufbx-cache.pickle
|
||||
|
||||
ci_compat:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Update apt
|
||||
run: sudo apt-get update
|
||||
- name: Install apt dependencies
|
||||
run: sudo apt-get install -y gcc-multilib g++-multilib
|
||||
- name: Copy the current ufbx.h to ufbx_new.h
|
||||
run: cp ufbx.h ufbx_new.h
|
||||
- name: Downgrade to oldest compatible header
|
||||
run: bash misc/downgrade_header.sh
|
||||
- name: Run tests with old header (source compatability)
|
||||
run: python3 misc/run_tests.py tests --no-sanitize --runner ci_compat
|
||||
- name: Run tests with new header in ufbx.c, old header in runner.c (ABI compatability)
|
||||
run: python3 misc/run_tests.py tests --no-sanitize-arch x86 --runner ci_compat --define UFBX_HEADER_PATH=\"ufbx_new.h\"
|
||||
|
||||
ci_lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Check formatting
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/check_formatting.py ufbx.c ufbx.h
|
||||
- name: Check for typos
|
||||
if: ${{ always() && !cancelled() }}
|
||||
uses: crate-ci/typos@master
|
||||
with:
|
||||
files: ufbx.h ufbx.c
|
||||
config: ./misc/typos.toml
|
||||
|
||||
ci_bindgen:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Create bindgen/build directory
|
||||
run: mkdir bindgen/build
|
||||
- name: Parse ufbx.h
|
||||
run: python3 bindgen/ufbx_parser.py
|
||||
- name: Generate typed IR
|
||||
run: python3 bindgen/ufbx_ir.py
|
||||
|
||||
ci_exotic:
|
||||
runs-on: ubuntu-latest
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- name: Update apt
|
||||
run: sudo apt-get update
|
||||
- name: Install apt dependencies
|
||||
run: sudo apt-get install -y tcc qemu qemu-user gcc-multilib
|
||||
- name: Install zig cc via PIP
|
||||
run: sudo pip3 install ziglang
|
||||
- name: Run tests with TCC
|
||||
run: python3 misc/run_tests.py tests hashes --additional-compiler tcc --compiler tcc --remove-arch x86 --runner ci_exotic
|
||||
- name: Compile ufbx.c wth x86 TCC
|
||||
run: i386-tcc -Wall -Werror -c ufbx.c -o build/tcc-ufbx-x86.o
|
||||
- name: Compile PowerPC tests
|
||||
run: python3 -m ziglang cc -fno-sanitize=undefined -target powerpc-linux -DUFBX_DEV ufbx.c test/runner.c -g -o build/ppc-runner
|
||||
- name: Run PowerPC tests
|
||||
run: qemu-ppc build/ppc-runner -d data
|
||||
- name: Compile PowerPC hash_scene
|
||||
run: |
|
||||
python3 -m ziglang cc -fno-sanitize=undefined -ffp-contract=off -target powerpc-linux misc/fdlibm.c test/hash_scene.c -g -o build/ppc_hasher_debug
|
||||
python3 -m ziglang cc -fno-sanitize=undefined -ffp-contract=off -O2 -target powerpc-linux misc/fdlibm.c test/hash_scene.c -g -o build/ppc_hasher_release
|
||||
- name: Check PowerPC hashes
|
||||
run: |
|
||||
qemu-ppc build/ppc_hasher_debug --check build/hashes.txt --dump build/hashdumps/ci_exotic_powerpc_debug.txt --max-dump-errors 3
|
||||
qemu-ppc build/ppc_hasher_release --check build/hashes.txt --dump build/hashdumps/ci_exotic_powerpc_release.txt --max-dump-errors 3
|
||||
- name: Compile runner with fdlibm
|
||||
run: clang -DUFBX_NO_MATH_H -DUFBX_MATH_PREFIX=fdlibm_ ufbx.c test/runner.c misc/fdlibm.c -lm -o build/fdlibm_runner
|
||||
- name: Run tests using fdlibm
|
||||
run: build/fdlibm_runner -d data
|
||||
- name: Compile runner.c
|
||||
run: gcc -c test/runner.c -o build/runner.o
|
||||
- name: Build and run standard C99
|
||||
run: |
|
||||
gcc -Wall -Wextra -Werror -Wno-unused-function -std=c99 -DUFBX_STANDARD_C build/runner.o ufbx.c -lm -o build/runner-c99
|
||||
build/runner-c99 -d data --allow-non-thread-safe
|
||||
- name: Build and run standard C11
|
||||
run: |
|
||||
gcc -Wall -Wextra -Werror -Wno-unused-function -std=c11 -DUFBX_STANDARD_C build/runner.o ufbx.c -lm -o build/runner-c11
|
||||
build/runner-c11 -d data
|
||||
- name: Build and run standard C++98
|
||||
run: |
|
||||
g++ -Wall -Wextra -Werror -Wno-unused-function -std=c++98 -DUFBX_STANDARD_C build/runner.o -x c++ ufbx.c -lm -o build/runner-cpp98
|
||||
build/runner-cpp98 -d data --allow-non-thread-safe
|
||||
- name: Build and run standard C++11
|
||||
run: |
|
||||
g++ -Wall -Wextra -Werror -Wno-unused-function -std=c++11 -DUFBX_STANDARD_C build/runner.o -x c++ ufbx.c -lm -o build/runner-cpp11
|
||||
build/runner-cpp11 -d data
|
||||
- name: Build and run threadcheck (standard C11)
|
||||
run: |
|
||||
gcc -Wall -Wextra -Werror -Wno-unused-function -std=c11 -DUFBX_STANDARD_C -c ufbx.c -o build/ufbx-c11.o
|
||||
g++ -Wall -Wextra -Werror -Wno-unused-function -pthread -std=c++11 build/ufbx-c11.o test/threadcheck.cpp -lm -o build/threadcheck-c11
|
||||
build/threadcheck-c11 data/maya_cube_7500_binary.fbx 2
|
||||
- name: Build and run threadcheck (standard C++11)
|
||||
run: |
|
||||
g++ -Wall -Wextra -Werror -Wno-unused-function -pthread -std=c++11 -DUFBX_STANDARD_C -x c++ ufbx.c test/threadcheck.cpp -lm -o build/threadcheck-cpp11
|
||||
build/threadcheck-cpp11 data/maya_cube_7500_binary.fbx 2
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_exotic.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_exotic.txt.gz
|
||||
|
||||
ci_hasher:
|
||||
runs-on: ubuntu-latest
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Prepare directories
|
||||
run: |
|
||||
mkdir build
|
||||
mkdir build/hashdumps
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- name: Compile and run hash_scene with various configurations
|
||||
run: |
|
||||
clang test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_x64_release.txt --max-dump-errors 3
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_unbuffered_x64_release.txt --max-dump-errors 3 --no-read-buffer
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_dedicated_x64_release.txt --max-dump-errors 3 --dedicated-allocs
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_linear_x64_release.txt --max-dump-errors 3 --dedicated-allocs --allocator linear
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_linear_reverse_x64_release.txt --max-dump-errors 3 --dedicated-allocs --allocator linear-reverse
|
||||
clang -DUFBX_DEV -DUFBX_REGRESSION test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_regression_x64_release.txt --max-dump-errors 3
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_regression_unbuffered_x64_release.txt --max-dump-errors 3 --no-read-buffer
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_regression_dedicated_x64_release.txt --max-dump-errors 3 --dedicated-allocs
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_regression_linear_x64_release.txt --max-dump-errors 3 --dedicated-allocs --allocator linear
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_regression_linear_reverse_x64_release.txt --max-dump-errors 3 --dedicated-allocs --allocator linear-reverse
|
||||
clang -fshort-enums -fshort-wchar test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_short_x64_release.txt --max-dump-errors 3
|
||||
clang -fsigned-char test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_schar_x64_release.txt --max-dump-errors 3
|
||||
clang -funsigned-char test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_uchar_x64_release.txt --max-dump-errors 3
|
||||
clang -DUFBX_STANDARD_C -DUFBX_DEV -DUFBX_REGRESSION test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
build/hash_scene --check build/hashes.txt --dump build/hashdumps/ci_hasher_stdc_x64_release.txt --max-dump-errors 3
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_hasher.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_hasher.txt.gz
|
||||
|
||||
ci_wasm:
|
||||
runs-on: ubuntu-latest
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Install wasi-sdk
|
||||
run: |
|
||||
mkdir build
|
||||
export WASI_VERSION=17
|
||||
export WASI_VERSION_FULL=${WASI_VERSION}.0
|
||||
curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_VERSION}/wasi-sdk-${WASI_VERSION_FULL}-linux.tar.gz -o build/wasi-sdk.tar.gz
|
||||
tar xzf build/wasi-sdk.tar.gz -C build
|
||||
mv build/wasi-sdk-${WASI_VERSION_FULL} build/wasi-sdk
|
||||
- name: Install wasmtime
|
||||
run: |
|
||||
curl https://wasmtime.dev/install.sh -sSf > wasmtime-install.sh
|
||||
bash wasmtime-install.sh --version v4.0.0
|
||||
echo "$HOME/.wasmtime/bin" >> $GITHUB_PATH
|
||||
- name: Test wasmtime
|
||||
run: wasmtime --version
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- name: Run tests
|
||||
run: python3 misc/run_tests.py tests hashes --wasi-sdk build/wasi-sdk --compiler wasi_clang --runner ci_wasm
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_wasm.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_wasm.txt.gz
|
||||
|
||||
ci_arm32:
|
||||
runs-on: [self-hosted, ARM]
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- name: Run tests
|
||||
run: python3 misc/run_tests.py tests stack hashes --no-sanitize --threads 2 --runner ci_arm64
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_arm32.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_arm32.txt.gz
|
||||
|
||||
ci_arm64:
|
||||
runs-on: [self-hosted, ARM64]
|
||||
needs: ci_pre_hashes
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Download reference hashes
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: reference-hashes
|
||||
path: build
|
||||
- name: Run tests
|
||||
run: python3 misc/run_tests.py tests stack hashes --no-sanitize --threads 2 --runner ci_arm64
|
||||
- name: Compress hashdumps
|
||||
if: ${{ always() && !cancelled() }}
|
||||
run: python3 misc/hash_diff.py compress build/hashdumps -o build/hashdump_ci_arm64.txt.gz
|
||||
- name: Upload hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_arm64.txt.gz
|
||||
|
||||
ci_dataset:
|
||||
runs-on: [self-hosted, ARM64]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Create build directory
|
||||
run: mkdir build
|
||||
- name: Compile check_fbx.c
|
||||
run: clang -O2 test/check_fbx.c -lm -o build/check_fbx
|
||||
- name: Run dataset tests
|
||||
run: python3 misc/check_dataset.py --exe build/check_fbx --root /mnt/fbx-files --host-url https://ufbx-dataset.b-cdn.net
|
||||
|
||||
ci_post_hashes:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ always() }}
|
||||
needs: [ci_ubuntu, ci_windows, ci_macos, ci_wasm, ci_arm32, ci_arm64, ci_exotic, ci_hasher]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- name: Compile hash_scene
|
||||
run: |
|
||||
mkdir build
|
||||
clang test/hash_scene.c misc/fdlibm.c -O2 -o build/hash_scene
|
||||
- name: Download combined hashdumps
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/ci-hashdumps
|
||||
- name: List files to dump
|
||||
run: python3 misc/hash_diff.py list build/ci-hashdumps -o build/dumped-files.txt
|
||||
- name: Dump reference hashes
|
||||
run: |
|
||||
mkdir build/ref-hashdumps
|
||||
build/hash_scene --check build/dumped-files.txt --dump build/ref-hashdumps/reference_linux_x64_release.txt --dump-all
|
||||
- name: Compress reference hashdumps
|
||||
run: python3 misc/hash_diff.py compress build/ref-hashdumps -o build/hashdump_ci_reference.txt.gz
|
||||
- name: Diff CI and reference dumps
|
||||
run: python3 misc/hash_diff.py diff build/ci-hashdumps --ref build/hashdump_ci_reference.txt.gz
|
||||
- name: Upload reference hashdumps
|
||||
uses: actions/upload-artifact@v3
|
||||
if: ${{ always() && !cancelled() }}
|
||||
with:
|
||||
name: hash-dumps
|
||||
path: build/hashdump_ci_reference.txt.gz
|
||||
19
modules/ufbx/.gitignore
vendored
Normal file
19
modules/ufbx/.gitignore
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
# Project files
|
||||
proj/
|
||||
|
||||
# Build output
|
||||
build/
|
||||
|
||||
# Python cache files
|
||||
__pycache__/
|
||||
|
||||
# Editor files
|
||||
.vscode/
|
||||
|
||||
# Coverage files
|
||||
*.lcov
|
||||
*.gcov
|
||||
*.gcda
|
||||
*.gcno
|
||||
|
||||
39
modules/ufbx/LICENSE
Normal file
39
modules/ufbx/LICENSE
Normal file
@@ -0,0 +1,39 @@
|
||||
------------------------------------------------------------------------------
|
||||
This software is available under 2 licenses -- choose whichever you prefer.
|
||||
------------------------------------------------------------------------------
|
||||
ALTERNATIVE A - MIT License
|
||||
Copyright (c) 2020 Samuli Raivio
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
------------------------------------------------------------------------------
|
||||
ALTERNATIVE B - Public Domain (www.unlicense.org)
|
||||
This is free and unencumbered software released into the public domain.
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
|
||||
software, either in source code form or as a compiled binary, for any purpose,
|
||||
commercial or non-commercial, and by any means.
|
||||
In jurisdictions that recognize copyright laws, the author or authors of this
|
||||
software dedicate any and all copyright interest in the software to the public
|
||||
domain. We make this dedication for the benefit of the public at large and to
|
||||
the detriment of our heirs and successors. We intend this dedication to be an
|
||||
overt act of relinquishment in perpetuity of all present and future rights to
|
||||
this software under copyright law.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
----------------------------------------
|
||||
145
modules/ufbx/README.md
Normal file
145
modules/ufbx/README.md
Normal file
@@ -0,0 +1,145 @@
|
||||
# ufbx [](https://github.com/bqqbarbhg/ufbx/actions/workflows/ci.yml) [](https://codecov.io/gh/bqqbarbhg/ufbx)
|
||||
|
||||
Single source file FBX file loader.
|
||||
|
||||
```cpp
|
||||
ufbx_load_opts opts = { 0 }; // Optional, pass NULL for defaults
|
||||
ufbx_error error; // Optional, pass NULL if you don't care about errors
|
||||
ufbx_scene *scene = ufbx_load_file("thing.fbx", &opts, &error);
|
||||
if (!scene) {
|
||||
fprintf(stderr, "Failed to load: %s\n", error.description.data);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// Use and inspect `scene`, it's just plain data!
|
||||
|
||||
// Let's just list all objects within the scene for example:
|
||||
for (size_t i = 0; i < scene->nodes.count; i++) {
|
||||
ufbx_node *node = scene->nodes.data[i];
|
||||
if (node->is_root) continue;
|
||||
|
||||
printf("Object: %s\n", node->name.data);
|
||||
if (node->mesh) {
|
||||
printf("-> mesh with %zu faces\n", node->mesh->faces.count);
|
||||
}
|
||||
}
|
||||
|
||||
ufbx_free_scene(scene);
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
Copy `ufbx.h` and `ufbx.c` to your project, `ufbx.c` needs to be compiled as
|
||||
C99/C++11 or more recent. You can also add `misc/ufbx.natvis` to get debug
|
||||
formatting for the types.
|
||||
|
||||
## Features
|
||||
|
||||
The goal is to be at feature parity with the official FBX SDK.
|
||||
|
||||
* Supports binary and ASCII FBX files starting from version 3000
|
||||
* Safe
|
||||
* Invalid files and out-of-memory conditions are handled gracefully
|
||||
* Loaded scenes are sanitized by default, no out-of-bounds indices or non-UTF-8 strings
|
||||
* Extensively [tested](#testing)
|
||||
* Various object types
|
||||
* Meshes, skinning, blend shapes
|
||||
* Lights and cameras
|
||||
* Embedded textures
|
||||
* NURBS curves and surfaces
|
||||
* Geometry caches
|
||||
* LOD groups
|
||||
* Display/selection sets
|
||||
* Rigging constraints
|
||||
* Unified PBR material from known vendor-specific materials
|
||||
* Various utilities for evaluating the scene (can be compiled out if not needed)
|
||||
* Polygon triangulation
|
||||
* Index generation
|
||||
* Animation curve evaluation / layer blending
|
||||
* CPU skinning evaluation
|
||||
* Subdivision surface evaluation
|
||||
* NURBS curve/surface tessellation
|
||||
* Progress reporting and cancellation
|
||||
* Support for Wavefront `.obj` files as well
|
||||
|
||||
## Platforms
|
||||
|
||||
The library is written in portable C (also compiles as C++) and should work on
|
||||
almost any platform without modification. If compiled as pre-C11/C++11 on an
|
||||
unknown compiler (not MSVC/Clang/GCC/TCC), some functions will not be
|
||||
thread-safe as C99 does not have support for atomics.
|
||||
|
||||
The following platforms are tested on CI and produce bit-exact results:
|
||||
|
||||
* Windows: MSVC x64/x86, Clang x64/x86, GCC MinGW x64
|
||||
* macOS: Clang x64, GCC x64
|
||||
* Linux: Clang x64/x86/ARM64/ARM32/PowerPC, GCC x64/x86/ARM64/ARM32, TCC x64/x86
|
||||
* WASI: Clang WASM
|
||||
|
||||
## Testing
|
||||
|
||||
* Internal tests run on all platforms listed above
|
||||
* Fuzzed in multiple layers
|
||||
* Parsers (fbx binary/fbx ascii/deflate/xml/mcx/obj/mtl) fuzzed via AFL
|
||||
* Built-in fuzzing for byte modifications/truncation/out-of-memory
|
||||
* Semantic fuzzing for binary FBX and OBJ files
|
||||
* Public dataset: 3.0GB / 245 files
|
||||
* Loaded, validated, and compared against reference .obj files
|
||||
* Private dataset: 33.6GB / 12618 files
|
||||
* Loaded and validated
|
||||
* Static analysis for maximum stack depth on Linux GCC/Clang
|
||||
|
||||
## Versioning
|
||||
|
||||
The latest commit in the [`master`](https://github.com/ufbx/ufbx/tree/master)
|
||||
branch contains the latest stable version of the library.
|
||||
|
||||
Older versions are tagged as `vX.Y.Z`, patch updates (`Z`) are ABI compatible
|
||||
and work with older versions of the header from the same minor version (`Y`).
|
||||
Minor versions within a major verision (`X`) are expected to be source
|
||||
compatible after `1.0.0` but the `0.Y.Z` releases can break for every minor
|
||||
release.
|
||||
|
||||
## License
|
||||
|
||||
```
|
||||
------------------------------------------------------------------------------
|
||||
This software is available under 2 licenses -- choose whichever you prefer.
|
||||
------------------------------------------------------------------------------
|
||||
ALTERNATIVE A - MIT License
|
||||
Copyright (c) 2020 Samuli Raivio
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
------------------------------------------------------------------------------
|
||||
ALTERNATIVE B - Public Domain (www.unlicense.org)
|
||||
This is free and unencumbered software released into the public domain.
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
|
||||
software, either in source code form or as a compiled binary, for any purpose,
|
||||
commercial or non-commercial, and by any means.
|
||||
In jurisdictions that recognize copyright laws, the author or authors of this
|
||||
software dedicate any and all copyright interest in the software to the public
|
||||
domain. We make this dedication for the benefit of the public at large and to
|
||||
the detriment of our heirs and successors. We intend this dedication to be an
|
||||
overt act of relinquishment in perpetuity of all present and future rights to
|
||||
this software under copyright law.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
----------------------------------------
|
||||
```
|
||||
472
modules/ufbx/bindgen/parsette.py
Normal file
472
modules/ufbx/bindgen/parsette.py
Normal file
@@ -0,0 +1,472 @@
|
||||
import re
|
||||
from typing import Optional, Callable, Any, Iterable, NamedTuple, Union, List, Dict, Tuple
|
||||
import typing
|
||||
|
||||
try:
|
||||
regex_type = re.Pattern
|
||||
except AttributeError:
|
||||
try:
|
||||
regex_type = re.RegexObject
|
||||
except AttributeError:
|
||||
regex_type = type(re.compile(''))
|
||||
|
||||
Matcher = Callable[[str, int], int]
|
||||
|
||||
def make_regex_matcher(regex) -> Matcher:
|
||||
def matcher(text: str, begin: int) -> int:
|
||||
m = regex.match(text, begin)
|
||||
if m:
|
||||
return m.end()
|
||||
else:
|
||||
return -1
|
||||
return matcher
|
||||
|
||||
def make_literal_matcher(literal) -> Matcher:
|
||||
def matcher(text: str, begin: int) -> int:
|
||||
if text.startswith(literal, begin):
|
||||
return begin + len(literal)
|
||||
else:
|
||||
return -1
|
||||
return matcher
|
||||
|
||||
def never_matcher(text: str, begin: int) -> int:
|
||||
return -1
|
||||
|
||||
def always_one_matcher(text: str, begin: int) -> int:
|
||||
return begin + 1
|
||||
|
||||
class Location(NamedTuple):
|
||||
filename: str
|
||||
source: str
|
||||
begin: int
|
||||
end: int
|
||||
line: int
|
||||
column: int
|
||||
|
||||
def __str__(self):
|
||||
if self.filename:
|
||||
return f"{self.filename}:{self.line}:{self.column}"
|
||||
else:
|
||||
return f"{self.line}:{self.column}"
|
||||
|
||||
class ParserHint(NamedTuple):
|
||||
location: Location
|
||||
message: str
|
||||
|
||||
class ParseError(Exception):
|
||||
def __init__(self, loc: Location, message: str, hints: Iterable[ParserHint]):
|
||||
msg = f"{loc}: {message}"
|
||||
if hints:
|
||||
lines = (f".. while parsing {h.message} at {h.location}" for h in reversed(hints))
|
||||
msg = msg + "\n" + "\n".join(lines)
|
||||
super().__init__(msg)
|
||||
self.loc = loc
|
||||
|
||||
class Rule:
|
||||
"""Rule to match tokens
|
||||
|
||||
"""
|
||||
def __init__(self, name: str, matcher: Matcher=never_matcher, literal: str="", value:Any=None, ignore:bool=False):
|
||||
self.name = name
|
||||
self.matcher = matcher
|
||||
self.literal = literal
|
||||
if value is None or callable(value):
|
||||
self.valuer = value
|
||||
else:
|
||||
self.valuer = lambda s: value
|
||||
self.ignore = bool(ignore)
|
||||
|
||||
def __repr__(self):
|
||||
return "Rule({!r})".format(self.name)
|
||||
|
||||
def __str__(self):
|
||||
return "{!r}".format(self.name)
|
||||
|
||||
# Special rules for begin and end
|
||||
Begin = Rule("begin-of-file")
|
||||
End = Rule("end-of-file")
|
||||
Synthetic = Rule("synthetic")
|
||||
Error = Rule("error")
|
||||
|
||||
def make_matcher_from_pattern(pattern: Any) -> Matcher:
|
||||
if isinstance(pattern, str):
|
||||
# Compile strings to regex
|
||||
regex = re.compile(pattern, re.ASCII)
|
||||
return make_regex_matcher(regex)
|
||||
elif isinstance(pattern, regex_type):
|
||||
# Already compiled regex
|
||||
return make_regex_matcher(pattern)
|
||||
elif callable(pattern):
|
||||
# Custom matcher function
|
||||
return pattern
|
||||
else:
|
||||
raise TypeError('Invalid type for rule pattern {!r}'.format(type(pattern)))
|
||||
|
||||
class Lexer(object):
|
||||
def __init__(self):
|
||||
self.global_rules = []
|
||||
self.prefix_rules = {}
|
||||
self.lexer_type = SourceLexer
|
||||
|
||||
def add_rule(self, rule: Rule, prefix:Iterable[str]=None):
|
||||
if prefix:
|
||||
for pre in prefix:
|
||||
if not isinstance(pre, str):
|
||||
raise TypeError("Prefixes must be an iterable of str")
|
||||
if len(pre) > 1:
|
||||
raise ValueError('Prefixes must be single characters')
|
||||
rules = self.prefix_rules.setdefault(pre, [])
|
||||
rules.append(rule)
|
||||
else:
|
||||
self.global_rules.append(rule)
|
||||
|
||||
def rule(self, name: str, pattern: Any, *, value:Any=None, prefix:Optional[Iterable[str]]=None):
|
||||
matcher = make_matcher_from_pattern(pattern)
|
||||
rule = Rule(name, matcher, "", value, ignore=False)
|
||||
self.add_rule(rule, prefix)
|
||||
return rule
|
||||
|
||||
def ignore(self, name: str, pattern: Any, *, value:Any=None, prefix:Optional[Iterable[str]]=None):
|
||||
matcher = make_matcher_from_pattern(pattern)
|
||||
rule = Rule(name, matcher, "", value, ignore=True)
|
||||
self.add_rule(rule, prefix)
|
||||
return rule
|
||||
|
||||
def ignore_whitespace(self, *, ignore_newline=True):
|
||||
spaces = " \t\v\r"
|
||||
if ignore_newline:
|
||||
spaces += "\n"
|
||||
regex = re.compile(f"[{re.escape(spaces)}]+")
|
||||
self.ignore("whitespace", regex, prefix=spaces)
|
||||
|
||||
def literal(self, literal: str, value: Any=None):
|
||||
if not isinstance(literal, str):
|
||||
raise TypeError('Literals must be strings, got {!r}'.format(type(literal)))
|
||||
if not literal:
|
||||
raise ValueError('Empty literal')
|
||||
if len(literal) == 1:
|
||||
# Prefix match is full match
|
||||
matcher = always_one_matcher
|
||||
else:
|
||||
matcher = make_literal_matcher(literal)
|
||||
rule = Rule(repr(literal), matcher, literal, value)
|
||||
self.add_rule(rule, literal[0])
|
||||
return rule
|
||||
|
||||
def literals(self, *args: str):
|
||||
return [self.literal(arg) for arg in args]
|
||||
|
||||
def make(self, source: str, filename: str=""):
|
||||
return self.lexer_type(self, source, filename)
|
||||
|
||||
class Token:
|
||||
__slots__ = ["rule", "location", "value", "_text"]
|
||||
|
||||
def __init__(self, rule: Rule, location: Location):
|
||||
self.rule = rule
|
||||
self.location = location
|
||||
self.value = None
|
||||
self._text = None
|
||||
|
||||
if rule.valuer:
|
||||
self.value = rule.valuer(self.text())
|
||||
|
||||
def text(self) -> str:
|
||||
if self._text is None:
|
||||
loc = self.location
|
||||
self._text = loc.source[loc.begin:loc.end]
|
||||
return self._text
|
||||
|
||||
def __str__(self) -> str:
|
||||
loc = self.location
|
||||
length = loc.end - loc.begin
|
||||
if self.rule.literal or length > 20:
|
||||
return self.rule.name
|
||||
else:
|
||||
return f"{self.rule.name} {self.text()!r}"
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"Token({self.rule.name!r}"
|
||||
|
||||
def synthetic(text: str):
|
||||
length = len(text)
|
||||
loc = Location("", text, 0, length, 1, 1)
|
||||
return Token(Synthetic, loc)
|
||||
|
||||
class SourceLexer:
|
||||
def __init__(self, lexer: Lexer, source: str, filename:str=""):
|
||||
self.pos = 0
|
||||
self.lexer = lexer
|
||||
self.source = source
|
||||
self.source_length = len(source)
|
||||
self.filename = filename
|
||||
self.line = 1
|
||||
self.line_end = 0
|
||||
|
||||
def scan(self) -> Token:
|
||||
pos = self.pos
|
||||
source_end = self.source_length
|
||||
lexer = self.lexer
|
||||
source = self.source
|
||||
global_rules = lexer.global_rules
|
||||
|
||||
while pos < source_end:
|
||||
prefix = source[pos]
|
||||
prefix_rules = lexer.prefix_rules.get(prefix)
|
||||
|
||||
best_rule = None
|
||||
best_end = -1
|
||||
|
||||
if prefix_rules:
|
||||
for rule in prefix_rules:
|
||||
end = rule.matcher(source, pos)
|
||||
if end >= best_end:
|
||||
best_rule = rule
|
||||
best_end = end
|
||||
|
||||
for rule in global_rules:
|
||||
end = rule.matcher(source, pos)
|
||||
if end >= best_end:
|
||||
best_rule = rule
|
||||
best_end = end
|
||||
|
||||
column = pos - self.line_end + 1
|
||||
while self.line_end < best_end:
|
||||
line_end = source.find("\n", self.line_end, best_end)
|
||||
if line_end < 0: break
|
||||
self.line_end = line_end + 1
|
||||
self.line += 1
|
||||
|
||||
if best_end < 0:
|
||||
loc = Location(self.filename, source, pos, pos + 1, self.line, column)
|
||||
return Token(Error, loc)
|
||||
|
||||
if best_rule.ignore:
|
||||
pos = best_end
|
||||
else:
|
||||
self.pos = best_end
|
||||
loc = Location(self.filename, source, pos, best_end, self.line, column)
|
||||
return Token(best_rule, loc)
|
||||
|
||||
loc = Location(self.filename, source, source_end, source_end + 1, self.line + 1, 1)
|
||||
return Token(End, loc)
|
||||
|
||||
def format_rule(rule):
|
||||
if isinstance(rule, list):
|
||||
return 'any of ({})'.format(', '.join(format_rule(r) for r in rule))
|
||||
elif isinstance(rule, Rule):
|
||||
return rule.name
|
||||
elif isinstance(rule, str):
|
||||
return repr(rule)
|
||||
else:
|
||||
raise TypeError(f'Unsupported rule type {repr(type(rule))}')
|
||||
|
||||
def format_message(msg):
|
||||
return " " + msg if msg else ""
|
||||
|
||||
class ParserHintContext:
|
||||
def __init__(self, parser: "Parser", token_or_loc: Union[Token, Location], message: str):
|
||||
self.parser = parser
|
||||
if hasattr(token_or_loc, "location"):
|
||||
self.location = token_or_loc.location
|
||||
else:
|
||||
self.location = token_or_loc
|
||||
self.message = message
|
||||
|
||||
def __enter__(self):
|
||||
self.parser.hint_stack.append(ParserHint(self.location, self.message))
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
self.parser.hint_stack.pop()
|
||||
|
||||
class Parser:
|
||||
def __init__(self, lexer: Lexer, source: str, filename:str=""):
|
||||
begin_loc = Location(filename, source, 0, 0, 1, 1)
|
||||
self.lexer = lexer
|
||||
self.source_lexer = lexer.make(source, filename)
|
||||
self.prev_token = Token(Begin, begin_loc)
|
||||
self.token = self.source_lexer.scan()
|
||||
self.hint_stack = []
|
||||
|
||||
def scan(self):
|
||||
if self.token.rule is not End:
|
||||
self.prev_token = self.token
|
||||
self.token = self.source_lexer.scan()
|
||||
if self.token.rule is Error:
|
||||
self.fail(f"Bad token starting with {self.token.text()!r}")
|
||||
return self.prev_token
|
||||
|
||||
def peek(self, rule: Any) -> Optional[Token]:
|
||||
if isinstance(rule, list):
|
||||
for r in rule:
|
||||
tok = self.peek(r)
|
||||
if tok: return tok
|
||||
elif isinstance(rule, Rule):
|
||||
if self.token.rule == rule:
|
||||
return self.token
|
||||
elif isinstance(rule, str):
|
||||
if self.token.rule.literal == rule:
|
||||
return self.token
|
||||
else:
|
||||
raise TypeError(f'Unsupported rule type {type(rule)!r}')
|
||||
|
||||
def accept(self, rule) -> Optional[Token]:
|
||||
tok = self.peek(rule)
|
||||
if tok:
|
||||
self.scan()
|
||||
return tok
|
||||
else:
|
||||
return None
|
||||
|
||||
def fail_at(self, location: Location, message: str):
|
||||
raise ParseError(location, message, self.hint_stack)
|
||||
|
||||
def fail(self, message: str):
|
||||
self.fail_at(self.token.location, message)
|
||||
|
||||
def fail_prev(self, message: str):
|
||||
self.fail_at(self.prev_token.location, message)
|
||||
|
||||
def fail_got(self, message: str):
|
||||
self.fail_at(self.token.location, message + f", got {self.token}")
|
||||
|
||||
def fail_prev_got(self, message: str):
|
||||
self.fail_at(self.prev_token.location, message + f", got {self.prev_token}")
|
||||
|
||||
def require(self, rule, message: str="") -> Token:
|
||||
tok = self.accept(rule)
|
||||
if tok:
|
||||
return tok
|
||||
else:
|
||||
fr, fm = format_rule, format_message
|
||||
self.fail_got(f"Expected {fr(rule)}{fm(message)}")
|
||||
|
||||
def sep(self, sep, message="") -> Iterable[int]:
|
||||
n = 0
|
||||
yield n
|
||||
while self.accept(sep):
|
||||
yield n
|
||||
n += 1
|
||||
|
||||
def until(self, end, message="") -> Iterable[int]:
|
||||
n = 0
|
||||
while not self.accept(end):
|
||||
yield n
|
||||
n += 1
|
||||
|
||||
def sep_until(self, sep, end, message="") -> Iterable[int]:
|
||||
n = 0
|
||||
while not self.accept(end):
|
||||
if n > 0 and not self.accept(sep):
|
||||
fr, fm = format_rule, format_message
|
||||
self.fail_got(f"Expected {fr(sep)} or {fr(end)}{fm(message)}")
|
||||
yield n
|
||||
n += 1
|
||||
|
||||
def ignore(self, rule) -> int:
|
||||
n = 0
|
||||
while self.accept(rule):
|
||||
n += 1
|
||||
return n
|
||||
|
||||
def hint(self, token_or_loc: Union[Token, Location], message: str):
|
||||
return ParserHintContext(self, token_or_loc, message)
|
||||
|
||||
get_origin = getattr(typing, "get_origin", lambda o: getattr(o, "__origin__", None))
|
||||
get_args = getattr(typing, "get_args", lambda o: getattr(o, "__args__", None))
|
||||
|
||||
class AstField(NamedTuple):
|
||||
name: str
|
||||
base: type
|
||||
optional: bool
|
||||
sequence: bool
|
||||
|
||||
def make_ast_field(name, base):
|
||||
origin, args = get_origin(base), get_args(base)
|
||||
optional = sequence = False
|
||||
if origin == Union and len(args) == 2 and type(None) in args:
|
||||
base = args[args.index(type(None)) ^ 1]
|
||||
optional = True
|
||||
origin, args = get_origin(base), get_args(base)
|
||||
if origin == List:
|
||||
base = args[0]
|
||||
sequence = True
|
||||
elif origin:
|
||||
base = object
|
||||
return AstField(name, base, optional, sequence)
|
||||
|
||||
class Ast:
|
||||
def __init__(self, *args, **kwargs):
|
||||
cls = type(self)
|
||||
if len(args) > len(cls.fields):
|
||||
raise TypeError(f"Too many fields for {cls.__name__}: {len(args)}, expected {len(cls.fields)}")
|
||||
for field, arg in zip(cls.fields, args):
|
||||
setattr(self, field.name, arg)
|
||||
for name, arg in kwargs.items():
|
||||
setattr(self, name, arg)
|
||||
for field in cls.fields:
|
||||
try:
|
||||
value = getattr(self, field.name)
|
||||
if field.optional and value is None:
|
||||
continue
|
||||
if field.sequence:
|
||||
for ix, v in enumerate(value):
|
||||
if not isinstance(v, field.base):
|
||||
raise TypeError(f"Trying to assign '{type(v).__name__}' to '{cls.__name__}' field '{field.name}: {field.base.__name__}' index [{ix}]")
|
||||
else:
|
||||
if not isinstance(value, field.base):
|
||||
raise TypeError(f"Trying to assign '{type(value).__name__}' to '{cls.__name__}' field '{field.name}: {field.base.__name__}'")
|
||||
except AttributeError:
|
||||
raise ValueError(f"'{cls.__name__}' requires field '{field.name}: {field.base.__name__}'")
|
||||
|
||||
def __init_subclass__(cls, **kwargs):
|
||||
fields = getattr(cls, "__annotations__", {})
|
||||
cls.fields = [make_ast_field(k, v) for k,v in fields.items()]
|
||||
super().__init_subclass__(**kwargs)
|
||||
|
||||
def _imp_dump(self, result, indent):
|
||||
cls = type(self)
|
||||
indent_str = " " * indent
|
||||
result += (cls.__name__, "(")
|
||||
first = True
|
||||
num_asts = 0
|
||||
for field in cls.fields:
|
||||
if issubclass(field.base, Ast):
|
||||
num_asts += 1
|
||||
continue
|
||||
if not first: result.append(", ")
|
||||
first = False
|
||||
result += (field.name, "=", str(getattr(self, field.name, None)))
|
||||
|
||||
for field in cls.fields:
|
||||
if not issubclass(field.base, Ast): continue
|
||||
|
||||
if num_asts > 1:
|
||||
result += ("\n", indent_str, " ")
|
||||
else:
|
||||
if not first: result.append(", ")
|
||||
|
||||
result.append(field.name)
|
||||
result.append("=")
|
||||
attr = getattr(self, field.name, None)
|
||||
if not attr:
|
||||
result.append("None")
|
||||
continue
|
||||
|
||||
if field.sequence:
|
||||
result.append("[")
|
||||
seq_indent = 1 if num_asts == 1 else 2
|
||||
print(seq_indent)
|
||||
for ast in getattr(self, field.name, None):
|
||||
result += ("\n", indent_str, " " * seq_indent)
|
||||
ast._imp_dump(result, indent + seq_indent)
|
||||
result += ("\n", indent_str, " ]")
|
||||
else:
|
||||
attr._imp_dump(result, indent + 1)
|
||||
|
||||
result += ")"
|
||||
|
||||
def dump(self, indent=0):
|
||||
result = []
|
||||
self._imp_dump(result, indent)
|
||||
return "".join(result)
|
||||
1098
modules/ufbx/bindgen/ufbx_ir.py
Normal file
1098
modules/ufbx/bindgen/ufbx_ir.py
Normal file
File diff suppressed because it is too large
Load Diff
804
modules/ufbx/bindgen/ufbx_parser.py
Normal file
804
modules/ufbx/bindgen/ufbx_parser.py
Normal file
@@ -0,0 +1,804 @@
|
||||
import parsette
|
||||
import string
|
||||
from typing import List, Optional, NamedTuple, Union
|
||||
import json
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
|
||||
lexer = parsette.Lexer()
|
||||
|
||||
lexer.ignore_whitespace()
|
||||
|
||||
TEnd = parsette.End
|
||||
TIdent = lexer.rule("identifier", r"[A-Za-z_][A-Za-z0-9_]*", prefix=string.ascii_letters+"_")
|
||||
TNumber = lexer.rule("number", r"(0[Xx][0-9A-Fa-f]+)|([0-9]+)", prefix=string.digits)
|
||||
TComment = lexer.rule("comment", r"//[^\r\n]*", prefix="/")
|
||||
TPreproc = lexer.rule("preproc", r"#[^\n\\]*(\\\r?\n[^\n\\]*?)*\n", prefix="#")
|
||||
TString = lexer.rule("string", r"\"[^\"]*\"", prefix="\"")
|
||||
lexer.literals(*"const typedef struct union enum extern ufbx_abi ufbx_inline ufbx_nullable ufbx_abi ufbx_unsafe UFBX_LIST_TYPE UFBX_ENUM_REPR UFBX_FLAG_REPR UFBX_ENUM_FORCE_WIDTH UFBX_FLAG_FORCE_WIDTH UFBX_ENUM_TYPE".split())
|
||||
lexer.literals(*",.*[]{}()<>=-;")
|
||||
lexer.ignore("disable", re.compile(r"//\s*bindgen-disable.*?//\s*bindgen-enable", flags=re.DOTALL))
|
||||
|
||||
Token = parsette.Token
|
||||
Ast = parsette.Ast
|
||||
|
||||
class AType(Ast):
|
||||
pass
|
||||
|
||||
class AName(Ast):
|
||||
pass
|
||||
|
||||
class ATop(Ast):
|
||||
pass
|
||||
|
||||
class AStructDecl(Ast):
|
||||
pass
|
||||
|
||||
class AEnumDecl(Ast):
|
||||
pass
|
||||
|
||||
class ADecl(Ast):
|
||||
type: AType
|
||||
names: List[AName]
|
||||
end_line: Optional[int] = None
|
||||
|
||||
class ANamePointer(AName):
|
||||
inner: AName
|
||||
|
||||
class ANameArray(AName):
|
||||
inner: AName
|
||||
length: Optional[Token]
|
||||
|
||||
class ANameIdent(AName):
|
||||
ident: Token
|
||||
|
||||
class ANameFunction(AName):
|
||||
inner: AName
|
||||
args: List[ADecl]
|
||||
|
||||
class ANameAnonymous(AName):
|
||||
pass
|
||||
|
||||
class ATypeConst(AType):
|
||||
inner: AType
|
||||
|
||||
class ATypeSpec(AType):
|
||||
inner: AType
|
||||
spec: Token
|
||||
|
||||
class ATypeIdent(AType):
|
||||
name: Token
|
||||
|
||||
class ATypeStruct(AType):
|
||||
kind: Token
|
||||
name: Optional[Token]
|
||||
decls: Optional[List[AStructDecl]]
|
||||
|
||||
class ATypeEnum(AType):
|
||||
kind: Token
|
||||
name: Optional[Token]
|
||||
decls: Optional[List[AEnumDecl]]
|
||||
|
||||
class AStructComment(AStructDecl):
|
||||
comments: List[Token]
|
||||
|
||||
class AStructField(AStructDecl):
|
||||
decl: ADecl
|
||||
|
||||
class AEnumComment(AEnumDecl):
|
||||
comments: List[Token]
|
||||
|
||||
class AEnumValue(AEnumDecl):
|
||||
name: Token
|
||||
value: Optional[Token]
|
||||
|
||||
class ATopPreproc(ATop):
|
||||
preproc: Token
|
||||
|
||||
class ATopComment(ATop):
|
||||
comments: List[Token]
|
||||
|
||||
class ATopDecl(ATop):
|
||||
decl: ADecl
|
||||
|
||||
class ATopExtern(ATop):
|
||||
decl: ADecl
|
||||
|
||||
class ATopTypedef(ATop):
|
||||
decl: ADecl
|
||||
|
||||
class ATopFile(ATop):
|
||||
tops: List[ATop]
|
||||
|
||||
class ATopList(ATop):
|
||||
name: Token
|
||||
type: ADecl
|
||||
|
||||
class ATopEnumType(ATop):
|
||||
enum_type: Token
|
||||
prefix: Token
|
||||
last_value: Token
|
||||
|
||||
class Parser(parsette.Parser):
|
||||
def __init__(self, source, filename=""):
|
||||
super().__init__(lexer, source, filename)
|
||||
|
||||
def finish_comment(self, comment_type, first):
|
||||
comments = [first]
|
||||
line = first.location.line + 1
|
||||
while self.peek(TComment) and self.token.location.line == line:
|
||||
comments.append(self.scan())
|
||||
line += 1
|
||||
return comment_type(comments)
|
||||
|
||||
def accept_impl(self) -> bool:
|
||||
if self.token.rule != TIdent: return False
|
||||
text = self.token.text()
|
||||
if not text.startswith("UFBX_"): return False
|
||||
if not text.endswith("_IMPL"): return False
|
||||
self.scan()
|
||||
return True
|
||||
|
||||
def finish_struct(self, kind) -> ATypeStruct:
|
||||
kn = kind.text()
|
||||
name = self.accept(TIdent)
|
||||
if self.accept("{"):
|
||||
fields = []
|
||||
loc = name if name else kind
|
||||
with self.hint(loc, f"{kn} {name.text()}" if name else f"anonymous {kn}"):
|
||||
while not self.accept("}"):
|
||||
if self.accept(TComment):
|
||||
fields.append(self.finish_comment(AStructComment, self.prev_token))
|
||||
elif self.accept_impl():
|
||||
self.require("(", "for macro parameters")
|
||||
self.finish_macro_params()
|
||||
else:
|
||||
decl = self.parse_decl(f"{kn} field")
|
||||
field = AStructField(decl)
|
||||
fields.append(field)
|
||||
self.require(";", f"after {kn} field")
|
||||
else:
|
||||
fields = None
|
||||
return ATypeStruct(kind, name, fields)
|
||||
|
||||
def parse_enum_decl(self) -> AEnumDecl:
|
||||
if self.accept(TComment):
|
||||
return self.finish_comment(AEnumComment, self.prev_token)
|
||||
else:
|
||||
name = self.require(TIdent, "enum value name")
|
||||
value = None
|
||||
if self.accept("="):
|
||||
value = self.require([TIdent, TNumber], f"'{name.text()}' value")
|
||||
return AEnumValue(name, value)
|
||||
|
||||
def finish_enum(self, kind) -> ATypeStruct:
|
||||
kn = kind.text()
|
||||
name = self.accept(TIdent)
|
||||
self.require(["UFBX_ENUM_REPR", "UFBX_FLAG_REPR"], "enum repr macro")
|
||||
if self.accept("{"):
|
||||
decls = []
|
||||
loc = name if name else kind
|
||||
has_force_width = False
|
||||
with self.hint(loc, f"{kn} {name.text()}" if name else f"anonymous {kn}"):
|
||||
while not self.accept("}"):
|
||||
if self.accept(","):
|
||||
continue
|
||||
if self.accept(["UFBX_ENUM_FORCE_WIDTH", "UFBX_FLAG_FORCE_WIDTH"]):
|
||||
self.require("(", "for FORCE_WIDTH macro parameters")
|
||||
self.require(TIdent, "for FORCE_WIDTH macro name")
|
||||
self.require(")", "for FORCE_WIDTH macro parameters")
|
||||
has_force_width = True
|
||||
continue
|
||||
decls.append(self.parse_enum_decl())
|
||||
if not has_force_width:
|
||||
self.fail_at(self.prev_token, "enum missing FORCE_WIDTH macro")
|
||||
else:
|
||||
decls = None
|
||||
return ATypeEnum(kind, name, decls)
|
||||
|
||||
def parse_type(self) -> AType:
|
||||
token = self.token
|
||||
if self.accept("const"):
|
||||
inner = self.parse_type()
|
||||
return ATypeConst(inner)
|
||||
elif self.accept(["ufbx_nullable", "ufbx_abi", "ufbx_unsafe", "ufbx_inline"]):
|
||||
inner = self.parse_type()
|
||||
return ATypeSpec(inner, token)
|
||||
elif self.accept(["struct", "union"]):
|
||||
return self.finish_struct(self.prev_token)
|
||||
elif self.accept("enum"):
|
||||
return self.finish_enum(self.prev_token)
|
||||
elif self.accept(TIdent):
|
||||
return ATypeIdent(self.prev_token)
|
||||
else:
|
||||
self.fail_got("expected a type")
|
||||
|
||||
def parse_name_non_array(self, ctx, allow_anonymous=False) -> AName:
|
||||
if self.accept("*"):
|
||||
inner = self.parse_name_non_array(ctx, allow_anonymous)
|
||||
return ANamePointer(inner)
|
||||
if allow_anonymous and not self.peek(TIdent):
|
||||
return ANameAnonymous()
|
||||
else:
|
||||
name = self.require(TIdent, f"for {ctx} name")
|
||||
return ANameIdent(name)
|
||||
|
||||
def parse_name(self, ctx, allow_anonymous=False) -> AName:
|
||||
ast = self.parse_name_non_array(ctx, allow_anonymous)
|
||||
|
||||
while True:
|
||||
if self.accept("["):
|
||||
length = self.accept([TIdent, TNumber])
|
||||
self.require("]", f"for opening [")
|
||||
ast = ANameArray(ast, length)
|
||||
elif self.accept("("):
|
||||
args = []
|
||||
while not self.accept(")"):
|
||||
args.append(self.parse_decl("argument", allow_list=False, allow_anonymous=True))
|
||||
self.accept(",")
|
||||
ast = ANameFunction(ast, args)
|
||||
else:
|
||||
break
|
||||
return ast
|
||||
|
||||
def parse_decl(self, ctx, allow_anonymous=False, allow_list=True) -> ADecl:
|
||||
typ = self.parse_type()
|
||||
names = []
|
||||
if not self.peek(";"):
|
||||
if allow_list:
|
||||
for _ in self.sep(","):
|
||||
names.append(self.parse_name(ctx, allow_anonymous))
|
||||
else:
|
||||
names.append(self.parse_name(ctx, allow_anonymous))
|
||||
return ADecl(typ, names)
|
||||
|
||||
def finish_top_list(self) -> ATopList:
|
||||
self.require("(", "for macro parameters")
|
||||
name = self.require(TIdent, "for list type name")
|
||||
self.require(",", "for macro parameters")
|
||||
decl = self.parse_decl("UFBX_TOP_LIST type", allow_anonymous=True, allow_list=False)
|
||||
self.require(")", "for macro parameters")
|
||||
return ATopList(name, decl)
|
||||
|
||||
def finish_top_enum_type(self) -> ATopEnumType:
|
||||
self.require("(", "for macro parameters")
|
||||
enum_name = self.require(TIdent, "for enum type name")
|
||||
self.require(",", "for macro parameters")
|
||||
prefix = self.require(TIdent, "for enum prefix")
|
||||
self.require(",", "for macro parameters")
|
||||
last_value = self.require(TIdent, "for enum last value")
|
||||
self.require(")", "for macro parameters")
|
||||
return ATopEnumType(enum_name, prefix, last_value)
|
||||
|
||||
def finish_macro_params(self):
|
||||
while not self.accept(")"):
|
||||
if self.accept(TEnd): self.fail("Unclosed macro parameters")
|
||||
if self.accept("("):
|
||||
self.finish_macro_params()
|
||||
else:
|
||||
self.scan()
|
||||
|
||||
def parse_top(self) -> List[ATop]:
|
||||
if self.accept(TPreproc):
|
||||
return [ATopPreproc(self.prev_token)]
|
||||
elif self.accept(TComment):
|
||||
return [self.finish_comment(ATopComment, self.prev_token)]
|
||||
elif self.accept("typedef"):
|
||||
decl = self.parse_decl("typedef")
|
||||
self.require(";", "after typedef")
|
||||
decl.end_line = self.prev_token.location.line
|
||||
return [ATopTypedef(decl)]
|
||||
elif self.accept("extern"):
|
||||
if self.accept(TString):
|
||||
self.require("{", "for extern ABI block")
|
||||
tops = []
|
||||
while not self.accept("}"):
|
||||
tops += self.parse_top()
|
||||
return tops
|
||||
else:
|
||||
decl = self.parse_decl("extern")
|
||||
self.require(";", "after extern")
|
||||
decl.end_line = self.prev_token.location.line
|
||||
return [ATopExtern(decl)]
|
||||
elif self.accept("UFBX_LIST_TYPE"):
|
||||
tl = self.finish_top_list()
|
||||
self.require(";", "after UFBX_LIST_TYPE()")
|
||||
return [tl]
|
||||
elif self.accept("UFBX_ENUM_TYPE"):
|
||||
tl = self.finish_top_enum_type()
|
||||
self.require(";", "after UFBX_ENUM_TYPE()")
|
||||
return [tl]
|
||||
else:
|
||||
decl = self.parse_decl("top-level")
|
||||
if self.accept("{"):
|
||||
level = 1
|
||||
while level > 0:
|
||||
if self.accept("{"):
|
||||
level += 1
|
||||
elif self.accept("}"):
|
||||
level -= 1
|
||||
else:
|
||||
self.scan()
|
||||
decl.end_line = self.prev_token.location.line
|
||||
else:
|
||||
self.require(";", "after top-level declaration")
|
||||
decl.end_line = self.prev_token.location.line
|
||||
return [ATopDecl(decl)]
|
||||
|
||||
def parse_top_file(self) -> ATopFile:
|
||||
tops = []
|
||||
while not self.accept(parsette.End):
|
||||
if self.ignore(TEnd): continue
|
||||
tops += self.parse_top()
|
||||
return ATopFile(tops)
|
||||
|
||||
def fmt_type(type: AType):
|
||||
if isinstance(type, ATypeIdent):
|
||||
return type.name.text()
|
||||
elif isinstance(type, ATypeConst):
|
||||
return f"const {fmt_type(type.inner)}"
|
||||
elif isinstance(type, ATypeSpec):
|
||||
return f"{type.spec.text()} {fmt_type(type.inner)}"
|
||||
|
||||
class SMod: pass
|
||||
class SModConst(SMod): pass
|
||||
class SModNullable(SMod): pass
|
||||
class SModInline(SMod): pass
|
||||
class SModAbi(SMod): pass
|
||||
class SModUnsafe(SMod): pass
|
||||
class SModPointer(SMod): pass
|
||||
class SModArray(SMod):
|
||||
def __init__(self, length: Optional[str]):
|
||||
self.length = length
|
||||
class SModFunction(SMod):
|
||||
def __init__(self, args: List["SDecl"]):
|
||||
self.args = args
|
||||
|
||||
class SComment(NamedTuple):
|
||||
line_begin: int
|
||||
line_end: int
|
||||
text: List[str]
|
||||
|
||||
class SType(NamedTuple):
|
||||
kind: str
|
||||
name: Optional[str]
|
||||
mods: List[SMod] = []
|
||||
body: Union["SStruct", "SEnum", "SEnumType", None] = None
|
||||
|
||||
class SName(NamedTuple):
|
||||
name: Optional[str]
|
||||
type: SType
|
||||
value: Optional[str] = None
|
||||
|
||||
class SDecl(NamedTuple):
|
||||
line_begin: int
|
||||
line_end: int
|
||||
kind: str
|
||||
names: List[SName]
|
||||
comment: Optional[SComment] = None
|
||||
comment_inline: bool = False
|
||||
is_function: bool = False
|
||||
define_args: Optional[List[str]] = None
|
||||
value: Optional[str] = None
|
||||
|
||||
class SDeclGroup(NamedTuple):
|
||||
line: int
|
||||
decls: List[SDecl]
|
||||
comment: Optional[SComment] = None
|
||||
comment_inline: bool = False
|
||||
is_function: bool = False
|
||||
|
||||
SCommentDecl = Union[SComment, SDecl, SDeclGroup]
|
||||
|
||||
class SStruct(NamedTuple):
|
||||
line: int
|
||||
kind: str
|
||||
name: Optional[str]
|
||||
decls: List[SCommentDecl]
|
||||
is_list: bool = False
|
||||
|
||||
class SEnum(NamedTuple):
|
||||
line: int
|
||||
name: Optional[str]
|
||||
decls: List[SCommentDecl]
|
||||
|
||||
class SEnumType(NamedTuple):
|
||||
line: int
|
||||
enum_name: str
|
||||
enum_prefix: str
|
||||
last_value: str
|
||||
|
||||
def type_line(typ: AType):
|
||||
if isinstance(typ, ATypeIdent):
|
||||
return typ.name.location.line
|
||||
elif isinstance(typ, ATypeConst):
|
||||
return type_line(typ.inner)
|
||||
elif isinstance(typ, ATypeStruct):
|
||||
return typ.kind.location.line
|
||||
elif isinstance(typ, ATypeEnum):
|
||||
return typ.kind.location.line
|
||||
elif isinstance(typ, ATypeSpec):
|
||||
return type_line(typ.inner)
|
||||
else:
|
||||
raise TypeError(f"Unhandled type {type(typ).__name__}")
|
||||
|
||||
spec_to_mod = {
|
||||
"ufbx_abi": SModAbi,
|
||||
"ufbx_nullable": SModNullable,
|
||||
"ufbx_inline": SModInline,
|
||||
"ufbx_unsafe": SModUnsafe,
|
||||
}
|
||||
|
||||
def to_stype(typ: AType) -> SType:
|
||||
if isinstance(typ, ATypeIdent):
|
||||
return SType("name", typ.name.text())
|
||||
elif isinstance(typ, ATypeConst):
|
||||
st = to_stype(typ.inner)
|
||||
return st._replace(mods=st.mods + [SModConst()])
|
||||
elif isinstance(typ, ATypeSpec):
|
||||
st = to_stype(typ.inner)
|
||||
spec = typ.spec.text()
|
||||
return st._replace(mods=st.mods + [spec_to_mod[spec]()])
|
||||
elif isinstance(typ, ATypeStruct):
|
||||
body = to_sstruct(typ) if typ.decls is not None else None
|
||||
return SType(typ.kind.text(), typ.name.text() if typ.name else None, body=body)
|
||||
elif isinstance(typ, ATypeEnum):
|
||||
body = to_senum(typ) if typ.decls is not None else None
|
||||
return SType("enum", typ.name.text() if typ.name else None, body=body)
|
||||
else:
|
||||
raise TypeError(f"Unhandled type {type(typ).__name__}")
|
||||
|
||||
def name_to_stype(base: SType, name: AName) -> SType:
|
||||
if isinstance(name, ANamePointer):
|
||||
st = name_to_stype(base, name.inner)
|
||||
return st._replace(mods=st.mods + [SModPointer()])
|
||||
elif isinstance(name, ANameArray):
|
||||
st = name_to_stype(base, name.inner)
|
||||
mod = SModArray(name.length.text() if name.length else None)
|
||||
return st._replace(mods=st.mods + [mod])
|
||||
elif isinstance(name, ANameFunction):
|
||||
st = name_to_stype(base, name.inner)
|
||||
mod = SModFunction([to_sdecl(a, "argument") for a in name.args])
|
||||
return st._replace(mods=st.mods + [mod])
|
||||
elif isinstance(name, ANameIdent):
|
||||
return base
|
||||
elif isinstance(name, ANameAnonymous):
|
||||
return base
|
||||
else:
|
||||
raise TypeError(f"Unhandled type {type(name)}")
|
||||
|
||||
def name_str(name: AName):
|
||||
if isinstance(name, ANameIdent):
|
||||
return name.ident.text()
|
||||
elif isinstance(name, ANameAnonymous):
|
||||
return None
|
||||
elif isinstance(name, ANamePointer):
|
||||
return name_str(name.inner)
|
||||
elif isinstance(name, ANameArray):
|
||||
return name_str(name.inner)
|
||||
elif isinstance(name, ANameFunction):
|
||||
return name_str(name.inner)
|
||||
else:
|
||||
raise TypeError(f"Unhandled type {type(name)}")
|
||||
|
||||
def to_sdecl(decl: ADecl, kind: str) -> SDecl:
|
||||
names = []
|
||||
is_function = False
|
||||
base_st = to_stype(decl.type)
|
||||
for name in decl.names:
|
||||
st = name_to_stype(base_st, name)
|
||||
if any(isinstance(mod, SModFunction) for mod in st.mods):
|
||||
is_function = True
|
||||
names.append(SName(name_str(name), st))
|
||||
if not decl.names:
|
||||
names.append(SName(None, base_st))
|
||||
line = type_line(decl.type)
|
||||
end_line = decl.end_line
|
||||
if end_line is None: end_line = line
|
||||
return SDecl(line, end_line, kind, names, is_function=is_function)
|
||||
|
||||
Comment = List[str]
|
||||
|
||||
def to_scomment(comment: Ast):
|
||||
if not comment: return None
|
||||
begin = comment.comments[0].location.line
|
||||
end = comment.comments[-1].location.line
|
||||
text = [c.text()[3:] for c in comment.comments]
|
||||
return SComment(begin, end, text)
|
||||
|
||||
def to_sstruct(struct: ATypeStruct) -> SStruct:
|
||||
decls = []
|
||||
|
||||
for decl in struct.decls:
|
||||
if isinstance(decl, AStructComment):
|
||||
decls.append(to_scomment(decl))
|
||||
elif isinstance(decl, AStructField):
|
||||
decls.append(to_sdecl(decl.decl, "field"))
|
||||
|
||||
line = struct.kind.location.line
|
||||
name = struct.name.text() if struct.name else None
|
||||
kind = struct.kind.text()
|
||||
return SStruct(line, kind, name, decls)
|
||||
|
||||
def to_senum(enum: ATypeEnum) -> SEnum:
|
||||
decls = []
|
||||
name = enum.name.text() if enum.name else None
|
||||
|
||||
for decl in enum.decls:
|
||||
if isinstance(decl, AEnumComment):
|
||||
decls.append(to_scomment(decl))
|
||||
elif isinstance(decl, AEnumValue):
|
||||
line = decl.name.location.line
|
||||
decls.append(SDecl(
|
||||
line_begin=line,
|
||||
line_end=line,
|
||||
kind="enumValue",
|
||||
value=decl.value.text() if decl.value else None,
|
||||
names=[
|
||||
SName(
|
||||
name=decl.name.text(),
|
||||
type=SType("enum", name),
|
||||
value=decl.value)
|
||||
]))
|
||||
|
||||
line = enum.kind.location.line
|
||||
return SEnum(line, name, decls)
|
||||
|
||||
def to_sbody(typ: AType):
|
||||
if isinstance(typ, ATypeStruct):
|
||||
return to_sstruct(typ)
|
||||
elif isinstance(typ, ATypeEnum):
|
||||
return to_senum(typ)
|
||||
else:
|
||||
raise TypeError(f"Unhandled type {type(typ)}")
|
||||
|
||||
def top_sdecls(top: ATop) -> List[SCommentDecl]:
|
||||
if isinstance(top, ATopFile):
|
||||
decls = []
|
||||
for t in top.tops:
|
||||
decls += top_sdecls(t)
|
||||
return decls
|
||||
elif isinstance(top, ATopTypedef):
|
||||
return [to_sdecl(top.decl, "typedef")]
|
||||
elif isinstance(top, ATopExtern):
|
||||
return [to_sdecl(top.decl, "extern")]
|
||||
elif isinstance(top, ATopDecl):
|
||||
return [to_sdecl(top.decl, "toplevel")]
|
||||
elif isinstance(top, ATopComment):
|
||||
return [to_scomment(top)]
|
||||
elif isinstance(top, ATopList):
|
||||
line = top.name.location.line
|
||||
name = top.name.text()
|
||||
st = to_stype(top.type.type)
|
||||
st = name_to_stype(st, top.type.names[0])
|
||||
return [SDecl(line, line, "list", [SName(None, SType("struct", name,
|
||||
body=SStruct(line, "struct", name, [
|
||||
SDecl(line, line, "field", [SName("data", st._replace(mods=st.mods+[SModPointer()]))]),
|
||||
SDecl(line+1, line+1, "field", [SName("count", SType("name", "size_t"))]),
|
||||
], is_list=True)
|
||||
))])]
|
||||
elif isinstance(top, ATopEnumType):
|
||||
line = top.enum_type.location.line
|
||||
name = top.prefix.text() + "_COUNT"
|
||||
return [SDecl(line, line, "enumCount",
|
||||
[SName(name, SType("enumType", "enumType", body=SEnumType(
|
||||
line, top.enum_type.text(), top.prefix.text(), top.last_value.text())
|
||||
)
|
||||
)]
|
||||
)]
|
||||
elif isinstance(top, ATopPreproc):
|
||||
line = top.preproc.location.line
|
||||
text = top.preproc.text()
|
||||
m = re.match(r"#\s*define\s+(\w+)(\([^\)]*\))?\s+(.*)", text)
|
||||
if m:
|
||||
name = m.group(1)
|
||||
args = m.group(2)
|
||||
if args:
|
||||
args = [arg.strip() for arg in args.split(",")]
|
||||
else:
|
||||
args = None
|
||||
value = m.group(3)
|
||||
return [SDecl(line, line, "define", [SName(name, SType("define", "define"))],
|
||||
define_args=args,
|
||||
value=value)]
|
||||
else:
|
||||
return [] # TODO
|
||||
else:
|
||||
raise TypeError(f"Unhandled type {type(top)}")
|
||||
|
||||
def collect_decl_comments(decls: List[SCommentDecl]):
|
||||
n = 0
|
||||
while n < len(decls):
|
||||
dc = decls[n:n+3]
|
||||
if isinstance(dc[0], SComment):
|
||||
if (len(dc) >= 2 and isinstance(dc[1], SDecl) and dc[0].line_end + 1 == dc[1].line_begin
|
||||
and (len(dc) < 3 or not (isinstance(dc[2], SComment) and dc[1].line_end == dc[2].line_begin))):
|
||||
yield dc[1]._replace(comment=dc[0])
|
||||
n += 2
|
||||
else:
|
||||
yield dc[0]
|
||||
n += 1
|
||||
else:
|
||||
if len(dc) >= 2 and isinstance(dc[1], SComment) and dc[0].line_end == dc[1].line_begin:
|
||||
comment = dc[1]._replace(text=[re.sub("^\s*<\s*", "", t) for t in dc[1].text])
|
||||
yield dc[0]._replace(comment=comment, comment_inline=True)
|
||||
n += 2
|
||||
else:
|
||||
yield dc[0]
|
||||
n += 1
|
||||
|
||||
def collect_decl_groups(decls: List[SCommentDecl]):
|
||||
n = 0
|
||||
while n < len(decls):
|
||||
dc = decls[n]
|
||||
if isinstance(dc, SDecl) and not dc.comment_inline and not (dc.names and dc.names[0].type.body):
|
||||
group = [dc]
|
||||
line = dc.line_end + 1
|
||||
n += 1
|
||||
while n < len(decls):
|
||||
dc2 = decls[n]
|
||||
if not isinstance(dc2, SDecl): break
|
||||
if dc2.comment: break
|
||||
if dc2.line_begin != line: break
|
||||
if dc2.names and dc2.names[0].type.body: break
|
||||
if dc2.is_function != dc.is_function: break
|
||||
group.append(dc2)
|
||||
line = dc2.line_end + 1
|
||||
n += 1
|
||||
group[0] = dc._replace(comment=None)
|
||||
comment_inline = len(group) == 1 and dc.comment_inline
|
||||
yield SDeclGroup(dc.line_begin, group, dc.comment, comment_inline, dc.is_function)
|
||||
elif isinstance(dc, SDecl) and not (dc.names and dc.names[0].type.body):
|
||||
group = [dc._replace(comment=None)]
|
||||
yield SDeclGroup(dc.line_begin, group, dc.comment, dc.comment_inline, dc.is_function)
|
||||
n += 1
|
||||
else:
|
||||
yield dc
|
||||
n += 1
|
||||
|
||||
def collect_decls(decls: List[SCommentDecl], allow_groups: bool) -> List[SCommentDecl]:
|
||||
decls = list(collect_decl_comments(decls))
|
||||
if allow_groups:
|
||||
decls = list(collect_decl_groups(decls))
|
||||
return decls
|
||||
|
||||
def format_arg(decl: SDecl):
|
||||
name = decl.names[0]
|
||||
return {
|
||||
"type": format_type(name.type),
|
||||
"name": name.name,
|
||||
}
|
||||
|
||||
def format_mod(mod: SMod):
|
||||
if isinstance(mod, SModConst):
|
||||
return { "type": "const" }
|
||||
elif isinstance(mod, SModNullable):
|
||||
return { "type": "nullable" }
|
||||
elif isinstance(mod, SModInline):
|
||||
return { "type": "inline" }
|
||||
elif isinstance(mod, SModAbi):
|
||||
return { "type": "abi" }
|
||||
elif isinstance(mod, SModPointer):
|
||||
return { "type": "pointer" }
|
||||
elif isinstance(mod, SModUnsafe):
|
||||
return { "type": "unsafe" }
|
||||
elif isinstance(mod, SModArray):
|
||||
return { "type": "array", "length": mod.length }
|
||||
elif isinstance(mod, SModFunction):
|
||||
return { "type": "function", "args": [format_arg(d) for d in mod.args] }
|
||||
else:
|
||||
raise TypeError(f"Unhandled mod {type(mod)}")
|
||||
|
||||
def format_type(type: SType):
|
||||
return {
|
||||
"kind": type.kind,
|
||||
"name": type.name,
|
||||
"mods": [format_mod(mod) for mod in type.mods],
|
||||
}
|
||||
|
||||
def format_name(name: SName):
|
||||
return {
|
||||
"type": format_type(name.type),
|
||||
"name": name.name,
|
||||
}
|
||||
|
||||
def format_decls(decls: List[SCommentDecl], allow_groups: bool):
|
||||
for decl in collect_decls(decls, allow_groups):
|
||||
if isinstance(decl, SComment):
|
||||
yield {
|
||||
"kind": "paragraph",
|
||||
"comment": decl.text,
|
||||
}
|
||||
elif isinstance(decl, SDecl):
|
||||
body = None
|
||||
if decl.names and decl.names[0].type.body:
|
||||
body = decl.names[0].type.body
|
||||
if isinstance(body, SStruct):
|
||||
yield {
|
||||
"kind": "struct",
|
||||
"structKind": body.kind,
|
||||
"line": body.line,
|
||||
"name": body.name,
|
||||
"comment": decl.comment.text if decl.comment else [],
|
||||
"commentInline": decl.comment_inline,
|
||||
"isList": body.is_list,
|
||||
"decls": list(format_decls(body.decls, allow_groups=True)),
|
||||
}
|
||||
elif isinstance(body, SEnum):
|
||||
yield {
|
||||
"kind": "enum",
|
||||
"line": body.line,
|
||||
"name": body.name,
|
||||
"comment": decl.comment.text if decl.comment else [],
|
||||
"commentInline": decl.comment_inline,
|
||||
"decls": list(format_decls(body.decls, allow_groups=True)),
|
||||
}
|
||||
elif isinstance(body, SEnumType):
|
||||
yield {
|
||||
"kind": "enumType",
|
||||
"line": body.line,
|
||||
"enumName": body.enum_name,
|
||||
"countName": body.enum_prefix + "_COUNT",
|
||||
"lastValue": body.last_value,
|
||||
"comment": decl.comment.text if decl.comment else [],
|
||||
"commentInline": decl.comment_inline,
|
||||
}
|
||||
else:
|
||||
for name in decl.names:
|
||||
yield {
|
||||
"kind": "decl",
|
||||
"declKind": decl.kind,
|
||||
"line": decl.line_begin,
|
||||
"name": name.name,
|
||||
"comment": decl.comment.text if decl.comment else [],
|
||||
"commentInline": decl.comment_inline,
|
||||
"isFunction": decl.is_function,
|
||||
"value": decl.value,
|
||||
"defineArgs": decl.define_args,
|
||||
"type": format_type(name.type),
|
||||
}
|
||||
elif isinstance(decl, SDeclGroup):
|
||||
yield {
|
||||
"kind": "group",
|
||||
"line": decl.line,
|
||||
"name": None,
|
||||
"comment": decl.comment.text if decl.comment else [],
|
||||
"commentInline": decl.comment_inline,
|
||||
"isFunction": decl.is_function,
|
||||
"decls": list(format_decls(decl.decls, allow_groups=False)),
|
||||
}
|
||||
else:
|
||||
raise TypeError(f"Unhandled type {type(decl)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser("ufbx_parser.py")
|
||||
parser.add_argument("-i", help="Input file")
|
||||
parser.add_argument("-o", help="Output file")
|
||||
argv = parser.parse_args()
|
||||
|
||||
src_path = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
input_file = argv.i
|
||||
if not input_file:
|
||||
input_file = os.path.join(src_path, "..", "ufbx.h")
|
||||
|
||||
output_file = argv.o
|
||||
if not output_file:
|
||||
output_file = os.path.join(src_path, "build", "ufbx.json")
|
||||
|
||||
output_path = os.path.dirname(os.path.realpath(output_file))
|
||||
if not os.path.exists(output_path):
|
||||
os.makedirs(output_path, exist_ok=True)
|
||||
|
||||
with open(input_file) as f:
|
||||
source = f.read()
|
||||
|
||||
p = Parser(source, "ufbx.h")
|
||||
top_file = p.parse_top_file()
|
||||
result = top_sdecls(top_file)
|
||||
|
||||
js = list(format_decls(result, allow_groups=True))
|
||||
|
||||
with open(output_file, "wt") as f:
|
||||
json.dump(js, f, indent=2)
|
||||
BIN
modules/ufbx/data/blender_272_cube_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_272_cube_7400_binary.fbx
Normal file
Binary file not shown.
22
modules/ufbx/data/blender_279_ball_0_obj.mtl
Normal file
22
modules/ufbx/data/blender_279_ball_0_obj.mtl
Normal file
@@ -0,0 +1,22 @@
|
||||
# Blender MTL File: 'None'
|
||||
# Material Count: 2
|
||||
|
||||
newmtl Red
|
||||
Ns 96.078421
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.800000 0.000000 0.000000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.450000
|
||||
d 0.000000
|
||||
illum 9
|
||||
|
||||
newmtl White
|
||||
Ns 96.078421
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.800000 0.800000 0.800000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.450000
|
||||
d 0.000000
|
||||
illum 9
|
||||
199
modules/ufbx/data/blender_279_ball_0_obj.obj
Normal file
199
modules/ufbx/data/blender_279_ball_0_obj.obj
Normal file
@@ -0,0 +1,199 @@
|
||||
# Blender v3.2.0 OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib blender_279_ball_0_obj.mtl
|
||||
o Icosphere
|
||||
v 0.000000 -0.000000 -1.000000
|
||||
v 0.723607 -0.525725 -0.447219
|
||||
v -0.276388 -0.850649 -0.447220
|
||||
v -0.894426 -0.000000 -0.447216
|
||||
v -0.276388 0.850649 -0.447220
|
||||
v 0.723607 0.525725 -0.447220
|
||||
v 0.276388 -0.850649 0.447220
|
||||
v -0.723607 -0.525725 0.447220
|
||||
v -0.723607 0.525725 0.447219
|
||||
v 0.276388 0.850649 0.447220
|
||||
v 0.894426 0.000000 0.447216
|
||||
v 0.000000 0.000000 1.000000
|
||||
v -0.162456 -0.499995 -0.850654
|
||||
v 0.425323 -0.309012 -0.850654
|
||||
v 0.262869 -0.809012 -0.525738
|
||||
v 0.850648 -0.000000 -0.525736
|
||||
v 0.425323 0.309011 -0.850654
|
||||
v -0.525730 -0.000000 -0.850652
|
||||
v -0.688189 -0.499997 -0.525736
|
||||
v -0.162456 0.499995 -0.850654
|
||||
v -0.688189 0.499997 -0.525736
|
||||
v 0.262869 0.809012 -0.525738
|
||||
v 0.951058 -0.309013 0.000000
|
||||
v 0.951058 0.309013 -0.000000
|
||||
v 0.000000 -1.000000 0.000000
|
||||
v 0.587786 -0.809017 0.000000
|
||||
v -0.951058 -0.309013 0.000000
|
||||
v -0.587786 -0.809017 0.000000
|
||||
v -0.587786 0.809017 -0.000000
|
||||
v -0.951058 0.309013 -0.000000
|
||||
v 0.587786 0.809017 -0.000000
|
||||
v 0.000000 1.000000 -0.000000
|
||||
v 0.688189 -0.499997 0.525736
|
||||
v -0.262869 -0.809012 0.525738
|
||||
v -0.850648 0.000000 0.525736
|
||||
v -0.262869 0.809012 0.525738
|
||||
v 0.688189 0.499997 0.525736
|
||||
v 0.162456 -0.499995 0.850654
|
||||
v 0.525730 0.000000 0.850652
|
||||
v -0.425323 -0.309011 0.850654
|
||||
v -0.425323 0.309012 0.850654
|
||||
v 0.162456 0.499995 0.850654
|
||||
vn -0.4713 -0.5831 0.6617
|
||||
vn -0.7002 0.2680 0.6617
|
||||
vn -0.1024 0.3151 0.9435
|
||||
vn -0.1876 0.5773 0.7947
|
||||
vn -0.4713 0.5831 0.6617
|
||||
vn -0.3313 0.0000 0.9435
|
||||
vn -0.6071 0.0000 0.7947
|
||||
vn -0.7002 -0.2680 0.6617
|
||||
vn -0.1024 -0.3151 0.9435
|
||||
vn -0.1876 -0.5773 0.7947
|
||||
vn -0.3035 0.9342 0.1876
|
||||
vn -0.5346 0.7779 0.3304
|
||||
vn -0.9050 0.2680 0.3304
|
||||
vn -0.9822 -0.0000 0.1876
|
||||
vn -0.9050 -0.2680 0.3304
|
||||
vn -0.5346 -0.7779 0.3304
|
||||
vn -0.3035 -0.9342 0.1876
|
||||
vn -0.8026 0.5831 0.1256
|
||||
vn -0.8026 -0.5831 0.1256
|
||||
vn 0.2764 -0.8506 0.4472
|
||||
vn 0.6882 -0.5000 0.5257
|
||||
vn 0.1625 -0.5000 0.8507
|
||||
vn 0.2764 0.8506 0.4472
|
||||
vn -0.2629 0.8090 0.5257
|
||||
vn 0.1625 0.5000 0.8507
|
||||
vn 0.8944 0.0000 0.4472
|
||||
vn 0.6882 0.5000 0.5257
|
||||
vn 0.5257 0.0000 0.8507
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
vn -0.2629 -0.8090 0.5257
|
||||
vn 0.9511 0.3090 -0.0000
|
||||
vn 0.5878 0.8090 0.0000
|
||||
vn -0.0000 1.0000 0.0000
|
||||
vn -0.0000 -1.0000 0.0000
|
||||
vn 0.5878 -0.8090 0.0000
|
||||
vn 0.9511 -0.3090 -0.0000
|
||||
vn -0.2680 -0.1947 -0.9435
|
||||
vn -0.2680 0.1947 -0.9435
|
||||
vn 0.0247 -0.9435 -0.3304
|
||||
vn -0.8897 -0.3151 -0.3304
|
||||
vn -0.5746 0.7488 -0.3304
|
||||
vn -0.3066 -0.9435 -0.1256
|
||||
vn -0.9921 -0.0000 -0.1256
|
||||
vn -0.3066 0.9435 -0.1256
|
||||
vn 0.0247 0.9435 -0.3304
|
||||
vn -0.7947 0.5773 -0.1876
|
||||
vn -0.8897 0.3151 -0.3304
|
||||
vn -0.7947 -0.5773 -0.1876
|
||||
vn -0.5746 -0.7488 -0.3304
|
||||
vn -0.0385 0.7488 -0.6617
|
||||
vn -0.4089 0.6284 -0.6617
|
||||
vn -0.4911 0.3568 -0.7947
|
||||
vn -0.7240 0.1947 -0.6617
|
||||
vn -0.7240 -0.1947 -0.6617
|
||||
vn -0.4911 -0.3568 -0.7947
|
||||
vn -0.4089 -0.6284 -0.6617
|
||||
vn -0.0385 -0.7488 -0.6617
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vn 0.4253 -0.3090 -0.8507
|
||||
vn -0.1624 -0.5000 -0.8507
|
||||
vn 0.7236 -0.5257 -0.4472
|
||||
vn 0.8506 -0.0000 -0.5257
|
||||
vn -0.1624 0.5000 -0.8507
|
||||
vn 0.4253 0.3090 -0.8507
|
||||
vn 0.7236 0.5257 -0.4472
|
||||
vn 0.2629 0.8090 -0.5257
|
||||
vn 0.2629 -0.8090 -0.5257
|
||||
usemtl Red
|
||||
s off
|
||||
f 8//1 34//1 40//1
|
||||
f 9//2 35//2 41//2
|
||||
f 42//3 41//3 12//3
|
||||
f 42//4 36//4 41//4
|
||||
f 36//5 9//5 41//5
|
||||
f 41//6 40//6 12//6
|
||||
f 41//7 35//7 40//7
|
||||
f 35//8 8//8 40//8
|
||||
f 40//9 38//9 12//9
|
||||
f 40//10 34//10 38//10
|
||||
f 32//11 29//11 36//11
|
||||
f 29//12 9//12 36//12
|
||||
f 30//13 35//13 9//13
|
||||
f 30//14 27//14 35//14
|
||||
f 27//15 8//15 35//15
|
||||
f 28//16 34//16 8//16
|
||||
f 28//17 25//17 34//17
|
||||
f 29//18 30//18 9//18
|
||||
f 27//19 28//19 8//19
|
||||
s 1
|
||||
f 7//20 33//21 38//22
|
||||
f 10//23 36//24 42//25
|
||||
f 11//26 37//27 39//28
|
||||
f 39//28 42//25 12//29
|
||||
f 39//28 37//27 42//25
|
||||
f 37//27 10//23 42//25
|
||||
f 34//30 7//20 38//22
|
||||
f 38//22 39//28 12//29
|
||||
f 38//22 33//21 39//28
|
||||
f 33//21 11//26 39//28
|
||||
f 24//31 37//27 11//26
|
||||
f 24//31 31//32 37//27
|
||||
f 31//32 10//23 37//27
|
||||
f 32//33 36//24 10//23
|
||||
f 25//34 7//20 34//30
|
||||
f 26//35 33//21 7//20
|
||||
f 26//35 23//36 33//21
|
||||
f 23//36 11//26 33//21
|
||||
f 31//32 32//33 10//23
|
||||
f 25//34 26//35 7//20
|
||||
f 23//36 24//31 11//26
|
||||
usemtl White
|
||||
s off
|
||||
f 1//37 13//37 18//37
|
||||
f 1//38 18//38 20//38
|
||||
f 3//39 15//39 25//39
|
||||
f 4//40 19//40 27//40
|
||||
f 5//41 21//41 29//41
|
||||
f 3//42 25//42 28//42
|
||||
f 4//43 27//43 30//43
|
||||
f 5//44 29//44 32//44
|
||||
f 22//45 5//45 32//45
|
||||
f 29//46 21//46 30//46
|
||||
f 21//47 4//47 30//47
|
||||
f 27//48 19//48 28//48
|
||||
f 19//49 3//49 28//49
|
||||
f 20//50 5//50 22//50
|
||||
f 20//51 21//51 5//51
|
||||
f 20//52 18//52 21//52
|
||||
f 18//53 4//53 21//53
|
||||
f 18//54 19//54 4//54
|
||||
f 18//55 13//55 19//55
|
||||
f 13//56 3//56 19//56
|
||||
f 13//57 15//57 3//57
|
||||
s 1
|
||||
f 1//58 14//59 13//60
|
||||
f 2//61 14//59 16//62
|
||||
f 1//58 20//63 17//64
|
||||
f 2//61 16//62 23//36
|
||||
f 6//65 22//66 31//32
|
||||
f 2//61 23//36 26//35
|
||||
f 6//65 31//32 24//31
|
||||
f 31//32 22//66 32//33
|
||||
f 25//34 15//67 26//35
|
||||
f 15//67 2//61 26//35
|
||||
f 23//36 16//62 24//31
|
||||
f 16//62 6//65 24//31
|
||||
f 17//64 22//66 6//65
|
||||
f 17//64 20//63 22//66
|
||||
f 16//62 17//64 6//65
|
||||
f 16//62 14//59 17//64
|
||||
f 14//59 1//58 17//64
|
||||
f 13//60 14//59 15//67
|
||||
f 14//59 2//61 15//67
|
||||
1667
modules/ufbx/data/blender_279_ball_6100_ascii.fbx
Normal file
1667
modules/ufbx/data/blender_279_ball_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_ball_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_ball_7400_binary.fbx
Normal file
Binary file not shown.
2178
modules/ufbx/data/blender_279_bone_radius_6100_ascii.fbx
Normal file
2178
modules/ufbx/data/blender_279_bone_radius_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_bone_radius_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_bone_radius_7400_binary.fbx
Normal file
Binary file not shown.
1601
modules/ufbx/data/blender_279_color_sets_6100_ascii.fbx
Normal file
1601
modules/ufbx/data/blender_279_color_sets_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_color_sets_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_color_sets_7400_binary.fbx
Normal file
Binary file not shown.
25
modules/ufbx/data/blender_279_default.obj
Normal file
25
modules/ufbx/data/blender_279_default.obj
Normal file
@@ -0,0 +1,25 @@
|
||||
# ufbx:bad_uvs
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
g Cube
|
||||
v 1.000000 -1.000000 -1.000000
|
||||
v 1.000000 -1.000000 1.000000
|
||||
v -1.000000 -1.000000 1.000000
|
||||
v -1.000000 -1.000000 -1.000000
|
||||
v 1.000000 1.000000 -0.999999
|
||||
v 0.999999 1.000000 1.000001
|
||||
v -1.000000 1.000000 1.000000
|
||||
v -1.000000 1.000000 -1.000000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
s off
|
||||
f 1//1 2//1 3//1 4//1
|
||||
f 5//2 8//2 7//2 6//2
|
||||
f 1//3 5//3 6//3 2//3
|
||||
f 2//4 6//4 7//4 3//4
|
||||
f 3//5 7//5 8//5 4//5
|
||||
f 5//6 1//6 4//6 8//6
|
||||
1988
modules/ufbx/data/blender_279_default_6100_ascii.fbx
Normal file
1988
modules/ufbx/data/blender_279_default_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_default_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_default_7400_binary.fbx
Normal file
Binary file not shown.
1639
modules/ufbx/data/blender_279_edge_circle_6100_ascii.fbx
Normal file
1639
modules/ufbx/data/blender_279_edge_circle_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_edge_circle_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_edge_circle_7400_binary.fbx
Normal file
Binary file not shown.
1546
modules/ufbx/data/blender_279_edge_vertex_6100_ascii.fbx
Normal file
1546
modules/ufbx/data/blender_279_edge_vertex_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_edge_vertex_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_edge_vertex_7400_binary.fbx
Normal file
Binary file not shown.
1546
modules/ufbx/data/blender_279_empty_cube_6100_ascii.fbx
Normal file
1546
modules/ufbx/data/blender_279_empty_cube_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_empty_cube_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_empty_cube_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_279_internal_textures_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_internal_textures_7400_binary.fbx
Normal file
Binary file not shown.
179
modules/ufbx/data/blender_279_nested_meshes.obj
Normal file
179
modules/ufbx/data/blender_279_nested_meshes.obj
Normal file
@@ -0,0 +1,179 @@
|
||||
# This file uses centimeters as units for non-parametric coordinates.
|
||||
|
||||
g default
|
||||
v -100.000000 -99.999984 100.000016
|
||||
v -100.000000 100.000016 99.999984
|
||||
v -100.000000 -100.000016 -99.999984
|
||||
v -100.000000 99.999984 -100.000016
|
||||
v 100.000000 -99.999984 100.000016
|
||||
v 100.000000 100.000016 99.999984
|
||||
v 100.000000 -100.000016 -99.999984
|
||||
v 100.000000 99.999984 -100.000016
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn 0.000000 -0.000000 -1.000000
|
||||
vn 0.000000 -0.000000 -1.000000
|
||||
vn 0.000000 -0.000000 -1.000000
|
||||
vn 0.000000 -0.000000 -1.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
s off
|
||||
g CubeFBXASC046001
|
||||
f 1//1 2//2 4//3 3//4
|
||||
f 3//5 4//6 8//7 7//8
|
||||
f 7//9 8//10 6//11 5//12
|
||||
f 5//13 6//14 2//15 1//16
|
||||
f 3//17 7//18 5//19 1//20
|
||||
f 8//21 4//22 2//23 6//24
|
||||
g default
|
||||
v 197.583224 193.951703 -76.118610
|
||||
v -182.971705 290.435579 -234.286480
|
||||
v 145.165263 230.906611 9.318881
|
||||
v 78.463071 194.765819 84.535448
|
||||
v 130.881032 157.810913 -0.902039
|
||||
vn 0.319483 0.925323 -0.204226
|
||||
vn 0.319483 0.925323 -0.204226
|
||||
vn 0.319483 0.925323 -0.204226
|
||||
vn -0.098113 0.928177 0.358973
|
||||
vn -0.098113 0.928177 0.358973
|
||||
vn -0.098113 0.928177 0.358973
|
||||
vn -0.452538 -0.885498 0.105368
|
||||
vn -0.452538 -0.885498 0.105368
|
||||
vn -0.452538 -0.885498 0.105368
|
||||
vn -0.034942 -0.888352 -0.457831
|
||||
vn -0.034942 -0.888352 -0.457831
|
||||
vn -0.034942 -0.888352 -0.457831
|
||||
vn 0.780485 -0.233606 0.579890
|
||||
vn 0.780485 -0.233606 0.579890
|
||||
vn 0.780485 -0.233606 0.579890
|
||||
vn 0.780485 -0.233606 0.579890
|
||||
s off
|
||||
g CubeFBXASC046001 SpaceFBXASC032Cone
|
||||
f 9//25 10//26 11//27
|
||||
f 11//28 10//29 12//30
|
||||
f 12//31 10//32 13//33
|
||||
f 13//34 10//35 9//36
|
||||
f 9//37 11//38 12//39 13//40
|
||||
g default
|
||||
v -101.179661 151.211242 190.961505
|
||||
v 104.427292 179.828822 273.855201
|
||||
v -163.773779 235.928872 159.201358
|
||||
v -315.586777 230.941757 45.919290
|
||||
v -141.204840 171.758585 90.564298
|
||||
v 118.375546 140.169738 231.435522
|
||||
v 17.092532 277.246586 180.044197
|
||||
v -242.487854 308.835433 39.172973
|
||||
v -228.539600 269.176349 -3.246706
|
||||
v 39.661471 213.076299 111.407137
|
||||
v 191.474469 218.063414 224.689205
|
||||
v -22.932647 297.793929 79.646990
|
||||
vn -0.380843 0.064412 0.922394
|
||||
vn -0.380843 0.064412 0.922394
|
||||
vn -0.380843 0.064412 0.922394
|
||||
vn -0.156730 -0.746634 0.646509
|
||||
vn -0.156730 -0.746634 0.646509
|
||||
vn -0.156730 -0.746634 0.646509
|
||||
vn -0.589500 -0.137123 0.796045
|
||||
vn -0.589500 -0.137123 0.796045
|
||||
vn -0.589500 -0.137123 0.796045
|
||||
vn -0.303621 -0.949963 -0.073376
|
||||
vn -0.303621 -0.949963 -0.073376
|
||||
vn -0.303621 -0.949963 -0.073376
|
||||
vn -0.013296 -0.980634 -0.195396
|
||||
vn -0.013296 -0.980634 -0.195396
|
||||
vn -0.013296 -0.980634 -0.195396
|
||||
vn 0.581856 -0.489808 0.649255
|
||||
vn 0.581856 -0.489808 0.649255
|
||||
vn 0.581856 -0.489808 0.649255
|
||||
vn -0.220899 0.566484 0.793914
|
||||
vn -0.220899 0.566484 0.793914
|
||||
vn -0.220899 0.566484 0.793914
|
||||
vn -0.514501 0.540487 0.665705
|
||||
vn -0.514501 0.540487 0.665705
|
||||
vn -0.514501 0.540487 0.665705
|
||||
vn -0.069866 -0.723742 -0.686525
|
||||
vn -0.069866 -0.723742 -0.686525
|
||||
vn -0.069866 -0.723742 -0.686525
|
||||
vn 0.242305 -0.750546 -0.614792
|
||||
vn 0.242305 -0.750546 -0.614792
|
||||
vn 0.242305 -0.750546 -0.614792
|
||||
vn 0.069866 0.723742 0.686525
|
||||
vn 0.069866 0.723742 0.686525
|
||||
vn 0.069866 0.723742 0.686525
|
||||
vn -0.242305 0.750546 0.614792
|
||||
vn -0.242305 0.750546 0.614792
|
||||
vn -0.242305 0.750546 0.614792
|
||||
vn -0.581856 0.489808 -0.649255
|
||||
vn -0.581856 0.489808 -0.649255
|
||||
vn -0.581856 0.489808 -0.649255
|
||||
vn 0.220899 -0.566484 -0.793914
|
||||
vn 0.220899 -0.566484 -0.793914
|
||||
vn 0.220899 -0.566484 -0.793914
|
||||
vn 0.514501 -0.540487 -0.665705
|
||||
vn 0.514501 -0.540487 -0.665705
|
||||
vn 0.514501 -0.540487 -0.665705
|
||||
vn 0.303621 0.949963 0.073376
|
||||
vn 0.303621 0.949963 0.073376
|
||||
vn 0.303621 0.949963 0.073376
|
||||
vn 0.013296 0.980634 0.195396
|
||||
vn 0.013296 0.980634 0.195396
|
||||
vn 0.013296 0.980634 0.195396
|
||||
vn 0.156730 0.746634 -0.646509
|
||||
vn 0.156730 0.746634 -0.646509
|
||||
vn 0.156730 0.746634 -0.646509
|
||||
vn 0.380843 -0.064412 -0.922394
|
||||
vn 0.380843 -0.064412 -0.922394
|
||||
vn 0.380843 -0.064412 -0.922394
|
||||
vn 0.589500 0.137123 -0.796045
|
||||
vn 0.589500 0.137123 -0.796045
|
||||
vn 0.589500 0.137123 -0.796045
|
||||
s off
|
||||
g CubeFBXASC046001 IcoFBXASC046FBXASC032FBXASC046Sphere
|
||||
f 14//41 15//42 16//43
|
||||
f 15//44 14//45 19//46
|
||||
f 14//47 16//48 17//49
|
||||
f 14//50 17//51 18//52
|
||||
f 14//53 18//54 19//55
|
||||
f 15//56 19//57 24//58
|
||||
f 16//59 15//60 20//61
|
||||
f 17//62 16//63 21//64
|
||||
f 18//65 17//66 22//67
|
||||
f 19//68 18//69 23//70
|
||||
f 15//71 24//72 20//73
|
||||
f 16//74 20//75 21//76
|
||||
f 17//77 21//78 22//79
|
||||
f 18//80 22//81 23//82
|
||||
f 19//83 23//84 24//85
|
||||
f 20//86 24//87 25//88
|
||||
f 21//89 20//90 25//91
|
||||
f 22//92 21//93 25//94
|
||||
f 23//95 22//96 25//97
|
||||
f 24//98 23//99 25//100
|
||||
g default
|
||||
v -152.919693 371.478976 111.425983
|
||||
v 27.280693 286.450085 89.921433
|
||||
v -27.280650 454.809441 -89.921519
|
||||
v 152.919736 369.780550 -111.426068
|
||||
vn 0.408272 0.724935 0.554782
|
||||
vn 0.408272 0.724935 0.554782
|
||||
vn 0.408272 0.724935 0.554782
|
||||
vn 0.408272 0.724935 0.554782
|
||||
s off
|
||||
g CubeFBXASC046001 SpaceFBXASC032Cone DeepFBXASC032Plane
|
||||
f 26//101 27//102 29//103 28//104
|
||||
BIN
modules/ufbx/data/blender_279_nested_meshes_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_nested_meshes_7400_binary.fbx
Normal file
Binary file not shown.
3910
modules/ufbx/data/blender_279_sausage_6100_ascii.fbx
Normal file
3910
modules/ufbx/data/blender_279_sausage_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_sausage_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_sausage_7400_binary.fbx
Normal file
Binary file not shown.
664
modules/ufbx/data/blender_279_sausage_base_0.obj
Normal file
664
modules/ufbx/data/blender_279_sausage_base_0.obj
Normal file
@@ -0,0 +1,664 @@
|
||||
# ufbx:bad_uvs
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
g Skin_Cube.001
|
||||
v -0.937500 5.250000 0.000000
|
||||
v -0.875000 5.250000 0.375000
|
||||
v -0.937500 5.625000 0.000000
|
||||
v -0.875000 5.250000 -0.375000
|
||||
v -0.937500 4.875000 0.000000
|
||||
v -0.875000 4.875000 0.375000
|
||||
v -0.875000 5.625000 0.375000
|
||||
v -0.875000 5.625000 -0.375000
|
||||
v -0.875000 4.875000 -0.375000
|
||||
v 0.031250 5.250000 -0.968750
|
||||
v -0.375000 5.250000 -0.875000
|
||||
v 0.031250 5.625000 -0.968750
|
||||
v 0.500000 5.250000 -1.000000
|
||||
v 0.031250 4.875000 -0.968750
|
||||
v -0.375000 4.875000 -0.875000
|
||||
v -0.375000 5.625000 -0.875000
|
||||
v 0.500000 5.625000 -1.000000
|
||||
v 0.500000 4.875000 -1.000000
|
||||
v 0.968750 5.250000 -0.031250
|
||||
v 1.000000 5.250000 -0.500000
|
||||
v 0.968750 5.625000 -0.031250
|
||||
v 0.875000 5.250000 0.375000
|
||||
v 0.968750 4.875000 -0.031250
|
||||
v 1.000000 4.875000 -0.500000
|
||||
v 1.000000 5.625000 -0.500000
|
||||
v 0.875000 5.625000 0.375000
|
||||
v 0.875000 4.875000 0.375000
|
||||
v 0.000000 5.250000 0.937500
|
||||
v 0.375000 5.250000 0.875000
|
||||
v 0.000000 5.625000 0.937500
|
||||
v -0.375000 5.250000 0.875000
|
||||
v 0.000000 4.875000 0.937500
|
||||
v 0.375000 4.875000 0.875000
|
||||
v 0.375000 5.625000 0.875000
|
||||
v -0.375000 5.625000 0.875000
|
||||
v -0.375000 4.875000 0.875000
|
||||
v 0.000000 0.091146 0.000000
|
||||
v 0.000000 0.135417 -0.350694
|
||||
v 0.350694 0.135417 0.000000
|
||||
v 0.000000 0.135417 0.350694
|
||||
v -0.350694 0.135417 0.000000
|
||||
v -0.326389 0.177083 -0.326389
|
||||
v 0.326389 0.177083 -0.326389
|
||||
v 0.326389 0.177083 0.326389
|
||||
v -0.326389 0.177083 0.326389
|
||||
v 0.003906 6.000000 -0.003906
|
||||
v 0.015625 6.000000 -0.484375
|
||||
v -0.468750 6.000000 0.000000
|
||||
v 0.000000 6.000000 0.468750
|
||||
v 0.484375 6.000000 -0.015625
|
||||
v 0.500000 6.000000 -0.500000
|
||||
v -0.437500 6.000000 -0.437500
|
||||
v -0.437500 6.000000 0.437500
|
||||
v 0.437500 6.000000 0.437500
|
||||
v 0.000000 0.777995 0.907986
|
||||
v 0.362847 0.782552 0.847222
|
||||
v 0.000000 1.125000 0.937500
|
||||
v -0.362847 0.782552 0.847222
|
||||
v 0.000000 0.486979 0.819444
|
||||
v 0.326389 0.505208 0.763889
|
||||
v 0.375000 1.125000 0.875000
|
||||
v -0.375000 1.125000 0.875000
|
||||
v -0.326389 0.505208 0.763889
|
||||
v 0.000000 2.250000 0.937500
|
||||
v 0.375000 2.250000 0.875000
|
||||
v 0.000000 2.625000 0.937500
|
||||
v -0.375000 2.250000 0.875000
|
||||
v 0.000000 1.875000 0.937500
|
||||
v 0.375000 1.875000 0.875000
|
||||
v 0.375000 2.625000 0.875000
|
||||
v -0.375000 2.625000 0.875000
|
||||
v -0.375000 1.875000 0.875000
|
||||
v 0.000000 3.750000 0.937500
|
||||
v 0.375000 3.750000 0.875000
|
||||
v 0.000000 4.125000 0.937500
|
||||
v -0.375000 3.750000 0.875000
|
||||
v 0.000000 3.375000 0.937500
|
||||
v 0.375000 3.375000 0.875000
|
||||
v 0.375000 4.125000 0.875000
|
||||
v -0.375000 4.125000 0.875000
|
||||
v -0.375000 3.375000 0.875000
|
||||
v 0.935330 0.777995 -0.027344
|
||||
v 0.956597 0.782552 -0.472222
|
||||
v 0.968750 1.125000 -0.031250
|
||||
v 0.847222 0.782552 0.362847
|
||||
v 0.835069 0.486979 -0.015625
|
||||
v 0.826389 0.505208 -0.388889
|
||||
v 1.000000 1.125000 -0.500000
|
||||
v 0.875000 1.125000 0.375000
|
||||
v 0.763889 0.505208 0.326389
|
||||
v 0.968750 2.250000 -0.031250
|
||||
v 1.000000 2.250000 -0.500000
|
||||
v 0.968750 2.625000 -0.031250
|
||||
v 0.875000 2.250000 0.375000
|
||||
v 0.968750 1.875000 -0.031250
|
||||
v 1.000000 1.875000 -0.500000
|
||||
v 1.000000 2.625000 -0.500000
|
||||
v 0.875000 2.625000 0.375000
|
||||
v 0.875000 1.875000 0.375000
|
||||
v 0.968750 3.750000 -0.031250
|
||||
v 1.000000 3.750000 -0.500000
|
||||
v 0.968750 4.125000 -0.031250
|
||||
v 0.875000 3.750000 0.375000
|
||||
v 0.968750 3.375000 -0.031250
|
||||
v 1.000000 3.375000 -0.500000
|
||||
v 1.000000 4.125000 -0.500000
|
||||
v 0.875000 4.125000 0.375000
|
||||
v 0.875000 3.375000 0.375000
|
||||
v 0.027344 0.777995 -0.935330
|
||||
v -0.362847 0.782552 -0.847222
|
||||
v 0.031250 1.125000 -0.968750
|
||||
v 0.472222 0.782552 -0.956597
|
||||
v 0.015625 0.486979 -0.835069
|
||||
v -0.326389 0.505208 -0.763889
|
||||
v -0.375000 1.125000 -0.875000
|
||||
v 0.500000 1.125000 -1.000000
|
||||
v 0.388889 0.505208 -0.826389
|
||||
v 0.031250 2.250000 -0.968750
|
||||
v -0.375000 2.250000 -0.875000
|
||||
v 0.031250 2.625000 -0.968750
|
||||
v 0.500000 2.250000 -1.000000
|
||||
v 0.031250 1.875000 -0.968750
|
||||
v -0.375000 1.875000 -0.875000
|
||||
v -0.375000 2.625000 -0.875000
|
||||
v 0.500000 2.625000 -1.000000
|
||||
v 0.500000 1.875000 -1.000000
|
||||
v 0.031250 3.750000 -0.968750
|
||||
v -0.375000 3.750000 -0.875000
|
||||
v 0.031250 4.125000 -0.968750
|
||||
v 0.500000 3.750000 -1.000000
|
||||
v 0.031250 3.375000 -0.968750
|
||||
v -0.375000 3.375000 -0.875000
|
||||
v -0.375000 4.125000 -0.875000
|
||||
v 0.500000 4.125000 -1.000000
|
||||
v 0.500000 3.375000 -1.000000
|
||||
v -0.907986 0.777995 0.000000
|
||||
v -0.847222 0.782552 0.362847
|
||||
v -0.937500 1.125000 0.000000
|
||||
v -0.847222 0.782552 -0.362847
|
||||
v -0.819444 0.486979 0.000000
|
||||
v -0.763889 0.505208 0.326389
|
||||
v -0.875000 1.125000 0.375000
|
||||
v -0.875000 1.125000 -0.375000
|
||||
v -0.763889 0.505208 -0.326389
|
||||
v -0.937500 2.250000 0.000000
|
||||
v -0.875000 2.250000 0.375000
|
||||
v -0.937500 2.625000 0.000000
|
||||
v -0.875000 2.250000 -0.375000
|
||||
v -0.937500 1.875000 0.000000
|
||||
v -0.875000 1.875000 0.375000
|
||||
v -0.875000 2.625000 0.375000
|
||||
v -0.875000 2.625000 -0.375000
|
||||
v -0.875000 1.875000 -0.375000
|
||||
v -0.937500 3.750000 0.000000
|
||||
v -0.875000 3.750000 0.375000
|
||||
v -0.937500 4.125000 0.000000
|
||||
v -0.875000 3.750000 -0.375000
|
||||
v -0.937500 3.375000 0.000000
|
||||
v -0.875000 3.375000 0.375000
|
||||
v -0.875000 4.125000 0.375000
|
||||
v -0.875000 4.125000 -0.375000
|
||||
v -0.875000 3.375000 -0.375000
|
||||
v -0.598958 0.300781 -0.302083
|
||||
v -0.643229 0.267578 0.000000
|
||||
v -0.598958 0.300781 0.302083
|
||||
v -0.687500 4.875000 0.687500
|
||||
v -0.687500 5.250000 0.687500
|
||||
v -0.687500 5.625000 0.687500
|
||||
v -0.875000 6.000000 0.375000
|
||||
v -0.937500 6.000000 0.000000
|
||||
v -0.875000 6.000000 -0.375000
|
||||
v -0.687500 1.125000 -0.687500
|
||||
v -0.665365 0.787109 -0.665365
|
||||
v -0.598958 0.523438 -0.598958
|
||||
v 0.317708 0.300781 -0.614583
|
||||
v 0.003906 0.267578 -0.647135
|
||||
v -0.302083 0.300781 -0.598958
|
||||
v -0.375000 6.000000 -0.875000
|
||||
v 0.031250 6.000000 -0.968750
|
||||
v 0.500000 6.000000 -1.000000
|
||||
v 1.000000 1.125000 -1.000000
|
||||
v 0.944444 0.791667 -0.944444
|
||||
v 0.777778 0.541667 -0.777778
|
||||
v 0.598958 0.300781 0.302083
|
||||
v 0.647135 0.267578 -0.003906
|
||||
v 0.614583 0.300781 -0.317708
|
||||
v 1.000000 6.000000 -0.500000
|
||||
v 0.968750 6.000000 -0.031250
|
||||
v 0.875000 6.000000 0.375000
|
||||
v 0.687500 1.125000 0.687500
|
||||
v 0.665365 0.787109 0.665365
|
||||
v 0.598958 0.523438 0.598958
|
||||
v -0.302083 0.300781 0.598958
|
||||
v 0.000000 0.267578 0.643229
|
||||
v 0.302083 0.300781 0.598958
|
||||
v 0.375000 6.000000 0.875000
|
||||
v 0.000000 6.000000 0.937500
|
||||
v -0.375000 6.000000 0.875000
|
||||
v -0.598958 0.523438 0.598958
|
||||
v -0.665365 0.787109 0.665365
|
||||
v -0.687500 1.125000 0.687500
|
||||
v -0.687500 1.875000 0.687500
|
||||
v -0.687500 2.250000 0.687500
|
||||
v -0.687500 2.625000 0.687500
|
||||
v -0.687500 3.375000 0.687500
|
||||
v -0.687500 3.750000 0.687500
|
||||
v -0.687500 4.125000 0.687500
|
||||
v -0.687500 5.625000 -0.687500
|
||||
v -0.687500 5.250000 -0.687500
|
||||
v -0.687500 4.875000 -0.687500
|
||||
v -0.687500 4.125000 -0.687500
|
||||
v -0.687500 3.750000 -0.687500
|
||||
v -0.687500 3.375000 -0.687500
|
||||
v -0.687500 2.625000 -0.687500
|
||||
v -0.687500 2.250000 -0.687500
|
||||
v -0.687500 1.875000 -0.687500
|
||||
v 1.000000 5.625000 -1.000000
|
||||
v 1.000000 5.250000 -1.000000
|
||||
v 1.000000 4.875000 -1.000000
|
||||
v 1.000000 4.125000 -1.000000
|
||||
v 1.000000 3.750000 -1.000000
|
||||
v 1.000000 3.375000 -1.000000
|
||||
v 1.000000 2.625000 -1.000000
|
||||
v 1.000000 2.250000 -1.000000
|
||||
v 1.000000 1.875000 -1.000000
|
||||
v 0.687500 5.625000 0.687500
|
||||
v 0.687500 5.250000 0.687500
|
||||
v 0.687500 4.875000 0.687500
|
||||
v 0.687500 4.125000 0.687500
|
||||
v 0.687500 3.750000 0.687500
|
||||
v 0.687500 3.375000 0.687500
|
||||
v 0.687500 2.625000 0.687500
|
||||
v 0.687500 2.250000 0.687500
|
||||
v 0.687500 1.875000 0.687500
|
||||
v 0.375000 1.500000 0.875000
|
||||
v 0.000000 1.500000 0.937500
|
||||
v -0.375000 1.500000 0.875000
|
||||
v 0.375000 3.000000 0.875000
|
||||
v 0.000000 3.000000 0.937500
|
||||
v -0.375000 3.000000 0.875000
|
||||
v 0.375000 4.500000 0.875000
|
||||
v 0.000000 4.500000 0.937500
|
||||
v -0.375000 4.500000 0.875000
|
||||
v 1.000000 1.500000 -0.500000
|
||||
v 0.968750 1.500000 -0.031250
|
||||
v 0.875000 1.500000 0.375000
|
||||
v 1.000000 3.000000 -0.500000
|
||||
v 0.968750 3.000000 -0.031250
|
||||
v 0.875000 3.000000 0.375000
|
||||
v 1.000000 4.500000 -0.500000
|
||||
v 0.968750 4.500000 -0.031250
|
||||
v 0.875000 4.500000 0.375000
|
||||
v -0.375000 1.500000 -0.875000
|
||||
v 0.031250 1.500000 -0.968750
|
||||
v 0.500000 1.500000 -1.000000
|
||||
v -0.375000 3.000000 -0.875000
|
||||
v 0.031250 3.000000 -0.968750
|
||||
v 0.500000 3.000000 -1.000000
|
||||
v -0.375000 4.500000 -0.875000
|
||||
v 0.031250 4.500000 -0.968750
|
||||
v 0.500000 4.500000 -1.000000
|
||||
v -0.875000 1.500000 0.375000
|
||||
v -0.937500 1.500000 0.000000
|
||||
v -0.875000 1.500000 -0.375000
|
||||
v -0.875000 3.000000 0.375000
|
||||
v -0.937500 3.000000 0.000000
|
||||
v -0.875000 3.000000 -0.375000
|
||||
v -0.875000 4.500000 0.375000
|
||||
v -0.937500 4.500000 0.000000
|
||||
v -0.875000 4.500000 -0.375000
|
||||
v -0.509259 0.368056 0.509259
|
||||
v -0.687500 6.000000 0.687500
|
||||
v -0.509259 0.368056 -0.509259
|
||||
v -0.687500 6.000000 -0.687500
|
||||
v 0.509259 0.368056 0.509259
|
||||
v 0.687500 6.000000 0.687500
|
||||
v 0.550926 0.368056 -0.550926
|
||||
v 1.000000 6.000000 -1.000000
|
||||
v -0.687500 1.500000 0.687500
|
||||
v -0.687500 3.000000 0.687500
|
||||
v -0.687500 4.500000 0.687500
|
||||
v -0.687500 4.500000 -0.687500
|
||||
v -0.687500 3.000000 -0.687500
|
||||
v -0.687500 1.500000 -0.687500
|
||||
v 1.000000 4.500000 -1.000000
|
||||
v 1.000000 3.000000 -1.000000
|
||||
v 1.000000 1.500000 -1.000000
|
||||
v 0.687500 4.500000 0.687500
|
||||
v 0.687500 3.000000 0.687500
|
||||
v 0.687500 1.500000 0.687500
|
||||
vn -0.9864 0.0000 0.1644
|
||||
vn -0.8575 0.0000 0.5145
|
||||
vn -0.9864 0.0000 -0.1644
|
||||
vn -0.8575 0.0000 -0.5145
|
||||
vn -0.2249 0.0000 -0.9744
|
||||
vn -0.5145 0.0000 -0.8575
|
||||
vn -0.0665 0.0000 -0.9978
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.9978 0.0000 0.0665
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.9744 0.0000 0.2249
|
||||
vn 0.8575 0.0000 0.5145
|
||||
vn 0.1644 0.0000 0.9864
|
||||
vn 0.5145 0.0000 0.8575
|
||||
vn -0.1644 0.0000 0.9864
|
||||
vn -0.5145 0.0000 0.8575
|
||||
vn -0.1294 -0.9831 -0.1294
|
||||
vn -0.1535 -0.8984 -0.4116
|
||||
vn -0.4131 -0.8979 -0.1520
|
||||
vn -0.4200 -0.8044 -0.4200
|
||||
vn 0.1294 -0.9831 -0.1294
|
||||
vn 0.3979 -0.9065 -0.1413
|
||||
vn 0.1413 -0.9065 -0.3979
|
||||
vn 0.3644 -0.8570 -0.3644
|
||||
vn 0.1294 -0.9831 0.1294
|
||||
vn 0.1520 -0.8979 0.4131
|
||||
vn 0.4116 -0.8984 0.1535
|
||||
vn 0.4200 -0.8044 0.4200
|
||||
vn -0.1294 -0.9831 0.1294
|
||||
vn -0.4131 -0.8979 0.1520
|
||||
vn -0.1520 -0.8979 0.4131
|
||||
vn -0.4200 -0.8044 0.4200
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.1685 -0.2952 0.9405
|
||||
vn 0.4988 -0.3180 0.8063
|
||||
vn 0.1722 -0.6236 0.7625
|
||||
vn 0.4545 -0.6060 0.6528
|
||||
vn 0.1647 -0.0846 0.9827
|
||||
vn 0.5133 -0.0885 0.8536
|
||||
vn -0.1647 -0.0846 0.9827
|
||||
vn -0.5133 -0.0885 0.8536
|
||||
vn -0.1685 -0.2952 0.9405
|
||||
vn -0.1722 -0.6236 0.7625
|
||||
vn -0.4988 -0.3180 0.8063
|
||||
vn -0.4545 -0.6060 0.6528
|
||||
vn 0.9269 -0.3752 0.0038
|
||||
vn 0.8498 -0.5199 -0.0875
|
||||
vn 0.7149 -0.6928 -0.0948
|
||||
vn 0.5396 -0.8092 -0.2323
|
||||
vn 0.9925 -0.1080 0.0565
|
||||
vn 0.9891 -0.1465 -0.0137
|
||||
vn 0.9709 -0.0888 0.2222
|
||||
vn 0.8536 -0.0885 0.5133
|
||||
vn 0.9274 -0.3088 0.2114
|
||||
vn 0.7520 -0.6317 0.1886
|
||||
vn 0.8063 -0.3180 0.4988
|
||||
vn 0.6528 -0.6060 0.4545
|
||||
vn -0.2114 -0.3088 -0.9274
|
||||
vn -0.4988 -0.3180 -0.8063
|
||||
vn -0.1886 -0.6317 -0.7520
|
||||
vn -0.4545 -0.6060 -0.6528
|
||||
vn -0.2222 -0.0888 -0.9709
|
||||
vn -0.5133 -0.0885 -0.8536
|
||||
vn -0.0565 -0.1080 -0.9925
|
||||
vn 0.0137 -0.1465 -0.9891
|
||||
vn -0.0038 -0.3752 -0.9269
|
||||
vn 0.0948 -0.6928 -0.7149
|
||||
vn 0.0875 -0.5199 -0.8498
|
||||
vn 0.2323 -0.8092 -0.5396
|
||||
vn -0.9405 -0.2952 0.1685
|
||||
vn -0.8063 -0.3180 0.4988
|
||||
vn -0.7625 -0.6236 0.1722
|
||||
vn -0.6528 -0.6060 0.4545
|
||||
vn -0.9827 -0.0846 0.1647
|
||||
vn -0.8536 -0.0885 0.5133
|
||||
vn -0.9827 -0.0846 -0.1647
|
||||
vn -0.8536 -0.0885 -0.5133
|
||||
vn -0.9405 -0.2952 -0.1685
|
||||
vn -0.7625 -0.6236 -0.1722
|
||||
vn -0.8063 -0.3180 -0.4988
|
||||
vn -0.6528 -0.6060 -0.4545
|
||||
s off
|
||||
f 1//1 5//1 6//1 2//1
|
||||
f 2//2 6//2 166//2 167//2
|
||||
f 5//1 269//1 268//1 6//1
|
||||
f 6//2 268//2 281//2 166//2
|
||||
f 1//1 2//1 7//1 3//1
|
||||
f 3//1 7//1 169//1 170//1
|
||||
f 2//2 167//2 168//2 7//2
|
||||
f 7//2 168//2 272//2 169//2
|
||||
f 1//3 3//3 8//3 4//3
|
||||
f 4//4 8//4 208//4 209//4
|
||||
f 3//3 170//3 171//3 8//3
|
||||
f 8//4 171//4 274//4 208//4
|
||||
f 1//3 4//3 9//3 5//3
|
||||
f 5//3 9//3 270//3 269//3
|
||||
f 4//4 209//4 210//4 9//4
|
||||
f 9//4 210//4 282//4 270//4
|
||||
f 10//5 14//5 15//5 11//5
|
||||
f 11//6 15//6 210//6 209//6
|
||||
f 14//5 260//5 259//5 15//5
|
||||
f 15//6 259//6 282//6 210//6
|
||||
f 10//5 11//5 16//5 12//5
|
||||
f 12//5 16//5 178//5 179//5
|
||||
f 11//6 209//6 208//6 16//6
|
||||
f 16//6 208//6 274//6 178//6
|
||||
f 10//7 12//7 17//7 13//7
|
||||
f 13//8 17//8 217//8 218//8
|
||||
f 12//7 179//7 180//7 17//7
|
||||
f 17//8 180//8 278//8 217//8
|
||||
f 10//7 13//7 18//7 14//7
|
||||
f 14//7 18//7 261//7 260//7
|
||||
f 13//8 218//8 219//8 18//8
|
||||
f 18//8 219//8 285//8 261//8
|
||||
f 19//9 23//9 24//9 20//9
|
||||
f 20//10 24//10 219//10 218//10
|
||||
f 23//9 251//9 250//9 24//9
|
||||
f 24//10 250//10 285//10 219//10
|
||||
f 19//9 20//9 25//9 21//9
|
||||
f 21//9 25//9 187//9 188//9
|
||||
f 20//10 218//10 217//10 25//10
|
||||
f 25//10 217//10 278//10 187//10
|
||||
f 19//11 21//11 26//11 22//11
|
||||
f 22//12 26//12 226//12 227//12
|
||||
f 21//11 188//11 189//11 26//11
|
||||
f 26//12 189//12 276//12 226//12
|
||||
f 19//11 22//11 27//11 23//11
|
||||
f 23//11 27//11 252//11 251//11
|
||||
f 22//12 227//12 228//12 27//12
|
||||
f 27//12 228//12 288//12 252//12
|
||||
f 28//13 32//13 33//13 29//13
|
||||
f 29//14 33//14 228//14 227//14
|
||||
f 32//13 242//13 241//13 33//13
|
||||
f 33//14 241//14 288//14 228//14
|
||||
f 28//13 29//13 34//13 30//13
|
||||
f 30//13 34//13 196//13 197//13
|
||||
f 29//14 227//14 226//14 34//14
|
||||
f 34//14 226//14 276//14 196//14
|
||||
f 28//15 30//15 35//15 31//15
|
||||
f 31//16 35//16 168//16 167//16
|
||||
f 30//15 197//15 198//15 35//15
|
||||
f 35//16 198//16 272//16 168//16
|
||||
f 28//15 31//15 36//15 32//15
|
||||
f 32//15 36//15 243//15 242//15
|
||||
f 31//16 167//16 166//16 36//16
|
||||
f 36//16 166//16 281//16 243//16
|
||||
f 37//17 41//17 42//17 38//17
|
||||
f 38//18 42//18 177//18 176//18
|
||||
f 41//19 164//19 163//19 42//19
|
||||
f 42//20 163//20 273//20 177//20
|
||||
f 37//21 38//21 43//21 39//21
|
||||
f 39//22 43//22 186//22 185//22
|
||||
f 38//23 176//23 175//23 43//23
|
||||
f 43//24 175//24 277//24 186//24
|
||||
f 37//25 39//25 44//25 40//25
|
||||
f 40//26 44//26 195//26 194//26
|
||||
f 39//27 185//27 184//27 44//27
|
||||
f 44//28 184//28 275//28 195//28
|
||||
f 37//29 40//29 45//29 41//29
|
||||
f 41//30 45//30 165//30 164//30
|
||||
f 40//31 194//31 193//31 45//31
|
||||
f 45//32 193//32 271//32 165//32
|
||||
f 46//33 50//33 51//33 47//33
|
||||
f 47//33 51//33 180//33 179//33
|
||||
f 50//33 188//33 187//33 51//33
|
||||
f 51//33 187//33 278//33 180//33
|
||||
f 46//33 47//33 52//33 48//33
|
||||
f 48//33 52//33 171//33 170//33
|
||||
f 47//33 179//33 178//33 52//33
|
||||
f 52//33 178//33 274//33 171//33
|
||||
f 46//33 48//33 53//33 49//33
|
||||
f 49//33 53//33 198//33 197//33
|
||||
f 48//33 170//33 169//33 53//33
|
||||
f 53//33 169//33 272//33 198//33
|
||||
f 46//33 49//33 54//33 50//33
|
||||
f 50//33 54//33 189//33 188//33
|
||||
f 49//33 197//33 196//33 54//33
|
||||
f 54//33 196//33 276//33 189//33
|
||||
f 55//34 59//34 60//34 56//34
|
||||
f 56//35 60//35 192//35 191//35
|
||||
f 59//36 194//36 195//36 60//36
|
||||
f 60//37 195//37 275//37 192//37
|
||||
f 55//38 56//38 61//38 57//38
|
||||
f 57//13 61//13 235//13 236//13
|
||||
f 56//39 191//39 190//39 61//39
|
||||
f 61//14 190//14 290//14 235//14
|
||||
f 55//40 57//40 62//40 58//40
|
||||
f 58//41 62//41 201//41 200//41
|
||||
f 57//15 236//15 237//15 62//15
|
||||
f 62//16 237//16 279//16 201//16
|
||||
f 55//42 58//42 63//42 59//42
|
||||
f 59//43 63//43 193//43 194//43
|
||||
f 58//44 200//44 199//44 63//44
|
||||
f 63//45 199//45 271//45 193//45
|
||||
f 64//13 68//13 69//13 65//13
|
||||
f 65//14 69//14 234//14 233//14
|
||||
f 68//13 236//13 235//13 69//13
|
||||
f 69//14 235//14 290//14 234//14
|
||||
f 64//13 65//13 70//13 66//13
|
||||
f 66//13 70//13 238//13 239//13
|
||||
f 65//14 233//14 232//14 70//14
|
||||
f 70//14 232//14 289//14 238//14
|
||||
f 64//15 66//15 71//15 67//15
|
||||
f 67//16 71//16 204//16 203//16
|
||||
f 66//15 239//15 240//15 71//15
|
||||
f 71//16 240//16 280//16 204//16
|
||||
f 64//15 67//15 72//15 68//15
|
||||
f 68//15 72//15 237//15 236//15
|
||||
f 67//16 203//16 202//16 72//16
|
||||
f 72//16 202//16 279//16 237//16
|
||||
f 73//13 77//13 78//13 74//13
|
||||
f 74//14 78//14 231//14 230//14
|
||||
f 77//13 239//13 238//13 78//13
|
||||
f 78//14 238//14 289//14 231//14
|
||||
f 73//13 74//13 79//13 75//13
|
||||
f 75//13 79//13 241//13 242//13
|
||||
f 74//14 230//14 229//14 79//14
|
||||
f 79//14 229//14 288//14 241//14
|
||||
f 73//15 75//15 80//15 76//15
|
||||
f 76//16 80//16 207//16 206//16
|
||||
f 75//15 242//15 243//15 80//15
|
||||
f 80//16 243//16 281//16 207//16
|
||||
f 73//15 76//15 81//15 77//15
|
||||
f 77//15 81//15 240//15 239//15
|
||||
f 76//16 206//16 205//16 81//16
|
||||
f 81//16 205//16 280//16 240//16
|
||||
f 82//46 86//46 87//46 83//46
|
||||
f 83//47 87//47 183//47 182//47
|
||||
f 86//48 185//48 186//48 87//48
|
||||
f 87//49 186//49 277//49 183//49
|
||||
f 82//50 83//50 88//50 84//50
|
||||
f 84//9 88//9 244//9 245//9
|
||||
f 83//51 182//51 181//51 88//51
|
||||
f 88//10 181//10 287//10 244//10
|
||||
f 82//52 84//52 89//52 85//52
|
||||
f 85//53 89//53 190//53 191//53
|
||||
f 84//11 245//11 246//11 89//11
|
||||
f 89//12 246//12 290//12 190//12
|
||||
f 82//54 85//54 90//54 86//54
|
||||
f 86//55 90//55 184//55 185//55
|
||||
f 85//56 191//56 192//56 90//56
|
||||
f 90//57 192//57 275//57 184//57
|
||||
f 91//9 95//9 96//9 92//9
|
||||
f 92//10 96//10 225//10 224//10
|
||||
f 95//9 245//9 244//9 96//9
|
||||
f 96//10 244//10 287//10 225//10
|
||||
f 91//9 92//9 97//9 93//9
|
||||
f 93//9 97//9 247//9 248//9
|
||||
f 92//10 224//10 223//10 97//10
|
||||
f 97//10 223//10 286//10 247//10
|
||||
f 91//11 93//11 98//11 94//11
|
||||
f 94//12 98//12 232//12 233//12
|
||||
f 93//11 248//11 249//11 98//11
|
||||
f 98//12 249//12 289//12 232//12
|
||||
f 91//11 94//11 99//11 95//11
|
||||
f 95//11 99//11 246//11 245//11
|
||||
f 94//12 233//12 234//12 99//12
|
||||
f 99//12 234//12 290//12 246//12
|
||||
f 100//9 104//9 105//9 101//9
|
||||
f 101//10 105//10 222//10 221//10
|
||||
f 104//9 248//9 247//9 105//9
|
||||
f 105//10 247//10 286//10 222//10
|
||||
f 100//9 101//9 106//9 102//9
|
||||
f 102//9 106//9 250//9 251//9
|
||||
f 101//10 221//10 220//10 106//10
|
||||
f 106//10 220//10 285//10 250//10
|
||||
f 100//11 102//11 107//11 103//11
|
||||
f 103//12 107//12 229//12 230//12
|
||||
f 102//11 251//11 252//11 107//11
|
||||
f 107//12 252//12 288//12 229//12
|
||||
f 100//11 103//11 108//11 104//11
|
||||
f 104//11 108//11 249//11 248//11
|
||||
f 103//12 230//12 231//12 108//12
|
||||
f 108//12 231//12 289//12 249//12
|
||||
f 109//58 113//58 114//58 110//58
|
||||
f 110//59 114//59 174//59 173//59
|
||||
f 113//60 176//60 177//60 114//60
|
||||
f 114//61 177//61 273//61 174//61
|
||||
f 109//62 110//62 115//62 111//62
|
||||
f 111//5 115//5 253//5 254//5
|
||||
f 110//63 173//63 172//63 115//63
|
||||
f 115//6 172//6 284//6 253//6
|
||||
f 109//64 111//64 116//64 112//64
|
||||
f 112//65 116//65 181//65 182//65
|
||||
f 111//7 254//7 255//7 116//7
|
||||
f 116//8 255//8 287//8 181//8
|
||||
f 109//66 112//66 117//66 113//66
|
||||
f 113//67 117//67 175//67 176//67
|
||||
f 112//68 182//68 183//68 117//68
|
||||
f 117//69 183//69 277//69 175//69
|
||||
f 118//5 122//5 123//5 119//5
|
||||
f 119//6 123//6 216//6 215//6
|
||||
f 122//5 254//5 253//5 123//5
|
||||
f 123//6 253//6 284//6 216//6
|
||||
f 118//5 119//5 124//5 120//5
|
||||
f 120//5 124//5 256//5 257//5
|
||||
f 119//6 215//6 214//6 124//6
|
||||
f 124//6 214//6 283//6 256//6
|
||||
f 118//7 120//7 125//7 121//7
|
||||
f 121//8 125//8 223//8 224//8
|
||||
f 120//7 257//7 258//7 125//7
|
||||
f 125//8 258//8 286//8 223//8
|
||||
f 118//7 121//7 126//7 122//7
|
||||
f 122//7 126//7 255//7 254//7
|
||||
f 121//8 224//8 225//8 126//8
|
||||
f 126//8 225//8 287//8 255//8
|
||||
f 127//5 131//5 132//5 128//5
|
||||
f 128//6 132//6 213//6 212//6
|
||||
f 131//5 257//5 256//5 132//5
|
||||
f 132//6 256//6 283//6 213//6
|
||||
f 127//5 128//5 133//5 129//5
|
||||
f 129//5 133//5 259//5 260//5
|
||||
f 128//6 212//6 211//6 133//6
|
||||
f 133//6 211//6 282//6 259//6
|
||||
f 127//7 129//7 134//7 130//7
|
||||
f 130//8 134//8 220//8 221//8
|
||||
f 129//7 260//7 261//7 134//7
|
||||
f 134//8 261//8 285//8 220//8
|
||||
f 127//7 130//7 135//7 131//7
|
||||
f 131//7 135//7 258//7 257//7
|
||||
f 130//8 221//8 222//8 135//8
|
||||
f 135//8 222//8 286//8 258//8
|
||||
f 136//70 140//70 141//70 137//70
|
||||
f 137//71 141//71 199//71 200//71
|
||||
f 140//72 164//72 165//72 141//72
|
||||
f 141//73 165//73 271//73 199//73
|
||||
f 136//74 137//74 142//74 138//74
|
||||
f 138//1 142//1 262//1 263//1
|
||||
f 137//75 200//75 201//75 142//75
|
||||
f 142//2 201//2 279//2 262//2
|
||||
f 136//76 138//76 143//76 139//76
|
||||
f 139//77 143//77 172//77 173//77
|
||||
f 138//3 263//3 264//3 143//3
|
||||
f 143//4 264//4 284//4 172//4
|
||||
f 136//78 139//78 144//78 140//78
|
||||
f 140//79 144//79 163//79 164//79
|
||||
f 139//80 173//80 174//80 144//80
|
||||
f 144//81 174//81 273//81 163//81
|
||||
f 145//1 149//1 150//1 146//1
|
||||
f 146//2 150//2 202//2 203//2
|
||||
f 149//1 263//1 262//1 150//1
|
||||
f 150//2 262//2 279//2 202//2
|
||||
f 145//1 146//1 151//1 147//1
|
||||
f 147//1 151//1 265//1 266//1
|
||||
f 146//2 203//2 204//2 151//2
|
||||
f 151//2 204//2 280//2 265//2
|
||||
f 145//3 147//3 152//3 148//3
|
||||
f 148//4 152//4 214//4 215//4
|
||||
f 147//3 266//3 267//3 152//3
|
||||
f 152//4 267//4 283//4 214//4
|
||||
f 145//3 148//3 153//3 149//3
|
||||
f 149//3 153//3 264//3 263//3
|
||||
f 148//4 215//4 216//4 153//4
|
||||
f 153//4 216//4 284//4 264//4
|
||||
f 154//1 158//1 159//1 155//1
|
||||
f 155//2 159//2 205//2 206//2
|
||||
f 158//1 266//1 265//1 159//1
|
||||
f 159//2 265//2 280//2 205//2
|
||||
f 154//1 155//1 160//1 156//1
|
||||
f 156//1 160//1 268//1 269//1
|
||||
f 155//2 206//2 207//2 160//2
|
||||
f 160//2 207//2 281//2 268//2
|
||||
f 154//3 156//3 161//3 157//3
|
||||
f 157//4 161//4 211//4 212//4
|
||||
f 156//3 269//3 270//3 161//3
|
||||
f 161//4 270//4 282//4 211//4
|
||||
f 154//3 157//3 162//3 158//3
|
||||
f 158//3 162//3 267//3 266//3
|
||||
f 157//4 212//4 213//4 162//4
|
||||
f 162//4 213//4 283//4 267//4
|
||||
856
modules/ufbx/data/blender_279_sausage_spin_15.obj
Normal file
856
modules/ufbx/data/blender_279_sausage_spin_15.obj
Normal file
@@ -0,0 +1,856 @@
|
||||
# ufbx:bad_uvs
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
g Skin_Cube.001
|
||||
v -0.294501 5.250000 -0.861288
|
||||
v -0.619363 5.250000 -0.686071
|
||||
v -0.316787 5.625000 -0.867635
|
||||
v 0.069632 5.250000 -0.921681
|
||||
v -0.272291 4.875000 -0.854963
|
||||
v -0.596100 4.875000 -0.689052
|
||||
v -0.642710 5.625000 -0.683079
|
||||
v 0.051377 5.625000 -0.936515
|
||||
v 0.087828 4.875000 -0.906897
|
||||
v 0.899814 5.250000 -0.275608
|
||||
v 0.686066 5.250000 -0.619402
|
||||
v 0.907115 5.625000 -0.298426
|
||||
v 1.075758 5.250000 0.145237
|
||||
v 0.892538 4.875000 -0.252869
|
||||
v 0.689046 4.875000 -0.596148
|
||||
v 0.683076 5.625000 -0.642734
|
||||
v 1.094421 5.625000 0.124842
|
||||
v 1.057163 4.875000 0.165557
|
||||
v 0.333027 5.250000 0.880181
|
||||
v 0.773465 5.250000 0.761644
|
||||
v 0.356268 5.625000 0.885996
|
||||
v -0.069632 5.250000 0.921681
|
||||
v 0.309866 4.875000 0.874385
|
||||
v 0.746396 4.875000 0.766743
|
||||
v 0.800631 5.625000 0.756526
|
||||
v -0.051377 5.625000 0.936515
|
||||
v -0.087828 4.875000 0.906897
|
||||
v -0.861288 5.250000 0.294501
|
||||
v -0.686066 5.250000 0.619402
|
||||
v -0.867635 5.625000 0.316787
|
||||
v -0.921656 5.250000 -0.069663
|
||||
v -0.854963 4.875000 0.272291
|
||||
v -0.689046 4.875000 0.596148
|
||||
v -0.683076 5.625000 0.642734
|
||||
v -0.936500 5.625000 -0.051395
|
||||
v -0.906866 4.875000 -0.087865
|
||||
v 0.000000 0.091146 0.000000
|
||||
v 0.321609 0.135417 -0.139836
|
||||
v 0.139836 0.135417 0.321609
|
||||
v -0.321609 0.135417 0.139836
|
||||
v -0.139836 0.135417 -0.321609
|
||||
v 0.169175 0.177083 -0.429464
|
||||
v 0.429464 0.177083 0.169175
|
||||
v -0.169175 0.177083 0.429464
|
||||
v -0.429464 0.177083 -0.169175
|
||||
v 0.005055 6.000000 0.002229
|
||||
v 0.457221 6.000000 -0.160662
|
||||
v -0.169576 6.000000 -0.437002
|
||||
v -0.437002 6.000000 0.169576
|
||||
v 0.189795 6.000000 0.445916
|
||||
v 0.647016 6.000000 0.285254
|
||||
v 0.249598 6.000000 -0.566139
|
||||
v -0.566139 6.000000 -0.249598
|
||||
v -0.249598 6.000000 0.566139
|
||||
v -0.820926 0.777995 0.317405
|
||||
v -0.639151 0.782552 0.624199
|
||||
v -0.841574 1.125000 0.304798
|
||||
v -0.892841 0.782552 -0.031876
|
||||
v -0.746168 0.486979 0.306563
|
||||
v -0.573477 0.505208 0.582971
|
||||
v -0.663554 1.125000 0.621081
|
||||
v -0.907405 1.125000 -0.052130
|
||||
v -0.817693 0.505208 -0.011415
|
||||
v -0.722380 2.250000 -0.151280
|
||||
v -0.734735 2.250000 0.147743
|
||||
v -0.666098 2.625000 -0.366719
|
||||
v -0.613718 2.250000 -0.430135
|
||||
v -0.778867 1.875000 0.064944
|
||||
v -0.700968 1.875000 0.372140
|
||||
v -0.768380 2.625000 -0.075839
|
||||
v -0.475009 2.625000 -0.608704
|
||||
v -0.752933 1.875000 -0.250916
|
||||
v -0.728906 3.750000 -0.167120
|
||||
v -0.747159 3.750000 0.135596
|
||||
v -0.788674 4.125000 0.041139
|
||||
v -0.613456 3.750000 -0.447551
|
||||
v -0.669355 3.375000 -0.374624
|
||||
v -0.774581 3.375000 -0.081901
|
||||
v -0.719637 4.125000 0.353885
|
||||
v -0.752539 4.125000 -0.277088
|
||||
v -0.474878 3.375000 -0.617396
|
||||
v 0.351685 0.777995 0.836089
|
||||
v 0.761366 0.782552 0.699796
|
||||
v 0.343010 1.125000 0.859467
|
||||
v -0.031910 0.782552 0.892816
|
||||
v 0.326636 0.486979 0.754551
|
||||
v 0.663287 0.505208 0.607002
|
||||
v 0.773988 1.125000 0.735114
|
||||
v -0.052172 1.125000 0.907372
|
||||
v -0.011432 0.505208 0.817680
|
||||
v -0.132243 2.250000 0.751502
|
||||
v 0.223921 2.250000 0.851218
|
||||
v -0.356739 2.625000 0.700525
|
||||
v -0.430158 2.250000 0.613701
|
||||
v 0.093071 1.875000 0.802664
|
||||
v 0.484694 1.875000 0.796150
|
||||
v -0.035906 2.625000 0.906086
|
||||
v -0.608716 2.625000 0.475000
|
||||
v -0.250949 1.875000 0.752907
|
||||
v -0.148394 3.750000 0.758774
|
||||
v 0.210473 3.750000 0.866634
|
||||
v 0.068800 4.125000 0.813592
|
||||
v -0.447531 3.750000 0.613472
|
||||
v -0.364800 3.375000 0.704155
|
||||
v -0.042617 3.375000 0.913780
|
||||
v 0.464486 4.125000 0.819315
|
||||
v -0.277058 4.125000 0.752563
|
||||
v -0.617386 3.375000 0.474886
|
||||
v 0.855206 0.777995 -0.302241
|
||||
v 0.639151 0.782552 -0.624199
|
||||
v 0.879787 1.125000 -0.286905
|
||||
v 1.029966 0.782552 0.092528
|
||||
v 0.766242 0.486979 -0.298181
|
||||
v 0.573477 0.505208 -0.582971
|
||||
v 0.663554 1.125000 -0.621081
|
||||
v 1.060259 1.125000 0.123698
|
||||
v 0.897987 0.505208 0.044943
|
||||
v 0.741417 2.250000 0.180402
|
||||
v 0.734735 2.250000 -0.147743
|
||||
v 0.676078 2.625000 0.401146
|
||||
v 0.689867 2.250000 0.546622
|
||||
v 0.806994 1.875000 -0.041147
|
||||
v 0.700968 1.875000 -0.372140
|
||||
v 0.768380 2.625000 0.075839
|
||||
v 0.514927 2.625000 0.746412
|
||||
v 0.865445 1.875000 0.346104
|
||||
v 0.747632 3.750000 0.196988
|
||||
v 0.747159 3.750000 -0.135596
|
||||
v 0.816334 4.125000 -0.016222
|
||||
v 0.688359 3.750000 0.567023
|
||||
v 0.679180 3.375000 0.409424
|
||||
v 0.774581 3.375000 0.081901
|
||||
v 0.719637 4.125000 -0.353885
|
||||
v 0.863178 4.125000 0.376760
|
||||
v 0.514174 3.375000 0.756594
|
||||
v -0.317405 0.777995 -0.820926
|
||||
v -0.624241 0.782552 -0.639144
|
||||
v -0.304798 1.125000 -0.841574
|
||||
v 0.031910 0.782552 -0.892816
|
||||
v -0.306563 0.486979 -0.746168
|
||||
v -0.582993 0.505208 -0.573474
|
||||
v -0.621134 1.125000 -0.663546
|
||||
v 0.052172 1.125000 -0.907372
|
||||
v 0.011432 0.505208 -0.817680
|
||||
v 0.151280 2.250000 -0.722380
|
||||
v -0.147772 2.250000 -0.734731
|
||||
v 0.366719 2.625000 -0.666098
|
||||
v 0.430158 2.250000 -0.613701
|
||||
v -0.064944 1.875000 -0.778867
|
||||
v -0.372182 1.875000 -0.700962
|
||||
v 0.075824 2.625000 -0.768378
|
||||
v 0.608716 2.625000 -0.475000
|
||||
v 0.250949 1.875000 -0.752907
|
||||
v 0.167120 3.750000 -0.728906
|
||||
v -0.135571 3.750000 -0.747162
|
||||
v -0.041139 4.125000 -0.788674
|
||||
v 0.447531 3.750000 -0.613472
|
||||
v 0.374624 3.375000 -0.669355
|
||||
v 0.081914 3.375000 -0.774582
|
||||
v -0.353847 4.125000 -0.719642
|
||||
v 0.277058 4.125000 -0.752563
|
||||
v 0.617386 3.375000 -0.474886
|
||||
v 0.038200 0.300781 -0.669736
|
||||
v -0.256482 0.267578 -0.589882
|
||||
v -0.515859 0.300781 -0.428830
|
||||
v -0.826610 4.875000 -0.427316
|
||||
v -0.847543 5.250000 -0.415664
|
||||
v -0.868555 5.625000 -0.403966
|
||||
v -0.666143 6.000000 -0.680076
|
||||
v -0.339152 6.000000 -0.874004
|
||||
v 0.033060 6.000000 -0.951398
|
||||
v 0.393663 1.125000 -0.840626
|
||||
v 0.368998 0.787109 -0.834122
|
||||
v 0.321333 0.523438 -0.769456
|
||||
v 0.690295 0.300781 0.046299
|
||||
v 0.595022 0.267578 -0.254457
|
||||
v 0.428830 0.300781 -0.515859
|
||||
v 0.680076 6.000000 -0.666143
|
||||
v 0.914442 6.000000 -0.321323
|
||||
v 1.113152 6.000000 0.104374
|
||||
v 1.222865 1.125000 0.572521
|
||||
v 1.184090 0.791667 0.523708
|
||||
v 0.999229 0.541667 0.417238
|
||||
v -0.038200 0.300781 0.669736
|
||||
v 0.261622 0.267578 0.591907
|
||||
v 0.536418 0.300781 0.436929
|
||||
v 0.827897 6.000000 0.751390
|
||||
v 0.379590 6.000000 0.891832
|
||||
v -0.033060 6.000000 0.951398
|
||||
v -0.393663 1.125000 0.840626
|
||||
v -0.368998 0.787109 0.834122
|
||||
v -0.321333 0.523438 0.769456
|
||||
v -0.669736 0.300781 -0.038200
|
||||
v -0.589882 0.267578 0.256482
|
||||
v -0.428830 0.300781 0.515859
|
||||
v -0.680076 6.000000 0.666143
|
||||
v -0.874004 6.000000 0.339152
|
||||
v -0.951398 6.000000 -0.033060
|
||||
v -0.769495 0.523438 -0.321310
|
||||
v -0.834196 0.787109 -0.368954
|
||||
v -0.840720 1.125000 -0.393608
|
||||
v -0.618832 1.875000 -0.523522
|
||||
v -0.418832 2.250000 -0.640669
|
||||
v -0.219558 2.625000 -0.757391
|
||||
v -0.216125 3.375000 -0.765592
|
||||
v -0.411953 3.750000 -0.657099
|
||||
v -0.608495 4.125000 -0.548211
|
||||
v 0.403943 5.625000 -0.868597
|
||||
v 0.415624 5.250000 -0.847613
|
||||
v 0.427268 4.875000 -0.826696
|
||||
v 0.548173 4.125000 -0.608564
|
||||
v 0.657073 3.750000 -0.411999
|
||||
v 0.765579 3.375000 -0.216148
|
||||
v 0.757407 2.625000 -0.219532
|
||||
v 0.640699 2.250000 -0.418782
|
||||
v 0.523565 1.875000 -0.618758
|
||||
v 1.263353 5.625000 0.587587
|
||||
v 1.232790 5.250000 0.604602
|
||||
v 1.202341 4.875000 0.621551
|
||||
v 0.885084 4.125000 0.797398
|
||||
v 0.599205 3.750000 0.955780
|
||||
v 0.314363 3.375000 1.113588
|
||||
v 0.319357 2.625000 1.101660
|
||||
v 0.609210 2.250000 0.931882
|
||||
v 0.900119 1.875000 0.761486
|
||||
v -0.403943 5.625000 0.868597
|
||||
v -0.415624 5.250000 0.847613
|
||||
v -0.427268 4.875000 0.826696
|
||||
v -0.548173 4.125000 0.608564
|
||||
v -0.657073 3.750000 0.411999
|
||||
v -0.765579 3.375000 0.216148
|
||||
v -0.757407 2.625000 0.219532
|
||||
v -0.640699 2.250000 0.418782
|
||||
v -0.523565 1.875000 0.618758
|
||||
v -0.667077 1.500000 0.597357
|
||||
v -0.835560 1.500000 0.281957
|
||||
v -0.892656 1.500000 -0.071042
|
||||
v -0.801903 3.000000 -0.298610
|
||||
v -0.610020 3.000000 -0.581376
|
||||
v -0.336802 3.000000 -0.786626
|
||||
v -0.692016 4.500000 0.572971
|
||||
v -0.848660 4.500000 0.250159
|
||||
v -0.892130 4.500000 -0.106002
|
||||
v 0.746418 1.500000 0.740880
|
||||
v 0.319208 1.500000 0.854014
|
||||
v -0.071086 1.500000 0.892622
|
||||
v -0.294791 3.000000 0.960756
|
||||
v -0.580422 3.000000 0.649734
|
||||
v -0.786626 3.000000 0.336802
|
||||
v 0.719426 4.500000 0.771824
|
||||
v 0.286786 4.500000 0.868610
|
||||
v -0.105962 4.500000 0.892162
|
||||
v 0.667077 1.500000 -0.597357
|
||||
v 0.872811 1.500000 -0.263504
|
||||
v 1.041663 1.500000 0.144853
|
||||
v 0.801903 3.000000 0.298610
|
||||
v 0.610975 3.000000 0.621090
|
||||
v 0.340621 3.000000 0.945479
|
||||
v 0.692016 4.500000 -0.572971
|
||||
v 0.885287 4.500000 -0.230209
|
||||
v 1.038635 4.500000 0.185804
|
||||
v -0.597411 1.500000 -0.667069
|
||||
v -0.281957 1.500000 -0.835560
|
||||
v 0.071086 1.500000 -0.892622
|
||||
v 0.298610 3.000000 -0.801903
|
||||
v 0.581376 3.000000 -0.610020
|
||||
v 0.786626 3.000000 -0.336802
|
||||
v -0.572921 4.500000 -0.692022
|
||||
v -0.250159 4.500000 -0.848660
|
||||
v 0.105962 4.500000 -0.892162
|
||||
v -0.670086 0.368056 -0.263960
|
||||
v -0.889647 6.000000 -0.392225
|
||||
v 0.263960 0.368056 -0.670086
|
||||
v 0.392225 6.000000 -0.889647
|
||||
v -0.263960 0.368056 0.670086
|
||||
v -0.392225 6.000000 0.889647
|
||||
v 0.724911 0.368056 0.285557
|
||||
v 1.294033 6.000000 0.570509
|
||||
v -0.819562 1.500000 -0.405947
|
||||
v -0.021006 3.000000 -0.873691
|
||||
v -0.805755 4.500000 -0.438925
|
||||
v 0.438875 4.500000 -0.805845
|
||||
v 0.873691 3.000000 -0.021005
|
||||
v 0.406004 1.500000 -0.819464
|
||||
v 1.172008 4.500000 0.638437
|
||||
v 0.030554 3.000000 1.270823
|
||||
v 1.192090 1.500000 0.590468
|
||||
v -0.438875 4.500000 0.805845
|
||||
v -0.873691 3.000000 0.021005
|
||||
v -0.406004 1.500000 0.819464
|
||||
vn -0.4652 -0.0321 -0.8846
|
||||
vn -0.7571 -0.0319 -0.6526
|
||||
vn -0.4462 -0.0309 -0.8944
|
||||
vn -0.7429 -0.0306 -0.6686
|
||||
vn -0.4835 -0.0333 -0.8747
|
||||
vn -0.5012 -0.0345 -0.8646
|
||||
vn -0.7705 -0.0331 -0.6366
|
||||
vn -0.7832 -0.0343 -0.6208
|
||||
vn -0.1737 -0.0372 -0.9841
|
||||
vn 0.1990 -0.0388 -0.9792
|
||||
vn -0.1937 -0.0383 -0.9803
|
||||
vn 0.1791 -0.0399 -0.9830
|
||||
vn -0.1532 -0.0360 -0.9875
|
||||
vn -0.1320 -0.0349 -0.9906
|
||||
vn 0.2194 -0.0377 -0.9749
|
||||
vn 0.2402 -0.0365 -0.9700
|
||||
vn 0.8542 -0.0367 -0.5187
|
||||
vn 0.6526 -0.0319 -0.7571
|
||||
vn 0.8651 -0.0355 -0.5003
|
||||
vn 0.6686 -0.0306 -0.7429
|
||||
vn 0.8431 -0.0379 -0.5364
|
||||
vn 0.8320 -0.0390 -0.5534
|
||||
vn 0.6366 -0.0331 -0.7705
|
||||
vn 0.6208 -0.0342 -0.7832
|
||||
vn 0.9172 -0.0545 -0.3947
|
||||
vn 0.9399 -0.0783 -0.3323
|
||||
vn 0.9089 -0.0555 -0.4133
|
||||
vn 0.9329 -0.0790 -0.3513
|
||||
vn 0.9253 -0.0535 -0.3755
|
||||
vn 0.9332 -0.0524 -0.3556
|
||||
vn 0.9467 -0.0774 -0.3126
|
||||
vn 0.9533 -0.0766 -0.2922
|
||||
vn 0.2497 -0.0176 0.9682
|
||||
vn 0.3136 0.0039 0.9496
|
||||
vn 0.2289 -0.0162 0.9733
|
||||
vn 0.2932 0.0056 0.9560
|
||||
vn 0.2698 -0.0190 0.9627
|
||||
vn 0.2894 -0.0204 0.9570
|
||||
vn 0.3333 0.0022 0.9428
|
||||
vn 0.3524 0.0005 0.9358
|
||||
vn 0.1128 -0.0336 0.9931
|
||||
vn -0.1990 -0.0388 0.9792
|
||||
vn 0.1329 -0.0347 0.9905
|
||||
vn -0.1791 -0.0399 0.9830
|
||||
vn 0.0920 -0.0324 0.9952
|
||||
vn 0.0707 -0.0312 0.9970
|
||||
vn -0.2194 -0.0377 0.9749
|
||||
vn -0.2402 -0.0365 0.9700
|
||||
vn -0.8846 -0.0321 0.4652
|
||||
vn -0.6526 -0.0319 0.7571
|
||||
vn -0.8944 -0.0309 0.4461
|
||||
vn -0.6686 -0.0306 0.7429
|
||||
vn -0.8747 -0.0333 0.4835
|
||||
vn -0.8646 -0.0345 0.5012
|
||||
vn -0.6366 -0.0331 0.7705
|
||||
vn -0.6208 -0.0342 0.7832
|
||||
vn -0.9841 -0.0372 0.1737
|
||||
vn -0.9792 -0.0389 -0.1991
|
||||
vn -0.9803 -0.0383 0.1937
|
||||
vn -0.9830 -0.0400 -0.1791
|
||||
vn -0.9876 -0.0361 0.1531
|
||||
vn -0.9906 -0.0349 0.1319
|
||||
vn -0.9749 -0.0377 -0.2196
|
||||
vn -0.9700 -0.0365 -0.2404
|
||||
vn 0.0671 -0.9831 -0.1703
|
||||
vn 0.3162 -0.8984 -0.3049
|
||||
vn -0.0253 -0.8979 -0.4394
|
||||
vn 0.2177 -0.8044 -0.5527
|
||||
vn 0.1703 -0.9831 0.0671
|
||||
vn 0.2883 -0.9065 0.3085
|
||||
vn 0.4212 -0.9065 -0.0290
|
||||
vn 0.4795 -0.8570 0.1889
|
||||
vn -0.0671 -0.9831 0.1703
|
||||
vn -0.3182 -0.8979 0.3041
|
||||
vn 0.0233 -0.8984 0.4387
|
||||
vn -0.2177 -0.8044 0.5527
|
||||
vn -0.1703 -0.9831 -0.0671
|
||||
vn -0.3041 -0.8979 -0.3182
|
||||
vn -0.4394 -0.8979 0.0253
|
||||
vn -0.5527 -0.8044 -0.2177
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn -0.8230 -0.2501 0.5100
|
||||
vn -0.5743 -0.2715 0.7723
|
||||
vn -0.6558 -0.5943 0.4655
|
||||
vn -0.4467 -0.5699 0.6897
|
||||
vn -0.8650 -0.0451 0.4998
|
||||
vn -0.8763 0.0328 0.4807
|
||||
vn -0.6214 -0.0487 0.7820
|
||||
vn -0.6391 0.0325 0.7684
|
||||
vn -0.9807 -0.0410 0.1910
|
||||
vn -0.9824 -0.0424 -0.1817
|
||||
vn -0.9847 0.0368 0.1705
|
||||
vn -0.9786 0.0384 -0.2022
|
||||
vn -0.9491 -0.2470 0.1956
|
||||
vn -0.7910 -0.5942 0.1456
|
||||
vn -0.9494 -0.2663 -0.1662
|
||||
vn -0.8065 -0.5683 -0.1628
|
||||
vn -0.9899 0.0929 0.1070
|
||||
vn -0.8825 0.0843 0.4627
|
||||
vn -0.9031 0.2382 0.3574
|
||||
vn -0.7100 0.2338 0.6642
|
||||
vn -0.9783 -0.0818 -0.1901
|
||||
vn -0.8654 -0.2328 -0.4438
|
||||
vn -0.9789 -0.0939 0.1815
|
||||
vn -0.9645 -0.2462 -0.0954
|
||||
vn -0.8661 -0.0367 -0.4985
|
||||
vn -0.6234 -0.0268 -0.7815
|
||||
vn -0.6806 -0.1936 -0.7066
|
||||
vn -0.3747 -0.1879 -0.9079
|
||||
vn -0.9662 0.1368 -0.2187
|
||||
vn -0.9604 0.2752 0.0447
|
||||
vn -0.8172 0.1497 -0.5565
|
||||
vn -0.9061 0.2888 -0.3090
|
||||
vn -0.9766 0.0729 -0.2025
|
||||
vn -0.9819 0.0846 0.1694
|
||||
vn -0.8676 0.2159 -0.4479
|
||||
vn -0.9684 0.2289 -0.0984
|
||||
vn -0.9926 -0.0893 0.0819
|
||||
vn -0.9180 -0.2257 0.3260
|
||||
vn -0.8942 -0.0809 0.4404
|
||||
vn -0.7354 -0.2213 0.6405
|
||||
vn -0.9609 -0.1319 -0.2433
|
||||
vn -0.8035 -0.1444 -0.5776
|
||||
vn -0.9650 -0.2621 0.0105
|
||||
vn -0.8982 -0.2753 -0.3426
|
||||
vn -0.8600 0.0291 -0.5094
|
||||
vn -0.6808 0.1771 -0.7107
|
||||
vn -0.6136 0.0194 -0.7894
|
||||
vn -0.3733 0.1713 -0.9117
|
||||
vn 0.3431 -0.3426 0.8746
|
||||
vn 0.3996 -0.5038 0.7659
|
||||
vn 0.3732 -0.6715 0.6402
|
||||
vn 0.4325 -0.7964 0.4227
|
||||
vn 0.2955 -0.0827 0.9517
|
||||
vn 0.2667 0.0179 0.9636
|
||||
vn 0.3598 -0.1422 0.9221
|
||||
vn 0.3303 -0.0042 0.9439
|
||||
vn 0.1327 -0.0489 0.9899
|
||||
vn -0.1819 -0.0424 0.9824
|
||||
vn 0.1094 0.0330 0.9934
|
||||
vn -0.2024 0.0384 0.9785
|
||||
vn 0.1499 -0.2639 0.9528
|
||||
vn 0.1252 -0.6039 0.7871
|
||||
vn -0.1663 -0.2663 0.9494
|
||||
vn -0.1628 -0.5683 0.8066
|
||||
vn -0.1232 -0.0850 0.9887
|
||||
vn -0.0543 -0.3239 0.9445
|
||||
vn 0.1440 0.0885 0.9856
|
||||
vn 0.2081 -0.1385 0.9683
|
||||
vn -0.3968 -0.2608 0.8800
|
||||
vn -0.5976 -0.3881 0.7016
|
||||
vn -0.3079 -0.4730 0.8255
|
||||
vn -0.4943 -0.5595 0.6653
|
||||
vn -0.5493 -0.0849 0.8313
|
||||
vn -0.7815 -0.0268 0.6233
|
||||
vn -0.7398 -0.2375 0.6295
|
||||
vn -0.9079 -0.1879 0.3747
|
||||
vn -0.2793 0.0920 0.9558
|
||||
vn -0.0147 0.2393 0.9708
|
||||
vn -0.5566 0.1497 0.8172
|
||||
vn -0.3092 0.2887 0.9061
|
||||
vn -0.4094 0.2475 0.8782
|
||||
vn -0.3214 0.4571 0.8293
|
||||
vn -0.6044 0.3700 0.7056
|
||||
vn -0.5028 0.5426 0.6729
|
||||
vn -0.1483 0.0833 0.9854
|
||||
vn 0.1089 -0.0786 0.9909
|
||||
vn -0.0785 0.3159 0.9455
|
||||
vn 0.1733 0.1430 0.9744
|
||||
vn -0.3035 -0.0884 0.9487
|
||||
vn -0.5775 -0.1445 0.8035
|
||||
vn -0.0494 -0.2268 0.9727
|
||||
vn -0.3425 -0.2754 0.8982
|
||||
vn -0.5601 0.0759 0.8250
|
||||
vn -0.7446 0.2204 0.6301
|
||||
vn -0.7894 0.0194 0.6136
|
||||
vn -0.9117 0.1713 0.3733
|
||||
vn 0.7962 -0.2602 -0.5462
|
||||
vn 0.5743 -0.2715 -0.7723
|
||||
vn 0.6401 -0.6019 -0.4774
|
||||
vn 0.4467 -0.5699 -0.6897
|
||||
vn 0.8341 -0.0445 -0.5498
|
||||
vn 0.8449 0.0374 -0.5337
|
||||
vn 0.6214 -0.0487 -0.7820
|
||||
vn 0.6391 0.0325 -0.7684
|
||||
vn 0.9141 -0.0456 -0.4029
|
||||
vn 0.9396 -0.0561 -0.3376
|
||||
vn 0.9184 0.0546 -0.3918
|
||||
vn 0.9409 0.0791 -0.3293
|
||||
vn 0.8799 -0.3148 -0.3558
|
||||
vn 0.7196 -0.6647 -0.2006
|
||||
vn 0.8606 -0.4446 -0.2483
|
||||
vn 0.6178 -0.7863 -0.0039
|
||||
vn 0.9759 0.1406 -0.1669
|
||||
vn 0.8825 0.0843 -0.4627
|
||||
vn 0.8691 0.2802 -0.4076
|
||||
vn 0.7100 0.2338 -0.6642
|
||||
vn 0.9909 -0.0350 0.1298
|
||||
vn 0.8988 -0.1941 0.3930
|
||||
vn 0.9789 -0.0939 -0.1815
|
||||
vn 0.9645 -0.2462 0.0954
|
||||
vn 0.9480 0.1448 0.2834
|
||||
vn 0.8674 0.3781 0.3236
|
||||
vn 0.8401 -0.0343 0.5413
|
||||
vn 0.7867 0.1988 0.5845
|
||||
vn 0.9505 0.3105 -0.0087
|
||||
vn 0.8717 0.4220 -0.2490
|
||||
vn 0.8589 0.5098 0.0493
|
||||
vn 0.7954 0.5814 -0.1710
|
||||
vn 0.9894 0.0274 0.1423
|
||||
vn 0.9819 0.0846 -0.1694
|
||||
vn 0.9006 0.1775 0.3967
|
||||
vn 0.9684 0.2289 0.0984
|
||||
vn 0.9805 -0.1356 -0.1422
|
||||
vn 0.8865 -0.2670 -0.3778
|
||||
vn 0.8942 -0.0809 -0.4404
|
||||
vn 0.7354 -0.2213 -0.6405
|
||||
vn 0.9534 -0.3012 0.0155
|
||||
vn 0.8644 -0.4976 0.0718
|
||||
vn 0.8865 -0.4074 -0.2194
|
||||
vn 0.8109 -0.5672 -0.1442
|
||||
vn 0.9440 -0.1472 0.2952
|
||||
vn 0.8389 0.0200 0.5439
|
||||
vn 0.8648 -0.3741 0.3351
|
||||
vn 0.7836 -0.2076 0.5855
|
||||
vn -0.5100 -0.2501 -0.8230
|
||||
vn -0.7723 -0.2715 -0.5743
|
||||
vn -0.4655 -0.5944 -0.6558
|
||||
vn -0.6897 -0.5700 -0.4466
|
||||
vn -0.4998 -0.0451 -0.8650
|
||||
vn -0.4806 0.0327 -0.8763
|
||||
vn -0.7819 -0.0487 -0.6214
|
||||
vn -0.7684 0.0325 -0.6392
|
||||
vn -0.1909 -0.0410 -0.9807
|
||||
vn 0.1819 -0.0424 -0.9824
|
||||
vn -0.1704 0.0367 -0.9847
|
||||
vn 0.2024 0.0384 -0.9785
|
||||
vn -0.1955 -0.2470 -0.9491
|
||||
vn -0.1455 -0.5942 -0.7910
|
||||
vn 0.1663 -0.2663 -0.9494
|
||||
vn 0.1628 -0.5683 -0.8066
|
||||
vn -0.1070 0.0929 -0.9899
|
||||
vn -0.4628 0.0843 -0.8825
|
||||
vn -0.3573 0.2382 -0.9031
|
||||
vn -0.6642 0.2338 -0.7100
|
||||
vn 0.1901 -0.0818 -0.9784
|
||||
vn 0.4438 -0.2328 -0.8654
|
||||
vn -0.1815 -0.0939 -0.9789
|
||||
vn 0.0954 -0.2462 -0.9645
|
||||
vn 0.4985 -0.0367 -0.8661
|
||||
vn 0.7815 -0.0268 -0.6233
|
||||
vn 0.7066 -0.1935 -0.6806
|
||||
vn 0.9079 -0.1879 -0.3747
|
||||
vn 0.2187 0.1368 -0.9662
|
||||
vn -0.0447 0.2751 -0.9604
|
||||
vn 0.5566 0.1497 -0.8172
|
||||
vn 0.3092 0.2887 -0.9061
|
||||
vn 0.2025 0.0729 -0.9766
|
||||
vn -0.1693 0.0846 -0.9819
|
||||
vn 0.4479 0.2159 -0.8676
|
||||
vn 0.0985 0.2289 -0.9685
|
||||
vn -0.0819 -0.0893 -0.9926
|
||||
vn -0.3260 -0.2257 -0.9180
|
||||
vn -0.4403 -0.0809 -0.8942
|
||||
vn -0.6405 -0.2213 -0.7354
|
||||
vn 0.2433 -0.1319 -0.9609
|
||||
vn 0.5775 -0.1445 -0.8035
|
||||
vn -0.0106 -0.2622 -0.9650
|
||||
vn 0.3425 -0.2754 -0.8982
|
||||
vn 0.5094 0.0291 -0.8600
|
||||
vn 0.7107 0.1771 -0.6808
|
||||
vn 0.7894 0.0194 -0.6136
|
||||
vn 0.9117 0.1713 -0.3733
|
||||
s off
|
||||
f 1//1 5//1 6//1 2//1
|
||||
f 2//2 6//2 166//2 167//2
|
||||
f 5//3 269//3 268//3 6//3
|
||||
f 6//4 268//4 281//4 166//4
|
||||
f 1//5 2//5 7//5 3//5
|
||||
f 3//6 7//6 169//6 170//6
|
||||
f 2//7 167//7 168//7 7//7
|
||||
f 7//8 168//8 272//8 169//8
|
||||
f 1//9 3//9 8//9 4//9
|
||||
f 4//10 8//10 208//10 209//10
|
||||
f 3//11 170//11 171//11 8//11
|
||||
f 8//12 171//12 274//12 208//12
|
||||
f 1//13 4//13 9//13 5//13
|
||||
f 5//14 9//14 270//14 269//14
|
||||
f 4//15 209//15 210//15 9//15
|
||||
f 9//16 210//16 282//16 270//16
|
||||
f 10//17 14//17 15//17 11//17
|
||||
f 11//18 15//18 210//18 209//18
|
||||
f 14//19 260//19 259//19 15//19
|
||||
f 15//20 259//20 282//20 210//20
|
||||
f 10//21 11//21 16//21 12//21
|
||||
f 12//22 16//22 178//22 179//22
|
||||
f 11//23 209//23 208//23 16//23
|
||||
f 16//24 208//24 274//24 178//24
|
||||
f 10//25 12//25 17//25 13//25
|
||||
f 13//26 17//26 217//26 218//26
|
||||
f 12//27 179//27 180//27 17//27
|
||||
f 17//28 180//28 278//28 217//28
|
||||
f 10//29 13//29 18//29 14//29
|
||||
f 14//30 18//30 261//30 260//30
|
||||
f 13//31 218//31 219//31 18//31
|
||||
f 18//32 219//32 285//32 261//32
|
||||
f 19//33 23//33 24//33 20//33
|
||||
f 20//34 24//34 219//34 218//34
|
||||
f 23//35 251//35 250//35 24//35
|
||||
f 24//36 250//36 285//36 219//36
|
||||
f 19//37 20//37 25//37 21//37
|
||||
f 21//38 25//38 187//38 188//38
|
||||
f 20//39 218//39 217//39 25//39
|
||||
f 25//40 217//40 278//40 187//40
|
||||
f 19//41 21//41 26//41 22//41
|
||||
f 22//42 26//42 226//42 227//42
|
||||
f 21//43 188//43 189//43 26//43
|
||||
f 26//44 189//44 276//44 226//44
|
||||
f 19//45 22//45 27//45 23//45
|
||||
f 23//46 27//46 252//46 251//46
|
||||
f 22//47 227//47 228//47 27//47
|
||||
f 27//48 228//48 288//48 252//48
|
||||
f 28//49 32//49 33//49 29//49
|
||||
f 29//50 33//50 228//50 227//50
|
||||
f 32//51 242//51 241//51 33//51
|
||||
f 33//52 241//52 288//52 228//52
|
||||
f 28//53 29//53 34//53 30//53
|
||||
f 30//54 34//54 196//54 197//54
|
||||
f 29//55 227//55 226//55 34//55
|
||||
f 34//56 226//56 276//56 196//56
|
||||
f 28//57 30//57 35//57 31//57
|
||||
f 31//58 35//58 168//58 167//58
|
||||
f 30//59 197//59 198//59 35//59
|
||||
f 35//60 198//60 272//60 168//60
|
||||
f 28//61 31//61 36//61 32//61
|
||||
f 32//62 36//62 243//62 242//62
|
||||
f 31//63 167//63 166//63 36//63
|
||||
f 36//64 166//64 281//64 243//64
|
||||
f 37//65 41//65 42//65 38//65
|
||||
f 38//66 42//66 177//66 176//66
|
||||
f 41//67 164//67 163//67 42//67
|
||||
f 42//68 163//68 273//68 177//68
|
||||
f 37//69 38//69 43//69 39//69
|
||||
f 39//70 43//70 186//70 185//70
|
||||
f 38//71 176//71 175//71 43//71
|
||||
f 43//72 175//72 277//72 186//72
|
||||
f 37//73 39//73 44//73 40//73
|
||||
f 40//74 44//74 195//74 194//74
|
||||
f 39//75 185//75 184//75 44//75
|
||||
f 44//76 184//76 275//76 195//76
|
||||
f 37//77 40//77 45//77 41//77
|
||||
f 41//78 45//78 165//78 164//78
|
||||
f 40//79 194//79 193//79 45//79
|
||||
f 45//80 193//80 271//80 165//80
|
||||
f 46//81 50//81 51//81 47//81
|
||||
f 47//81 51//81 180//81 179//81
|
||||
f 50//81 188//81 187//81 51//81
|
||||
f 51//81 187//81 278//81 180//81
|
||||
f 46//81 47//81 52//81 48//81
|
||||
f 48//81 52//81 171//81 170//81
|
||||
f 47//81 179//81 178//81 52//81
|
||||
f 52//81 178//81 274//81 171//81
|
||||
f 46//81 48//81 53//81 49//81
|
||||
f 49//81 53//81 198//81 197//81
|
||||
f 48//81 170//81 169//81 53//81
|
||||
f 53//81 169//81 272//81 198//81
|
||||
f 46//81 49//81 54//81 50//81
|
||||
f 50//81 54//81 189//81 188//81
|
||||
f 49//81 197//81 196//81 54//81
|
||||
f 54//81 196//81 276//81 189//81
|
||||
f 55//82 59//82 60//82 56//82
|
||||
f 56//83 60//83 192//83 191//83
|
||||
f 59//84 194//84 195//84 60//84
|
||||
f 60//85 195//85 275//85 192//85
|
||||
f 55//86 56//86 61//86 57//86
|
||||
f 57//87 61//87 235//87 236//87
|
||||
f 56//88 191//88 190//88 61//88
|
||||
f 61//89 190//89 290//89 235//89
|
||||
f 55//90 57//90 62//90 58//90
|
||||
f 58//91 62//91 201//91 200//91
|
||||
f 57//92 236//92 237//92 62//92
|
||||
f 62//93 237//93 279//93 201//93
|
||||
f 55//94 58//94 63//94 59//94
|
||||
f 59//95 63//95 193//95 194//95
|
||||
f 58//96 200//96 199//96 63//96
|
||||
f 63//97 199//97 271//97 193//97
|
||||
f 64//98 68//98 69//98 65//98
|
||||
f 65//99 69//99 234//99 233//99
|
||||
f 68//100 236//100 235//100 69//100
|
||||
f 69//101 235//101 290//101 234//101
|
||||
f 64//102 65//102 70//102 66//102
|
||||
f 66//103 70//103 238//103 239//103
|
||||
f 65//104 233//104 232//104 70//104
|
||||
f 70//105 232//105 289//105 238//105
|
||||
f 64//106 66//106 71//106 67//106
|
||||
f 67//107 71//107 204//107 203//107
|
||||
f 66//108 239//108 240//108 71//108
|
||||
f 71//109 240//109 280//109 204//109
|
||||
f 64//110 67//110 72//110 68//110
|
||||
f 68//111 72//111 237//111 236//111
|
||||
f 67//112 203//112 202//112 72//112
|
||||
f 72//113 202//113 279//113 237//113
|
||||
f 73//114 77//114 78//114 74//114
|
||||
f 74//115 78//115 231//115 230//115
|
||||
f 77//116 239//116 238//116 78//116
|
||||
f 78//117 238//117 289//117 231//117
|
||||
f 73//118 74//118 79//118 75//118
|
||||
f 75//119 79//119 241//119 242//119
|
||||
f 74//120 230//120 229//120 79//120
|
||||
f 79//121 229//121 288//121 241//121
|
||||
f 73//122 75//122 80//122 76//122
|
||||
f 76//123 80//123 207//123 206//123
|
||||
f 75//124 242//124 243//124 80//124
|
||||
f 80//125 243//125 281//125 207//125
|
||||
f 73//126 76//126 81//126 77//126
|
||||
f 77//127 81//127 240//127 239//127
|
||||
f 76//128 206//128 205//128 81//128
|
||||
f 81//129 205//129 280//129 240//129
|
||||
f 82//130 86//130 87//130 83//130
|
||||
f 83//131 87//131 183//131 182//131
|
||||
f 86//132 185//132 186//132 87//132
|
||||
f 87//133 186//133 277//133 183//133
|
||||
f 82//134 83//134 88//134 84//134
|
||||
f 84//135 88//135 244//135 245//135
|
||||
f 83//136 182//136 181//136 88//136
|
||||
f 88//137 181//137 287//137 244//137
|
||||
f 82//138 84//138 89//138 85//138
|
||||
f 85//139 89//139 190//139 191//139
|
||||
f 84//140 245//140 246//140 89//140
|
||||
f 89//141 246//141 290//141 190//141
|
||||
f 82//142 85//142 90//142 86//142
|
||||
f 86//143 90//143 184//143 185//143
|
||||
f 85//144 191//144 192//144 90//144
|
||||
f 90//145 192//145 275//145 184//145
|
||||
f 91//146 95//146 96//146 92//146
|
||||
f 92//147 96//147 225//147 224//147
|
||||
f 95//148 245//148 244//148 96//148
|
||||
f 96//149 244//149 287//149 225//149
|
||||
f 91//150 92//150 97//150 93//150
|
||||
f 93//151 97//151 247//151 248//151
|
||||
f 92//152 224//152 223//152 97//152
|
||||
f 97//153 223//153 286//153 247//153
|
||||
f 91//154 93//154 98//154 94//154
|
||||
f 94//155 98//155 232//155 233//155
|
||||
f 93//156 248//156 249//156 98//156
|
||||
f 98//157 249//157 289//157 232//157
|
||||
f 91//158 94//158 99//158 95//158
|
||||
f 95//159 99//159 246//159 245//159
|
||||
f 94//160 233//160 234//160 99//160
|
||||
f 99//161 234//161 290//161 246//161
|
||||
f 100//162 104//162 105//162 101//162
|
||||
f 101//163 105//163 222//163 221//163
|
||||
f 104//164 248//164 247//164 105//164
|
||||
f 105//165 247//165 286//165 222//165
|
||||
f 100//166 101//166 106//166 102//166
|
||||
f 102//167 106//167 250//167 251//167
|
||||
f 101//168 221//168 220//168 106//168
|
||||
f 106//169 220//169 285//169 250//169
|
||||
f 100//170 102//170 107//170 103//170
|
||||
f 103//171 107//171 229//171 230//171
|
||||
f 102//172 251//172 252//172 107//172
|
||||
f 107//173 252//173 288//173 229//173
|
||||
f 100//174 103//174 108//174 104//174
|
||||
f 104//175 108//175 249//175 248//175
|
||||
f 103//176 230//176 231//176 108//176
|
||||
f 108//177 231//177 289//177 249//177
|
||||
f 109//178 113//178 114//178 110//178
|
||||
f 110//179 114//179 174//179 173//179
|
||||
f 113//180 176//180 177//180 114//180
|
||||
f 114//181 177//181 273//181 174//181
|
||||
f 109//182 110//182 115//182 111//182
|
||||
f 111//183 115//183 253//183 254//183
|
||||
f 110//184 173//184 172//184 115//184
|
||||
f 115//185 172//185 284//185 253//185
|
||||
f 109//186 111//186 116//186 112//186
|
||||
f 112//187 116//187 181//187 182//187
|
||||
f 111//188 254//188 255//188 116//188
|
||||
f 116//189 255//189 287//189 181//189
|
||||
f 109//190 112//190 117//190 113//190
|
||||
f 113//191 117//191 175//191 176//191
|
||||
f 112//192 182//192 183//192 117//192
|
||||
f 117//193 183//193 277//193 175//193
|
||||
f 118//194 122//194 123//194 119//194
|
||||
f 119//195 123//195 216//195 215//195
|
||||
f 122//196 254//196 253//196 123//196
|
||||
f 123//197 253//197 284//197 216//197
|
||||
f 118//198 119//198 124//198 120//198
|
||||
f 120//199 124//199 256//199 257//199
|
||||
f 119//200 215//200 214//200 124//200
|
||||
f 124//201 214//201 283//201 256//201
|
||||
f 118//202 120//202 125//202 121//202
|
||||
f 121//203 125//203 223//203 224//203
|
||||
f 120//204 257//204 258//204 125//204
|
||||
f 125//205 258//205 286//205 223//205
|
||||
f 118//206 121//206 126//206 122//206
|
||||
f 122//207 126//207 255//207 254//207
|
||||
f 121//208 224//208 225//208 126//208
|
||||
f 126//209 225//209 287//209 255//209
|
||||
f 127//210 131//210 132//210 128//210
|
||||
f 128//211 132//211 213//211 212//211
|
||||
f 131//212 257//212 256//212 132//212
|
||||
f 132//213 256//213 283//213 213//213
|
||||
f 127//214 128//214 133//214 129//214
|
||||
f 129//215 133//215 259//215 260//215
|
||||
f 128//216 212//216 211//216 133//216
|
||||
f 133//217 211//217 282//217 259//217
|
||||
f 127//218 129//218 134//218 130//218
|
||||
f 130//219 134//219 220//219 221//219
|
||||
f 129//220 260//220 261//220 134//220
|
||||
f 134//221 261//221 285//221 220//221
|
||||
f 127//222 130//222 135//222 131//222
|
||||
f 131//223 135//223 258//223 257//223
|
||||
f 130//224 221//224 222//224 135//224
|
||||
f 135//225 222//225 286//225 258//225
|
||||
f 136//226 140//226 141//226 137//226
|
||||
f 137//227 141//227 199//227 200//227
|
||||
f 140//228 164//228 165//228 141//228
|
||||
f 141//229 165//229 271//229 199//229
|
||||
f 136//230 137//230 142//230 138//230
|
||||
f 138//231 142//231 262//231 263//231
|
||||
f 137//232 200//232 201//232 142//232
|
||||
f 142//233 201//233 279//233 262//233
|
||||
f 136//234 138//234 143//234 139//234
|
||||
f 139//235 143//235 172//235 173//235
|
||||
f 138//236 263//236 264//236 143//236
|
||||
f 143//237 264//237 284//237 172//237
|
||||
f 136//238 139//238 144//238 140//238
|
||||
f 140//239 144//239 163//239 164//239
|
||||
f 139//240 173//240 174//240 144//240
|
||||
f 144//241 174//241 273//241 163//241
|
||||
f 145//242 149//242 150//242 146//242
|
||||
f 146//243 150//243 202//243 203//243
|
||||
f 149//244 263//244 262//244 150//244
|
||||
f 150//245 262//245 279//245 202//245
|
||||
f 145//246 146//246 151//246 147//246
|
||||
f 147//247 151//247 265//247 266//247
|
||||
f 146//248 203//248 204//248 151//248
|
||||
f 151//249 204//249 280//249 265//249
|
||||
f 145//250 147//250 152//250 148//250
|
||||
f 148//251 152//251 214//251 215//251
|
||||
f 147//252 266//252 267//252 152//252
|
||||
f 152//253 267//253 283//253 214//253
|
||||
f 145//254 148//254 153//254 149//254
|
||||
f 149//255 153//255 264//255 263//255
|
||||
f 148//256 215//256 216//256 153//256
|
||||
f 153//257 216//257 284//257 264//257
|
||||
f 154//258 158//258 159//258 155//258
|
||||
f 155//259 159//259 205//259 206//259
|
||||
f 158//260 266//260 265//260 159//260
|
||||
f 159//261 265//261 280//261 205//261
|
||||
f 154//262 155//262 160//262 156//262
|
||||
f 156//263 160//263 268//263 269//263
|
||||
f 155//264 206//264 207//264 160//264
|
||||
f 160//265 207//265 281//265 268//265
|
||||
f 154//266 156//266 161//266 157//266
|
||||
f 157//267 161//267 211//267 212//267
|
||||
f 156//268 269//268 270//268 161//268
|
||||
f 161//269 270//269 282//269 211//269
|
||||
f 154//270 157//270 162//270 158//270
|
||||
f 158//271 162//271 267//271 266//271
|
||||
f 157//272 212//272 213//272 162//272
|
||||
f 162//273 213//273 283//273 267//273
|
||||
844
modules/ufbx/data/blender_279_sausage_wiggle_20.obj
Normal file
844
modules/ufbx/data/blender_279_sausage_wiggle_20.obj
Normal file
@@ -0,0 +1,844 @@
|
||||
# ufbx:bad_uvs
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
g Skin_Cube.001
|
||||
v -1.091528 4.313337 0.000001
|
||||
v -1.030064 4.310006 0.375001
|
||||
v -1.047250 4.709257 0.000001
|
||||
v -1.030032 4.310046 -0.374999
|
||||
v -1.123311 3.922210 0.000001
|
||||
v -1.062235 3.919911 0.375001
|
||||
v -0.985389 4.704895 0.375001
|
||||
v -0.985365 4.704921 -0.374999
|
||||
v -1.062209 3.919955 -0.374999
|
||||
v -0.138587 4.262017 -0.968749
|
||||
v -0.538189 4.283551 -0.874999
|
||||
v -0.088220 4.641850 -0.968749
|
||||
v 0.322490 4.237185 -0.999999
|
||||
v -0.176438 3.886921 -0.968749
|
||||
v -0.573497 3.901733 -0.874999
|
||||
v -0.490380 4.670126 -0.874999
|
||||
v 0.375810 4.609233 -0.999999
|
||||
v 0.281705 3.869848 -0.999999
|
||||
v 0.783613 4.212353 -0.031249
|
||||
v 0.814328 4.210704 -0.499999
|
||||
v 0.839874 4.576618 -0.031249
|
||||
v 0.691418 4.217315 0.375001
|
||||
v 0.739890 3.852770 -0.031249
|
||||
v 0.770410 3.851643 -0.499999
|
||||
v 0.870792 4.574446 -0.499999
|
||||
v 0.747082 4.583140 0.375001
|
||||
v 0.648282 3.856178 0.375001
|
||||
v -0.169327 4.263672 0.937501
|
||||
v 0.199575 4.243809 0.875001
|
||||
v -0.119156 4.644024 0.937501
|
||||
v -0.538226 4.283525 0.875001
|
||||
v -0.206982 3.888059 0.937501
|
||||
v 0.159570 3.874399 0.875001
|
||||
v 0.252097 4.617934 0.875001
|
||||
v -0.490408 4.670109 0.875001
|
||||
v -0.573530 3.901706 0.875001
|
||||
v 0.054212 0.073271 -0.000000
|
||||
v 0.080544 0.108859 -0.350694
|
||||
v 0.362462 -0.099728 -0.000000
|
||||
v 0.080544 0.108859 0.350694
|
||||
v -0.201374 0.317447 0.000000
|
||||
v -0.157052 0.336486 -0.326389
|
||||
v 0.367706 -0.051777 -0.326389
|
||||
v 0.367706 -0.051777 0.326389
|
||||
v -0.157052 0.336486 0.326389
|
||||
v -0.052512 5.028802 -0.003905
|
||||
v -0.040837 5.027791 -0.484374
|
||||
v -0.523407 5.069566 0.000001
|
||||
v -0.056404 5.029139 0.468751
|
||||
v 0.426167 4.987364 -0.015624
|
||||
v 0.441734 4.986016 -0.499999
|
||||
v -0.492273 5.066871 -0.437499
|
||||
v -0.492273 5.066871 0.437501
|
||||
v 0.379466 4.991406 0.437501
|
||||
v 0.523519 0.630691 0.907986
|
||||
v 0.815991 0.438183 0.847222
|
||||
v 0.731992 0.909823 0.937500
|
||||
v 0.235973 0.830500 0.847222
|
||||
v 0.327989 0.394801 0.819444
|
||||
v 0.599968 0.224144 0.763889
|
||||
v 1.030833 0.717207 0.875000
|
||||
v 0.433150 1.102461 0.875000
|
||||
v 0.076706 0.594690 0.763889
|
||||
v 1.057564 1.770461 0.937500
|
||||
v 1.341732 1.785480 0.875000
|
||||
v 0.823501 2.030382 0.937500
|
||||
v 0.773396 1.755454 0.875000
|
||||
v 1.095208 1.496883 0.937500
|
||||
v 1.386255 1.413296 0.875000
|
||||
v 1.100820 2.143649 0.875000
|
||||
v 0.546182 1.917122 0.875000
|
||||
v 0.804160 1.580487 0.875000
|
||||
v -0.137287 2.803306 0.937500
|
||||
v 0.179889 2.905541 0.875000
|
||||
v -0.239594 3.136696 0.937500
|
||||
v -0.454460 2.701064 0.875000
|
||||
v 0.074137 2.516732 0.937500
|
||||
v 0.367932 2.673528 0.875000
|
||||
v 0.101052 3.184174 0.875000
|
||||
v -0.580236 3.089208 0.875000
|
||||
v -0.219655 2.359934 0.875000
|
||||
v 1.271021 0.125037 -0.027344
|
||||
v 1.290456 0.117156 -0.472222
|
||||
v 1.503939 0.412198 -0.031250
|
||||
v 1.203096 0.176335 0.362847
|
||||
v 0.997323 -0.079227 -0.015625
|
||||
v 1.000694 -0.059702 -0.388889
|
||||
v 1.528820 0.396114 -0.500000
|
||||
v 1.429255 0.460384 0.375000
|
||||
v 0.950637 -0.024197 0.326389
|
||||
v 1.791682 1.809246 -0.031250
|
||||
v 1.815372 1.810482 -0.500000
|
||||
v 1.539929 2.322982 -0.031250
|
||||
v 1.720630 1.805506 0.375000
|
||||
v 1.847080 1.280929 -0.031250
|
||||
v 1.871336 1.273939 -0.500000
|
||||
v 1.563048 2.332413 -0.500000
|
||||
v 1.470589 2.294673 0.375000
|
||||
v 1.774317 1.301848 0.375000
|
||||
v 0.682087 3.067423 -0.031250
|
||||
v 0.708517 3.075952 -0.500000
|
||||
v 0.640395 3.259356 -0.031249
|
||||
v 0.602793 3.041856 0.375000
|
||||
v 0.833116 2.921794 -0.031250
|
||||
v 0.857602 2.934865 -0.500000
|
||||
v 0.668774 3.263324 -0.499999
|
||||
v 0.555243 3.247476 0.375001
|
||||
v 0.759664 2.882589 0.375000
|
||||
v 0.545372 0.615908 -0.935330
|
||||
v 0.236029 0.830487 -0.847222
|
||||
v 0.756894 0.893771 -0.968750
|
||||
v 0.903350 0.379029 -0.956597
|
||||
v 0.340513 0.385932 -0.835069
|
||||
v 0.076747 0.594684 -0.763889
|
||||
v 0.433198 1.102443 -0.875000
|
||||
v 1.130394 0.652968 -1.000000
|
||||
v 0.650024 0.188652 -0.826389
|
||||
v 1.081245 1.771712 -0.968750
|
||||
v 0.773383 1.755440 -0.875000
|
||||
v 0.846612 2.039821 -0.968750
|
||||
v 1.436471 1.790472 -1.000000
|
||||
v 1.119462 1.489917 -0.968750
|
||||
v 0.804162 1.580469 -0.875000
|
||||
v 0.546166 1.917114 -0.875000
|
||||
v 1.193279 2.181399 -1.000000
|
||||
v 1.483272 1.385411 -1.000000
|
||||
v -0.110855 2.811826 -0.968750
|
||||
v -0.454468 2.701070 -0.875000
|
||||
v -0.211207 3.140653 -0.968750
|
||||
v 0.285617 2.939630 -1.000000
|
||||
v 0.098621 2.529799 -0.968750
|
||||
v -0.219666 2.359936 -0.875000
|
||||
v -0.580233 3.089221 -0.875000
|
||||
v 0.214588 3.200010 -1.000000
|
||||
v 0.465872 2.725800 -1.000000
|
||||
v -0.202130 1.121562 0.000000
|
||||
v -0.151134 1.092372 0.362847
|
||||
v -0.015053 1.391396 0.000000
|
||||
v -0.151076 1.092336 -0.362847
|
||||
v -0.328820 0.859960 0.000000
|
||||
v -0.273964 0.843044 0.326389
|
||||
v 0.034724 1.359315 0.375000
|
||||
v 0.034775 1.359267 -0.375000
|
||||
v -0.273922 0.843025 -0.326389
|
||||
v 0.347127 1.732927 -0.000000
|
||||
v 0.394496 1.735444 0.375000
|
||||
v 0.130183 1.747222 -0.000000
|
||||
v 0.394484 1.735414 -0.375000
|
||||
v 0.367590 1.705870 -0.000000
|
||||
v 0.416096 1.691959 0.375000
|
||||
v 0.176412 1.766108 0.375000
|
||||
v 0.176397 1.766091 -0.375000
|
||||
v 0.416099 1.691917 -0.375000
|
||||
v -0.930229 2.547709 0.000000
|
||||
v -0.877361 2.564741 0.375000
|
||||
v -1.091196 3.017993 0.000000
|
||||
v -0.877372 2.564756 -0.375000
|
||||
v -0.660358 2.124738 0.000000
|
||||
v -0.611385 2.150869 0.375000
|
||||
v -1.034421 3.025893 0.375000
|
||||
v -1.034424 3.025920 -0.375000
|
||||
v -0.611398 2.150874 -0.375000
|
||||
v -0.302593 0.598045 -0.302083
|
||||
v -0.357931 0.597685 0.000000
|
||||
v -0.302593 0.598045 0.302083
|
||||
v -0.878984 3.913065 0.687501
|
||||
v -0.845641 4.300058 0.687501
|
||||
v -0.799784 4.691838 0.687501
|
||||
v -0.928143 5.104603 0.375001
|
||||
v -0.990410 5.109993 0.000001
|
||||
v -0.928143 5.104603 -0.374999
|
||||
v 0.184209 1.262939 -0.687500
|
||||
v -0.003246 0.997653 -0.665365
|
||||
v -0.131357 0.764009 -0.598958
|
||||
v 0.434301 0.052825 -0.614583
|
||||
v 0.162292 0.212779 -0.647135
|
||||
v -0.063940 0.421468 -0.598958
|
||||
v -0.430006 5.061481 -0.874999
|
||||
v -0.025270 5.026443 -0.968749
|
||||
v 0.441734 4.986017 -0.999999
|
||||
v 1.528799 0.396082 -1.000000
|
||||
v 1.285646 0.130986 -0.944444
|
||||
v 0.982408 -0.002897 -0.777778
|
||||
v 0.660394 -0.114458 0.302083
|
||||
v 0.679374 -0.169805 -0.003906
|
||||
v 0.672954 -0.123752 -0.317708
|
||||
v 0.939871 4.942894 -0.499999
|
||||
v 0.908737 4.945589 -0.031249
|
||||
v 0.815336 4.953675 0.375001
|
||||
v 1.279868 0.556715 0.687500
|
||||
v 1.060247 0.278306 0.665365
|
||||
v 0.828807 0.084045 0.598958
|
||||
v -0.063940 0.421468 0.598958
|
||||
v 0.159152 0.215102 0.643229
|
||||
v 0.421740 0.062119 0.598958
|
||||
v 0.317199 4.996797 0.875001
|
||||
v -0.056404 5.029139 0.937501
|
||||
v -0.430006 5.061481 0.875001
|
||||
v -0.131439 0.764037 0.598958
|
||||
v -0.003360 0.997709 0.665365
|
||||
v 0.184109 1.263013 0.687500
|
||||
v 0.561619 1.650173 0.687500
|
||||
v 0.536589 1.742960 0.687500
|
||||
v 0.315084 1.822745 0.687500
|
||||
v -0.464481 2.229267 0.687500
|
||||
v -0.718768 2.615857 0.687500
|
||||
v -0.864102 3.049625 0.687500
|
||||
v -0.799732 4.691885 -0.687499
|
||||
v -0.845575 4.300128 -0.687499
|
||||
v -0.878928 3.913141 -0.687499
|
||||
v -0.864103 3.049669 -0.687500
|
||||
v -0.718788 2.615880 -0.687500
|
||||
v -0.464505 2.229274 -0.687500
|
||||
v 0.315052 1.822717 -0.687500
|
||||
v 0.536565 1.742912 -0.687500
|
||||
v 0.561624 1.650107 -0.687500
|
||||
v 0.870774 4.574450 -0.999999
|
||||
v 0.814302 4.210711 -0.999999
|
||||
v 0.770385 3.851653 -0.999999
|
||||
v 0.668765 3.263336 -0.999999
|
||||
v 0.708516 3.075962 -1.000000
|
||||
v 0.857605 2.934871 -1.000000
|
||||
v 1.563057 2.332406 -1.000000
|
||||
v 1.815380 1.810467 -1.000000
|
||||
v 1.871338 1.273915 -1.000000
|
||||
v 0.561480 4.596188 0.687501
|
||||
v 0.507001 4.227249 0.687501
|
||||
v 0.465038 3.863006 0.687501
|
||||
v 0.384928 3.223730 0.687500
|
||||
v 0.444204 2.990731 0.687500
|
||||
v 0.612761 2.804187 0.687500
|
||||
v 1.331917 2.238044 0.687500
|
||||
v 1.578536 1.798007 0.687500
|
||||
v 1.628792 1.343657 0.687500
|
||||
v 1.233314 1.027022 0.875000
|
||||
v 0.935357 1.209573 0.937500
|
||||
v 0.637399 1.392147 0.875000
|
||||
v 0.664587 2.487880 0.875000
|
||||
v 0.394086 2.276721 0.937500
|
||||
v 0.123585 2.065563 0.875000
|
||||
v 0.132020 3.509680 0.875001
|
||||
v -0.232186 3.517158 0.937501
|
||||
v -0.596386 3.524623 0.875000
|
||||
v 1.729868 0.722704 -0.500000
|
||||
v 1.705049 0.737950 -0.031250
|
||||
v 1.630572 0.783619 0.375000
|
||||
v 1.115434 2.839812 -0.500000
|
||||
v 1.092889 2.822216 -0.031250
|
||||
v 1.025260 2.769426 0.375000
|
||||
v 0.738970 3.497235 -0.499999
|
||||
v 0.708640 3.497845 -0.031249
|
||||
v 0.617611 3.499703 0.375001
|
||||
v 0.637426 1.392126 -0.875000
|
||||
v 0.960186 1.194359 -0.968750
|
||||
v 1.332606 0.966138 -1.000000
|
||||
v 0.123579 2.065562 -0.875000
|
||||
v 0.416628 2.294318 -0.968750
|
||||
v 0.754762 2.558267 -1.000000
|
||||
v -0.596366 3.524646 -0.875000
|
||||
v -0.201836 3.516535 -0.968749
|
||||
v 0.253386 3.507195 -0.999999
|
||||
v 0.240138 1.635581 0.375000
|
||||
v 0.190495 1.665982 0.000000
|
||||
v 0.240167 1.635529 -0.375000
|
||||
v -0.237087 1.784019 0.375000
|
||||
v -0.282174 1.748824 -0.000000
|
||||
v -0.237094 1.784016 -0.375000
|
||||
v -1.081970 3.534582 0.375000
|
||||
v -1.142662 3.535849 0.000000
|
||||
v -1.081957 3.534623 -0.375000
|
||||
v -0.190472 0.598774 0.509259
|
||||
v -0.741342 5.088431 0.687501
|
||||
v -0.190472 0.598774 -0.509259
|
||||
v -0.741342 5.088432 -0.687499
|
||||
v 0.628300 -0.007026 0.509259
|
||||
v 0.628535 4.969846 0.687501
|
||||
v 0.661795 -0.031808 -0.550926
|
||||
v 0.939871 4.942895 -0.999999
|
||||
v 0.389096 1.544313 0.687500
|
||||
v -0.101831 1.889599 0.687500
|
||||
v -0.899884 3.530831 0.687500
|
||||
v -0.899853 3.530899 -0.687500
|
||||
v -0.101845 1.889595 -0.687500
|
||||
v 0.389153 1.544233 -0.687500
|
||||
v 0.738951 3.497248 -0.999999
|
||||
v 1.115437 2.839812 -1.000000
|
||||
v 1.729858 0.722672 -1.000000
|
||||
v 0.435531 3.503437 0.687501
|
||||
v 0.890005 2.663846 0.687500
|
||||
v 1.481611 0.874917 0.687500
|
||||
vn -0.9836 0.0805 0.1613
|
||||
vn -0.8588 0.0724 0.5072
|
||||
vn -0.9858 0.0499 0.1603
|
||||
vn -0.8621 0.0456 0.5047
|
||||
vn -0.9805 0.1103 0.1624
|
||||
vn -0.9767 0.1392 0.1635
|
||||
vn -0.8547 0.0984 0.5097
|
||||
vn -0.8499 0.1235 0.5122
|
||||
vn -0.9805 0.1103 -0.1624
|
||||
vn -0.8547 0.0983 -0.5097
|
||||
vn -0.9767 0.1392 -0.1635
|
||||
vn -0.8499 0.1234 -0.5122
|
||||
vn -0.9836 0.0805 -0.1614
|
||||
vn -0.9858 0.0499 -0.1603
|
||||
vn -0.8588 0.0724 -0.5072
|
||||
vn -0.8621 0.0457 -0.5047
|
||||
vn -0.2281 0.0220 -0.9734
|
||||
vn -0.5199 0.0464 -0.8530
|
||||
vn -0.2301 0.0149 -0.9731
|
||||
vn -0.5235 0.0302 -0.8515
|
||||
vn -0.2259 0.0289 -0.9737
|
||||
vn -0.2236 0.0355 -0.9740
|
||||
vn -0.5157 0.0621 -0.8545
|
||||
vn -0.5111 0.0770 -0.8560
|
||||
vn -0.0668 0.0092 -0.9977
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -0.0661 0.0112 -0.9978
|
||||
vn -0.0675 0.0072 -0.9977
|
||||
vn -0.0681 0.0050 -0.9977
|
||||
vn 0.9905 -0.1208 0.0651
|
||||
vn 0.9926 -0.1214 -0.0001
|
||||
vn 0.9940 -0.0879 0.0647
|
||||
vn 0.9961 -0.0884 -0.0000
|
||||
vn 0.9861 -0.1527 0.0655
|
||||
vn 0.9808 -0.1835 0.0659
|
||||
vn 0.9882 -0.1534 -0.0000
|
||||
vn 0.9829 -0.1843 -0.0000
|
||||
vn 0.9639 -0.1478 0.2215
|
||||
vn 0.8514 -0.1276 0.5087
|
||||
vn 0.9585 -0.1777 0.2228
|
||||
vn 0.8457 -0.1538 0.5111
|
||||
vn 0.9684 -0.1167 0.2203
|
||||
vn 0.9720 -0.0846 0.2190
|
||||
vn 0.8564 -0.1005 0.5065
|
||||
vn 0.8605 -0.0723 0.5042
|
||||
vn 0.1668 -0.0174 0.9858
|
||||
vn 0.5191 -0.0580 0.8527
|
||||
vn 0.1683 -0.0121 0.9857
|
||||
vn 0.5230 -0.0412 0.8513
|
||||
vn 0.1651 -0.0225 0.9860
|
||||
vn 0.1634 -0.0273 0.9862
|
||||
vn 0.5147 -0.0741 0.8542
|
||||
vn 0.5099 -0.0895 0.8556
|
||||
vn -0.1652 0.0211 0.9860
|
||||
vn -0.5157 0.0621 0.8545
|
||||
vn -0.1635 0.0259 0.9862
|
||||
vn -0.5111 0.0771 0.8560
|
||||
vn -0.1668 0.0161 0.9859
|
||||
vn -0.1683 0.0108 0.9857
|
||||
vn -0.5198 0.0464 0.8530
|
||||
vn -0.5235 0.0302 0.8515
|
||||
vn -0.6888 -0.7133 -0.1294
|
||||
vn -0.6578 -0.6309 -0.4116
|
||||
vn -0.8661 -0.4761 -0.1520
|
||||
vn -0.8161 -0.3968 -0.4200
|
||||
vn -0.4807 -0.8673 -0.1294
|
||||
vn -0.2193 -0.9654 -0.1413
|
||||
vn -0.4255 -0.8128 -0.3979
|
||||
vn -0.2167 -0.9057 -0.3644
|
||||
vn -0.4807 -0.8673 0.1294
|
||||
vn -0.4118 -0.8122 0.4131
|
||||
vn -0.2035 -0.9670 0.1535
|
||||
vn -0.1408 -0.8965 0.4200
|
||||
vn -0.6888 -0.7133 0.1294
|
||||
vn -0.8661 -0.4761 0.1520
|
||||
vn -0.6563 -0.6314 0.4131
|
||||
vn -0.8161 -0.3968 0.4200
|
||||
vn 0.0862 0.9963 0.0000
|
||||
vn -0.0235 -0.3379 0.9409
|
||||
vn 0.2361 -0.5521 0.7997
|
||||
vn -0.2040 -0.5801 0.7886
|
||||
vn 0.0397 -0.7376 0.6741
|
||||
vn 0.0930 -0.1712 0.9808
|
||||
vn 0.1454 -0.0968 0.9846
|
||||
vn 0.3861 -0.3764 0.8422
|
||||
vn 0.4525 -0.2912 0.8429
|
||||
vn -0.1841 0.0334 0.9823
|
||||
vn -0.4677 0.2563 0.8459
|
||||
vn -0.1437 0.0994 0.9846
|
||||
vn -0.4379 0.3138 0.8425
|
||||
vn -0.2956 -0.1228 0.9474
|
||||
vn -0.4761 -0.3586 0.8029
|
||||
vn -0.5685 0.0870 0.8181
|
||||
vn -0.6847 -0.1349 0.7163
|
||||
vn 0.2154 0.0274 0.9761
|
||||
vn 0.6199 0.0711 0.7815
|
||||
vn 0.1722 -0.0800 0.9818
|
||||
vn 0.5405 -0.1897 0.8197
|
||||
vn 0.1842 0.1415 0.9726
|
||||
vn 0.1194 0.1750 0.9773
|
||||
vn 0.5427 0.3315 0.7717
|
||||
vn 0.3934 0.4487 0.8024
|
||||
vn -0.1722 -0.1884 0.9669
|
||||
vn -0.3624 -0.6736 0.6442
|
||||
vn -0.0974 -0.2103 0.9728
|
||||
vn -0.1756 -0.6847 0.7074
|
||||
vn -0.2160 -0.0329 0.9758
|
||||
vn -0.1589 0.1091 0.9812
|
||||
vn -0.6205 -0.1293 0.7735
|
||||
vn -0.3986 0.4597 0.7936
|
||||
vn 0.1514 0.1166 0.9816
|
||||
vn 0.4410 0.3757 0.8151
|
||||
vn 0.1117 0.1618 0.9805
|
||||
vn 0.2968 0.5225 0.7993
|
||||
vn 0.1750 0.0518 0.9832
|
||||
vn 0.1751 -0.0095 0.9845
|
||||
vn 0.5360 0.1447 0.8317
|
||||
vn 0.5396 -0.0727 0.8388
|
||||
vn -0.1743 -0.0551 0.9832
|
||||
vn -0.5286 -0.1744 0.8308
|
||||
vn -0.1745 -0.0019 0.9847
|
||||
vn -0.5366 -0.0304 0.8433
|
||||
vn -0.1544 -0.1097 0.9819
|
||||
vn -0.1202 -0.1491 0.9815
|
||||
vn -0.4717 -0.3170 0.8228
|
||||
vn -0.3800 -0.4231 0.8225
|
||||
vn 0.5607 -0.8280 0.0038
|
||||
vn 0.4340 -0.8969 -0.0852
|
||||
vn 0.2205 -0.9709 -0.0936
|
||||
vn 0.0318 -0.9718 -0.2339
|
||||
vn 0.7689 -0.6371 0.0540
|
||||
vn 0.8496 -0.5237 0.0625
|
||||
vn 0.7478 -0.6638 -0.0131
|
||||
vn 0.8516 -0.5242 0.0000
|
||||
vn 0.7601 -0.6140 0.2128
|
||||
vn 0.6655 -0.5577 0.4961
|
||||
vn 0.8306 -0.5150 0.2120
|
||||
vn 0.7375 -0.4634 0.4912
|
||||
vn 0.5906 -0.7803 0.2058
|
||||
vn 0.2763 -0.9424 0.1885
|
||||
vn 0.4868 -0.7240 0.4887
|
||||
vn 0.2131 -0.8637 0.4567
|
||||
vn 0.9933 0.1039 0.0502
|
||||
vn 0.9946 0.1037 0.0000
|
||||
vn 0.9665 -0.2504 0.0565
|
||||
vn 0.9686 -0.2486 0.0000
|
||||
vn 0.8980 0.4371 0.0498
|
||||
vn 0.7463 0.6633 0.0555
|
||||
vn 0.9003 0.4352 0.0000
|
||||
vn 0.7499 0.6615 0.0000
|
||||
vn 0.8813 0.4410 0.1697
|
||||
vn 0.8059 0.4307 0.4062
|
||||
vn 0.7241 0.6635 0.1883
|
||||
vn 0.6386 0.6291 0.4432
|
||||
vn 0.9798 0.1036 0.1712
|
||||
vn 0.9475 -0.2552 0.1926
|
||||
vn 0.9061 0.0983 0.4116
|
||||
vn 0.8537 -0.2517 0.4559
|
||||
vn 0.6898 0.7220 0.0541
|
||||
vn 0.6874 0.7263 0.0000
|
||||
vn 0.3516 0.9349 0.0482
|
||||
vn 0.3459 0.9383 0.0000
|
||||
vn 0.9760 0.2095 0.0599
|
||||
vn 0.9580 -0.2807 0.0590
|
||||
vn 0.9782 0.2075 -0.0000
|
||||
vn 0.9578 -0.2874 -0.0000
|
||||
vn 0.9554 0.2145 0.2032
|
||||
vn 0.8550 0.2082 0.4749
|
||||
vn 0.9464 -0.2519 0.2021
|
||||
vn 0.8590 -0.1824 0.4785
|
||||
vn 0.6914 0.6982 0.1856
|
||||
vn 0.3700 0.9138 0.1677
|
||||
vn 0.6519 0.6135 0.4458
|
||||
vn 0.3847 0.8239 0.4162
|
||||
vn -0.3375 -0.1049 -0.9355
|
||||
vn -0.5686 0.0871 -0.8180
|
||||
vn -0.4946 -0.3535 -0.7940
|
||||
vn -0.6846 -0.1347 -0.7163
|
||||
vn -0.2343 0.0662 -0.9699
|
||||
vn -0.1964 0.1356 -0.9711
|
||||
vn -0.4678 0.2563 -0.8458
|
||||
vn -0.4380 0.3139 -0.8424
|
||||
vn -0.1064 -0.0537 -0.9929
|
||||
vn -0.0653 -0.1248 -0.9900
|
||||
vn -0.0590 0.0390 -0.9975
|
||||
vn -0.2054 -0.2888 -0.9351
|
||||
vn -0.3053 -0.5839 -0.7522
|
||||
vn -0.2024 -0.4493 -0.8702
|
||||
vn -0.2552 -0.7602 -0.5975
|
||||
vn -0.2927 -0.0442 -0.9552
|
||||
vn -0.6205 -0.1294 -0.7735
|
||||
vn -0.2174 0.1465 -0.9650
|
||||
vn -0.3987 0.4596 -0.7936
|
||||
vn -0.2326 -0.2500 -0.9399
|
||||
vn -0.1332 -0.2819 -0.9501
|
||||
vn -0.3624 -0.6735 -0.6443
|
||||
vn -0.1756 -0.6846 -0.7074
|
||||
vn -0.0761 -0.0551 -0.9956
|
||||
vn -0.0501 -0.0689 -0.9964
|
||||
vn -0.0879 -0.0109 -0.9961
|
||||
vn -0.0708 0.0307 -0.9970
|
||||
vn -0.2102 -0.1498 -0.9661
|
||||
vn -0.4717 -0.3170 -0.8228
|
||||
vn -0.1632 -0.2037 -0.9653
|
||||
vn -0.3800 -0.4231 -0.8225
|
||||
vn -0.2377 -0.0750 -0.9684
|
||||
vn -0.2384 -0.0020 -0.9712
|
||||
vn -0.5286 -0.1743 -0.8308
|
||||
vn -0.5367 -0.0304 -0.8433
|
||||
vn -0.0711 -0.0207 -0.9973
|
||||
vn -0.0710 0.0050 -0.9975
|
||||
vn -0.0612 -0.0481 -0.9970
|
||||
vn -0.0446 -0.0671 -0.9968
|
||||
vn -0.8908 0.4233 0.1651
|
||||
vn -0.8068 0.3123 0.5016
|
||||
vn -0.9793 0.1031 0.1744
|
||||
vn -0.8781 0.0556 0.4752
|
||||
vn -0.8127 0.5610 0.1576
|
||||
vn -0.7919 0.5908 0.1542
|
||||
vn -0.7247 0.4762 0.4980
|
||||
vn -0.7020 0.5167 0.4902
|
||||
vn -0.8126 0.5610 -0.1578
|
||||
vn -0.7246 0.4762 -0.4981
|
||||
vn -0.7919 0.5908 -0.1544
|
||||
vn -0.7020 0.5166 -0.4903
|
||||
vn -0.8908 0.4233 -0.1653
|
||||
vn -0.9792 0.1032 -0.1745
|
||||
vn -0.8067 0.3123 -0.5017
|
||||
vn -0.8781 0.0558 -0.4753
|
||||
vn -0.8545 -0.5095 0.1015
|
||||
vn -0.8731 -0.2987 0.3854
|
||||
vn -0.2620 0.9608 0.0910
|
||||
vn -0.3930 0.8441 0.3648
|
||||
vn -0.1027 -0.9939 0.0412
|
||||
vn -0.0236 -0.9969 0.0748
|
||||
vn -0.2385 -0.9493 0.2046
|
||||
vn -0.0972 -0.9522 0.2897
|
||||
vn -0.1027 -0.9939 -0.0411
|
||||
vn -0.2386 -0.9493 -0.2046
|
||||
vn -0.0236 -0.9969 -0.0747
|
||||
vn -0.0972 -0.9522 -0.2897
|
||||
vn -0.8544 -0.5096 -0.1014
|
||||
vn -0.2620 0.9607 -0.0912
|
||||
vn -0.8730 -0.2989 -0.3853
|
||||
vn -0.3931 0.8440 -0.3650
|
||||
vn -0.8334 -0.5336 0.1439
|
||||
vn -0.7431 -0.4830 0.4633
|
||||
vn -0.6951 -0.7042 0.1448
|
||||
vn -0.6128 -0.6391 0.4648
|
||||
vn -0.9360 -0.3196 0.1475
|
||||
vn -0.9834 -0.0949 0.1549
|
||||
vn -0.8347 -0.2820 0.4730
|
||||
vn -0.8677 -0.0730 0.4916
|
||||
vn -0.9360 -0.3196 -0.1475
|
||||
vn -0.8347 -0.2820 -0.4730
|
||||
vn -0.9834 -0.0948 -0.1549
|
||||
vn -0.8677 -0.0730 -0.4916
|
||||
vn -0.8334 -0.5336 -0.1439
|
||||
vn -0.6951 -0.7042 -0.1447
|
||||
vn -0.7431 -0.4829 -0.4633
|
||||
vn -0.6128 -0.6392 -0.4648
|
||||
s off
|
||||
f 1//1 5//1 6//1 2//1
|
||||
f 2//2 6//2 166//2 167//2
|
||||
f 5//3 269//3 268//3 6//3
|
||||
f 6//4 268//4 281//4 166//4
|
||||
f 1//5 2//5 7//5 3//5
|
||||
f 3//6 7//6 169//6 170//6
|
||||
f 2//7 167//7 168//7 7//7
|
||||
f 7//8 168//8 272//8 169//8
|
||||
f 1//9 3//9 8//9 4//9
|
||||
f 4//10 8//10 208//10 209//10
|
||||
f 3//11 170//11 171//11 8//11
|
||||
f 8//12 171//12 274//12 208//12
|
||||
f 1//13 4//13 9//13 5//13
|
||||
f 5//14 9//14 270//14 269//14
|
||||
f 4//15 209//15 210//15 9//15
|
||||
f 9//16 210//16 282//16 270//16
|
||||
f 10//17 14//17 15//17 11//17
|
||||
f 11//18 15//18 210//18 209//18
|
||||
f 14//19 260//19 259//19 15//19
|
||||
f 15//20 259//20 282//20 210//20
|
||||
f 10//21 11//21 16//21 12//21
|
||||
f 12//22 16//22 178//22 179//22
|
||||
f 11//23 209//23 208//23 16//23
|
||||
f 16//24 208//24 274//24 178//24
|
||||
f 10//25 12//25 17//25 13//25
|
||||
f 13//26 17//26 217//26 218//26
|
||||
f 12//27 179//27 180//27 17//27
|
||||
f 17//26 180//26 278//26 217//26
|
||||
f 10//28 13//28 18//28 14//28
|
||||
f 14//29 18//29 261//29 260//29
|
||||
f 13//26 218//26 219//26 18//26
|
||||
f 18//26 219//26 285//26 261//26
|
||||
f 19//30 23//30 24//30 20//30
|
||||
f 20//31 24//31 219//31 218//31
|
||||
f 23//32 251//32 250//32 24//32
|
||||
f 24//33 250//33 285//33 219//33
|
||||
f 19//34 20//34 25//34 21//34
|
||||
f 21//35 25//35 187//35 188//35
|
||||
f 20//36 218//36 217//36 25//36
|
||||
f 25//37 217//37 278//37 187//37
|
||||
f 19//38 21//38 26//38 22//38
|
||||
f 22//39 26//39 226//39 227//39
|
||||
f 21//40 188//40 189//40 26//40
|
||||
f 26//41 189//41 276//41 226//41
|
||||
f 19//42 22//42 27//42 23//42
|
||||
f 23//43 27//43 252//43 251//43
|
||||
f 22//44 227//44 228//44 27//44
|
||||
f 27//45 228//45 288//45 252//45
|
||||
f 28//46 32//46 33//46 29//46
|
||||
f 29//47 33//47 228//47 227//47
|
||||
f 32//48 242//48 241//48 33//48
|
||||
f 33//49 241//49 288//49 228//49
|
||||
f 28//50 29//50 34//50 30//50
|
||||
f 30//51 34//51 196//51 197//51
|
||||
f 29//52 227//52 226//52 34//52
|
||||
f 34//53 226//53 276//53 196//53
|
||||
f 28//54 30//54 35//54 31//54
|
||||
f 31//55 35//55 168//55 167//55
|
||||
f 30//56 197//56 198//56 35//56
|
||||
f 35//57 198//57 272//57 168//57
|
||||
f 28//58 31//58 36//58 32//58
|
||||
f 32//59 36//59 243//59 242//59
|
||||
f 31//60 167//60 166//60 36//60
|
||||
f 36//61 166//61 281//61 243//61
|
||||
f 37//62 41//62 42//62 38//62
|
||||
f 38//63 42//63 177//63 176//63
|
||||
f 41//64 164//64 163//64 42//64
|
||||
f 42//65 163//65 273//65 177//65
|
||||
f 37//66 38//66 43//66 39//66
|
||||
f 39//67 43//67 186//67 185//67
|
||||
f 38//68 176//68 175//68 43//68
|
||||
f 43//69 175//69 277//69 186//69
|
||||
f 37//70 39//70 44//70 40//70
|
||||
f 40//71 44//71 195//71 194//71
|
||||
f 39//72 185//72 184//72 44//72
|
||||
f 44//73 184//73 275//73 195//73
|
||||
f 37//74 40//74 45//74 41//74
|
||||
f 41//75 45//75 165//75 164//75
|
||||
f 40//76 194//76 193//76 45//76
|
||||
f 45//77 193//77 271//77 165//77
|
||||
f 46//78 50//78 51//78 47//78
|
||||
f 47//78 51//78 180//78 179//78
|
||||
f 50//78 188//78 187//78 51//78
|
||||
f 51//78 187//78 278//78 180//78
|
||||
f 46//78 47//78 52//78 48//78
|
||||
f 48//78 52//78 171//78 170//78
|
||||
f 47//78 179//78 178//78 52//78
|
||||
f 52//78 178//78 274//78 171//78
|
||||
f 46//78 48//78 53//78 49//78
|
||||
f 49//78 53//78 198//78 197//78
|
||||
f 48//78 170//78 169//78 53//78
|
||||
f 53//78 169//78 272//78 198//78
|
||||
f 46//78 49//78 54//78 50//78
|
||||
f 50//78 54//78 189//78 188//78
|
||||
f 49//78 197//78 196//78 54//78
|
||||
f 54//78 196//78 276//78 189//78
|
||||
f 55//79 59//79 60//79 56//79
|
||||
f 56//80 60//80 192//80 191//80
|
||||
f 59//81 194//81 195//81 60//81
|
||||
f 60//82 195//82 275//82 192//82
|
||||
f 55//83 56//83 61//83 57//83
|
||||
f 57//84 61//84 235//84 236//84
|
||||
f 56//85 191//85 190//85 61//85
|
||||
f 61//86 190//86 290//86 235//86
|
||||
f 55//87 57//87 62//87 58//87
|
||||
f 58//88 62//88 201//88 200//88
|
||||
f 57//89 236//89 237//89 62//89
|
||||
f 62//90 237//90 279//90 201//90
|
||||
f 55//91 58//91 63//91 59//91
|
||||
f 59//92 63//92 193//92 194//92
|
||||
f 58//93 200//93 199//93 63//93
|
||||
f 63//94 199//94 271//94 193//94
|
||||
f 64//95 68//95 69//95 65//95
|
||||
f 65//96 69//96 234//96 233//96
|
||||
f 68//97 236//97 235//97 69//97
|
||||
f 69//98 235//98 290//98 234//98
|
||||
f 64//99 65//99 70//99 66//99
|
||||
f 66//100 70//100 238//100 239//100
|
||||
f 65//101 233//101 232//101 70//101
|
||||
f 70//102 232//102 289//102 238//102
|
||||
f 64//103 66//103 71//103 67//103
|
||||
f 67//104 71//104 204//104 203//104
|
||||
f 66//105 239//105 240//105 71//105
|
||||
f 71//106 240//106 280//106 204//106
|
||||
f 64//107 67//107 72//107 68//107
|
||||
f 68//108 72//108 237//108 236//108
|
||||
f 67//109 203//109 202//109 72//109
|
||||
f 72//110 202//110 279//110 237//110
|
||||
f 73//111 77//111 78//111 74//111
|
||||
f 74//112 78//112 231//112 230//112
|
||||
f 77//113 239//113 238//113 78//113
|
||||
f 78//114 238//114 289//114 231//114
|
||||
f 73//115 74//115 79//115 75//115
|
||||
f 75//116 79//116 241//116 242//116
|
||||
f 74//117 230//117 229//117 79//117
|
||||
f 79//118 229//118 288//118 241//118
|
||||
f 73//119 75//119 80//119 76//119
|
||||
f 76//120 80//120 207//120 206//120
|
||||
f 75//121 242//121 243//121 80//121
|
||||
f 80//122 243//122 281//122 207//122
|
||||
f 73//123 76//123 81//123 77//123
|
||||
f 77//124 81//124 240//124 239//124
|
||||
f 76//125 206//125 205//125 81//125
|
||||
f 81//126 205//126 280//126 240//126
|
||||
f 82//127 86//127 87//127 83//127
|
||||
f 83//128 87//128 183//128 182//128
|
||||
f 86//129 185//129 186//129 87//129
|
||||
f 87//130 186//130 277//130 183//130
|
||||
f 82//131 83//131 88//131 84//131
|
||||
f 84//132 88//132 244//132 245//132
|
||||
f 83//133 182//133 181//133 88//133
|
||||
f 88//134 181//134 287//134 244//134
|
||||
f 82//135 84//135 89//135 85//135
|
||||
f 85//136 89//136 190//136 191//136
|
||||
f 84//137 245//137 246//137 89//137
|
||||
f 89//138 246//138 290//138 190//138
|
||||
f 82//139 85//139 90//139 86//139
|
||||
f 86//140 90//140 184//140 185//140
|
||||
f 85//141 191//141 192//141 90//141
|
||||
f 90//142 192//142 275//142 184//142
|
||||
f 91//143 95//143 96//143 92//143
|
||||
f 92//144 96//144 225//144 224//144
|
||||
f 95//145 245//145 244//145 96//145
|
||||
f 96//146 244//146 287//146 225//146
|
||||
f 91//147 92//147 97//147 93//147
|
||||
f 93//148 97//148 247//148 248//148
|
||||
f 92//149 224//149 223//149 97//149
|
||||
f 97//150 223//150 286//150 247//150
|
||||
f 91//151 93//151 98//151 94//151
|
||||
f 94//152 98//152 232//152 233//152
|
||||
f 93//153 248//153 249//153 98//153
|
||||
f 98//154 249//154 289//154 232//154
|
||||
f 91//155 94//155 99//155 95//155
|
||||
f 95//156 99//156 246//156 245//156
|
||||
f 94//157 233//157 234//157 99//157
|
||||
f 99//158 234//158 290//158 246//158
|
||||
f 100//159 104//159 105//159 101//159
|
||||
f 101//160 105//160 222//160 221//160
|
||||
f 104//161 248//161 247//161 105//161
|
||||
f 105//162 247//162 286//162 222//162
|
||||
f 100//163 101//163 106//163 102//163
|
||||
f 102//164 106//164 250//164 251//164
|
||||
f 101//165 221//165 220//165 106//165
|
||||
f 106//166 220//166 285//166 250//166
|
||||
f 100//167 102//167 107//167 103//167
|
||||
f 103//168 107//168 229//168 230//168
|
||||
f 102//169 251//169 252//169 107//169
|
||||
f 107//170 252//170 288//170 229//170
|
||||
f 100//171 103//171 108//171 104//171
|
||||
f 104//172 108//172 249//172 248//172
|
||||
f 103//173 230//173 231//173 108//173
|
||||
f 108//174 231//174 289//174 249//174
|
||||
f 109//175 113//175 114//175 110//175
|
||||
f 110//176 114//176 174//176 173//176
|
||||
f 113//177 176//177 177//177 114//177
|
||||
f 114//178 177//178 273//178 174//178
|
||||
f 109//179 110//179 115//179 111//179
|
||||
f 111//180 115//180 253//180 254//180
|
||||
f 110//181 173//181 172//181 115//181
|
||||
f 115//182 172//182 284//182 253//182
|
||||
f 109//183 111//183 116//183 112//183
|
||||
f 112//184 116//184 181//184 182//184
|
||||
f 111//185 254//185 255//185 116//185
|
||||
f 116//26 255//26 287//26 181//26
|
||||
f 109//186 112//186 117//186 113//186
|
||||
f 113//187 117//187 175//187 176//187
|
||||
f 112//188 182//188 183//188 117//188
|
||||
f 117//189 183//189 277//189 175//189
|
||||
f 118//190 122//190 123//190 119//190
|
||||
f 119//191 123//191 216//191 215//191
|
||||
f 122//192 254//192 253//192 123//192
|
||||
f 123//193 253//193 284//193 216//193
|
||||
f 118//194 119//194 124//194 120//194
|
||||
f 120//195 124//195 256//195 257//195
|
||||
f 119//196 215//196 214//196 124//196
|
||||
f 124//197 214//197 283//197 256//197
|
||||
f 118//198 120//198 125//198 121//198
|
||||
f 121//26 125//26 223//26 224//26
|
||||
f 120//199 257//199 258//199 125//199
|
||||
f 125//26 258//26 286//26 223//26
|
||||
f 118//200 121//200 126//200 122//200
|
||||
f 122//201 126//201 255//201 254//201
|
||||
f 121//26 224//26 225//26 126//26
|
||||
f 126//26 225//26 287//26 255//26
|
||||
f 127//202 131//202 132//202 128//202
|
||||
f 128//203 132//203 213//203 212//203
|
||||
f 131//204 257//204 256//204 132//204
|
||||
f 132//205 256//205 283//205 213//205
|
||||
f 127//206 128//206 133//206 129//206
|
||||
f 129//207 133//207 259//207 260//207
|
||||
f 128//208 212//208 211//208 133//208
|
||||
f 133//209 211//209 282//209 259//209
|
||||
f 127//210 129//210 134//210 130//210
|
||||
f 130//26 134//26 220//26 221//26
|
||||
f 129//211 260//211 261//211 134//211
|
||||
f 134//26 261//26 285//26 220//26
|
||||
f 127//212 130//212 135//212 131//212
|
||||
f 131//213 135//213 258//213 257//213
|
||||
f 130//26 221//26 222//26 135//26
|
||||
f 135//26 222//26 286//26 258//26
|
||||
f 136//214 140//214 141//214 137//214
|
||||
f 137//215 141//215 199//215 200//215
|
||||
f 140//216 164//216 165//216 141//216
|
||||
f 141//217 165//217 271//217 199//217
|
||||
f 136//218 137//218 142//218 138//218
|
||||
f 138//219 142//219 262//219 263//219
|
||||
f 137//220 200//220 201//220 142//220
|
||||
f 142//221 201//221 279//221 262//221
|
||||
f 136//222 138//222 143//222 139//222
|
||||
f 139//223 143//223 172//223 173//223
|
||||
f 138//224 263//224 264//224 143//224
|
||||
f 143//225 264//225 284//225 172//225
|
||||
f 136//226 139//226 144//226 140//226
|
||||
f 140//227 144//227 163//227 164//227
|
||||
f 139//228 173//228 174//228 144//228
|
||||
f 144//229 174//229 273//229 163//229
|
||||
f 145//230 149//230 150//230 146//230
|
||||
f 146//231 150//231 202//231 203//231
|
||||
f 149//232 263//232 262//232 150//232
|
||||
f 150//233 262//233 279//233 202//233
|
||||
f 145//234 146//234 151//234 147//234
|
||||
f 147//235 151//235 265//235 266//235
|
||||
f 146//236 203//236 204//236 151//236
|
||||
f 151//237 204//237 280//237 265//237
|
||||
f 145//238 147//238 152//238 148//238
|
||||
f 148//239 152//239 214//239 215//239
|
||||
f 147//240 266//240 267//240 152//240
|
||||
f 152//241 267//241 283//241 214//241
|
||||
f 145//242 148//242 153//242 149//242
|
||||
f 149//243 153//243 264//243 263//243
|
||||
f 148//244 215//244 216//244 153//244
|
||||
f 153//245 216//245 284//245 264//245
|
||||
f 154//246 158//246 159//246 155//246
|
||||
f 155//247 159//247 205//247 206//247
|
||||
f 158//248 266//248 265//248 159//248
|
||||
f 159//249 265//249 280//249 205//249
|
||||
f 154//250 155//250 160//250 156//250
|
||||
f 156//251 160//251 268//251 269//251
|
||||
f 155//252 206//252 207//252 160//252
|
||||
f 160//253 207//253 281//253 268//253
|
||||
f 154//254 156//254 161//254 157//254
|
||||
f 157//255 161//255 211//255 212//255
|
||||
f 156//256 269//256 270//256 161//256
|
||||
f 161//257 270//257 282//257 211//257
|
||||
f 154//258 157//258 162//258 158//258
|
||||
f 158//259 162//259 267//259 266//259
|
||||
f 157//260 212//260 213//260 162//260
|
||||
f 162//261 213//261 283//261 267//261
|
||||
1551
modules/ufbx/data/blender_279_unicode_6100_ascii.fbx
Normal file
1551
modules/ufbx/data/blender_279_unicode_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_unicode_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_unicode_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_279_uv_set_tangents_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_uv_set_tangents_7400_binary.fbx
Normal file
Binary file not shown.
1618
modules/ufbx/data/blender_279_uv_sets_6100_ascii.fbx
Normal file
1618
modules/ufbx/data/blender_279_uv_sets_6100_ascii.fbx
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_279_uv_sets_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_279_uv_sets_7400_binary.fbx
Normal file
Binary file not shown.
2066
modules/ufbx/data/blender_282_suzanne.obj
Normal file
2066
modules/ufbx/data/blender_282_suzanne.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_282_suzanne_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_282_suzanne_7400_binary.fbx
Normal file
Binary file not shown.
4130
modules/ufbx/data/blender_282_suzanne_and_transform.obj
Normal file
4130
modules/ufbx/data/blender_282_suzanne_and_transform.obj
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
BIN
modules/ufbx/data/blender_293_barbarian_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_barbarian_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_293_embedded_textures_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_embedded_textures_7400_binary.fbx
Normal file
Binary file not shown.
14
modules/ufbx/data/blender_293_half_skinned.obj
Normal file
14
modules/ufbx/data/blender_293_half_skinned.obj
Normal file
@@ -0,0 +1,14 @@
|
||||
# Blender v2.93.1 OBJ File: ''
|
||||
# www.blender.org
|
||||
g Plane
|
||||
v -1.000000 1.000000 1.000000
|
||||
v 1.000000 1.000000 1.000000
|
||||
v -1.000000 0.000000 -1.000000
|
||||
v 1.000000 0.000000 -1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 0.8944 -0.4472
|
||||
s off
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
BIN
modules/ufbx/data/blender_293_half_skinned_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_half_skinned_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_293_half_smooth_cube_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_half_smooth_cube_7400_binary.fbx
Normal file
Binary file not shown.
16523
modules/ufbx/data/blender_293_instancing.obj
Normal file
16523
modules/ufbx/data/blender_293_instancing.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_293_instancing_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_instancing_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_293_material_mapping_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_material_mapping_7400_binary.fbx
Normal file
Binary file not shown.
160
modules/ufbx/data/blender_293_ngon_subsurf.obj
Normal file
160
modules/ufbx/data/blender_293_ngon_subsurf.obj
Normal file
@@ -0,0 +1,160 @@
|
||||
# ufbx:bad_normals
|
||||
# Blender v2.93.1 OBJ File: ''
|
||||
# www.blender.org
|
||||
g Plane
|
||||
v -0.285714 -0.098136 0.413226
|
||||
v 0.937829 0.000000 0.928330
|
||||
v -0.460317 -0.158108 -0.469873
|
||||
v 0.871949 -0.085869 -0.417109
|
||||
v 0.248437 -0.088936 1.566148
|
||||
v 1.594936 -0.085869 1.459709
|
||||
v 0.921956 -0.654242 0.930379
|
||||
v -0.035714 -0.355744 -0.651303
|
||||
v 0.863020 -0.582684 -0.415957
|
||||
v 0.552776 -0.539749 1.585911
|
||||
v 1.594936 -0.601085 1.459710
|
||||
v -0.535714 -0.098136 0.192785
|
||||
v 0.505357 0.000000 1.211489
|
||||
v 0.838690 0.000000 0.250902
|
||||
v 0.000000 -0.085869 -0.655912
|
||||
v -0.285714 -0.098136 0.913226
|
||||
v 1.029461 -0.085869 1.808282
|
||||
v 1.360116 0.000000 1.274214
|
||||
v 1.487795 -0.085869 0.487474
|
||||
v 0.469642 -0.613352 1.216098
|
||||
v 0.802976 -0.613352 0.255511
|
||||
v -0.035714 -0.527482 -0.651303
|
||||
v 1.029461 -0.601085 1.808282
|
||||
v 1.360116 -0.686954 1.274214
|
||||
v 1.487795 -0.601085 0.487474
|
||||
v -0.535714 -0.355744 -0.651303
|
||||
v 0.883035 -0.343477 -0.639780
|
||||
v 0.222321 -0.355744 1.510018
|
||||
v 1.673209 -0.343477 1.521541
|
||||
v 0.000000 0.000000 0.376352
|
||||
v 1.021426 0.000000 1.587841
|
||||
v 1.354760 0.000000 0.627254
|
||||
v 1.021426 -0.686954 1.587841
|
||||
v 1.354760 -0.686954 0.627254
|
||||
v 0.000000 -0.343477 -1.000000
|
||||
v -0.142857 -0.392545 0.394789
|
||||
v 1.532140 -0.343477 0.440881
|
||||
v 1.032140 -0.343477 1.881762
|
||||
vt 0.548251 0.350671
|
||||
vt 0.652271 0.246651
|
||||
vt 0.717143 0.389820
|
||||
vt 0.554400 0.448542
|
||||
vt 0.756292 0.142630
|
||||
vt 0.860312 0.246651
|
||||
vt 0.964333 0.350671
|
||||
vt 0.817434 0.464011
|
||||
vt 0.757280 0.544790
|
||||
vt 0.682839 0.529258
|
||||
vt 0.560550 0.546413
|
||||
vt 0.765227 0.624696
|
||||
vt 0.697373 0.622089
|
||||
vt 0.775277 0.761140
|
||||
vt 0.667914 0.653777
|
||||
vt 0.869805 0.555906
|
||||
vt 0.831967 0.556841
|
||||
vt 0.327956 0.466981
|
||||
vt 0.271977 0.447027
|
||||
vt 0.313610 0.400910
|
||||
vt 0.356348 0.428637
|
||||
vt 0.262851 0.391765
|
||||
vt 0.307700 0.365946
|
||||
vt 0.379745 0.395769
|
||||
vt 0.396222 0.596544
|
||||
vt 0.342146 0.533918
|
||||
vt 0.383779 0.487801
|
||||
vt 0.415056 0.493411
|
||||
vt 0.532234 0.686502
|
||||
vt 0.382822 0.754318
|
||||
vt 0.362253 0.711502
|
||||
vt 0.442877 0.630382
|
||||
vt 0.233410 0.822134
|
||||
vt 0.272149 0.695058
|
||||
vt 0.312973 0.679497
|
||||
vt 0.319629 0.648915
|
||||
vt 0.128878 0.675865
|
||||
vt 0.232895 0.546788
|
||||
vt 0.024346 0.529595
|
||||
vt 0.086040 0.413802
|
||||
vt 0.147735 0.298008
|
||||
vt 0.224598 0.386338
|
||||
vt 0.459765 0.257445
|
||||
vt 0.496000 0.471974
|
||||
vt 0.453689 0.485958
|
||||
vt 0.404454 0.357347
|
||||
vt 0.303750 0.277726
|
||||
vt 0.304938 0.323666
|
||||
vn 0.3105 -0.9445 -0.1077
|
||||
vn 0.1681 -0.9815 0.0919
|
||||
vn -0.0067 -0.9949 0.1004
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.1621 -0.9809 -0.1072
|
||||
vn -0.2024 -0.9395 -0.2764
|
||||
vn 0.1176 -0.9632 -0.2419
|
||||
vn -0.1888 -0.9677 0.1669
|
||||
vn -0.4259 -0.9043 0.0296
|
||||
vn 0.0799 0.9961 0.0375
|
||||
vn 0.2878 0.9124 -0.2910
|
||||
vn -0.2024 0.9395 -0.2764
|
||||
vn -0.0610 0.9899 0.1277
|
||||
vn 0.0908 0.9956 0.0223
|
||||
vn -0.4259 0.9043 0.0296
|
||||
vn -0.2230 -0.7235 0.6533
|
||||
vn 0.3714 -0.7275 0.5769
|
||||
vn 0.3241 0.9437 0.0664
|
||||
vn -0.1675 0.8005 0.5754
|
||||
vn 0.8323 0.5302 -0.1618
|
||||
vn 0.8521 0.4320 -0.2957
|
||||
vn 0.7373 0.5520 -0.3894
|
||||
vn 0.5592 0.7971 -0.2281
|
||||
vn 0.2043 0.9763 0.0709
|
||||
vn 0.1501 0.9876 -0.0453
|
||||
vn -0.9669 -0.2267 0.1169
|
||||
vn -0.7905 -0.3483 0.5037
|
||||
vn -0.7786 0.3748 0.5033
|
||||
vn -0.9669 0.2267 0.1169
|
||||
vn 0.3600 -0.0469 -0.9318
|
||||
vn -0.4843 -0.2926 -0.8245
|
||||
vn -0.4843 0.2926 -0.8245
|
||||
vn 0.4094 0.2992 -0.8619
|
||||
s off
|
||||
f 1/1/1 12/2/1 30/3/1 16/4/1
|
||||
f 3/5/2 15/6/2 30/3/2 12/2/2
|
||||
f 4/7/3 14/8/3 30/3/3 15/6/3
|
||||
f 2/9/4 13/10/4 30/3/4 14/8/4
|
||||
f 5/11/5 16/4/5 30/3/5 13/10/5
|
||||
f 2/9/4 18/12/4 31/13/4 13/10/4
|
||||
f 6/14/6 17/15/6 31/13/6 18/12/6
|
||||
f 5/11/7 13/10/7 31/13/7 17/15/7
|
||||
f 4/7/8 19/16/8 32/17/8 14/8/8
|
||||
f 6/14/9 18/12/9 32/17/9 19/16/9
|
||||
f 2/9/4 14/8/4 32/17/4 18/12/4
|
||||
f 7/18/10 20/19/10 33/20/10 24/21/10
|
||||
f 10/22/11 23/23/11 33/20/11 20/19/11
|
||||
f 11/24/12 24/21/12 33/20/12 23/23/12
|
||||
f 9/25/13 21/26/13 34/27/13 25/28/13
|
||||
f 7/18/14 24/21/14 34/27/14 21/26/14
|
||||
f 11/24/15 25/28/15 34/27/15 24/21/15
|
||||
f 4/29/16 15/30/16 35/31/16 27/32/16
|
||||
f 15/30/17 3/33/17 26/34/17 35/31/17
|
||||
f 35/31/18 26/34/18 8/35/18 22/36/18
|
||||
f 27/32/19 35/31/19 22/36/19 9/25/19
|
||||
f 3/33/20 12/37/20 36/38/20 26/34/20
|
||||
f 1/39/21 16/40/21 36/38/21 12/37/21
|
||||
f 5/41/22 28/42/22 36/38/22 16/40/22
|
||||
f 10/22/23 20/19/23 36/38/23 28/42/23
|
||||
f 7/18/24 21/26/24 36/38/24 20/19/24
|
||||
f 9/25/25 22/36/25 36/38/25 21/26/25
|
||||
f 8/35/18 26/34/18 36/38/18 22/36/18
|
||||
f 6/43/26 19/44/26 37/45/26 29/46/26
|
||||
f 19/44/27 4/29/27 27/32/27 37/45/27
|
||||
f 37/45/28 27/32/28 9/25/28 25/28/28
|
||||
f 29/46/29 37/45/29 25/28/29 11/24/29
|
||||
f 5/41/30 17/47/30 38/48/30 28/42/30
|
||||
f 17/47/31 6/43/31 29/46/31 38/48/31
|
||||
f 38/48/32 29/46/32 11/24/32 23/23/32
|
||||
f 28/42/33 38/48/33 23/23/33 10/22/33
|
||||
BIN
modules/ufbx/data/blender_293_ngon_subsurf_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_ngon_subsurf_7400_binary.fbx
Normal file
Binary file not shown.
8064
modules/ufbx/data/blender_293_suzanne_subsurf.obj
Normal file
8064
modules/ufbx/data/blender_293_suzanne_subsurf.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_293_suzanne_subsurf_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_suzanne_subsurf_7400_binary.fbx
Normal file
Binary file not shown.
32244
modules/ufbx/data/blender_293_suzanne_subsurf_uv.obj
Normal file
32244
modules/ufbx/data/blender_293_suzanne_subsurf_uv.obj
Normal file
File diff suppressed because it is too large
Load Diff
BIN
modules/ufbx/data/blender_293_suzanne_subsurf_uv_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_suzanne_subsurf_uv_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_293_textures_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293_textures_7400_binary.fbx
Normal file
Binary file not shown.
71
modules/ufbx/data/blender_293x_nonmanifold_subsurf.obj
Normal file
71
modules/ufbx/data/blender_293x_nonmanifold_subsurf.obj
Normal file
@@ -0,0 +1,71 @@
|
||||
# ufbx:line_faces
|
||||
# Blender v2.93.1 OBJ File: ''
|
||||
# www.blender.org
|
||||
g Plane
|
||||
v -0.750000 0.000000 0.875000
|
||||
v 0.750000 0.000000 0.875000
|
||||
v -0.750000 0.000000 -0.875000
|
||||
v 0.750000 0.000000 -0.875000
|
||||
v -1.000000 0.000000 0.000000
|
||||
v 1.000000 0.000000 0.000000
|
||||
v -0.750000 0.875000 0.000000
|
||||
v 0.750000 0.875000 0.000000
|
||||
v 1.000000 -1.000000 0.000000
|
||||
v -1.000000 0.000000 0.500000
|
||||
v 0.000000 0.000000 1.000000
|
||||
v 1.000000 0.000000 -0.500000
|
||||
v 0.000000 0.000000 -1.000000
|
||||
v -1.000000 0.000000 -0.500000
|
||||
v 1.000000 0.000000 0.500000
|
||||
v 0.000000 0.000000 0.000000
|
||||
v 0.000000 1.000000 0.000000
|
||||
v 1.000000 0.500000 0.000000
|
||||
v -1.000000 0.500000 0.000000
|
||||
v 1.000000 -0.500000 0.000000
|
||||
v 0.000000 0.000000 -0.500000
|
||||
v 0.000000 0.000000 0.500000
|
||||
v 0.000000 0.500000 0.000000
|
||||
vt 0.666243 0.666525
|
||||
vt 0.333192 0.666525
|
||||
vt 0.333192 0.500000
|
||||
vt 0.666243 0.500000
|
||||
vt 0.000141 0.666525
|
||||
vt 0.000141 0.500000
|
||||
vt 0.000141 0.333475
|
||||
vt 0.333192 0.333475
|
||||
vt 0.666243 0.333475
|
||||
vt 0.666243 0.333192
|
||||
vt 0.333192 0.333192
|
||||
vt 0.333192 0.166667
|
||||
vt 0.666243 0.166667
|
||||
vt 0.000141 0.333192
|
||||
vt 0.000141 0.166667
|
||||
vt 0.000141 0.000141
|
||||
vt 0.333192 0.000141
|
||||
vt 0.666243 0.000141
|
||||
vt 0.666243 0.999859
|
||||
vt 0.333192 0.999859
|
||||
vt 0.333192 0.833333
|
||||
vt 0.666243 0.833333
|
||||
vt 0.000141 0.999859
|
||||
vt 0.000141 0.833333
|
||||
vt 0.000141 0.666808
|
||||
vt 0.333192 0.666808
|
||||
vt 0.666243 0.666808
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
s off
|
||||
f 5/1/1 16/2/1 21/3/1 14/4/1
|
||||
f 16/2/1 6/5/1 12/6/1 21/3/1
|
||||
f 21/3/1 12/6/1 4/7/1 13/8/1
|
||||
f 14/4/1 21/3/1 13/8/1 3/9/1
|
||||
f 1/10/1 11/11/1 22/12/1 10/13/1
|
||||
f 11/11/1 2/14/1 15/15/1 22/12/1
|
||||
f 22/12/1 15/15/1 6/16/1 16/17/1
|
||||
f 10/13/1 22/12/1 16/17/1 5/18/1
|
||||
f 5/19/2 16/20/2 23/21/2 19/22/2
|
||||
f 16/20/2 6/23/2 18/24/2 23/21/2
|
||||
f 23/21/2 18/24/2 8/25/2 17/26/2
|
||||
f 19/22/2 23/21/2 17/26/2 7/27/2
|
||||
l 6 20
|
||||
l 20 9
|
||||
Binary file not shown.
52
modules/ufbx/data/blender_293x_subsurf_boundary.obj
Normal file
52
modules/ufbx/data/blender_293x_subsurf_boundary.obj
Normal file
@@ -0,0 +1,52 @@
|
||||
# Blender v2.93.1 OBJ File: ''
|
||||
# www.blender.org
|
||||
g All_Plane
|
||||
v 0.750000 0.000000 0.750000
|
||||
v 2.250000 0.000000 0.750000
|
||||
v 0.750000 0.000000 -0.750000
|
||||
v 2.250000 0.000000 -0.750000
|
||||
v 0.500000 0.000000 0.000000
|
||||
v 1.500000 0.000000 1.000000
|
||||
v 2.500000 0.000000 0.000000
|
||||
v 1.500000 0.000000 -1.000000
|
||||
v 1.500000 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.000000 0.500000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 1/1/1 6/2/1 9/3/1 5/4/1
|
||||
f 6/2/1 2/5/1 7/6/1 9/3/1
|
||||
f 9/3/1 7/6/1 4/7/1 8/8/1
|
||||
f 5/4/1 9/3/1 8/8/1 3/9/1
|
||||
g KeepCorners_Plane.001
|
||||
v -2.500000 0.000000 1.000000
|
||||
v -0.500000 0.000000 1.000000
|
||||
v -2.500000 0.000000 -1.000000
|
||||
v -0.500000 0.000000 -1.000000
|
||||
v -2.500000 0.000000 0.000000
|
||||
v -1.500000 0.000000 1.000000
|
||||
v -0.500000 0.000000 0.000000
|
||||
v -1.500000 0.000000 -1.000000
|
||||
v -1.500000 0.000000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.000000 0.500000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 10/10/2 15/11/2 18/12/2 14/13/2
|
||||
f 15/11/2 11/14/2 16/15/2 18/12/2
|
||||
f 18/12/2 16/15/2 13/16/2 17/17/2
|
||||
f 14/13/2 18/12/2 17/17/2 12/18/2
|
||||
BIN
modules/ufbx/data/blender_293x_subsurf_boundary_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_293x_subsurf_boundary_7400_binary.fbx
Normal file
Binary file not shown.
Binary file not shown.
BIN
modules/ufbx/data/blender_300_ngon_abstract_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_300_ngon_abstract_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_300_ngon_big_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_300_ngon_big_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_300_ngon_e_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_300_ngon_e_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_300_ngon_intersection_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_300_ngon_intersection_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_300_ngon_irregular_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_300_ngon_irregular_7400_binary.fbx
Normal file
Binary file not shown.
414
modules/ufbx/data/blender_312x_vertex_crease.obj
Normal file
414
modules/ufbx/data/blender_312x_vertex_crease.obj
Normal file
@@ -0,0 +1,414 @@
|
||||
# ufbx:bad_normals
|
||||
# Blender v3.1.2 OBJ File: 'vertex_crease.blend'
|
||||
# www.blender.org
|
||||
g Cube_Cube.001
|
||||
v -0.950000 -1.000000 0.950000
|
||||
v -0.877778 0.877778 0.877778
|
||||
v -0.856250 -1.000000 -0.856250
|
||||
v -0.675926 0.675926 -0.675926
|
||||
v 1.000000 -1.000000 1.000000
|
||||
v 1.000000 1.000000 1.000000
|
||||
v 0.762500 -1.000000 -0.762500
|
||||
v 0.583333 0.583333 -0.583333
|
||||
v -0.987500 -1.000000 -0.487500
|
||||
v -0.996875 -1.000000 0.003125
|
||||
v -1.000000 -1.000000 0.500000
|
||||
v -0.781250 -0.500000 0.781250
|
||||
v -0.730469 -0.007812 0.730469
|
||||
v -0.765625 0.468750 0.765625
|
||||
v -0.765625 0.765625 0.468750
|
||||
v -0.722396 0.722396 0.004167
|
||||
v -0.748958 0.748958 -0.452083
|
||||
v -0.748958 0.452083 -0.748958
|
||||
v -0.723958 -0.011979 -0.723958
|
||||
v -0.771875 -0.500000 -0.771875
|
||||
v 0.425000 -1.000000 -0.925000
|
||||
v -0.015625 -1.000000 -0.978125
|
||||
v -0.487500 -1.000000 -0.987500
|
||||
v -0.452083 0.748958 -0.748958
|
||||
v -0.020833 0.697396 -0.697396
|
||||
v 0.368750 0.665625 -0.665625
|
||||
v 0.665625 0.368750 -0.665625
|
||||
v 0.691406 -0.032812 -0.691406
|
||||
v 0.725000 -0.500000 -0.725000
|
||||
v 1.000000 -1.000000 0.500000
|
||||
v 0.981250 -1.000000 0.018750
|
||||
v 0.925000 -1.000000 -0.425000
|
||||
v 0.665625 0.665625 -0.368750
|
||||
v 0.701563 0.701563 0.025000
|
||||
v 0.765625 0.765625 0.468750
|
||||
v 0.765625 0.468750 0.765625
|
||||
v 0.730469 -0.007812 0.730469
|
||||
v 0.781250 -0.500000 0.781250
|
||||
v -0.500000 -1.000000 1.000000
|
||||
v 0.000000 -1.000000 1.000000
|
||||
v 0.500000 -1.000000 1.000000
|
||||
v 0.468750 0.765625 0.765625
|
||||
v 0.000000 0.726562 0.726562
|
||||
v -0.468750 0.765625 0.765625
|
||||
v -0.937500 -0.500000 0.437500
|
||||
v -0.890625 -0.015625 0.406250
|
||||
v -0.875000 0.437500 0.437500
|
||||
v -0.967187 -0.500000 0.001562
|
||||
v -0.928602 -0.024132 0.001085
|
||||
v -0.872222 0.403472 0.002778
|
||||
v -0.931250 -0.500000 -0.431250
|
||||
v -0.886285 -0.018403 -0.401910
|
||||
v -0.863889 0.426389 -0.426389
|
||||
v -0.431250 -0.500000 -0.931250
|
||||
v -0.401910 -0.018403 -0.886285
|
||||
v -0.426389 0.426389 -0.863889
|
||||
v -0.007813 -0.500000 -0.957813
|
||||
v -0.005425 -0.028299 -0.922092
|
||||
v -0.013889 0.386806 -0.855556
|
||||
v 0.400000 -0.500000 -0.900000
|
||||
v 0.380208 -0.032292 -0.864583
|
||||
v 0.370833 0.370833 -0.808333
|
||||
v 0.900000 -0.500000 -0.400000
|
||||
v 0.864583 -0.032292 -0.380208
|
||||
v 0.808333 0.370833 -0.370833
|
||||
v 0.959375 -0.500000 0.009375
|
||||
v 0.923177 -0.027604 0.006510
|
||||
v 0.858333 0.389583 0.016667
|
||||
v 0.937500 -0.500000 0.437500
|
||||
v 0.890625 -0.015625 0.406250
|
||||
v 0.875000 0.437500 0.437500
|
||||
v 0.437500 -0.500000 0.937500
|
||||
v 0.406250 -0.015625 0.890625
|
||||
v 0.437500 0.437500 0.875000
|
||||
v 0.000000 -0.500000 0.968750
|
||||
v 0.000000 -0.023438 0.929688
|
||||
v 0.000000 0.406250 0.875000
|
||||
v -0.437500 -0.500000 0.937500
|
||||
v -0.406250 -0.015625 0.890625
|
||||
v -0.437500 0.437500 0.875000
|
||||
v -0.493750 -1.000000 -0.493750
|
||||
v -0.007812 -1.000000 -0.489063
|
||||
v 0.462500 -1.000000 -0.462500
|
||||
v -0.498437 -1.000000 0.001562
|
||||
v -0.001953 -1.000000 0.002734
|
||||
v 0.490625 -1.000000 0.009375
|
||||
v -0.500000 -1.000000 0.500000
|
||||
v 0.000000 -1.000000 0.500000
|
||||
v 0.500000 -1.000000 0.500000
|
||||
v 0.370833 0.808333 -0.370833
|
||||
v -0.013889 0.855556 -0.386806
|
||||
v -0.426389 0.863889 -0.426389
|
||||
v 0.389583 0.858333 0.016667
|
||||
v -0.003472 0.901389 0.004861
|
||||
v -0.403472 0.872222 0.002778
|
||||
v 0.437500 0.875000 0.437500
|
||||
v 0.000000 0.875000 0.406250
|
||||
v -0.437500 0.875000 0.437500
|
||||
vt 0.437500 0.062500
|
||||
vt 0.500000 0.062500
|
||||
vt 0.500000 0.125000
|
||||
vt 0.437500 0.125000
|
||||
vt 0.562500 0.062500
|
||||
vt 0.562500 0.125000
|
||||
vt 0.500000 0.187500
|
||||
vt 0.437500 0.187500
|
||||
vt 0.562500 0.187500
|
||||
vt 0.381250 0.006250
|
||||
vt 0.437500 0.000000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.500000 0.000000
|
||||
vt 0.562500 0.000000
|
||||
vt 0.618750 0.006250
|
||||
vt 0.625000 0.062500
|
||||
vt 0.625000 0.125000
|
||||
vt 0.625000 0.187500
|
||||
vt 0.625000 0.250000
|
||||
vt 0.562500 0.250000
|
||||
vt 0.500000 0.250000
|
||||
vt 0.437500 0.250000
|
||||
vt 0.375000 0.187500
|
||||
vt 0.375000 0.250000
|
||||
vt 0.375000 0.125000
|
||||
vt 0.437500 0.312500
|
||||
vt 0.500000 0.312500
|
||||
vt 0.500293 0.374707
|
||||
vt 0.437500 0.375000
|
||||
vt 0.562500 0.312500
|
||||
vt 0.563672 0.373828
|
||||
vt 0.501172 0.436328
|
||||
vt 0.437500 0.437500
|
||||
vt 0.567187 0.432813
|
||||
vt 0.375000 0.312500
|
||||
vt 0.625000 0.312500
|
||||
vt 0.627344 0.372656
|
||||
vt 0.634375 0.428125
|
||||
vt 0.654688 0.470313
|
||||
vt 0.569531 0.492969
|
||||
vt 0.501758 0.498242
|
||||
vt 0.437500 0.500000
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.500000
|
||||
vt 0.375000 0.375000
|
||||
vt 0.437500 0.562500
|
||||
vt 0.501172 0.561328
|
||||
vt 0.500293 0.624707
|
||||
vt 0.437500 0.625000
|
||||
vt 0.567187 0.557812
|
||||
vt 0.563672 0.623828
|
||||
vt 0.500000 0.687500
|
||||
vt 0.437500 0.687500
|
||||
vt 0.562500 0.687500
|
||||
vt 0.375000 0.562500
|
||||
vt 0.632031 0.555469
|
||||
vt 0.626758 0.623242
|
||||
vt 0.625000 0.687500
|
||||
vt 0.625000 0.750000
|
||||
vt 0.562500 0.750000
|
||||
vt 0.500000 0.750000
|
||||
vt 0.437500 0.750000
|
||||
vt 0.375000 0.687500
|
||||
vt 0.375000 0.750000
|
||||
vt 0.375000 0.625000
|
||||
vt 0.437500 0.812500
|
||||
vt 0.500000 0.812500
|
||||
vt 0.500000 0.875000
|
||||
vt 0.437500 0.875000
|
||||
vt 0.562500 0.812500
|
||||
vt 0.562500 0.875000
|
||||
vt 0.500000 0.937500
|
||||
vt 0.437500 0.937500
|
||||
vt 0.562500 0.937500
|
||||
vt 0.375000 0.812500
|
||||
vt 0.625000 0.812500
|
||||
vt 0.625000 0.875000
|
||||
vt 0.625000 0.937500
|
||||
vt 0.618750 0.993750
|
||||
vt 0.562500 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.437500 1.000000
|
||||
vt 0.375000 0.937500
|
||||
vt 0.381250 0.993750
|
||||
vt 0.375000 0.875000
|
||||
vt 0.188281 0.563281
|
||||
vt 0.250195 0.562695
|
||||
vt 0.250049 0.625049
|
||||
vt 0.187695 0.625195
|
||||
vt 0.312500 0.562500
|
||||
vt 0.312500 0.625000
|
||||
vt 0.250000 0.687500
|
||||
vt 0.187500 0.687500
|
||||
vt 0.312500 0.687500
|
||||
vt 0.142969 0.517969
|
||||
vt 0.189062 0.501562
|
||||
vt 0.126562 0.564063
|
||||
vt 0.250391 0.500391
|
||||
vt 0.312500 0.500000
|
||||
vt 0.312500 0.750000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.187500 0.750000
|
||||
vt 0.125000 0.687500
|
||||
vt 0.131250 0.743750
|
||||
vt 0.125391 0.625391
|
||||
vt 0.692187 0.557813
|
||||
vt 0.750977 0.561523
|
||||
vt 0.750244 0.624756
|
||||
vt 0.688672 0.623828
|
||||
vt 0.811719 0.563281
|
||||
vt 0.812305 0.625195
|
||||
vt 0.750000 0.687500
|
||||
vt 0.687500 0.687500
|
||||
vt 0.812500 0.687500
|
||||
vt 0.696875 0.490625
|
||||
vt 0.751953 0.498047
|
||||
vt 0.810937 0.501562
|
||||
vt 0.857031 0.517969
|
||||
vt 0.873437 0.564063
|
||||
vt 0.874609 0.625391
|
||||
vt 0.875000 0.687500
|
||||
vt 0.868750 0.743750
|
||||
vt 0.812500 0.750000
|
||||
vt 0.750000 0.750000
|
||||
vt 0.687500 0.750000
|
||||
vn -0.9700 0.1459 0.1945
|
||||
vn -0.9711 0.0658 0.2294
|
||||
vn -0.9961 0.0874 -0.0083
|
||||
vn -0.9958 0.0907 -0.0085
|
||||
vn -0.9889 0.1131 0.0967
|
||||
vn -0.9735 0.2282 -0.0143
|
||||
vn -0.9672 0.0713 -0.2437
|
||||
vn -0.9637 0.1207 -0.2380
|
||||
vn -0.9621 0.1965 -0.1890
|
||||
vn -0.6313 -0.4505 0.6313
|
||||
vn -0.6890 0.2250 0.6890
|
||||
vn -0.7719 -0.6252 0.1150
|
||||
vn -0.7065 0.0414 0.7065
|
||||
vn -0.7068 -0.0279 0.7068
|
||||
vn -0.5774 0.5774 0.5774
|
||||
vn -0.7064 0.7064 -0.0458
|
||||
vn -0.7069 0.7069 -0.0217
|
||||
vn -0.6978 0.6978 -0.1616
|
||||
vn -0.5774 0.5774 -0.5774
|
||||
vn -0.6969 0.1696 -0.6969
|
||||
vn -0.7062 0.0509 -0.7062
|
||||
vn -0.6978 0.1621 -0.6978
|
||||
vn -0.7637 -0.6208 -0.1769
|
||||
vn -0.5940 -0.5425 -0.5940
|
||||
vn -0.7397 -0.6729 -0.0075
|
||||
vn -0.2261 0.1174 -0.9670
|
||||
vn -0.2316 0.0744 -0.9700
|
||||
vn 0.0453 0.1044 -0.9935
|
||||
vn 0.0453 0.0724 -0.9963
|
||||
vn -0.1633 0.2072 -0.9646
|
||||
vn 0.0823 0.2732 -0.9584
|
||||
vn 0.3075 0.1086 -0.9453
|
||||
vn 0.3048 0.0759 -0.9494
|
||||
vn 0.2878 0.2835 -0.9148
|
||||
vn -0.1666 -0.6185 -0.7679
|
||||
vn -0.1278 0.7013 -0.7013
|
||||
vn 0.1198 0.7020 -0.7020
|
||||
vn 0.2762 0.6796 -0.6796
|
||||
vn 0.5774 0.5774 -0.5774
|
||||
vn 0.6806 0.2714 -0.6806
|
||||
vn 0.7032 0.1052 -0.7032
|
||||
vn 0.7041 0.0918 -0.7041
|
||||
vn 0.2282 -0.6475 -0.7271
|
||||
vn 0.5631 -0.6048 -0.5631
|
||||
vn 0.0403 -0.6736 -0.7380
|
||||
vn 0.9488 0.0764 -0.3066
|
||||
vn 0.9448 0.1082 -0.3094
|
||||
vn 0.9933 0.1020 -0.0536
|
||||
vn 0.9957 0.0750 -0.0537
|
||||
vn 0.9141 0.2818 -0.2916
|
||||
vn 0.9590 0.2663 -0.0964
|
||||
vn 0.9733 0.0684 0.2191
|
||||
vn 0.9739 0.1529 0.1677
|
||||
vn 0.9938 0.0988 0.0515
|
||||
vn 0.7263 -0.6479 -0.2297
|
||||
vn 0.6785 0.6785 -0.2818
|
||||
vn 0.7001 0.7001 -0.1408
|
||||
vn 0.6981 0.6981 -0.1593
|
||||
vn 0.5774 0.5774 0.5774
|
||||
vn 0.7029 -0.1092 0.7029
|
||||
vn 0.7065 0.0414 0.7065
|
||||
vn 0.6837 0.2551 0.6837
|
||||
vn 0.7740 -0.6286 0.0764
|
||||
vn 0.6459 -0.4069 0.6459
|
||||
vn 0.7377 -0.6735 -0.0478
|
||||
vn 0.1799 0.1563 0.9712
|
||||
vn 0.2313 0.0653 0.9707
|
||||
vn 0.0000 0.0849 0.9964
|
||||
vn 0.0000 0.0936 0.9956
|
||||
vn 0.0783 0.0890 0.9929
|
||||
vn 0.0000 0.2212 0.9752
|
||||
vn -0.2313 0.0653 0.9707
|
||||
vn -0.1965 0.1464 0.9695
|
||||
vn -0.1009 0.1115 0.9886
|
||||
vn 0.0870 -0.6312 0.7707
|
||||
vn -0.1221 0.7018 0.7018
|
||||
vn 0.0000 0.7071 0.7071
|
||||
vn 0.0401 0.7065 0.7065
|
||||
vn -0.1167 -0.6256 0.7714
|
||||
vn 0.0000 -0.6728 0.7399
|
||||
vn -0.0000 -1.0000 0.0000
|
||||
vn 0.2764 0.9187 -0.2820
|
||||
vn 0.0792 0.9630 -0.2578
|
||||
vn 0.0293 0.9988 -0.0396
|
||||
vn 0.2488 0.9640 -0.0936
|
||||
vn -0.1579 0.9681 -0.1944
|
||||
vn -0.1996 0.9797 -0.0193
|
||||
vn 0.0048 0.9817 0.1904
|
||||
vn 0.0832 0.9955 0.0465
|
||||
vn -0.0960 0.9913 0.0902
|
||||
s 1
|
||||
f 45/1/1 46/2/2 49/3/3 48/4/4
|
||||
f 46/2/2 47/5/5 50/6/6 49/3/3
|
||||
f 48/4/4 49/3/3 52/7/7 51/8/8
|
||||
f 49/3/3 50/6/6 53/9/9 52/7/7
|
||||
f 1/10/10 12/11/11 45/1/1 11/12/12
|
||||
f 12/11/11 13/13/13 46/2/2 45/1/1
|
||||
f 13/13/13 14/14/14 47/5/5 46/2/2
|
||||
f 14/14/14 2/15/15 15/16/16 47/5/5
|
||||
f 47/5/5 15/16/16 16/17/17 50/6/6
|
||||
f 50/6/6 16/17/17 17/18/18 53/9/9
|
||||
f 53/9/9 17/18/18 4/19/19 18/20/20
|
||||
f 52/7/7 53/9/9 18/20/20 19/21/21
|
||||
f 51/8/8 52/7/7 19/21/21 20/22/22
|
||||
f 9/23/23 51/8/8 20/22/22 3/24/24
|
||||
f 10/25/25 48/4/4 51/8/8 9/23/23
|
||||
f 11/12/12 45/1/1 48/4/4 10/25/25
|
||||
f 54/26/26 55/27/27 58/28/28 57/29/29
|
||||
f 55/27/27 56/30/30 59/31/31 58/28/28
|
||||
f 57/29/29 58/28/28 61/32/32 60/33/33
|
||||
f 58/28/28 59/31/31 62/34/34 61/32/32
|
||||
f 3/24/24 20/22/22 54/26/26 23/35/35
|
||||
f 20/22/22 19/21/21 55/27/27 54/26/26
|
||||
f 19/21/21 18/20/20 56/30/30 55/27/27
|
||||
f 18/20/20 4/19/19 24/36/36 56/30/30
|
||||
f 56/30/30 24/36/36 25/37/37 59/31/31
|
||||
f 59/31/31 25/37/37 26/38/38 62/34/34
|
||||
f 62/34/34 26/38/38 8/39/39 27/40/40
|
||||
f 61/32/32 62/34/34 27/40/40 28/41/41
|
||||
f 60/33/33 61/32/32 28/41/41 29/42/42
|
||||
f 21/43/43 60/33/33 29/42/42 7/44/44
|
||||
f 22/45/45 57/29/29 60/33/33 21/43/43
|
||||
f 23/35/35 54/26/26 57/29/29 22/45/45
|
||||
f 63/46/46 64/47/47 67/48/48 66/49/49
|
||||
f 64/47/47 65/50/50 68/51/51 67/48/48
|
||||
f 66/49/49 67/48/48 70/52/52 69/53/53
|
||||
f 67/48/48 68/51/51 71/54/54 70/52/52
|
||||
f 7/44/44 29/42/42 63/46/46 32/55/55
|
||||
f 29/42/42 28/41/41 64/47/47 63/46/46
|
||||
f 28/41/41 27/40/40 65/50/50 64/47/47
|
||||
f 27/40/40 8/39/39 33/56/56 65/50/50
|
||||
f 65/50/50 33/56/56 34/57/57 68/51/51
|
||||
f 68/51/51 34/57/57 35/58/58 71/54/54
|
||||
f 71/54/54 35/58/58 6/59/59 36/60/60
|
||||
f 70/52/52 71/54/54 36/60/60 37/61/61
|
||||
f 69/53/53 70/52/52 37/61/61 38/62/62
|
||||
f 30/63/63 69/53/53 38/62/62 5/64/64
|
||||
f 31/65/65 66/49/49 69/53/53 30/63/63
|
||||
f 32/55/55 63/46/46 66/49/49 31/65/65
|
||||
f 72/66/66 73/67/67 76/68/68 75/69/69
|
||||
f 73/67/67 74/70/70 77/71/71 76/68/68
|
||||
f 75/69/69 76/68/68 79/72/72 78/73/73
|
||||
f 76/68/68 77/71/71 80/74/74 79/72/72
|
||||
f 5/64/64 38/62/62 72/66/66 41/75/75
|
||||
f 38/62/62 37/61/61 73/67/67 72/66/66
|
||||
f 37/61/61 36/60/60 74/70/70 73/67/67
|
||||
f 36/60/60 6/59/59 42/76/76 74/70/70
|
||||
f 74/70/70 42/76/76 43/77/77 77/71/71
|
||||
f 77/71/71 43/77/77 44/78/78 80/74/74
|
||||
f 80/74/74 44/78/78 2/79/15 14/80/14
|
||||
f 79/72/72 80/74/74 14/80/14 13/81/13
|
||||
f 78/73/73 79/72/72 13/81/13 12/82/11
|
||||
f 39/83/79 78/73/73 12/82/11 1/84/10
|
||||
f 40/85/80 75/69/69 78/73/73 39/83/79
|
||||
f 41/75/75 72/66/66 75/69/69 40/85/80
|
||||
f 81/86/81 82/87/81 85/88/81 84/89/81
|
||||
f 82/87/81 83/90/81 86/91/81 85/88/81
|
||||
f 84/89/81 85/88/81 88/92/81 87/93/81
|
||||
f 85/88/81 86/91/81 89/94/81 88/92/81
|
||||
f 3/95/24 23/96/35 81/86/81 9/97/23
|
||||
f 23/96/35 22/98/45 82/87/81 81/86/81
|
||||
f 22/98/45 21/99/43 83/90/81 82/87/81
|
||||
f 21/99/43 7/44/44 32/55/55 83/90/81
|
||||
f 83/90/81 32/55/55 31/65/65 86/91/81
|
||||
f 86/91/81 31/65/65 30/63/63 89/94/81
|
||||
f 89/94/81 30/63/63 5/64/64 41/100/75
|
||||
f 88/92/81 89/94/81 41/100/75 40/101/80
|
||||
f 87/93/81 88/92/81 40/101/80 39/102/79
|
||||
f 11/103/12 87/93/81 39/102/79 1/104/10
|
||||
f 10/105/25 84/89/81 87/93/81 11/103/12
|
||||
f 9/97/23 81/86/81 84/89/81 10/105/25
|
||||
f 90/106/82 91/107/83 94/108/84 93/109/85
|
||||
f 91/107/83 92/110/86 95/111/87 94/108/84
|
||||
f 93/109/85 94/108/84 97/112/88 96/113/89
|
||||
f 94/108/84 95/111/87 98/114/90 97/112/88
|
||||
f 8/39/39 26/115/38 90/106/82 33/56/56
|
||||
f 26/115/38 25/116/37 91/107/83 90/106/82
|
||||
f 25/116/37 24/117/36 92/110/86 91/107/83
|
||||
f 24/117/36 4/118/19 17/119/18 92/110/86
|
||||
f 92/110/86 17/119/18 16/120/17 95/111/87
|
||||
f 95/111/87 16/120/17 15/121/16 98/114/90
|
||||
f 98/114/90 15/121/16 2/122/15 44/123/78
|
||||
f 97/112/88 98/114/90 44/123/78 43/124/77
|
||||
f 96/113/89 97/112/88 43/124/77 42/125/76
|
||||
f 35/58/58 96/113/89 42/125/76 6/59/59
|
||||
f 34/57/57 93/109/85 96/113/89 35/58/58
|
||||
f 33/56/56 90/106/82 93/109/85 34/57/57
|
||||
BIN
modules/ufbx/data/blender_312x_vertex_crease_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_312x_vertex_crease_7400_binary.fbx
Normal file
Binary file not shown.
12
modules/ufbx/data/blender_331_space texture_0_mtl.mtl
Normal file
12
modules/ufbx/data/blender_331_space texture_0_mtl.mtl
Normal file
@@ -0,0 +1,12 @@
|
||||
# Blender 3.3.1 MTL File: 'None'
|
||||
# www.blender.org
|
||||
|
||||
newmtl Material
|
||||
Ns 250.000000
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.450000
|
||||
d 1.000000
|
||||
illum 2
|
||||
map_Kd space dir/space tex.png
|
||||
40
modules/ufbx/data/blender_331_space texture_0_obj.obj
Normal file
40
modules/ufbx/data/blender_331_space texture_0_obj.obj
Normal file
@@ -0,0 +1,40 @@
|
||||
# Blender 3.3.1
|
||||
# www.blender.org
|
||||
mtllib blender_331_space texture_0_mtl.mtl
|
||||
o Cube
|
||||
v 1.000000 1.000000 -1.000000
|
||||
v 1.000000 -1.000000 -1.000000
|
||||
v 1.000000 1.000000 1.000000
|
||||
v 1.000000 -1.000000 1.000000
|
||||
v -1.000000 1.000000 -1.000000
|
||||
v -1.000000 -1.000000 -1.000000
|
||||
v -1.000000 1.000000 1.000000
|
||||
v -1.000000 -1.000000 1.000000
|
||||
vn -0.0000 1.0000 -0.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -1.0000 -0.0000
|
||||
vn 1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vt 0.625000 0.500000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.625000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.625000 0.250000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.375000 0.250000
|
||||
vt 0.875000 0.750000
|
||||
vt 0.625000 1.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.375000 0.000000
|
||||
vt 0.125000 0.750000
|
||||
s 0
|
||||
usemtl Material
|
||||
f 1/1/1 5/5/1 7/9/1 3/3/1
|
||||
f 4/4/2 3/3/2 7/10/2 8/12/2
|
||||
f 8/13/3 7/11/3 5/6/3 6/8/3
|
||||
f 6/7/4 2/2/4 4/4/4 8/14/4
|
||||
f 2/2/5 1/1/5 3/3/5 4/4/5
|
||||
f 6/8/6 5/6/6 1/1/6 2/2/6
|
||||
BIN
modules/ufbx/data/blender_340_default_unscaled_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_340_default_unscaled_7400_binary.fbx
Normal file
Binary file not shown.
23
modules/ufbx/data/blender_340_line_point_0_obj.obj
Normal file
23
modules/ufbx/data/blender_340_line_point_0_obj.obj
Normal file
@@ -0,0 +1,23 @@
|
||||
# Blender 3.4.0
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v -1.000000 -1.000000 1.000000
|
||||
v -1.000000 1.000000 1.000000
|
||||
v -1.000000 -1.000000 -1.000000
|
||||
v -1.000000 1.000000 -1.000000
|
||||
v 1.000000 -1.000000 1.000000
|
||||
v 1.000000 1.000000 1.000000
|
||||
v 1.000000 -1.000000 -1.000000
|
||||
v 1.000000 1.000000 -1.000000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vt 0.375000 0.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.375000 0.250000
|
||||
vt 0.625000 0.250000
|
||||
s 0
|
||||
f 1/1/1 2/2/1 4/4/1 3/3/1
|
||||
l 1 5
|
||||
l 6 5
|
||||
l 7 3
|
||||
l 6 2
|
||||
l 5 7
|
||||
84
modules/ufbx/data/blender_340_y_up.obj
Normal file
84
modules/ufbx/data/blender_340_y_up.obj
Normal file
@@ -0,0 +1,84 @@
|
||||
# Blender 3.4.0
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v 1.000000 2.000000 3.000000
|
||||
v 1.000000 2.000000 1.000000
|
||||
v 1.000000 0.000000 3.000000
|
||||
v 1.000000 0.000000 1.000000
|
||||
v -1.000000 2.000000 3.000000
|
||||
v -1.000000 2.000000 1.000000
|
||||
v -1.000000 0.000000 3.000000
|
||||
v -1.000000 0.000000 1.000000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -0.0000 -1.0000 -0.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vn 1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 1.0000 -0.0000
|
||||
vt 0.625000 0.500000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.625000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.625000 0.250000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.375000 0.250000
|
||||
vt 0.875000 0.750000
|
||||
vt 0.625000 1.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.375000 0.000000
|
||||
vt 0.125000 0.750000
|
||||
s 0
|
||||
f 1/1/1 5/5/1 7/9/1 3/3/1
|
||||
f 4/4/2 3/3/2 7/10/2 8/12/2
|
||||
f 8/13/3 7/11/3 5/6/3 6/8/3
|
||||
f 6/7/4 2/2/4 4/4/4 8/14/4
|
||||
f 2/2/5 1/1/5 3/3/5 4/4/5
|
||||
f 6/8/6 5/6/6 1/1/6 2/2/6
|
||||
o Cone
|
||||
v 0.000000 2.000000 5.000000
|
||||
v -0.707107 1.707107 5.000000
|
||||
v -1.000000 1.000000 5.000000
|
||||
v -0.707107 0.292893 5.000000
|
||||
v 0.000000 0.000000 5.000000
|
||||
v 0.707107 0.292893 5.000000
|
||||
v 1.000000 1.000000 5.000000
|
||||
v 0.707107 1.707107 5.000000
|
||||
v -0.000000 1.000000 4.000000
|
||||
vn -0.0000 0.7042 0.7100
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vn -0.4979 0.4979 0.7100
|
||||
vn -0.7042 -0.0000 0.7100
|
||||
vn -0.4979 -0.4979 0.7100
|
||||
vn -0.0000 -0.7042 0.7100
|
||||
vn 0.4979 -0.4979 0.7100
|
||||
vn 0.7042 -0.0000 0.7100
|
||||
vn 0.4979 0.4979 0.7100
|
||||
vt 0.750000 0.490000
|
||||
vt 0.250000 0.490000
|
||||
vt 0.419706 0.419706
|
||||
vt 0.919706 0.419706
|
||||
vt 0.490000 0.250000
|
||||
vt 0.990000 0.250000
|
||||
vt 0.419706 0.080294
|
||||
vt 0.919706 0.080294
|
||||
vt 0.250000 0.010000
|
||||
vt 0.750000 0.010000
|
||||
vt 0.080294 0.080294
|
||||
vt 0.580294 0.080294
|
||||
vt 0.510000 0.250000
|
||||
vt 0.010000 0.250000
|
||||
vt 0.580294 0.419706
|
||||
vt 0.080294 0.419706
|
||||
vt 0.250000 0.250000
|
||||
s 1
|
||||
f 9/16/7 17/31/8 10/17/9
|
||||
f 10/17/9 17/31/8 11/19/10
|
||||
f 11/19/10 17/31/8 12/21/11
|
||||
f 12/21/11 17/31/8 13/23/12
|
||||
f 13/23/12 17/31/8 14/25/13
|
||||
f 14/25/13 17/31/8 15/28/14
|
||||
f 9/15/7 10/18/9 11/20/10 12/22/11 13/24/12 14/26/13 15/27/14 16/29/15
|
||||
f 15/28/14 17/31/8 16/30/15
|
||||
f 16/30/15 17/31/8 9/16/7
|
||||
BIN
modules/ufbx/data/blender_340_y_up_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_340_y_up_7400_binary.fbx
Normal file
Binary file not shown.
38
modules/ufbx/data/blender_340_z_up.obj
Normal file
38
modules/ufbx/data/blender_340_z_up.obj
Normal file
@@ -0,0 +1,38 @@
|
||||
# Blender 3.4.0
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v 1.000000 3.000000 -2.000000
|
||||
v 1.000000 1.000000 -2.000000
|
||||
v 1.000000 3.000000 0.000000
|
||||
v 1.000000 1.000000 0.000000
|
||||
v -1.000000 3.000000 -2.000000
|
||||
v -1.000000 1.000000 -2.000000
|
||||
v -1.000000 3.000000 0.000000
|
||||
v -1.000000 1.000000 0.000000
|
||||
vn -0.0000 1.0000 -0.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -1.0000 -0.0000
|
||||
vn 1.0000 -0.0000 -0.0000
|
||||
vn -0.0000 -0.0000 -1.0000
|
||||
vt 0.625000 0.500000
|
||||
vt 0.375000 0.500000
|
||||
vt 0.625000 0.750000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.625000 0.250000
|
||||
vt 0.125000 0.500000
|
||||
vt 0.375000 0.250000
|
||||
vt 0.875000 0.750000
|
||||
vt 0.625000 1.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.375000 0.000000
|
||||
vt 0.125000 0.750000
|
||||
s 0
|
||||
f 1/1/1 5/5/1 7/9/1 3/3/1
|
||||
f 4/4/2 3/3/2 7/10/2 8/12/2
|
||||
f 8/13/3 7/11/3 5/6/3 6/8/3
|
||||
f 6/7/4 2/2/4 4/4/4 8/14/4
|
||||
f 2/2/5 1/1/5 3/3/5 4/4/5
|
||||
f 6/8/6 5/6/6 1/1/6 2/2/6
|
||||
BIN
modules/ufbx/data/blender_340_z_up_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_340_z_up_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nxny_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nxny_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nxnz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nxnz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nxpy_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nxpy_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nxpz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nxpz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nynx_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nynx_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nynz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nynz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nypx_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nypx_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nypz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nypz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nznx_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nznx_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nzny_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nzny_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nzpx_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nzpx_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_nzpy_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_nzpy_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pxny_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pxny_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pxnz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pxnz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pxpy_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pxpy_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pxpz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pxpz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pynx_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pynx_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pynz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pynz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pypx_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pypx_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pypz_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pypz_7400_binary.fbx
Normal file
Binary file not shown.
BIN
modules/ufbx/data/blender_axes/axes_pznx_7400_binary.fbx
Normal file
BIN
modules/ufbx/data/blender_axes/axes_pznx_7400_binary.fbx
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user