Draco v1.5.4 release.

This commit is contained in:
Tom Finegan 2022-10-26 21:17:35 -07:00
parent 18ccdc7e46
commit 45149f50a6
176 changed files with 11668 additions and 3365 deletions

View File

@ -1,102 +1,107 @@
# Generated with cmake-format 0.5.1
# How wide to allow formatted cmake files
line_width = 80
# How many spaces to tab for indent
tab_size = 2
# If arglists are longer than this, break them always
max_subargs_per_line = 10
# If true, separate flow control names from their parentheses with a space
separate_ctrl_name_with_space = False
# If true, separate function names from parentheses with a space
separate_fn_name_with_space = False
# If a statement is wrapped to more than one line, than dangle the closing
# parenthesis on its own line
dangle_parens = False
# What character to use for bulleted lists
bullet_char = '*'
# What character to use as punctuation after numerals in an enumerated list
enum_char = '.'
# What style line endings to use in the output.
line_ending = u'unix'
# Format command names consistently as 'lower' or 'upper' case
command_case = u'lower'
# Format keywords consistently as 'lower' or 'upper' case
keyword_case = u'unchanged'
# Specify structure for custom cmake functions
additional_commands = {
"foo": {
"flags": [
"BAR",
"BAZ"
],
"kwargs": {
"HEADERS": "*",
"DEPENDS": "*",
"SOURCES": "*"
}
with section('parse'):
# Specify structure for custom cmake functions
additional_commands = {
'draco_add_emscripten_executable': {
'kwargs': {
'NAME': '*',
'SOURCES': '*',
'OUTPUT_NAME': '*',
'DEFINES': '*',
'INCLUDES': '*',
'COMPILE_FLAGS': '*',
'LINK_FLAGS': '*',
'OBJLIB_DEPS': '*',
'LIB_DEPS': '*',
'GLUE_PATH': '*',
'PRE_LINK_JS_SOURCES': '*',
'POST_LINK_JS_SOURCES': '*',
'FEATURES': '*',
},
'pargs': 0
},
'draco_add_executable': {
'kwargs': {
'NAME': '*',
'SOURCES': '*',
'OUTPUT_NAME': '*',
'TEST': 0,
'DEFINES': '*',
'INCLUDES': '*',
'COMPILE_FLAGS': '*',
'LINK_FLAGS': '*',
'OBJLIB_DEPS': '*',
'LIB_DEPS': '*',
},
'pargs': 0
},
'draco_add_library': {
'kwargs': {
'NAME': '*',
'TYPE': '*',
'SOURCES': '*',
'TEST': 0,
'OUTPUT_NAME': '*',
'DEFINES': '*',
'INCLUDES': '*',
'COMPILE_FLAGS': '*',
'LINK_FLAGS': '*',
'OBJLIB_DEPS': '*',
'LIB_DEPS': '*',
'PUBLIC_INCLUDES': '*',
},
'pargs': 0
},
'draco_generate_emscripten_glue': {
'kwargs': {
'INPUT_IDL': '*',
'OUTPUT_PATH': '*',
},
'pargs': 0
},
'draco_get_required_emscripten_flags': {
'kwargs': {
'FLAG_LIST_VAR_COMPILER': '*',
'FLAG_LIST_VAR_LINKER': '*',
},
'pargs': 0
},
'draco_option': {
'kwargs': {
'NAME': '*',
'HELPSTRING': '*',
'VALUE': '*',
},
'pargs': 0
},
}
}
# A list of command names which should always be wrapped
always_wrap = []
with section('format'):
# Formatting options.
# Specify the order of wrapping algorithms during successive reflow attempts
algorithm_order = [0, 1, 2, 3, 4]
# How wide to allow formatted cmake files
line_width = 80
# If true, the argument lists which are known to be sortable will be sorted
# lexicographicall
autosort = False
# How many spaces to tab for indent
tab_size = 2
# enable comment markup parsing and reflow
enable_markup = True
# If true, separate flow control names from their parentheses with a space
separate_ctrl_name_with_space = False
# If comment markup is enabled, don't reflow the first comment block in
# eachlistfile. Use this to preserve formatting of your
# copyright/licensestatements.
first_comment_is_literal = True
# If true, separate function names from parentheses with a space
separate_fn_name_with_space = False
# If comment markup is enabled, don't reflow any comment block which matchesthis
# (regex) pattern. Default is `None` (disabled).
literal_comment_pattern = None
# If a statement is wrapped to more than one line, than dangle the closing
# parenthesis on its own line.
dangle_parens = False
# Regular expression to match preformat fences in comments
# default=r'^\s*([`~]{3}[`~]*)(.*)$'
fence_pattern = u'^\\s*([`~]{3}[`~]*)(.*)$'
# Do not sort argument lists.
enable_sort = False
# Regular expression to match rulers in comments
# default=r'^\s*[^\w\s]{3}.*[^\w\s]{3}$'
ruler_pattern = u'^\\s*[^\\w\\s]{3}.*[^\\w\\s]{3}$'
# What style line endings to use in the output.
line_ending = 'unix'
# If true, emit the unicode byte-order mark (BOM) at the start of the file
emit_byteorder_mark = False
# Format command names consistently as 'lower' or 'upper' case
command_case = 'canonical'
# If a comment line starts with at least this many consecutive hash characters,
# then don't lstrip() them off. This allows for lazy hash rulers where the first
# hash char is not separated by space
hashruler_min_length = 10
# If true, then insert a space between the first hash char and remaining hash
# chars in a hash ruler, and normalize its length to fill the column
canonicalize_hashrulers = True
# Specify the encoding of the input file. Defaults to utf-8.
input_encoding = u'utf-8'
# Specify the encoding of the output file. Defaults to utf-8. Note that cmake
# only claims to support utf-8 so be careful when using anything else
output_encoding = u'utf-8'
# A dictionary containing any per-command configuration overrides. Currently
# only `command_case` is supported.
per_command = {}
# Format keywords consistently as 'lower' or 'upper' case
keyword_case = 'upper'

2
.gitattributes vendored
View File

@ -1 +1 @@
*.obj eol=lf
*.obj eol=lf

View File

@ -77,6 +77,15 @@ CMake Build Configuration
Transcoder
----------
Before attempting to build Draco with transcoding support you must run an
additional Git command to obtain the submodules:
~~~~~ bash
# Run this command from within your Draco clone.
$ git submodule update --init
# See below if you prefer to use existing versions of Draco dependencies.
~~~~~
In order to build the `draco_transcoder` target, the transcoding support needs
to be explicitly enabled when you run `cmake`, for example:
@ -90,7 +99,7 @@ built with the transcoder support may result in increased binary sizes of the
produced libraries and executables compared to the default CMake settings.
The following CMake variables can be used to configure Draco to use local
copies of third party dependencies.
copies of third party dependencies instead of git submodules.
- `DRACO_EIGEN_PATH`: this path must contain an Eigen directory that includes
the Eigen sources.
@ -99,7 +108,7 @@ copies of third party dependencies.
- `DRACO_TINYGLTF_PATH`: this path must contain tiny_gltf.h and its
dependencies.
If not specified the Draco build requires the presence of the submodules that
When not specified the Draco build requires the presence of the submodules that
are stored within `draco/third_party`.
Debugging and Optimization

File diff suppressed because it is too large Load Diff

View File

@ -14,6 +14,13 @@ delays can result in transient errors that can be difficult to diagnose when
new Draco releases are launched. To avoid the issue pin your sites to a
versioned release.
### Version 1.5.4 release:
* Using the versioned www.gstatic.com WASM and Javascript decoders continues
to be recommended. To use v1.5.4, use this URL:
* https://www.gstatic.com/draco/versioned/decoders/1.5.4/*
* Bug fixes.
* Security fixes.
### Version 1.5.3 release:
* Using the versioned www.gstatic.com WASM and Javascript decoders continues
to be recommended. To use v1.5.3, use this URL:

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_BUILD_DEFINITIONS_CMAKE_)
return()
@ -60,7 +60,7 @@ macro(draco_set_build_definitions)
# passed to libtool.
#
# We set DRACO_SOVERSION = [c-a].a.r
set(LT_CURRENT 5)
set(LT_CURRENT 6)
set(LT_REVISION 0)
set(LT_AGE 0)
math(EXPR DRACO_SOVERSION_MAJOR "${LT_CURRENT} - ${LT_AGE}")
@ -70,7 +70,7 @@ macro(draco_set_build_definitions)
unset(LT_AGE)
list(APPEND draco_include_paths "${draco_root}" "${draco_root}/src"
"${draco_build}")
"${draco_build}")
if(DRACO_ABSL)
list(APPEND draco_include_paths "${draco_root}/third_party/abseil-cpp")
@ -84,8 +84,7 @@ macro(draco_set_build_definitions)
list(APPEND draco_defines "DRACO_CMAKE=1"
"DRACO_FLAGS_SRCDIR=\"${draco_root}\""
"DRACO_FLAGS_TMPDIR=\"/tmp\"")
"DRACO_FLAGS_SRCDIR=\"${draco_root}\"" "DRACO_FLAGS_TMPDIR=\"/tmp\"")
if(MSVC OR WIN32)
list(APPEND draco_defines "_CRT_SECURE_NO_DEPRECATE=1" "NOMINMAX=1")
@ -158,13 +157,9 @@ macro(draco_set_build_definitions)
set(draco_neon_source_file_suffix "neon.cc")
set(draco_sse4_source_file_suffix "sse4.cc")
if((${CMAKE_CXX_COMPILER_ID}
STREQUAL
"GNU"
AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 5)
OR (${CMAKE_CXX_COMPILER_ID}
STREQUAL
"Clang"
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU" AND ${CMAKE_CXX_COMPILER_VERSION}
VERSION_LESS 5)
OR (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang"
AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4))
message(
WARNING "GNU/GCC < v5 or Clang/LLVM < v4, ENABLING COMPATIBILITY MODE.")
@ -173,10 +168,9 @@ macro(draco_set_build_definitions)
if(EMSCRIPTEN)
draco_check_emscripten_environment()
draco_get_required_emscripten_flags(FLAG_LIST_VAR_COMPILER
draco_base_cxx_flags
FLAG_LIST_VAR_LINKER
draco_base_exe_linker_flags)
draco_get_required_emscripten_flags(
FLAG_LIST_VAR_COMPILER draco_base_cxx_flags
FLAG_LIST_VAR_LINKER draco_base_exe_linker_flags)
endif()
draco_configure_sanitizer()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_CPU_DETECTION_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2022 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_DEPENDENCIES_CMAKE)
return()
@ -106,14 +106,16 @@ macro(draco_setup_googletest)
set(gtest_path "${draco_root}/third_party/googletest")
endif()
list(APPEND draco_test_include_paths
${draco_include_paths}
"${gtest_path}/include"
"${gtest_path}/googlemock"
"${gtest_path}/googletest/include"
"${gtest_path}/googletest")
list(
APPEND
draco_test_include_paths
${draco_include_paths}
"${gtest_path}/include"
"${gtest_path}/googlemock"
"${gtest_path}/googletest/include"
"${gtest_path}/googletest")
list(APPEND draco_gtest_all "${gtest_path}/googletest/src/gtest-all.cc")
list(APPEND draco_gtest_all "${gtest_path}/googletest/src/gtest-all.cc")
list(APPEND draco_gtest_main "${gtest_path}/googletest/src/gtest_main.cc")
endmacro()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_EMSCRIPTEN_CMAKE_)
return()
@ -58,7 +58,7 @@ macro(draco_get_required_emscripten_flags)
# what are supposedly link-only flags sent with compile commands, but then
# proceeds to produce broken code if the warnings are heeded.
list(APPEND ${em_FLAG_LIST_VAR_COMPILER}
"-Wno-unused-command-line-argument")
"-Wno-unused-command-line-argument")
list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-Wno-almost-asm")
list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "--memory-init-file" "0")
@ -71,7 +71,7 @@ macro(draco_get_required_emscripten_flags)
list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sMODULARIZE=1")
list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sFILESYSTEM=0")
list(APPEND ${em_FLAG_LIST_VAR_COMPILER}
"-sEXPORTED_FUNCTIONS=[\"_free\",\"_malloc\"]")
"-sEXPORTED_FUNCTIONS=[\"_free\",\"_malloc\"]")
list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sPRECISE_F32=1")
list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sNODEJS_CATCH_EXIT=0")
list(APPEND ${em_FLAG_LIST_VAR_COMPILER} "-sNODEJS_CATCH_REJECTION=0")
@ -105,10 +105,11 @@ macro(draco_generate_emscripten_glue)
"${glue_multi_arg_opts}" ${ARGN})
if(DRACO_VERBOSE GREATER 1)
message("--------- draco_generate_emscripten_glue -----------\n"
"glue_INPUT_IDL=${glue_INPUT_IDL}\n"
"glue_OUTPUT_PATH=${glue_OUTPUT_PATH}\n" ]
"----------------------------------------------------\n")
message(
"--------- draco_generate_emscripten_glue -----------\n"
"glue_INPUT_IDL=${glue_INPUT_IDL}\n"
"glue_OUTPUT_PATH=${glue_OUTPUT_PATH}\n"
"----------------------------------------------------\n")
endif()
if(NOT glue_INPUT_IDL OR NOT glue_OUTPUT_PATH)
@ -118,22 +119,22 @@ macro(draco_generate_emscripten_glue)
endif()
# Generate the glue source.
execute_process(COMMAND ${PYTHON_EXECUTABLE}
$ENV{EMSCRIPTEN}/tools/webidl_binder.py
${glue_INPUT_IDL} ${glue_OUTPUT_PATH})
execute_process(
COMMAND ${PYTHON_EXECUTABLE} $ENV{EMSCRIPTEN}/tools/webidl_binder.py
${glue_INPUT_IDL} ${glue_OUTPUT_PATH})
if(NOT EXISTS "${glue_OUTPUT_PATH}.cpp")
message(FATAL_ERROR "JS glue generation failed for ${glue_INPUT_IDL}.")
endif()
# Create a dependency so that it regenerated on edits.
add_custom_command(OUTPUT "${glue_OUTPUT_PATH}.cpp"
COMMAND ${PYTHON_EXECUTABLE}
$ENV{EMSCRIPTEN}/tools/webidl_binder.py
${glue_INPUT_IDL} ${glue_OUTPUT_PATH}
DEPENDS ${draco_js_dec_idl}
COMMENT "Generating ${glue_OUTPUT_PATH}.cpp."
WORKING_DIRECTORY ${draco_build}
VERBATIM)
add_custom_command(
OUTPUT "${glue_OUTPUT_PATH}.cpp"
COMMAND ${PYTHON_EXECUTABLE} $ENV{EMSCRIPTEN}/tools/webidl_binder.py
${glue_INPUT_IDL} ${glue_OUTPUT_PATH}
DEPENDS ${draco_js_dec_idl}
COMMENT "Generating ${glue_OUTPUT_PATH}.cpp."
WORKING_DIRECTORY ${draco_build}
VERBATIM)
endmacro()
# Wrapper for draco_add_executable() that handles the extra work necessary for
@ -159,8 +160,14 @@ macro(draco_add_emscripten_executable)
unset(emexe_LINK_FLAGS)
set(optional_args)
set(single_value_args NAME GLUE_PATH)
set(multi_value_args SOURCES DEFINES FEATURES INCLUDES LINK_FLAGS
PRE_LINK_JS_SOURCES POST_LINK_JS_SOURCES)
set(multi_value_args
SOURCES
DEFINES
FEATURES
INCLUDES
LINK_FLAGS
PRE_LINK_JS_SOURCES
POST_LINK_JS_SOURCES)
cmake_parse_arguments(emexe "${optional_args}" "${single_value_args}"
"${multi_value_args}" ${ARGN})
@ -175,17 +182,18 @@ macro(draco_add_emscripten_executable)
endif()
if(DRACO_VERBOSE GREATER 1)
message("--------- draco_add_emscripten_executable ---------\n"
"emexe_NAME=${emexe_NAME}\n"
"emexe_SOURCES=${emexe_SOURCES}\n"
"emexe_DEFINES=${emexe_DEFINES}\n"
"emexe_INCLUDES=${emexe_INCLUDES}\n"
"emexe_LINK_FLAGS=${emexe_LINK_FLAGS}\n"
"emexe_GLUE_PATH=${emexe_GLUE_PATH}\n"
"emexe_FEATURES=${emexe_FEATURES}\n"
"emexe_PRE_LINK_JS_SOURCES=${emexe_PRE_LINK_JS_SOURCES}\n"
"emexe_POST_LINK_JS_SOURCES=${emexe_POST_LINK_JS_SOURCES}\n"
"----------------------------------------------------\n")
message(
"--------- draco_add_emscripten_executable ---------\n"
"emexe_NAME=${emexe_NAME}\n"
"emexe_SOURCES=${emexe_SOURCES}\n"
"emexe_DEFINES=${emexe_DEFINES}\n"
"emexe_INCLUDES=${emexe_INCLUDES}\n"
"emexe_LINK_FLAGS=${emexe_LINK_FLAGS}\n"
"emexe_GLUE_PATH=${emexe_GLUE_PATH}\n"
"emexe_FEATURES=${emexe_FEATURES}\n"
"emexe_PRE_LINK_JS_SOURCES=${emexe_PRE_LINK_JS_SOURCES}\n"
"emexe_POST_LINK_JS_SOURCES=${emexe_POST_LINK_JS_SOURCES}\n"
"----------------------------------------------------\n")
endif()
# The Emscripten linker needs the C++ flags in addition to whatever has been
@ -194,31 +202,30 @@ macro(draco_add_emscripten_executable)
if(DRACO_GLTF_BITSTREAM)
# Add "_gltf" suffix to target output name.
draco_add_executable(NAME
${emexe_NAME}
OUTPUT_NAME
${emexe_NAME}_gltf
SOURCES
${emexe_SOURCES}
DEFINES
${emexe_DEFINES}
INCLUDES
${emexe_INCLUDES}
LINK_FLAGS
${emexe_LINK_FLAGS})
draco_add_executable(
NAME ${emexe_NAME}
OUTPUT_NAME ${emexe_NAME}_gltf
SOURCES ${emexe_SOURCES}
DEFINES ${emexe_DEFINES}
INCLUDES ${emexe_INCLUDES}
LINK_FLAGS ${emexe_LINK_FLAGS})
else()
draco_add_executable(NAME ${emexe_NAME} SOURCES ${emexe_SOURCES} DEFINES
${emexe_DEFINES} INCLUDES ${emexe_INCLUDES} LINK_FLAGS
${emexe_LINK_FLAGS})
draco_add_executable(
NAME ${emexe_NAME}
SOURCES ${emexe_SOURCES}
DEFINES ${emexe_DEFINES}
INCLUDES ${emexe_INCLUDES}
LINK_FLAGS ${emexe_LINK_FLAGS})
endif()
foreach(feature ${emexe_FEATURES})
draco_enable_feature(FEATURE ${feature} TARGETS ${emexe_NAME})
endforeach()
set_property(SOURCE ${emexe_SOURCES}
APPEND
PROPERTY OBJECT_DEPENDS "${emexe_GLUE_PATH}.cpp")
set_property(
SOURCE ${emexe_SOURCES}
APPEND
PROPERTY OBJECT_DEPENDS "${emexe_GLUE_PATH}.cpp")
em_link_pre_js(${emexe_NAME} ${emexe_PRE_LINK_JS_SOURCES})
em_link_post_js(${emexe_NAME} "${emexe_GLUE_PATH}.js"
${emexe_POST_LINK_JS_SOURCES})

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_FLAGS_CMAKE_)
return()
@ -38,7 +38,7 @@ macro(draco_set_compiler_flags_for_sources)
endif()
set_source_files_properties(${compiler_SOURCES} PROPERTIES COMPILE_FLAGS
${compiler_FLAGS})
${compiler_FLAGS})
if(DRACO_VERBOSE GREATER 1)
foreach(source ${compiler_SOURCES})

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_HELPERS_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_INSTALL_CMAKE_)
return()
@ -47,9 +47,8 @@ macro(draco_setup_install_target)
DESTINATION "${target_directory}")
endforeach()
install(
FILES "${draco_build}/draco/draco_features.h"
DESTINATION "${includes_path}/draco/")
install(FILES "${draco_build}/draco/draco_features.h"
DESTINATION "${includes_path}/draco/")
install(TARGETS draco_decoder DESTINATION "${bin_path}")
install(TARGETS draco_encoder DESTINATION "${bin_path}")
@ -67,9 +66,9 @@ macro(draco_setup_install_target)
LIBRARY DESTINATION "${libs_path}")
else()
install(
TARGETS draco_static
EXPORT dracoExport
DESTINATION "${libs_path}")
TARGETS draco_static
EXPORT dracoExport
DESTINATION "${libs_path}")
if(BUILD_SHARED_LIBS)
install(
@ -116,9 +115,7 @@ macro(draco_setup_install_target)
FILE draco-targets.cmake
DESTINATION "${data_path}/cmake/draco")
install(
FILES
"${draco_build}/draco-config.cmake"
"${draco_build}/draco-config-version.cmake"
DESTINATION "${data_path}/cmake/draco")
install(FILES "${draco_build}/draco-config.cmake"
"${draco_build}/draco-config-version.cmake"
DESTINATION "${data_path}/cmake/draco")
endmacro()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_INTRINSICS_CMAKE_)
return()
@ -75,17 +75,15 @@ macro(draco_process_intrinsics_sources)
unset(sse4_sources)
list(APPEND sse4_sources ${arg_SOURCES})
list(FILTER sse4_sources INCLUDE REGEX
"${draco_sse4_source_file_suffix}$")
list(FILTER sse4_sources INCLUDE REGEX "${draco_sse4_source_file_suffix}$")
if(sse4_sources)
unset(sse4_flags)
draco_get_intrinsics_flag_for_suffix(SUFFIX
${draco_sse4_source_file_suffix}
VARIABLE sse4_flags)
draco_get_intrinsics_flag_for_suffix(
SUFFIX ${draco_sse4_source_file_suffix} VARIABLE sse4_flags)
if(sse4_flags)
draco_set_compiler_flags_for_sources(SOURCES ${sse4_sources} FLAGS
${sse4_flags})
${sse4_flags})
endif()
endif()
endif()
@ -93,17 +91,15 @@ macro(draco_process_intrinsics_sources)
if(DRACO_ENABLE_NEON AND draco_have_neon)
unset(neon_sources)
list(APPEND neon_sources ${arg_SOURCES})
list(FILTER neon_sources INCLUDE REGEX
"${draco_neon_source_file_suffix}$")
list(FILTER neon_sources INCLUDE REGEX "${draco_neon_source_file_suffix}$")
if(neon_sources AND DRACO_NEON_INTRINSICS_FLAG)
unset(neon_flags)
draco_get_intrinsics_flag_for_suffix(SUFFIX
${draco_neon_source_file_suffix}
VARIABLE neon_flags)
draco_get_intrinsics_flag_for_suffix(
SUFFIX ${draco_neon_source_file_suffix} VARIABLE neon_flags)
if(neon_flags)
draco_set_compiler_flags_for_sources(SOURCES ${neon_sources} FLAGS
${neon_flags})
${neon_flags})
endif()
endif()
endif()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_OPTIONS_CMAKE_)
return()
@ -32,17 +32,22 @@ macro(draco_option)
cmake_parse_arguments(option "${optional_args}" "${single_value_args}"
"${multi_value_args}" ${ARGN})
if(NOT (option_NAME AND option_HELPSTRING AND DEFINED option_VALUE))
if(NOT
(option_NAME
AND option_HELPSTRING
AND DEFINED option_VALUE))
message(FATAL_ERROR "draco_option: NAME HELPSTRING and VALUE required.")
endif()
option(${option_NAME} ${option_HELPSTRING} ${option_VALUE})
if(DRACO_VERBOSE GREATER 2)
message("--------- draco_option ---------\n" "option_NAME=${option_NAME}\n"
"option_HELPSTRING=${option_HELPSTRING}\n"
"option_VALUE=${option_VALUE}\n"
"------------------------------------------\n")
message(
"--------- draco_option ---------\n"
"option_NAME=${option_NAME}\n"
"option_HELPSTRING=${option_HELPSTRING}\n"
"option_VALUE=${option_VALUE}\n"
"------------------------------------------\n")
endif()
list(APPEND draco_options ${option_NAME})
@ -58,37 +63,70 @@ endmacro()
# Set default options.
macro(draco_set_default_options)
draco_option(NAME DRACO_FAST HELPSTRING "Try to build faster libs." VALUE OFF)
draco_option(NAME DRACO_JS_GLUE HELPSTRING
"Enable JS Glue and JS targets when using Emscripten." VALUE ON)
draco_option(NAME DRACO_IE_COMPATIBLE HELPSTRING
"Enable support for older IE builds when using Emscripten." VALUE
OFF)
draco_option(NAME DRACO_MESH_COMPRESSION HELPSTRING "Enable mesh compression."
VALUE ON)
draco_option(NAME DRACO_POINT_CLOUD_COMPRESSION HELPSTRING
"Enable point cloud compression." VALUE ON)
draco_option(NAME DRACO_PREDICTIVE_EDGEBREAKER HELPSTRING
"Enable predictive edgebreaker." VALUE ON)
draco_option(NAME DRACO_STANDARD_EDGEBREAKER HELPSTRING
"Enable stand edgebreaker." VALUE ON)
draco_option(NAME DRACO_BACKWARDS_COMPATIBILITY HELPSTRING
"Enable backwards compatibility." VALUE ON)
draco_option(NAME DRACO_DECODER_ATTRIBUTE_DEDUPLICATION HELPSTRING
"Enable attribute deduping." VALUE OFF)
draco_option(NAME DRACO_TESTS HELPSTRING "Enables tests." VALUE OFF)
draco_option(NAME DRACO_WASM HELPSTRING "Enables WASM support." VALUE OFF)
draco_option(NAME DRACO_UNITY_PLUGIN HELPSTRING
"Build plugin library for Unity." VALUE OFF)
draco_option(NAME DRACO_ANIMATION_ENCODING HELPSTRING "Enable animation."
VALUE OFF)
draco_option(NAME DRACO_GLTF_BITSTREAM HELPSTRING
"Draco GLTF extension bitstream specified features only."
VALUE OFF)
draco_option(NAME DRACO_MAYA_PLUGIN HELPSTRING
"Build plugin library for Maya." VALUE OFF)
draco_option(NAME DRACO_TRANSCODER_SUPPORTED HELPSTRING
"Enable the Draco transcoder." VALUE OFF)
draco_option(
NAME DRACO_FAST
HELPSTRING "Try to build faster libs."
VALUE OFF)
draco_option(
NAME DRACO_JS_GLUE
HELPSTRING "Enable JS Glue and JS targets when using Emscripten."
VALUE ON)
draco_option(
NAME DRACO_IE_COMPATIBLE
HELPSTRING "Enable support for older IE builds when using Emscripten."
VALUE OFF)
draco_option(
NAME DRACO_MESH_COMPRESSION
HELPSTRING "Enable mesh compression."
VALUE ON)
draco_option(
NAME DRACO_POINT_CLOUD_COMPRESSION
HELPSTRING "Enable point cloud compression."
VALUE ON)
draco_option(
NAME DRACO_PREDICTIVE_EDGEBREAKER
HELPSTRING "Enable predictive edgebreaker."
VALUE ON)
draco_option(
NAME DRACO_STANDARD_EDGEBREAKER
HELPSTRING "Enable stand edgebreaker."
VALUE ON)
draco_option(
NAME DRACO_BACKWARDS_COMPATIBILITY
HELPSTRING "Enable backwards compatibility."
VALUE ON)
draco_option(
NAME DRACO_DECODER_ATTRIBUTE_DEDUPLICATION
HELPSTRING "Enable attribute deduping."
VALUE OFF)
draco_option(
NAME DRACO_TESTS
HELPSTRING "Enables tests."
VALUE OFF)
draco_option(
NAME DRACO_WASM
HELPSTRING "Enables WASM support."
VALUE OFF)
draco_option(
NAME DRACO_UNITY_PLUGIN
HELPSTRING "Build plugin library for Unity."
VALUE OFF)
draco_option(
NAME DRACO_ANIMATION_ENCODING
HELPSTRING "Enable animation."
VALUE OFF)
draco_option(
NAME DRACO_GLTF_BITSTREAM
HELPSTRING "Draco GLTF extension bitstream specified features only."
VALUE OFF)
draco_option(
NAME DRACO_MAYA_PLUGIN
HELPSTRING "Build plugin library for Maya."
VALUE OFF)
draco_option(
NAME DRACO_TRANSCODER_SUPPORTED
HELPSTRING "Enable the Draco transcoder."
VALUE OFF)
draco_check_deprecated_options()
endmacro()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_SANITIZER_CMAKE_)
return()
@ -19,16 +19,18 @@ set(DRACO_CMAKE_DRACO_SANITIZER_CMAKE_ 1)
# Handles the details of enabling sanitizers.
macro(draco_configure_sanitizer)
if(DRACO_SANITIZE AND NOT EMSCRIPTEN AND NOT MSVC)
if(DRACO_SANITIZE
AND NOT EMSCRIPTEN
AND NOT MSVC)
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(DRACO_SANITIZE MATCHES "cfi")
list(APPEND SAN_CXX_FLAGS "-flto" "-fno-sanitize-trap=cfi")
list(APPEND SAN_LINKER_FLAGS "-flto" "-fno-sanitize-trap=cfi"
"-fuse-ld=gold")
"-fuse-ld=gold")
endif()
if(${CMAKE_SIZEOF_VOID_P} EQUAL 4
AND DRACO_SANITIZE MATCHES "integer|undefined")
if(${CMAKE_SIZEOF_VOID_P} EQUAL 4 AND DRACO_SANITIZE MATCHES
"integer|undefined")
list(APPEND SAN_LINKER_FLAGS "--rtlib=compiler-rt" "-lgcc_s")
endif()
endif()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_TARGETS_CMAKE_)
return()
@ -65,26 +65,33 @@ macro(draco_add_executable)
unset(exe_LIB_DEPS)
set(optional_args TEST)
set(single_value_args NAME OUTPUT_NAME)
set(multi_value_args SOURCES DEFINES INCLUDES COMPILE_FLAGS LINK_FLAGS
OBJLIB_DEPS LIB_DEPS)
set(multi_value_args
SOURCES
DEFINES
INCLUDES
COMPILE_FLAGS
LINK_FLAGS
OBJLIB_DEPS
LIB_DEPS)
cmake_parse_arguments(exe "${optional_args}" "${single_value_args}"
"${multi_value_args}" ${ARGN})
if(DRACO_VERBOSE GREATER 1)
message("--------- draco_add_executable ---------\n"
"exe_TEST=${exe_TEST}\n"
"exe_TEST_DEFINES_MAIN=${exe_TEST_DEFINES_MAIN}\n"
"exe_NAME=${exe_NAME}\n"
"exe_OUTPUT_NAME=${exe_OUTPUT_NAME}\n"
"exe_SOURCES=${exe_SOURCES}\n"
"exe_DEFINES=${exe_DEFINES}\n"
"exe_INCLUDES=${exe_INCLUDES}\n"
"exe_COMPILE_FLAGS=${exe_COMPILE_FLAGS}\n"
"exe_LINK_FLAGS=${exe_LINK_FLAGS}\n"
"exe_OBJLIB_DEPS=${exe_OBJLIB_DEPS}\n"
"exe_LIB_DEPS=${exe_LIB_DEPS}\n"
"------------------------------------------\n")
message(
"--------- draco_add_executable ---------\n"
"exe_TEST=${exe_TEST}\n"
"exe_TEST_DEFINES_MAIN=${exe_TEST_DEFINES_MAIN}\n"
"exe_NAME=${exe_NAME}\n"
"exe_OUTPUT_NAME=${exe_OUTPUT_NAME}\n"
"exe_SOURCES=${exe_SOURCES}\n"
"exe_DEFINES=${exe_DEFINES}\n"
"exe_INCLUDES=${exe_INCLUDES}\n"
"exe_COMPILE_FLAGS=${exe_COMPILE_FLAGS}\n"
"exe_LINK_FLAGS=${exe_LINK_FLAGS}\n"
"exe_OBJLIB_DEPS=${exe_OBJLIB_DEPS}\n"
"exe_LIB_DEPS=${exe_LIB_DEPS}\n"
"------------------------------------------\n")
endif()
if(NOT (exe_NAME AND exe_SOURCES))
@ -122,8 +129,8 @@ macro(draco_add_executable)
endif()
if(exe_COMPILE_FLAGS OR DRACO_CXX_FLAGS)
target_compile_options(${exe_NAME}
PRIVATE ${exe_COMPILE_FLAGS} ${DRACO_CXX_FLAGS})
target_compile_options(${exe_NAME} PRIVATE ${exe_COMPILE_FLAGS}
${DRACO_CXX_FLAGS})
endif()
if(exe_LINK_FLAGS OR DRACO_EXE_LINKER_FLAGS)
@ -131,8 +138,8 @@ macro(draco_add_executable)
list(APPEND exe_LINK_FLAGS "${DRACO_EXE_LINKER_FLAGS}")
# LINK_FLAGS is managed as a string.
draco_set_and_stringify(SOURCE "${exe_LINK_FLAGS}" DEST exe_LINK_FLAGS)
set_target_properties(${exe_NAME}
PROPERTIES LINK_FLAGS "${exe_LINK_FLAGS}")
set_target_properties(${exe_NAME} PROPERTIES LINK_FLAGS
"${exe_LINK_FLAGS}")
else()
target_link_options(${exe_NAME} PRIVATE ${exe_LINK_FLAGS}
${DRACO_EXE_LINKER_FLAGS})
@ -227,27 +234,36 @@ macro(draco_add_library)
unset(lib_TARGET_PROPERTIES)
set(optional_args TEST)
set(single_value_args NAME OUTPUT_NAME TYPE)
set(multi_value_args SOURCES DEFINES INCLUDES COMPILE_FLAGS LINK_FLAGS
OBJLIB_DEPS LIB_DEPS PUBLIC_INCLUDES TARGET_PROPERTIES)
set(multi_value_args
SOURCES
DEFINES
INCLUDES
COMPILE_FLAGS
LINK_FLAGS
OBJLIB_DEPS
LIB_DEPS
PUBLIC_INCLUDES
TARGET_PROPERTIES)
cmake_parse_arguments(lib "${optional_args}" "${single_value_args}"
"${multi_value_args}" ${ARGN})
if(DRACO_VERBOSE GREATER 1)
message("--------- draco_add_library ---------\n"
"lib_TEST=${lib_TEST}\n"
"lib_NAME=${lib_NAME}\n"
"lib_OUTPUT_NAME=${lib_OUTPUT_NAME}\n"
"lib_TYPE=${lib_TYPE}\n"
"lib_SOURCES=${lib_SOURCES}\n"
"lib_DEFINES=${lib_DEFINES}\n"
"lib_INCLUDES=${lib_INCLUDES}\n"
"lib_COMPILE_FLAGS=${lib_COMPILE_FLAGS}\n"
"lib_LINK_FLAGS=${lib_LINK_FLAGS}\n"
"lib_OBJLIB_DEPS=${lib_OBJLIB_DEPS}\n"
"lib_LIB_DEPS=${lib_LIB_DEPS}\n"
"lib_PUBLIC_INCLUDES=${lib_PUBLIC_INCLUDES}\n"
"---------------------------------------\n")
message(
"--------- draco_add_library ---------\n"
"lib_TEST=${lib_TEST}\n"
"lib_NAME=${lib_NAME}\n"
"lib_OUTPUT_NAME=${lib_OUTPUT_NAME}\n"
"lib_TYPE=${lib_TYPE}\n"
"lib_SOURCES=${lib_SOURCES}\n"
"lib_DEFINES=${lib_DEFINES}\n"
"lib_INCLUDES=${lib_INCLUDES}\n"
"lib_COMPILE_FLAGS=${lib_COMPILE_FLAGS}\n"
"lib_LINK_FLAGS=${lib_LINK_FLAGS}\n"
"lib_OBJLIB_DEPS=${lib_OBJLIB_DEPS}\n"
"lib_LIB_DEPS=${lib_LIB_DEPS}\n"
"lib_PUBLIC_INCLUDES=${lib_PUBLIC_INCLUDES}\n"
"---------------------------------------\n")
endif()
if(NOT (lib_NAME AND lib_TYPE))
@ -282,8 +298,8 @@ macro(draco_add_library)
if(lib_OUTPUT_NAME)
if(NOT (BUILD_SHARED_LIBS AND MSVC))
set_target_properties(${lib_NAME}
PROPERTIES OUTPUT_NAME ${lib_OUTPUT_NAME})
set_target_properties(${lib_NAME} PROPERTIES OUTPUT_NAME
${lib_OUTPUT_NAME})
endif()
endif()
@ -300,8 +316,8 @@ macro(draco_add_library)
endif()
if(lib_COMPILE_FLAGS OR DRACO_CXX_FLAGS)
target_compile_options(${lib_NAME}
PRIVATE ${lib_COMPILE_FLAGS} ${DRACO_CXX_FLAGS})
target_compile_options(${lib_NAME} PRIVATE ${lib_COMPILE_FLAGS}
${DRACO_CXX_FLAGS})
endif()
if(lib_LINK_FLAGS)
@ -343,9 +359,9 @@ macro(draco_add_library)
if(NOT EMSCRIPTEN)
# VERSION and SOVERSION as necessary
if((lib_TYPE STREQUAL BUNDLE OR lib_TYPE STREQUAL SHARED) AND NOT MSVC)
set_target_properties(${lib_NAME}
PROPERTIES VERSION ${DRACO_SOVERSION} SOVERSION
${DRACO_SOVERSION_MAJOR})
set_target_properties(
${lib_NAME} PROPERTIES VERSION ${DRACO_SOVERSION}
SOVERSION ${DRACO_SOVERSION_MAJOR})
endif()
endif()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_TESTS_CMAKE)
return()
@ -26,73 +26,78 @@ set(draco_factory_test_sources
list(
APPEND
draco_test_sources
"${draco_src_root}/animation/keyframe_animation_encoding_test.cc"
"${draco_src_root}/animation/keyframe_animation_test.cc"
"${draco_src_root}/attributes/point_attribute_test.cc"
"${draco_src_root}/compression/attributes/point_d_vector_test.cc"
"${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc"
"${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc"
"${draco_src_root}/compression/attributes/sequential_integer_attribute_encoding_test.cc"
"${draco_src_root}/compression/bit_coders/rans_coding_test.cc"
"${draco_src_root}/compression/decode_test.cc"
"${draco_src_root}/compression/encode_test.cc"
"${draco_src_root}/compression/entropy/shannon_entropy_test.cc"
"${draco_src_root}/compression/entropy/symbol_coding_test.cc"
"${draco_src_root}/compression/mesh/mesh_edgebreaker_encoding_test.cc"
"${draco_src_root}/compression/mesh/mesh_encoder_test.cc"
"${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc"
"${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoding_test.cc"
"${draco_src_root}/core/buffer_bit_coding_test.cc"
"${draco_src_root}/core/draco_test_base.h"
"${draco_src_root}/core/draco_test_utils.cc"
"${draco_src_root}/core/draco_test_utils.h"
"${draco_src_root}/core/math_utils_test.cc"
"${draco_src_root}/core/quantization_utils_test.cc"
"${draco_src_root}/core/status.cc"
"${draco_src_root}/core/status_test.cc"
"${draco_src_root}/core/vector_d_test.cc"
"${draco_src_root}/io/file_reader_test_common.h"
"${draco_src_root}/io/file_utils_test.cc"
"${draco_src_root}/io/file_writer_utils_test.cc"
"${draco_src_root}/io/stdio_file_reader_test.cc"
"${draco_src_root}/io/stdio_file_writer_test.cc"
"${draco_src_root}/io/obj_decoder_test.cc"
"${draco_src_root}/io/obj_encoder_test.cc"
"${draco_src_root}/io/ply_decoder_test.cc"
"${draco_src_root}/io/ply_reader_test.cc"
"${draco_src_root}/io/stl_decoder_test.cc"
"${draco_src_root}/io/stl_encoder_test.cc"
"${draco_src_root}/io/point_cloud_io_test.cc"
"${draco_src_root}/mesh/mesh_are_equivalent_test.cc"
"${draco_src_root}/mesh/mesh_cleanup_test.cc"
"${draco_src_root}/mesh/triangle_soup_mesh_builder_test.cc"
"${draco_src_root}/metadata/metadata_encoder_test.cc"
"${draco_src_root}/metadata/metadata_test.cc"
"${draco_src_root}/point_cloud/point_cloud_builder_test.cc"
"${draco_src_root}/point_cloud/point_cloud_test.cc")
draco_test_sources
"${draco_src_root}/animation/keyframe_animation_encoding_test.cc"
"${draco_src_root}/animation/keyframe_animation_test.cc"
"${draco_src_root}/attributes/point_attribute_test.cc"
"${draco_src_root}/compression/attributes/point_d_vector_test.cc"
"${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_test.cc"
"${draco_src_root}/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_transform_test.cc"
"${draco_src_root}/compression/attributes/sequential_integer_attribute_encoding_test.cc"
"${draco_src_root}/compression/bit_coders/rans_coding_test.cc"
"${draco_src_root}/compression/decode_test.cc"
"${draco_src_root}/compression/encode_test.cc"
"${draco_src_root}/compression/entropy/shannon_entropy_test.cc"
"${draco_src_root}/compression/entropy/symbol_coding_test.cc"
"${draco_src_root}/compression/mesh/mesh_edgebreaker_encoding_test.cc"
"${draco_src_root}/compression/mesh/mesh_encoder_test.cc"
"${draco_src_root}/compression/point_cloud/point_cloud_kd_tree_encoding_test.cc"
"${draco_src_root}/compression/point_cloud/point_cloud_sequential_encoding_test.cc"
"${draco_src_root}/core/buffer_bit_coding_test.cc"
"${draco_src_root}/core/draco_test_base.h"
"${draco_src_root}/core/draco_test_utils.cc"
"${draco_src_root}/core/draco_test_utils.h"
"${draco_src_root}/core/math_utils_test.cc"
"${draco_src_root}/core/quantization_utils_test.cc"
"${draco_src_root}/core/status.cc"
"${draco_src_root}/core/status_test.cc"
"${draco_src_root}/core/vector_d_test.cc"
"${draco_src_root}/io/file_reader_test_common.h"
"${draco_src_root}/io/file_utils_test.cc"
"${draco_src_root}/io/file_writer_utils_test.cc"
"${draco_src_root}/io/stdio_file_reader_test.cc"
"${draco_src_root}/io/stdio_file_writer_test.cc"
"${draco_src_root}/io/obj_decoder_test.cc"
"${draco_src_root}/io/obj_encoder_test.cc"
"${draco_src_root}/io/ply_decoder_test.cc"
"${draco_src_root}/io/ply_reader_test.cc"
"${draco_src_root}/io/stl_decoder_test.cc"
"${draco_src_root}/io/stl_encoder_test.cc"
"${draco_src_root}/io/point_cloud_io_test.cc"
"${draco_src_root}/mesh/mesh_are_equivalent_test.cc"
"${draco_src_root}/mesh/mesh_cleanup_test.cc"
"${draco_src_root}/mesh/triangle_soup_mesh_builder_test.cc"
"${draco_src_root}/metadata/metadata_encoder_test.cc"
"${draco_src_root}/metadata/metadata_test.cc"
"${draco_src_root}/point_cloud/point_cloud_builder_test.cc"
"${draco_src_root}/point_cloud/point_cloud_test.cc")
if(DRACO_TRANSCODER_SUPPORTED)
list(
APPEND
draco_test_sources
"${draco_src_root}/animation/animation_test.cc"
"${draco_src_root}/io/gltf_decoder_test.cc"
"${draco_src_root}/io/gltf_encoder_test.cc"
"${draco_src_root}/io/gltf_utils_test.cc"
"${draco_src_root}/io/scene_io_test.cc"
"${draco_src_root}/io/texture_io_test.cc"
"${draco_src_root}/material/material_library_test.cc"
"${draco_src_root}/material/material_test.cc"
"${draco_src_root}/scene/instance_array_test.cc"
"${draco_src_root}/scene/light_test.cc"
"${draco_src_root}/scene/mesh_group_test.cc"
"${draco_src_root}/scene/scene_test.cc"
"${draco_src_root}/scene/scene_utils_test.cc"
"${draco_src_root}/scene/trs_matrix_test.cc"
"${draco_src_root}/texture/texture_library_test.cc"
"${draco_src_root}/texture/texture_map_test.cc"
"${draco_src_root}/texture/texture_transform_test.cc")
draco_test_sources
"${draco_src_root}/animation/animation_test.cc"
"${draco_src_root}/io/gltf_decoder_test.cc"
"${draco_src_root}/io/gltf_encoder_test.cc"
"${draco_src_root}/io/gltf_utils_test.cc"
"${draco_src_root}/io/gltf_test_helper.cc"
"${draco_src_root}/io/gltf_test_helper.h"
"${draco_src_root}/io/scene_io_test.cc"
"${draco_src_root}/io/texture_io_test.cc"
"${draco_src_root}/material/material_library_test.cc"
"${draco_src_root}/material/material_test.cc"
"${draco_src_root}/metadata/property_table_test.cc"
"${draco_src_root}/metadata/structural_metadata_test.cc"
"${draco_src_root}/scene/instance_array_test.cc"
"${draco_src_root}/scene/light_test.cc"
"${draco_src_root}/scene/mesh_group_test.cc"
"${draco_src_root}/scene/scene_test.cc"
"${draco_src_root}/scene/scene_are_equivalent_test.cc"
"${draco_src_root}/scene/scene_utils_test.cc"
"${draco_src_root}/scene/trs_matrix_test.cc"
"${draco_src_root}/texture/texture_library_test.cc"
"${draco_src_root}/texture/texture_map_test.cc"
"${draco_src_root}/texture/texture_transform_test.cc")
endif()
macro(draco_setup_test_targets)
@ -100,37 +105,26 @@ macro(draco_setup_test_targets)
draco_setup_googletest()
if(NOT (EXISTS ${draco_gtest_all} AND EXISTS ${draco_gtest_main}))
message(FATAL_ERROR
"googletest missing, run git submodule update --init")
message(FATAL_ERROR "googletest missing, run git submodule update --init")
endif()
list(APPEND draco_test_defines GTEST_HAS_PTHREAD=0)
draco_add_library(TEST
NAME
draco_gtest
TYPE
STATIC
SOURCES
${draco_gtest_all}
DEFINES
${draco_defines}
${draco_test_defines}
INCLUDES
${draco_test_include_paths})
draco_add_library(
TEST
NAME draco_gtest
TYPE STATIC
SOURCES ${draco_gtest_all}
DEFINES ${draco_defines} ${draco_test_defines}
INCLUDES ${draco_test_include_paths})
draco_add_library(TEST
NAME
draco_gtest_main
TYPE
STATIC
SOURCES
${draco_gtest_main}
DEFINES
${draco_defines}
${draco_test_defines}
INCLUDES
${draco_test_include_paths})
draco_add_library(
TEST
NAME draco_gtest_main
TYPE STATIC
SOURCES ${draco_gtest_main}
DEFINES ${draco_defines} ${draco_test_defines}
INCLUDES ${draco_test_include_paths})
set(DRACO_TEST_DATA_DIR "${draco_root}/testdata")
set(DRACO_TEST_TEMP_DIR "${draco_build}/draco_test_temp")
@ -141,32 +135,18 @@ macro(draco_setup_test_targets)
"${draco_build}/testing/draco_test_config.h")
# Create the test targets.
draco_add_executable(NAME
draco_tests
SOURCES
${draco_test_sources}
DEFINES
${draco_defines}
${draco_test_defines}
INCLUDES
${draco_test_include_paths}
LIB_DEPS
${draco_dependency}
draco_gtest
draco_gtest_main)
draco_add_executable(
NAME draco_tests
SOURCES ${draco_test_sources}
DEFINES ${draco_defines} ${draco_test_defines}
INCLUDES ${draco_test_include_paths}
LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main)
draco_add_executable(NAME
draco_factory_tests
SOURCES
${draco_factory_test_sources}
DEFINES
${draco_defines}
${draco_test_defines}
INCLUDES
${draco_test_include_paths}
LIB_DEPS
${draco_dependency}
draco_gtest
draco_gtest_main)
draco_add_executable(
NAME draco_factory_tests
SOURCES ${draco_factory_test_sources}
DEFINES ${draco_defines} ${draco_test_defines}
INCLUDES ${draco_test_include_paths}
LIB_DEPS ${draco_dependency} draco_gtest draco_gtest_main)
endif()
endmacro()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_DRACO_VARIABLES_CMAKE_)
return()
@ -28,8 +28,7 @@ macro(draco_variable_must_be_directory variable_name)
if("${${variable_name}}" STREQUAL "")
message(
FATAL_ERROR
"Empty variable ${variable_name} is required to build draco.")
FATAL_ERROR "Empty variable ${variable_name} is required to build draco.")
endif()
if(NOT IS_DIRECTORY "${${variable_name}}")
@ -56,13 +55,16 @@ endmacro()
macro(draco_dump_cmake_flag_variables)
unset(flag_variables)
list(APPEND flag_variables "CMAKE_CXX_FLAGS_INIT" "CMAKE_CXX_FLAGS"
"CMAKE_EXE_LINKER_FLAGS_INIT" "CMAKE_EXE_LINKER_FLAGS")
"CMAKE_EXE_LINKER_FLAGS_INIT" "CMAKE_EXE_LINKER_FLAGS")
if(CMAKE_BUILD_TYPE)
list(APPEND flag_variables "CMAKE_BUILD_TYPE"
"CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}_INIT"
"CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}"
"CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}_INIT"
"CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}")
list(
APPEND
flag_variables
"CMAKE_BUILD_TYPE"
"CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}_INIT"
"CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}"
"CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}_INIT"
"CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE}")
endif()
foreach(flag_variable ${flag_variables})
message("${flag_variable}:${${flag_variable}}")

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_AARCH64_LINUX_GNU_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ANDROID_NDK_COMMON_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ANDROID_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARM_IOS_COMMON_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARM_LINUX_GNUEABIHF_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARM64_ANDROID_NDK_LIBCPP_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARM64_IOS_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARM64_LINUX_GCC_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARMV7_ANDROID_NDK_LIBCPP_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARMV7_IOS_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARMV7_LINUX_GCC_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_ARMV7S_IOS_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_i386_IOS_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_X86_ANDROID_NDK_LIBCPP_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_X86_64_ANDROID_NDK_LIBCPP_CMAKE_)
return()

View File

@ -1,16 +1,16 @@
# Copyright 2021 The Draco Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
if(DRACO_CMAKE_TOOLCHAINS_X86_64_IOS_CMAKE_)
return()

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -5,94 +5,93 @@ var $jscomp$lookupPolyfilledValue=function(l,p){var m=$jscomp.propertyToPolyfill
$jscomp.polyfillUnisolated=function(l,p,m,r){m=$jscomp.global;l=l.split(".");for(r=0;r<l.length-1;r++){var k=l[r];if(!(k in m))return;m=m[k]}l=l[l.length-1];r=m[l];p=p(r);p!=r&&null!=p&&$jscomp.defineProperty(m,l,{configurable:!0,writable:!0,value:p})};
$jscomp.polyfillIsolated=function(l,p,m,r){var k=l.split(".");l=1===k.length;r=k[0];r=!l&&r in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var C=0;C<k.length-1;C++){var h=k[C];if(!(h in r))return;r=r[h]}k=k[k.length-1];m=$jscomp.IS_SYMBOL_NATIVE&&"es6"===m?r[k]:null;p=p(m);null!=p&&(l?$jscomp.defineProperty($jscomp.polyfills,k,{configurable:!0,writable:!0,value:p}):p!==m&&(void 0===$jscomp.propertyToPolyfillSymbol[k]&&(m=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE?
$jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))};
$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,v){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};
var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var v=h[q];h[q]=null;try{v()}catch(D){this.asyncThrow_(D)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{h(q.resolve,q.reject)}catch(v){q.reject(v)}};k.prototype.createResolveAndReject_=function(){function h(D){return function(G){v||(v=!0,D.call(q,G))}}var q=this,v=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case "object":var q=null!=h;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):
this.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error("Cannot settle("+h+", "+q+"): Promise already settled in state"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof h?h=new h("unhandledrejection",{cancelable:!0}):
"function"===typeof q?h=new q("unhandledrejection",{cancelable:!0}):(h=$jscomp.global.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h));h.promise=this;h.reason=this.result_;return v(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();
h.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var v=this.createResolveAndReject_();try{h.call(q,v.resolve,v.reject)}catch(D){v.reject(D)}};k.prototype.then=function(h,q){function v(B,K){return"function"==typeof B?function(O){try{D(B(O))}catch(R){G(R)}}:K}var D,G,y=new k(function(B,K){D=B;G=K});this.callWhenSettled_(v(h,D),v(q,G));return y};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function v(){switch(D.state_){case 1:h(D.result_);
break;case 2:q(D.result_);break;default:throw Error("Unexpected state: "+D.state_);}}var D=this;null==this.onSettledCallbacks_?C.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,v){v(h)})};k.race=function(h){return new k(function(q,v){for(var D=$jscomp.makeIterator(h),G=D.next();!G.done;G=D.next())m(G.value).callWhenSettled_(q,v)})};k.all=function(h){var q=$jscomp.makeIterator(h),v=q.next();return v.done?m([]):new k(function(D,
G){function y(O){return function(R){B[O]=R;K--;0==K&&D(B)}}var B=[],K=0;do B.push(void 0),K++,m(v.value).callWhenSettled_(y(B.length-1),G),v=q.next();while(!v.done)})};return k},"es6","es3");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};
$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,w){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};
var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var w=h[q];h[q]=null;try{w()}catch(B){this.asyncThrow_(B)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{h(q.resolve,q.reject)}catch(w){q.reject(w)}};k.prototype.createResolveAndReject_=function(){function h(B){return function(v){w||(w=!0,B.call(q,v))}}var q=this,w=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case "object":var q=null!=h;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):
this.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(w){this.reject_(w);return}"function"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error("Cannot settle("+h+", "+q+"): Promise already settled in state"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,w=$jscomp.global.dispatchEvent;if("undefined"===typeof w)return!0;"function"===typeof h?h=new h("unhandledrejection",{cancelable:!0}):
"function"===typeof q?h=new q("unhandledrejection",{cancelable:!0}):(h=$jscomp.global.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h));h.promise=this;h.reason=this.result_;return w(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();
h.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var w=this.createResolveAndReject_();try{h.call(q,w.resolve,w.reject)}catch(B){w.reject(B)}};k.prototype.then=function(h,q){function w(I,J){return"function"==typeof I?function(Q){try{B(I(Q))}catch(R){v(R)}}:J}var B,v,D=new k(function(I,J){B=I;v=J});this.callWhenSettled_(w(h,B),w(q,v));return D};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function w(){switch(B.state_){case 1:h(B.result_);
break;case 2:q(B.result_);break;default:throw Error("Unexpected state: "+B.state_);}}var B=this;null==this.onSettledCallbacks_?C.asyncExecute(w):this.onSettledCallbacks_.push(w);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,w){w(h)})};k.race=function(h){return new k(function(q,w){for(var B=$jscomp.makeIterator(h),v=B.next();!v.done;v=B.next())m(v.value).callWhenSettled_(q,w)})};k.all=function(h){var q=$jscomp.makeIterator(h),w=q.next();return w.done?m([]):new k(function(B,
v){function D(Q){return function(R){I[Q]=R;J--;0==J&&B(I)}}var I=[],J=0;do I.push(void 0),J++,m(w.value).callWhenSettled_(D(I.length-1),v),w=q.next();while(!w.done)})};return k},"es6","es3");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};
$jscomp.polyfill("Object.assign",function(l){return l||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(l,p,m){if(null==l)throw new TypeError("The 'this' value for String.prototype."+m+" must not be null or undefined");if(p instanceof RegExp)throw new TypeError("First argument to String.prototype."+m+" must not be a regular expression");return l+""};
$jscomp.polyfill("String.prototype.startsWith",function(l){return l?l:function(p,m){var r=$jscomp.checkStringArgs(this,p,"startsWith");p+="";var k=r.length,C=p.length;m=Math.max(0,Math.min(m|0,r.length));for(var h=0;h<C&&m<k;)if(r[m++]!=p[h++])return!1;return h>=C}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(m<r)for(;r<k;)r in this?this[m++]=this[r++]:(delete this[m++],r++);else for(k=Math.min(k,C+r-m),m+=k-r;k>r;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){qa=f;a.HEAP8=P=new Int8Array(f);a.HEAP16=ha=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=ia=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ja=new Float32Array(f);a.HEAPF64=new Float64Array(f)}
function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);ra=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ka(f);throw f;}function C(f){try{if(f==J&&X)return new Uint8Array(X);if(la)return la(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(sa||Y)){if("function"==typeof fetch&&!J.startsWith("file://"))return fetch(J,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+
J+"'";return f.arrayBuffer()}).catch(function(){return C(J)});if(ma)return new Promise(function(f,b){ma(J,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(J)})}function q(f){for(;0<f.length;){var b=f.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?v(c)():v(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function v(f){var b=ba[f];b||(f>=ba.length&&(ba.length=f+1),ba[f]=b=ta.get(f));return b}function D(f){this.excPtr=f;this.ptr=
f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=function(b){S[this.ptr>>2]=b};this.set_caught=function(b){P[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=P[this.ptr+12>>0]};this.set_rethrown=function(b){P[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=P[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);
this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function G(f){function b(){if(!ca&&
(ca=!0,a.calledRun=!0,!ra)){va=!0;q(na);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());q(xa)}}if(!(0<U)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());q(ya);0<U||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function y(){}function B(f){return(f||
y).__cache__}function K(f,b){var c=B(b),d=c[f];if(d)return d;d=Object.create((b||y).prototype);d.ptr=f;return c[f]=d}function O(f){if("string"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|f.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=
d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,P);n.copy(b,P,f);return f}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,P);n.copy(f,P,b);return b}return f}function da(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);
n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ja);n.copy(f,ja,b);return b}return f}function Q(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=za();B(M)[this.ptr]=this}function z(){this.ptr=Aa();B(z)[this.ptr]=this}function H(){this.ptr=Ba();B(H)[this.ptr]=this}function E(){this.ptr=Ca();B(E)[this.ptr]=this}function N(){this.ptr=Da();B(N)[this.ptr]=this}function I(){this.ptr=Ea();B(I)[this.ptr]=this}function F(){this.ptr=Fa();
B(F)[this.ptr]=this}function w(){this.ptr=Ga();B(w)[this.ptr]=this}function u(){this.ptr=Ha();B(u)[this.ptr]=this}function x(){this.ptr=Ia();B(x)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ja(f);B(A)[this.ptr]=this}p=p||{};var a="undefined"!=typeof p?p:{},wa,ka;a.ready=new Promise(function(f,b){wa=f;ka=b});var Ka=!1,La=!1;a.onRuntimeInitialized=function(){Ka=!0;if(La&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){La=!0;if(Ka&&"function"===
typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ma=Object.assign({},a),sa="object"==typeof window,Y="function"==typeof importScripts,Na="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,L="",oa,ea;if(Na){L=Y?require("path").dirname(L)+"/":__dirname+"/";var Oa=function(){ea||(oa=require("fs"),
ea=require("path"))};var Pa=function(f,b){Oa();f=ea.normalize(f);return oa.readFileSync(f,b?void 0:"utf8")};var la=function(f){f=Pa(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ma=function(f,b,c){Oa();f=ea.normalize(f);oa.readFile(f,function(d,e){d?c(d):b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(sa||Y)Y?L=self.location.href:"undefined"!=typeof document&&document.currentScript&&
(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf("blob:")?L.substr(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Pa=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.send(null);return b.responseText},Y&&(la=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ma=function(f,b,c){var d=new XMLHttpRequest;d.open("GET",f,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?
b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ma);Ma=null;var X;a.wasmBinary&&(X=a.wasmBinary);"object"!=typeof WebAssembly&&k("no native wasm support detected");var fa,ra=!1,qa,P,ia,ha,S,T,ja,ta,ya=[],na=[],xa=[],va=!1,U=0,pa=null,aa=null;var J="draco_encoder.wasm";J.startsWith("data:application/octet-stream;base64,")||(J=m(J));var ba=[],tc=0,uc={c:function(f){return Qa(f+24)+24},b:function(f,b,c){(new D(f)).init(b,
c);tc++;throw f;},a:function(){k("")},e:function(f,b,c){ia.copyWithin(f,b,b+c)},d:function(f){var b=ia.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-qa.byteLength+65535>>>16);r(fa.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;fa=a.asm.f;r(fa.buffer);ta=a.asm.h;na.unshift(a.asm.g);
U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==pa&&(clearInterval(pa),pa=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+g);k(g)})}var d={a:uc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){return W("Module.instantiateWasm callback failed with error: "+
e),!1}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||J.startsWith("data:application/octet-stream;base64,")||J.startsWith("file://")||Na||"function"!=typeof fetch?c(b):fetch(J,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=
a.asm.g).apply(null,arguments)};var Ra=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Ra=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.j).apply(null,arguments)},Sa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Sa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},
Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_size_0=function(){return(Ta=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Ua=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_data_type_0=
function(){return(Va=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Wa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Xa=a._emscripten_bind_PointAttribute_normalized_0=a.asm.q).apply(null,arguments)},Ya=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ya=a._emscripten_bind_PointAttribute_byte_stride_0=
a.asm.r).apply(null,arguments)},Za=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Za=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},$a=a._emscripten_bind_PointAttribute_unique_id_0=function(){return($a=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},ab=a._emscripten_bind_PointAttribute___destroy___0=function(){return(ab=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},Ba=a._emscripten_bind_PointCloud_PointCloud_0=
function(){return(Ba=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.x).apply(null,arguments)},db=a._emscripten_bind_PointCloud___destroy___0=function(){return(db=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,
arguments)},Ca=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ca=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.B).apply(null,arguments)},gb=a._emscripten_bind_Mesh_num_points_0=function(){return(gb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,
arguments)},hb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(hb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},ib=a._emscripten_bind_Mesh___destroy___0=function(){return(ib=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},Da=a._emscripten_bind_Metadata_Metadata_0=function(){return(Da=a._emscripten_bind_Metadata_Metadata_0=a.asm.F).apply(null,arguments)},jb=a._emscripten_bind_Metadata___destroy___0=function(){return(jb=a._emscripten_bind_Metadata___destroy___0=
a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},kb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(kb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},lb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(lb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},mb=a._emscripten_bind_DracoInt8Array___destroy___0=
function(){return(mb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.M).apply(null,arguments)},ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=
a.asm.N).apply(null,arguments)},pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},rb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(rb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},
Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},
ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=function(){return(wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},
xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=function(){return(zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},Ab=
a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(Ab=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=
function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Fb=
a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=
a.asm.ha).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},
Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Pb=a._emscripten_bind_MeshBuilder___destroy___0=
function(){return(Pb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Ia=a._emscripten_bind_Encoder_Encoder_0=function(){return(Ia=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=
a.asm.ra).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,
arguments)},Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,
arguments)},Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Zb=a._emscripten_bind_Encoder___destroy___0=function(){return(Zb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Aa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=
function(){return($b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Da).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=
function(){return(cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return(dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ga).apply(null,arguments)},fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=
function(){return(fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},hc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(hc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ic=
a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Ma).apply(null,arguments)},lc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(lc=
a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Pa).apply(null,arguments)},oc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(oc=
a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=
function(){return(rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Qa=a._malloc=function(){return(Qa=a._malloc=a.asm.Va).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Wa).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua=
a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)},ca;aa=function b(){ca||G();ca||(aa=b)};a.run=G;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();G();y.prototype=Object.create(y.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.WrapperObject=y;a.getCache=B;a.wrapPointer=K;a.castObject=function(b,c){return K(b.ptr,c)};a.NULL=K(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";
b.__destroy__();delete B(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=
b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),n.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};Q.prototype=Object.create(y.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.VoidPtr=Q;Q.prototype.__destroy__=Q.prototype.__destroy__=function(){Ra(this.ptr)};M.prototype=
Object.create(y.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Sa(this.ptr)};z.prototype=Object.create(y.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=function(){return Ta(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Ua(this.ptr)};z.prototype.data_type=z.prototype.data_type=
function(){return Va(this.ptr)};z.prototype.num_components=z.prototype.num_components=function(){return Wa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Xa(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Ya(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Za(this.ptr)};z.prototype.unique_id=z.prototype.unique_id=function(){return $a(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){ab(this.ptr)};
H.prototype=Object.create(y.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return bb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return cb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){db(this.ptr)};E.prototype=Object.create(y.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=
function(){return eb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return fb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return gb(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);hb(c,b)};E.prototype.__destroy__=E.prototype.__destroy__=function(){ib(this.ptr)};N.prototype=Object.create(y.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=
N;N.prototype.__destroy__=N.prototype.__destroy__=function(){jb(this.ptr)};I.prototype=Object.create(y.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return kb(c,b)};I.prototype.size=I.prototype.size=function(){return lb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){mb(this.ptr)};F.prototype=Object.create(y.prototype);F.prototype.constructor=
F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=F.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d=d&&"object"===typeof d?d.ptr:O(d);return!!nb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d&&"object"===typeof d&&(d=d.ptr);return!!ob(e,b,c,d)};
F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);"object"==typeof d&&(d=V(d));e&&"object"===typeof e&&(e=e.ptr);return!!pb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d&&"object"===typeof d&&(d=d.ptr);return!!qb(e,b,c,d)};F.prototype.__destroy__=
F.prototype.__destroy__=function(){rb(this.ptr)};w.prototype=Object.create(y.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointCloudBuilder=w;w.prototype.AddFloatAttribute=w.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return sb(t,b,c,d,e,g)};w.prototype.AddInt8Attribute=w.prototype.AddInt8Attribute=
function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return tb(t,b,c,d,e,g)};w.prototype.AddUInt8Attribute=w.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=
R(g));return ub(t,b,c,d,e,g)};w.prototype.AddInt16Attribute=w.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return vb(t,b,c,d,e,g)};w.prototype.AddUInt16Attribute=w.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return wb(t,b,c,d,e,g)};w.prototype.AddInt32Attribute=w.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return xb(t,b,c,d,e,g)};w.prototype.AddUInt32Attribute=w.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=
this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return yb(t,b,c,d,e,g)};w.prototype.AddMetadata=w.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!zb(d,b,c)};w.prototype.SetMetadataForAttribute=w.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ab(e,b,c,d)};w.prototype.__destroy__=w.prototype.__destroy__=function(){Bb(this.ptr)};u.prototype=Object.create(y.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);"object"==typeof d&&(d=V(d));return!!Cb(e,b,
c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Db(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=u.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Eb(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Fb(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);
e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Gb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Hb(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===
typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Ib(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return Jb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=
u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return Kb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&
(e=e.ptr);"object"==typeof g&&(g=V(g));return Lb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Mb(t,b,c,d,e,g)};u.prototype.AddMetadata=u.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
return!!Nb(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ob(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Pb(this.ptr)};x.prototype=Object.create(y.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.Encoder=x;x.prototype.SetEncodingMethod=x.prototype.SetEncodingMethod=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qb(c,b)};x.prototype.SetAttributeQuantization=x.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Rb(d,b,c)};x.prototype.SetAttributeExplicitQuantization=x.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));
g&&"object"===typeof g&&(g=g.ptr);Sb(t,b,c,d,e,g)};x.prototype.SetSpeedOptions=x.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Tb(d,b,c)};x.prototype.SetTrackEncodedProperties=x.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Ub(c,b)};x.prototype.EncodeMeshToDracoBuffer=x.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return Vb(d,b,c)};x.prototype.EncodePointCloudToDracoBuffer=x.prototype.EncodePointCloudToDracoBuffer=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return Wb(e,b,c,d)};x.prototype.GetNumberOfEncodedPoints=x.prototype.GetNumberOfEncodedPoints=function(){return Xb(this.ptr)};x.prototype.GetNumberOfEncodedFaces=x.prototype.GetNumberOfEncodedFaces=function(){return Yb(this.ptr)};x.prototype.__destroy__=
x.prototype.__destroy__=function(){Zb(this.ptr)};A.prototype=Object.create(y.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);ac(d,b,c)};A.prototype.SetAttributeExplicitQuantization=
A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);bc(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);cc(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);dc(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return ec(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return fc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=A.prototype.GetNumberOfEncodedFaces=function(){return gc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=
function(){hc(this.ptr)};(function(){function b(){a.INVALID=ic();a.POSITION=jc();a.NORMAL=kc();a.COLOR=lc();a.TEX_COORD=mc();a.GENERIC=nc();a.INVALID_GEOMETRY_TYPE=oc();a.POINT_CLOUD=pc();a.TRIANGULAR_MESH=qc();a.MESH_SEQUENTIAL_ENCODING=rc();a.MESH_EDGEBREAKER_ENCODING=sc()}va?b():na.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();
var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){ma=f;a.HEAP8=O=new Int8Array(f);a.HEAP16=ea=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=fa=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ha=new Float32Array(f);a.HEAPF64=new Float64Array(f)}
function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);na=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ba(f);throw f;}function C(f){try{if(f==K&&X)return new Uint8Array(X);if(ia)return ia(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(oa||Y)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+
K+"'";return f.arrayBuffer()}).catch(function(){return C(K)});if(ja)return new Promise(function(f,b){ja(K,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(K)})}function q(f){for(;0<f.length;)f.shift()(a)}function w(f){this.excPtr=f;this.ptr=f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=
function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>
2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(f){function b(){if(!ca&&(ca=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift());
q(sa)}}if(!(0<U)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ta.unshift(a.preRun.shift());q(ta);0<U||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function v(){}function D(f){return(f||v).__cache__}function I(f,b){var c=D(b),d=c[f];if(d)return d;d=Object.create((b||v).prototype);d.ptr=f;return c[f]=d}function J(f){if("string"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);
127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f}
function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va();
D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=p||{};var a="undefined"!=
typeof p?p:{},ra,ba;a.ready=new Promise(function(f,b){ra=f;ba=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ha=Object.assign({},a),oa="object"==typeof window,
Y="function"==typeof importScripts,Ia="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,L="";if(Ia){L=Y?require("path").dirname(L)+"/":__dirname+"/";if("function"===typeof require){var Ja=require("fs");var Ka=require("path")}var La=function(f,b){f=Ka.normalize(f);return Ja.readFileSync(f,b?void 0:"utf8")};var ia=function(f){f=La(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ja=function(f,b,c){f=Ka.normalize(f);Ja.readFile(f,function(d,e){d?c(d):
b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(oa||Y)Y?L=self.location.href:"undefined"!=typeof document&&document.currentScript&&(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf("blob:")?L.substr(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1):"",La=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.send(null);return b.responseText},Y&&(ia=function(f){var b=new XMLHttpRequest;
b.open("GET",f,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ja=function(f,b,c){var d=new XMLHttpRequest;d.open("GET",f,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ha);Ha=null;var X;a.wasmBinary&&(X=a.wasmBinary);"object"!=typeof WebAssembly&&k("no native wasm support detected");
var da,na=!1,ma,O,fa,ea,S,T,ha,ta=[],ka=[],sa=[],qa=!1,U=0,la=null,aa=null;var K="draco_encoder.wasm";K.startsWith("data:application/octet-stream;base64,")||(K=m(K));var pc=0,qc={c:function(f){return Ma(f+24)+24},b:function(f,b,c){(new w(f)).init(b,c);pc++;throw f;},a:function(){k("")},e:function(f,b,c){fa.copyWithin(f,b,b+c)},d:function(f){var b=fa.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,
d+(65536-d%65536)%65536);a:{try{da.grow(e-ma.byteLength+65535>>>16);r(da.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;da=a.asm.f;r(da.buffer);ka.unshift(a.asm.g);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==la&&(clearInterval(la),la=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+
g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ba(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,
function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Na=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Na=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
a.asm.j).apply(null,arguments)},Oa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Oa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_size_0=function(){return(Pa=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_attribute_type_0=
function(){return(Qa=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Ra=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Sa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ta=a._emscripten_bind_PointAttribute_normalized_0=
a.asm.q).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ua=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.r).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Va=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Wa=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute___destroy___0=
function(){return(Xa=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ya=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},Za=a._emscripten_bind_PointCloud_num_points_0=function(){return(Za=a._emscripten_bind_PointCloud_num_points_0=
a.asm.x).apply(null,arguments)},$a=a._emscripten_bind_PointCloud___destroy___0=function(){return($a=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_faces_0=function(){return(ab=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},bb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(bb=a._emscripten_bind_Mesh_num_attributes_0=
a.asm.B).apply(null,arguments)},cb=a._emscripten_bind_Mesh_num_points_0=function(){return(cb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,arguments)},db=a._emscripten_bind_Mesh_set_num_points_1=function(){return(db=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},eb=a._emscripten_bind_Mesh___destroy___0=function(){return(eb=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0=
a.asm.F).apply(null,arguments)},fb=a._emscripten_bind_Metadata___destroy___0=function(){return(fb=a._emscripten_bind_Metadata___destroy___0=a.asm.G).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(gb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},hb=a._emscripten_bind_DracoInt8Array_size_0=
function(){return(hb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},ib=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(ib=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=
a.asm.M).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.N).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},
nb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(nb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=
function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=
function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=
function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},xb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(xb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca=
a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=
a.asm.da).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},
Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=
function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=
a.asm.na).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=
function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.ra).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb=
a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb=
a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=
a.asm.Aa).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=
a.asm.Da).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=
a.asm.Ga).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0=
a.asm.Ja).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
a.asm.Ma).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
a.asm.Pa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
a.asm.Sa).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Ma=a._malloc=function(){return(Ma=a._malloc=a.asm.Va).apply(null,arguments)};a._free=
function(){return(a._free=a.asm.Wa).apply(null,arguments)};var pa=a.___cxa_is_pointer_type=function(){return(pa=a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var ca;aa=function b(){ca||B();ca||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();B();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=
D;a.wrapPointer=I;a.castObject=function(b,c){return I(b.ptr,c)};a.NULL=I(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete D(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=
0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),n.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};P.prototype=Object.create(v.prototype);
P.prototype.constructor=P;P.prototype.__class__=P;P.__cache__={};a.VoidPtr=P;P.prototype.__destroy__=P.prototype.__destroy__=function(){Na(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Oa(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=
function(){return Pa(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Qa(this.ptr)};z.prototype.data_type=z.prototype.data_type=function(){return Ra(this.ptr)};z.prototype.num_components=z.prototype.num_components=function(){return Sa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Ta(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Ua(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Va(this.ptr)};
z.prototype.unique_id=z.prototype.unique_id=function(){return Wa(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){Xa(this.ptr)};G.prototype=Object.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Ya(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Za(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){$a(this.ptr)};
E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return ab(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return bb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return cb(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);db(c,b)};E.prototype.__destroy__=
E.prototype.__destroy__=function(){eb(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=N;N.prototype.__destroy__=N.prototype.__destroy__=function(){fb(this.ptr)};H.prototype=Object.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoInt8Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return gb(c,b)};H.prototype.size=H.prototype.size=
function(){return hb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){ib(this.ptr)};F.prototype=Object.create(v.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=F.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d=d&&"object"===typeof d?d.ptr:J(d);return!!jb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=
function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d&&"object"===typeof d&&(d=d.ptr);return!!kb(e,b,c,d)};F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);"object"==typeof d&&(d=V(d));e&&"object"===typeof e&&(e=e.ptr);return!!lb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=
this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d&&"object"===typeof d&&(d=d.ptr);return!!mb(e,b,c,d)};F.prototype.__destroy__=F.prototype.__destroy__=function(){nb(this.ptr)};x.prototype=Object.create(v.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.PointCloudBuilder=x;x.prototype.AddFloatAttribute=x.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return ob(t,b,c,d,e,g)};x.prototype.AddInt8Attribute=x.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return pb(t,b,c,d,e,g)};x.prototype.AddUInt8Attribute=x.prototype.AddUInt8Attribute=function(b,c,d,e,
g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return qb(t,b,c,d,e,g)};x.prototype.AddInt16Attribute=x.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return rb(t,
b,c,d,e,g)};x.prototype.AddUInt16Attribute=x.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return sb(t,b,c,d,e,g)};x.prototype.AddInt32Attribute=x.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return tb(t,b,c,d,e,g)};x.prototype.AddUInt32Attribute=x.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return ub(t,b,c,d,e,g)};x.prototype.AddMetadata=x.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);return!!vb(d,b,c)};x.prototype.SetMetadataForAttribute=x.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!wb(e,b,c,d)};x.prototype.__destroy__=x.prototype.__destroy__=function(){xb(this.ptr)};u.prototype=Object.create(v.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=
function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);"object"==typeof d&&(d=V(d));return!!yb(e,b,c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return zb(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=
u.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Ab(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Bb(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=
function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Cb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));
return Db(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return Eb(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===
typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Fb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Gb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Hb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Ib(t,b,c,d,e,g)};u.prototype.AddMetadata=
u.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Jb(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kb(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Lb(this.ptr)};y.prototype=Object.create(v.prototype);y.prototype.constructor=
y;y.prototype.__class__=y;y.__cache__={};a.Encoder=y;y.prototype.SetEncodingMethod=y.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Mb(c,b)};y.prototype.SetAttributeQuantization=y.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Nb(d,b,c)};y.prototype.SetAttributeExplicitQuantization=y.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);Ob(t,b,c,d,e,g)};y.prototype.SetSpeedOptions=y.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Pb(d,b,c)};y.prototype.SetTrackEncodedProperties=y.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qb(c,b)};y.prototype.EncodeMeshToDracoBuffer=
y.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Rb(d,b,c)};y.prototype.EncodePointCloudToDracoBuffer=y.prototype.EncodePointCloudToDracoBuffer=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return Sb(e,b,c,d)};y.prototype.GetNumberOfEncodedPoints=y.prototype.GetNumberOfEncodedPoints=function(){return Tb(this.ptr)};y.prototype.GetNumberOfEncodedFaces=
y.prototype.GetNumberOfEncodedFaces=function(){return Ub(this.ptr)};y.prototype.__destroy__=y.prototype.__destroy__=function(){Vb(this.ptr)};A.prototype=Object.create(v.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Wb(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===
typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Xb(d,b,c)};A.prototype.SetAttributeExplicitQuantization=A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);Yb(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);Zb(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return ac(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return bc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=
A.prototype.GetNumberOfEncodedFaces=function(){return cc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=function(){dc(this.ptr)};(function(){function b(){a.INVALID=ec();a.POSITION=fc();a.NORMAL=gc();a.COLOR=hc();a.TEX_COORD=ic();a.GENERIC=jc();a.INVALID_GEOMETRY_TYPE=kc();a.POINT_CLOUD=lc();a.TRIANGULAR_MESH=mc();a.MESH_SEQUENTIAL_ENCODING=nc();a.MESH_EDGEBREAKER_ENCODING=oc()}qa?b():ka.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoEncoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoEncoderModule}):"object"===typeof exports&&(exports.DracoEncoderModule=DracoEncoderModule);

View File

@ -7,112 +7,111 @@ $jscomp.polyfillIsolated=function(k,n,l,p){var h=k.split(".");k=1===h.length;p=h
$jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+"$"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))};
$jscomp.polyfill("Promise",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};
var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var v=f[q];f[q]=null;try{v()}catch(z){this.asyncThrow_(z)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var h=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{f(q.resolve,q.reject)}catch(v){q.reject(v)}};h.prototype.createResolveAndReject_=function(){function f(z){return function(F){v||(v=!0,z.call(q,F))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};h.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof h)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
try{f(q.resolve,q.reject)}catch(v){q.reject(v)}};h.prototype.createResolveAndReject_=function(){function f(z){return function(O){v||(v=!0,z.call(q,O))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};h.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof h)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
this.fulfill_(f)}};h.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};h.prototype.reject_=function(f){this.settle_(2,f)};h.prototype.fulfill_=function(f){this.settle_(1,f)};h.prototype.settle_=function(f,q){if(0!=this.state_)throw Error("Cannot settle("+f+", "+q+"): Promise already settled in state"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};h.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(f.result_)}},1)};h.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):
"function"===typeof q?f=new q("unhandledrejection",{cancelable:!0}):(f=$jscomp.global.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.result_;return v(f)};h.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)A.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var A=new n;h.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();
f.callWhenSettled_(q.resolve,q.reject)};h.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(z){v.reject(z)}};h.prototype.then=function(f,q){function v(P,u){return"function"==typeof P?function(x){try{z(P(x))}catch(D){F(D)}}:u}var z,F,ea=new h(function(P,u){z=P;F=u});this.callWhenSettled_(v(f,z),v(q,F));return ea};h.prototype.catch=function(f){return this.then(void 0,f)};h.prototype.callWhenSettled_=function(f,q){function v(){switch(z.state_){case 1:f(z.result_);
break;case 2:q(z.result_);break;default:throw Error("Unexpected state: "+z.state_);}}var z=this;null==this.onSettledCallbacks_?A.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};h.resolve=l;h.reject=function(f){return new h(function(q,v){v(f)})};h.race=function(f){return new h(function(q,v){for(var z=$jscomp.makeIterator(f),F=z.next();!F.done;F=z.next())l(F.value).callWhenSettled_(q,v)})};h.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?l([]):new h(function(z,
F){function ea(x){return function(D){P[x]=D;u--;0==u&&z(P)}}var P=[],u=0;do P.push(void 0),u++,l(v.value).callWhenSettled_(ea(P.length-1),F),v=q.next();while(!v.done)})};return h},"es6","es3");$jscomp.owns=function(k,n){return Object.prototype.hasOwnProperty.call(k,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(k,n){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var h in p)$jscomp.owns(p,h)&&(k[h]=p[h])}return k};
f.callWhenSettled_(q.resolve,q.reject)};h.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(z){v.reject(z)}};h.prototype.then=function(f,q){function v(t,x){return"function"==typeof t?function(D){try{z(t(D))}catch(R){O(R)}}:x}var z,O,ba=new h(function(t,x){z=t;O=x});this.callWhenSettled_(v(f,z),v(q,O));return ba};h.prototype.catch=function(f){return this.then(void 0,f)};h.prototype.callWhenSettled_=function(f,q){function v(){switch(z.state_){case 1:f(z.result_);
break;case 2:q(z.result_);break;default:throw Error("Unexpected state: "+z.state_);}}var z=this;null==this.onSettledCallbacks_?A.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};h.resolve=l;h.reject=function(f){return new h(function(q,v){v(f)})};h.race=function(f){return new h(function(q,v){for(var z=$jscomp.makeIterator(f),O=z.next();!O.done;O=z.next())l(O.value).callWhenSettled_(q,v)})};h.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?l([]):new h(function(z,
O){function ba(D){return function(R){t[D]=R;x--;0==x&&z(t)}}var t=[],x=0;do t.push(void 0),x++,l(v.value).callWhenSettled_(ba(t.length-1),O),v=q.next();while(!v.done)})};return h},"es6","es3");$jscomp.owns=function(k,n){return Object.prototype.hasOwnProperty.call(k,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(k,n){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var h in p)$jscomp.owns(p,h)&&(k[h]=p[h])}return k};
$jscomp.polyfill("Object.assign",function(k){return k||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(k,n,l){if(null==k)throw new TypeError("The 'this' value for String.prototype."+l+" must not be null or undefined");if(n instanceof RegExp)throw new TypeError("First argument to String.prototype."+l+" must not be a regular expression");return k+""};
$jscomp.polyfill("String.prototype.startsWith",function(k){return k?k:function(n,l){var p=$jscomp.checkStringArgs(this,n,"startsWith");n+="";var h=p.length,A=n.length;l=Math.max(0,Math.min(l|0,p.length));for(var f=0;f<A&&l<h;)if(p[l++]!=n[f++])return!1;return f>=A}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(l<p)for(;p<h;)p in this?this[l++]=this[p++]:(delete this[l++],p++);else for(h=Math.min(h,A+p-l),l+=h-p;h>p;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16<c-b&&e.buffer&&ya)return ya.decode(e.subarray(b,c));for(d="";b<c;){var g=e[b++];if(g&128){var t=e[b++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var X=e[b++]&63;g=224==
(g&240)?(g&15)<<12|t<<6|X:(g&7)<<18|t<<12|X<<6|e[b++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(fa,e,b):""}function A(e){za=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=fa=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);Aa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");oa(e);throw e;}function q(e){try{if(e==Q&&ha)return new Uint8Array(ha);if(pa)return pa(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!ha&&(Ba||ia)){if("function"==typeof fetch&&!Q.startsWith("file://"))return fetch(Q,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Q+"'";return e.arrayBuffer()}).catch(function(){return q(Q)});
if(qa)return new Promise(function(e,b){qa(Q,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(Q)})}function z(e){for(;0<e.length;){var b=e.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?F(c)():F(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function F(e){var b=ka[e];b||(e>=ka.length&&(ka.length=e+1),ka[e]=b=Ca.get(e));return b}function ea(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type=
function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);
this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(Da(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function P(e){function b(){if(!la&&(la=!0,a.calledRun=!0,
!Aa)){Ea=!0;z(ra);Fa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ga.unshift(a.postRun.shift());z(Ga)}}if(!(0<ba)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Ha.unshift(a.preRun.shift());z(Ha);0<ba||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function u(){}function x(e){return(e||u).__cache__}
function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||u).prototype);d.ptr=e;return c[e]=d}function aa(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var X=e.charCodeAt(++g);t=65536+((t&1023)<<10)|X&1023}if(127>=t){if(c>=d)break;
b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function sa(e){if("object"===typeof e){var b=r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ia();x(S)[this.ptr]=this}function R(){this.ptr=Ja();x(R)[this.ptr]=
this}function W(){this.ptr=Ka();x(W)[this.ptr]=this}function w(){this.ptr=La();x(w)[this.ptr]=this}function C(){this.ptr=Ma();x(C)[this.ptr]=this}function G(){this.ptr=Na();x(G)[this.ptr]=this}function H(){this.ptr=Oa();x(H)[this.ptr]=this}function E(){this.ptr=Pa();x(E)[this.ptr]=this}function T(){this.ptr=Qa();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ra();x(I)[this.ptr]=this}function J(){this.ptr=Sa();x(J)[this.ptr]=this}function K(){this.ptr=
Ta();x(K)[this.ptr]=this}function L(){this.ptr=Ua();x(L)[this.ptr]=this}function M(){this.ptr=Va();x(M)[this.ptr]=this}function N(){this.ptr=Wa();x(N)[this.ptr]=this}function O(){this.ptr=Xa();x(O)[this.ptr]=this}function y(){this.ptr=Ya();x(y)[this.ptr]=this}function m(){this.ptr=Za();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Fa,oa;a.ready=new Promise(function(e,b){Fa=e;oa=b});var $a=!1,ab=!1;a.onRuntimeInitialized=function(){$a=!0;if(ab&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};
a.onModuleParsed=function(){ab=!0;if($a&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var bb=Object.assign({},a),Ba="object"==typeof window,ia="function"==typeof importScripts,cb="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="",ta,ma;if(cb){U=ia?require("path").dirname(U)+
"/":__dirname+"/";var db=function(){ma||(ta=require("fs"),ma=require("path"))};var eb=function(e,b){db();e=ma.normalize(e);return ta.readFileSync(e,b?void 0:"utf8")};var pa=function(e){e=eb(e,!0);e.buffer||(e=new Uint8Array(e));return e};var qa=function(e,b,c){db();e=ma.normalize(e);ta.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(Ba||ia)ia?U=self.location.href:
"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),k&&(U=k),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",eb=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},ia&&(pa=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),qa=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";
d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var Ad=a.print||console.log.bind(console),da=a.printErr||console.warn.bind(console);Object.assign(a,bb);bb=null;var ha;a.wasmBinary&&(ha=a.wasmBinary);"object"!=typeof WebAssembly&&f("no native wasm support detected");var na,Aa=!1,ya="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,za,Y,fa,ca,V,Ca,Ha=[],ra=[],Ga=[],Ea=!1,ba=0,ua=null,ja=null;var Q="draco_decoder.wasm";Q.startsWith("data:application/octet-stream;base64,")||
(Q=l(Q));var ka=[],Bd=0,Cd=[null,[],[]],Dd={c:function(e){return fb(e+24)+24},b:function(e,b,c){(new ea(e)).init(b,c);Bd++;throw e;},a:function(){f("")},h:function(e,b,c){fa.copyWithin(e,b,b+c)},f:function(e){var b=fa.length;e>>>=0;if(2147483648<e)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{na.grow(g-za.byteLength+65535>>>16);A(na.buffer);var t=1;break a}catch(X){}t=void 0}if(t)return!0}return!1},
g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,t=0;t<c;t++){var X=V[b>>2],gb=V[b+4>>2];b+=8;for(var va=0;va<gb;va++){var wa=fa[X+va],xa=Cd[e];0===wa||10===wa?((1===e?Ad:da)(p(xa,0)),xa.length=0):xa.push(wa)}g+=gb}V[d>>2]=g;return 0}};(function(){function e(g,t){a.asm=g.exports;na=a.asm.i;A(na.buffer);Ca=a.asm.k;ra.unshift(a.asm.j);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ua&&(clearInterval(ua),ua=null),ja&&(g=ja,ja=null,
g()))}function b(g){e(g.instance)}function c(g){return v().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);f(t)})}var d={a:Dd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ha||"function"!=typeof WebAssembly.instantiateStreaming||Q.startsWith("data:application/octet-stream;base64,")||
Q.startsWith("file://")||cb||"function"!=typeof fetch?c(b):fetch(Q,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(oa);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var hb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(hb=a._emscripten_bind_VoidPtr___destroy___0=
a.asm.l).apply(null,arguments)},Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},ib=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(ib=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.n).apply(null,arguments)},jb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(jb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=
function(){return(Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},kb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(kb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.q).apply(null,arguments)},lb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(lb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
function(){return(Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},mb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(mb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null,arguments)},La=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(La=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_size_0=function(){return(nb=a._emscripten_bind_PointAttribute_size_0=
a.asm.v).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(pb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(qb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null,
arguments)},rb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(rb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(sb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.A).apply(null,arguments)},tb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(tb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},ub=a._emscripten_bind_PointAttribute_byte_offset_0=
function(){return(ub=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},vb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(vb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},wb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(wb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ma=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ma=
a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null,arguments)},yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)},
zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.J).apply(null,arguments)},Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=
a.asm.K).apply(null,arguments)},Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=
function(){return(Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Oa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Oa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Fb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Fb=
a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Gb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Gb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Hb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Hb=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null,arguments)},Pa=a._emscripten_bind_Mesh_Mesh_0=function(){return(Pa=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Ib=a._emscripten_bind_Mesh_num_faces_0=
function(){return(Ib=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Jb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Jb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Kb=a._emscripten_bind_Mesh_num_points_0=function(){return(Kb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null,arguments)},Lb=a._emscripten_bind_Mesh___destroy___0=function(){return(Lb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},Qa=a._emscripten_bind_Metadata_Metadata_0=
function(){return(Qa=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Mb=a._emscripten_bind_Metadata___destroy___0=function(){return(Mb=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Nb=a._emscripten_bind_Status_code_0=function(){return(Nb=a._emscripten_bind_Status_code_0=a.asm._).apply(null,arguments)},Ob=a._emscripten_bind_Status_ok_0=function(){return(Ob=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Pb=a._emscripten_bind_Status_error_msg_0=
function(){return(Pb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Qb=a._emscripten_bind_Status___destroy___0=function(){return(Qb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=
a.asm.da).apply(null,arguments)},Sb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Sb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.fa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=
function(){return(Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=
a.asm.ka).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ma).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=
function(){return(Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},$b=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt16Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt16Array___destroy___0=
a.asm.ra).apply(null,arguments)},Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt16Array___destroy___0=
function(){return(ec=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.wa).apply(null,arguments)},fc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(fc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},gc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(gc=a._emscripten_bind_DracoInt32Array_size_0=
a.asm.ya).apply(null,arguments)},hc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(hc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)},
jc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(jc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},kc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(kc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Da).apply(null,arguments)},Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=
function(){return(lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=
a.asm.Ia).apply(null,arguments)},pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)},
sc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(sc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Za=a._emscripten_bind_Decoder_Decoder_0=function(){return(Za=a._emscripten_bind_Decoder_Decoder_0=a.asm.Na).apply(null,arguments)},tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(uc=
a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=
a.asm.Sa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(yc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ua).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(Ac=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=
function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=
a.asm.Za).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null,
arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null,
arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=
a.asm.gb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=
a.asm.jb).apply(null,arguments)},Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=
a.asm.mb).apply(null,arguments)},Uc=a._emscripten_bind_Decoder___destroy___0=function(){return(Uc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.ob).apply(null,arguments)},Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=
a.asm.pb).apply(null,arguments)},Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=
function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=
function(){return(bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=
function(){return(ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INVALID=
function(){return(hd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Db).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null,
arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(nd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(od=
a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(pd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null,arguments)},rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null,
arguments)},sd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(sd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_OK=function(){return(ud=a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(vd=
a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Rb).apply(null,arguments)},yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=
a.asm.Sb).apply(null,arguments)},zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},fb=a._malloc=function(){return(fb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)};var Da=a.___cxa_is_pointer_type=function(){return(Da=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)},la;ja=function b(){la||P();la||(ja=b)};a.run=P;if(a.preInit)for("function"==
typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();P();u.prototype=Object.create(u.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.WrapperObject=u;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=
function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||f(void 0));r.pos=0},alloc:function(b,c){r.buffer||f(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||f(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):
(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};Z.prototype=Object.create(u.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=Z;Z.__cache__={};a.VoidPtr=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){hb(this.ptr)};S.prototype=Object.create(u.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=
S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);ib(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){jb(this.ptr)};R.prototype=Object.create(u.prototype);R.prototype.constructor=R;R.prototype.__class__=R;R.__cache__={};a.AttributeTransformData=R;R.prototype.transform_type=R.prototype.transform_type=function(){return kb(this.ptr)};R.prototype.__destroy__=R.prototype.__destroy__=function(){lb(this.ptr)};W.prototype=
Object.create(u.prototype);W.prototype.constructor=W;W.prototype.__class__=W;W.__cache__={};a.GeometryAttribute=W;W.prototype.__destroy__=W.prototype.__destroy__=function(){mb(this.ptr)};w.prototype=Object.create(u.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return nb(this.ptr)};w.prototype.GetAttributeTransformData=w.prototype.GetAttributeTransformData=function(){return D(ob(this.ptr),R)};w.prototype.attribute_type=
w.prototype.attribute_type=function(){return pb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return qb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return rb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!sb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return tb(this.ptr)};w.prototype.byte_offset=w.prototype.byte_offset=function(){return ub(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=
function(){return vb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){wb(this.ptr)};C.prototype=Object.create(u.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!xb(c,b)};C.prototype.quantization_bits=C.prototype.quantization_bits=function(){return yb(this.ptr)};C.prototype.min_value=C.prototype.min_value=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return zb(c,b)};C.prototype.range=C.prototype.range=function(){return Ab(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){Bb(this.ptr)};G.prototype=Object.create(u.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!Cb(c,b)};G.prototype.quantization_bits=
G.prototype.quantization_bits=function(){return Db(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Eb(this.ptr)};H.prototype=Object.create(u.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return Fb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return Gb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Hb(this.ptr)};E.prototype=
Object.create(u.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Ib(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Jb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Kb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Lb(this.ptr)};T.prototype=Object.create(u.prototype);T.prototype.constructor=T;T.prototype.__class__=
T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Mb(this.ptr)};B.prototype=Object.create(u.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Nb(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Ob(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Pb(this.ptr))};B.prototype.__destroy__=B.prototype.__destroy__=function(){Qb(this.ptr)};I.prototype=
Object.create(u.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rb(c,b)};I.prototype.size=I.prototype.size=function(){return Sb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Tb(this.ptr)};J.prototype=Object.create(u.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=
J.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Ub(c,b)};J.prototype.size=J.prototype.size=function(){return Vb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Wb(this.ptr)};K.prototype=Object.create(u.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Xb(c,b)};K.prototype.size=K.prototype.size=
function(){return Yb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Zb(this.ptr)};L.prototype=Object.create(u.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return $b(c,b)};L.prototype.size=L.prototype.size=function(){return ac(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){bc(this.ptr)};M.prototype=Object.create(u.prototype);
M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return cc(c,b)};M.prototype.size=M.prototype.size=function(){return dc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){ec(this.ptr)};N.prototype=Object.create(u.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return fc(c,b)};N.prototype.size=N.prototype.size=function(){return gc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){hc(this.ptr)};O.prototype=Object.create(u.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ic(c,b)};O.prototype.size=O.prototype.size=function(){return jc(this.ptr)};
O.prototype.__destroy__=O.prototype.__destroy__=function(){kc(this.ptr)};y.prototype=Object.create(u.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.MetadataQuerier=y;y.prototype.HasEntry=y.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return!!lc(d,b,c)};y.prototype.GetIntEntry=y.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===
typeof c?c.ptr:aa(c);return mc(d,b,c)};y.prototype.GetIntEntryArray=y.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);d&&"object"===typeof d&&(d=d.ptr);nc(g,b,c,d)};y.prototype.GetDoubleEntry=y.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return oc(d,b,c)};y.prototype.GetStringEntry=y.prototype.GetStringEntry=function(b,
c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return h(pc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return qc(c,b)};y.prototype.GetEntryName=y.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return h(rc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){sc(this.ptr)};m.prototype=Object.create(u.prototype);
m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(tc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);return D(uc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return vc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return wc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=
this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);d=d&&"object"===typeof d?d.ptr:aa(d);return xc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(yc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(zc(d,b,
c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return D(Ac(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Bc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Dc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Jc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);return!!Lc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Mc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Nc(g,
b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Oc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var X=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&
(g=g.ptr);t&&"object"===typeof t&&(t=t.ptr);return!!Pc(X,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Sc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Tc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Uc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Vc();a.ATTRIBUTE_NO_TRANSFORM=Wc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Xc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Yc();a.INVALID=Zc();
a.POSITION=$c();a.NORMAL=ad();a.COLOR=bd();a.TEX_COORD=cd();a.GENERIC=dd();a.INVALID_GEOMETRY_TYPE=ed();a.POINT_CLOUD=fd();a.TRIANGULAR_MESH=gd();a.DT_INVALID=hd();a.DT_INT8=id();a.DT_UINT8=jd();a.DT_INT16=kd();a.DT_UINT16=ld();a.DT_INT32=md();a.DT_UINT32=nd();a.DT_INT64=od();a.DT_UINT64=pd();a.DT_FLOAT32=qd();a.DT_FLOAT64=rd();a.DT_BOOL=sd();a.DT_TYPES_COUNT=td();a.OK=ud();a.DRACO_ERROR=vd();a.IO_ERROR=wd();a.INVALID_PARAMETER=xd();a.UNSUPPORTED_VERSION=yd();a.UNKNOWN_VERSION=zd()}Ea?b():ra.unshift(b)})();
if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);
var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16<c-b&&e.buffer&&ua)return ua.decode(e.subarray(b,c));for(d="";b<c;){var g=e[b++];if(g&128){var u=e[b++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|u);else{var X=e[b++]&63;g=224==
(g&240)?(g&15)<<12|u<<6|X:(g&7)<<18|u<<12|X<<6|e[b++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):""}function A(e){va=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return q(P)});
if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0<e.length;)e.shift()(a)}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+
12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+
16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0<aa)){if(a.preRun)for("function"==
typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Ca.unshift(a.preRun.shift());z(Ca);0<aa||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function t(){}function x(e){return(e||t).__cache__}function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||t).prototype);d.ptr=e;return c[e]=d}function R(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=
d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var u=e.charCodeAt(g);if(55296<=u&&57343>=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if("object"===typeof e){var b=
r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr=
La();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]=
this}n=n||{};var a="undefined"!=typeof n?n:{},Aa,ja;a.ready=new Promise(function(e,b){Aa=e;ja=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var Xa=Object.assign({},
a),xa="object"==typeof window,ha="function"==typeof importScripts,Ya="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ya){U=ha?require("path").dirname(U)+"/":__dirname+"/";if("function"===typeof require){var Za=require("fs");var $a=require("path")}var ab=function(e,b){e=$a.normalize(e);return Za.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=ab(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,b,c){e=$a.normalize(e);
Za.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(xa||ha)ha?U=self.location.href:"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),k&&(U=k),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",ab=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},ha&&
(ma=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var wd=a.print||console.log.bind(console),da=a.printErr||console.warn.bind(console);Object.assign(a,Xa);Xa=null;var fa;a.wasmBinary&&(fa=a.wasmBinary);"object"!=typeof WebAssembly&&
f("no native wasm support detected");var la,wa=!1,ua="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,va,Y,ea,ca,V,Ca=[],oa=[],Ba=[],za=!1,aa=0,qa=null,ia=null;var P="draco_decoder.wasm";P.startsWith("data:application/octet-stream;base64,")||(P=l(P));var xd=0,yd=[null,[],[]],zd={c:function(e){return bb(e+24)+24},b:function(e,b,c){(new O(e)).init(b,c);xd++;throw e;},a:function(){f("")},h:function(e,b,c){ea.copyWithin(e,b,b+c)},f:function(e){var b=ea.length;e>>>=0;if(2147483648<e)return!1;
for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-va.byteLength+65535>>>16);A(la.buffer);var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,u=0;u<c;u++){var X=V[b>>2],cb=V[b+4>>2];b+=8;for(var ra=0;ra<cb;ra++){var sa=ea[X+ra],ta=yd[e];0===sa||10===sa?((1===e?wd:da)(p(ta,0)),ta.length=0):ta.push(sa)}g+=
cb}V[d>>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;la=a.asm.i;A(la.buffer);oa.unshift(a.asm.j);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==qa&&(clearInterval(qa),qa=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);f(u)})}var d={a:zd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa);
if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return fa||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ya||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation");
return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var db=a._emscripten_bind_VoidPtr___destroy___0=function(){return(db=a._emscripten_bind_VoidPtr___destroy___0=a.asm.l).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(eb=a._emscripten_bind_DecoderBuffer_Init_2=
a.asm.n).apply(null,arguments)},fb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(fb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(gb=a._emscripten_bind_AttributeTransformData_transform_type_0=
a.asm.q).apply(null,arguments)},hb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(hb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},ib=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(ib=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null,
arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_size_0=function(){return(jb=a._emscripten_bind_PointAttribute_size_0=a.asm.v).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_attribute_type_0=
function(){return(lb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(mb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(nb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_normalized_0=function(){return(ob=a._emscripten_bind_PointAttribute_normalized_0=
a.asm.A).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(qb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(rb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute___destroy___0=
function(){return(sb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null,
arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform_range_0=
a.asm.J).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.K).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=
function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=
function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Db=a._emscripten_bind_PointCloud___destroy___0=function(){return(Db=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null,
arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Gb=a._emscripten_bind_Mesh_num_points_0=function(){return(Gb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null,
arguments)},Hb=a._emscripten_bind_Mesh___destroy___0=function(){return(Hb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Ib=a._emscripten_bind_Metadata___destroy___0=function(){return(Ib=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Jb=a._emscripten_bind_Status_code_0=function(){return(Jb=a._emscripten_bind_Status_code_0=
a.asm._).apply(null,arguments)},Kb=a._emscripten_bind_Status_ok_0=function(){return(Kb=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Lb=a._emscripten_bind_Status_error_msg_0=function(){return(Lb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Mb=a._emscripten_bind_Status___destroy___0=function(){return(Mb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=
a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.da).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Pb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Pb=a._emscripten_bind_DracoFloat32Array___destroy___0=
a.asm.fa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Rb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt8Array___destroy___0=
function(){return(Sb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ka).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Ub=a._emscripten_bind_DracoUInt8Array_size_0=
a.asm.ma).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Xb=
a._emscripten_bind_DracoInt16Array_size_0=function(){return(Xb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Yb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1=
function(){return(Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array_size_0=function(){return($b=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(ac=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=
a.asm.wa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(bc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(cc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ya).apply(null,arguments)},dc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(dc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=
function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(fc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},gc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(gc=a._emscripten_bind_DracoUInt32Array___destroy___0=
a.asm.Da).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},jc=
a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ia).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_NumEntries_1=
function(){return(mc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(oc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=
a.asm.Na).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=
function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Sa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=
a.asm.Ua).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(wc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=
function(){return(zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Za).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Cc=
a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Fc=
a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=
function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=
function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.jb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=
function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.mb).apply(null,arguments)},Qc=a._emscripten_bind_Decoder___destroy___0=function(){return(Qc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
a.asm.ob).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.pb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=
function(){return(Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
function(){return(cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT8=
a.asm.Db).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT32=
function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null,
arguments)},nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(od=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_OK=function(){return(qd=
a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
a.asm.Rb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Sb).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)};
var ya=a.___cxa_is_pointer_type=function(){return(ya=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var ka;ia=function b(){ka||ba();ka||(ia=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();ba();t.prototype=Object.create(t.prototype);t.prototype.constructor=t;t.prototype.__class__=t;t.__cache__={};a.WrapperObject=t;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,
c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=
0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||f(void 0));r.pos=0},alloc:function(b,c){r.buffer||f(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||f(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};Z.prototype=Object.create(t.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=
Z;Z.__cache__={};a.VoidPtr=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){db(this.ptr)};S.prototype=Object.create(t.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=pa(b));c&&"object"===typeof c&&(c=c.ptr);eb(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){fb(this.ptr)};Q.prototype=Object.create(t.prototype);Q.prototype.constructor=
Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=function(){return gb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){hb(this.ptr)};W.prototype=Object.create(t.prototype);W.prototype.constructor=W;W.prototype.__class__=W;W.__cache__={};a.GeometryAttribute=W;W.prototype.__destroy__=W.prototype.__destroy__=function(){ib(this.ptr)};w.prototype=Object.create(t.prototype);w.prototype.constructor=w;w.prototype.__class__=
w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return jb(this.ptr)};w.prototype.GetAttributeTransformData=w.prototype.GetAttributeTransformData=function(){return D(kb(this.ptr),Q)};w.prototype.attribute_type=w.prototype.attribute_type=function(){return lb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return mb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return nb(this.ptr)};w.prototype.normalized=w.prototype.normalized=
function(){return!!ob(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return pb(this.ptr)};w.prototype.byte_offset=w.prototype.byte_offset=function(){return qb(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=function(){return rb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){sb(this.ptr)};C.prototype=Object.create(t.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=
C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!tb(c,b)};C.prototype.quantization_bits=C.prototype.quantization_bits=function(){return ub(this.ptr)};C.prototype.min_value=C.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return vb(c,b)};C.prototype.range=C.prototype.range=function(){return wb(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){xb(this.ptr)};F.prototype=Object.create(t.prototype);
F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.AttributeOctahedronTransform=F;F.prototype.InitFromAttribute=F.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!yb(c,b)};F.prototype.quantization_bits=F.prototype.quantization_bits=function(){return zb(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){Ab(this.ptr)};G.prototype=Object.create(t.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__=
{};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Bb(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Cb(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Db(this.ptr)};E.prototype=Object.create(t.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Eb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Fb(this.ptr)};
E.prototype.num_points=E.prototype.num_points=function(){return Gb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Hb(this.ptr)};T.prototype=Object.create(t.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Ib(this.ptr)};B.prototype=Object.create(t.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Jb(this.ptr)};
B.prototype.ok=B.prototype.ok=function(){return!!Kb(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Lb(this.ptr))};B.prototype.__destroy__=B.prototype.__destroy__=function(){Mb(this.ptr)};H.prototype=Object.create(t.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoFloat32Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Nb(c,b)};H.prototype.size=H.prototype.size=function(){return Ob(this.ptr)};
H.prototype.__destroy__=H.prototype.__destroy__=function(){Pb(this.ptr)};I.prototype=Object.create(t.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Qb(c,b)};I.prototype.size=I.prototype.size=function(){return Rb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Sb(this.ptr)};J.prototype=Object.create(t.prototype);J.prototype.constructor=
J;J.prototype.__class__=J;J.__cache__={};a.DracoUInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Tb(c,b)};J.prototype.size=J.prototype.size=function(){return Ub(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Vb(this.ptr)};K.prototype=Object.create(t.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoInt16Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Wb(c,b)};K.prototype.size=K.prototype.size=function(){return Xb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Yb(this.ptr)};L.prototype=Object.create(t.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoUInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Zb(c,b)};L.prototype.size=L.prototype.size=function(){return $b(this.ptr)};
L.prototype.__destroy__=L.prototype.__destroy__=function(){ac(this.ptr)};M.prototype=Object.create(t.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoInt32Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return bc(c,b)};M.prototype.size=M.prototype.size=function(){return cc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){dc(this.ptr)};N.prototype=Object.create(t.prototype);N.prototype.constructor=
N;N.prototype.__class__=N;N.__cache__={};a.DracoUInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ec(c,b)};N.prototype.size=N.prototype.size=function(){return fc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){gc(this.ptr)};y.prototype=Object.create(t.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.MetadataQuerier=y;y.prototype.HasEntry=y.prototype.HasEntry=function(b,c){var d=
this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return!!hc(d,b,c)};y.prototype.GetIntEntry=y.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return ic(d,b,c)};y.prototype.GetIntEntryArray=y.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d&&"object"===typeof d&&(d=d.ptr);jc(g,b,c,
d)};y.prototype.GetDoubleEntry=y.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return kc(d,b,c)};y.prototype.GetStringEntry=y.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return h(lc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return mc(c,b)};y.prototype.GetEntryName=
y.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return h(nc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){oc(this.ptr)};m.prototype=Object.create(t.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=pa(b));c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(pc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=pa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(qc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return rc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=
function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return sc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d=d&&"object"===typeof d?d.ptr:R(d);return tc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return D(uc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(vc(d,b,c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return D(wc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return D(xc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return zc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=
d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,
d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Jc(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=
m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,u){var X=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&(g=g.ptr);u&&"object"===typeof u&&(u=u.ptr);return!!Lc(X,b,c,d,g,u)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Mc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Nc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Oc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Pc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=
function(){Qc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Rc();a.ATTRIBUTE_NO_TRANSFORM=Sc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Tc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Uc();a.INVALID=Vc();a.POSITION=Wc();a.NORMAL=Xc();a.COLOR=Yc();a.TEX_COORD=Zc();a.GENERIC=$c();a.INVALID_GEOMETRY_TYPE=ad();a.POINT_CLOUD=bd();a.TRIANGULAR_MESH=cd();a.DT_INVALID=dd();a.DT_INT8=ed();a.DT_UINT8=fd();a.DT_INT16=gd();a.DT_UINT16=hd();a.DT_INT32=id();a.DT_UINT32=jd();a.DT_INT64=kd();a.DT_UINT64=ld();
a.DT_FLOAT32=md();a.DT_FLOAT64=nd();a.DT_BOOL=od();a.DT_TYPES_COUNT=pd();a.OK=qd();a.DRACO_ERROR=rd();a.IO_ERROR=sd();a.INVALID_PARAMETER=td();a.UNSUPPORTED_VERSION=ud();a.UNKNOWN_VERSION=vd()}za?b():oa.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;
case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);

View File

@ -5,113 +5,112 @@ var $jscomp$lookupPolyfilledValue=function(h,n){var k=$jscomp.propertyToPolyfill
$jscomp.polyfillUnisolated=function(h,n,k,p){k=$jscomp.global;h=h.split(".");for(p=0;p<h.length-1;p++){var l=h[p];if(!(l in k))return;k=k[l]}h=h[h.length-1];p=k[h];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(k,h,{configurable:!0,writable:!0,value:n})};
$jscomp.polyfillIsolated=function(h,n,k,p){var l=h.split(".");h=1===l.length;p=l[0];p=!h&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var y=0;y<l.length-1;y++){var f=l[y];if(!(f in p))return;p=p[f]}l=l[l.length-1];k=$jscomp.IS_SYMBOL_NATIVE&&"es6"===k?p[l]:null;n=n(k);null!=n&&(h?$jscomp.defineProperty($jscomp.polyfills,l,{configurable:!0,writable:!0,value:n}):n!==k&&(void 0===$jscomp.propertyToPolyfillSymbol[l]&&(k=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE?
$jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))};
$jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,v){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};
var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var v=f[q];f[q]=null;try{v()}catch(A){this.asyncThrow_(A)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var l=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{f(q.resolve,q.reject)}catch(v){q.reject(v)}};l.prototype.createResolveAndReject_=function(){function f(A){return function(O){v||(v=!0,A.call(q,O))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};l.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof l)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
this.fulfill_(f)}};l.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};l.prototype.reject_=function(f){this.settle_(2,f)};l.prototype.fulfill_=function(f){this.settle_(1,f)};l.prototype.settle_=function(f,q){if(0!=this.state_)throw Error("Cannot settle("+f+", "+q+"): Promise already settled in state"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};l.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(f.result_)}},1)};l.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):
"function"===typeof q?f=new q("unhandledrejection",{cancelable:!0}):(f=$jscomp.global.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.result_;return v(f)};l.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)y.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var y=new n;l.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();
f.callWhenSettled_(q.resolve,q.reject)};l.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(A){v.reject(A)}};l.prototype.then=function(f,q){function v(t,x){return"function"==typeof t?function(D){try{A(t(D))}catch(R){O(R)}}:x}var A,O,Z=new l(function(t,x){A=t;O=x});this.callWhenSettled_(v(f,A),v(q,O));return Z};l.prototype.catch=function(f){return this.then(void 0,f)};l.prototype.callWhenSettled_=function(f,q){function v(){switch(A.state_){case 1:f(A.result_);
break;case 2:q(A.result_);break;default:throw Error("Unexpected state: "+A.state_);}}var A=this;null==this.onSettledCallbacks_?y.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};l.resolve=k;l.reject=function(f){return new l(function(q,v){v(f)})};l.race=function(f){return new l(function(q,v){for(var A=$jscomp.makeIterator(f),O=A.next();!O.done;O=A.next())k(O.value).callWhenSettled_(q,v)})};l.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?k([]):new l(function(A,
O){function Z(D){return function(R){t[D]=R;x--;0==x&&A(t)}}var t=[],x=0;do t.push(void 0),x++,k(v.value).callWhenSettled_(Z(t.length-1),O),v=q.next();while(!v.done)})};return l},"es6","es3");$jscomp.owns=function(h,n){return Object.prototype.hasOwnProperty.call(h,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(h,n){for(var k=1;k<arguments.length;k++){var p=arguments[k];if(p)for(var l in p)$jscomp.owns(p,l)&&(h[l]=p[l])}return h};
$jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};
var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var u=f[q];f[q]=null;try{u()}catch(A){this.asyncThrow_(A)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var l=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{f(q.resolve,q.reject)}catch(u){q.reject(u)}};l.prototype.createResolveAndReject_=function(){function f(A){return function(F){u||(u=!0,A.call(q,F))}}var q=this,u=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};l.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof l)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
this.fulfill_(f)}};l.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(u){this.reject_(u);return}"function"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};l.prototype.reject_=function(f){this.settle_(2,f)};l.prototype.fulfill_=function(f){this.settle_(1,f)};l.prototype.settle_=function(f,q){if(0!=this.state_)throw Error("Cannot settle("+f+", "+q+"): Promise already settled in state"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};l.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(f.result_)}},1)};l.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,u=$jscomp.global.dispatchEvent;if("undefined"===typeof u)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):
"function"===typeof q?f=new q("unhandledrejection",{cancelable:!0}):(f=$jscomp.global.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.result_;return u(f)};l.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)y.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var y=new n;l.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();
f.callWhenSettled_(q.resolve,q.reject)};l.prototype.settleSameAsThenable_=function(f,q){var u=this.createResolveAndReject_();try{f.call(q,u.resolve,u.reject)}catch(A){u.reject(A)}};l.prototype.then=function(f,q){function u(w,B){return"function"==typeof w?function(R){try{A(w(R))}catch(Z){F(Z)}}:B}var A,F,v=new l(function(w,B){A=w;F=B});this.callWhenSettled_(u(f,A),u(q,F));return v};l.prototype.catch=function(f){return this.then(void 0,f)};l.prototype.callWhenSettled_=function(f,q){function u(){switch(A.state_){case 1:f(A.result_);
break;case 2:q(A.result_);break;default:throw Error("Unexpected state: "+A.state_);}}var A=this;null==this.onSettledCallbacks_?y.asyncExecute(u):this.onSettledCallbacks_.push(u);this.isRejectionHandled_=!0};l.resolve=k;l.reject=function(f){return new l(function(q,u){u(f)})};l.race=function(f){return new l(function(q,u){for(var A=$jscomp.makeIterator(f),F=A.next();!F.done;F=A.next())k(F.value).callWhenSettled_(q,u)})};l.all=function(f){var q=$jscomp.makeIterator(f),u=q.next();return u.done?k([]):new l(function(A,
F){function v(R){return function(Z){w[R]=Z;B--;0==B&&A(w)}}var w=[],B=0;do w.push(void 0),B++,k(u.value).callWhenSettled_(v(w.length-1),F),u=q.next();while(!u.done)})};return l},"es6","es3");$jscomp.owns=function(h,n){return Object.prototype.hasOwnProperty.call(h,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(h,n){for(var k=1;k<arguments.length;k++){var p=arguments[k];if(p)for(var l in p)$jscomp.owns(p,l)&&(h[l]=p[l])}return h};
$jscomp.polyfill("Object.assign",function(h){return h||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(h,n,k){if(null==h)throw new TypeError("The 'this' value for String.prototype."+k+" must not be null or undefined");if(n instanceof RegExp)throw new TypeError("First argument to String.prototype."+k+" must not be a regular expression");return h+""};
$jscomp.polyfill("String.prototype.startsWith",function(h){return h?h:function(n,k){var p=$jscomp.checkStringArgs(this,n,"startsWith");n+="";var l=p.length,y=n.length;k=Math.max(0,Math.min(k|0,p.length));for(var f=0;f<y&&k<l;)if(p[k++]!=n[f++])return!1;return f>=y}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(k<p)for(;p<l;)p in this?this[k++]=this[p++]:(delete this[k++],p++);else for(l=Math.min(l,y+p-k),k+=l-p;l>p;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16<b-e&&c.buffer&&ua)c=ua.decode(c.subarray(e,b));else{for(d="";e<b;){var g=c[e++];if(g&128){var u=c[e++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|u);else{var aa=c[e++]&
63;g=224==(g&240)?(g&15)<<12|u<<6|aa:(g&7)<<18|u<<12|aa<<6|c[e++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){va=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");na(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(oa)return oa(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(xa||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)});
if(pa)return new Promise(function(e,b){pa(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function v(e){for(;0<e.length;){var b=e.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?A(c)():A(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function A(e){var b=ja[e];b||(e>=ja.length&&(ja.length=e+1),ja[e]=b=ya.get(e));return b}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type=
function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);
this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(za(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function Z(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,
!wa)){Aa=!0;v(qa);Ba(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ca.unshift(a.postRun.shift());v(Ca)}}if(!(0<ba)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Da.unshift(a.preRun.shift());v(Da);0<ba||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function t(){}function x(e){return(e||t).__cache__}
function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||t).prototype);d.ptr=e;return c[e]=d}function R(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var u=e.charCodeAt(g);if(55296<=u&&57343>=u){var aa=e.charCodeAt(++g);u=65536+((u&1023)<<10)|aa&1023}if(127>=u){if(c>=d)break;
b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function ra(e){if("object"===typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ea();x(S)[this.ptr]=this}function Q(){this.ptr=Fa();x(Q)[this.ptr]=
this}function V(){this.ptr=Ga();x(V)[this.ptr]=this}function w(){this.ptr=Ha();x(w)[this.ptr]=this}function C(){this.ptr=Ia();x(C)[this.ptr]=this}function F(){this.ptr=Ja();x(F)[this.ptr]=this}function G(){this.ptr=Ka();x(G)[this.ptr]=this}function E(){this.ptr=La();x(E)[this.ptr]=this}function T(){this.ptr=Ma();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Na();x(H)[this.ptr]=this}function I(){this.ptr=Oa();x(I)[this.ptr]=this}function J(){this.ptr=
Pa();x(J)[this.ptr]=this}function K(){this.ptr=Qa();x(K)[this.ptr]=this}function L(){this.ptr=Ra();x(L)[this.ptr]=this}function M(){this.ptr=Sa();x(M)[this.ptr]=this}function N(){this.ptr=Ta();x(N)[this.ptr]=this}function z(){this.ptr=Ua();x(z)[this.ptr]=this}function m(){this.ptr=Va();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Ba,na;a.ready=new Promise(function(e,b){Ba=e;na=b});var Wa=!1,Xa=!1;a.onRuntimeInitialized=function(){Wa=!0;if(Xa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};
a.onModuleParsed=function(){Xa=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var Ya=Object.assign({},a),xa="object"==typeof window,fa="function"==typeof importScripts,Za="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="",sa,la;if(Za){U=fa?require("path").dirname(U)+
"/":__dirname+"/";var $a=function(){la||(sa=require("fs"),la=require("path"))};var ab=function(e,b){$a();e=la.normalize(e);return sa.readFileSync(e,b?void 0:"utf8")};var oa=function(e){e=ab(e,!0);e.buffer||(e=new Uint8Array(e));return e};var pa=function(e,b,c){$a();e=la.normalize(e);sa.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(xa||fa)fa?U=self.location.href:
"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),h&&(U=h),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",ab=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},fa&&(oa=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),pa=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";
d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var da=a.printErr||console.warn.bind(console);Object.assign(a,Ya);Ya=null;var ea;a.wasmBinary&&(ea=a.wasmBinary);"object"!=typeof WebAssembly&&y("no native wasm support detected");var ma,wa=!1,ua="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,va,W,ia,ca,Y,ya,Da=[],qa=[],Ca=[],Aa=!1,ba=0,ta=null,ha=null;var P="draco_decoder_gltf.wasm";P.startsWith("data:application/octet-stream;base64,")||
(P=k(P));var ja=[],vd=0,wd={c:function(e){return bb(e+24)+24},b:function(e,b,c){(new O(e)).init(b,c);vd++;throw e;},a:function(){y("")},e:function(e,b,c){ia.copyWithin(e,b,b+c)},d:function(e){var b=ia.length;e>>>=0;if(2147483648<e)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{ma.grow(g-va.byteLength+65535>>>16);l(ma.buffer);var u=1;break a}catch(aa){}u=void 0}if(u)return!0}return!1}};
(function(){function e(g,u){a.asm=g.exports;ma=a.asm.f;l(ma.buffer);ya=a.asm.h;qa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ta&&(clearInterval(ta),ta=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);y(u)})}var d={a:wd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);
if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Za||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation");
return c(b)})})})().catch(na);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var cb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(cb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(db=a._emscripten_bind_DecoderBuffer_Init_2=
a.asm.k).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(eb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.m).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(fb=a._emscripten_bind_AttributeTransformData_transform_type_0=
a.asm.n).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(gb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.p).apply(null,arguments)},hb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(hb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null,
arguments)},Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_size_0=function(){return(ib=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_attribute_type_0=
function(){return(kb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(lb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(mb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.w).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(nb=a._emscripten_bind_PointAttribute_normalized_0=
a.asm.x).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(qb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute___destroy___0=
function(){return(rb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null,
arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_range_0=
a.asm.G).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.I).apply(null,arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=
function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Ka=a._emscripten_bind_PointCloud_PointCloud_0=
function(){return(Ka=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Cb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null,
arguments)},La=a._emscripten_bind_Mesh_Mesh_0=function(){return(La=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_faces_0=function(){return(Db=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Eb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.S).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_points_0=function(){return(Fb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null,
arguments)},Gb=a._emscripten_bind_Mesh___destroy___0=function(){return(Gb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ma=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ma=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Hb=a._emscripten_bind_Metadata___destroy___0=function(){return(Hb=a._emscripten_bind_Metadata___destroy___0=a.asm.W).apply(null,arguments)},Ib=a._emscripten_bind_Status_code_0=function(){return(Ib=a._emscripten_bind_Status_code_0=
a.asm.X).apply(null,arguments)},Jb=a._emscripten_bind_Status_ok_0=function(){return(Jb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Kb=a._emscripten_bind_Status_error_msg_0=function(){return(Kb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Lb=a._emscripten_bind_Status___destroy___0=function(){return(Lb=a._emscripten_bind_Status___destroy___0=a.asm._).apply(null,arguments)},Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=
a.asm.$).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=
function(){return(Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt8Array___destroy___0=
a.asm.ga).apply(null,arguments)},Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ia).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array___destroy___0=
function(){return(Ub=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt16Array_size_0=
a.asm.na).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.pa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)},
Zb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return($b=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_GetValue_1=
function(){return(ac=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(bc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(cc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.wa).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=
a.asm.xa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ec=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(fc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=
function(){return(Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Da).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=
a.asm.Ea).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)},
mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(nc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Va=a._emscripten_bind_Decoder_Decoder_0=function(){return(Va=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(oc=
a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Na).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=
a.asm.Oa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)},
vc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(vc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=
function(){return(yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Bc=
a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm._a).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ec=
a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=
function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.eb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=
function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.hb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=
function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder___destroy___0=function(){return(Pc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
a.asm.lb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.nb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=
function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.qb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.tb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.wb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT8=
a.asm.Ab).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(hd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Db).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_UINT32=
function(){return(id=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null,
arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(nd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Kb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_OK=function(){return(pd=
a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
a.asm.Ob).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Rb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)};
var za=a.___cxa_is_pointer_type=function(){return(za=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)},ka;ha=function b(){ka||Z();ka||(ha=b)};a.run=Z;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();Z();t.prototype=Object.create(t.prototype);t.prototype.constructor=t;t.prototype.__class__=t;t.__cache__={};a.WrapperObject=t;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";
b.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||y(void 0));r.pos=0},alloc:function(b,c){r.buffer||y(void 0);b=
b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||y(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};X.prototype=Object.create(t.prototype);X.prototype.constructor=X;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){cb(this.ptr)};S.prototype=
Object.create(t.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=ra(b));c&&"object"===typeof c&&(c=c.ptr);db(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){eb(this.ptr)};Q.prototype=Object.create(t.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=
function(){return fb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){gb(this.ptr)};V.prototype=Object.create(t.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.GeometryAttribute=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){hb(this.ptr)};w.prototype=Object.create(t.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return ib(this.ptr)};w.prototype.GetAttributeTransformData=
w.prototype.GetAttributeTransformData=function(){return D(jb(this.ptr),Q)};w.prototype.attribute_type=w.prototype.attribute_type=function(){return kb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return lb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return mb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!nb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return ob(this.ptr)};w.prototype.byte_offset=
w.prototype.byte_offset=function(){return pb(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=function(){return qb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){rb(this.ptr)};C.prototype=Object.create(t.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!sb(c,b)};C.prototype.quantization_bits=
C.prototype.quantization_bits=function(){return tb(this.ptr)};C.prototype.min_value=C.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ub(c,b)};C.prototype.range=C.prototype.range=function(){return vb(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){wb(this.ptr)};F.prototype=Object.create(t.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.AttributeOctahedronTransform=F;F.prototype.InitFromAttribute=F.prototype.InitFromAttribute=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!xb(c,b)};F.prototype.quantization_bits=F.prototype.quantization_bits=function(){return yb(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){zb(this.ptr)};G.prototype=Object.create(t.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Ab(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Bb(this.ptr)};
G.prototype.__destroy__=G.prototype.__destroy__=function(){Cb(this.ptr)};E.prototype=Object.create(t.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Db(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Eb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Fb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Gb(this.ptr)};T.prototype=
Object.create(t.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Hb(this.ptr)};B.prototype=Object.create(t.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Ib(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Jb(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return p(Kb(this.ptr))};
B.prototype.__destroy__=B.prototype.__destroy__=function(){Lb(this.ptr)};H.prototype=Object.create(t.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoFloat32Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Mb(c,b)};H.prototype.size=H.prototype.size=function(){return Nb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Ob(this.ptr)};I.prototype=Object.create(t.prototype);I.prototype.constructor=
I;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Pb(c,b)};I.prototype.size=I.prototype.size=function(){return Qb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Rb(this.ptr)};J.prototype=Object.create(t.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoUInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Sb(c,b)};J.prototype.size=J.prototype.size=function(){return Tb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Ub(this.ptr)};K.prototype=Object.create(t.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoInt16Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Vb(c,b)};K.prototype.size=K.prototype.size=function(){return Wb(this.ptr)};
K.prototype.__destroy__=K.prototype.__destroy__=function(){Xb(this.ptr)};L.prototype=Object.create(t.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoUInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Yb(c,b)};L.prototype.size=L.prototype.size=function(){return Zb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){$b(this.ptr)};M.prototype=Object.create(t.prototype);M.prototype.constructor=
M;M.prototype.__class__=M;M.__cache__={};a.DracoInt32Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ac(c,b)};M.prototype.size=M.prototype.size=function(){return bc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){cc(this.ptr)};N.prototype=Object.create(t.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoUInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);return dc(c,b)};N.prototype.size=N.prototype.size=function(){return ec(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){fc(this.ptr)};z.prototype=Object.create(t.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.MetadataQuerier=z;z.prototype.HasEntry=z.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return!!gc(d,b,c)};z.prototype.GetIntEntry=
z.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return hc(d,b,c)};z.prototype.GetIntEntryArray=z.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d&&"object"===typeof d&&(d=d.ptr);ic(g,b,c,d)};z.prototype.GetDoubleEntry=z.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=
c&&"object"===typeof c?c.ptr:R(c);return jc(d,b,c)};z.prototype.GetStringEntry=z.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return p(kc(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return lc(c,b)};z.prototype.GetEntryName=z.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=
c.ptr);return p(mc(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){nc(this.ptr)};m.prototype=Object.create(t.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=ra(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(oc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=
function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=ra(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(pc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return qc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?
c.ptr:R(c);return rc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d=d&&"object"===typeof d?d.ptr:R(d);return sc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(tc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=
function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(uc(d,b,c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return D(vc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(wc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,
c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!xc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return yc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=
m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Jc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,u){var aa=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&(g=g.ptr);u&&"object"===typeof u&&(u=u.ptr);return!!Kc(aa,b,c,d,g,u)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Lc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Mc(c,b)};m.prototype.DecodeBufferToPointCloud=
m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Nc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Oc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Pc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Qc();a.ATTRIBUTE_NO_TRANSFORM=Rc();
a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Sc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Tc();a.INVALID=Uc();a.POSITION=Vc();a.NORMAL=Wc();a.COLOR=Xc();a.TEX_COORD=Yc();a.GENERIC=Zc();a.INVALID_GEOMETRY_TYPE=$c();a.POINT_CLOUD=ad();a.TRIANGULAR_MESH=bd();a.DT_INVALID=cd();a.DT_INT8=dd();a.DT_UINT8=ed();a.DT_INT16=fd();a.DT_UINT16=gd();a.DT_INT32=hd();a.DT_UINT32=id();a.DT_INT64=jd();a.DT_UINT64=kd();a.DT_FLOAT32=ld();a.DT_FLOAT64=md();a.DT_BOOL=nd();a.DT_TYPES_COUNT=od();a.OK=pd();a.DRACO_ERROR=qd();a.IO_ERROR=rd();
a.INVALID_PARAMETER=sd();a.UNSUPPORTED_VERSION=td();a.UNKNOWN_VERSION=ud()}Aa?b():qa.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);
var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16<b-e&&c.buffer&&qa)c=qa.decode(c.subarray(e,b));else{for(d="";e<b;){var g=c[e++];if(g&128){var t=c[e++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var aa=c[e++]&
63;g=224==(g&240)?(g&15)<<12|t<<6|aa:(g&7)<<18|t<<12|aa<<6|c[e++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){ra=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)});
if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0<e.length;)e.shift()(a)}function A(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+
12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+
16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0<ba)){if(a.preRun)for("function"==
typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());u(ya);0<ba||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function v(){}function w(e){return(e||v).__cache__}function B(e,b){var c=w(b),d=c[e];if(d)return d;d=Object.create((b||v).prototype);d.ptr=e;return c[e]=d}function R(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=
d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"===
typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]=
this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr=
Qa();w(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},wa,ja;a.ready=new Promise(function(e,b){wa=e;ja=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};
var Ta=Object.assign({},a),ta="object"==typeof window,fa="function"==typeof importScripts,Ua="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ua){U=fa?require("path").dirname(U)+"/":__dirname+"/";if("function"===typeof require){var Va=require("fs");var Wa=require("path")}var Xa=function(e,b){e=Wa.normalize(e);return Va.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=Xa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,
b,c){e=Wa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(ta||fa)fa?U=self.location.href:"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),h&&(U=h),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Xa=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},
fa&&(ma=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var da=a.printErr||console.warn.bind(console);Object.assign(a,Ta);Ta=null;var ea;a.wasmBinary&&(ea=a.wasmBinary);"object"!=typeof WebAssembly&&
y("no native wasm support detected");var la,sa=!1,qa="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,ra,W,ia,ca,Y,ya=[],oa=[],xa=[],va=!1,ba=0,pa=null,ha=null;var P="draco_decoder_gltf.wasm";P.startsWith("data:application/octet-stream;base64,")||(P=k(P));var rd=0,sd={c:function(e){return Ya(e+24)+24},b:function(e,b,c){(new A(e)).init(b,c);rd++;throw e;},a:function(){y("")},e:function(e,b,c){ia.copyWithin(e,b,b+c)},d:function(e){var b=ia.length;e>>>=0;if(2147483648<e)return!1;for(var c=
1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-ra.byteLength+65535>>>16);l(la.buffer);var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;la=a.asm.f;l(la.buffer);oa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==pa&&(clearInterval(pa),pa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(t){return WebAssembly.instantiate(t,
d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:sd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P,
{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Za=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Za=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=
function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},$a=a._emscripten_bind_DecoderBuffer_Init_2=function(){return($a=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.k).apply(null,arguments)},ab=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(ab=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=
a.asm.m).apply(null,arguments)},bb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(bb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.n).apply(null,arguments)},cb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(cb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
a.asm.p).apply(null,arguments)},db=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(db=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_size_0=function(){return(eb=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=
function(){return(fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(gb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(hb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_num_components_0=function(){return(ib=a._emscripten_bind_PointAttribute_num_components_0=
a.asm.w).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(jb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.x).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(kb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(lb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_unique_id_0=
function(){return(mb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(nb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=
function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null,arguments)},pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},rb=
a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.G).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=
a.asm.I).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},vb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(vb=
a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},wb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(wb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},xb=a._emscripten_bind_PointCloud_num_points_0=function(){return(xb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null,
arguments)},yb=a._emscripten_bind_PointCloud___destroy___0=function(){return(yb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_faces_0=function(){return(zb=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Ab=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Ab=a._emscripten_bind_Mesh_num_attributes_0=
a.asm.S).apply(null,arguments)},Bb=a._emscripten_bind_Mesh_num_points_0=function(){return(Bb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null,arguments)},Cb=a._emscripten_bind_Mesh___destroy___0=function(){return(Cb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Db=a._emscripten_bind_Metadata___destroy___0=function(){return(Db=a._emscripten_bind_Metadata___destroy___0=
a.asm.W).apply(null,arguments)},Eb=a._emscripten_bind_Status_code_0=function(){return(Eb=a._emscripten_bind_Status_code_0=a.asm.X).apply(null,arguments)},Fb=a._emscripten_bind_Status_ok_0=function(){return(Fb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Gb=a._emscripten_bind_Status_error_msg_0=function(){return(Gb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Hb=a._emscripten_bind_Status___destroy___0=function(){return(Hb=a._emscripten_bind_Status___destroy___0=
a.asm._).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.$).apply(null,arguments)},Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Jb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Jb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Kb=
a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Kb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Mb=a._emscripten_bind_DracoInt8Array_size_0=
function(){return(Mb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Nb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ga).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1=
a.asm.ia).apply(null,arguments)},Pb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array_GetValue_1=
function(){return(Rb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Sb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.na).apply(null,arguments)},Tb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=
a.asm.pa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=
function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Yb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},Zb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoInt32Array___destroy___0=
a.asm.wa).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.xa).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},bc=a._emscripten_bind_DracoUInt32Array___destroy___0=
function(){return(bc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=
a.asm.Da).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ea).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null,
arguments)},hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(jc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0=
function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeId_2=
a.asm.Na).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Oa).apply(null,arguments)},oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)},
qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(rc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=
function(){return(tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(wc=
a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=
a.asm._a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=
a.asm.bb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=
a.asm.eb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=
a.asm.hb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder___destroy___0=function(){return(Lc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.lb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=
a.asm.nb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=
a.asm.qb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=
a.asm.tb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=
a.asm.wb).apply(null,arguments)},Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},Zc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT8=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ad=
a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Ab).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT32=
a.asm.Db).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_FLOAT32=
function(){return(hd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(jd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=
a.asm.Kb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_OK=function(){return(ld=a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
function(){return(od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Ob).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},Ya=a._malloc=function(){return(Ya=a._malloc=a.asm.Rb).apply(null,
arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var ka;ha=function b(){ka||F();ka||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();F();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=
v;a.getCache=w;a.wrapPointer=B;a.castObject=function(b,c){return B(b.ptr,c)};a.NULL=B(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete w(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);
r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||y(void 0));r.pos=0},alloc:function(b,c){r.buffer||y(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||y(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};X.prototype=
Object.create(v.prototype);X.prototype.constructor=X;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){Za(this.ptr)};S.prototype=Object.create(v.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=Z(b));c&&"object"===typeof c&&(c=c.ptr);$a(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){ab(this.ptr)};
Q.prototype=Object.create(v.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=function(){return bb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){cb(this.ptr)};V.prototype=Object.create(v.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.GeometryAttribute=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){db(this.ptr)};x.prototype=
Object.create(v.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.PointAttribute=x;x.prototype.size=x.prototype.size=function(){return eb(this.ptr)};x.prototype.GetAttributeTransformData=x.prototype.GetAttributeTransformData=function(){return B(fb(this.ptr),Q)};x.prototype.attribute_type=x.prototype.attribute_type=function(){return gb(this.ptr)};x.prototype.data_type=x.prototype.data_type=function(){return hb(this.ptr)};x.prototype.num_components=x.prototype.num_components=
function(){return ib(this.ptr)};x.prototype.normalized=x.prototype.normalized=function(){return!!jb(this.ptr)};x.prototype.byte_stride=x.prototype.byte_stride=function(){return kb(this.ptr)};x.prototype.byte_offset=x.prototype.byte_offset=function(){return lb(this.ptr)};x.prototype.unique_id=x.prototype.unique_id=function(){return mb(this.ptr)};x.prototype.__destroy__=x.prototype.__destroy__=function(){nb(this.ptr)};D.prototype=Object.create(v.prototype);D.prototype.constructor=D;D.prototype.__class__=
D;D.__cache__={};a.AttributeQuantizationTransform=D;D.prototype.InitFromAttribute=D.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!ob(c,b)};D.prototype.quantization_bits=D.prototype.quantization_bits=function(){return pb(this.ptr)};D.prototype.min_value=D.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return qb(c,b)};D.prototype.range=D.prototype.range=function(){return rb(this.ptr)};D.prototype.__destroy__=D.prototype.__destroy__=
function(){sb(this.ptr)};G.prototype=Object.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!tb(c,b)};G.prototype.quantization_bits=G.prototype.quantization_bits=function(){return ub(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){vb(this.ptr)};H.prototype=Object.create(v.prototype);
H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return wb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return xb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){yb(this.ptr)};E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return zb(this.ptr)};
E.prototype.num_attributes=E.prototype.num_attributes=function(){return Ab(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Bb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Cb(this.ptr)};T.prototype=Object.create(v.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Db(this.ptr)};C.prototype=Object.create(v.prototype);C.prototype.constructor=C;C.prototype.__class__=
C;C.__cache__={};a.Status=C;C.prototype.code=C.prototype.code=function(){return Eb(this.ptr)};C.prototype.ok=C.prototype.ok=function(){return!!Fb(this.ptr)};C.prototype.error_msg=C.prototype.error_msg=function(){return p(Gb(this.ptr))};C.prototype.__destroy__=C.prototype.__destroy__=function(){Hb(this.ptr)};I.prototype=Object.create(v.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;
b&&"object"===typeof b&&(b=b.ptr);return Ib(c,b)};I.prototype.size=I.prototype.size=function(){return Jb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Kb(this.ptr)};J.prototype=Object.create(v.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Lb(c,b)};J.prototype.size=J.prototype.size=function(){return Mb(this.ptr)};J.prototype.__destroy__=
J.prototype.__destroy__=function(){Nb(this.ptr)};K.prototype=Object.create(v.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Ob(c,b)};K.prototype.size=K.prototype.size=function(){return Pb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Qb(this.ptr)};L.prototype=Object.create(v.prototype);L.prototype.constructor=L;L.prototype.__class__=
L;L.__cache__={};a.DracoInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rb(c,b)};L.prototype.size=L.prototype.size=function(){return Sb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Tb(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===
typeof b&&(b=b.ptr);return Ub(c,b)};M.prototype.size=M.prototype.size=function(){return Vb(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){Wb(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Xb(c,b)};N.prototype.size=N.prototype.size=function(){return Yb(this.ptr)};N.prototype.__destroy__=
N.prototype.__destroy__=function(){Zb(this.ptr)};O.prototype=Object.create(v.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return $b(c,b)};O.prototype.size=O.prototype.size=function(){return ac(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){bc(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=
z;z.__cache__={};a.MetadataQuerier=z;z.prototype.HasEntry=z.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return!!cc(d,b,c)};z.prototype.GetIntEntry=z.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return dc(d,b,c)};z.prototype.GetIntEntryArray=z.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===
typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d&&"object"===typeof d&&(d=d.ptr);ec(g,b,c,d)};z.prototype.GetDoubleEntry=z.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return fc(d,b,c)};z.prototype.GetStringEntry=z.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return p(gc(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return hc(c,b)};z.prototype.GetEntryName=z.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return p(ic(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){jc(this.ptr)};m.prototype=Object.create(v.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=
function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=Z(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return B(kc(g,b,c,d),C)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=Z(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return B(lc(g,b,c,d),C)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);return mc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return nc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d=d&&"object"===typeof d?d.ptr:R(d);return oc(g,b,c,d)};m.prototype.GetAttribute=
m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(pc(d,b,c),x)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(qc(d,b,c),x)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return B(rc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=
function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(sc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!tc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
return uc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!vc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!wc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!xc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=
b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===
typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var aa=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&(g=g.ptr);t&&"object"===typeof t&&(t=t.ptr);return!!Gc(aa,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Hc(c,
b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Ic(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(Jc(d,b,c),C)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return B(Kc(d,b,c),C)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Lc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Mc();a.ATTRIBUTE_NO_TRANSFORM=Nc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Oc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Pc();a.INVALID=Qc();a.POSITION=Rc();a.NORMAL=Sc();a.COLOR=Tc();a.TEX_COORD=Uc();a.GENERIC=Vc();a.INVALID_GEOMETRY_TYPE=Wc();a.POINT_CLOUD=Xc();a.TRIANGULAR_MESH=Yc();a.DT_INVALID=Zc();a.DT_INT8=$c();a.DT_UINT8=ad();a.DT_INT16=
bd();a.DT_UINT16=cd();a.DT_INT32=dd();a.DT_UINT32=ed();a.DT_INT64=fd();a.DT_UINT64=gd();a.DT_FLOAT32=hd();a.DT_FLOAT64=id();a.DT_BOOL=jd();a.DT_TYPES_COUNT=kd();a.OK=ld();a.DRACO_ERROR=md();a.IO_ERROR=nd();a.INVALID_PARAMETER=od();a.UNSUPPORTED_VERSION=pd();a.UNKNOWN_VERSION=qd()}va?b():oa.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);
if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);

View File

@ -6,7 +6,7 @@
News
=======
Check out the [README](https://github.com/google/draco/blob/1.5.3/README.md)
Check out the [README](https://github.com/google/draco/blob/1.5.4/README.md)
file for news about this release.
Description

View File

@ -7,112 +7,111 @@ $jscomp.polyfillIsolated=function(k,n,l,p){var h=k.split(".");k=1===h.length;p=h
$jscomp.global.Symbol(h):$jscomp.POLYFILL_PREFIX+l+"$"+h),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[h],{configurable:!0,writable:!0,value:n})))};
$jscomp.polyfill("Promise",function(k){function n(){this.batch_=null}function l(f){return f instanceof h?f:new h(function(q,v){q(f)})}if(k&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return k;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};
var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var v=f[q];f[q]=null;try{v()}catch(z){this.asyncThrow_(z)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var h=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{f(q.resolve,q.reject)}catch(v){q.reject(v)}};h.prototype.createResolveAndReject_=function(){function f(z){return function(F){v||(v=!0,z.call(q,F))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};h.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof h)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
try{f(q.resolve,q.reject)}catch(v){q.reject(v)}};h.prototype.createResolveAndReject_=function(){function f(z){return function(O){v||(v=!0,z.call(q,O))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};h.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof h)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
this.fulfill_(f)}};h.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};h.prototype.reject_=function(f){this.settle_(2,f)};h.prototype.fulfill_=function(f){this.settle_(1,f)};h.prototype.settle_=function(f,q){if(0!=this.state_)throw Error("Cannot settle("+f+", "+q+"): Promise already settled in state"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};h.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(f.result_)}},1)};h.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):
"function"===typeof q?f=new q("unhandledrejection",{cancelable:!0}):(f=$jscomp.global.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.result_;return v(f)};h.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)A.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var A=new n;h.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();
f.callWhenSettled_(q.resolve,q.reject)};h.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(z){v.reject(z)}};h.prototype.then=function(f,q){function v(P,u){return"function"==typeof P?function(x){try{z(P(x))}catch(D){F(D)}}:u}var z,F,ea=new h(function(P,u){z=P;F=u});this.callWhenSettled_(v(f,z),v(q,F));return ea};h.prototype.catch=function(f){return this.then(void 0,f)};h.prototype.callWhenSettled_=function(f,q){function v(){switch(z.state_){case 1:f(z.result_);
break;case 2:q(z.result_);break;default:throw Error("Unexpected state: "+z.state_);}}var z=this;null==this.onSettledCallbacks_?A.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};h.resolve=l;h.reject=function(f){return new h(function(q,v){v(f)})};h.race=function(f){return new h(function(q,v){for(var z=$jscomp.makeIterator(f),F=z.next();!F.done;F=z.next())l(F.value).callWhenSettled_(q,v)})};h.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?l([]):new h(function(z,
F){function ea(x){return function(D){P[x]=D;u--;0==u&&z(P)}}var P=[],u=0;do P.push(void 0),u++,l(v.value).callWhenSettled_(ea(P.length-1),F),v=q.next();while(!v.done)})};return h},"es6","es3");$jscomp.owns=function(k,n){return Object.prototype.hasOwnProperty.call(k,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(k,n){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var h in p)$jscomp.owns(p,h)&&(k[h]=p[h])}return k};
f.callWhenSettled_(q.resolve,q.reject)};h.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(z){v.reject(z)}};h.prototype.then=function(f,q){function v(t,x){return"function"==typeof t?function(D){try{z(t(D))}catch(R){O(R)}}:x}var z,O,ba=new h(function(t,x){z=t;O=x});this.callWhenSettled_(v(f,z),v(q,O));return ba};h.prototype.catch=function(f){return this.then(void 0,f)};h.prototype.callWhenSettled_=function(f,q){function v(){switch(z.state_){case 1:f(z.result_);
break;case 2:q(z.result_);break;default:throw Error("Unexpected state: "+z.state_);}}var z=this;null==this.onSettledCallbacks_?A.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};h.resolve=l;h.reject=function(f){return new h(function(q,v){v(f)})};h.race=function(f){return new h(function(q,v){for(var z=$jscomp.makeIterator(f),O=z.next();!O.done;O=z.next())l(O.value).callWhenSettled_(q,v)})};h.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?l([]):new h(function(z,
O){function ba(D){return function(R){t[D]=R;x--;0==x&&z(t)}}var t=[],x=0;do t.push(void 0),x++,l(v.value).callWhenSettled_(ba(t.length-1),O),v=q.next();while(!v.done)})};return h},"es6","es3");$jscomp.owns=function(k,n){return Object.prototype.hasOwnProperty.call(k,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(k,n){for(var l=1;l<arguments.length;l++){var p=arguments[l];if(p)for(var h in p)$jscomp.owns(p,h)&&(k[h]=p[h])}return k};
$jscomp.polyfill("Object.assign",function(k){return k||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(k,n,l){if(null==k)throw new TypeError("The 'this' value for String.prototype."+l+" must not be null or undefined");if(n instanceof RegExp)throw new TypeError("First argument to String.prototype."+l+" must not be a regular expression");return k+""};
$jscomp.polyfill("String.prototype.startsWith",function(k){return k?k:function(n,l){var p=$jscomp.checkStringArgs(this,n,"startsWith");n+="";var h=p.length,A=n.length;l=Math.max(0,Math.min(l|0,p.length));for(var f=0;f<A&&l<h;)if(p[l++]!=n[f++])return!1;return f>=A}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(k){function n(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return k?k:function(l,p,h){var A=this.length;l=n(l);p=n(p);h=void 0===h?A:n(h);l=0>l?Math.max(A+l,0):Math.min(l,A);p=0>p?Math.max(A+p,0):Math.min(p,A);h=0>h?Math.max(A+h,0):Math.min(h,A);if(l<p)for(;p<h;)p in this?this[l++]=this[p++]:(delete this[l++],p++);else for(h=Math.min(h,A+p-l),l+=h-p;h>p;)--h in this?this[--l]=this[h]:delete this[--l];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(k){return k?k:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16<c-b&&e.buffer&&ya)return ya.decode(e.subarray(b,c));for(d="";b<c;){var g=e[b++];if(g&128){var t=e[b++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var X=e[b++]&63;g=224==
(g&240)?(g&15)<<12|t<<6|X:(g&7)<<18|t<<12|X<<6|e[b++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(fa,e,b):""}function A(e){za=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=fa=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);Aa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");oa(e);throw e;}function q(e){try{if(e==Q&&ha)return new Uint8Array(ha);if(pa)return pa(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!ha&&(Ba||ia)){if("function"==typeof fetch&&!Q.startsWith("file://"))return fetch(Q,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+Q+"'";return e.arrayBuffer()}).catch(function(){return q(Q)});
if(qa)return new Promise(function(e,b){qa(Q,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(Q)})}function z(e){for(;0<e.length;){var b=e.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?F(c)():F(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function F(e){var b=ka[e];b||(e>=ka.length&&(ka.length=e+1),ka[e]=b=Ca.get(e));return b}function ea(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type=
function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);
this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(Da(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function P(e){function b(){if(!la&&(la=!0,a.calledRun=!0,
!Aa)){Ea=!0;z(ra);Fa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ga.unshift(a.postRun.shift());z(Ga)}}if(!(0<ba)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Ha.unshift(a.preRun.shift());z(Ha);0<ba||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function u(){}function x(e){return(e||u).__cache__}
function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||u).prototype);d.ptr=e;return c[e]=d}function aa(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var X=e.charCodeAt(++g);t=65536+((t&1023)<<10)|X&1023}if(127>=t){if(c>=d)break;
b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function sa(e){if("object"===typeof e){var b=r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ia();x(S)[this.ptr]=this}function R(){this.ptr=Ja();x(R)[this.ptr]=
this}function W(){this.ptr=Ka();x(W)[this.ptr]=this}function w(){this.ptr=La();x(w)[this.ptr]=this}function C(){this.ptr=Ma();x(C)[this.ptr]=this}function G(){this.ptr=Na();x(G)[this.ptr]=this}function H(){this.ptr=Oa();x(H)[this.ptr]=this}function E(){this.ptr=Pa();x(E)[this.ptr]=this}function T(){this.ptr=Qa();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ra();x(I)[this.ptr]=this}function J(){this.ptr=Sa();x(J)[this.ptr]=this}function K(){this.ptr=
Ta();x(K)[this.ptr]=this}function L(){this.ptr=Ua();x(L)[this.ptr]=this}function M(){this.ptr=Va();x(M)[this.ptr]=this}function N(){this.ptr=Wa();x(N)[this.ptr]=this}function O(){this.ptr=Xa();x(O)[this.ptr]=this}function y(){this.ptr=Ya();x(y)[this.ptr]=this}function m(){this.ptr=Za();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Fa,oa;a.ready=new Promise(function(e,b){Fa=e;oa=b});var $a=!1,ab=!1;a.onRuntimeInitialized=function(){$a=!0;if(ab&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};
a.onModuleParsed=function(){ab=!0;if($a&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var bb=Object.assign({},a),Ba="object"==typeof window,ia="function"==typeof importScripts,cb="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="",ta,ma;if(cb){U=ia?require("path").dirname(U)+
"/":__dirname+"/";var db=function(){ma||(ta=require("fs"),ma=require("path"))};var eb=function(e,b){db();e=ma.normalize(e);return ta.readFileSync(e,b?void 0:"utf8")};var pa=function(e){e=eb(e,!0);e.buffer||(e=new Uint8Array(e));return e};var qa=function(e,b,c){db();e=ma.normalize(e);ta.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(Ba||ia)ia?U=self.location.href:
"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),k&&(U=k),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",eb=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},ia&&(pa=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),qa=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";
d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var Ad=a.print||console.log.bind(console),da=a.printErr||console.warn.bind(console);Object.assign(a,bb);bb=null;var ha;a.wasmBinary&&(ha=a.wasmBinary);"object"!=typeof WebAssembly&&f("no native wasm support detected");var na,Aa=!1,ya="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,za,Y,fa,ca,V,Ca,Ha=[],ra=[],Ga=[],Ea=!1,ba=0,ua=null,ja=null;var Q="draco_decoder.wasm";Q.startsWith("data:application/octet-stream;base64,")||
(Q=l(Q));var ka=[],Bd=0,Cd=[null,[],[]],Dd={c:function(e){return fb(e+24)+24},b:function(e,b,c){(new ea(e)).init(b,c);Bd++;throw e;},a:function(){f("")},h:function(e,b,c){fa.copyWithin(e,b,b+c)},f:function(e){var b=fa.length;e>>>=0;if(2147483648<e)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{na.grow(g-za.byteLength+65535>>>16);A(na.buffer);var t=1;break a}catch(X){}t=void 0}if(t)return!0}return!1},
g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,t=0;t<c;t++){var X=V[b>>2],gb=V[b+4>>2];b+=8;for(var va=0;va<gb;va++){var wa=fa[X+va],xa=Cd[e];0===wa||10===wa?((1===e?Ad:da)(p(xa,0)),xa.length=0):xa.push(wa)}g+=gb}V[d>>2]=g;return 0}};(function(){function e(g,t){a.asm=g.exports;na=a.asm.i;A(na.buffer);Ca=a.asm.k;ra.unshift(a.asm.j);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ua&&(clearInterval(ua),ua=null),ja&&(g=ja,ja=null,
g()))}function b(g){e(g.instance)}function c(g){return v().then(function(t){return WebAssembly.instantiate(t,d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);f(t)})}var d={a:Dd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ha||"function"!=typeof WebAssembly.instantiateStreaming||Q.startsWith("data:application/octet-stream;base64,")||
Q.startsWith("file://")||cb||"function"!=typeof fetch?c(b):fetch(Q,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(oa);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var hb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(hb=a._emscripten_bind_VoidPtr___destroy___0=
a.asm.l).apply(null,arguments)},Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ia=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},ib=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(ib=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.n).apply(null,arguments)},jb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(jb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=
function(){return(Ja=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},kb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(kb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.q).apply(null,arguments)},lb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(lb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
function(){return(Ka=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},mb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(mb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null,arguments)},La=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(La=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_size_0=function(){return(nb=a._emscripten_bind_PointAttribute_size_0=
a.asm.v).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ob=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(pb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(qb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null,
arguments)},rb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(rb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(sb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.A).apply(null,arguments)},tb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(tb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},ub=a._emscripten_bind_PointAttribute_byte_offset_0=
function(){return(ub=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},vb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(vb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},wb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(wb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ma=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ma=
a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null,arguments)},yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)},
zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(zb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(Ab=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.J).apply(null,arguments)},Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(Bb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=
a.asm.K).apply(null,arguments)},Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Na=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(Cb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=
function(){return(Db=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Eb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Oa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Oa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Fb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Fb=
a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Gb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Gb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Hb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Hb=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null,arguments)},Pa=a._emscripten_bind_Mesh_Mesh_0=function(){return(Pa=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Ib=a._emscripten_bind_Mesh_num_faces_0=
function(){return(Ib=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Jb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Jb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Kb=a._emscripten_bind_Mesh_num_points_0=function(){return(Kb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null,arguments)},Lb=a._emscripten_bind_Mesh___destroy___0=function(){return(Lb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},Qa=a._emscripten_bind_Metadata_Metadata_0=
function(){return(Qa=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Mb=a._emscripten_bind_Metadata___destroy___0=function(){return(Mb=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Nb=a._emscripten_bind_Status_code_0=function(){return(Nb=a._emscripten_bind_Status_code_0=a.asm._).apply(null,arguments)},Ob=a._emscripten_bind_Status_ok_0=function(){return(Ob=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Pb=a._emscripten_bind_Status_error_msg_0=
function(){return(Pb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Qb=a._emscripten_bind_Status___destroy___0=function(){return(Qb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ra=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoFloat32Array_GetValue_1=
a.asm.da).apply(null,arguments)},Sb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Sb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.fa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Sa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=
function(){return(Ub=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=
a.asm.ka).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ma).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=
function(){return(Ua=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},$b=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt16Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt16Array___destroy___0=
a.asm.ra).apply(null,arguments)},Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Va=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt16Array___destroy___0=
function(){return(ec=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Wa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.wa).apply(null,arguments)},fc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(fc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},gc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(gc=a._emscripten_bind_DracoInt32Array_size_0=
a.asm.ya).apply(null,arguments)},hc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(hc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Xa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ic=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)},
jc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(jc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},kc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(kc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Da).apply(null,arguments)},Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ya=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=
function(){return(lc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(oc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=
a.asm.Ia).apply(null,arguments)},pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(pc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(qc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(rc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)},
sc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(sc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Za=a._emscripten_bind_Decoder_Decoder_0=function(){return(Za=a._emscripten_bind_Decoder_Decoder_0=a.asm.Na).apply(null,arguments)},tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(tc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(uc=
a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=
a.asm.Sa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(yc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ua).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(Ac=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=
function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(Cc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(Dc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ec=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=
a.asm.Za).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Fc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null,
arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null,
arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Mc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Nc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=
a.asm.gb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Oc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Pc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Qc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=
a.asm.jb).apply(null,arguments)},Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Tc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=
a.asm.mb).apply(null,arguments)},Uc=a._emscripten_bind_Decoder___destroy___0=function(){return(Uc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Vc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.ob).apply(null,arguments)},Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Wc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=
a.asm.pb).apply(null,arguments)},Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Xc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Yc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=
function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(ad=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=
function(){return(bd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(cd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(dd=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=
function(){return(ed=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(fd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(gd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INVALID=
function(){return(hd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Db).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null,
arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(nd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(od=
a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(pd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(qd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null,arguments)},rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(rd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null,
arguments)},sd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(sd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(td=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_OK=function(){return(ud=a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(vd=
a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(wd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(xd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Rb).apply(null,arguments)},yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(yd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=
a.asm.Sb).apply(null,arguments)},zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(zd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},fb=a._malloc=function(){return(fb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)};var Da=a.___cxa_is_pointer_type=function(){return(Da=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)},la;ja=function b(){la||P();la||(ja=b)};a.run=P;if(a.preInit)for("function"==
typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();P();u.prototype=Object.create(u.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.WrapperObject=u;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=
function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||f(void 0));r.pos=0},alloc:function(b,c){r.buffer||f(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||f(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):
(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};Z.prototype=Object.create(u.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=Z;Z.__cache__={};a.VoidPtr=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){hb(this.ptr)};S.prototype=Object.create(u.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=
S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);ib(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){jb(this.ptr)};R.prototype=Object.create(u.prototype);R.prototype.constructor=R;R.prototype.__class__=R;R.__cache__={};a.AttributeTransformData=R;R.prototype.transform_type=R.prototype.transform_type=function(){return kb(this.ptr)};R.prototype.__destroy__=R.prototype.__destroy__=function(){lb(this.ptr)};W.prototype=
Object.create(u.prototype);W.prototype.constructor=W;W.prototype.__class__=W;W.__cache__={};a.GeometryAttribute=W;W.prototype.__destroy__=W.prototype.__destroy__=function(){mb(this.ptr)};w.prototype=Object.create(u.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return nb(this.ptr)};w.prototype.GetAttributeTransformData=w.prototype.GetAttributeTransformData=function(){return D(ob(this.ptr),R)};w.prototype.attribute_type=
w.prototype.attribute_type=function(){return pb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return qb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return rb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!sb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return tb(this.ptr)};w.prototype.byte_offset=w.prototype.byte_offset=function(){return ub(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=
function(){return vb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){wb(this.ptr)};C.prototype=Object.create(u.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!xb(c,b)};C.prototype.quantization_bits=C.prototype.quantization_bits=function(){return yb(this.ptr)};C.prototype.min_value=C.prototype.min_value=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return zb(c,b)};C.prototype.range=C.prototype.range=function(){return Ab(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){Bb(this.ptr)};G.prototype=Object.create(u.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!Cb(c,b)};G.prototype.quantization_bits=
G.prototype.quantization_bits=function(){return Db(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Eb(this.ptr)};H.prototype=Object.create(u.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return Fb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return Gb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Hb(this.ptr)};E.prototype=
Object.create(u.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Ib(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Jb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Kb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Lb(this.ptr)};T.prototype=Object.create(u.prototype);T.prototype.constructor=T;T.prototype.__class__=
T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Mb(this.ptr)};B.prototype=Object.create(u.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Nb(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Ob(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Pb(this.ptr))};B.prototype.__destroy__=B.prototype.__destroy__=function(){Qb(this.ptr)};I.prototype=
Object.create(u.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rb(c,b)};I.prototype.size=I.prototype.size=function(){return Sb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Tb(this.ptr)};J.prototype=Object.create(u.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=
J.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Ub(c,b)};J.prototype.size=J.prototype.size=function(){return Vb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Wb(this.ptr)};K.prototype=Object.create(u.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Xb(c,b)};K.prototype.size=K.prototype.size=
function(){return Yb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Zb(this.ptr)};L.prototype=Object.create(u.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return $b(c,b)};L.prototype.size=L.prototype.size=function(){return ac(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){bc(this.ptr)};M.prototype=Object.create(u.prototype);
M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return cc(c,b)};M.prototype.size=M.prototype.size=function(){return dc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){ec(this.ptr)};N.prototype=Object.create(u.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return fc(c,b)};N.prototype.size=N.prototype.size=function(){return gc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){hc(this.ptr)};O.prototype=Object.create(u.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ic(c,b)};O.prototype.size=O.prototype.size=function(){return jc(this.ptr)};
O.prototype.__destroy__=O.prototype.__destroy__=function(){kc(this.ptr)};y.prototype=Object.create(u.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.MetadataQuerier=y;y.prototype.HasEntry=y.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return!!lc(d,b,c)};y.prototype.GetIntEntry=y.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===
typeof c?c.ptr:aa(c);return mc(d,b,c)};y.prototype.GetIntEntryArray=y.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);d&&"object"===typeof d&&(d=d.ptr);nc(g,b,c,d)};y.prototype.GetDoubleEntry=y.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return oc(d,b,c)};y.prototype.GetStringEntry=y.prototype.GetStringEntry=function(b,
c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return h(pc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return qc(c,b)};y.prototype.GetEntryName=y.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return h(rc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){sc(this.ptr)};m.prototype=Object.create(u.prototype);
m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(tc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=sa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);return D(uc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return vc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);return wc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=
this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:aa(c);d=d&&"object"===typeof d?d.ptr:aa(d);return xc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(yc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(zc(d,b,
c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return D(Ac(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Bc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Dc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Jc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);return!!Lc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Mc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Nc(g,
b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Oc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var X=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&
(g=g.ptr);t&&"object"===typeof t&&(t=t.ptr);return!!Pc(X,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Sc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Tc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Uc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Vc();a.ATTRIBUTE_NO_TRANSFORM=Wc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Xc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Yc();a.INVALID=Zc();
a.POSITION=$c();a.NORMAL=ad();a.COLOR=bd();a.TEX_COORD=cd();a.GENERIC=dd();a.INVALID_GEOMETRY_TYPE=ed();a.POINT_CLOUD=fd();a.TRIANGULAR_MESH=gd();a.DT_INVALID=hd();a.DT_INT8=id();a.DT_UINT8=jd();a.DT_INT16=kd();a.DT_UINT16=ld();a.DT_INT32=md();a.DT_UINT32=nd();a.DT_INT64=od();a.DT_UINT64=pd();a.DT_FLOAT32=qd();a.DT_FLOAT64=rd();a.DT_BOOL=sd();a.DT_TYPES_COUNT=td();a.OK=ud();a.DRACO_ERROR=vd();a.IO_ERROR=wd();a.INVALID_PARAMETER=xd();a.UNSUPPORTED_VERSION=yd();a.UNKNOWN_VERSION=zd()}Ea?b():ra.unshift(b)})();
if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);
var DracoDecoderModule=function(){var k="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(k=k||__filename);return function(n){function l(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b,c){var d=b+c;for(c=b;e[c]&&!(c>=d);)++c;if(16<c-b&&e.buffer&&ua)return ua.decode(e.subarray(b,c));for(d="";b<c;){var g=e[b++];if(g&128){var u=e[b++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|u);else{var X=e[b++]&63;g=224==
(g&240)?(g&15)<<12|u<<6|X:(g&7)<<18|u<<12|X<<6|e[b++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}return d}function h(e,b){return e?p(ea,e,b):""}function A(e){va=e;a.HEAP8=Y=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ea=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=V=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function f(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function q(e){try{if(e==P&&fa)return new Uint8Array(fa);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function v(){if(!fa&&(xa||ha)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return q(P)});
if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return q(P)})}function z(e){for(;0<e.length;)e.shift()(a)}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){V[this.ptr+4>>2]=b};this.get_type=function(){return V[this.ptr+4>>2]};this.set_destructor=function(b){V[this.ptr+8>>2]=b};this.get_destructor=function(){return V[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){Y[this.ptr+
12>>0]=b?1:0};this.get_caught=function(){return 0!=Y[this.ptr+12>>0]};this.set_rethrown=function(b){Y[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=Y[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){V[this.ptr+
16>>2]=b};this.get_adjusted_ptr=function(){return V[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ya(this.get_type()))return V[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function ba(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!wa)){za=!0;z(oa);Aa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ba.unshift(a.postRun.shift());z(Ba)}}if(!(0<aa)){if(a.preRun)for("function"==
typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Ca.unshift(a.preRun.shift());z(Ca);0<aa||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function t(){}function x(e){return(e||t).__cache__}function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||t).prototype);d.ptr=e;return c[e]=d}function R(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=
d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var u=e.charCodeAt(g);if(55296<=u&&57343>=u){var X=e.charCodeAt(++g);u=65536+((u&1023)<<10)|X&1023}if(127>=u){if(c>=d)break;b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,Y);r.copy(b,Y,e);return e}return e}function pa(e){if("object"===typeof e){var b=
r.alloc(e,Y);r.copy(e,Y,b);return b}return e}function Z(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Da();x(S)[this.ptr]=this}function Q(){this.ptr=Ea();x(Q)[this.ptr]=this}function W(){this.ptr=Fa();x(W)[this.ptr]=this}function w(){this.ptr=Ga();x(w)[this.ptr]=this}function C(){this.ptr=Ha();x(C)[this.ptr]=this}function F(){this.ptr=Ia();x(F)[this.ptr]=this}function G(){this.ptr=Ja();x(G)[this.ptr]=this}function E(){this.ptr=Ka();x(E)[this.ptr]=this}function T(){this.ptr=
La();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Ma();x(H)[this.ptr]=this}function I(){this.ptr=Na();x(I)[this.ptr]=this}function J(){this.ptr=Oa();x(J)[this.ptr]=this}function K(){this.ptr=Pa();x(K)[this.ptr]=this}function L(){this.ptr=Qa();x(L)[this.ptr]=this}function M(){this.ptr=Ra();x(M)[this.ptr]=this}function N(){this.ptr=Sa();x(N)[this.ptr]=this}function y(){this.ptr=Ta();x(y)[this.ptr]=this}function m(){this.ptr=Ua();x(m)[this.ptr]=
this}n=n||{};var a="undefined"!=typeof n?n:{},Aa,ja;a.ready=new Promise(function(e,b){Aa=e;ja=b});var Va=!1,Wa=!1;a.onRuntimeInitialized=function(){Va=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Wa=!0;if(Va&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var Xa=Object.assign({},
a),xa="object"==typeof window,ha="function"==typeof importScripts,Ya="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ya){U=ha?require("path").dirname(U)+"/":__dirname+"/";if("function"===typeof require){var Za=require("fs");var $a=require("path")}var ab=function(e,b){e=$a.normalize(e);return Za.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=ab(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,b,c){e=$a.normalize(e);
Za.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(xa||ha)ha?U=self.location.href:"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),k&&(U=k),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",ab=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},ha&&
(ma=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};var wd=a.print||console.log.bind(console),da=a.printErr||console.warn.bind(console);Object.assign(a,Xa);Xa=null;var fa;a.wasmBinary&&(fa=a.wasmBinary);"object"!=typeof WebAssembly&&
f("no native wasm support detected");var la,wa=!1,ua="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,va,Y,ea,ca,V,Ca=[],oa=[],Ba=[],za=!1,aa=0,qa=null,ia=null;var P="draco_decoder.wasm";P.startsWith("data:application/octet-stream;base64,")||(P=l(P));var xd=0,yd=[null,[],[]],zd={c:function(e){return bb(e+24)+24},b:function(e,b,c){(new O(e)).init(b,c);xd++;throw e;},a:function(){f("")},h:function(e,b,c){ea.copyWithin(e,b,b+c)},f:function(e){var b=ea.length;e>>>=0;if(2147483648<e)return!1;
for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-va.byteLength+65535>>>16);A(la.buffer);var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},g:function(e){return 52},e:function(e,b,c,d,g){return 70},d:function(e,b,c,d){for(var g=0,u=0;u<c;u++){var X=V[b>>2],cb=V[b+4>>2];b+=8;for(var ra=0;ra<cb;ra++){var sa=ea[X+ra],ta=yd[e];0===sa||10===sa?((1===e?wd:da)(p(ta,0)),ta.length=0):ta.push(sa)}g+=
cb}V[d>>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;la=a.asm.i;A(la.buffer);oa.unshift(a.asm.j);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==qa&&(clearInterval(qa),qa=null),ia&&(g=ia,ia=null,g()))}function b(g){e(g.instance)}function c(g){return v().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);f(u)})}var d={a:zd};aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa);
if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return fa||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ya||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation");
return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.j).apply(null,arguments)};var db=a._emscripten_bind_VoidPtr___destroy___0=function(){return(db=a._emscripten_bind_VoidPtr___destroy___0=a.asm.l).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.m).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(eb=a._emscripten_bind_DecoderBuffer_Init_2=
a.asm.n).apply(null,arguments)},fb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(fb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.o).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.p).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(gb=a._emscripten_bind_AttributeTransformData_transform_type_0=
a.asm.q).apply(null,arguments)},hb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(hb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.r).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.s).apply(null,arguments)},ib=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(ib=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.t).apply(null,
arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.u).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_size_0=function(){return(jb=a._emscripten_bind_PointAttribute_size_0=a.asm.v).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(kb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.w).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_attribute_type_0=
function(){return(lb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.x).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(mb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.y).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(nb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.z).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_normalized_0=function(){return(ob=a._emscripten_bind_PointAttribute_normalized_0=
a.asm.A).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.B).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(qb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.C).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(rb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.D).apply(null,arguments)},sb=a._emscripten_bind_PointAttribute___destroy___0=
function(){return(sb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.E).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.F).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.G).apply(null,
arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.H).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.I).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform_range_0=
a.asm.J).apply(null,arguments)},xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(xb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.K).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.L).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=
function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.M).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.N).apply(null,arguments)},Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(Ab=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.O).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=
function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.P).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.Q).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.R).apply(null,arguments)},Db=a._emscripten_bind_PointCloud___destroy___0=function(){return(Db=a._emscripten_bind_PointCloud___destroy___0=a.asm.S).apply(null,
arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka=a._emscripten_bind_Mesh_Mesh_0=a.asm.T).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.U).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.V).apply(null,arguments)},Gb=a._emscripten_bind_Mesh_num_points_0=function(){return(Gb=a._emscripten_bind_Mesh_num_points_0=a.asm.W).apply(null,
arguments)},Hb=a._emscripten_bind_Mesh___destroy___0=function(){return(Hb=a._emscripten_bind_Mesh___destroy___0=a.asm.X).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.Y).apply(null,arguments)},Ib=a._emscripten_bind_Metadata___destroy___0=function(){return(Ib=a._emscripten_bind_Metadata___destroy___0=a.asm.Z).apply(null,arguments)},Jb=a._emscripten_bind_Status_code_0=function(){return(Jb=a._emscripten_bind_Status_code_0=
a.asm._).apply(null,arguments)},Kb=a._emscripten_bind_Status_ok_0=function(){return(Kb=a._emscripten_bind_Status_ok_0=a.asm.$).apply(null,arguments)},Lb=a._emscripten_bind_Status_error_msg_0=function(){return(Lb=a._emscripten_bind_Status_error_msg_0=a.asm.aa).apply(null,arguments)},Mb=a._emscripten_bind_Status___destroy___0=function(){return(Mb=a._emscripten_bind_Status___destroy___0=a.asm.ba).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=
a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ca).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.da).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ea).apply(null,arguments)},Pb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Pb=a._emscripten_bind_DracoFloat32Array___destroy___0=
a.asm.fa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ga).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ha).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Rb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ia).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt8Array___destroy___0=
function(){return(Sb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ka).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.la).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Ub=a._emscripten_bind_DracoUInt8Array_size_0=
a.asm.ma).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Vb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.na).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.oa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Wb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Xb=
a._emscripten_bind_DracoInt16Array_size_0=function(){return(Xb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.qa).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Yb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.sa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1=
function(){return(Zb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.ta).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array_size_0=function(){return($b=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ua).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(ac=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.va).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=
a.asm.wa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(bc=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(cc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ya).apply(null,arguments)},dc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(dc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=
function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.Aa).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(ec=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Ba).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(fc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ca).apply(null,arguments)},gc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(gc=a._emscripten_bind_DracoUInt32Array___destroy___0=
a.asm.Da).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ea).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Fa).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Ga).apply(null,arguments)},jc=
a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ha).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ia).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ja).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier_NumEntries_1=
function(){return(mc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ka).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(nc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.La).apply(null,arguments)},oc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(oc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ma).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=
a.asm.Na).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Oa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(qc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Pa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Qa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=
function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Ra).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Sa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Ta).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=
a.asm.Ua).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(wc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Va).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Wa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(yc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Xa).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=
function(){return(zc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ya).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Za).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Bc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm._a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Cc=
a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.$a).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.ab).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.bb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Fc=
a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.db).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=
function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.fb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.hb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=
function(){return(Lc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.ib).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Mc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.jb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Nc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.kb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=
function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.lb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Pc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.mb).apply(null,arguments)},Qc=a._emscripten_bind_Decoder___destroy___0=function(){return(Qc=a._emscripten_bind_Decoder___destroy___0=a.asm.nb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
a.asm.ob).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.pb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.qb).apply(null,arguments)},Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=
function(){return(Uc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.rb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.sb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.tb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.ub).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.vb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.wb).apply(null,arguments)},$c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
function(){return($c=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.xb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.yb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.zb).apply(null,arguments)},cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
function(){return(cd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Ab).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Bb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Cb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT8=
a.asm.Db).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Eb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Fb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Gb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT32=
function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Hb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Ib).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Jb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Kb).apply(null,
arguments)},nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(nd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Lb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(od=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Mb).apply(null,arguments)},pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(pd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Nb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_OK=function(){return(qd=
a._emscripten_enum_draco_StatusCode_OK=a.asm.Ob).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Pb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(sd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Qb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(td=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
a.asm.Rb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Sb).apply(null,arguments)},vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(vd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Tb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Ub).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Vb).apply(null,arguments)};
var ya=a.___cxa_is_pointer_type=function(){return(ya=a.___cxa_is_pointer_type=a.asm.Wb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var ka;ia=function b(){ka||ba();ka||(ia=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();ba();t.prototype=Object.create(t.prototype);t.prototype.constructor=t;t.prototype.__class__=t;t.__cache__={};a.WrapperObject=t;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,
c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=
0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||f(void 0));r.pos=0},alloc:function(b,c){r.buffer||f(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||f(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};Z.prototype=Object.create(t.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=
Z;Z.__cache__={};a.VoidPtr=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){db(this.ptr)};S.prototype=Object.create(t.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=pa(b));c&&"object"===typeof c&&(c=c.ptr);eb(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){fb(this.ptr)};Q.prototype=Object.create(t.prototype);Q.prototype.constructor=
Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=function(){return gb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){hb(this.ptr)};W.prototype=Object.create(t.prototype);W.prototype.constructor=W;W.prototype.__class__=W;W.__cache__={};a.GeometryAttribute=W;W.prototype.__destroy__=W.prototype.__destroy__=function(){ib(this.ptr)};w.prototype=Object.create(t.prototype);w.prototype.constructor=w;w.prototype.__class__=
w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return jb(this.ptr)};w.prototype.GetAttributeTransformData=w.prototype.GetAttributeTransformData=function(){return D(kb(this.ptr),Q)};w.prototype.attribute_type=w.prototype.attribute_type=function(){return lb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return mb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return nb(this.ptr)};w.prototype.normalized=w.prototype.normalized=
function(){return!!ob(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return pb(this.ptr)};w.prototype.byte_offset=w.prototype.byte_offset=function(){return qb(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=function(){return rb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){sb(this.ptr)};C.prototype=Object.create(t.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=
C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!tb(c,b)};C.prototype.quantization_bits=C.prototype.quantization_bits=function(){return ub(this.ptr)};C.prototype.min_value=C.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return vb(c,b)};C.prototype.range=C.prototype.range=function(){return wb(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){xb(this.ptr)};F.prototype=Object.create(t.prototype);
F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.AttributeOctahedronTransform=F;F.prototype.InitFromAttribute=F.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!yb(c,b)};F.prototype.quantization_bits=F.prototype.quantization_bits=function(){return zb(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){Ab(this.ptr)};G.prototype=Object.create(t.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__=
{};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Bb(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Cb(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Db(this.ptr)};E.prototype=Object.create(t.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Eb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Fb(this.ptr)};
E.prototype.num_points=E.prototype.num_points=function(){return Gb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Hb(this.ptr)};T.prototype=Object.create(t.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Ib(this.ptr)};B.prototype=Object.create(t.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Jb(this.ptr)};
B.prototype.ok=B.prototype.ok=function(){return!!Kb(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Lb(this.ptr))};B.prototype.__destroy__=B.prototype.__destroy__=function(){Mb(this.ptr)};H.prototype=Object.create(t.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoFloat32Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Nb(c,b)};H.prototype.size=H.prototype.size=function(){return Ob(this.ptr)};
H.prototype.__destroy__=H.prototype.__destroy__=function(){Pb(this.ptr)};I.prototype=Object.create(t.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Qb(c,b)};I.prototype.size=I.prototype.size=function(){return Rb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Sb(this.ptr)};J.prototype=Object.create(t.prototype);J.prototype.constructor=
J;J.prototype.__class__=J;J.__cache__={};a.DracoUInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Tb(c,b)};J.prototype.size=J.prototype.size=function(){return Ub(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Vb(this.ptr)};K.prototype=Object.create(t.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoInt16Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Wb(c,b)};K.prototype.size=K.prototype.size=function(){return Xb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Yb(this.ptr)};L.prototype=Object.create(t.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoUInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Zb(c,b)};L.prototype.size=L.prototype.size=function(){return $b(this.ptr)};
L.prototype.__destroy__=L.prototype.__destroy__=function(){ac(this.ptr)};M.prototype=Object.create(t.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoInt32Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return bc(c,b)};M.prototype.size=M.prototype.size=function(){return cc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){dc(this.ptr)};N.prototype=Object.create(t.prototype);N.prototype.constructor=
N;N.prototype.__class__=N;N.__cache__={};a.DracoUInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ec(c,b)};N.prototype.size=N.prototype.size=function(){return fc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){gc(this.ptr)};y.prototype=Object.create(t.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.MetadataQuerier=y;y.prototype.HasEntry=y.prototype.HasEntry=function(b,c){var d=
this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return!!hc(d,b,c)};y.prototype.GetIntEntry=y.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return ic(d,b,c)};y.prototype.GetIntEntryArray=y.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d&&"object"===typeof d&&(d=d.ptr);jc(g,b,c,
d)};y.prototype.GetDoubleEntry=y.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return kc(d,b,c)};y.prototype.GetStringEntry=y.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return h(lc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return mc(c,b)};y.prototype.GetEntryName=
y.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return h(nc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){oc(this.ptr)};m.prototype=Object.create(t.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=pa(b));c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(pc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=pa(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(qc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return rc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=
function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return sc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d=d&&"object"===typeof d?d.ptr:R(d);return tc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return D(uc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(vc(d,b,c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return D(wc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return D(xc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return zc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=
d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,
d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Jc(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=
m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,u){var X=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&(g=g.ptr);u&&"object"===typeof u&&(u=u.ptr);return!!Lc(X,b,c,d,g,u)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Mc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Nc(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Oc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Pc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=
function(){Qc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Rc();a.ATTRIBUTE_NO_TRANSFORM=Sc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Tc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Uc();a.INVALID=Vc();a.POSITION=Wc();a.NORMAL=Xc();a.COLOR=Yc();a.TEX_COORD=Zc();a.GENERIC=$c();a.INVALID_GEOMETRY_TYPE=ad();a.POINT_CLOUD=bd();a.TRIANGULAR_MESH=cd();a.DT_INVALID=dd();a.DT_INT8=ed();a.DT_UINT8=fd();a.DT_INT16=gd();a.DT_UINT16=hd();a.DT_INT32=id();a.DT_UINT32=jd();a.DT_INT64=kd();a.DT_UINT64=ld();
a.DT_FLOAT32=md();a.DT_FLOAT64=nd();a.DT_BOOL=od();a.DT_TYPES_COUNT=pd();a.OK=qd();a.DRACO_ERROR=rd();a.IO_ERROR=sd();a.INVALID_PARAMETER=td();a.UNSUPPORTED_VERSION=ud();a.UNKNOWN_VERSION=vd()}za?b():oa.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;
case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);

View File

@ -5,94 +5,93 @@ var $jscomp$lookupPolyfilledValue=function(l,p){var m=$jscomp.propertyToPolyfill
$jscomp.polyfillUnisolated=function(l,p,m,r){m=$jscomp.global;l=l.split(".");for(r=0;r<l.length-1;r++){var k=l[r];if(!(k in m))return;m=m[k]}l=l[l.length-1];r=m[l];p=p(r);p!=r&&null!=p&&$jscomp.defineProperty(m,l,{configurable:!0,writable:!0,value:p})};
$jscomp.polyfillIsolated=function(l,p,m,r){var k=l.split(".");l=1===k.length;r=k[0];r=!l&&r in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var C=0;C<k.length-1;C++){var h=k[C];if(!(h in r))return;r=r[h]}k=k[k.length-1];m=$jscomp.IS_SYMBOL_NATIVE&&"es6"===m?r[k]:null;p=p(m);null!=p&&(l?$jscomp.defineProperty($jscomp.polyfills,k,{configurable:!0,writable:!0,value:p}):p!==m&&(void 0===$jscomp.propertyToPolyfillSymbol[k]&&(m=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE?
$jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))};
$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,v){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};
var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var v=h[q];h[q]=null;try{v()}catch(D){this.asyncThrow_(D)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{h(q.resolve,q.reject)}catch(v){q.reject(v)}};k.prototype.createResolveAndReject_=function(){function h(D){return function(G){v||(v=!0,D.call(q,G))}}var q=this,v=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case "object":var q=null!=h;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):
this.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error("Cannot settle("+h+", "+q+"): Promise already settled in state"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof h?h=new h("unhandledrejection",{cancelable:!0}):
"function"===typeof q?h=new q("unhandledrejection",{cancelable:!0}):(h=$jscomp.global.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h));h.promise=this;h.reason=this.result_;return v(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();
h.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var v=this.createResolveAndReject_();try{h.call(q,v.resolve,v.reject)}catch(D){v.reject(D)}};k.prototype.then=function(h,q){function v(B,K){return"function"==typeof B?function(O){try{D(B(O))}catch(R){G(R)}}:K}var D,G,y=new k(function(B,K){D=B;G=K});this.callWhenSettled_(v(h,D),v(q,G));return y};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function v(){switch(D.state_){case 1:h(D.result_);
break;case 2:q(D.result_);break;default:throw Error("Unexpected state: "+D.state_);}}var D=this;null==this.onSettledCallbacks_?C.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,v){v(h)})};k.race=function(h){return new k(function(q,v){for(var D=$jscomp.makeIterator(h),G=D.next();!G.done;G=D.next())m(G.value).callWhenSettled_(q,v)})};k.all=function(h){var q=$jscomp.makeIterator(h),v=q.next();return v.done?m([]):new k(function(D,
G){function y(O){return function(R){B[O]=R;K--;0==K&&D(B)}}var B=[],K=0;do B.push(void 0),K++,m(v.value).callWhenSettled_(y(B.length-1),G),v=q.next();while(!v.done)})};return k},"es6","es3");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};
$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,w){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};
var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var w=h[q];h[q]=null;try{w()}catch(B){this.asyncThrow_(B)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{h(q.resolve,q.reject)}catch(w){q.reject(w)}};k.prototype.createResolveAndReject_=function(){function h(B){return function(v){w||(w=!0,B.call(q,v))}}var q=this,w=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case "object":var q=null!=h;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):
this.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(w){this.reject_(w);return}"function"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error("Cannot settle("+h+", "+q+"): Promise already settled in state"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,w=$jscomp.global.dispatchEvent;if("undefined"===typeof w)return!0;"function"===typeof h?h=new h("unhandledrejection",{cancelable:!0}):
"function"===typeof q?h=new q("unhandledrejection",{cancelable:!0}):(h=$jscomp.global.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h));h.promise=this;h.reason=this.result_;return w(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();
h.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var w=this.createResolveAndReject_();try{h.call(q,w.resolve,w.reject)}catch(B){w.reject(B)}};k.prototype.then=function(h,q){function w(I,J){return"function"==typeof I?function(Q){try{B(I(Q))}catch(R){v(R)}}:J}var B,v,D=new k(function(I,J){B=I;v=J});this.callWhenSettled_(w(h,B),w(q,v));return D};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function w(){switch(B.state_){case 1:h(B.result_);
break;case 2:q(B.result_);break;default:throw Error("Unexpected state: "+B.state_);}}var B=this;null==this.onSettledCallbacks_?C.asyncExecute(w):this.onSettledCallbacks_.push(w);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,w){w(h)})};k.race=function(h){return new k(function(q,w){for(var B=$jscomp.makeIterator(h),v=B.next();!v.done;v=B.next())m(v.value).callWhenSettled_(q,w)})};k.all=function(h){var q=$jscomp.makeIterator(h),w=q.next();return w.done?m([]):new k(function(B,
v){function D(Q){return function(R){I[Q]=R;J--;0==J&&B(I)}}var I=[],J=0;do I.push(void 0),J++,m(w.value).callWhenSettled_(D(I.length-1),v),w=q.next();while(!w.done)})};return k},"es6","es3");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};
$jscomp.polyfill("Object.assign",function(l){return l||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(l,p,m){if(null==l)throw new TypeError("The 'this' value for String.prototype."+m+" must not be null or undefined");if(p instanceof RegExp)throw new TypeError("First argument to String.prototype."+m+" must not be a regular expression");return l+""};
$jscomp.polyfill("String.prototype.startsWith",function(l){return l?l:function(p,m){var r=$jscomp.checkStringArgs(this,p,"startsWith");p+="";var k=r.length,C=p.length;m=Math.max(0,Math.min(m|0,r.length));for(var h=0;h<C&&m<k;)if(r[m++]!=p[h++])return!1;return h>=C}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(m<r)for(;r<k;)r in this?this[m++]=this[r++]:(delete this[m++],r++);else for(k=Math.min(k,C+r-m),m+=k-r;k>r;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){qa=f;a.HEAP8=P=new Int8Array(f);a.HEAP16=ha=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=ia=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ja=new Float32Array(f);a.HEAPF64=new Float64Array(f)}
function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);ra=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ka(f);throw f;}function C(f){try{if(f==J&&X)return new Uint8Array(X);if(la)return la(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(sa||Y)){if("function"==typeof fetch&&!J.startsWith("file://"))return fetch(J,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+
J+"'";return f.arrayBuffer()}).catch(function(){return C(J)});if(ma)return new Promise(function(f,b){ma(J,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(J)})}function q(f){for(;0<f.length;){var b=f.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?v(c)():v(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function v(f){var b=ba[f];b||(f>=ba.length&&(ba.length=f+1),ba[f]=b=ta.get(f));return b}function D(f){this.excPtr=f;this.ptr=
f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=function(b){S[this.ptr>>2]=b};this.set_caught=function(b){P[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=P[this.ptr+12>>0]};this.set_rethrown=function(b){P[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=P[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);
this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function G(f){function b(){if(!ca&&
(ca=!0,a.calledRun=!0,!ra)){va=!0;q(na);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());q(xa)}}if(!(0<U)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());q(ya);0<U||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function y(){}function B(f){return(f||
y).__cache__}function K(f,b){var c=B(b),d=c[f];if(d)return d;d=Object.create((b||y).prototype);d.ptr=f;return c[f]=d}function O(f){if("string"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|f.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=
d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,P);n.copy(b,P,f);return f}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,P);n.copy(f,P,b);return b}return f}function da(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);
n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ja);n.copy(f,ja,b);return b}return f}function Q(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=za();B(M)[this.ptr]=this}function z(){this.ptr=Aa();B(z)[this.ptr]=this}function H(){this.ptr=Ba();B(H)[this.ptr]=this}function E(){this.ptr=Ca();B(E)[this.ptr]=this}function N(){this.ptr=Da();B(N)[this.ptr]=this}function I(){this.ptr=Ea();B(I)[this.ptr]=this}function F(){this.ptr=Fa();
B(F)[this.ptr]=this}function w(){this.ptr=Ga();B(w)[this.ptr]=this}function u(){this.ptr=Ha();B(u)[this.ptr]=this}function x(){this.ptr=Ia();B(x)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ja(f);B(A)[this.ptr]=this}p=p||{};var a="undefined"!=typeof p?p:{},wa,ka;a.ready=new Promise(function(f,b){wa=f;ka=b});var Ka=!1,La=!1;a.onRuntimeInitialized=function(){Ka=!0;if(La&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){La=!0;if(Ka&&"function"===
typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ma=Object.assign({},a),sa="object"==typeof window,Y="function"==typeof importScripts,Na="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,L="",oa,ea;if(Na){L=Y?require("path").dirname(L)+"/":__dirname+"/";var Oa=function(){ea||(oa=require("fs"),
ea=require("path"))};var Pa=function(f,b){Oa();f=ea.normalize(f);return oa.readFileSync(f,b?void 0:"utf8")};var la=function(f){f=Pa(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ma=function(f,b,c){Oa();f=ea.normalize(f);oa.readFile(f,function(d,e){d?c(d):b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(sa||Y)Y?L=self.location.href:"undefined"!=typeof document&&document.currentScript&&
(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf("blob:")?L.substr(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Pa=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.send(null);return b.responseText},Y&&(la=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ma=function(f,b,c){var d=new XMLHttpRequest;d.open("GET",f,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?
b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ma);Ma=null;var X;a.wasmBinary&&(X=a.wasmBinary);"object"!=typeof WebAssembly&&k("no native wasm support detected");var fa,ra=!1,qa,P,ia,ha,S,T,ja,ta,ya=[],na=[],xa=[],va=!1,U=0,pa=null,aa=null;var J="draco_encoder.wasm";J.startsWith("data:application/octet-stream;base64,")||(J=m(J));var ba=[],tc=0,uc={c:function(f){return Qa(f+24)+24},b:function(f,b,c){(new D(f)).init(b,
c);tc++;throw f;},a:function(){k("")},e:function(f,b,c){ia.copyWithin(f,b,b+c)},d:function(f){var b=ia.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-qa.byteLength+65535>>>16);r(fa.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;fa=a.asm.f;r(fa.buffer);ta=a.asm.h;na.unshift(a.asm.g);
U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==pa&&(clearInterval(pa),pa=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+g);k(g)})}var d={a:uc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){return W("Module.instantiateWasm callback failed with error: "+
e),!1}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||J.startsWith("data:application/octet-stream;base64,")||J.startsWith("file://")||Na||"function"!=typeof fetch?c(b):fetch(J,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=
a.asm.g).apply(null,arguments)};var Ra=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Ra=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.j).apply(null,arguments)},Sa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Sa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},
Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_size_0=function(){return(Ta=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Ua=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_data_type_0=
function(){return(Va=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Wa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Xa=a._emscripten_bind_PointAttribute_normalized_0=a.asm.q).apply(null,arguments)},Ya=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ya=a._emscripten_bind_PointAttribute_byte_stride_0=
a.asm.r).apply(null,arguments)},Za=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Za=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},$a=a._emscripten_bind_PointAttribute_unique_id_0=function(){return($a=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},ab=a._emscripten_bind_PointAttribute___destroy___0=function(){return(ab=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},Ba=a._emscripten_bind_PointCloud_PointCloud_0=
function(){return(Ba=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.x).apply(null,arguments)},db=a._emscripten_bind_PointCloud___destroy___0=function(){return(db=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,
arguments)},Ca=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ca=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.B).apply(null,arguments)},gb=a._emscripten_bind_Mesh_num_points_0=function(){return(gb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,
arguments)},hb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(hb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},ib=a._emscripten_bind_Mesh___destroy___0=function(){return(ib=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},Da=a._emscripten_bind_Metadata_Metadata_0=function(){return(Da=a._emscripten_bind_Metadata_Metadata_0=a.asm.F).apply(null,arguments)},jb=a._emscripten_bind_Metadata___destroy___0=function(){return(jb=a._emscripten_bind_Metadata___destroy___0=
a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},kb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(kb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},lb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(lb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},mb=a._emscripten_bind_DracoInt8Array___destroy___0=
function(){return(mb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.M).apply(null,arguments)},ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=
a.asm.N).apply(null,arguments)},pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},rb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(rb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},
Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},
ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=function(){return(wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},
xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=function(){return(zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},Ab=
a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(Ab=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=
function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Fb=
a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=
a.asm.ha).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},
Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Pb=a._emscripten_bind_MeshBuilder___destroy___0=
function(){return(Pb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Ia=a._emscripten_bind_Encoder_Encoder_0=function(){return(Ia=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=
a.asm.ra).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,
arguments)},Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,
arguments)},Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Zb=a._emscripten_bind_Encoder___destroy___0=function(){return(Zb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Aa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=
function(){return($b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Da).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=
function(){return(cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return(dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ga).apply(null,arguments)},fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=
function(){return(fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},hc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(hc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ic=
a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Ma).apply(null,arguments)},lc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(lc=
a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Pa).apply(null,arguments)},oc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(oc=
a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=
function(){return(rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Qa=a._malloc=function(){return(Qa=a._malloc=a.asm.Va).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Wa).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua=
a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)},ca;aa=function b(){ca||G();ca||(aa=b)};a.run=G;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();G();y.prototype=Object.create(y.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.WrapperObject=y;a.getCache=B;a.wrapPointer=K;a.castObject=function(b,c){return K(b.ptr,c)};a.NULL=K(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";
b.__destroy__();delete B(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=
b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),n.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};Q.prototype=Object.create(y.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.VoidPtr=Q;Q.prototype.__destroy__=Q.prototype.__destroy__=function(){Ra(this.ptr)};M.prototype=
Object.create(y.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Sa(this.ptr)};z.prototype=Object.create(y.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=function(){return Ta(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Ua(this.ptr)};z.prototype.data_type=z.prototype.data_type=
function(){return Va(this.ptr)};z.prototype.num_components=z.prototype.num_components=function(){return Wa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Xa(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Ya(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Za(this.ptr)};z.prototype.unique_id=z.prototype.unique_id=function(){return $a(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){ab(this.ptr)};
H.prototype=Object.create(y.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return bb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return cb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){db(this.ptr)};E.prototype=Object.create(y.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=
function(){return eb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return fb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return gb(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);hb(c,b)};E.prototype.__destroy__=E.prototype.__destroy__=function(){ib(this.ptr)};N.prototype=Object.create(y.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=
N;N.prototype.__destroy__=N.prototype.__destroy__=function(){jb(this.ptr)};I.prototype=Object.create(y.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return kb(c,b)};I.prototype.size=I.prototype.size=function(){return lb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){mb(this.ptr)};F.prototype=Object.create(y.prototype);F.prototype.constructor=
F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=F.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d=d&&"object"===typeof d?d.ptr:O(d);return!!nb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d&&"object"===typeof d&&(d=d.ptr);return!!ob(e,b,c,d)};
F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);"object"==typeof d&&(d=V(d));e&&"object"===typeof e&&(e=e.ptr);return!!pb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d&&"object"===typeof d&&(d=d.ptr);return!!qb(e,b,c,d)};F.prototype.__destroy__=
F.prototype.__destroy__=function(){rb(this.ptr)};w.prototype=Object.create(y.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointCloudBuilder=w;w.prototype.AddFloatAttribute=w.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return sb(t,b,c,d,e,g)};w.prototype.AddInt8Attribute=w.prototype.AddInt8Attribute=
function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return tb(t,b,c,d,e,g)};w.prototype.AddUInt8Attribute=w.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=
R(g));return ub(t,b,c,d,e,g)};w.prototype.AddInt16Attribute=w.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return vb(t,b,c,d,e,g)};w.prototype.AddUInt16Attribute=w.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return wb(t,b,c,d,e,g)};w.prototype.AddInt32Attribute=w.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return xb(t,b,c,d,e,g)};w.prototype.AddUInt32Attribute=w.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=
this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return yb(t,b,c,d,e,g)};w.prototype.AddMetadata=w.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!zb(d,b,c)};w.prototype.SetMetadataForAttribute=w.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ab(e,b,c,d)};w.prototype.__destroy__=w.prototype.__destroy__=function(){Bb(this.ptr)};u.prototype=Object.create(y.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);"object"==typeof d&&(d=V(d));return!!Cb(e,b,
c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Db(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=u.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Eb(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Fb(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);
e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Gb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Hb(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===
typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Ib(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return Jb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=
u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return Kb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&
(e=e.ptr);"object"==typeof g&&(g=V(g));return Lb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Mb(t,b,c,d,e,g)};u.prototype.AddMetadata=u.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
return!!Nb(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ob(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Pb(this.ptr)};x.prototype=Object.create(y.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.Encoder=x;x.prototype.SetEncodingMethod=x.prototype.SetEncodingMethod=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qb(c,b)};x.prototype.SetAttributeQuantization=x.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Rb(d,b,c)};x.prototype.SetAttributeExplicitQuantization=x.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));
g&&"object"===typeof g&&(g=g.ptr);Sb(t,b,c,d,e,g)};x.prototype.SetSpeedOptions=x.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Tb(d,b,c)};x.prototype.SetTrackEncodedProperties=x.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Ub(c,b)};x.prototype.EncodeMeshToDracoBuffer=x.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return Vb(d,b,c)};x.prototype.EncodePointCloudToDracoBuffer=x.prototype.EncodePointCloudToDracoBuffer=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return Wb(e,b,c,d)};x.prototype.GetNumberOfEncodedPoints=x.prototype.GetNumberOfEncodedPoints=function(){return Xb(this.ptr)};x.prototype.GetNumberOfEncodedFaces=x.prototype.GetNumberOfEncodedFaces=function(){return Yb(this.ptr)};x.prototype.__destroy__=
x.prototype.__destroy__=function(){Zb(this.ptr)};A.prototype=Object.create(y.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);ac(d,b,c)};A.prototype.SetAttributeExplicitQuantization=
A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);bc(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);cc(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);dc(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return ec(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return fc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=A.prototype.GetNumberOfEncodedFaces=function(){return gc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=
function(){hc(this.ptr)};(function(){function b(){a.INVALID=ic();a.POSITION=jc();a.NORMAL=kc();a.COLOR=lc();a.TEX_COORD=mc();a.GENERIC=nc();a.INVALID_GEOMETRY_TYPE=oc();a.POINT_CLOUD=pc();a.TRIANGULAR_MESH=qc();a.MESH_SEQUENTIAL_ENCODING=rc();a.MESH_EDGEBREAKER_ENCODING=sc()}va?b():na.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();
var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){ma=f;a.HEAP8=O=new Int8Array(f);a.HEAP16=ea=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=fa=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ha=new Float32Array(f);a.HEAPF64=new Float64Array(f)}
function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);na=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ba(f);throw f;}function C(f){try{if(f==K&&X)return new Uint8Array(X);if(ia)return ia(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(oa||Y)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+
K+"'";return f.arrayBuffer()}).catch(function(){return C(K)});if(ja)return new Promise(function(f,b){ja(K,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(K)})}function q(f){for(;0<f.length;)f.shift()(a)}function w(f){this.excPtr=f;this.ptr=f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=
function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>
2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(f){function b(){if(!ca&&(ca=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift());
q(sa)}}if(!(0<U)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ta.unshift(a.preRun.shift());q(ta);0<U||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function v(){}function D(f){return(f||v).__cache__}function I(f,b){var c=D(b),d=c[f];if(d)return d;d=Object.create((b||v).prototype);d.ptr=f;return c[f]=d}function J(f){if("string"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);
127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f}
function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va();
D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=p||{};var a="undefined"!=
typeof p?p:{},ra,ba;a.ready=new Promise(function(f,b){ra=f;ba=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ha=Object.assign({},a),oa="object"==typeof window,
Y="function"==typeof importScripts,Ia="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,L="";if(Ia){L=Y?require("path").dirname(L)+"/":__dirname+"/";if("function"===typeof require){var Ja=require("fs");var Ka=require("path")}var La=function(f,b){f=Ka.normalize(f);return Ja.readFileSync(f,b?void 0:"utf8")};var ia=function(f){f=La(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ja=function(f,b,c){f=Ka.normalize(f);Ja.readFile(f,function(d,e){d?c(d):
b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(oa||Y)Y?L=self.location.href:"undefined"!=typeof document&&document.currentScript&&(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf("blob:")?L.substr(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1):"",La=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.send(null);return b.responseText},Y&&(ia=function(f){var b=new XMLHttpRequest;
b.open("GET",f,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ja=function(f,b,c){var d=new XMLHttpRequest;d.open("GET",f,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ha);Ha=null;var X;a.wasmBinary&&(X=a.wasmBinary);"object"!=typeof WebAssembly&&k("no native wasm support detected");
var da,na=!1,ma,O,fa,ea,S,T,ha,ta=[],ka=[],sa=[],qa=!1,U=0,la=null,aa=null;var K="draco_encoder.wasm";K.startsWith("data:application/octet-stream;base64,")||(K=m(K));var pc=0,qc={c:function(f){return Ma(f+24)+24},b:function(f,b,c){(new w(f)).init(b,c);pc++;throw f;},a:function(){k("")},e:function(f,b,c){fa.copyWithin(f,b,b+c)},d:function(f){var b=fa.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,
d+(65536-d%65536)%65536);a:{try{da.grow(e-ma.byteLength+65535>>>16);r(da.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;da=a.asm.f;r(da.buffer);ka.unshift(a.asm.g);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==la&&(clearInterval(la),la=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+
g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ba(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,
function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Na=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Na=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
a.asm.j).apply(null,arguments)},Oa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Oa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_size_0=function(){return(Pa=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_attribute_type_0=
function(){return(Qa=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Ra=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Sa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ta=a._emscripten_bind_PointAttribute_normalized_0=
a.asm.q).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ua=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.r).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Va=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Wa=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute___destroy___0=
function(){return(Xa=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ya=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},Za=a._emscripten_bind_PointCloud_num_points_0=function(){return(Za=a._emscripten_bind_PointCloud_num_points_0=
a.asm.x).apply(null,arguments)},$a=a._emscripten_bind_PointCloud___destroy___0=function(){return($a=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_faces_0=function(){return(ab=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},bb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(bb=a._emscripten_bind_Mesh_num_attributes_0=
a.asm.B).apply(null,arguments)},cb=a._emscripten_bind_Mesh_num_points_0=function(){return(cb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,arguments)},db=a._emscripten_bind_Mesh_set_num_points_1=function(){return(db=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},eb=a._emscripten_bind_Mesh___destroy___0=function(){return(eb=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0=
a.asm.F).apply(null,arguments)},fb=a._emscripten_bind_Metadata___destroy___0=function(){return(fb=a._emscripten_bind_Metadata___destroy___0=a.asm.G).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(gb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},hb=a._emscripten_bind_DracoInt8Array_size_0=
function(){return(hb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},ib=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(ib=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=
a.asm.M).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.N).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},
nb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(nb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=
function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=
function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=
function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},xb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(xb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca=
a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=
a.asm.da).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},
Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=
function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=
a.asm.na).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=
function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.ra).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb=
a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb=
a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=
a.asm.Aa).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=
a.asm.Da).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=
a.asm.Ga).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0=
a.asm.Ja).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
a.asm.Ma).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
a.asm.Pa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
a.asm.Sa).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Ma=a._malloc=function(){return(Ma=a._malloc=a.asm.Va).apply(null,arguments)};a._free=
function(){return(a._free=a.asm.Wa).apply(null,arguments)};var pa=a.___cxa_is_pointer_type=function(){return(pa=a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var ca;aa=function b(){ca||B();ca||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();B();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=
D;a.wrapPointer=I;a.castObject=function(b,c){return I(b.ptr,c)};a.NULL=I(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete D(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=
0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),n.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};P.prototype=Object.create(v.prototype);
P.prototype.constructor=P;P.prototype.__class__=P;P.__cache__={};a.VoidPtr=P;P.prototype.__destroy__=P.prototype.__destroy__=function(){Na(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Oa(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=
function(){return Pa(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Qa(this.ptr)};z.prototype.data_type=z.prototype.data_type=function(){return Ra(this.ptr)};z.prototype.num_components=z.prototype.num_components=function(){return Sa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Ta(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Ua(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Va(this.ptr)};
z.prototype.unique_id=z.prototype.unique_id=function(){return Wa(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){Xa(this.ptr)};G.prototype=Object.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Ya(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Za(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){$a(this.ptr)};
E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return ab(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return bb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return cb(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);db(c,b)};E.prototype.__destroy__=
E.prototype.__destroy__=function(){eb(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=N;N.prototype.__destroy__=N.prototype.__destroy__=function(){fb(this.ptr)};H.prototype=Object.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoInt8Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return gb(c,b)};H.prototype.size=H.prototype.size=
function(){return hb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){ib(this.ptr)};F.prototype=Object.create(v.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=F.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d=d&&"object"===typeof d?d.ptr:J(d);return!!jb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=
function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d&&"object"===typeof d&&(d=d.ptr);return!!kb(e,b,c,d)};F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);"object"==typeof d&&(d=V(d));e&&"object"===typeof e&&(e=e.ptr);return!!lb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=
this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d&&"object"===typeof d&&(d=d.ptr);return!!mb(e,b,c,d)};F.prototype.__destroy__=F.prototype.__destroy__=function(){nb(this.ptr)};x.prototype=Object.create(v.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.PointCloudBuilder=x;x.prototype.AddFloatAttribute=x.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return ob(t,b,c,d,e,g)};x.prototype.AddInt8Attribute=x.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return pb(t,b,c,d,e,g)};x.prototype.AddUInt8Attribute=x.prototype.AddUInt8Attribute=function(b,c,d,e,
g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return qb(t,b,c,d,e,g)};x.prototype.AddInt16Attribute=x.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return rb(t,
b,c,d,e,g)};x.prototype.AddUInt16Attribute=x.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return sb(t,b,c,d,e,g)};x.prototype.AddInt32Attribute=x.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return tb(t,b,c,d,e,g)};x.prototype.AddUInt32Attribute=x.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return ub(t,b,c,d,e,g)};x.prototype.AddMetadata=x.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);return!!vb(d,b,c)};x.prototype.SetMetadataForAttribute=x.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!wb(e,b,c,d)};x.prototype.__destroy__=x.prototype.__destroy__=function(){xb(this.ptr)};u.prototype=Object.create(v.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=
function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);"object"==typeof d&&(d=V(d));return!!yb(e,b,c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return zb(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=
u.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Ab(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Bb(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=
function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Cb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));
return Db(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return Eb(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===
typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Fb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Gb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Hb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Ib(t,b,c,d,e,g)};u.prototype.AddMetadata=
u.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Jb(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kb(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Lb(this.ptr)};y.prototype=Object.create(v.prototype);y.prototype.constructor=
y;y.prototype.__class__=y;y.__cache__={};a.Encoder=y;y.prototype.SetEncodingMethod=y.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Mb(c,b)};y.prototype.SetAttributeQuantization=y.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Nb(d,b,c)};y.prototype.SetAttributeExplicitQuantization=y.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);Ob(t,b,c,d,e,g)};y.prototype.SetSpeedOptions=y.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Pb(d,b,c)};y.prototype.SetTrackEncodedProperties=y.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qb(c,b)};y.prototype.EncodeMeshToDracoBuffer=
y.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Rb(d,b,c)};y.prototype.EncodePointCloudToDracoBuffer=y.prototype.EncodePointCloudToDracoBuffer=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return Sb(e,b,c,d)};y.prototype.GetNumberOfEncodedPoints=y.prototype.GetNumberOfEncodedPoints=function(){return Tb(this.ptr)};y.prototype.GetNumberOfEncodedFaces=
y.prototype.GetNumberOfEncodedFaces=function(){return Ub(this.ptr)};y.prototype.__destroy__=y.prototype.__destroy__=function(){Vb(this.ptr)};A.prototype=Object.create(v.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Wb(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===
typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Xb(d,b,c)};A.prototype.SetAttributeExplicitQuantization=A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);Yb(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);Zb(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return ac(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return bc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=
A.prototype.GetNumberOfEncodedFaces=function(){return cc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=function(){dc(this.ptr)};(function(){function b(){a.INVALID=ec();a.POSITION=fc();a.NORMAL=gc();a.COLOR=hc();a.TEX_COORD=ic();a.GENERIC=jc();a.INVALID_GEOMETRY_TYPE=kc();a.POINT_CLOUD=lc();a.TRIANGULAR_MESH=mc();a.MESH_SEQUENTIAL_ENCODING=nc();a.MESH_EDGEBREAKER_ENCODING=oc()}qa?b():ka.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoEncoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoEncoderModule}):"object"===typeof exports&&(exports.DracoEncoderModule=DracoEncoderModule);

View File

@ -1,6 +1,6 @@
{
"name": "draco3d",
"version": "1.5.3",
"version": "1.5.4",
"description": "Draco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.",
"main": "draco3d.js",
"scripts": {

View File

@ -24,7 +24,7 @@ Draco github glTF branch URL: https://github.com/google/draco/tree/gltf_2.0_drac
News
=======
Check out the [README](https://github.com/google/draco/blob/1.5.3/README.md)
Check out the [README](https://github.com/google/draco/blob/1.5.4/README.md)
file for news about this release.
NPM Package

View File

@ -5,113 +5,112 @@ var $jscomp$lookupPolyfilledValue=function(h,n){var k=$jscomp.propertyToPolyfill
$jscomp.polyfillUnisolated=function(h,n,k,p){k=$jscomp.global;h=h.split(".");for(p=0;p<h.length-1;p++){var l=h[p];if(!(l in k))return;k=k[l]}h=h[h.length-1];p=k[h];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(k,h,{configurable:!0,writable:!0,value:n})};
$jscomp.polyfillIsolated=function(h,n,k,p){var l=h.split(".");h=1===l.length;p=l[0];p=!h&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var y=0;y<l.length-1;y++){var f=l[y];if(!(f in p))return;p=p[f]}l=l[l.length-1];k=$jscomp.IS_SYMBOL_NATIVE&&"es6"===k?p[l]:null;n=n(k);null!=n&&(h?$jscomp.defineProperty($jscomp.polyfills,l,{configurable:!0,writable:!0,value:n}):n!==k&&(void 0===$jscomp.propertyToPolyfillSymbol[l]&&(k=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[l]=$jscomp.IS_SYMBOL_NATIVE?
$jscomp.global.Symbol(l):$jscomp.POLYFILL_PREFIX+k+"$"+l),$jscomp.defineProperty(p,$jscomp.propertyToPolyfillSymbol[l],{configurable:!0,writable:!0,value:n})))};
$jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,v){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};
var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var v=f[q];f[q]=null;try{v()}catch(A){this.asyncThrow_(A)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var l=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{f(q.resolve,q.reject)}catch(v){q.reject(v)}};l.prototype.createResolveAndReject_=function(){function f(A){return function(O){v||(v=!0,A.call(q,O))}}var q=this,v=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};l.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof l)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
this.fulfill_(f)}};l.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};l.prototype.reject_=function(f){this.settle_(2,f)};l.prototype.fulfill_=function(f){this.settle_(1,f)};l.prototype.settle_=function(f,q){if(0!=this.state_)throw Error("Cannot settle("+f+", "+q+"): Promise already settled in state"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};l.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(f.result_)}},1)};l.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):
"function"===typeof q?f=new q("unhandledrejection",{cancelable:!0}):(f=$jscomp.global.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.result_;return v(f)};l.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)y.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var y=new n;l.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();
f.callWhenSettled_(q.resolve,q.reject)};l.prototype.settleSameAsThenable_=function(f,q){var v=this.createResolveAndReject_();try{f.call(q,v.resolve,v.reject)}catch(A){v.reject(A)}};l.prototype.then=function(f,q){function v(t,x){return"function"==typeof t?function(D){try{A(t(D))}catch(R){O(R)}}:x}var A,O,Z=new l(function(t,x){A=t;O=x});this.callWhenSettled_(v(f,A),v(q,O));return Z};l.prototype.catch=function(f){return this.then(void 0,f)};l.prototype.callWhenSettled_=function(f,q){function v(){switch(A.state_){case 1:f(A.result_);
break;case 2:q(A.result_);break;default:throw Error("Unexpected state: "+A.state_);}}var A=this;null==this.onSettledCallbacks_?y.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};l.resolve=k;l.reject=function(f){return new l(function(q,v){v(f)})};l.race=function(f){return new l(function(q,v){for(var A=$jscomp.makeIterator(f),O=A.next();!O.done;O=A.next())k(O.value).callWhenSettled_(q,v)})};l.all=function(f){var q=$jscomp.makeIterator(f),v=q.next();return v.done?k([]):new l(function(A,
O){function Z(D){return function(R){t[D]=R;x--;0==x&&A(t)}}var t=[],x=0;do t.push(void 0),x++,k(v.value).callWhenSettled_(Z(t.length-1),O),v=q.next();while(!v.done)})};return l},"es6","es3");$jscomp.owns=function(h,n){return Object.prototype.hasOwnProperty.call(h,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(h,n){for(var k=1;k<arguments.length;k++){var p=arguments[k];if(p)for(var l in p)$jscomp.owns(p,l)&&(h[l]=p[l])}return h};
$jscomp.polyfill("Promise",function(h){function n(){this.batch_=null}function k(f){return f instanceof l?f:new l(function(q,u){q(f)})}if(h&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return h;n.prototype.asyncExecute=function(f){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(f)};
var p=$jscomp.global.setTimeout;n.prototype.asyncExecuteFunction=function(f){p(f,0)};n.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var f=this.batch_;this.batch_=[];for(var q=0;q<f.length;++q){var u=f[q];f[q]=null;try{u()}catch(A){this.asyncThrow_(A)}}}this.batch_=null};n.prototype.asyncThrow_=function(f){this.asyncExecuteFunction(function(){throw f;})};var l=function(f){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{f(q.resolve,q.reject)}catch(u){q.reject(u)}};l.prototype.createResolveAndReject_=function(){function f(A){return function(F){u||(u=!0,A.call(q,F))}}var q=this,u=!1;return{resolve:f(this.resolveTo_),reject:f(this.reject_)}};l.prototype.resolveTo_=function(f){if(f===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof l)this.settleSameAsPromise_(f);else{a:switch(typeof f){case "object":var q=null!=f;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(f):
this.fulfill_(f)}};l.prototype.resolveToNonPromiseObj_=function(f){var q=void 0;try{q=f.then}catch(u){this.reject_(u);return}"function"==typeof q?this.settleSameAsThenable_(q,f):this.fulfill_(f)};l.prototype.reject_=function(f){this.settle_(2,f)};l.prototype.fulfill_=function(f){this.settle_(1,f)};l.prototype.settle_=function(f,q){if(0!=this.state_)throw Error("Cannot settle("+f+", "+q+"): Promise already settled in state"+this.state_);this.state_=f;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};l.prototype.scheduleUnhandledRejectionCheck_=function(){var f=this;p(function(){if(f.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(f.result_)}},1)};l.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var f=$jscomp.global.CustomEvent,q=$jscomp.global.Event,u=$jscomp.global.dispatchEvent;if("undefined"===typeof u)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):
"function"===typeof q?f=new q("unhandledrejection",{cancelable:!0}):(f=$jscomp.global.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.result_;return u(f)};l.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var f=0;f<this.onSettledCallbacks_.length;++f)y.asyncExecute(this.onSettledCallbacks_[f]);this.onSettledCallbacks_=null}};var y=new n;l.prototype.settleSameAsPromise_=function(f){var q=this.createResolveAndReject_();
f.callWhenSettled_(q.resolve,q.reject)};l.prototype.settleSameAsThenable_=function(f,q){var u=this.createResolveAndReject_();try{f.call(q,u.resolve,u.reject)}catch(A){u.reject(A)}};l.prototype.then=function(f,q){function u(w,B){return"function"==typeof w?function(R){try{A(w(R))}catch(Z){F(Z)}}:B}var A,F,v=new l(function(w,B){A=w;F=B});this.callWhenSettled_(u(f,A),u(q,F));return v};l.prototype.catch=function(f){return this.then(void 0,f)};l.prototype.callWhenSettled_=function(f,q){function u(){switch(A.state_){case 1:f(A.result_);
break;case 2:q(A.result_);break;default:throw Error("Unexpected state: "+A.state_);}}var A=this;null==this.onSettledCallbacks_?y.asyncExecute(u):this.onSettledCallbacks_.push(u);this.isRejectionHandled_=!0};l.resolve=k;l.reject=function(f){return new l(function(q,u){u(f)})};l.race=function(f){return new l(function(q,u){for(var A=$jscomp.makeIterator(f),F=A.next();!F.done;F=A.next())k(F.value).callWhenSettled_(q,u)})};l.all=function(f){var q=$jscomp.makeIterator(f),u=q.next();return u.done?k([]):new l(function(A,
F){function v(R){return function(Z){w[R]=Z;B--;0==B&&A(w)}}var w=[],B=0;do w.push(void 0),B++,k(u.value).callWhenSettled_(v(w.length-1),F),u=q.next();while(!u.done)})};return l},"es6","es3");$jscomp.owns=function(h,n){return Object.prototype.hasOwnProperty.call(h,n)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(h,n){for(var k=1;k<arguments.length;k++){var p=arguments[k];if(p)for(var l in p)$jscomp.owns(p,l)&&(h[l]=p[l])}return h};
$jscomp.polyfill("Object.assign",function(h){return h||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(h,n,k){if(null==h)throw new TypeError("The 'this' value for String.prototype."+k+" must not be null or undefined");if(n instanceof RegExp)throw new TypeError("First argument to String.prototype."+k+" must not be a regular expression");return h+""};
$jscomp.polyfill("String.prototype.startsWith",function(h){return h?h:function(n,k){var p=$jscomp.checkStringArgs(this,n,"startsWith");n+="";var l=p.length,y=n.length;k=Math.max(0,Math.min(k|0,p.length));for(var f=0;f<y&&k<l;)if(p[k++]!=n[f++])return!1;return f>=y}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(h){function n(k){k=Number(k);return Infinity===k||-Infinity===k?k:k|0}return h?h:function(k,p,l){var y=this.length;k=n(k);p=n(p);l=void 0===l?y:n(l);k=0>k?Math.max(y+k,0):Math.min(k,y);p=0>p?Math.max(y+p,0):Math.min(p,y);l=0>l?Math.max(y+l,0):Math.min(l,y);if(k<p)for(;p<l;)p in this?this[k++]=this[p++]:(delete this[k++],p++);else for(l=Math.min(l,y+p-k),k+=l-p;l>p;)--l in this?this[--k]=this[l]:delete this[--k];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(h){return h?h:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16<b-e&&c.buffer&&ua)c=ua.decode(c.subarray(e,b));else{for(d="";e<b;){var g=c[e++];if(g&128){var u=c[e++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|u);else{var aa=c[e++]&
63;g=224==(g&240)?(g&15)<<12|u<<6|aa:(g&7)<<18|u<<12|aa<<6|c[e++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){va=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);wa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");na(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(oa)return oa(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(xa||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)});
if(pa)return new Promise(function(e,b){pa(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function v(e){for(;0<e.length;){var b=e.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?A(c)():A(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function A(e){var b=ja[e];b||(e>=ja.length&&(ja.length=e+1),ja[e]=b=ya.get(e));return b}function O(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type=
function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);
this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(za(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function Z(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,
!wa)){Aa=!0;v(qa);Ba(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ca.unshift(a.postRun.shift());v(Ca)}}if(!(0<ba)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Da.unshift(a.preRun.shift());v(Da);0<ba||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function t(){}function x(e){return(e||t).__cache__}
function D(e,b){var c=x(b),d=c[e];if(d)return d;d=Object.create((b||t).prototype);d.ptr=e;return c[e]=d}function R(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|e.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var u=e.charCodeAt(g);if(55296<=u&&57343>=u){var aa=e.charCodeAt(++g);u=65536+((u&1023)<<10)|aa&1023}if(127>=u){if(c>=d)break;
b[c++]=u}else{if(2047>=u){if(c+1>=d)break;b[c++]=192|u>>6}else{if(65535>=u){if(c+2>=d)break;b[c++]=224|u>>12}else{if(c+3>=d)break;b[c++]=240|u>>18;b[c++]=128|u>>12&63}b[c++]=128|u>>6&63}b[c++]=128|u&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function ra(e){if("object"===typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=Ea();x(S)[this.ptr]=this}function Q(){this.ptr=Fa();x(Q)[this.ptr]=
this}function V(){this.ptr=Ga();x(V)[this.ptr]=this}function w(){this.ptr=Ha();x(w)[this.ptr]=this}function C(){this.ptr=Ia();x(C)[this.ptr]=this}function F(){this.ptr=Ja();x(F)[this.ptr]=this}function G(){this.ptr=Ka();x(G)[this.ptr]=this}function E(){this.ptr=La();x(E)[this.ptr]=this}function T(){this.ptr=Ma();x(T)[this.ptr]=this}function B(){throw"cannot construct a Status, no constructor in IDL";}function H(){this.ptr=Na();x(H)[this.ptr]=this}function I(){this.ptr=Oa();x(I)[this.ptr]=this}function J(){this.ptr=
Pa();x(J)[this.ptr]=this}function K(){this.ptr=Qa();x(K)[this.ptr]=this}function L(){this.ptr=Ra();x(L)[this.ptr]=this}function M(){this.ptr=Sa();x(M)[this.ptr]=this}function N(){this.ptr=Ta();x(N)[this.ptr]=this}function z(){this.ptr=Ua();x(z)[this.ptr]=this}function m(){this.ptr=Va();x(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},Ba,na;a.ready=new Promise(function(e,b){Ba=e;na=b});var Wa=!1,Xa=!1;a.onRuntimeInitialized=function(){Wa=!0;if(Xa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};
a.onModuleParsed=function(){Xa=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var Ya=Object.assign({},a),xa="object"==typeof window,fa="function"==typeof importScripts,Za="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="",sa,la;if(Za){U=fa?require("path").dirname(U)+
"/":__dirname+"/";var $a=function(){la||(sa=require("fs"),la=require("path"))};var ab=function(e,b){$a();e=la.normalize(e);return sa.readFileSync(e,b?void 0:"utf8")};var oa=function(e){e=ab(e,!0);e.buffer||(e=new Uint8Array(e));return e};var pa=function(e,b,c){$a();e=la.normalize(e);sa.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(xa||fa)fa?U=self.location.href:
"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),h&&(U=h),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",ab=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},fa&&(oa=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),pa=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";
d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var da=a.printErr||console.warn.bind(console);Object.assign(a,Ya);Ya=null;var ea;a.wasmBinary&&(ea=a.wasmBinary);"object"!=typeof WebAssembly&&y("no native wasm support detected");var ma,wa=!1,ua="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,va,W,ia,ca,Y,ya,Da=[],qa=[],Ca=[],Aa=!1,ba=0,ta=null,ha=null;var P="draco_decoder_gltf.wasm";P.startsWith("data:application/octet-stream;base64,")||
(P=k(P));var ja=[],vd=0,wd={c:function(e){return bb(e+24)+24},b:function(e,b,c){(new O(e)).init(b,c);vd++;throw e;},a:function(){y("")},e:function(e,b,c){ia.copyWithin(e,b,b+c)},d:function(e){var b=ia.length;e>>>=0;if(2147483648<e)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{ma.grow(g-va.byteLength+65535>>>16);l(ma.buffer);var u=1;break a}catch(aa){}u=void 0}if(u)return!0}return!1}};
(function(){function e(g,u){a.asm=g.exports;ma=a.asm.f;l(ma.buffer);ya=a.asm.h;qa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==ta&&(clearInterval(ta),ta=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){da("failed to asynchronously prepare wasm: "+u);y(u)})}var d={a:wd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);
if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){return da("Module.instantiateWasm callback failed with error: "+g),!1}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Za||"function"!=typeof fetch?c(b):fetch(P,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(u){da("wasm streaming compile failed: "+u);da("falling back to ArrayBuffer instantiation");
return c(b)})})})().catch(na);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var cb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(cb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Ea=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(db=a._emscripten_bind_DecoderBuffer_Init_2=
a.asm.k).apply(null,arguments)},eb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(eb=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Fa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.m).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(fb=a._emscripten_bind_AttributeTransformData_transform_type_0=
a.asm.n).apply(null,arguments)},gb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(gb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ga=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.p).apply(null,arguments)},hb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(hb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null,
arguments)},Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ha=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_size_0=function(){return(ib=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(jb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_attribute_type_0=
function(){return(kb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(lb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(mb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.w).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(nb=a._emscripten_bind_PointAttribute_normalized_0=
a.asm.x).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(pb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(qb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},rb=a._emscripten_bind_PointAttribute___destroy___0=
function(){return(rb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ia=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null,
arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform_range_0=
a.asm.G).apply(null,arguments)},wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(wb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ja=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.I).apply(null,arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=
function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(zb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Ka=a._emscripten_bind_PointCloud_PointCloud_0=
function(){return(Ka=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud_num_points_0=function(){return(Bb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null,arguments)},Cb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Cb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null,
arguments)},La=a._emscripten_bind_Mesh_Mesh_0=function(){return(La=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_faces_0=function(){return(Db=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Eb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.S).apply(null,arguments)},Fb=a._emscripten_bind_Mesh_num_points_0=function(){return(Fb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null,
arguments)},Gb=a._emscripten_bind_Mesh___destroy___0=function(){return(Gb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ma=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ma=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Hb=a._emscripten_bind_Metadata___destroy___0=function(){return(Hb=a._emscripten_bind_Metadata___destroy___0=a.asm.W).apply(null,arguments)},Ib=a._emscripten_bind_Status_code_0=function(){return(Ib=a._emscripten_bind_Status_code_0=
a.asm.X).apply(null,arguments)},Jb=a._emscripten_bind_Status_ok_0=function(){return(Jb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Kb=a._emscripten_bind_Status_error_msg_0=function(){return(Kb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Lb=a._emscripten_bind_Status___destroy___0=function(){return(Lb=a._emscripten_bind_Status___destroy___0=a.asm._).apply(null,arguments)},Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Na=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=
a.asm.$).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=
function(){return(Oa=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Pb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt8Array___destroy___0=
a.asm.ga).apply(null,arguments)},Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Pa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ia).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt8Array___destroy___0=
function(){return(Ub=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt16Array_size_0=
a.asm.na).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ra=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.pa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)},
Zb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return($b=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_GetValue_1=
function(){return(ac=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array_size_0=function(){return(bc=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},cc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(cc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.wa).apply(null,arguments)},Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Ta=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=
a.asm.xa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(dc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ec=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},fc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(fc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=
function(){return(Ua=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Da).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=
a.asm.Ea).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(kc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null,arguments)},lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(lc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)},
mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(mc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},nc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(nc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Va=a._emscripten_bind_Decoder_Decoder_0=function(){return(Va=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(oc=
a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(pc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Na).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=
a.asm.Oa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(uc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)},
vc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(vc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(xc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=
function(){return(yc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(Ac=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Bc=
a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm._a).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ec=
a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=
function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.eb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=
function(){return(Kc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Mc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.hb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=
function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Oc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Pc=a._emscripten_bind_Decoder___destroy___0=function(){return(Pc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
a.asm.lb).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.nb).apply(null,arguments)},Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=
function(){return(Tc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.qb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.tb).apply(null,arguments)},Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
function(){return(Zc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.wb).apply(null,arguments)},bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
function(){return(bd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT8=
a.asm.Ab).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(hd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Db).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_UINT32=
function(){return(id=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(kd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null,
arguments)},md=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(md=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(nd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(od=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Kb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_OK=function(){return(pd=
a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(rd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(sd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
a.asm.Ob).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(ud=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},bb=a._malloc=function(){return(bb=a._malloc=a.asm.Rb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)};
var za=a.___cxa_is_pointer_type=function(){return(za=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)},ka;ha=function b(){ka||Z();ka||(ha=b)};a.run=Z;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();Z();t.prototype=Object.create(t.prototype);t.prototype.constructor=t;t.prototype.__class__=t;t.__cache__={};a.WrapperObject=t;a.getCache=x;a.wrapPointer=D;a.castObject=function(b,c){return D(b.ptr,c)};a.NULL=D(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";
b.__destroy__();delete x(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||y(void 0));r.pos=0},alloc:function(b,c){r.buffer||y(void 0);b=
b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||y(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};X.prototype=Object.create(t.prototype);X.prototype.constructor=X;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){cb(this.ptr)};S.prototype=
Object.create(t.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=ra(b));c&&"object"===typeof c&&(c=c.ptr);db(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){eb(this.ptr)};Q.prototype=Object.create(t.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=
function(){return fb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){gb(this.ptr)};V.prototype=Object.create(t.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.GeometryAttribute=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){hb(this.ptr)};w.prototype=Object.create(t.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointAttribute=w;w.prototype.size=w.prototype.size=function(){return ib(this.ptr)};w.prototype.GetAttributeTransformData=
w.prototype.GetAttributeTransformData=function(){return D(jb(this.ptr),Q)};w.prototype.attribute_type=w.prototype.attribute_type=function(){return kb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return lb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return mb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!nb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return ob(this.ptr)};w.prototype.byte_offset=
w.prototype.byte_offset=function(){return pb(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=function(){return qb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){rb(this.ptr)};C.prototype=Object.create(t.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.AttributeQuantizationTransform=C;C.prototype.InitFromAttribute=C.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!sb(c,b)};C.prototype.quantization_bits=
C.prototype.quantization_bits=function(){return tb(this.ptr)};C.prototype.min_value=C.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ub(c,b)};C.prototype.range=C.prototype.range=function(){return vb(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){wb(this.ptr)};F.prototype=Object.create(t.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.AttributeOctahedronTransform=F;F.prototype.InitFromAttribute=F.prototype.InitFromAttribute=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!xb(c,b)};F.prototype.quantization_bits=F.prototype.quantization_bits=function(){return yb(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){zb(this.ptr)};G.prototype=Object.create(t.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Ab(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Bb(this.ptr)};
G.prototype.__destroy__=G.prototype.__destroy__=function(){Cb(this.ptr)};E.prototype=Object.create(t.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return Db(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Eb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Fb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Gb(this.ptr)};T.prototype=
Object.create(t.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Hb(this.ptr)};B.prototype=Object.create(t.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return Ib(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Jb(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return p(Kb(this.ptr))};
B.prototype.__destroy__=B.prototype.__destroy__=function(){Lb(this.ptr)};H.prototype=Object.create(t.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoFloat32Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Mb(c,b)};H.prototype.size=H.prototype.size=function(){return Nb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Ob(this.ptr)};I.prototype=Object.create(t.prototype);I.prototype.constructor=
I;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Pb(c,b)};I.prototype.size=I.prototype.size=function(){return Qb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Rb(this.ptr)};J.prototype=Object.create(t.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoUInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Sb(c,b)};J.prototype.size=J.prototype.size=function(){return Tb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Ub(this.ptr)};K.prototype=Object.create(t.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoInt16Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Vb(c,b)};K.prototype.size=K.prototype.size=function(){return Wb(this.ptr)};
K.prototype.__destroy__=K.prototype.__destroy__=function(){Xb(this.ptr)};L.prototype=Object.create(t.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoUInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Yb(c,b)};L.prototype.size=L.prototype.size=function(){return Zb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){$b(this.ptr)};M.prototype=Object.create(t.prototype);M.prototype.constructor=
M;M.prototype.__class__=M;M.__cache__={};a.DracoInt32Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ac(c,b)};M.prototype.size=M.prototype.size=function(){return bc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){cc(this.ptr)};N.prototype=Object.create(t.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoUInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);return dc(c,b)};N.prototype.size=N.prototype.size=function(){return ec(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){fc(this.ptr)};z.prototype=Object.create(t.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.MetadataQuerier=z;z.prototype.HasEntry=z.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return!!gc(d,b,c)};z.prototype.GetIntEntry=
z.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return hc(d,b,c)};z.prototype.GetIntEntryArray=z.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d&&"object"===typeof d&&(d=d.ptr);ic(g,b,c,d)};z.prototype.GetDoubleEntry=z.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=
c&&"object"===typeof c?c.ptr:R(c);return jc(d,b,c)};z.prototype.GetStringEntry=z.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return p(kc(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return lc(c,b)};z.prototype.GetEntryName=z.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=
c.ptr);return p(mc(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){nc(this.ptr)};m.prototype=Object.create(t.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=ra(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(oc(g,b,c,d),B)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=
function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=ra(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return D(pc(g,b,c,d),B)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return qc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?
c.ptr:R(c);return rc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d=d&&"object"===typeof d?d.ptr:R(d);return sc(g,b,c,d)};m.prototype.GetAttribute=m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(tc(d,b,c),w)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=
function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(uc(d,b,c),w)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return D(vc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(wc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,
c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!xc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return yc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=
m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Gc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Hc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ic(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Jc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,u){var aa=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&(g=g.ptr);u&&"object"===typeof u&&(u=u.ptr);return!!Kc(aa,b,c,d,g,u)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Lc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Mc(c,b)};m.prototype.DecodeBufferToPointCloud=
m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Nc(d,b,c),B)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return D(Oc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Pc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Qc();a.ATTRIBUTE_NO_TRANSFORM=Rc();
a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Sc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Tc();a.INVALID=Uc();a.POSITION=Vc();a.NORMAL=Wc();a.COLOR=Xc();a.TEX_COORD=Yc();a.GENERIC=Zc();a.INVALID_GEOMETRY_TYPE=$c();a.POINT_CLOUD=ad();a.TRIANGULAR_MESH=bd();a.DT_INVALID=cd();a.DT_INT8=dd();a.DT_UINT8=ed();a.DT_INT16=fd();a.DT_UINT16=gd();a.DT_INT32=hd();a.DT_UINT32=id();a.DT_INT64=jd();a.DT_UINT64=kd();a.DT_FLOAT32=ld();a.DT_FLOAT64=md();a.DT_BOOL=nd();a.DT_TYPES_COUNT=od();a.OK=pd();a.DRACO_ERROR=qd();a.IO_ERROR=rd();
a.INVALID_PARAMETER=sd();a.UNSUPPORTED_VERSION=td();a.UNKNOWN_VERSION=ud()}Aa?b():qa.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);
var DracoDecoderModule=function(){var h="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(h=h||__filename);return function(n){function k(e){return a.locateFile?a.locateFile(e,U):U+e}function p(e,b){if(e){var c=ia;var d=e+b;for(b=e;c[b]&&!(b>=d);)++b;if(16<b-e&&c.buffer&&qa)c=qa.decode(c.subarray(e,b));else{for(d="";e<b;){var g=c[e++];if(g&128){var t=c[e++]&63;if(192==(g&224))d+=String.fromCharCode((g&31)<<6|t);else{var aa=c[e++]&
63;g=224==(g&240)?(g&15)<<12|t<<6|aa:(g&7)<<18|t<<12|aa<<6|c[e++]&63;65536>g?d+=String.fromCharCode(g):(g-=65536,d+=String.fromCharCode(55296|g>>10,56320|g&1023))}}else d+=String.fromCharCode(g)}c=d}}else c="";return c}function l(e){ra=e;a.HEAP8=W=new Int8Array(e);a.HEAP16=new Int16Array(e);a.HEAP32=ca=new Int32Array(e);a.HEAPU8=ia=new Uint8Array(e);a.HEAPU16=new Uint16Array(e);a.HEAPU32=Y=new Uint32Array(e);a.HEAPF32=new Float32Array(e);a.HEAPF64=new Float64Array(e)}function y(e){if(a.onAbort)a.onAbort(e);
e="Aborted("+e+")";da(e);sa=!0;e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info.");ja(e);throw e;}function f(e){try{if(e==P&&ea)return new Uint8Array(ea);if(ma)return ma(e);throw"both async and sync fetching of the wasm failed";}catch(b){y(b)}}function q(){if(!ea&&(ta||fa)){if("function"==typeof fetch&&!P.startsWith("file://"))return fetch(P,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+P+"'";return e.arrayBuffer()}).catch(function(){return f(P)});
if(na)return new Promise(function(e,b){na(P,function(c){e(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return f(P)})}function u(e){for(;0<e.length;)e.shift()(a)}function A(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(b){Y[this.ptr+4>>2]=b};this.get_type=function(){return Y[this.ptr+4>>2]};this.set_destructor=function(b){Y[this.ptr+8>>2]=b};this.get_destructor=function(){return Y[this.ptr+8>>2]};this.set_refcount=function(b){ca[this.ptr>>2]=b};this.set_caught=function(b){W[this.ptr+
12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){ca[this.ptr>>2]+=1};this.release_ref=function(){var b=ca[this.ptr>>2];ca[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){Y[this.ptr+
16>>2]=b};this.get_adjusted_ptr=function(){return Y[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return Y[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function F(e){function b(){if(!ka&&(ka=!0,a.calledRun=!0,!sa)){va=!0;u(oa);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());u(xa)}}if(!(0<ba)){if(a.preRun)for("function"==
typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());u(ya);0<ba||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function v(){}function w(e){return(e||v).__cache__}function B(e,b){var c=w(b),d=c[e];if(d)return d;d=Object.create((b||v).prototype);d.ptr=e;return c[e]=d}function R(e){if("string"===typeof e){for(var b=0,c=0;c<e.length;++c){var d=e.charCodeAt(c);127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=
d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var g=0;g<e.length;++g){var t=e.charCodeAt(g);if(55296<=t&&57343>=t){var aa=e.charCodeAt(++g);t=65536+((t&1023)<<10)|aa&1023}if(127>=t){if(c>=d)break;b[c++]=t}else{if(2047>=t){if(c+1>=d)break;b[c++]=192|t>>6}else{if(65535>=t){if(c+2>=d)break;b[c++]=224|t>>12}else{if(c+3>=d)break;b[c++]=240|t>>18;b[c++]=128|t>>12&63}b[c++]=128|t>>6&63}b[c++]=128|t&63}}b[c]=0}e=r.alloc(b,W);r.copy(b,W,e);return e}return e}function Z(e){if("object"===
typeof e){var b=r.alloc(e,W);r.copy(e,W,b);return b}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function S(){this.ptr=za();w(S)[this.ptr]=this}function Q(){this.ptr=Aa();w(Q)[this.ptr]=this}function V(){this.ptr=Ba();w(V)[this.ptr]=this}function x(){this.ptr=Ca();w(x)[this.ptr]=this}function D(){this.ptr=Da();w(D)[this.ptr]=this}function G(){this.ptr=Ea();w(G)[this.ptr]=this}function H(){this.ptr=Fa();w(H)[this.ptr]=this}function E(){this.ptr=Ga();w(E)[this.ptr]=
this}function T(){this.ptr=Ha();w(T)[this.ptr]=this}function C(){throw"cannot construct a Status, no constructor in IDL";}function I(){this.ptr=Ia();w(I)[this.ptr]=this}function J(){this.ptr=Ja();w(J)[this.ptr]=this}function K(){this.ptr=Ka();w(K)[this.ptr]=this}function L(){this.ptr=La();w(L)[this.ptr]=this}function M(){this.ptr=Ma();w(M)[this.ptr]=this}function N(){this.ptr=Na();w(N)[this.ptr]=this}function O(){this.ptr=Oa();w(O)[this.ptr]=this}function z(){this.ptr=Pa();w(z)[this.ptr]=this}function m(){this.ptr=
Qa();w(m)[this.ptr]=this}n=n||{};var a="undefined"!=typeof n?n:{},wa,ja;a.ready=new Promise(function(e,b){wa=e;ja=b});var Ra=!1,Sa=!1;a.onRuntimeInitialized=function(){Ra=!0;if(Sa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Sa=!0;if(Ra&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};
var Ta=Object.assign({},a),ta="object"==typeof window,fa="function"==typeof importScripts,Ua="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,U="";if(Ua){U=fa?require("path").dirname(U)+"/":__dirname+"/";if("function"===typeof require){var Va=require("fs");var Wa=require("path")}var Xa=function(e,b){e=Wa.normalize(e);return Va.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=Xa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,
b,c){e=Wa.normalize(e);Va.readFile(e,function(d,g){d?c(d):b(g.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(ta||fa)fa?U=self.location.href:"undefined"!=typeof document&&document.currentScript&&(U=document.currentScript.src),h&&(U=h),U=0!==U.indexOf("blob:")?U.substr(0,U.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Xa=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.send(null);return b.responseText},
fa&&(ma=function(e){var b=new XMLHttpRequest;b.open("GET",e,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),na=function(e,b,c){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var da=a.printErr||console.warn.bind(console);Object.assign(a,Ta);Ta=null;var ea;a.wasmBinary&&(ea=a.wasmBinary);"object"!=typeof WebAssembly&&
y("no native wasm support detected");var la,sa=!1,qa="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,ra,W,ia,ca,Y,ya=[],oa=[],xa=[],va=!1,ba=0,pa=null,ha=null;var P="draco_decoder_gltf.wasm";P.startsWith("data:application/octet-stream;base64,")||(P=k(P));var rd=0,sd={c:function(e){return Ya(e+24)+24},b:function(e,b,c){(new A(e)).init(b,c);rd++;throw e;},a:function(){y("")},e:function(e,b,c){ia.copyWithin(e,b,b+c)},d:function(e){var b=ia.length;e>>>=0;if(2147483648<e)return!1;for(var c=
1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,e+100663296);var g=Math;d=Math.max(e,d);g=g.min.call(g,2147483648,d+(65536-d%65536)%65536);a:{try{la.grow(g-ra.byteLength+65535>>>16);l(la.buffer);var t=1;break a}catch(aa){}t=void 0}if(t)return!0}return!1}};(function(){function e(g,t){a.asm=g.exports;la=a.asm.f;l(la.buffer);oa.unshift(a.asm.g);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==pa&&(clearInterval(pa),pa=null),ha&&(g=ha,ha=null,g()))}function b(g){e(g.instance)}function c(g){return q().then(function(t){return WebAssembly.instantiate(t,
d)}).then(function(t){return t}).then(g,function(t){da("failed to asynchronously prepare wasm: "+t);y(t)})}var d={a:sd};ba++;a.monitorRunDependencies&&a.monitorRunDependencies(ba);if(a.instantiateWasm)try{return a.instantiateWasm(d,e)}catch(g){da("Module.instantiateWasm callback failed with error: "+g),ja(g)}(function(){return ea||"function"!=typeof WebAssembly.instantiateStreaming||P.startsWith("data:application/octet-stream;base64,")||P.startsWith("file://")||Ua||"function"!=typeof fetch?c(b):fetch(P,
{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(b,function(t){da("wasm streaming compile failed: "+t);da("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ja);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Za=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Za=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=
function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.j).apply(null,arguments)},$a=a._emscripten_bind_DecoderBuffer_Init_2=function(){return($a=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.k).apply(null,arguments)},ab=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(ab=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.l).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=
a.asm.m).apply(null,arguments)},bb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(bb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.n).apply(null,arguments)},cb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(cb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.o).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
a.asm.p).apply(null,arguments)},db=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(db=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.q).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.r).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_size_0=function(){return(eb=a._emscripten_bind_PointAttribute_size_0=a.asm.s).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=
function(){return(fb=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.t).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(gb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.u).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(hb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.v).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_num_components_0=function(){return(ib=a._emscripten_bind_PointAttribute_num_components_0=
a.asm.w).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(jb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.x).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(kb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.y).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(lb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.z).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_unique_id_0=
function(){return(mb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.A).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(nb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.B).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.C).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=
function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.D).apply(null,arguments)},pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.E).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.F).apply(null,arguments)},rb=
a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.G).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.H).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=
a.asm.I).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(tb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.J).apply(null,arguments)},ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(ub=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.K).apply(null,arguments)},vb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(vb=
a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.L).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.M).apply(null,arguments)},wb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(wb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.N).apply(null,arguments)},xb=a._emscripten_bind_PointCloud_num_points_0=function(){return(xb=a._emscripten_bind_PointCloud_num_points_0=a.asm.O).apply(null,
arguments)},yb=a._emscripten_bind_PointCloud___destroy___0=function(){return(yb=a._emscripten_bind_PointCloud___destroy___0=a.asm.P).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.Q).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_faces_0=function(){return(zb=a._emscripten_bind_Mesh_num_faces_0=a.asm.R).apply(null,arguments)},Ab=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Ab=a._emscripten_bind_Mesh_num_attributes_0=
a.asm.S).apply(null,arguments)},Bb=a._emscripten_bind_Mesh_num_points_0=function(){return(Bb=a._emscripten_bind_Mesh_num_points_0=a.asm.T).apply(null,arguments)},Cb=a._emscripten_bind_Mesh___destroy___0=function(){return(Cb=a._emscripten_bind_Mesh___destroy___0=a.asm.U).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.V).apply(null,arguments)},Db=a._emscripten_bind_Metadata___destroy___0=function(){return(Db=a._emscripten_bind_Metadata___destroy___0=
a.asm.W).apply(null,arguments)},Eb=a._emscripten_bind_Status_code_0=function(){return(Eb=a._emscripten_bind_Status_code_0=a.asm.X).apply(null,arguments)},Fb=a._emscripten_bind_Status_ok_0=function(){return(Fb=a._emscripten_bind_Status_ok_0=a.asm.Y).apply(null,arguments)},Gb=a._emscripten_bind_Status_error_msg_0=function(){return(Gb=a._emscripten_bind_Status_error_msg_0=a.asm.Z).apply(null,arguments)},Hb=a._emscripten_bind_Status___destroy___0=function(){return(Hb=a._emscripten_bind_Status___destroy___0=
a.asm._).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.$).apply(null,arguments)},Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Ib=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.aa).apply(null,arguments)},Jb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Jb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.ba).apply(null,arguments)},Kb=
a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Kb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ca).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.da).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ea).apply(null,arguments)},Mb=a._emscripten_bind_DracoInt8Array_size_0=
function(){return(Mb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.fa).apply(null,arguments)},Nb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.ga).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ha).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoUInt8Array_GetValue_1=
a.asm.ia).apply(null,arguments)},Pb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ja).apply(null,arguments)},Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ka).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.la).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array_GetValue_1=
function(){return(Rb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.ma).apply(null,arguments)},Sb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Sb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.na).apply(null,arguments)},Tb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Tb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.oa).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=
a.asm.pa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.qa).apply(null,arguments)},Vb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ra).apply(null,arguments)},Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.sa).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=
function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.ta).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ua).apply(null,arguments)},Yb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Yb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.va).apply(null,arguments)},Zb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoInt32Array___destroy___0=
a.asm.wa).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.xa).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return($b=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.ya).apply(null,arguments)},ac=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.za).apply(null,arguments)},bc=a._emscripten_bind_DracoUInt32Array___destroy___0=
function(){return(bc=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Aa).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Ba).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(cc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ca).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=
a.asm.Da).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Ea).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Fa).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ga).apply(null,
arguments)},hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(hc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ha).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ia).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(jc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ja).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0=
function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ka).apply(null,arguments)},kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(kc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.La).apply(null,arguments)},lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(lc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Ma).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeId_2=
a.asm.Na).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Oa).apply(null,arguments)},oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Pa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Qa).apply(null,arguments)},
qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ra).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(rc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Sa).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Ta).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=
function(){return(tc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ua).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(uc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Va).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(vc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Wa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(wc=
a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Xa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Ya).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Za).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=
a.asm._a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.ab).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=
a.asm.bb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.cb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.db).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=
a.asm.eb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.fb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Hc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.gb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Ic=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=
a.asm.hb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Jc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.ib).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Kc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.jb).apply(null,arguments)},Lc=a._emscripten_bind_Decoder___destroy___0=function(){return(Lc=a._emscripten_bind_Decoder___destroy___0=a.asm.kb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.lb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.mb).apply(null,arguments)},Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Oc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=
a.asm.nb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.ob).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.pb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=
a.asm.qb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.rb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.sb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=
a.asm.tb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.ub).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.vb).apply(null,arguments)},Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Xc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=
a.asm.wb).apply(null,arguments)},Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Yc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.xb).apply(null,arguments)},Zc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.yb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT8=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.zb).apply(null,arguments)},ad=
a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.Ab).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Bb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Cb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT32=
a.asm.Db).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Eb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(fd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Fb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Gb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_FLOAT32=
function(){return(hd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Hb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Ib).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(jd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Jb).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(kd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=
a.asm.Kb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_OK=function(){return(ld=a._emscripten_enum_draco_StatusCode_OK=a.asm.Lb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(md=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Mb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(nd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Nb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
function(){return(od=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Ob).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(pd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Pb).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(qd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Qb).apply(null,arguments)},Ya=a._malloc=function(){return(Ya=a._malloc=a.asm.Rb).apply(null,
arguments)};a._free=function(){return(a._free=a.asm.Sb).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua=a.___cxa_is_pointer_type=a.asm.Tb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var ka;ha=function b(){ka||F();ka||(ha=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();F();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=
v;a.getCache=w;a.wrapPointer=B;a.castObject=function(b,c){return B(b.ptr,c)};a.NULL=B(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete w(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var b=0;b<r.temps.length;b++)a._free(r.temps[b]);
r.temps.length=0;a._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=a._malloc(r.size),r.buffer||y(void 0));r.pos=0},alloc:function(b,c){r.buffer||y(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;r.pos+b>=r.size?(0<b||y(void 0),r.needed+=b,c=a._malloc(b),r.temps.push(c)):(c=r.buffer+r.pos,r.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var g=0;g<b.length;g++)c[d+g]=b[g]}};X.prototype=
Object.create(v.prototype);X.prototype.constructor=X;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){Za(this.ptr)};S.prototype=Object.create(v.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.DecoderBuffer=S;S.prototype.Init=S.prototype.Init=function(b,c){var d=this.ptr;r.prepare();"object"==typeof b&&(b=Z(b));c&&"object"===typeof c&&(c=c.ptr);$a(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){ab(this.ptr)};
Q.prototype=Object.create(v.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.AttributeTransformData=Q;Q.prototype.transform_type=Q.prototype.transform_type=function(){return bb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){cb(this.ptr)};V.prototype=Object.create(v.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.GeometryAttribute=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){db(this.ptr)};x.prototype=
Object.create(v.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.PointAttribute=x;x.prototype.size=x.prototype.size=function(){return eb(this.ptr)};x.prototype.GetAttributeTransformData=x.prototype.GetAttributeTransformData=function(){return B(fb(this.ptr),Q)};x.prototype.attribute_type=x.prototype.attribute_type=function(){return gb(this.ptr)};x.prototype.data_type=x.prototype.data_type=function(){return hb(this.ptr)};x.prototype.num_components=x.prototype.num_components=
function(){return ib(this.ptr)};x.prototype.normalized=x.prototype.normalized=function(){return!!jb(this.ptr)};x.prototype.byte_stride=x.prototype.byte_stride=function(){return kb(this.ptr)};x.prototype.byte_offset=x.prototype.byte_offset=function(){return lb(this.ptr)};x.prototype.unique_id=x.prototype.unique_id=function(){return mb(this.ptr)};x.prototype.__destroy__=x.prototype.__destroy__=function(){nb(this.ptr)};D.prototype=Object.create(v.prototype);D.prototype.constructor=D;D.prototype.__class__=
D;D.__cache__={};a.AttributeQuantizationTransform=D;D.prototype.InitFromAttribute=D.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!ob(c,b)};D.prototype.quantization_bits=D.prototype.quantization_bits=function(){return pb(this.ptr)};D.prototype.min_value=D.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return qb(c,b)};D.prototype.range=D.prototype.range=function(){return rb(this.ptr)};D.prototype.__destroy__=D.prototype.__destroy__=
function(){sb(this.ptr)};G.prototype=Object.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.AttributeOctahedronTransform=G;G.prototype.InitFromAttribute=G.prototype.InitFromAttribute=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return!!tb(c,b)};G.prototype.quantization_bits=G.prototype.quantization_bits=function(){return ub(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){vb(this.ptr)};H.prototype=Object.create(v.prototype);
H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return wb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return xb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){yb(this.ptr)};E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return zb(this.ptr)};
E.prototype.num_attributes=E.prototype.num_attributes=function(){return Ab(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Bb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Cb(this.ptr)};T.prototype=Object.create(v.prototype);T.prototype.constructor=T;T.prototype.__class__=T;T.__cache__={};a.Metadata=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){Db(this.ptr)};C.prototype=Object.create(v.prototype);C.prototype.constructor=C;C.prototype.__class__=
C;C.__cache__={};a.Status=C;C.prototype.code=C.prototype.code=function(){return Eb(this.ptr)};C.prototype.ok=C.prototype.ok=function(){return!!Fb(this.ptr)};C.prototype.error_msg=C.prototype.error_msg=function(){return p(Gb(this.ptr))};C.prototype.__destroy__=C.prototype.__destroy__=function(){Hb(this.ptr)};I.prototype=Object.create(v.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoFloat32Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;
b&&"object"===typeof b&&(b=b.ptr);return Ib(c,b)};I.prototype.size=I.prototype.size=function(){return Jb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Kb(this.ptr)};J.prototype=Object.create(v.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoInt8Array=J;J.prototype.GetValue=J.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Lb(c,b)};J.prototype.size=J.prototype.size=function(){return Mb(this.ptr)};J.prototype.__destroy__=
J.prototype.__destroy__=function(){Nb(this.ptr)};K.prototype=Object.create(v.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.DracoUInt8Array=K;K.prototype.GetValue=K.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Ob(c,b)};K.prototype.size=K.prototype.size=function(){return Pb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Qb(this.ptr)};L.prototype=Object.create(v.prototype);L.prototype.constructor=L;L.prototype.__class__=
L;L.__cache__={};a.DracoInt16Array=L;L.prototype.GetValue=L.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Rb(c,b)};L.prototype.size=L.prototype.size=function(){return Sb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Tb(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.DracoUInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===
typeof b&&(b=b.ptr);return Ub(c,b)};M.prototype.size=M.prototype.size=function(){return Vb(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){Wb(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoInt32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Xb(c,b)};N.prototype.size=N.prototype.size=function(){return Yb(this.ptr)};N.prototype.__destroy__=
N.prototype.__destroy__=function(){Zb(this.ptr)};O.prototype=Object.create(v.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoUInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return $b(c,b)};O.prototype.size=O.prototype.size=function(){return ac(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){bc(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=
z;z.__cache__={};a.MetadataQuerier=z;z.prototype.HasEntry=z.prototype.HasEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return!!cc(d,b,c)};z.prototype.GetIntEntry=z.prototype.GetIntEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return dc(d,b,c)};z.prototype.GetIntEntryArray=z.prototype.GetIntEntryArray=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===
typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d&&"object"===typeof d&&(d=d.ptr);ec(g,b,c,d)};z.prototype.GetDoubleEntry=z.prototype.GetDoubleEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return fc(d,b,c)};z.prototype.GetStringEntry=z.prototype.GetStringEntry=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return p(gc(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return hc(c,b)};z.prototype.GetEntryName=z.prototype.GetEntryName=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return p(ic(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){jc(this.ptr)};m.prototype=Object.create(v.prototype);m.prototype.constructor=m;m.prototype.__class__=m;m.__cache__={};a.Decoder=m;m.prototype.DecodeArrayToPointCloud=m.prototype.DecodeArrayToPointCloud=
function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=Z(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return B(kc(g,b,c,d),C)};m.prototype.DecodeArrayToMesh=m.prototype.DecodeArrayToMesh=function(b,c,d){var g=this.ptr;r.prepare();"object"==typeof b&&(b=Z(b));c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return B(lc(g,b,c,d),C)};m.prototype.GetAttributeId=m.prototype.GetAttributeId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);return mc(d,b,c)};m.prototype.GetAttributeIdByName=m.prototype.GetAttributeIdByName=function(b,c){var d=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);return nc(d,b,c)};m.prototype.GetAttributeIdByMetadataEntry=m.prototype.GetAttributeIdByMetadataEntry=function(b,c,d){var g=this.ptr;r.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:R(c);d=d&&"object"===typeof d?d.ptr:R(d);return oc(g,b,c,d)};m.prototype.GetAttribute=
m.prototype.GetAttribute=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(pc(d,b,c),x)};m.prototype.GetAttributeByUniqueId=m.prototype.GetAttributeByUniqueId=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(qc(d,b,c),x)};m.prototype.GetMetadata=m.prototype.GetMetadata=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return B(rc(c,b),T)};m.prototype.GetAttributeMetadata=m.prototype.GetAttributeMetadata=
function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(sc(d,b,c),T)};m.prototype.GetFaceFromMesh=m.prototype.GetFaceFromMesh=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!tc(g,b,c,d)};m.prototype.GetTriangleStripsFromMesh=m.prototype.GetTriangleStripsFromMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
return uc(d,b,c)};m.prototype.GetTrianglesUInt16Array=m.prototype.GetTrianglesUInt16Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!vc(g,b,c,d)};m.prototype.GetTrianglesUInt32Array=m.prototype.GetTrianglesUInt32Array=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!wc(g,b,c,d)};m.prototype.GetAttributeFloat=m.prototype.GetAttributeFloat=
function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!xc(g,b,c,d)};m.prototype.GetAttributeFloatForAllPoints=m.prototype.GetAttributeFloatForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!yc(g,b,c,d)};m.prototype.GetAttributeIntForAllPoints=m.prototype.GetAttributeIntForAllPoints=function(b,c,d){var g=this.ptr;
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!zc(g,b,c,d)};m.prototype.GetAttributeInt8ForAllPoints=m.prototype.GetAttributeInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ac(g,b,c,d)};m.prototype.GetAttributeUInt8ForAllPoints=m.prototype.GetAttributeUInt8ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=
b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Bc(g,b,c,d)};m.prototype.GetAttributeInt16ForAllPoints=m.prototype.GetAttributeInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Cc(g,b,c,d)};m.prototype.GetAttributeUInt16ForAllPoints=m.prototype.GetAttributeUInt16ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Dc(g,b,c,d)};m.prototype.GetAttributeInt32ForAllPoints=m.prototype.GetAttributeInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ec(g,b,c,d)};m.prototype.GetAttributeUInt32ForAllPoints=m.prototype.GetAttributeUInt32ForAllPoints=function(b,c,d){var g=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===
typeof d&&(d=d.ptr);return!!Fc(g,b,c,d)};m.prototype.GetAttributeDataArrayForAllPoints=m.prototype.GetAttributeDataArrayForAllPoints=function(b,c,d,g,t){var aa=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);g&&"object"===typeof g&&(g=g.ptr);t&&"object"===typeof t&&(t=t.ptr);return!!Gc(aa,b,c,d,g,t)};m.prototype.SkipAttributeTransform=m.prototype.SkipAttributeTransform=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Hc(c,
b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Ic(c,b)};m.prototype.DecodeBufferToPointCloud=m.prototype.DecodeBufferToPointCloud=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return B(Jc(d,b,c),C)};m.prototype.DecodeBufferToMesh=m.prototype.DecodeBufferToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return B(Kc(d,b,c),C)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Lc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Mc();a.ATTRIBUTE_NO_TRANSFORM=Nc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Oc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Pc();a.INVALID=Qc();a.POSITION=Rc();a.NORMAL=Sc();a.COLOR=Tc();a.TEX_COORD=Uc();a.GENERIC=Vc();a.INVALID_GEOMETRY_TYPE=Wc();a.POINT_CLOUD=Xc();a.TRIANGULAR_MESH=Yc();a.DT_INVALID=Zc();a.DT_INT8=$c();a.DT_UINT8=ad();a.DT_INT16=
bd();a.DT_UINT16=cd();a.DT_INT32=dd();a.DT_UINT32=ed();a.DT_INT64=fd();a.DT_UINT64=gd();a.DT_FLOAT32=hd();a.DT_FLOAT64=id();a.DT_BOOL=jd();a.DT_TYPES_COUNT=kd();a.OK=ld();a.DRACO_ERROR=md();a.IO_ERROR=nd();a.INVALID_PARAMETER=od();a.UNSUPPORTED_VERSION=pd();a.UNKNOWN_VERSION=qd()}va?b():oa.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();a.Decoder.prototype.GetEncodedGeometryType=function(b){if(b.__class__&&b.__class__===a.DecoderBuffer)return a.Decoder.prototype.GetEncodedGeometryType_Deprecated(b);
if(8>b.byteLength)return a.INVALID_GEOMETRY_TYPE;switch(b[7]){case 0:return a.POINT_CLOUD;case 1:return a.TRIANGULAR_MESH;default:return a.INVALID_GEOMETRY_TYPE}};return n.ready}}();"object"===typeof exports&&"object"===typeof module?module.exports=DracoDecoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoDecoderModule}):"object"===typeof exports&&(exports.DracoDecoderModule=DracoDecoderModule);

View File

@ -5,94 +5,93 @@ var $jscomp$lookupPolyfilledValue=function(l,p){var m=$jscomp.propertyToPolyfill
$jscomp.polyfillUnisolated=function(l,p,m,r){m=$jscomp.global;l=l.split(".");for(r=0;r<l.length-1;r++){var k=l[r];if(!(k in m))return;m=m[k]}l=l[l.length-1];r=m[l];p=p(r);p!=r&&null!=p&&$jscomp.defineProperty(m,l,{configurable:!0,writable:!0,value:p})};
$jscomp.polyfillIsolated=function(l,p,m,r){var k=l.split(".");l=1===k.length;r=k[0];r=!l&&r in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var C=0;C<k.length-1;C++){var h=k[C];if(!(h in r))return;r=r[h]}k=k[k.length-1];m=$jscomp.IS_SYMBOL_NATIVE&&"es6"===m?r[k]:null;p=p(m);null!=p&&(l?$jscomp.defineProperty($jscomp.polyfills,k,{configurable:!0,writable:!0,value:p}):p!==m&&(void 0===$jscomp.propertyToPolyfillSymbol[k]&&(m=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[k]=$jscomp.IS_SYMBOL_NATIVE?
$jscomp.global.Symbol(k):$jscomp.POLYFILL_PREFIX+m+"$"+k),$jscomp.defineProperty(r,$jscomp.propertyToPolyfillSymbol[k],{configurable:!0,writable:!0,value:p})))};
$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,v){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};
var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var v=h[q];h[q]=null;try{v()}catch(D){this.asyncThrow_(D)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{h(q.resolve,q.reject)}catch(v){q.reject(v)}};k.prototype.createResolveAndReject_=function(){function h(D){return function(G){v||(v=!0,D.call(q,G))}}var q=this,v=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case "object":var q=null!=h;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):
this.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(v){this.reject_(v);return}"function"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error("Cannot settle("+h+", "+q+"): Promise already settled in state"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,v=$jscomp.global.dispatchEvent;if("undefined"===typeof v)return!0;"function"===typeof h?h=new h("unhandledrejection",{cancelable:!0}):
"function"===typeof q?h=new q("unhandledrejection",{cancelable:!0}):(h=$jscomp.global.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h));h.promise=this;h.reason=this.result_;return v(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();
h.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var v=this.createResolveAndReject_();try{h.call(q,v.resolve,v.reject)}catch(D){v.reject(D)}};k.prototype.then=function(h,q){function v(B,K){return"function"==typeof B?function(O){try{D(B(O))}catch(R){G(R)}}:K}var D,G,y=new k(function(B,K){D=B;G=K});this.callWhenSettled_(v(h,D),v(q,G));return y};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function v(){switch(D.state_){case 1:h(D.result_);
break;case 2:q(D.result_);break;default:throw Error("Unexpected state: "+D.state_);}}var D=this;null==this.onSettledCallbacks_?C.asyncExecute(v):this.onSettledCallbacks_.push(v);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,v){v(h)})};k.race=function(h){return new k(function(q,v){for(var D=$jscomp.makeIterator(h),G=D.next();!G.done;G=D.next())m(G.value).callWhenSettled_(q,v)})};k.all=function(h){var q=$jscomp.makeIterator(h),v=q.next();return v.done?m([]):new k(function(D,
G){function y(O){return function(R){B[O]=R;K--;0==K&&D(B)}}var B=[],K=0;do B.push(void 0),K++,m(v.value).callWhenSettled_(y(B.length-1),G),v=q.next();while(!v.done)})};return k},"es6","es3");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};
$jscomp.polyfill("Promise",function(l){function p(){this.batch_=null}function m(h){return h instanceof k?h:new k(function(q,w){q(h)})}if(l&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return l;p.prototype.asyncExecute=function(h){if(null==this.batch_){this.batch_=[];var q=this;this.asyncExecuteFunction(function(){q.executeBatch_()})}this.batch_.push(h)};
var r=$jscomp.global.setTimeout;p.prototype.asyncExecuteFunction=function(h){r(h,0)};p.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var h=this.batch_;this.batch_=[];for(var q=0;q<h.length;++q){var w=h[q];h[q]=null;try{w()}catch(B){this.asyncThrow_(B)}}}this.batch_=null};p.prototype.asyncThrow_=function(h){this.asyncExecuteFunction(function(){throw h;})};var k=function(h){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var q=this.createResolveAndReject_();
try{h(q.resolve,q.reject)}catch(w){q.reject(w)}};k.prototype.createResolveAndReject_=function(){function h(B){return function(v){w||(w=!0,B.call(q,v))}}var q=this,w=!1;return{resolve:h(this.resolveTo_),reject:h(this.reject_)}};k.prototype.resolveTo_=function(h){if(h===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(h instanceof k)this.settleSameAsPromise_(h);else{a:switch(typeof h){case "object":var q=null!=h;break a;case "function":q=!0;break a;default:q=!1}q?this.resolveToNonPromiseObj_(h):
this.fulfill_(h)}};k.prototype.resolveToNonPromiseObj_=function(h){var q=void 0;try{q=h.then}catch(w){this.reject_(w);return}"function"==typeof q?this.settleSameAsThenable_(q,h):this.fulfill_(h)};k.prototype.reject_=function(h){this.settle_(2,h)};k.prototype.fulfill_=function(h){this.settle_(1,h)};k.prototype.settle_=function(h,q){if(0!=this.state_)throw Error("Cannot settle("+h+", "+q+"): Promise already settled in state"+this.state_);this.state_=h;this.result_=q;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};k.prototype.scheduleUnhandledRejectionCheck_=function(){var h=this;r(function(){if(h.notifyUnhandledRejection_()){var q=$jscomp.global.console;"undefined"!==typeof q&&q.error(h.result_)}},1)};k.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var h=$jscomp.global.CustomEvent,q=$jscomp.global.Event,w=$jscomp.global.dispatchEvent;if("undefined"===typeof w)return!0;"function"===typeof h?h=new h("unhandledrejection",{cancelable:!0}):
"function"===typeof q?h=new q("unhandledrejection",{cancelable:!0}):(h=$jscomp.global.document.createEvent("CustomEvent"),h.initCustomEvent("unhandledrejection",!1,!0,h));h.promise=this;h.reason=this.result_;return w(h)};k.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var h=0;h<this.onSettledCallbacks_.length;++h)C.asyncExecute(this.onSettledCallbacks_[h]);this.onSettledCallbacks_=null}};var C=new p;k.prototype.settleSameAsPromise_=function(h){var q=this.createResolveAndReject_();
h.callWhenSettled_(q.resolve,q.reject)};k.prototype.settleSameAsThenable_=function(h,q){var w=this.createResolveAndReject_();try{h.call(q,w.resolve,w.reject)}catch(B){w.reject(B)}};k.prototype.then=function(h,q){function w(I,J){return"function"==typeof I?function(Q){try{B(I(Q))}catch(R){v(R)}}:J}var B,v,D=new k(function(I,J){B=I;v=J});this.callWhenSettled_(w(h,B),w(q,v));return D};k.prototype.catch=function(h){return this.then(void 0,h)};k.prototype.callWhenSettled_=function(h,q){function w(){switch(B.state_){case 1:h(B.result_);
break;case 2:q(B.result_);break;default:throw Error("Unexpected state: "+B.state_);}}var B=this;null==this.onSettledCallbacks_?C.asyncExecute(w):this.onSettledCallbacks_.push(w);this.isRejectionHandled_=!0};k.resolve=m;k.reject=function(h){return new k(function(q,w){w(h)})};k.race=function(h){return new k(function(q,w){for(var B=$jscomp.makeIterator(h),v=B.next();!v.done;v=B.next())m(v.value).callWhenSettled_(q,w)})};k.all=function(h){var q=$jscomp.makeIterator(h),w=q.next();return w.done?m([]):new k(function(B,
v){function D(Q){return function(R){I[Q]=R;J--;0==J&&B(I)}}var I=[],J=0;do I.push(void 0),J++,m(w.value).callWhenSettled_(D(I.length-1),v),w=q.next();while(!w.done)})};return k},"es6","es3");$jscomp.owns=function(l,p){return Object.prototype.hasOwnProperty.call(l,p)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(l,p){for(var m=1;m<arguments.length;m++){var r=arguments[m];if(r)for(var k in r)$jscomp.owns(r,k)&&(l[k]=r[k])}return l};
$jscomp.polyfill("Object.assign",function(l){return l||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(l,p,m){if(null==l)throw new TypeError("The 'this' value for String.prototype."+m+" must not be null or undefined");if(p instanceof RegExp)throw new TypeError("First argument to String.prototype."+m+" must not be a regular expression");return l+""};
$jscomp.polyfill("String.prototype.startsWith",function(l){return l?l:function(p,m){var r=$jscomp.checkStringArgs(this,p,"startsWith");p+="";var k=r.length,C=p.length;m=Math.max(0,Math.min(m|0,r.length));for(var h=0;h<C&&m<k;)if(r[m++]!=p[h++])return!1;return h>=C}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(l){function p(m){m=Number(m);return Infinity===m||-Infinity===m?m:m|0}return l?l:function(m,r,k){var C=this.length;m=p(m);r=p(r);k=void 0===k?C:p(k);m=0>m?Math.max(C+m,0):Math.min(m,C);r=0>r?Math.max(C+r,0):Math.min(r,C);k=0>k?Math.max(C+k,0):Math.min(k,C);if(m<r)for(;r<k;)r in this?this[m++]=this[r++]:(delete this[m++],r++);else for(k=Math.min(k,C+r-m),m+=k-r;k>r;)--k in this?this[--m]=this[k]:delete this[--m];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(l){return l?l:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){qa=f;a.HEAP8=P=new Int8Array(f);a.HEAP16=ha=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=ia=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ja=new Float32Array(f);a.HEAPF64=new Float64Array(f)}
function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);ra=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ka(f);throw f;}function C(f){try{if(f==J&&X)return new Uint8Array(X);if(la)return la(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(sa||Y)){if("function"==typeof fetch&&!J.startsWith("file://"))return fetch(J,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+
J+"'";return f.arrayBuffer()}).catch(function(){return C(J)});if(ma)return new Promise(function(f,b){ma(J,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(J)})}function q(f){for(;0<f.length;){var b=f.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===b.arg?v(c)():v(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function v(f){var b=ba[f];b||(f>=ba.length&&(ba.length=f+1),ba[f]=b=ta.get(f));return b}function D(f){this.excPtr=f;this.ptr=
f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=function(b){S[this.ptr>>2]=b};this.set_caught=function(b){P[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=P[this.ptr+12>>0]};this.set_rethrown=function(b){P[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=P[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);
this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(ua(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function G(f){function b(){if(!ca&&
(ca=!0,a.calledRun=!0,!ra)){va=!0;q(na);wa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)xa.unshift(a.postRun.shift());q(xa)}}if(!(0<U)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ya.unshift(a.preRun.shift());q(ya);0<U||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function y(){}function B(f){return(f||
y).__cache__}function K(f,b){var c=B(b),d=c[f];if(d)return d;d=Object.create((b||y).prototype);d.ptr=f;return c[f]=d}function O(f){if("string"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|f.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:b+4}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=
d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,P);n.copy(b,P,f);return f}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,P);n.copy(f,P,b);return b}return f}function da(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);
n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ja);n.copy(f,ja,b);return b}return f}function Q(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=za();B(M)[this.ptr]=this}function z(){this.ptr=Aa();B(z)[this.ptr]=this}function H(){this.ptr=Ba();B(H)[this.ptr]=this}function E(){this.ptr=Ca();B(E)[this.ptr]=this}function N(){this.ptr=Da();B(N)[this.ptr]=this}function I(){this.ptr=Ea();B(I)[this.ptr]=this}function F(){this.ptr=Fa();
B(F)[this.ptr]=this}function w(){this.ptr=Ga();B(w)[this.ptr]=this}function u(){this.ptr=Ha();B(u)[this.ptr]=this}function x(){this.ptr=Ia();B(x)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ja(f);B(A)[this.ptr]=this}p=p||{};var a="undefined"!=typeof p?p:{},wa,ka;a.ready=new Promise(function(f,b){wa=f;ka=b});var Ka=!1,La=!1;a.onRuntimeInitialized=function(){Ka=!0;if(La&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){La=!0;if(Ka&&"function"===
typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ma=Object.assign({},a),sa="object"==typeof window,Y="function"==typeof importScripts,Na="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,L="",oa,ea;if(Na){L=Y?require("path").dirname(L)+"/":__dirname+"/";var Oa=function(){ea||(oa=require("fs"),
ea=require("path"))};var Pa=function(f,b){Oa();f=ea.normalize(f);return oa.readFileSync(f,b?void 0:"utf8")};var la=function(f){f=Pa(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ma=function(f,b,c){Oa();f=ea.normalize(f);oa.readFile(f,function(d,e){d?c(d):b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(sa||Y)Y?L=self.location.href:"undefined"!=typeof document&&document.currentScript&&
(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf("blob:")?L.substr(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Pa=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.send(null);return b.responseText},Y&&(la=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ma=function(f,b,c){var d=new XMLHttpRequest;d.open("GET",f,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?
b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ma);Ma=null;var X;a.wasmBinary&&(X=a.wasmBinary);"object"!=typeof WebAssembly&&k("no native wasm support detected");var fa,ra=!1,qa,P,ia,ha,S,T,ja,ta,ya=[],na=[],xa=[],va=!1,U=0,pa=null,aa=null;var J="draco_encoder.wasm";J.startsWith("data:application/octet-stream;base64,")||(J=m(J));var ba=[],tc=0,uc={c:function(f){return Qa(f+24)+24},b:function(f,b,c){(new D(f)).init(b,
c);tc++;throw f;},a:function(){k("")},e:function(f,b,c){ia.copyWithin(f,b,b+c)},d:function(f){var b=ia.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,d+(65536-d%65536)%65536);a:{try{fa.grow(e-qa.byteLength+65535>>>16);r(fa.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;fa=a.asm.f;r(fa.buffer);ta=a.asm.h;na.unshift(a.asm.g);
U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==pa&&(clearInterval(pa),pa=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+g);k(g)})}var d={a:uc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){return W("Module.instantiateWasm callback failed with error: "+
e),!1}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||J.startsWith("data:application/octet-stream;base64,")||J.startsWith("file://")||Na||"function"!=typeof fetch?c(b):fetch(J,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ka);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=
a.asm.g).apply(null,arguments)};var Ra=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Ra=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(za=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.j).apply(null,arguments)},Sa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Sa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},
Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Aa=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_size_0=function(){return(Ta=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Ua=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_data_type_0=
function(){return(Va=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Wa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Xa=a._emscripten_bind_PointAttribute_normalized_0=a.asm.q).apply(null,arguments)},Ya=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ya=a._emscripten_bind_PointAttribute_byte_stride_0=
a.asm.r).apply(null,arguments)},Za=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Za=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},$a=a._emscripten_bind_PointAttribute_unique_id_0=function(){return($a=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},ab=a._emscripten_bind_PointAttribute___destroy___0=function(){return(ab=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},Ba=a._emscripten_bind_PointCloud_PointCloud_0=
function(){return(Ba=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},bb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(bb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},cb=a._emscripten_bind_PointCloud_num_points_0=function(){return(cb=a._emscripten_bind_PointCloud_num_points_0=a.asm.x).apply(null,arguments)},db=a._emscripten_bind_PointCloud___destroy___0=function(){return(db=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,
arguments)},Ca=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ca=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},eb=a._emscripten_bind_Mesh_num_faces_0=function(){return(eb=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},fb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(fb=a._emscripten_bind_Mesh_num_attributes_0=a.asm.B).apply(null,arguments)},gb=a._emscripten_bind_Mesh_num_points_0=function(){return(gb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,
arguments)},hb=a._emscripten_bind_Mesh_set_num_points_1=function(){return(hb=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},ib=a._emscripten_bind_Mesh___destroy___0=function(){return(ib=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},Da=a._emscripten_bind_Metadata_Metadata_0=function(){return(Da=a._emscripten_bind_Metadata_Metadata_0=a.asm.F).apply(null,arguments)},jb=a._emscripten_bind_Metadata___destroy___0=function(){return(jb=a._emscripten_bind_Metadata___destroy___0=
a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ea=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},kb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(kb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},lb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(lb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},mb=a._emscripten_bind_DracoInt8Array___destroy___0=
function(){return(mb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Fa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(nb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=a.asm.M).apply(null,arguments)},ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(ob=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=
a.asm.N).apply(null,arguments)},pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(pb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(qb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},rb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(rb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},
Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ga=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},
ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=function(){return(wb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},
xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(xb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(yb=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=function(){return(zb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},Ab=
a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(Ab=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ha=a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=
function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=a.asm.da).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Fb=
a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=
a.asm.ha).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Kb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(Lb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},
Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Mb=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Nb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Ob=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=a.asm.na).apply(null,arguments)},Pb=a._emscripten_bind_MeshBuilder___destroy___0=
function(){return(Pb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Ia=a._emscripten_bind_Encoder_Encoder_0=function(){return(Ia=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Qb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(Rb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=
a.asm.ra).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Sb=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Tb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Ub=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,
arguments)},Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Vb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Wb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Xb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,
arguments)},Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Yb=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Zb=a._emscripten_bind_Encoder___destroy___0=function(){return(Zb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ja=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=a.asm.Aa).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=
function(){return($b=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(bc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=a.asm.Da).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=
function(){return(cc=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return(dc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ec=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=a.asm.Ga).apply(null,arguments)},fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=
function(){return(fc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(gc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},hc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(hc=a._emscripten_bind_ExpertEncoder___destroy___0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ic=
a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(kc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.Ma).apply(null,arguments)},lc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(lc=
a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(mc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(nc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.Pa).apply(null,arguments)},oc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(oc=
a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(pc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(qc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=
function(){return(rc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(sc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Qa=a._malloc=function(){return(Qa=a._malloc=a.asm.Va).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Wa).apply(null,arguments)};var ua=a.___cxa_is_pointer_type=function(){return(ua=
a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)},ca;aa=function b(){ca||G();ca||(aa=b)};a.run=G;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();G();y.prototype=Object.create(y.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.WrapperObject=y;a.getCache=B;a.wrapPointer=K;a.castObject=function(b,c){return K(b.ptr,c)};a.NULL=K(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";
b.__destroy__();delete B(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=
b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),n.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};Q.prototype=Object.create(y.prototype);Q.prototype.constructor=Q;Q.prototype.__class__=Q;Q.__cache__={};a.VoidPtr=Q;Q.prototype.__destroy__=Q.prototype.__destroy__=function(){Ra(this.ptr)};M.prototype=
Object.create(y.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Sa(this.ptr)};z.prototype=Object.create(y.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=function(){return Ta(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Ua(this.ptr)};z.prototype.data_type=z.prototype.data_type=
function(){return Va(this.ptr)};z.prototype.num_components=z.prototype.num_components=function(){return Wa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Xa(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Ya(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Za(this.ptr)};z.prototype.unique_id=z.prototype.unique_id=function(){return $a(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){ab(this.ptr)};
H.prototype=Object.create(y.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return bb(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return cb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){db(this.ptr)};E.prototype=Object.create(y.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=
function(){return eb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return fb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return gb(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);hb(c,b)};E.prototype.__destroy__=E.prototype.__destroy__=function(){ib(this.ptr)};N.prototype=Object.create(y.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=
N;N.prototype.__destroy__=N.prototype.__destroy__=function(){jb(this.ptr)};I.prototype=Object.create(y.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoInt8Array=I;I.prototype.GetValue=I.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return kb(c,b)};I.prototype.size=I.prototype.size=function(){return lb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){mb(this.ptr)};F.prototype=Object.create(y.prototype);F.prototype.constructor=
F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=F.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d=d&&"object"===typeof d?d.ptr:O(d);return!!nb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d&&"object"===typeof d&&(d=d.ptr);return!!ob(e,b,c,d)};
F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);"object"==typeof d&&(d=V(d));e&&"object"===typeof e&&(e=e.ptr);return!!pb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:O(c);d&&"object"===typeof d&&(d=d.ptr);return!!qb(e,b,c,d)};F.prototype.__destroy__=
F.prototype.__destroy__=function(){rb(this.ptr)};w.prototype=Object.create(y.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};a.PointCloudBuilder=w;w.prototype.AddFloatAttribute=w.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return sb(t,b,c,d,e,g)};w.prototype.AddInt8Attribute=w.prototype.AddInt8Attribute=
function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return tb(t,b,c,d,e,g)};w.prototype.AddUInt8Attribute=w.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=
R(g));return ub(t,b,c,d,e,g)};w.prototype.AddInt16Attribute=w.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return vb(t,b,c,d,e,g)};w.prototype.AddUInt16Attribute=w.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return wb(t,b,c,d,e,g)};w.prototype.AddInt32Attribute=w.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return xb(t,b,c,d,e,g)};w.prototype.AddUInt32Attribute=w.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=
this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return yb(t,b,c,d,e,g)};w.prototype.AddMetadata=w.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!zb(d,b,c)};w.prototype.SetMetadataForAttribute=w.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&
(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ab(e,b,c,d)};w.prototype.__destroy__=w.prototype.__destroy__=function(){Bb(this.ptr)};u.prototype=Object.create(y.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);"object"==typeof d&&(d=V(d));return!!Cb(e,b,
c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Db(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=u.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Eb(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Fb(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);
e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Gb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Hb(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===
typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Ib(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return Jb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=
u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=da(g));return Kb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&
(e=e.ptr);"object"==typeof g&&(g=V(g));return Lb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Mb(t,b,c,d,e,g)};u.prototype.AddMetadata=u.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);
return!!Nb(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Ob(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Pb(this.ptr)};x.prototype=Object.create(y.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.Encoder=x;x.prototype.SetEncodingMethod=x.prototype.SetEncodingMethod=function(b){var c=
this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qb(c,b)};x.prototype.SetAttributeQuantization=x.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Rb(d,b,c)};x.prototype.SetAttributeExplicitQuantization=x.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));
g&&"object"===typeof g&&(g=g.ptr);Sb(t,b,c,d,e,g)};x.prototype.SetSpeedOptions=x.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Tb(d,b,c)};x.prototype.SetTrackEncodedProperties=x.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Ub(c,b)};x.prototype.EncodeMeshToDracoBuffer=x.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===
typeof c&&(c=c.ptr);return Vb(d,b,c)};x.prototype.EncodePointCloudToDracoBuffer=x.prototype.EncodePointCloudToDracoBuffer=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return Wb(e,b,c,d)};x.prototype.GetNumberOfEncodedPoints=x.prototype.GetNumberOfEncodedPoints=function(){return Xb(this.ptr)};x.prototype.GetNumberOfEncodedFaces=x.prototype.GetNumberOfEncodedFaces=function(){return Yb(this.ptr)};x.prototype.__destroy__=
x.prototype.__destroy__=function(){Zb(this.ptr)};A.prototype=Object.create(y.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);ac(d,b,c)};A.prototype.SetAttributeExplicitQuantization=
A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);bc(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);cc(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=
function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);dc(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return ec(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return fc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=A.prototype.GetNumberOfEncodedFaces=function(){return gc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=
function(){hc(this.ptr)};(function(){function b(){a.INVALID=ic();a.POSITION=jc();a.NORMAL=kc();a.COLOR=lc();a.TEX_COORD=mc();a.GENERIC=nc();a.INVALID_GEOMETRY_TYPE=oc();a.POINT_CLOUD=pc();a.TRIANGULAR_MESH=qc();a.MESH_SEQUENTIAL_ENCODING=rc();a.MESH_EDGEBREAKER_ENCODING=sc()}va?b():na.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();
var DracoEncoderModule=function(){var l="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(l=l||__filename);return function(p){function m(f){return a.locateFile?a.locateFile(f,L):L+f}function r(f){ma=f;a.HEAP8=O=new Int8Array(f);a.HEAP16=ea=new Int16Array(f);a.HEAP32=S=new Int32Array(f);a.HEAPU8=fa=new Uint8Array(f);a.HEAPU16=new Uint16Array(f);a.HEAPU32=T=new Uint32Array(f);a.HEAPF32=ha=new Float32Array(f);a.HEAPF64=new Float64Array(f)}
function k(f){if(a.onAbort)a.onAbort(f);f="Aborted("+f+")";W(f);na=!0;f=new WebAssembly.RuntimeError(f+". Build with -sASSERTIONS for more info.");ba(f);throw f;}function C(f){try{if(f==K&&X)return new Uint8Array(X);if(ia)return ia(f);throw"both async and sync fetching of the wasm failed";}catch(b){k(b)}}function h(){if(!X&&(oa||Y)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(f){if(!f.ok)throw"failed to load wasm binary file at '"+
K+"'";return f.arrayBuffer()}).catch(function(){return C(K)});if(ja)return new Promise(function(f,b){ja(K,function(c){f(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return C(K)})}function q(f){for(;0<f.length;)f.shift()(a)}function w(f){this.excPtr=f;this.ptr=f-24;this.set_type=function(b){T[this.ptr+4>>2]=b};this.get_type=function(){return T[this.ptr+4>>2]};this.set_destructor=function(b){T[this.ptr+8>>2]=b};this.get_destructor=function(){return T[this.ptr+8>>2]};this.set_refcount=
function(b){S[this.ptr>>2]=b};this.set_caught=function(b){O[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=O[this.ptr+12>>0]};this.set_rethrown=function(b){O[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=O[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){S[this.ptr>>2]+=1};this.release_ref=function(){var b=S[this.ptr>>2];S[this.ptr>>
2]=b-1;return 1===b};this.set_adjusted_ptr=function(b){T[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return T[this.ptr+16>>2]};this.get_exception_ptr=function(){if(pa(this.get_type()))return T[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function B(f){function b(){if(!ca&&(ca=!0,a.calledRun=!0,!na)){qa=!0;q(ka);ra(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)sa.unshift(a.postRun.shift());
q(sa)}}if(!(0<U)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)ta.unshift(a.preRun.shift());q(ta);0<U||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function v(){}function D(f){return(f||v).__cache__}function I(f,b){var c=D(b),d=c[f];if(d)return d;d=Object.create((b||v).prototype);d.ptr=f;return c[f]=d}function J(f){if("string"===typeof f){for(var b=0,c=0;c<f.length;++c){var d=f.charCodeAt(c);
127>=d?b++:2047>=d?b+=2:55296<=d&&57343>=d?(b+=4,++c):b+=3}b=Array(b+1);c=0;d=b.length;if(0<d){d=c+d-1;for(var e=0;e<f.length;++e){var g=f.charCodeAt(e);if(55296<=g&&57343>=g){var t=f.charCodeAt(++e);g=65536+((g&1023)<<10)|t&1023}if(127>=g){if(c>=d)break;b[c++]=g}else{if(2047>=g){if(c+1>=d)break;b[c++]=192|g>>6}else{if(65535>=g){if(c+2>=d)break;b[c++]=224|g>>12}else{if(c+3>=d)break;b[c++]=240|g>>18;b[c++]=128|g>>12&63}b[c++]=128|g>>6&63}b[c++]=128|g&63}}b[c]=0}f=n.alloc(b,O);n.copy(b,O,f);return f}return f}
function Q(f){if("object"===typeof f){var b=n.alloc(f,O);n.copy(f,O,b);return b}return f}function R(f){if("object"===typeof f){var b=n.alloc(f,ea);n.copy(f,ea,b);return b}return f}function V(f){if("object"===typeof f){var b=n.alloc(f,S);n.copy(f,S,b);return b}return f}function Z(f){if("object"===typeof f){var b=n.alloc(f,ha);n.copy(f,ha,b);return b}return f}function P(){throw"cannot construct a VoidPtr, no constructor in IDL";}function M(){this.ptr=ua();D(M)[this.ptr]=this}function z(){this.ptr=va();
D(z)[this.ptr]=this}function G(){this.ptr=wa();D(G)[this.ptr]=this}function E(){this.ptr=xa();D(E)[this.ptr]=this}function N(){this.ptr=ya();D(N)[this.ptr]=this}function H(){this.ptr=za();D(H)[this.ptr]=this}function F(){this.ptr=Aa();D(F)[this.ptr]=this}function x(){this.ptr=Ba();D(x)[this.ptr]=this}function u(){this.ptr=Ca();D(u)[this.ptr]=this}function y(){this.ptr=Da();D(y)[this.ptr]=this}function A(f){f&&"object"===typeof f&&(f=f.ptr);this.ptr=Ea(f);D(A)[this.ptr]=this}p=p||{};var a="undefined"!=
typeof p?p:{},ra,ba;a.ready=new Promise(function(f,b){ra=f;ba=b});var Fa=!1,Ga=!1;a.onRuntimeInitialized=function(){Fa=!0;if(Ga&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Ga=!0;if(Fa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(f){if("string"!==typeof f)return!1;f=f.split(".");return 2>f.length||3<f.length?!1:1==f[0]&&0<=f[1]&&5>=f[1]?!0:0!=f[0]||10<f[1]?!1:!0};var Ha=Object.assign({},a),oa="object"==typeof window,
Y="function"==typeof importScripts,Ia="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,L="";if(Ia){L=Y?require("path").dirname(L)+"/":__dirname+"/";if("function"===typeof require){var Ja=require("fs");var Ka=require("path")}var La=function(f,b){f=Ka.normalize(f);return Ja.readFileSync(f,b?void 0:"utf8")};var ia=function(f){f=La(f,!0);f.buffer||(f=new Uint8Array(f));return f};var ja=function(f,b,c){f=Ka.normalize(f);Ja.readFile(f,function(d,e){d?c(d):
b(e.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(oa||Y)Y?L=self.location.href:"undefined"!=typeof document&&document.currentScript&&(L=document.currentScript.src),l&&(L=l),L=0!==L.indexOf("blob:")?L.substr(0,L.replace(/[?#].*/,"").lastIndexOf("/")+1):"",La=function(f){var b=new XMLHttpRequest;b.open("GET",f,!1);b.send(null);return b.responseText},Y&&(ia=function(f){var b=new XMLHttpRequest;
b.open("GET",f,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),ja=function(f,b,c){var d=new XMLHttpRequest;d.open("GET",f,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)};a.print||console.log.bind(console);var W=a.printErr||console.warn.bind(console);Object.assign(a,Ha);Ha=null;var X;a.wasmBinary&&(X=a.wasmBinary);"object"!=typeof WebAssembly&&k("no native wasm support detected");
var da,na=!1,ma,O,fa,ea,S,T,ha,ta=[],ka=[],sa=[],qa=!1,U=0,la=null,aa=null;var K="draco_encoder.wasm";K.startsWith("data:application/octet-stream;base64,")||(K=m(K));var pc=0,qc={c:function(f){return Ma(f+24)+24},b:function(f,b,c){(new w(f)).init(b,c);pc++;throw f;},a:function(){k("")},e:function(f,b,c){fa.copyWithin(f,b,b+c)},d:function(f){var b=fa.length;f>>>=0;if(2147483648<f)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,f+100663296);var e=Math;d=Math.max(f,d);e=e.min.call(e,2147483648,
d+(65536-d%65536)%65536);a:{try{da.grow(e-ma.byteLength+65535>>>16);r(da.buffer);var g=1;break a}catch(t){}g=void 0}if(g)return!0}return!1}};(function(){function f(e,g){a.asm=e.exports;da=a.asm.f;r(da.buffer);ka.unshift(a.asm.g);U--;a.monitorRunDependencies&&a.monitorRunDependencies(U);0==U&&(null!==la&&(clearInterval(la),la=null),aa&&(e=aa,aa=null,e()))}function b(e){f(e.instance)}function c(e){return h().then(function(g){return WebAssembly.instantiate(g,d)}).then(function(g){return g}).then(e,function(g){W("failed to asynchronously prepare wasm: "+
g);k(g)})}var d={a:qc};U++;a.monitorRunDependencies&&a.monitorRunDependencies(U);if(a.instantiateWasm)try{return a.instantiateWasm(d,f)}catch(e){W("Module.instantiateWasm callback failed with error: "+e),ba(e)}(function(){return X||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||Ia||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,
function(g){W("wasm streaming compile failed: "+g);W("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.g).apply(null,arguments)};var Na=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Na=a._emscripten_bind_VoidPtr___destroy___0=a.asm.i).apply(null,arguments)},ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(ua=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
a.asm.j).apply(null,arguments)},Oa=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(Oa=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.k).apply(null,arguments)},va=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(va=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.l).apply(null,arguments)},Pa=a._emscripten_bind_PointAttribute_size_0=function(){return(Pa=a._emscripten_bind_PointAttribute_size_0=a.asm.m).apply(null,arguments)},Qa=a._emscripten_bind_PointAttribute_attribute_type_0=
function(){return(Qa=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.n).apply(null,arguments)},Ra=a._emscripten_bind_PointAttribute_data_type_0=function(){return(Ra=a._emscripten_bind_PointAttribute_data_type_0=a.asm.o).apply(null,arguments)},Sa=a._emscripten_bind_PointAttribute_num_components_0=function(){return(Sa=a._emscripten_bind_PointAttribute_num_components_0=a.asm.p).apply(null,arguments)},Ta=a._emscripten_bind_PointAttribute_normalized_0=function(){return(Ta=a._emscripten_bind_PointAttribute_normalized_0=
a.asm.q).apply(null,arguments)},Ua=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ua=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.r).apply(null,arguments)},Va=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(Va=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.s).apply(null,arguments)},Wa=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(Wa=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.t).apply(null,arguments)},Xa=a._emscripten_bind_PointAttribute___destroy___0=
function(){return(Xa=a._emscripten_bind_PointAttribute___destroy___0=a.asm.u).apply(null,arguments)},wa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(wa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.v).apply(null,arguments)},Ya=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ya=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.w).apply(null,arguments)},Za=a._emscripten_bind_PointCloud_num_points_0=function(){return(Za=a._emscripten_bind_PointCloud_num_points_0=
a.asm.x).apply(null,arguments)},$a=a._emscripten_bind_PointCloud___destroy___0=function(){return($a=a._emscripten_bind_PointCloud___destroy___0=a.asm.y).apply(null,arguments)},xa=a._emscripten_bind_Mesh_Mesh_0=function(){return(xa=a._emscripten_bind_Mesh_Mesh_0=a.asm.z).apply(null,arguments)},ab=a._emscripten_bind_Mesh_num_faces_0=function(){return(ab=a._emscripten_bind_Mesh_num_faces_0=a.asm.A).apply(null,arguments)},bb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(bb=a._emscripten_bind_Mesh_num_attributes_0=
a.asm.B).apply(null,arguments)},cb=a._emscripten_bind_Mesh_num_points_0=function(){return(cb=a._emscripten_bind_Mesh_num_points_0=a.asm.C).apply(null,arguments)},db=a._emscripten_bind_Mesh_set_num_points_1=function(){return(db=a._emscripten_bind_Mesh_set_num_points_1=a.asm.D).apply(null,arguments)},eb=a._emscripten_bind_Mesh___destroy___0=function(){return(eb=a._emscripten_bind_Mesh___destroy___0=a.asm.E).apply(null,arguments)},ya=a._emscripten_bind_Metadata_Metadata_0=function(){return(ya=a._emscripten_bind_Metadata_Metadata_0=
a.asm.F).apply(null,arguments)},fb=a._emscripten_bind_Metadata___destroy___0=function(){return(fb=a._emscripten_bind_Metadata___destroy___0=a.asm.G).apply(null,arguments)},za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(za=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.H).apply(null,arguments)},gb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(gb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.I).apply(null,arguments)},hb=a._emscripten_bind_DracoInt8Array_size_0=
function(){return(hb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.J).apply(null,arguments)},ib=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(ib=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.K).apply(null,arguments)},Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Aa=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=a.asm.L).apply(null,arguments)},jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(jb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=
a.asm.M).apply(null,arguments)},kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(kb=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=a.asm.N).apply(null,arguments)},lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(lb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=a.asm.O).apply(null,arguments)},mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(mb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=a.asm.P).apply(null,arguments)},
nb=a._emscripten_bind_MetadataBuilder___destroy___0=function(){return(nb=a._emscripten_bind_MetadataBuilder___destroy___0=a.asm.Q).apply(null,arguments)},Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(Ba=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=a.asm.R).apply(null,arguments)},ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(ob=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=a.asm.S).apply(null,arguments)},pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=
function(){return(pb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=a.asm.T).apply(null,arguments)},qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(qb=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=a.asm.U).apply(null,arguments)},rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(rb=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=a.asm.V).apply(null,arguments)},sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=
function(){return(sb=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=a.asm.W).apply(null,arguments)},tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(tb=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=a.asm.X).apply(null,arguments)},ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(ub=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=a.asm.Y).apply(null,arguments)},vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=
function(){return(vb=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=a.asm.Z).apply(null,arguments)},wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(wb=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=a.asm._).apply(null,arguments)},xb=a._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(xb=a._emscripten_bind_PointCloudBuilder___destroy___0=a.asm.$).apply(null,arguments)},Ca=a._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Ca=
a._emscripten_bind_MeshBuilder_MeshBuilder_0=a.asm.aa).apply(null,arguments)},yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(yb=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=a.asm.ba).apply(null,arguments)},zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(zb=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=a.asm.ca).apply(null,arguments)},Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Ab=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=
a.asm.da).apply(null,arguments)},Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Bb=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=a.asm.ea).apply(null,arguments)},Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Cb=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=a.asm.fa).apply(null,arguments)},Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(Db=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=a.asm.ga).apply(null,arguments)},
Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Eb=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=a.asm.ha).apply(null,arguments)},Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(Fb=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=a.asm.ia).apply(null,arguments)},Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(Gb=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=a.asm.ja).apply(null,arguments)},Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=
function(){return(Hb=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=a.asm.ka).apply(null,arguments)},Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Ib=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=a.asm.la).apply(null,arguments)},Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(Jb=a._emscripten_bind_MeshBuilder_AddMetadata_2=a.asm.ma).apply(null,arguments)},Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(Kb=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=
a.asm.na).apply(null,arguments)},Lb=a._emscripten_bind_MeshBuilder___destroy___0=function(){return(Lb=a._emscripten_bind_MeshBuilder___destroy___0=a.asm.oa).apply(null,arguments)},Da=a._emscripten_bind_Encoder_Encoder_0=function(){return(Da=a._emscripten_bind_Encoder_Encoder_0=a.asm.pa).apply(null,arguments)},Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(Mb=a._emscripten_bind_Encoder_SetEncodingMethod_1=a.asm.qa).apply(null,arguments)},Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=
function(){return(Nb=a._emscripten_bind_Encoder_SetAttributeQuantization_2=a.asm.ra).apply(null,arguments)},Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(Ob=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=a.asm.sa).apply(null,arguments)},Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Pb=a._emscripten_bind_Encoder_SetSpeedOptions_2=a.asm.ta).apply(null,arguments)},Qb=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Qb=
a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=a.asm.ua).apply(null,arguments)},Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Rb=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=a.asm.va).apply(null,arguments)},Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Sb=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=a.asm.wa).apply(null,arguments)},Tb=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Tb=
a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=a.asm.xa).apply(null,arguments)},Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Ub=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=a.asm.ya).apply(null,arguments)},Vb=a._emscripten_bind_Encoder___destroy___0=function(){return(Vb=a._emscripten_bind_Encoder___destroy___0=a.asm.za).apply(null,arguments)},Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(Ea=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=
a.asm.Aa).apply(null,arguments)},Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(Wb=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=a.asm.Ba).apply(null,arguments)},Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return(Xb=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=a.asm.Ca).apply(null,arguments)},Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(Yb=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=
a.asm.Da).apply(null,arguments)},Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(Zb=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=a.asm.Ea).apply(null,arguments)},$b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return($b=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=a.asm.Fa).apply(null,arguments)},ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(ac=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=
a.asm.Ga).apply(null,arguments)},bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(bc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=a.asm.Ha).apply(null,arguments)},cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(cc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=a.asm.Ia).apply(null,arguments)},dc=a._emscripten_bind_ExpertEncoder___destroy___0=function(){return(dc=a._emscripten_bind_ExpertEncoder___destroy___0=
a.asm.Ja).apply(null,arguments)},ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(ec=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.Ka).apply(null,arguments)},fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(fc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.La).apply(null,arguments)},gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(gc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
a.asm.Ma).apply(null,arguments)},hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(hc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.Na).apply(null,arguments)},ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(ic=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.Oa).apply(null,arguments)},jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(jc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
a.asm.Pa).apply(null,arguments)},kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(kc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.Qa).apply(null,arguments)},lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(lc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.Ra).apply(null,arguments)},mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(mc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
a.asm.Sa).apply(null,arguments)},nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(nc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=a.asm.Ta).apply(null,arguments)},oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(oc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=a.asm.Ua).apply(null,arguments)},Ma=a._malloc=function(){return(Ma=a._malloc=a.asm.Va).apply(null,arguments)};a._free=
function(){return(a._free=a.asm.Wa).apply(null,arguments)};var pa=a.___cxa_is_pointer_type=function(){return(pa=a.___cxa_is_pointer_type=a.asm.Xa).apply(null,arguments)};a.___start_em_js=19116;a.___stop_em_js=19214;var ca;aa=function b(){ca||B();ca||(aa=b)};if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();B();v.prototype=Object.create(v.prototype);v.prototype.constructor=v;v.prototype.__class__=v;v.__cache__={};a.WrapperObject=v;a.getCache=
D;a.wrapPointer=I;a.castObject=function(b,c){return I(b.ptr,c)};a.NULL=I(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";b.__destroy__();delete D(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var n={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(n.needed){for(var b=0;b<n.temps.length;b++)a._free(n.temps[b]);n.temps.length=
0;a._free(n.buffer);n.buffer=0;n.size+=n.needed;n.needed=0}n.buffer||(n.size+=128,n.buffer=a._malloc(n.size),n.buffer||k(void 0));n.pos=0},alloc:function(b,c){n.buffer||k(void 0);b=b.length*c.BYTES_PER_ELEMENT;b=b+7&-8;n.pos+b>=n.size?(0<b||k(void 0),n.needed+=b,c=a._malloc(b),n.temps.push(c)):(c=n.buffer+n.pos,n.pos+=b);return c},copy:function(b,c,d){d>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var e=0;e<b.length;e++)c[d+e]=b[e]}};P.prototype=Object.create(v.prototype);
P.prototype.constructor=P;P.prototype.__class__=P;P.__cache__={};a.VoidPtr=P;P.prototype.__destroy__=P.prototype.__destroy__=function(){Na(this.ptr)};M.prototype=Object.create(v.prototype);M.prototype.constructor=M;M.prototype.__class__=M;M.__cache__={};a.GeometryAttribute=M;M.prototype.__destroy__=M.prototype.__destroy__=function(){Oa(this.ptr)};z.prototype=Object.create(v.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.PointAttribute=z;z.prototype.size=z.prototype.size=
function(){return Pa(this.ptr)};z.prototype.attribute_type=z.prototype.attribute_type=function(){return Qa(this.ptr)};z.prototype.data_type=z.prototype.data_type=function(){return Ra(this.ptr)};z.prototype.num_components=z.prototype.num_components=function(){return Sa(this.ptr)};z.prototype.normalized=z.prototype.normalized=function(){return!!Ta(this.ptr)};z.prototype.byte_stride=z.prototype.byte_stride=function(){return Ua(this.ptr)};z.prototype.byte_offset=z.prototype.byte_offset=function(){return Va(this.ptr)};
z.prototype.unique_id=z.prototype.unique_id=function(){return Wa(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){Xa(this.ptr)};G.prototype=Object.create(v.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.PointCloud=G;G.prototype.num_attributes=G.prototype.num_attributes=function(){return Ya(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Za(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){$a(this.ptr)};
E.prototype=Object.create(v.prototype);E.prototype.constructor=E;E.prototype.__class__=E;E.__cache__={};a.Mesh=E;E.prototype.num_faces=E.prototype.num_faces=function(){return ab(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return bb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return cb(this.ptr)};E.prototype.set_num_points=E.prototype.set_num_points=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);db(c,b)};E.prototype.__destroy__=
E.prototype.__destroy__=function(){eb(this.ptr)};N.prototype=Object.create(v.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.Metadata=N;N.prototype.__destroy__=N.prototype.__destroy__=function(){fb(this.ptr)};H.prototype=Object.create(v.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.DracoInt8Array=H;H.prototype.GetValue=H.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return gb(c,b)};H.prototype.size=H.prototype.size=
function(){return hb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){ib(this.ptr)};F.prototype=Object.create(v.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.MetadataBuilder=F;F.prototype.AddStringEntry=F.prototype.AddStringEntry=function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d=d&&"object"===typeof d?d.ptr:J(d);return!!jb(e,b,c,d)};F.prototype.AddIntEntry=F.prototype.AddIntEntry=
function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d&&"object"===typeof d&&(d=d.ptr);return!!kb(e,b,c,d)};F.prototype.AddIntEntryArray=F.prototype.AddIntEntryArray=function(b,c,d,e){var g=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);"object"==typeof d&&(d=V(d));e&&"object"===typeof e&&(e=e.ptr);return!!lb(g,b,c,d,e)};F.prototype.AddDoubleEntry=F.prototype.AddDoubleEntry=function(b,c,d){var e=
this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:J(c);d&&"object"===typeof d&&(d=d.ptr);return!!mb(e,b,c,d)};F.prototype.__destroy__=F.prototype.__destroy__=function(){nb(this.ptr)};x.prototype=Object.create(v.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.PointCloudBuilder=x;x.prototype.AddFloatAttribute=x.prototype.AddFloatAttribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&
(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return ob(t,b,c,d,e,g)};x.prototype.AddInt8Attribute=x.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return pb(t,b,c,d,e,g)};x.prototype.AddUInt8Attribute=x.prototype.AddUInt8Attribute=function(b,c,d,e,
g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return qb(t,b,c,d,e,g)};x.prototype.AddInt16Attribute=x.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return rb(t,
b,c,d,e,g)};x.prototype.AddUInt16Attribute=x.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return sb(t,b,c,d,e,g)};x.prototype.AddInt32Attribute=x.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&
(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return tb(t,b,c,d,e,g)};x.prototype.AddUInt32Attribute=x.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return ub(t,b,c,d,e,g)};x.prototype.AddMetadata=x.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);return!!vb(d,b,c)};x.prototype.SetMetadataForAttribute=x.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!wb(e,b,c,d)};x.prototype.__destroy__=x.prototype.__destroy__=function(){xb(this.ptr)};u.prototype=Object.create(v.prototype);u.prototype.constructor=u;u.prototype.__class__=u;u.__cache__={};a.MeshBuilder=u;u.prototype.AddFacesToMesh=u.prototype.AddFacesToMesh=
function(b,c,d){var e=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);"object"==typeof d&&(d=V(d));return!!yb(e,b,c,d)};u.prototype.AddFloatAttributeToMesh=u.prototype.AddFloatAttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return zb(t,b,c,d,e,g)};u.prototype.AddInt32AttributeToMesh=
u.prototype.AddInt32AttributeToMesh=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Ab(t,b,c,d,e,g)};u.prototype.AddMetadataToMesh=u.prototype.AddMetadataToMesh=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Bb(d,b,c)};u.prototype.AddFloatAttribute=u.prototype.AddFloatAttribute=
function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Z(g));return Cb(t,b,c,d,e,g)};u.prototype.AddInt8Attribute=u.prototype.AddInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));
return Db(t,b,c,d,e,g)};u.prototype.AddUInt8Attribute=u.prototype.AddUInt8Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=Q(g));return Eb(t,b,c,d,e,g)};u.prototype.AddInt16Attribute=u.prototype.AddInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===
typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Fb(t,b,c,d,e,g)};u.prototype.AddUInt16Attribute=u.prototype.AddUInt16Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=R(g));return Gb(t,b,c,d,e,g)};u.prototype.AddInt32Attribute=u.prototype.AddInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Hb(t,b,c,d,e,g)};u.prototype.AddUInt32Attribute=u.prototype.AddUInt32Attribute=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof g&&(g=V(g));return Ib(t,b,c,d,e,g)};u.prototype.AddMetadata=
u.prototype.AddMetadata=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!Jb(d,b,c)};u.prototype.SetMetadataForAttribute=u.prototype.SetMetadataForAttribute=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Kb(e,b,c,d)};u.prototype.__destroy__=u.prototype.__destroy__=function(){Lb(this.ptr)};y.prototype=Object.create(v.prototype);y.prototype.constructor=
y;y.prototype.__class__=y;y.__cache__={};a.Encoder=y;y.prototype.SetEncodingMethod=y.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Mb(c,b)};y.prototype.SetAttributeQuantization=y.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Nb(d,b,c)};y.prototype.SetAttributeExplicitQuantization=y.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);Ob(t,b,c,d,e,g)};y.prototype.SetSpeedOptions=y.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Pb(d,b,c)};y.prototype.SetTrackEncodedProperties=y.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Qb(c,b)};y.prototype.EncodeMeshToDracoBuffer=
y.prototype.EncodeMeshToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Rb(d,b,c)};y.prototype.EncodePointCloudToDracoBuffer=y.prototype.EncodePointCloudToDracoBuffer=function(b,c,d){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return Sb(e,b,c,d)};y.prototype.GetNumberOfEncodedPoints=y.prototype.GetNumberOfEncodedPoints=function(){return Tb(this.ptr)};y.prototype.GetNumberOfEncodedFaces=
y.prototype.GetNumberOfEncodedFaces=function(){return Ub(this.ptr)};y.prototype.__destroy__=y.prototype.__destroy__=function(){Vb(this.ptr)};A.prototype=Object.create(v.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.ExpertEncoder=A;A.prototype.SetEncodingMethod=A.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Wb(c,b)};A.prototype.SetAttributeQuantization=A.prototype.SetAttributeQuantization=function(b,c){var d=this.ptr;b&&"object"===
typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Xb(d,b,c)};A.prototype.SetAttributeExplicitQuantization=A.prototype.SetAttributeExplicitQuantization=function(b,c,d,e,g){var t=this.ptr;n.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof e&&(e=Z(e));g&&"object"===typeof g&&(g=g.ptr);Yb(t,b,c,d,e,g)};A.prototype.SetSpeedOptions=A.prototype.SetSpeedOptions=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);Zb(d,b,c)};A.prototype.SetTrackEncodedProperties=A.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);$b(c,b)};A.prototype.EncodeToDracoBuffer=A.prototype.EncodeToDracoBuffer=function(b,c){var d=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return ac(d,b,c)};A.prototype.GetNumberOfEncodedPoints=A.prototype.GetNumberOfEncodedPoints=function(){return bc(this.ptr)};A.prototype.GetNumberOfEncodedFaces=
A.prototype.GetNumberOfEncodedFaces=function(){return cc(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=function(){dc(this.ptr)};(function(){function b(){a.INVALID=ec();a.POSITION=fc();a.NORMAL=gc();a.COLOR=hc();a.TEX_COORD=ic();a.GENERIC=jc();a.INVALID_GEOMETRY_TYPE=kc();a.POINT_CLOUD=lc();a.TRIANGULAR_MESH=mc();a.MESH_SEQUENTIAL_ENCODING=nc();a.MESH_EDGEBREAKER_ENCODING=oc()}qa?b():ka.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return p.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoEncoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoEncoderModule}):"object"===typeof exports&&(exports.DracoEncoderModule=DracoEncoderModule);

View File

@ -1,6 +1,6 @@
{
"name": "draco3dgltf",
"version": "1.5.3",
"version": "1.5.4",
"description": "This package contains a specific version of Draco 3D geometric compression library that is used for glTF Draco mesh compression extension.",
"main": "draco3dgltf.js",
"scripts": {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,242 +1,113 @@
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(q){var m=0;return function(){return m<q.length?{done:!1,value:q[m++]}:{done:!0}}};$jscomp.arrayIterator=function(q){return{next:$jscomp.arrayIteratorImpl(q)}};$jscomp.makeIterator=function(q){var m="undefined"!=typeof Symbol&&Symbol.iterator&&q[Symbol.iterator];return m?m.call(q):$jscomp.arrayIterator(q)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;
$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(q){q=["object"==typeof globalThis&&globalThis,q,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var m=0;m<q.length;++m){var n=q[m];if(n&&n.Math==Math)return n}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(q,m,n){if(q==Array.prototype||q==Object.prototype)return q;q[m]=n.value;return q};$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";
var $jscomp$lookupPolyfilledValue=function(q,m){var n=$jscomp.propertyToPolyfillSymbol[m];if(null==n)return q[m];n=q[n];return void 0!==n?n:q[m]};$jscomp.polyfill=function(q,m,n,v){m&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(q,m,n,v):$jscomp.polyfillUnisolated(q,m,n,v))};
$jscomp.polyfillUnisolated=function(q,m,n,v){n=$jscomp.global;q=q.split(".");for(v=0;v<q.length-1;v++){var r=q[v];if(!(r in n))return;n=n[r]}q=q[q.length-1];v=n[q];m=m(v);m!=v&&null!=m&&$jscomp.defineProperty(n,q,{configurable:!0,writable:!0,value:m})};
$jscomp.polyfillIsolated=function(q,m,n,v){var r=q.split(".");q=1===r.length;v=r[0];v=!q&&v in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var E=0;E<r.length-1;E++){var p=r[E];if(!(p in v))return;v=v[p]}r=r[r.length-1];n=$jscomp.IS_SYMBOL_NATIVE&&"es6"===n?v[r]:null;m=m(n);null!=m&&(q?$jscomp.defineProperty($jscomp.polyfills,r,{configurable:!0,writable:!0,value:m}):m!==n&&(void 0===$jscomp.propertyToPolyfillSymbol[r]&&(n=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[r]=$jscomp.IS_SYMBOL_NATIVE?
$jscomp.global.Symbol(r):$jscomp.POLYFILL_PREFIX+n+"$"+r),$jscomp.defineProperty(v,$jscomp.propertyToPolyfillSymbol[r],{configurable:!0,writable:!0,value:m})))};
$jscomp.polyfill("Promise",function(q){function m(){this.batch_=null}function n(p){return p instanceof r?p:new r(function(d,t){d(p)})}if(q&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return q;m.prototype.asyncExecute=function(p){if(null==this.batch_){this.batch_=[];var d=this;this.asyncExecuteFunction(function(){d.executeBatch_()})}this.batch_.push(p)};
var v=$jscomp.global.setTimeout;m.prototype.asyncExecuteFunction=function(p){v(p,0)};m.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var p=this.batch_;this.batch_=[];for(var d=0;d<p.length;++d){var t=p[d];p[d]=null;try{t()}catch(C){this.asyncThrow_(C)}}}this.batch_=null};m.prototype.asyncThrow_=function(p){this.asyncExecuteFunction(function(){throw p;})};var r=function(p){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var d=this.createResolveAndReject_();
try{p(d.resolve,d.reject)}catch(t){d.reject(t)}};r.prototype.createResolveAndReject_=function(){function p(C){return function(L){t||(t=!0,C.call(d,L))}}var d=this,t=!1;return{resolve:p(this.resolveTo_),reject:p(this.reject_)}};r.prototype.resolveTo_=function(p){if(p===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(p instanceof r)this.settleSameAsPromise_(p);else{a:switch(typeof p){case "object":var d=null!=p;break a;case "function":d=!0;break a;default:d=!1}d?this.resolveToNonPromiseObj_(p):
this.fulfill_(p)}};r.prototype.resolveToNonPromiseObj_=function(p){var d=void 0;try{d=p.then}catch(t){this.reject_(t);return}"function"==typeof d?this.settleSameAsThenable_(d,p):this.fulfill_(p)};r.prototype.reject_=function(p){this.settle_(2,p)};r.prototype.fulfill_=function(p){this.settle_(1,p)};r.prototype.settle_=function(p,d){if(0!=this.state_)throw Error("Cannot settle("+p+", "+d+"): Promise already settled in state"+this.state_);this.state_=p;this.result_=d;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};r.prototype.scheduleUnhandledRejectionCheck_=function(){var p=this;v(function(){if(p.notifyUnhandledRejection_()){var d=$jscomp.global.console;"undefined"!==typeof d&&d.error(p.result_)}},1)};r.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var p=$jscomp.global.CustomEvent,d=$jscomp.global.Event,t=$jscomp.global.dispatchEvent;if("undefined"===typeof t)return!0;"function"===typeof p?p=new p("unhandledrejection",{cancelable:!0}):
"function"===typeof d?p=new d("unhandledrejection",{cancelable:!0}):(p=$jscomp.global.document.createEvent("CustomEvent"),p.initCustomEvent("unhandledrejection",!1,!0,p));p.promise=this;p.reason=this.result_;return t(p)};r.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var p=0;p<this.onSettledCallbacks_.length;++p)E.asyncExecute(this.onSettledCallbacks_[p]);this.onSettledCallbacks_=null}};var E=new m;r.prototype.settleSameAsPromise_=function(p){var d=this.createResolveAndReject_();
p.callWhenSettled_(d.resolve,d.reject)};r.prototype.settleSameAsThenable_=function(p,d){var t=this.createResolveAndReject_();try{p.call(d,t.resolve,t.reject)}catch(C){t.reject(C)}};r.prototype.then=function(p,d){function t(R,f){return"function"==typeof R?function(l){try{C(R(l))}catch(ea){L(ea)}}:f}var C,L,Z=new r(function(R,f){C=R;L=f});this.callWhenSettled_(t(p,C),t(d,L));return Z};r.prototype.catch=function(p){return this.then(void 0,p)};r.prototype.callWhenSettled_=function(p,d){function t(){switch(C.state_){case 1:p(C.result_);
break;case 2:d(C.result_);break;default:throw Error("Unexpected state: "+C.state_);}}var C=this;null==this.onSettledCallbacks_?E.asyncExecute(t):this.onSettledCallbacks_.push(t);this.isRejectionHandled_=!0};r.resolve=n;r.reject=function(p){return new r(function(d,t){t(p)})};r.race=function(p){return new r(function(d,t){for(var C=$jscomp.makeIterator(p),L=C.next();!L.done;L=C.next())n(L.value).callWhenSettled_(d,t)})};r.all=function(p){var d=$jscomp.makeIterator(p),t=d.next();return t.done?n([]):new r(function(C,
L){function Z(l){return function(ea){R[l]=ea;f--;0==f&&C(R)}}var R=[],f=0;do R.push(void 0),f++,n(t.value).callWhenSettled_(Z(R.length-1),L),t=d.next();while(!t.done)})};return r},"es6","es3");$jscomp.owns=function(q,m){return Object.prototype.hasOwnProperty.call(q,m)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(q,m){for(var n=1;n<arguments.length;n++){var v=arguments[n];if(v)for(var r in v)$jscomp.owns(v,r)&&(q[r]=v[r])}return q};
$jscomp.polyfill("Object.assign",function(q){return q||$jscomp.assign},"es6","es3");$jscomp.polyfill("Math.imul",function(q){return q?q:function(m,n){m=Number(m);n=Number(n);var v=m&65535,r=n&65535;return v*r+((m>>>16&65535)*r+v*(n>>>16&65535)<<16>>>0)|0}},"es6","es3");$jscomp.polyfill("Math.fround",function(q){if(q)return q;if($jscomp.SIMPLE_FROUND_POLYFILL||"function"!==typeof Float32Array)return function(n){return n};var m=new Float32Array(1);return function(n){m[0]=n;return m[0]}},"es6","es3");
$jscomp.polyfill("Math.clz32",function(q){return q?q:function(m){m=Number(m)>>>0;if(0===m)return 32;var n=0;0===(m&4294901760)&&(m<<=16,n+=16);0===(m&4278190080)&&(m<<=8,n+=8);0===(m&4026531840)&&(m<<=4,n+=4);0===(m&3221225472)&&(m<<=2,n+=2);0===(m&2147483648)&&n++;return n}},"es6","es3");$jscomp.polyfill("Math.trunc",function(q){return q?q:function(m){m=Number(m);if(isNaN(m)||Infinity===m||-Infinity===m||0===m)return m;var n=Math.floor(Math.abs(m));return 0>m?-n:n}},"es6","es3");
$jscomp.checkStringArgs=function(q,m,n){if(null==q)throw new TypeError("The 'this' value for String.prototype."+n+" must not be null or undefined");if(m instanceof RegExp)throw new TypeError("First argument to String.prototype."+n+" must not be a regular expression");return q+""};
$jscomp.polyfill("String.prototype.startsWith",function(q){return q?q:function(m,n){var v=$jscomp.checkStringArgs(this,m,"startsWith");m+="";var r=v.length,E=m.length;n=Math.max(0,Math.min(n|0,v.length));for(var p=0;p<E&&n<r;)if(v[n++]!=m[p++])return!1;return p>=E}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(q){function m(n){n=Number(n);return Infinity===n||-Infinity===n?n:n|0}return q?q:function(n,v,r){var E=this.length;n=m(n);v=m(v);r=void 0===r?E:m(r);n=0>n?Math.max(E+n,0):Math.min(n,E);v=0>v?Math.max(E+v,0):Math.min(v,E);r=0>r?Math.max(E+r,0):Math.min(r,E);if(n<v)for(;v<r;)v in this?this[n++]=this[v++]:(delete this[n++],v++);else for(r=Math.min(r,E+v-n),n+=r-v;r>v;)--r in this?this[--n]=this[r]:delete this[--n];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(q){return q?q:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(n){var k=0;return function(){return k<n.length?{done:!1,value:n[k++]}:{done:!0}}};$jscomp.arrayIterator=function(n){return{next:$jscomp.arrayIteratorImpl(n)}};$jscomp.makeIterator=function(n){var k="undefined"!=typeof Symbol&&Symbol.iterator&&n[Symbol.iterator];return k?k.call(n):$jscomp.arrayIterator(n)};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;
$jscomp.ISOLATE_POLYFILLS=!1;$jscomp.FORCE_POLYFILL_PROMISE=!1;$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;$jscomp.getGlobal=function(n){n=["object"==typeof globalThis&&globalThis,n,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var k=0;k<n.length;++k){var l=n[k];if(l&&l.Math==Math)return l}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(n,k,l){if(n==Array.prototype||n==Object.prototype)return n;n[k]=l.value;return n};$jscomp.IS_SYMBOL_NATIVE="function"===typeof Symbol&&"symbol"===typeof Symbol("x");$jscomp.TRUST_ES6_POLYFILLS=!$jscomp.ISOLATE_POLYFILLS||$jscomp.IS_SYMBOL_NATIVE;$jscomp.polyfills={};$jscomp.propertyToPolyfillSymbol={};$jscomp.POLYFILL_PREFIX="$jscp$";
var $jscomp$lookupPolyfilledValue=function(n,k){var l=$jscomp.propertyToPolyfillSymbol[k];if(null==l)return n[k];l=n[l];return void 0!==l?l:n[k]};$jscomp.polyfill=function(n,k,l,q){k&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(n,k,l,q):$jscomp.polyfillUnisolated(n,k,l,q))};
$jscomp.polyfillUnisolated=function(n,k,l,q){l=$jscomp.global;n=n.split(".");for(q=0;q<n.length-1;q++){var p=n[q];if(!(p in l))return;l=l[p]}n=n[n.length-1];q=l[n];k=k(q);k!=q&&null!=k&&$jscomp.defineProperty(l,n,{configurable:!0,writable:!0,value:k})};
$jscomp.polyfillIsolated=function(n,k,l,q){var p=n.split(".");n=1===p.length;q=p[0];q=!n&&q in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var t=0;t<p.length-1;t++){var m=p[t];if(!(m in q))return;q=q[m]}p=p[p.length-1];l=$jscomp.IS_SYMBOL_NATIVE&&"es6"===l?q[p]:null;k=k(l);null!=k&&(n?$jscomp.defineProperty($jscomp.polyfills,p,{configurable:!0,writable:!0,value:k}):k!==l&&(void 0===$jscomp.propertyToPolyfillSymbol[p]&&(l=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[p]=$jscomp.IS_SYMBOL_NATIVE?
$jscomp.global.Symbol(p):$jscomp.POLYFILL_PREFIX+l+"$"+p),$jscomp.defineProperty(q,$jscomp.propertyToPolyfillSymbol[p],{configurable:!0,writable:!0,value:k})))};
$jscomp.polyfill("Promise",function(n){function k(){this.batch_=null}function l(m){return m instanceof p?m:new p(function(v,x){v(m)})}if(n&&(!($jscomp.FORCE_POLYFILL_PROMISE||$jscomp.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&"undefined"===typeof $jscomp.global.PromiseRejectionEvent)||!$jscomp.global.Promise||-1===$jscomp.global.Promise.toString().indexOf("[native code]")))return n;k.prototype.asyncExecute=function(m){if(null==this.batch_){this.batch_=[];var v=this;this.asyncExecuteFunction(function(){v.executeBatch_()})}this.batch_.push(m)};
var q=$jscomp.global.setTimeout;k.prototype.asyncExecuteFunction=function(m){q(m,0)};k.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var m=this.batch_;this.batch_=[];for(var v=0;v<m.length;++v){var x=m[v];m[v]=null;try{x()}catch(E){this.asyncThrow_(E)}}}this.batch_=null};k.prototype.asyncThrow_=function(m){this.asyncExecuteFunction(function(){throw m;})};var p=function(m){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];this.isRejectionHandled_=!1;var v=this.createResolveAndReject_();
try{m(v.resolve,v.reject)}catch(x){v.reject(x)}};p.prototype.createResolveAndReject_=function(){function m(E){return function(A){x||(x=!0,E.call(v,A))}}var v=this,x=!1;return{resolve:m(this.resolveTo_),reject:m(this.reject_)}};p.prototype.resolveTo_=function(m){if(m===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(m instanceof p)this.settleSameAsPromise_(m);else{a:switch(typeof m){case "object":var v=null!=m;break a;case "function":v=!0;break a;default:v=!1}v?this.resolveToNonPromiseObj_(m):
this.fulfill_(m)}};p.prototype.resolveToNonPromiseObj_=function(m){var v=void 0;try{v=m.then}catch(x){this.reject_(x);return}"function"==typeof v?this.settleSameAsThenable_(v,m):this.fulfill_(m)};p.prototype.reject_=function(m){this.settle_(2,m)};p.prototype.fulfill_=function(m){this.settle_(1,m)};p.prototype.settle_=function(m,v){if(0!=this.state_)throw Error("Cannot settle("+m+", "+v+"): Promise already settled in state"+this.state_);this.state_=m;this.result_=v;2===this.state_&&this.scheduleUnhandledRejectionCheck_();
this.executeOnSettledCallbacks_()};p.prototype.scheduleUnhandledRejectionCheck_=function(){var m=this;q(function(){if(m.notifyUnhandledRejection_()){var v=$jscomp.global.console;"undefined"!==typeof v&&v.error(m.result_)}},1)};p.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var m=$jscomp.global.CustomEvent,v=$jscomp.global.Event,x=$jscomp.global.dispatchEvent;if("undefined"===typeof x)return!0;"function"===typeof m?m=new m("unhandledrejection",{cancelable:!0}):
"function"===typeof v?m=new v("unhandledrejection",{cancelable:!0}):(m=$jscomp.global.document.createEvent("CustomEvent"),m.initCustomEvent("unhandledrejection",!1,!0,m));m.promise=this;m.reason=this.result_;return x(m)};p.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var m=0;m<this.onSettledCallbacks_.length;++m)t.asyncExecute(this.onSettledCallbacks_[m]);this.onSettledCallbacks_=null}};var t=new k;p.prototype.settleSameAsPromise_=function(m){var v=this.createResolveAndReject_();
m.callWhenSettled_(v.resolve,v.reject)};p.prototype.settleSameAsThenable_=function(m,v){var x=this.createResolveAndReject_();try{m.call(v,x.resolve,x.reject)}catch(E){x.reject(E)}};p.prototype.then=function(m,v){function x(P,V){return"function"==typeof P?function(aa){try{E(P(aa))}catch(R){A(R)}}:V}var E,A,h=new p(function(P,V){E=P;A=V});this.callWhenSettled_(x(m,E),x(v,A));return h};p.prototype.catch=function(m){return this.then(void 0,m)};p.prototype.callWhenSettled_=function(m,v){function x(){switch(E.state_){case 1:m(E.result_);
break;case 2:v(E.result_);break;default:throw Error("Unexpected state: "+E.state_);}}var E=this;null==this.onSettledCallbacks_?t.asyncExecute(x):this.onSettledCallbacks_.push(x);this.isRejectionHandled_=!0};p.resolve=l;p.reject=function(m){return new p(function(v,x){x(m)})};p.race=function(m){return new p(function(v,x){for(var E=$jscomp.makeIterator(m),A=E.next();!A.done;A=E.next())l(A.value).callWhenSettled_(v,x)})};p.all=function(m){var v=$jscomp.makeIterator(m),x=v.next();return x.done?l([]):new p(function(E,
A){function h(aa){return function(R){P[aa]=R;V--;0==V&&E(P)}}var P=[],V=0;do P.push(void 0),V++,l(x.value).callWhenSettled_(h(P.length-1),A),x=v.next();while(!x.done)})};return p},"es6","es3");$jscomp.owns=function(n,k){return Object.prototype.hasOwnProperty.call(n,k)};$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(n,k){for(var l=1;l<arguments.length;l++){var q=arguments[l];if(q)for(var p in q)$jscomp.owns(q,p)&&(n[p]=q[p])}return n};
$jscomp.polyfill("Object.assign",function(n){return n||$jscomp.assign},"es6","es3");$jscomp.checkStringArgs=function(n,k,l){if(null==n)throw new TypeError("The 'this' value for String.prototype."+l+" must not be null or undefined");if(k instanceof RegExp)throw new TypeError("First argument to String.prototype."+l+" must not be a regular expression");return n+""};
$jscomp.polyfill("String.prototype.startsWith",function(n){return n?n:function(k,l){var q=$jscomp.checkStringArgs(this,k,"startsWith");k+="";var p=q.length,t=k.length;l=Math.max(0,Math.min(l|0,q.length));for(var m=0;m<t&&l<p;)if(q[l++]!=k[m++])return!1;return m>=t}},"es6","es3");$jscomp.polyfill("Math.imul",function(n){return n?n:function(k,l){k=Number(k);l=Number(l);var q=k&65535,p=l&65535;return q*p+((k>>>16&65535)*p+q*(l>>>16&65535)<<16>>>0)|0}},"es6","es3");
$jscomp.polyfill("Math.fround",function(n){if(n)return n;if($jscomp.SIMPLE_FROUND_POLYFILL||"function"!==typeof Float32Array)return function(l){return l};var k=new Float32Array(1);return function(l){k[0]=l;return k[0]}},"es6","es3");
$jscomp.polyfill("Math.clz32",function(n){return n?n:function(k){k=Number(k)>>>0;if(0===k)return 32;var l=0;0===(k&4294901760)&&(k<<=16,l+=16);0===(k&4278190080)&&(k<<=8,l+=8);0===(k&4026531840)&&(k<<=4,l+=4);0===(k&3221225472)&&(k<<=2,l+=2);0===(k&2147483648)&&l++;return l}},"es6","es3");$jscomp.polyfill("Math.trunc",function(n){return n?n:function(k){k=Number(k);if(isNaN(k)||Infinity===k||-Infinity===k||0===k)return k;var l=Math.floor(Math.abs(k));return 0>k?-l:l}},"es6","es3");
$jscomp.polyfill("Array.prototype.copyWithin",function(n){function k(l){l=Number(l);return Infinity===l||-Infinity===l?l:l|0}return n?n:function(l,q,p){var t=this.length;l=k(l);q=k(q);p=void 0===p?t:k(p);l=0>l?Math.max(t+l,0):Math.min(l,t);q=0>q?Math.max(t+q,0):Math.min(q,t);p=0>p?Math.max(t+p,0):Math.min(p,t);if(l<q)for(;q<p;)q in this?this[l++]=this[q++]:(delete this[l++],q++);else for(p=Math.min(p,t+q-l),l+=p-q;p>q;)--p in this?this[--l]=this[p]:delete this[--l];return this}},"es6","es3");
$jscomp.typedArrayCopyWithin=function(n){return n?n:Array.prototype.copyWithin};$jscomp.polyfill("Int8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint8ClampedArray.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
$jscomp.polyfill("Uint16Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Int32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Uint32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float32Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");$jscomp.polyfill("Float64Array.prototype.copyWithin",$jscomp.typedArrayCopyWithin,"es6","es5");
var DracoEncoderModule=function(){var q="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(q=q||__filename);return function(m){function n(g){return a.locateFile?a.locateFile(g,S):S+g}function v(g){v.shown||(v.shown={});v.shown[g]||(v.shown[g]=1,I(g))}function r(g,b){Object.getOwnPropertyDescriptor(a,g)||Object.defineProperty(a,g,{configurable:!0,get:function(){f("Module."+g+" has been replaced with plain "+b+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}
function E(g,b){g="'"+g+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";b&&(g+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");return g}function p(g,b){Object.getOwnPropertyDescriptor(a,g)||Object.defineProperty(a,g,{configurable:!0,get:function(){f(E(g,b))}})}function d(g,b){Object.getOwnPropertyDescriptor(a,g)||(a[g]=function(){return f(E(g,b))})}function t(g,b){g||f("Assertion failed"+(b?": "+b:""))}function C(g){Ba=g;a.HEAP8=W=
new Int8Array(g);a.HEAP16=Ca=new Int16Array(g);a.HEAP32=T=new Int32Array(g);a.HEAPU8=pa=new Uint8Array(g);a.HEAPU16=new Uint16Array(g);a.HEAPU32=J=new Uint32Array(g);a.HEAPF32=Da=new Float32Array(g);a.HEAPF64=new Float64Array(g)}function L(){var g=Ea();t(0==(g&3));T[g>>2]=34821223;T[g+4>>2]=2310721022;J[0]=1668509029}function Z(){if(!qa){var g=Ea(),b=J[g>>2],c=J[g+4>>2];34821223==b&&2310721022==c||f("Stack overflow! Stack cookie has been overwritten at 0x"+g.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+
c.toString(16)+" 0x"+b.toString(16));1668509029!==J[0]&&f("Runtime error: The application has corrupted its heap memory area (address zero)!")}}function R(g){aa++;a.monitorRunDependencies&&a.monitorRunDependencies(aa);g?(t(!ia[g]),ia[g]=1,null===ba&&"undefined"!=typeof setInterval&&(ba=setInterval(function(){if(qa)clearInterval(ba),ba=null;else{var b=!1,c;for(c in ia)b||(b=!0,I("still waiting on run dependencies:")),I("dependency: "+c);b&&I("(end of list)")}},1E4))):I("warning: run dependency added without ID")}
function f(g){if(a.onAbort)a.onAbort(g);g="Aborted("+g+")";I(g);qa=!0;g=new WebAssembly.RuntimeError(g);Fa(g);throw g;}function l(g,b){return function(){var c=b;b||(c=a.asm);t(ra,"native function `"+g+"` called before runtime initialization");c[g]||t(c[g],"exported native function `"+g+"` not found");return c[g].apply(null,arguments)}}function ea(g){try{if(g==K&&ja)return new Uint8Array(ja);if(ka)return ka(g);throw"both async and sync fetching of the wasm failed";}catch(b){f(b)}}function eb(){if(!ja&&
(Ga||fa)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(g){if(!g.ok)throw"failed to load wasm binary file at '"+K+"'";return g.arrayBuffer()}).catch(function(){return ea(K)});if(sa)return new Promise(function(g,b){sa(K,function(c){g(new Uint8Array(c))},b)})}return Promise.resolve().then(function(){return ea(K)})}function Ha(g){for(;0<g.length;){var b=g.shift();if("function"==typeof b)b(a);else{var c=b.func;"number"==typeof c?void 0===
b.arg?Ra(c)():Ra(c)(b.arg):c(void 0===b.arg?null:b.arg)}}}function Ra(g){var b=ta[g];b||(g>=ta.length&&(ta.length=g+1),ta[g]=b=ua.get(g));t(ua.get(g)==b,"JavaScript-side Wasm function table mirror is out of date!");return b}function fb(g){this.excPtr=g;this.ptr=g-24;this.set_type=function(b){J[this.ptr+4>>2]=b};this.get_type=function(){return J[this.ptr+4>>2]};this.set_destructor=function(b){J[this.ptr+8>>2]=b};this.get_destructor=function(){return J[this.ptr+8>>2]};this.set_refcount=function(b){T[this.ptr>>
2]=b};this.set_caught=function(b){W[this.ptr+12>>0]=b?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(b){W[this.ptr+13>>0]=b?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(b,c){this.set_adjusted_ptr(0);this.set_type(b);this.set_destructor(c);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=function(){T[this.ptr>>2]+=1};this.release_ref=function(){var b=T[this.ptr>>2];T[this.ptr>>2]=b-1;t(0<b);return 1===
b};this.set_adjusted_ptr=function(b){J[this.ptr+16>>2]=b};this.get_adjusted_ptr=function(){return J[this.ptr+16>>2]};this.get_exception_ptr=function(){if(gb(this.get_type()))return J[this.excPtr>>2];var b=this.get_adjusted_ptr();return 0!==b?b:this.excPtr}}function Ia(g){function b(){if(!va&&(va=!0,a.calledRun=!0,!qa)){t(!ra);ra=!0;Z();Ha(Ja);Sa(a);if(a.onRuntimeInitialized)a.onRuntimeInitialized();t(!a._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');
Z();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ta.unshift(a.postRun.shift());Ha(Ta)}}if(!(0<aa)){Ua();L();if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)Va.unshift(a.preRun.shift());Ha(Va);0<aa||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b(),Z())}}function D(){}function M(g){return(g||D).__cache__}function Ka(g,b){var c=M(b),e=c[g];if(e)return e;
e=Object.create((b||D).prototype);e.ptr=g;return c[g]=e}function la(g){if("string"===typeof g){for(var b=0,c=0;c<g.length;++c){var e=g.charCodeAt(c);55296<=e&&57343>=e&&(e=65536+((e&1023)<<10)|g.charCodeAt(++c)&1023);127>=e?++b:b=2047>=e?b+2:65535>=e?b+3:b+4}b=Array(b+1);c=0;e=b.length;if(0<e){e=c+e-1;for(var h=0;h<g.length;++h){var k=g.charCodeAt(h);if(55296<=k&&57343>=k){var w=g.charCodeAt(++h);k=65536+((k&1023)<<10)|w&1023}if(127>=k){if(c>=e)break;b[c++]=k}else{if(2047>=k){if(c+1>=e)break;b[c++]=
192|k>>6}else{if(65535>=k){if(c+2>=e)break;b[c++]=224|k>>12}else{if(c+3>=e)break;1114111<k&&v("Invalid Unicode code point 0x"+k.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");b[c++]=240|k>>18;b[c++]=128|k>>12&63}b[c++]=128|k>>6&63}b[c++]=128|k&63}}b[c]=0}g=u.alloc(b,W);u.copy(b,W,g);return g}return g}function wa(g){if("object"===typeof g){var b=u.alloc(g,W);u.copy(g,W,b);return b}return g}function xa(g){if("object"===
typeof g){var b=u.alloc(g,Ca);u.copy(g,Ca,b);return b}return g}function ca(g){if("object"===typeof g){var b=u.alloc(g,T);u.copy(g,T,b);return b}return g}function ma(g){if("object"===typeof g){var b=u.alloc(g,Da);u.copy(g,Da,b);return b}return g}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function U(){this.ptr=hb();M(U)[this.ptr]=this}function A(){this.ptr=ib();M(A)[this.ptr]=this}function N(){this.ptr=jb();M(N)[this.ptr]=this}function F(){this.ptr=kb();M(F)[this.ptr]=this}
function V(){this.ptr=lb();M(V)[this.ptr]=this}function O(){this.ptr=mb();M(O)[this.ptr]=this}function G(){this.ptr=nb();M(G)[this.ptr]=this}function y(){this.ptr=ob();M(y)[this.ptr]=this}function x(){this.ptr=pb();M(x)[this.ptr]=this}function z(){this.ptr=qb();M(z)[this.ptr]=this}function B(g){g&&"object"===typeof g&&(g=g.ptr);this.ptr=rb(g);M(B)[this.ptr]=this}m=m||{};var a="undefined"!=typeof m?m:{},Sa,Fa;a.ready=new Promise(function(g,b){Sa=g;Fa=b});Object.getOwnPropertyDescriptor(a.ready,"_free")||
(Object.defineProperty(a.ready,"_free",{configurable:!0,get:function(){f("You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_free",{configurable:!0,set:function(){f("You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,
"_malloc")||(Object.defineProperty(a.ready,"_malloc",{configurable:!0,get:function(){f("You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_malloc",{configurable:!0,set:function(){f("You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_VoidPtr___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_VoidPtr___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_VoidPtr___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_VoidPtr___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0")||(Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute_GeometryAttribute_0",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_GeometryAttribute_GeometryAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_GeometryAttribute___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_GeometryAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_PointAttribute_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_PointAttribute_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_size_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_size_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_attribute_type_0",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_attribute_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_data_type_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_data_type_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_data_type_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_data_type_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_num_components_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_num_components_0",{configurable:!0,
get:function(){f("You are getting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_num_components_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_num_components_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_normalized_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_normalized_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_normalized_0",{configurable:!0,
set:function(){f("You are setting _emscripten_bind_PointAttribute_normalized_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_stride_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_byte_stride_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:!0,
get:function(){f("You are getting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_byte_offset_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_byte_offset_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute_unique_id_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_unique_id_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute_unique_id_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointAttribute_unique_id_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointAttribute___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointAttribute___destroy___0",{configurable:!0,
set:function(){f("You are setting _emscripten_bind_PointAttribute___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_PointCloud_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_PointCloud_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_PointCloud_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud_PointCloud_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_num_attributes_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_attributes_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_attributes_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud_num_points_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_points_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloud_num_points_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloud___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloud___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloud___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloud___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_Mesh_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_Mesh_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Mesh_Mesh_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_Mesh_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_faces_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_faces_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_faces_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_num_faces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_attributes_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_attributes_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_attributes_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_num_attributes_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_num_points_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_points_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Mesh_num_points_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_num_points_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh_set_num_points_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh_set_num_points_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh_set_num_points_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Mesh_set_num_points_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh_set_num_points_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Mesh___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Mesh___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Mesh___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Mesh___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Metadata_Metadata_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Metadata_Metadata_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Metadata_Metadata_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Metadata_Metadata_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Metadata___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Metadata___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Metadata___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Metadata___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:!0,
get:function(){f("You are getting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_DracoInt8Array_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_DracoInt8Array_DracoInt8Array_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_GetValue_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_DracoInt8Array_GetValue_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array_size_0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_size_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array_size_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_DracoInt8Array_size_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_DracoInt8Array___destroy___0",{configurable:!0,
set:function(){f("You are setting _emscripten_bind_DracoInt8Array___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_MetadataBuilder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_MetadataBuilder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_MetadataBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_MetadataBuilder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_MetadataBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddStringEntry_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddStringEntry_3",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddStringEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddStringEntry_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddStringEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntry_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntry_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddIntEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntry_3",{configurable:!0,
set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddIntEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddIntEntryArray_4",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder_AddDoubleEntry_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MetadataBuilder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MetadataBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MetadataBuilder___destroy___0",{configurable:!0,
set:function(){f("You are setting _emscripten_bind_MetadataBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_PointCloudBuilder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddFloatAttribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt8Attribute_5",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt16Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddInt32Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_AddMetadata_2")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddMetadata_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_AddMetadata_2",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_PointCloudBuilder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder___destroy___0",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_PointCloudBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_PointCloudBuilder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_PointCloudBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_MeshBuilder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_MeshBuilder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_MeshBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_MeshBuilder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_MeshBuilder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddFacesToMesh_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFacesToMesh_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddFacesToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFacesToMesh_3",{configurable:!0,
set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddFacesToMesh_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadataToMesh_2",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddFloatAttribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddFloatAttribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt8Attribute_5",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt8Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt8Attribute_5",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt16Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt16Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt16Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddInt32Attribute_5",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddUInt32Attribute_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_AddMetadata_2")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadata_2",{configurable:!0,
get:function(){f("You are getting _emscripten_bind_MeshBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_AddMetadata_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_AddMetadata_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder_SetMetadataForAttribute_3",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_MeshBuilder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_MeshBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_MeshBuilder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_MeshBuilder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_Encoder_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_Encoder_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_Encoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Encoder_Encoder_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_Encoder_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetEncodingMethod_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetEncodingMethod_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetEncodingMethod_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetAttributeQuantization_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeQuantization_2",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeQuantization_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetAttributeExplicitQuantization_5",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetSpeedOptions_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetSpeedOptions_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetSpeedOptions_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_SetTrackEncodedProperties_1")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetTrackEncodedProperties_1",{configurable:!0,
get:function(){f("You are getting _emscripten_bind_Encoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_SetTrackEncodedProperties_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedPoints_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_Encoder_GetNumberOfEncodedFaces_0",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_Encoder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_Encoder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_Encoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_Encoder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_Encoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_ExpertEncoder_1")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_ExpertEncoder_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_ExpertEncoder_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_ExpertEncoder_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_ExpertEncoder_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetEncodingMethod_1",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeQuantization_2",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetSpeedOptions_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0",
{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0",
{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_bind_ExpertEncoder___destroy___0")||(Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder___destroy___0",{configurable:!0,get:function(){f("You are getting _emscripten_bind_ExpertEncoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_bind_ExpertEncoder___destroy___0",{configurable:!0,set:function(){f("You are setting _emscripten_bind_ExpertEncoder___destroy___0 on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",
{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_INVALID",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_INVALID on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_POSITION",
{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_POSITION on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_NORMAL",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_NORMAL on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",
{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_COLOR",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_COLOR on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD",
{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_enum_draco_GeometryAttribute_Type_GENERIC",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_GeometryAttribute_Type_GENERIC on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",
{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD",
{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING",
{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));
Object.getOwnPropertyDescriptor(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING")||(Object.defineProperty(a.ready,"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING",{configurable:!0,get:function(){f("You are getting _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),Object.defineProperty(a.ready,
"_emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING",{configurable:!0,set:function(){f("You are setting _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"_fflush")||(Object.defineProperty(a.ready,"_fflush",{configurable:!0,get:function(){f("You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"_fflush",{configurable:!0,set:function(){f("You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));Object.getOwnPropertyDescriptor(a.ready,"onRuntimeInitialized")||(Object.defineProperty(a.ready,"onRuntimeInitialized",{configurable:!0,get:function(){f("You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}),
Object.defineProperty(a.ready,"onRuntimeInitialized",{configurable:!0,set:function(){f("You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}}));var Wa=!1,Xa=!1;a.onRuntimeInitialized=function(){Wa=!0;if(Xa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){Xa=!0;if(Wa&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=
function(g){if("string"!==typeof g)return!1;g=g.split(".");return 2>g.length||3<g.length?!1:1==g[0]&&0<=g[1]&&5>=g[1]?!0:0!=g[0]||10<g[1]?!1:!0};var Ya=Object.assign({},a),Ga="object"==typeof window,fa="function"==typeof importScripts,La="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,Za=!Ga&&!La&&!fa;if(a.ENVIRONMENT)throw Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");
var S="",Ma,ya;if(La){if("object"!=typeof process||"function"!=typeof require)throw Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");S=fa?require("path").dirname(S)+"/":__dirname+"/";var $a=function(){ya||(Ma=require("fs"),ya=require("path"))};var Na=function(g,b){$a();g=ya.normalize(g);return Ma.readFileSync(g,b?void 0:"utf8")};var ka=function(g){g=Na(g,!0);
g.buffer||(g=new Uint8Array(g));t(g.buffer);return g};var sa=function(g,b,c){$a();g=ya.normalize(g);Ma.readFile(g,function(e,h){e?c(e):b(h.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);a.inspect=function(){return"[Emscripten Module object]"}}else if(Za){if("object"==typeof process&&"function"===typeof require||"object"==typeof window||"function"==typeof importScripts)throw Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");
"undefined"!=typeof read&&(Na=function(g){return read(g)});ka=function(g){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(g));g=read(g,"binary");t("object"==typeof g);return g};sa=function(g,b,c){setTimeout(function(){return b(ka(g))},0)};"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else if(Ga||fa){fa?S=self.location.href:"undefined"!=typeof document&&document.currentScript&&
(S=document.currentScript.src);q&&(S=q);S=0!==S.indexOf("blob:")?S.substr(0,S.replace(/[?#].*/,"").lastIndexOf("/")+1):"";if("object"!=typeof window&&"function"!=typeof importScripts)throw Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");Na=function(g){var b=new XMLHttpRequest;b.open("GET",g,!1);b.send(null);return b.responseText};fa&&(ka=function(g){var b=
new XMLHttpRequest;b.open("GET",g,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)});sa=function(g,b,c){var e=new XMLHttpRequest;e.open("GET",g,!0);e.responseType="arraybuffer";e.onload=function(){200==e.status||0==e.status&&e.response?b(e.response):c()};e.onerror=c;e.send(null)}}else throw Error("environment detection error");var sb=a.print||console.log.bind(console),I=a.printErr||console.warn.bind(console);Object.assign(a,Ya);Ya=null;(function(g){Object.getOwnPropertyDescriptor(a,
g)&&f("`Module."+g+"` was supplied but `"+g+"` not included in INCOMING_MODULE_JS_API")})("fetchSettings");r("arguments","arguments_");r("thisProgram","thisProgram");r("quit","quit_");t("undefined"==typeof a.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");t("undefined"==typeof a.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");t("undefined"==typeof a.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");
t("undefined"==typeof a.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead");t("undefined"==typeof a.read,"Module.read option was removed (modify read_ in JS)");t("undefined"==typeof a.readAsync,"Module.readAsync option was removed (modify readAsync in JS)");t("undefined"==typeof a.readBinary,"Module.readBinary option was removed (modify readBinary in JS)");t("undefined"==typeof a.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)");
t("undefined"==typeof a.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");r("read","read_");r("readAsync","readAsync");r("readBinary","readBinary");r("setWindowTitle","setWindowTitle");t(!Za,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var ja;a.wasmBinary&&(ja=a.wasmBinary);r("wasmBinary","wasmBinary");r("noExitRuntime","noExitRuntime");"object"!=typeof WebAssembly&&f("no native wasm support detected");var na,qa=!1,
ab="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var Ba,W,pa,Ca,T,J,Da;a.TOTAL_STACK&&t(5242880===a.TOTAL_STACK,"the stack size can no longer be determined at runtime");var Oa=a.INITIAL_MEMORY||16777216;r("INITIAL_MEMORY","INITIAL_MEMORY");t(5242880<=Oa,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+Oa+"! (TOTAL_STACK=5242880)");t("undefined"!=typeof Int32Array&&"undefined"!==typeof Float64Array&&void 0!=Int32Array.prototype.subarray&&
void 0!=Int32Array.prototype.set,"JS engine does not provide full typed array support");t(!a.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally");t(16777216==Oa,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically");var ua;(function(){var g=new Int16Array(1),b=new Int8Array(g.buffer);g[0]=25459;if(115!==b[0]||99!==b[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)";
})();var Va=[],Ja=[],Ta=[],ra=!1;t(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");t(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");t(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");t(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");
var aa=0,ba=null,oa=null,ia={},Q={error:function(){f("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},init:function(){Q.error()},createDataFile:function(){Q.error()},createPreloadedFile:function(){Q.error()},createLazyFile:function(){Q.error()},open:function(){Q.error()},mkdev:function(){Q.error()},registerDevice:function(){Q.error()},
analyzePath:function(){Q.error()},loadFilesFromDB:function(){Q.error()},ErrnoError:function(){Q.error()}};a.FS_createDataFile=Q.createDataFile;a.FS_createPreloadedFile=Q.createPreloadedFile;var K="draco_encoder.wasm";K.startsWith("data:application/octet-stream;base64,")||(K=n(K));var ta=[],tb=0,ub=[null,[],[]],db={__cxa_allocate_exception:function(g){return vb(g+24)+24},__cxa_throw:function(g,b,c){(new fb(g)).init(b,c);tb++;throw g+" - Exception catching is disabled, this exception cannot be caught. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch.";
},abort:function(){f("native code called abort()")},array_bounds_check_error:function(g,b){throw"Array index "+g+" out of bounds: [0,"+b+")";},emscripten_memcpy_big:function(g,b,c){pa.copyWithin(g,b,b+c)},emscripten_resize_heap:function(g){var b=pa.length;g>>>=0;t(g>b);if(2147483648<g)return I("Cannot enlarge memory, asked to go up to "+g+" bytes, but the limit is 2147483648 bytes!"),!1;for(var c=1;4>=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,g+100663296);var h=Math;e=Math.max(g,e);h=h.min.call(h,2147483648,
e+(65536-e%65536)%65536);a:{e=h;try{na.grow(e-Ba.byteLength+65535>>>16);C(na.buffer);var k=1;break a}catch(w){I("emscripten_realloc_buffer: Attempted to grow heap from "+Ba.byteLength+" bytes to "+e+" bytes, but got error: "+w)}k=void 0}if(k)return!0}I("Failed to grow the heap from "+b+" bytes to "+h+" bytes, not enough memory!");return!1},fd_close:function(g){f("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(g,b,c,e,h){return 70},fd_write:function(g,b,c,e){for(var h=0,k=
0;k<c;k++){var w=J[b>>2],bb=J[b+4>>2];b+=8;for(var Pa=0;Pa<bb;Pa++){var za=g,P=pa[w+Pa],Aa=ub[za];t(Aa);if(0===P||10===P){za=1===za?sb:I;P=Aa;for(var Y=0,da=Y+void 0,ha=Y;P[ha]&&!(ha>=da);)++ha;if(16<ha-Y&&P.buffer&&ab)P=ab.decode(P.subarray(Y,ha));else{for(da="";Y<ha;){var H=P[Y++];if(H&128){var Qa=P[Y++]&63;if(192==(H&224))da+=String.fromCharCode((H&31)<<6|Qa);else{var cb=P[Y++]&63;224==(H&240)?H=(H&15)<<12|Qa<<6|cb:(240!=(H&248)&&v("Invalid UTF-8 leading byte 0x"+H.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),
H=(H&7)<<18|Qa<<12|cb<<6|P[Y++]&63);65536>H?da+=String.fromCharCode(H):(H-=65536,da+=String.fromCharCode(55296|H>>10,56320|H&1023))}}else da+=String.fromCharCode(H)}P=da}za(P);Aa.length=0}else Aa.push(P)}h+=bb}J[e>>2]=h;return 0},setTempRet0:function(g){}};(function(){function g(k,w){a.asm=k.exports;na=a.asm.memory;t(na,"memory not found in wasm exports");C(na.buffer);ua=a.asm.__indirect_function_table;t(ua,"table not found in wasm exports");Ja.unshift(a.asm.__wasm_call_ctors);aa--;a.monitorRunDependencies&&
a.monitorRunDependencies(aa);t(ia["wasm-instantiate"]);delete ia["wasm-instantiate"];0==aa&&(null!==ba&&(clearInterval(ba),ba=null),oa&&(k=oa,oa=null,k()))}function b(k){t(a===h,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");h=null;g(k.instance)}function c(k){return eb().then(function(w){return WebAssembly.instantiate(w,e)}).then(function(w){return w}).then(k,function(w){I("failed to asynchronously prepare wasm: "+w);K.startsWith("file://")&&
I("warning: Loading from a file URI ("+K+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing");f(w)})}var e={env:db,wasi_snapshot_preview1:db};R("wasm-instantiate");var h=a;if(a.instantiateWasm)try{return a.instantiateWasm(e,g)}catch(k){return I("Module.instantiateWasm callback failed with error: "+k),!1}(function(){return ja||"function"!=typeof WebAssembly.instantiateStreaming||
K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||La||"function"!=typeof fetch?c(b):fetch(K,{credentials:"same-origin"}).then(function(k){return WebAssembly.instantiateStreaming(k,e).then(b,function(w){I("wasm streaming compile failed: "+w);I("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(Fa);return{}})();a.___wasm_call_ctors=l("__wasm_call_ctors");var wb=a._emscripten_bind_VoidPtr___destroy___0=l("emscripten_bind_VoidPtr___destroy___0"),hb=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
l("emscripten_bind_GeometryAttribute_GeometryAttribute_0"),xb=a._emscripten_bind_GeometryAttribute___destroy___0=l("emscripten_bind_GeometryAttribute___destroy___0"),ib=a._emscripten_bind_PointAttribute_PointAttribute_0=l("emscripten_bind_PointAttribute_PointAttribute_0"),yb=a._emscripten_bind_PointAttribute_size_0=l("emscripten_bind_PointAttribute_size_0"),zb=a._emscripten_bind_PointAttribute_attribute_type_0=l("emscripten_bind_PointAttribute_attribute_type_0"),Ab=a._emscripten_bind_PointAttribute_data_type_0=
l("emscripten_bind_PointAttribute_data_type_0"),Bb=a._emscripten_bind_PointAttribute_num_components_0=l("emscripten_bind_PointAttribute_num_components_0"),Cb=a._emscripten_bind_PointAttribute_normalized_0=l("emscripten_bind_PointAttribute_normalized_0"),Db=a._emscripten_bind_PointAttribute_byte_stride_0=l("emscripten_bind_PointAttribute_byte_stride_0"),Eb=a._emscripten_bind_PointAttribute_byte_offset_0=l("emscripten_bind_PointAttribute_byte_offset_0"),Fb=a._emscripten_bind_PointAttribute_unique_id_0=
l("emscripten_bind_PointAttribute_unique_id_0"),Gb=a._emscripten_bind_PointAttribute___destroy___0=l("emscripten_bind_PointAttribute___destroy___0"),jb=a._emscripten_bind_PointCloud_PointCloud_0=l("emscripten_bind_PointCloud_PointCloud_0"),Hb=a._emscripten_bind_PointCloud_num_attributes_0=l("emscripten_bind_PointCloud_num_attributes_0"),Ib=a._emscripten_bind_PointCloud_num_points_0=l("emscripten_bind_PointCloud_num_points_0"),Jb=a._emscripten_bind_PointCloud___destroy___0=l("emscripten_bind_PointCloud___destroy___0"),
kb=a._emscripten_bind_Mesh_Mesh_0=l("emscripten_bind_Mesh_Mesh_0"),Kb=a._emscripten_bind_Mesh_num_faces_0=l("emscripten_bind_Mesh_num_faces_0"),Lb=a._emscripten_bind_Mesh_num_attributes_0=l("emscripten_bind_Mesh_num_attributes_0"),Mb=a._emscripten_bind_Mesh_num_points_0=l("emscripten_bind_Mesh_num_points_0"),Nb=a._emscripten_bind_Mesh_set_num_points_1=l("emscripten_bind_Mesh_set_num_points_1"),Ob=a._emscripten_bind_Mesh___destroy___0=l("emscripten_bind_Mesh___destroy___0"),lb=a._emscripten_bind_Metadata_Metadata_0=
l("emscripten_bind_Metadata_Metadata_0"),Pb=a._emscripten_bind_Metadata___destroy___0=l("emscripten_bind_Metadata___destroy___0"),mb=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=l("emscripten_bind_DracoInt8Array_DracoInt8Array_0"),Qb=a._emscripten_bind_DracoInt8Array_GetValue_1=l("emscripten_bind_DracoInt8Array_GetValue_1"),Rb=a._emscripten_bind_DracoInt8Array_size_0=l("emscripten_bind_DracoInt8Array_size_0"),Sb=a._emscripten_bind_DracoInt8Array___destroy___0=l("emscripten_bind_DracoInt8Array___destroy___0"),
nb=a._emscripten_bind_MetadataBuilder_MetadataBuilder_0=l("emscripten_bind_MetadataBuilder_MetadataBuilder_0"),Tb=a._emscripten_bind_MetadataBuilder_AddStringEntry_3=l("emscripten_bind_MetadataBuilder_AddStringEntry_3"),Ub=a._emscripten_bind_MetadataBuilder_AddIntEntry_3=l("emscripten_bind_MetadataBuilder_AddIntEntry_3"),Vb=a._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=l("emscripten_bind_MetadataBuilder_AddIntEntryArray_4"),Wb=a._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=l("emscripten_bind_MetadataBuilder_AddDoubleEntry_3"),
Xb=a._emscripten_bind_MetadataBuilder___destroy___0=l("emscripten_bind_MetadataBuilder___destroy___0"),ob=a._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=l("emscripten_bind_PointCloudBuilder_PointCloudBuilder_0"),Yb=a._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=l("emscripten_bind_PointCloudBuilder_AddFloatAttribute_5"),Zb=a._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=l("emscripten_bind_PointCloudBuilder_AddInt8Attribute_5"),$b=a._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=
l("emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5"),ac=a._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=l("emscripten_bind_PointCloudBuilder_AddInt16Attribute_5"),bc=a._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=l("emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5"),cc=a._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=l("emscripten_bind_PointCloudBuilder_AddInt32Attribute_5"),dc=a._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=l("emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5"),
ec=a._emscripten_bind_PointCloudBuilder_AddMetadata_2=l("emscripten_bind_PointCloudBuilder_AddMetadata_2"),fc=a._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=l("emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3"),gc=a._emscripten_bind_PointCloudBuilder___destroy___0=l("emscripten_bind_PointCloudBuilder___destroy___0"),pb=a._emscripten_bind_MeshBuilder_MeshBuilder_0=l("emscripten_bind_MeshBuilder_MeshBuilder_0"),hc=a._emscripten_bind_MeshBuilder_AddFacesToMesh_3=l("emscripten_bind_MeshBuilder_AddFacesToMesh_3"),
ic=a._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=l("emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5"),jc=a._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=l("emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5"),kc=a._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=l("emscripten_bind_MeshBuilder_AddMetadataToMesh_2"),lc=a._emscripten_bind_MeshBuilder_AddFloatAttribute_5=l("emscripten_bind_MeshBuilder_AddFloatAttribute_5"),mc=a._emscripten_bind_MeshBuilder_AddInt8Attribute_5=
l("emscripten_bind_MeshBuilder_AddInt8Attribute_5"),nc=a._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=l("emscripten_bind_MeshBuilder_AddUInt8Attribute_5"),oc=a._emscripten_bind_MeshBuilder_AddInt16Attribute_5=l("emscripten_bind_MeshBuilder_AddInt16Attribute_5"),pc=a._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=l("emscripten_bind_MeshBuilder_AddUInt16Attribute_5"),qc=a._emscripten_bind_MeshBuilder_AddInt32Attribute_5=l("emscripten_bind_MeshBuilder_AddInt32Attribute_5"),rc=a._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=
l("emscripten_bind_MeshBuilder_AddUInt32Attribute_5"),sc=a._emscripten_bind_MeshBuilder_AddMetadata_2=l("emscripten_bind_MeshBuilder_AddMetadata_2"),tc=a._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=l("emscripten_bind_MeshBuilder_SetMetadataForAttribute_3"),uc=a._emscripten_bind_MeshBuilder___destroy___0=l("emscripten_bind_MeshBuilder___destroy___0"),qb=a._emscripten_bind_Encoder_Encoder_0=l("emscripten_bind_Encoder_Encoder_0"),vc=a._emscripten_bind_Encoder_SetEncodingMethod_1=l("emscripten_bind_Encoder_SetEncodingMethod_1"),
wc=a._emscripten_bind_Encoder_SetAttributeQuantization_2=l("emscripten_bind_Encoder_SetAttributeQuantization_2"),xc=a._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=l("emscripten_bind_Encoder_SetAttributeExplicitQuantization_5"),yc=a._emscripten_bind_Encoder_SetSpeedOptions_2=l("emscripten_bind_Encoder_SetSpeedOptions_2"),zc=a._emscripten_bind_Encoder_SetTrackEncodedProperties_1=l("emscripten_bind_Encoder_SetTrackEncodedProperties_1"),Ac=a._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=
l("emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2"),Bc=a._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=l("emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3"),Cc=a._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=l("emscripten_bind_Encoder_GetNumberOfEncodedPoints_0"),Dc=a._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=l("emscripten_bind_Encoder_GetNumberOfEncodedFaces_0"),Ec=a._emscripten_bind_Encoder___destroy___0=l("emscripten_bind_Encoder___destroy___0"),rb=a._emscripten_bind_ExpertEncoder_ExpertEncoder_1=
l("emscripten_bind_ExpertEncoder_ExpertEncoder_1"),Fc=a._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=l("emscripten_bind_ExpertEncoder_SetEncodingMethod_1"),Gc=a._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=l("emscripten_bind_ExpertEncoder_SetAttributeQuantization_2"),Hc=a._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=l("emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5"),Ic=a._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=l("emscripten_bind_ExpertEncoder_SetSpeedOptions_2"),
Jc=a._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=l("emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1"),Kc=a._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=l("emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2"),Lc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=l("emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0"),Mc=a._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=l("emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0"),Nc=a._emscripten_bind_ExpertEncoder___destroy___0=
l("emscripten_bind_ExpertEncoder___destroy___0"),Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=l("emscripten_enum_draco_GeometryAttribute_Type_INVALID"),Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=l("emscripten_enum_draco_GeometryAttribute_Type_POSITION"),Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=l("emscripten_enum_draco_GeometryAttribute_Type_NORMAL"),Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=l("emscripten_enum_draco_GeometryAttribute_Type_COLOR"),
Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=l("emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"),Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=l("emscripten_enum_draco_GeometryAttribute_Type_GENERIC"),Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=l("emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"),Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=l("emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"),Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
l("emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"),Xc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=l("emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING"),Yc=a._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=l("emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING");a.___errno_location=l("__errno_location");a._fflush=l("fflush");var vb=a._malloc=l("malloc");a._free=l("free");var Ua=a._emscripten_stack_init=function(){return(Ua=
a._emscripten_stack_init=a.asm.emscripten_stack_init).apply(null,arguments)};a._emscripten_stack_get_free=function(){return(a._emscripten_stack_get_free=a.asm.emscripten_stack_get_free).apply(null,arguments)};a._emscripten_stack_get_base=function(){return(a._emscripten_stack_get_base=a.asm.emscripten_stack_get_base).apply(null,arguments)};var Ea=a._emscripten_stack_get_end=function(){return(Ea=a._emscripten_stack_get_end=a.asm.emscripten_stack_get_end).apply(null,arguments)};a.stackSave=l("stackSave");
a.stackRestore=l("stackRestore");a.stackAlloc=l("stackAlloc");var gb=a.___cxa_is_pointer_type=l("__cxa_is_pointer_type");a.dynCall_jiji=l("dynCall_jiji");d("ccall",!1);d("cwrap",!1);d("allocate",!1);d("UTF8ArrayToString",!1);d("UTF8ToString",!1);d("stringToUTF8Array",!1);d("stringToUTF8",!1);d("lengthBytesUTF8",!1);d("addOnPreRun",!1);d("addOnInit",!1);d("addOnPreMain",!1);d("addOnExit",!1);d("addOnPostRun",!1);d("addRunDependency",!0);d("removeRunDependency",!0);d("FS_createFolder",!1);d("FS_createPath",
!0);d("FS_createDataFile",!0);d("FS_createPreloadedFile",!0);d("FS_createLazyFile",!0);d("FS_createLink",!1);d("FS_createDevice",!0);d("FS_unlink",!0);d("getLEB",!1);d("getFunctionTables",!1);d("alignFunctionTables",!1);d("registerFunctions",!1);d("addFunction",!1);d("removeFunction",!1);d("prettyPrint",!1);d("getCompilerSetting",!1);d("print",!1);d("printErr",!1);d("getTempRet0",!1);d("setTempRet0",!1);d("callMain",!1);d("abort",!1);d("keepRuntimeAlive",!1);d("wasmMemory",!1);d("warnOnce",!1);d("stackSave",
!1);d("stackRestore",!1);d("stackAlloc",!1);d("AsciiToString",!1);d("stringToAscii",!1);d("UTF16ToString",!1);d("stringToUTF16",!1);d("lengthBytesUTF16",!1);d("UTF32ToString",!1);d("stringToUTF32",!1);d("lengthBytesUTF32",!1);d("allocateUTF8",!1);d("allocateUTF8OnStack",!1);d("ExitStatus",!1);d("intArrayFromString",!1);d("intArrayToString",!1);d("writeStringToMemory",!1);d("writeArrayToMemory",!1);d("writeAsciiToMemory",!1);a.writeStackCookie=L;a.checkStackCookie=Z;d("ptrToString",!1);d("zeroMemory",
!1);d("stringToNewUTF8",!1);d("getHeapMax",!1);d("emscripten_realloc_buffer",!1);d("ENV",!1);d("ERRNO_CODES",!1);d("ERRNO_MESSAGES",!1);d("setErrNo",!1);d("inetPton4",!1);d("inetNtop4",!1);d("inetPton6",!1);d("inetNtop6",!1);d("readSockaddr",!1);d("writeSockaddr",!1);d("DNS",!1);d("getHostByName",!1);d("Protocols",!1);d("Sockets",!1);d("getRandomDevice",!1);d("traverseStack",!1);d("UNWIND_CACHE",!1);d("convertPCtoSourceLocation",!1);d("readAsmConstArgsArray",!1);d("readAsmConstArgs",!1);d("mainThreadEM_ASM",
!1);d("jstoi_q",!1);d("jstoi_s",!1);d("getExecutableName",!1);d("listenOnce",!1);d("autoResumeAudioContext",!1);d("dynCallLegacy",!1);d("getDynCaller",!1);d("dynCall",!1);d("handleException",!1);d("runtimeKeepalivePush",!1);d("runtimeKeepalivePop",!1);d("callUserCallback",!1);d("maybeExit",!1);d("safeSetTimeout",!1);d("asmjsMangle",!1);d("asyncLoad",!1);d("alignMemory",!1);d("mmapAlloc",!1);d("writeI53ToI64",!1);d("writeI53ToI64Clamped",!1);d("writeI53ToI64Signaling",!1);d("writeI53ToU64Clamped",
!1);d("writeI53ToU64Signaling",!1);d("readI53FromI64",!1);d("readI53FromU64",!1);d("convertI32PairToI53",!1);d("convertI32PairToI53Checked",!1);d("convertU32PairToI53",!1);d("reallyNegative",!1);d("unSign",!1);d("strLen",!1);d("reSign",!1);d("formatString",!1);d("setValue",!1);d("getValue",!1);d("PATH",!1);d("PATH_FS",!1);d("SYSCALLS",!1);d("getSocketFromFD",!1);d("getSocketAddress",!1);d("JSEvents",!1);d("registerKeyEventCallback",!1);d("specialHTMLTargets",!1);d("maybeCStringToJsString",!1);d("findEventTarget",
!1);d("findCanvasEventTarget",!1);d("getBoundingClientRect",!1);d("fillMouseEventData",!1);d("registerMouseEventCallback",!1);d("registerWheelEventCallback",!1);d("registerUiEventCallback",!1);d("registerFocusEventCallback",!1);d("fillDeviceOrientationEventData",!1);d("registerDeviceOrientationEventCallback",!1);d("fillDeviceMotionEventData",!1);d("registerDeviceMotionEventCallback",!1);d("screenOrientation",!1);d("fillOrientationChangeEventData",!1);d("registerOrientationChangeEventCallback",!1);
d("fillFullscreenChangeEventData",!1);d("registerFullscreenChangeEventCallback",!1);d("JSEvents_requestFullscreen",!1);d("JSEvents_resizeCanvasForFullscreen",!1);d("registerRestoreOldStyle",!1);d("hideEverythingExceptGivenElement",!1);d("restoreHiddenElements",!1);d("setLetterbox",!1);d("currentFullscreenStrategy",!1);d("restoreOldWindowedStyle",!1);d("softFullscreenResizeWebGLRenderTarget",!1);d("doRequestFullscreen",!1);d("fillPointerlockChangeEventData",!1);d("registerPointerlockChangeEventCallback",
!1);d("registerPointerlockErrorEventCallback",!1);d("requestPointerLock",!1);d("fillVisibilityChangeEventData",!1);d("registerVisibilityChangeEventCallback",!1);d("registerTouchEventCallback",!1);d("fillGamepadEventData",!1);d("registerGamepadEventCallback",!1);d("registerBeforeUnloadEventCallback",!1);d("fillBatteryEventData",!1);d("battery",!1);d("registerBatteryEventCallback",!1);d("setCanvasElementSize",!1);d("getCanvasElementSize",!1);d("demangle",!1);d("demangleAll",!1);d("jsStackTrace",!1);
d("stackTrace",!1);d("getEnvStrings",!1);d("checkWasiClock",!1);d("flush_NO_FILESYSTEM",!1);d("dlopenMissingError",!1);d("setImmediateWrapped",!1);d("clearImmediateWrapped",!1);d("polyfillSetImmediate",!1);d("uncaughtExceptionCount",!1);d("exceptionLast",!1);d("exceptionCaught",!1);d("ExceptionInfo",!1);d("exception_addRef",!1);d("exception_decRef",!1);d("Browser",!1);d("setMainLoop",!1);d("wget",!1);d("tempFixedLengthArray",!1);d("miniTempWebGLFloatBuffers",!1);d("heapObjectForWebGLType",!1);d("heapAccessShiftForWebGLHeap",
!1);d("GL",!1);d("emscriptenWebGLGet",!1);d("computeUnpackAlignedImageSize",!1);d("emscriptenWebGLGetTexPixelData",!1);d("emscriptenWebGLGetUniform",!1);d("webglGetUniformLocation",!1);d("webglPrepareUniformLocationsBeforeFirstUse",!1);d("webglGetLeftBracePos",!1);d("emscriptenWebGLGetVertexAttrib",!1);d("writeGLArray",!1);d("AL",!1);d("SDL_unicode",!1);d("SDL_ttfContext",!1);d("SDL_audio",!1);d("SDL",!1);d("SDL_gfx",!1);d("GLUT",!1);d("EGL",!1);d("GLFW_Window",!1);d("GLFW",!1);d("GLEW",!1);d("IDBStore",
!1);d("runAndAbortIfError",!1);p("ALLOC_NORMAL",!1);p("ALLOC_STACK",!1);var va;oa=function b(){va||Ia();va||(oa=b)};a.run=Ia;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();Ia();D.prototype=Object.create(D.prototype);D.prototype.constructor=D;D.prototype.__class__=D;D.__cache__={};a.WrapperObject=D;a.getCache=M;a.wrapPointer=Ka;a.castObject=function(b,c){return Ka(b.ptr,c)};a.NULL=Ka(0);a.destroy=function(b){if(!b.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";
b.__destroy__();delete M(b.__class__)[b.ptr]};a.compare=function(b,c){return b.ptr===c.ptr};a.getPointer=function(b){return b.ptr};a.getClass=function(b){return b.__class__};var u={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(u.needed){for(var b=0;b<u.temps.length;b++)a._free(u.temps[b]);u.temps.length=0;a._free(u.buffer);u.buffer=0;u.size+=u.needed;u.needed=0}u.buffer||(u.size+=128,u.buffer=a._malloc(u.size),t(u.buffer));u.pos=0},alloc:function(b,c){t(u.buffer);b=b.length*c.BYTES_PER_ELEMENT;
b=b+7&-8;u.pos+b>=u.size?(t(0<b),u.needed+=b,c=a._malloc(b),u.temps.push(c)):(c=u.buffer+u.pos,u.pos+=b);return c},copy:function(b,c,e){e>>>=0;switch(c.BYTES_PER_ELEMENT){case 2:e>>>=1;break;case 4:e>>>=2;break;case 8:e>>>=3}for(var h=0;h<b.length;h++)c[e+h]=b[h]}};X.prototype=Object.create(D.prototype);X.prototype.constructor=X;X.prototype.__class__=X;X.__cache__={};a.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){wb(this.ptr)};U.prototype=Object.create(D.prototype);U.prototype.constructor=
U;U.prototype.__class__=U;U.__cache__={};a.GeometryAttribute=U;U.prototype.__destroy__=U.prototype.__destroy__=function(){xb(this.ptr)};A.prototype=Object.create(D.prototype);A.prototype.constructor=A;A.prototype.__class__=A;A.__cache__={};a.PointAttribute=A;A.prototype.size=A.prototype.size=function(){return yb(this.ptr)};A.prototype.attribute_type=A.prototype.attribute_type=function(){return zb(this.ptr)};A.prototype.data_type=A.prototype.data_type=function(){return Ab(this.ptr)};A.prototype.num_components=
A.prototype.num_components=function(){return Bb(this.ptr)};A.prototype.normalized=A.prototype.normalized=function(){return!!Cb(this.ptr)};A.prototype.byte_stride=A.prototype.byte_stride=function(){return Db(this.ptr)};A.prototype.byte_offset=A.prototype.byte_offset=function(){return Eb(this.ptr)};A.prototype.unique_id=A.prototype.unique_id=function(){return Fb(this.ptr)};A.prototype.__destroy__=A.prototype.__destroy__=function(){Gb(this.ptr)};N.prototype=Object.create(D.prototype);N.prototype.constructor=
N;N.prototype.__class__=N;N.__cache__={};a.PointCloud=N;N.prototype.num_attributes=N.prototype.num_attributes=function(){return Hb(this.ptr)};N.prototype.num_points=N.prototype.num_points=function(){return Ib(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){Jb(this.ptr)};F.prototype=Object.create(D.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};a.Mesh=F;F.prototype.num_faces=F.prototype.num_faces=function(){return Kb(this.ptr)};F.prototype.num_attributes=
F.prototype.num_attributes=function(){return Lb(this.ptr)};F.prototype.num_points=F.prototype.num_points=function(){return Mb(this.ptr)};F.prototype.set_num_points=F.prototype.set_num_points=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Nb(c,b)};F.prototype.__destroy__=F.prototype.__destroy__=function(){Ob(this.ptr)};V.prototype=Object.create(D.prototype);V.prototype.constructor=V;V.prototype.__class__=V;V.__cache__={};a.Metadata=V;V.prototype.__destroy__=V.prototype.__destroy__=function(){Pb(this.ptr)};
O.prototype=Object.create(D.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoInt8Array=O;O.prototype.GetValue=O.prototype.GetValue=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Qb(c,b)};O.prototype.size=O.prototype.size=function(){return Rb(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){Sb(this.ptr)};G.prototype=Object.create(D.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.MetadataBuilder=
G;G.prototype.AddStringEntry=G.prototype.AddStringEntry=function(b,c,e){var h=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:la(c);e=e&&"object"===typeof e?e.ptr:la(e);return!!Tb(h,b,c,e)};G.prototype.AddIntEntry=G.prototype.AddIntEntry=function(b,c,e){var h=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:la(c);e&&"object"===typeof e&&(e=e.ptr);return!!Ub(h,b,c,e)};G.prototype.AddIntEntryArray=G.prototype.AddIntEntryArray=
function(b,c,e,h){var k=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:la(c);"object"==typeof e&&(e=ca(e));h&&"object"===typeof h&&(h=h.ptr);return!!Vb(k,b,c,e,h)};G.prototype.AddDoubleEntry=G.prototype.AddDoubleEntry=function(b,c,e){var h=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c=c&&"object"===typeof c?c.ptr:la(c);e&&"object"===typeof e&&(e=e.ptr);return!!Wb(h,b,c,e)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Xb(this.ptr)};y.prototype=
Object.create(D.prototype);y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};a.PointCloudBuilder=y;y.prototype.AddFloatAttribute=y.prototype.AddFloatAttribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=ma(k));return Yb(w,b,c,e,h,k)};y.prototype.AddInt8Attribute=y.prototype.AddInt8Attribute=function(b,c,e,h,k){var w=this.ptr;
u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=wa(k));return Zb(w,b,c,e,h,k)};y.prototype.AddUInt8Attribute=y.prototype.AddUInt8Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=wa(k));return $b(w,b,c,e,h,k)};y.prototype.AddInt16Attribute=
y.prototype.AddInt16Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=xa(k));return ac(w,b,c,e,h,k)};y.prototype.AddUInt16Attribute=y.prototype.AddUInt16Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&
(h=h.ptr);"object"==typeof k&&(k=xa(k));return bc(w,b,c,e,h,k)};y.prototype.AddInt32Attribute=y.prototype.AddInt32Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=ca(k));return cc(w,b,c,e,h,k)};y.prototype.AddUInt32Attribute=y.prototype.AddUInt32Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);
c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=ca(k));return dc(w,b,c,e,h,k)};y.prototype.AddMetadata=y.prototype.AddMetadata=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!ec(e,b,c)};y.prototype.SetMetadataForAttribute=y.prototype.SetMetadataForAttribute=function(b,c,e){var h=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===
typeof e&&(e=e.ptr);return!!fc(h,b,c,e)};y.prototype.__destroy__=y.prototype.__destroy__=function(){gc(this.ptr)};x.prototype=Object.create(D.prototype);x.prototype.constructor=x;x.prototype.__class__=x;x.__cache__={};a.MeshBuilder=x;x.prototype.AddFacesToMesh=x.prototype.AddFacesToMesh=function(b,c,e){var h=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);"object"==typeof e&&(e=ca(e));return!!hc(h,b,c,e)};x.prototype.AddFloatAttributeToMesh=x.prototype.AddFloatAttributeToMesh=
function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=ma(k));return ic(w,b,c,e,h,k)};x.prototype.AddInt32AttributeToMesh=x.prototype.AddInt32AttributeToMesh=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==
typeof k&&(k=ca(k));return jc(w,b,c,e,h,k)};x.prototype.AddMetadataToMesh=x.prototype.AddMetadataToMesh=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!kc(e,b,c)};x.prototype.AddFloatAttribute=x.prototype.AddFloatAttribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=ma(k));return lc(w,
b,c,e,h,k)};x.prototype.AddInt8Attribute=x.prototype.AddInt8Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=wa(k));return mc(w,b,c,e,h,k)};x.prototype.AddUInt8Attribute=x.prototype.AddUInt8Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&
(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=wa(k));return nc(w,b,c,e,h,k)};x.prototype.AddInt16Attribute=x.prototype.AddInt16Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=xa(k));return oc(w,b,c,e,h,k)};x.prototype.AddUInt16Attribute=x.prototype.AddUInt16Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=xa(k));return pc(w,b,c,e,h,k)};x.prototype.AddInt32Attribute=x.prototype.AddInt32Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=ca(k));return qc(w,b,c,e,h,k)};x.prototype.AddUInt32Attribute=
x.prototype.AddUInt32Attribute=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);h&&"object"===typeof h&&(h=h.ptr);"object"==typeof k&&(k=ca(k));return rc(w,b,c,e,h,k)};x.prototype.AddMetadata=x.prototype.AddMetadata=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return!!sc(e,b,c)};x.prototype.SetMetadataForAttribute=x.prototype.SetMetadataForAttribute=
function(b,c,e){var h=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);return!!tc(h,b,c,e)};x.prototype.__destroy__=x.prototype.__destroy__=function(){uc(this.ptr)};z.prototype=Object.create(D.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.Encoder=z;z.prototype.SetEncodingMethod=z.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);vc(c,b)};z.prototype.SetAttributeQuantization=
z.prototype.SetAttributeQuantization=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);wc(e,b,c)};z.prototype.SetAttributeExplicitQuantization=z.prototype.SetAttributeExplicitQuantization=function(b,c,e,h,k){var w=this.ptr;u.prepare();b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof h&&(h=ma(h));k&&"object"===typeof k&&(k=k.ptr);xc(w,b,c,e,h,k)};z.prototype.SetSpeedOptions=z.prototype.SetSpeedOptions=
function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);yc(e,b,c)};z.prototype.SetTrackEncodedProperties=z.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);zc(c,b)};z.prototype.EncodeMeshToDracoBuffer=z.prototype.EncodeMeshToDracoBuffer=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Ac(e,b,c)};z.prototype.EncodePointCloudToDracoBuffer=z.prototype.EncodePointCloudToDracoBuffer=
function(b,c,e){var h=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);return Bc(h,b,c,e)};z.prototype.GetNumberOfEncodedPoints=z.prototype.GetNumberOfEncodedPoints=function(){return Cc(this.ptr)};z.prototype.GetNumberOfEncodedFaces=z.prototype.GetNumberOfEncodedFaces=function(){return Dc(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){Ec(this.ptr)};B.prototype=Object.create(D.prototype);B.prototype.constructor=B;
B.prototype.__class__=B;B.__cache__={};a.ExpertEncoder=B;B.prototype.SetEncodingMethod=B.prototype.SetEncodingMethod=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Fc(c,b)};B.prototype.SetAttributeQuantization=B.prototype.SetAttributeQuantization=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Gc(e,b,c)};B.prototype.SetAttributeExplicitQuantization=B.prototype.SetAttributeExplicitQuantization=function(b,c,e,h,k){var w=this.ptr;u.prepare();
b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);e&&"object"===typeof e&&(e=e.ptr);"object"==typeof h&&(h=ma(h));k&&"object"===typeof k&&(k=k.ptr);Hc(w,b,c,e,h,k)};B.prototype.SetSpeedOptions=B.prototype.SetSpeedOptions=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);Ic(e,b,c)};B.prototype.SetTrackEncodedProperties=B.prototype.SetTrackEncodedProperties=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);Jc(c,b)};B.prototype.EncodeToDracoBuffer=
B.prototype.EncodeToDracoBuffer=function(b,c){var e=this.ptr;b&&"object"===typeof b&&(b=b.ptr);c&&"object"===typeof c&&(c=c.ptr);return Kc(e,b,c)};B.prototype.GetNumberOfEncodedPoints=B.prototype.GetNumberOfEncodedPoints=function(){return Lc(this.ptr)};B.prototype.GetNumberOfEncodedFaces=B.prototype.GetNumberOfEncodedFaces=function(){return Mc(this.ptr)};B.prototype.__destroy__=B.prototype.__destroy__=function(){Nc(this.ptr)};(function(){function b(){a.INVALID=Oc();a.POSITION=Pc();a.NORMAL=Qc();a.COLOR=
Rc();a.TEX_COORD=Sc();a.GENERIC=Tc();a.INVALID_GEOMETRY_TYPE=Uc();a.POINT_CLOUD=Vc();a.TRIANGULAR_MESH=Wc();a.MESH_SEQUENTIAL_ENCODING=Xc();a.MESH_EDGEBREAKER_ENCODING=Yc()}ra?b():Ja.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return m.ready}}();
var DracoEncoderModule=function(){var n="undefined"!==typeof document&&document.currentScript?document.currentScript.src:void 0;"undefined"!==typeof __filename&&(n=n||__filename);return function(k){function l(e){return c.locateFile?c.locateFile(e,S):S+e}function q(e,a){Object.getOwnPropertyDescriptor(c,e)||Object.defineProperty(c,e,{configurable:!0,get:function(){A("Module."+e+" has been replaced with plain "+a+" (the initial value can be provided on Module, but after startup the value is only looked for on a local variable of that name)")}})}
function p(e){return"FS_createPath"===e||"FS_createDataFile"===e||"FS_createPreloadedFile"===e||"FS_unlink"===e||"addRunDependency"===e||"FS_createLazyFile"===e||"FS_createDevice"===e||"removeRunDependency"===e}function t(e,a){e||A("Assertion failed"+(a?": "+a:""))}function m(e){Aa=e;c.HEAP8=W=new Int8Array(e);c.HEAP16=Ba=new Int16Array(e);c.HEAP32=Z=new Int32Array(e);c.HEAPU8=pa=new Uint8Array(e);c.HEAPU16=new Uint16Array(e);c.HEAPU32=H=new Uint32Array(e);c.HEAPF32=Ca=new Float32Array(e);c.HEAPF64=
new Float64Array(e)}function v(){var e=Da();t(0==(e&3));H[e>>2]=34821223;H[e+4>>2]=2310721022;H[0]=1668509029}function x(){if(!qa){var e=Da(),a=H[e>>2],b=H[e+4>>2];34821223==a&&2310721022==b||A("Stack overflow! Stack cookie has been overwritten at 0x"+e.toString(16)+", expected hex dwords 0x89BACDFE and 0x2135467, but received 0x"+b.toString(16)+" 0x"+a.toString(16));1668509029!==H[0]&&A("Runtime error: The application has corrupted its heap memory area (address zero)!")}}function E(e){ba++;c.monitorRunDependencies&&
c.monitorRunDependencies(ba);e?(t(!ia[e]),ia[e]=1,null===ca&&"undefined"!=typeof setInterval&&(ca=setInterval(function(){if(qa)clearInterval(ca),ca=null;else{var a=!1,b;for(b in ia)a||(a=!0,J("still waiting on run dependencies:")),J("dependency: "+b);a&&J("(end of list)")}},1E4))):J("warning: run dependency added without ID")}function A(e){if(c.onAbort)c.onAbort(e);e="Aborted("+e+")";J(e);qa=!0;e=new WebAssembly.RuntimeError(e);ra(e);throw e;}function h(e,a){return function(){var b=a;a||(b=c.asm);
t(sa,"native function `"+e+"` called before runtime initialization");b[e]||t(b[e],"exported native function `"+e+"` not found");return b[e].apply(null,arguments)}}function P(e){try{if(e==K&&ja)return new Uint8Array(ja);if(ka)return ka(e);throw"both async and sync fetching of the wasm failed";}catch(a){A(a)}}function V(){if(!ja&&(Ea||fa)){if("function"==typeof fetch&&!K.startsWith("file://"))return fetch(K,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+
K+"'";return e.arrayBuffer()}).catch(function(){return P(K)});if(ta)return new Promise(function(e,a){ta(K,function(b){e(new Uint8Array(b))},a)})}return Promise.resolve().then(function(){return P(K)})}function aa(e){for(;0<e.length;)e.shift()(c)}function R(e){R.shown||(R.shown={});R.shown[e]||(R.shown[e]=1,ua&&(e="warning: "+e),J(e))}function ab(e){this.excPtr=e;this.ptr=e-24;this.set_type=function(a){H[this.ptr+4>>2]=a};this.get_type=function(){return H[this.ptr+4>>2]};this.set_destructor=function(a){H[this.ptr+
8>>2]=a};this.get_destructor=function(){return H[this.ptr+8>>2]};this.set_refcount=function(a){Z[this.ptr>>2]=a};this.set_caught=function(a){W[this.ptr+12>>0]=a?1:0};this.get_caught=function(){return 0!=W[this.ptr+12>>0]};this.set_rethrown=function(a){W[this.ptr+13>>0]=a?1:0};this.get_rethrown=function(){return 0!=W[this.ptr+13>>0]};this.init=function(a,b){this.set_adjusted_ptr(0);this.set_type(a);this.set_destructor(b);this.set_refcount(0);this.set_caught(!1);this.set_rethrown(!1)};this.add_ref=
function(){Z[this.ptr>>2]+=1};this.release_ref=function(){var a=Z[this.ptr>>2];Z[this.ptr>>2]=a-1;t(0<a);return 1===a};this.set_adjusted_ptr=function(a){H[this.ptr+16>>2]=a};this.get_adjusted_ptr=function(){return H[this.ptr+16>>2]};this.get_exception_ptr=function(){if(bb(this.get_type()))return H[this.excPtr>>2];var a=this.get_adjusted_ptr();return 0!==a?a:this.excPtr}}function La(e){function a(){if(!va&&(va=!0,c.calledRun=!0,!qa)){t(!sa);sa=!0;x();aa(Fa);Ma(c);if(c.onRuntimeInitialized)c.onRuntimeInitialized();
t(!c._main,'compiled without a main, but one is present. if you added it from JS, use Module["onRuntimeInitialized"]');x();if(c.postRun)for("function"==typeof c.postRun&&(c.postRun=[c.postRun]);c.postRun.length;)Na.unshift(c.postRun.shift());aa(Na)}}if(!(0<ba)){Oa();v();if(c.preRun)for("function"==typeof c.preRun&&(c.preRun=[c.preRun]);c.preRun.length;)Pa.unshift(c.preRun.shift());aa(Pa);0<ba||(c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1);
a()},1)):a(),x())}}function D(){}function L(e){return(e||D).__cache__}function Ga(e,a){var b=L(a),d=b[e];if(d)return d;d=Object.create((a||D).prototype);d.ptr=e;return b[e]=d}function la(e){if("string"===typeof e){for(var a=0,b=0;b<e.length;++b){var d=e.charCodeAt(b);127>=d?a++:2047>=d?a+=2:55296<=d&&57343>=d?(a+=4,++b):a+=3}a=Array(a+1);b=0;d=a.length;if(0<d){d=b+d-1;for(var f=0;f<e.length;++f){var g=e.charCodeAt(f);if(55296<=g&&57343>=g){var u=e.charCodeAt(++f);g=65536+((g&1023)<<10)|u&1023}if(127>=
g){if(b>=d)break;a[b++]=g}else{if(2047>=g){if(b+1>=d)break;a[b++]=192|g>>6}else{if(65535>=g){if(b+2>=d)break;a[b++]=224|g>>12}else{if(b+3>=d)break;1114111<g&&R("Invalid Unicode code point 0x"+g.toString(16)+" encountered when serializing a JS string to a UTF-8 string in wasm memory! (Valid unicode code points should be in range 0-0x10FFFF).");a[b++]=240|g>>18;a[b++]=128|g>>12&63}a[b++]=128|g>>6&63}a[b++]=128|g&63}}a[b]=0}e=r.alloc(a,W);r.copy(a,W,e);return e}return e}function wa(e){if("object"===
typeof e){var a=r.alloc(e,W);r.copy(e,W,a);return a}return e}function xa(e){if("object"===typeof e){var a=r.alloc(e,Ba);r.copy(e,Ba,a);return a}return e}function da(e){if("object"===typeof e){var a=r.alloc(e,Z);r.copy(e,Z,a);return a}return e}function ma(e){if("object"===typeof e){var a=r.alloc(e,Ca);r.copy(e,Ca,a);return a}return e}function X(){throw"cannot construct a VoidPtr, no constructor in IDL";}function T(){this.ptr=cb();L(T)[this.ptr]=this}function B(){this.ptr=db();L(B)[this.ptr]=this}function M(){this.ptr=
eb();L(M)[this.ptr]=this}function F(){this.ptr=fb();L(F)[this.ptr]=this}function U(){this.ptr=gb();L(U)[this.ptr]=this}function N(){this.ptr=hb();L(N)[this.ptr]=this}function G(){this.ptr=ib();L(G)[this.ptr]=this}function y(){this.ptr=jb();L(y)[this.ptr]=this}function w(){this.ptr=kb();L(w)[this.ptr]=this}function z(){this.ptr=lb();L(z)[this.ptr]=this}function C(e){e&&"object"===typeof e&&(e=e.ptr);this.ptr=mb(e);L(C)[this.ptr]=this}k=k||{};var c="undefined"!=typeof k?k:{},Ma,ra;c.ready=new Promise(function(e,
a){Ma=e;ra=a});"_free _malloc _emscripten_bind_VoidPtr___destroy___0 _emscripten_bind_GeometryAttribute_GeometryAttribute_0 _emscripten_bind_GeometryAttribute___destroy___0 _emscripten_bind_PointAttribute_PointAttribute_0 _emscripten_bind_PointAttribute_size_0 _emscripten_bind_PointAttribute_attribute_type_0 _emscripten_bind_PointAttribute_data_type_0 _emscripten_bind_PointAttribute_num_components_0 _emscripten_bind_PointAttribute_normalized_0 _emscripten_bind_PointAttribute_byte_stride_0 _emscripten_bind_PointAttribute_byte_offset_0 _emscripten_bind_PointAttribute_unique_id_0 _emscripten_bind_PointAttribute___destroy___0 _emscripten_bind_PointCloud_PointCloud_0 _emscripten_bind_PointCloud_num_attributes_0 _emscripten_bind_PointCloud_num_points_0 _emscripten_bind_PointCloud___destroy___0 _emscripten_bind_Mesh_Mesh_0 _emscripten_bind_Mesh_num_faces_0 _emscripten_bind_Mesh_num_attributes_0 _emscripten_bind_Mesh_num_points_0 _emscripten_bind_Mesh_set_num_points_1 _emscripten_bind_Mesh___destroy___0 _emscripten_bind_Metadata_Metadata_0 _emscripten_bind_Metadata___destroy___0 _emscripten_bind_DracoInt8Array_DracoInt8Array_0 _emscripten_bind_DracoInt8Array_GetValue_1 _emscripten_bind_DracoInt8Array_size_0 _emscripten_bind_DracoInt8Array___destroy___0 _emscripten_bind_MetadataBuilder_MetadataBuilder_0 _emscripten_bind_MetadataBuilder_AddStringEntry_3 _emscripten_bind_MetadataBuilder_AddIntEntry_3 _emscripten_bind_MetadataBuilder_AddIntEntryArray_4 _emscripten_bind_MetadataBuilder_AddDoubleEntry_3 _emscripten_bind_MetadataBuilder___destroy___0 _emscripten_bind_PointCloudBuilder_PointCloudBuilder_0 _emscripten_bind_PointCloudBuilder_AddFloatAttribute_5 _emscripten_bind_PointCloudBuilder_AddInt8Attribute_5 _emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5 _emscripten_bind_PointCloudBuilder_AddInt16Attribute_5 _emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5 _emscripten_bind_PointCloudBuilder_AddInt32Attribute_5 _emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5 _emscripten_bind_PointCloudBuilder_AddMetadata_2 _emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3 _emscripten_bind_PointCloudBuilder___destroy___0 _emscripten_bind_MeshBuilder_MeshBuilder_0 _emscripten_bind_MeshBuilder_AddFacesToMesh_3 _emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5 _emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5 _emscripten_bind_MeshBuilder_AddMetadataToMesh_2 _emscripten_bind_MeshBuilder_AddFloatAttribute_5 _emscripten_bind_MeshBuilder_AddInt8Attribute_5 _emscripten_bind_MeshBuilder_AddUInt8Attribute_5 _emscripten_bind_MeshBuilder_AddInt16Attribute_5 _emscripten_bind_MeshBuilder_AddUInt16Attribute_5 _emscripten_bind_MeshBuilder_AddInt32Attribute_5 _emscripten_bind_MeshBuilder_AddUInt32Attribute_5 _emscripten_bind_MeshBuilder_AddMetadata_2 _emscripten_bind_MeshBuilder_SetMetadataForAttribute_3 _emscripten_bind_MeshBuilder___destroy___0 _emscripten_bind_Encoder_Encoder_0 _emscripten_bind_Encoder_SetEncodingMethod_1 _emscripten_bind_Encoder_SetAttributeQuantization_2 _emscripten_bind_Encoder_SetAttributeExplicitQuantization_5 _emscripten_bind_Encoder_SetSpeedOptions_2 _emscripten_bind_Encoder_SetTrackEncodedProperties_1 _emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2 _emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3 _emscripten_bind_Encoder_GetNumberOfEncodedPoints_0 _emscripten_bind_Encoder_GetNumberOfEncodedFaces_0 _emscripten_bind_Encoder___destroy___0 _emscripten_bind_ExpertEncoder_ExpertEncoder_1 _emscripten_bind_ExpertEncoder_SetEncodingMethod_1 _emscripten_bind_ExpertEncoder_SetAttributeQuantization_2 _emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5 _emscripten_bind_ExpertEncoder_SetSpeedOptions_2 _emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1 _emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2 _emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0 _emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0 _emscripten_bind_ExpertEncoder___destroy___0 _emscripten_enum_draco_GeometryAttribute_Type_INVALID _emscripten_enum_draco_GeometryAttribute_Type_POSITION _emscripten_enum_draco_GeometryAttribute_Type_NORMAL _emscripten_enum_draco_GeometryAttribute_Type_COLOR _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD _emscripten_enum_draco_GeometryAttribute_Type_GENERIC _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH _emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING _emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING _fflush onRuntimeInitialized".split(" ").forEach(function(e){Object.getOwnPropertyDescriptor(c.ready,
e)||Object.defineProperty(c.ready,e,{get:function(){return A("You are getting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")},set:function(){return A("You are setting "+e+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")}})});var Qa=!1,Ra=!1;c.onRuntimeInitialized=function(){Qa=!0;if(Ra&&"function"===typeof c.onModuleLoaded)c.onModuleLoaded(c)};
c.onModuleParsed=function(){Ra=!0;if(Qa&&"function"===typeof c.onModuleLoaded)c.onModuleLoaded(c)};c.isVersionSupported=function(e){if("string"!==typeof e)return!1;e=e.split(".");return 2>e.length||3<e.length?!1:1==e[0]&&0<=e[1]&&5>=e[1]?!0:0!=e[0]||10<e[1]?!1:!0};var Sa=Object.assign({},c),Ea="object"==typeof window,fa="function"==typeof importScripts,ua="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,Ta=!Ea&&!ua&&!fa;if(c.ENVIRONMENT)throw Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)");
var S="";if(ua){if("undefined"==typeof process||!process.release||"node"!==process.release.name)throw Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");S=fa?require("path").dirname(S)+"/":__dirname+"/";if("function"===typeof require){var Ua=require("fs");var Va=require("path")}var Ha=function(e,a){e=Va.normalize(e);return Ua.readFileSync(e,a?void 0:"utf8")};
var ka=function(e){e=Ha(e,!0);e.buffer||(e=new Uint8Array(e));t(e.buffer);return e};var ta=function(e,a,b){e=Va.normalize(e);Ua.readFile(e,function(d,f){d?b(d):a(f.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/");process.argv.slice(2);c.inspect=function(){return"[Emscripten Module object]"}}else if(Ta){if("object"==typeof process&&"function"===typeof require||"object"==typeof window||"function"==typeof importScripts)throw Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");
"undefined"!=typeof read&&(Ha=function(e){return read(e)});ka=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));e=read(e,"binary");t("object"==typeof e);return e};ta=function(e,a,b){setTimeout(function(){return a(ka(e))},0)};"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print)}else if(Ea||fa){fa?S=self.location.href:"undefined"!=typeof document&&document.currentScript&&
(S=document.currentScript.src);n&&(S=n);S=0!==S.indexOf("blob:")?S.substr(0,S.replace(/[?#].*/,"").lastIndexOf("/")+1):"";if("object"!=typeof window&&"function"!=typeof importScripts)throw Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");Ha=function(e){var a=new XMLHttpRequest;a.open("GET",e,!1);a.send(null);return a.responseText};fa&&(ka=function(e){var a=
new XMLHttpRequest;a.open("GET",e,!1);a.responseType="arraybuffer";a.send(null);return new Uint8Array(a.response)});ta=function(e,a,b){var d=new XMLHttpRequest;d.open("GET",e,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?a(d.response):b()};d.onerror=b;d.send(null)}}else throw Error("environment detection error");var nb=c.print||console.log.bind(console),J=c.printErr||console.warn.bind(console);Object.assign(c,Sa);Sa=null;(function(e){Object.getOwnPropertyDescriptor(c,
e)&&A("`Module."+e+"` was supplied but `"+e+"` not included in INCOMING_MODULE_JS_API")})("fetchSettings");q("arguments","arguments_");q("thisProgram","thisProgram");q("quit","quit_");t("undefined"==typeof c.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead");t("undefined"==typeof c.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead");t("undefined"==typeof c.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead");
t("undefined"==typeof c.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead");t("undefined"==typeof c.read,"Module.read option was removed (modify read_ in JS)");t("undefined"==typeof c.readAsync,"Module.readAsync option was removed (modify readAsync in JS)");t("undefined"==typeof c.readBinary,"Module.readBinary option was removed (modify readBinary in JS)");t("undefined"==typeof c.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)");
t("undefined"==typeof c.TOTAL_MEMORY,"Module.TOTAL_MEMORY has been renamed Module.INITIAL_MEMORY");q("read","read_");q("readAsync","readAsync");q("readBinary","readBinary");q("setWindowTitle","setWindowTitle");t(!Ta,"shell environment detected but not enabled at build time. Add 'shell' to `-sENVIRONMENT` to enable.");var ja;c.wasmBinary&&(ja=c.wasmBinary);q("wasmBinary","wasmBinary");q("noExitRuntime","noExitRuntime");"object"!=typeof WebAssembly&&A("no native wasm support detected");var na,qa=!1,
Wa="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Aa,W,pa,Ba,Z,H,Ca;c.TOTAL_STACK&&t(5242880===c.TOTAL_STACK,"the stack size can no longer be determined at runtime");var Ia=c.INITIAL_MEMORY||16777216;q("INITIAL_MEMORY","INITIAL_MEMORY");t(5242880<=Ia,"INITIAL_MEMORY should be larger than TOTAL_STACK, was "+Ia+"! (TOTAL_STACK=5242880)");t("undefined"!=typeof Int32Array&&"undefined"!==typeof Float64Array&&void 0!=Int32Array.prototype.subarray&&void 0!=Int32Array.prototype.set,"JS engine does not provide full typed array support");
t(!c.wasmMemory,"Use of `wasmMemory` detected. Use -sIMPORTED_MEMORY to define wasmMemory externally");t(16777216==Ia,"Detected runtime INITIAL_MEMORY setting. Use -sIMPORTED_MEMORY to define wasmMemory dynamically");var Xa;(function(){var e=new Int16Array(1),a=new Int8Array(e.buffer);e[0]=25459;if(115!==a[0]||99!==a[1])throw"Runtime error: expected the system to be little-endian! (Run with -sSUPPORT_BIG_ENDIAN to bypass)";})();var Pa=[],Fa=[],Na=[],sa=!1;t(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");
t(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");t(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");t(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var ba=0,ca=null,oa=null,ia={},Q={error:function(){A("Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -sFORCE_FILESYSTEM")},
init:function(){Q.error()},createDataFile:function(){Q.error()},createPreloadedFile:function(){Q.error()},createLazyFile:function(){Q.error()},open:function(){Q.error()},mkdev:function(){Q.error()},registerDevice:function(){Q.error()},analyzePath:function(){Q.error()},loadFilesFromDB:function(){Q.error()},ErrnoError:function(){Q.error()}};c.FS_createDataFile=Q.createDataFile;c.FS_createPreloadedFile=Q.createPreloadedFile;var K="draco_encoder.wasm";K.startsWith("data:application/octet-stream;base64,")||
(K=l(K));var ob=0,pb=[null,[],[]],$a={__cxa_allocate_exception:function(e){return qb(e+24)+24},__cxa_throw:function(e,a,b){(new ab(e)).init(a,b);ob++;throw e+" - Exception catching is disabled, this exception cannot be caught. Compile with -sNO_DISABLE_EXCEPTION_CATCHING or -sEXCEPTION_CATCHING_ALLOWED=[..] to catch.";},abort:function(){A("native code called abort()")},array_bounds_check_error:function(e,a){throw"Array index "+e+" out of bounds: [0,"+a+")";},emscripten_memcpy_big:function(e,a,b){pa.copyWithin(e,
a,a+b)},emscripten_resize_heap:function(e){var a=pa.length;e>>>=0;t(e>a);if(2147483648<e)return J("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is 2147483648 bytes!"),!1;for(var b=1;4>=b;b*=2){var d=a*(1+.2/b);d=Math.min(d,e+100663296);var f=Math;d=Math.max(e,d);f=f.min.call(f,2147483648,d+(65536-d%65536)%65536);a:{d=f;try{na.grow(d-Aa.byteLength+65535>>>16);m(na.buffer);var g=1;break a}catch(u){J("emscripten_realloc_buffer: Attempted to grow heap from "+Aa.byteLength+" bytes to "+
d+" bytes, but got error: "+u)}g=void 0}if(g)return!0}J("Failed to grow the heap from "+a+" bytes to "+f+" bytes, not enough memory!");return!1},fd_close:function(e){A("fd_close called without SYSCALLS_REQUIRE_FILESYSTEM")},fd_seek:function(e,a,b,d,f){return 70},fd_write:function(e,a,b,d){for(var f=0,g=0;g<b;g++){var u=H[a>>2],Ya=H[a+4>>2];a+=8;for(var Ja=0;Ja<Ya;Ja++){var ya=e,O=pa[u+Ja],za=pb[ya];t(za);if(0===O||10===O){ya=1===ya?nb:J;O=za;for(var Y=0,ea=Y+void 0,ha=Y;O[ha]&&!(ha>=ea);)++ha;if(16<
ha-Y&&O.buffer&&Wa)O=Wa.decode(O.subarray(Y,ha));else{for(ea="";Y<ha;){var I=O[Y++];if(I&128){var Ka=O[Y++]&63;if(192==(I&224))ea+=String.fromCharCode((I&31)<<6|Ka);else{var Za=O[Y++]&63;224==(I&240)?I=(I&15)<<12|Ka<<6|Za:(240!=(I&248)&&R("Invalid UTF-8 leading byte 0x"+I.toString(16)+" encountered when deserializing a UTF-8 string in wasm memory to a JS string!"),I=(I&7)<<18|Ka<<12|Za<<6|O[Y++]&63);65536>I?ea+=String.fromCharCode(I):(I-=65536,ea+=String.fromCharCode(55296|I>>10,56320|I&1023))}}else ea+=
String.fromCharCode(I)}O=ea}ya(O);za.length=0}else za.push(O)}f+=Ya}H[d>>2]=f;return 0}};(function(){function e(g,u){c.asm=g.exports;na=c.asm.memory;t(na,"memory not found in wasm exports");m(na.buffer);Xa=c.asm.__indirect_function_table;t(Xa,"table not found in wasm exports");Fa.unshift(c.asm.__wasm_call_ctors);ba--;c.monitorRunDependencies&&c.monitorRunDependencies(ba);t(ia["wasm-instantiate"]);delete ia["wasm-instantiate"];0==ba&&(null!==ca&&(clearInterval(ca),ca=null),oa&&(g=oa,oa=null,g()))}
function a(g){t(c===f,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?");f=null;e(g.instance)}function b(g){return V().then(function(u){return WebAssembly.instantiate(u,d)}).then(function(u){return u}).then(g,function(u){J("failed to asynchronously prepare wasm: "+u);K.startsWith("file://")&&J("warning: Loading from a file URI ("+K+") is not supported in most browsers. See https://emscripten.org/docs/getting_started/FAQ.html#how-do-i-run-a-local-webserver-for-testing-why-does-my-program-stall-in-downloading-or-preparing");
A(u)})}var d={env:$a,wasi_snapshot_preview1:$a};E("wasm-instantiate");var f=c;if(c.instantiateWasm)try{return c.instantiateWasm(d,e)}catch(g){J("Module.instantiateWasm callback failed with error: "+g),ra(g)}(function(){return ja||"function"!=typeof WebAssembly.instantiateStreaming||K.startsWith("data:application/octet-stream;base64,")||K.startsWith("file://")||ua||"function"!=typeof fetch?b(a):fetch(K,{credentials:"same-origin"}).then(function(g){return WebAssembly.instantiateStreaming(g,d).then(a,
function(u){J("wasm streaming compile failed: "+u);J("falling back to ArrayBuffer instantiation");return b(a)})})})().catch(ra);return{}})();c.___wasm_call_ctors=h("__wasm_call_ctors");var rb=c._emscripten_bind_VoidPtr___destroy___0=h("emscripten_bind_VoidPtr___destroy___0"),cb=c._emscripten_bind_GeometryAttribute_GeometryAttribute_0=h("emscripten_bind_GeometryAttribute_GeometryAttribute_0"),sb=c._emscripten_bind_GeometryAttribute___destroy___0=h("emscripten_bind_GeometryAttribute___destroy___0"),
db=c._emscripten_bind_PointAttribute_PointAttribute_0=h("emscripten_bind_PointAttribute_PointAttribute_0"),tb=c._emscripten_bind_PointAttribute_size_0=h("emscripten_bind_PointAttribute_size_0"),ub=c._emscripten_bind_PointAttribute_attribute_type_0=h("emscripten_bind_PointAttribute_attribute_type_0"),vb=c._emscripten_bind_PointAttribute_data_type_0=h("emscripten_bind_PointAttribute_data_type_0"),wb=c._emscripten_bind_PointAttribute_num_components_0=h("emscripten_bind_PointAttribute_num_components_0"),
xb=c._emscripten_bind_PointAttribute_normalized_0=h("emscripten_bind_PointAttribute_normalized_0"),yb=c._emscripten_bind_PointAttribute_byte_stride_0=h("emscripten_bind_PointAttribute_byte_stride_0"),zb=c._emscripten_bind_PointAttribute_byte_offset_0=h("emscripten_bind_PointAttribute_byte_offset_0"),Ab=c._emscripten_bind_PointAttribute_unique_id_0=h("emscripten_bind_PointAttribute_unique_id_0"),Bb=c._emscripten_bind_PointAttribute___destroy___0=h("emscripten_bind_PointAttribute___destroy___0"),eb=
c._emscripten_bind_PointCloud_PointCloud_0=h("emscripten_bind_PointCloud_PointCloud_0"),Cb=c._emscripten_bind_PointCloud_num_attributes_0=h("emscripten_bind_PointCloud_num_attributes_0"),Db=c._emscripten_bind_PointCloud_num_points_0=h("emscripten_bind_PointCloud_num_points_0"),Eb=c._emscripten_bind_PointCloud___destroy___0=h("emscripten_bind_PointCloud___destroy___0"),fb=c._emscripten_bind_Mesh_Mesh_0=h("emscripten_bind_Mesh_Mesh_0"),Fb=c._emscripten_bind_Mesh_num_faces_0=h("emscripten_bind_Mesh_num_faces_0"),
Gb=c._emscripten_bind_Mesh_num_attributes_0=h("emscripten_bind_Mesh_num_attributes_0"),Hb=c._emscripten_bind_Mesh_num_points_0=h("emscripten_bind_Mesh_num_points_0"),Ib=c._emscripten_bind_Mesh_set_num_points_1=h("emscripten_bind_Mesh_set_num_points_1"),Jb=c._emscripten_bind_Mesh___destroy___0=h("emscripten_bind_Mesh___destroy___0"),gb=c._emscripten_bind_Metadata_Metadata_0=h("emscripten_bind_Metadata_Metadata_0"),Kb=c._emscripten_bind_Metadata___destroy___0=h("emscripten_bind_Metadata___destroy___0"),
hb=c._emscripten_bind_DracoInt8Array_DracoInt8Array_0=h("emscripten_bind_DracoInt8Array_DracoInt8Array_0"),Lb=c._emscripten_bind_DracoInt8Array_GetValue_1=h("emscripten_bind_DracoInt8Array_GetValue_1"),Mb=c._emscripten_bind_DracoInt8Array_size_0=h("emscripten_bind_DracoInt8Array_size_0"),Nb=c._emscripten_bind_DracoInt8Array___destroy___0=h("emscripten_bind_DracoInt8Array___destroy___0"),ib=c._emscripten_bind_MetadataBuilder_MetadataBuilder_0=h("emscripten_bind_MetadataBuilder_MetadataBuilder_0"),
Ob=c._emscripten_bind_MetadataBuilder_AddStringEntry_3=h("emscripten_bind_MetadataBuilder_AddStringEntry_3"),Pb=c._emscripten_bind_MetadataBuilder_AddIntEntry_3=h("emscripten_bind_MetadataBuilder_AddIntEntry_3"),Qb=c._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=h("emscripten_bind_MetadataBuilder_AddIntEntryArray_4"),Rb=c._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=h("emscripten_bind_MetadataBuilder_AddDoubleEntry_3"),Sb=c._emscripten_bind_MetadataBuilder___destroy___0=h("emscripten_bind_MetadataBuilder___destroy___0"),
jb=c._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=h("emscripten_bind_PointCloudBuilder_PointCloudBuilder_0"),Tb=c._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=h("emscripten_bind_PointCloudBuilder_AddFloatAttribute_5"),Ub=c._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=h("emscripten_bind_PointCloudBuilder_AddInt8Attribute_5"),Vb=c._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=h("emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5"),Wb=c._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=
h("emscripten_bind_PointCloudBuilder_AddInt16Attribute_5"),Xb=c._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=h("emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5"),Yb=c._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=h("emscripten_bind_PointCloudBuilder_AddInt32Attribute_5"),Zb=c._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=h("emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5"),$b=c._emscripten_bind_PointCloudBuilder_AddMetadata_2=h("emscripten_bind_PointCloudBuilder_AddMetadata_2"),
ac=c._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=h("emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3"),bc=c._emscripten_bind_PointCloudBuilder___destroy___0=h("emscripten_bind_PointCloudBuilder___destroy___0"),kb=c._emscripten_bind_MeshBuilder_MeshBuilder_0=h("emscripten_bind_MeshBuilder_MeshBuilder_0"),cc=c._emscripten_bind_MeshBuilder_AddFacesToMesh_3=h("emscripten_bind_MeshBuilder_AddFacesToMesh_3"),dc=c._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=h("emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5"),
ec=c._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=h("emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5"),fc=c._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=h("emscripten_bind_MeshBuilder_AddMetadataToMesh_2"),gc=c._emscripten_bind_MeshBuilder_AddFloatAttribute_5=h("emscripten_bind_MeshBuilder_AddFloatAttribute_5"),hc=c._emscripten_bind_MeshBuilder_AddInt8Attribute_5=h("emscripten_bind_MeshBuilder_AddInt8Attribute_5"),ic=c._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=h("emscripten_bind_MeshBuilder_AddUInt8Attribute_5"),
jc=c._emscripten_bind_MeshBuilder_AddInt16Attribute_5=h("emscripten_bind_MeshBuilder_AddInt16Attribute_5"),kc=c._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=h("emscripten_bind_MeshBuilder_AddUInt16Attribute_5"),lc=c._emscripten_bind_MeshBuilder_AddInt32Attribute_5=h("emscripten_bind_MeshBuilder_AddInt32Attribute_5"),mc=c._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=h("emscripten_bind_MeshBuilder_AddUInt32Attribute_5"),nc=c._emscripten_bind_MeshBuilder_AddMetadata_2=h("emscripten_bind_MeshBuilder_AddMetadata_2"),
oc=c._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=h("emscripten_bind_MeshBuilder_SetMetadataForAttribute_3"),pc=c._emscripten_bind_MeshBuilder___destroy___0=h("emscripten_bind_MeshBuilder___destroy___0"),lb=c._emscripten_bind_Encoder_Encoder_0=h("emscripten_bind_Encoder_Encoder_0"),qc=c._emscripten_bind_Encoder_SetEncodingMethod_1=h("emscripten_bind_Encoder_SetEncodingMethod_1"),rc=c._emscripten_bind_Encoder_SetAttributeQuantization_2=h("emscripten_bind_Encoder_SetAttributeQuantization_2"),
sc=c._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=h("emscripten_bind_Encoder_SetAttributeExplicitQuantization_5"),tc=c._emscripten_bind_Encoder_SetSpeedOptions_2=h("emscripten_bind_Encoder_SetSpeedOptions_2"),uc=c._emscripten_bind_Encoder_SetTrackEncodedProperties_1=h("emscripten_bind_Encoder_SetTrackEncodedProperties_1"),vc=c._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=h("emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2"),wc=c._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=
h("emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3"),xc=c._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=h("emscripten_bind_Encoder_GetNumberOfEncodedPoints_0"),yc=c._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=h("emscripten_bind_Encoder_GetNumberOfEncodedFaces_0"),zc=c._emscripten_bind_Encoder___destroy___0=h("emscripten_bind_Encoder___destroy___0"),mb=c._emscripten_bind_ExpertEncoder_ExpertEncoder_1=h("emscripten_bind_ExpertEncoder_ExpertEncoder_1"),Ac=c._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=
h("emscripten_bind_ExpertEncoder_SetEncodingMethod_1"),Bc=c._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=h("emscripten_bind_ExpertEncoder_SetAttributeQuantization_2"),Cc=c._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=h("emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5"),Dc=c._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=h("emscripten_bind_ExpertEncoder_SetSpeedOptions_2"),Ec=c._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=h("emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1"),
Fc=c._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=h("emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2"),Gc=c._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=h("emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0"),Hc=c._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=h("emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0"),Ic=c._emscripten_bind_ExpertEncoder___destroy___0=h("emscripten_bind_ExpertEncoder___destroy___0"),Jc=c._emscripten_enum_draco_GeometryAttribute_Type_INVALID=
h("emscripten_enum_draco_GeometryAttribute_Type_INVALID"),Kc=c._emscripten_enum_draco_GeometryAttribute_Type_POSITION=h("emscripten_enum_draco_GeometryAttribute_Type_POSITION"),Lc=c._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=h("emscripten_enum_draco_GeometryAttribute_Type_NORMAL"),Mc=c._emscripten_enum_draco_GeometryAttribute_Type_COLOR=h("emscripten_enum_draco_GeometryAttribute_Type_COLOR"),Nc=c._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=h("emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"),
Oc=c._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=h("emscripten_enum_draco_GeometryAttribute_Type_GENERIC"),Pc=c._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=h("emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"),Qc=c._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=h("emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"),Rc=c._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=h("emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"),
Sc=c._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=h("emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING"),Tc=c._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=h("emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING");c.___errno_location=h("__errno_location");c._fflush=h("fflush");var qb=c._malloc=h("malloc");c._free=h("free");var Oa=c._emscripten_stack_init=function(){return(Oa=c._emscripten_stack_init=c.asm.emscripten_stack_init).apply(null,
arguments)};c._emscripten_stack_get_free=function(){return(c._emscripten_stack_get_free=c.asm.emscripten_stack_get_free).apply(null,arguments)};c._emscripten_stack_get_base=function(){return(c._emscripten_stack_get_base=c.asm.emscripten_stack_get_base).apply(null,arguments)};var Da=c._emscripten_stack_get_end=function(){return(Da=c._emscripten_stack_get_end=c.asm.emscripten_stack_get_end).apply(null,arguments)};c.stackSave=h("stackSave");c.stackRestore=h("stackRestore");c.stackAlloc=h("stackAlloc");
var bb=c.___cxa_is_pointer_type=h("__cxa_is_pointer_type");c.dynCall_jiji=h("dynCall_jiji");c.___start_em_js=19268;c.___stop_em_js=19366;"run UTF8ArrayToString UTF8ToString stringToUTF8Array stringToUTF8 lengthBytesUTF8 addOnPreRun addOnInit addOnPreMain addOnExit addOnPostRun addRunDependency removeRunDependency FS_createFolder FS_createPath FS_createDataFile FS_createPreloadedFile FS_createLazyFile FS_createLink FS_createDevice FS_unlink getLEB getFunctionTables alignFunctionTables registerFunctions prettyPrint getCompilerSetting print printErr callMain abort keepRuntimeAlive wasmMemory stackAlloc stackSave stackRestore getTempRet0 setTempRet0 writeStackCookie checkStackCookie ptrToString zeroMemory stringToNewUTF8 exitJS getHeapMax emscripten_realloc_buffer ENV ERRNO_CODES ERRNO_MESSAGES setErrNo inetPton4 inetNtop4 inetPton6 inetNtop6 readSockaddr writeSockaddr DNS getHostByName Protocols Sockets getRandomDevice warnOnce traverseStack UNWIND_CACHE convertPCtoSourceLocation readAsmConstArgsArray readAsmConstArgs mainThreadEM_ASM jstoi_q jstoi_s getExecutableName listenOnce autoResumeAudioContext dynCallLegacy getDynCaller dynCall handleException runtimeKeepalivePush runtimeKeepalivePop callUserCallback maybeExit safeSetTimeout asmjsMangle asyncLoad alignMemory mmapAlloc writeI53ToI64 writeI53ToI64Clamped writeI53ToI64Signaling writeI53ToU64Clamped writeI53ToU64Signaling readI53FromI64 readI53FromU64 convertI32PairToI53 convertI32PairToI53Checked convertU32PairToI53 getCFunc ccall cwrap uleb128Encode sigToWasmTypes generateFuncType convertJsFunctionToWasm freeTableIndexes functionsInTableMap getEmptyTableSlot updateTableMap addFunction removeFunction reallyNegative unSign strLen reSign formatString setValue getValue PATH PATH_FS intArrayFromString intArrayToString AsciiToString stringToAscii UTF16Decoder UTF16ToString stringToUTF16 lengthBytesUTF16 UTF32ToString stringToUTF32 lengthBytesUTF32 allocateUTF8 allocateUTF8OnStack writeStringToMemory writeArrayToMemory writeAsciiToMemory SYSCALLS getSocketFromFD getSocketAddress JSEvents registerKeyEventCallback specialHTMLTargets maybeCStringToJsString findEventTarget findCanvasEventTarget getBoundingClientRect fillMouseEventData registerMouseEventCallback registerWheelEventCallback registerUiEventCallback registerFocusEventCallback fillDeviceOrientationEventData registerDeviceOrientationEventCallback fillDeviceMotionEventData registerDeviceMotionEventCallback screenOrientation fillOrientationChangeEventData registerOrientationChangeEventCallback fillFullscreenChangeEventData registerFullscreenChangeEventCallback JSEvents_requestFullscreen JSEvents_resizeCanvasForFullscreen registerRestoreOldStyle hideEverythingExceptGivenElement restoreHiddenElements setLetterbox currentFullscreenStrategy restoreOldWindowedStyle softFullscreenResizeWebGLRenderTarget doRequestFullscreen fillPointerlockChangeEventData registerPointerlockChangeEventCallback registerPointerlockErrorEventCallback requestPointerLock fillVisibilityChangeEventData registerVisibilityChangeEventCallback registerTouchEventCallback fillGamepadEventData registerGamepadEventCallback registerBeforeUnloadEventCallback fillBatteryEventData battery registerBatteryEventCallback setCanvasElementSize getCanvasElementSize demangle demangleAll jsStackTrace stackTrace ExitStatus getEnvStrings checkWasiClock flush_NO_FILESYSTEM dlopenMissingError createDyncallWrapper setImmediateWrapped clearImmediateWrapped polyfillSetImmediate uncaughtExceptionCount exceptionLast exceptionCaught ExceptionInfo exception_addRef exception_decRef Browser setMainLoop wget tempFixedLengthArray miniTempWebGLFloatBuffers heapObjectForWebGLType heapAccessShiftForWebGLHeap GL emscriptenWebGLGet computeUnpackAlignedImageSize emscriptenWebGLGetTexPixelData emscriptenWebGLGetUniform webglGetUniformLocation webglPrepareUniformLocationsBeforeFirstUse webglGetLeftBracePos emscriptenWebGLGetVertexAttrib writeGLArray AL SDL_unicode SDL_ttfContext SDL_audio SDL SDL_gfx GLUT EGL GLFW_Window GLFW GLEW IDBStore runAndAbortIfError ALLOC_NORMAL ALLOC_STACK allocate".split(" ").forEach(function(e){Object.getOwnPropertyDescriptor(c,
e)||Object.defineProperty(c,e,{configurable:!0,get:function(){var a="'"+e+"' was not exported. add it to EXPORTED_RUNTIME_METHODS (see the FAQ)";p(e)&&(a+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");A(a)}})});"ptrToString zeroMemory stringToNewUTF8 exitJS setErrNo inetPton4 inetNtop4 inetPton6 inetNtop6 readSockaddr writeSockaddr getHostByName getRandomDevice traverseStack convertPCtoSourceLocation readAsmConstArgs mainThreadEM_ASM jstoi_q jstoi_s getExecutableName listenOnce autoResumeAudioContext dynCallLegacy getDynCaller dynCall handleException runtimeKeepalivePush runtimeKeepalivePop callUserCallback maybeExit safeSetTimeout asmjsMangle asyncLoad alignMemory mmapAlloc writeI53ToI64 writeI53ToI64Clamped writeI53ToI64Signaling writeI53ToU64Clamped writeI53ToU64Signaling readI53FromI64 readI53FromU64 convertI32PairToI53 convertU32PairToI53 getCFunc ccall cwrap uleb128Encode sigToWasmTypes generateFuncType convertJsFunctionToWasm getEmptyTableSlot updateTableMap addFunction removeFunction reallyNegative unSign strLen reSign formatString intArrayToString AsciiToString stringToAscii UTF16ToString stringToUTF16 lengthBytesUTF16 UTF32ToString stringToUTF32 lengthBytesUTF32 allocateUTF8 allocateUTF8OnStack writeStringToMemory writeArrayToMemory writeAsciiToMemory getSocketFromFD getSocketAddress registerKeyEventCallback maybeCStringToJsString findEventTarget findCanvasEventTarget getBoundingClientRect fillMouseEventData registerMouseEventCallback registerWheelEventCallback registerUiEventCallback registerFocusEventCallback fillDeviceOrientationEventData registerDeviceOrientationEventCallback fillDeviceMotionEventData registerDeviceMotionEventCallback screenOrientation fillOrientationChangeEventData registerOrientationChangeEventCallback fillFullscreenChangeEventData registerFullscreenChangeEventCallback JSEvents_requestFullscreen JSEvents_resizeCanvasForFullscreen registerRestoreOldStyle hideEverythingExceptGivenElement restoreHiddenElements setLetterbox softFullscreenResizeWebGLRenderTarget doRequestFullscreen fillPointerlockChangeEventData registerPointerlockChangeEventCallback registerPointerlockErrorEventCallback requestPointerLock fillVisibilityChangeEventData registerVisibilityChangeEventCallback registerTouchEventCallback fillGamepadEventData registerGamepadEventCallback registerBeforeUnloadEventCallback fillBatteryEventData battery registerBatteryEventCallback setCanvasElementSize getCanvasElementSize demangle demangleAll jsStackTrace stackTrace getEnvStrings checkWasiClock createDyncallWrapper setImmediateWrapped clearImmediateWrapped polyfillSetImmediate exception_addRef exception_decRef setMainLoop heapObjectForWebGLType heapAccessShiftForWebGLHeap emscriptenWebGLGet computeUnpackAlignedImageSize emscriptenWebGLGetTexPixelData emscriptenWebGLGetUniform webglGetUniformLocation webglPrepareUniformLocationsBeforeFirstUse webglGetLeftBracePos emscriptenWebGLGetVertexAttrib writeGLArray SDL_unicode SDL_ttfContext SDL_audio GLFW_Window runAndAbortIfError ALLOC_NORMAL ALLOC_STACK allocate".split(" ").forEach(function(e){"undefined"===
typeof globalThis||Object.getOwnPropertyDescriptor(globalThis,e)||Object.defineProperty(globalThis,e,{configurable:!0,get:function(){var a="`"+e+"` is a library symbol and not included by default; add it to your library.js __deps or to DEFAULT_LIBRARY_FUNCS_TO_INCLUDE on the command line",b=e;b.startsWith("_")||(b="$"+e);a+=" (e.g. -sDEFAULT_LIBRARY_FUNCS_TO_INCLUDE="+b+")";p(e)&&(a+=". Alternatively, forcing filesystem support (-sFORCE_FILESYSTEM) can export this for you");R(a)}})});var va;oa=function a(){va||
La();va||(oa=a)};if(c.preInit)for("function"==typeof c.preInit&&(c.preInit=[c.preInit]);0<c.preInit.length;)c.preInit.pop()();La();D.prototype=Object.create(D.prototype);D.prototype.constructor=D;D.prototype.__class__=D;D.__cache__={};c.WrapperObject=D;c.getCache=L;c.wrapPointer=Ga;c.castObject=function(a,b){return Ga(a.ptr,b)};c.NULL=Ga(0);c.destroy=function(a){if(!a.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";a.__destroy__();delete L(a.__class__)[a.ptr]};c.compare=
function(a,b){return a.ptr===b.ptr};c.getPointer=function(a){return a.ptr};c.getClass=function(a){return a.__class__};var r={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(r.needed){for(var a=0;a<r.temps.length;a++)c._free(r.temps[a]);r.temps.length=0;c._free(r.buffer);r.buffer=0;r.size+=r.needed;r.needed=0}r.buffer||(r.size+=128,r.buffer=c._malloc(r.size),t(r.buffer));r.pos=0},alloc:function(a,b){t(r.buffer);a=a.length*b.BYTES_PER_ELEMENT;a=a+7&-8;r.pos+a>=r.size?(t(0<a),r.needed+=
a,b=c._malloc(a),r.temps.push(b)):(b=r.buffer+r.pos,r.pos+=a);return b},copy:function(a,b,d){d>>>=0;switch(b.BYTES_PER_ELEMENT){case 2:d>>>=1;break;case 4:d>>>=2;break;case 8:d>>>=3}for(var f=0;f<a.length;f++)b[d+f]=a[f]}};X.prototype=Object.create(D.prototype);X.prototype.constructor=X;X.prototype.__class__=X;X.__cache__={};c.VoidPtr=X;X.prototype.__destroy__=X.prototype.__destroy__=function(){rb(this.ptr)};T.prototype=Object.create(D.prototype);T.prototype.constructor=T;T.prototype.__class__=T;
T.__cache__={};c.GeometryAttribute=T;T.prototype.__destroy__=T.prototype.__destroy__=function(){sb(this.ptr)};B.prototype=Object.create(D.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};c.PointAttribute=B;B.prototype.size=B.prototype.size=function(){return tb(this.ptr)};B.prototype.attribute_type=B.prototype.attribute_type=function(){return ub(this.ptr)};B.prototype.data_type=B.prototype.data_type=function(){return vb(this.ptr)};B.prototype.num_components=B.prototype.num_components=
function(){return wb(this.ptr)};B.prototype.normalized=B.prototype.normalized=function(){return!!xb(this.ptr)};B.prototype.byte_stride=B.prototype.byte_stride=function(){return yb(this.ptr)};B.prototype.byte_offset=B.prototype.byte_offset=function(){return zb(this.ptr)};B.prototype.unique_id=B.prototype.unique_id=function(){return Ab(this.ptr)};B.prototype.__destroy__=B.prototype.__destroy__=function(){Bb(this.ptr)};M.prototype=Object.create(D.prototype);M.prototype.constructor=M;M.prototype.__class__=
M;M.__cache__={};c.PointCloud=M;M.prototype.num_attributes=M.prototype.num_attributes=function(){return Cb(this.ptr)};M.prototype.num_points=M.prototype.num_points=function(){return Db(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){Eb(this.ptr)};F.prototype=Object.create(D.prototype);F.prototype.constructor=F;F.prototype.__class__=F;F.__cache__={};c.Mesh=F;F.prototype.num_faces=F.prototype.num_faces=function(){return Fb(this.ptr)};F.prototype.num_attributes=F.prototype.num_attributes=
function(){return Gb(this.ptr)};F.prototype.num_points=F.prototype.num_points=function(){return Hb(this.ptr)};F.prototype.set_num_points=F.prototype.set_num_points=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);Ib(b,a)};F.prototype.__destroy__=F.prototype.__destroy__=function(){Jb(this.ptr)};U.prototype=Object.create(D.prototype);U.prototype.constructor=U;U.prototype.__class__=U;U.__cache__={};c.Metadata=U;U.prototype.__destroy__=U.prototype.__destroy__=function(){Kb(this.ptr)};N.prototype=
Object.create(D.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};c.DracoInt8Array=N;N.prototype.GetValue=N.prototype.GetValue=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Lb(b,a)};N.prototype.size=N.prototype.size=function(){return Mb(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){Nb(this.ptr)};G.prototype=Object.create(D.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};c.MetadataBuilder=G;G.prototype.AddStringEntry=
G.prototype.AddStringEntry=function(a,b,d){var f=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:la(b);d=d&&"object"===typeof d?d.ptr:la(d);return!!Ob(f,a,b,d)};G.prototype.AddIntEntry=G.prototype.AddIntEntry=function(a,b,d){var f=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:la(b);d&&"object"===typeof d&&(d=d.ptr);return!!Pb(f,a,b,d)};G.prototype.AddIntEntryArray=G.prototype.AddIntEntryArray=function(a,b,d,f){var g=this.ptr;
r.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:la(b);"object"==typeof d&&(d=da(d));f&&"object"===typeof f&&(f=f.ptr);return!!Qb(g,a,b,d,f)};G.prototype.AddDoubleEntry=G.prototype.AddDoubleEntry=function(a,b,d){var f=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b=b&&"object"===typeof b?b.ptr:la(b);d&&"object"===typeof d&&(d=d.ptr);return!!Rb(f,a,b,d)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Sb(this.ptr)};y.prototype=Object.create(D.prototype);
y.prototype.constructor=y;y.prototype.__class__=y;y.__cache__={};c.PointCloudBuilder=y;y.prototype.AddFloatAttribute=y.prototype.AddFloatAttribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=ma(g));return Tb(u,a,b,d,f,g)};y.prototype.AddInt8Attribute=y.prototype.AddInt8Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===
typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=wa(g));return Ub(u,a,b,d,f,g)};y.prototype.AddUInt8Attribute=y.prototype.AddUInt8Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=wa(g));return Vb(u,a,b,d,f,g)};y.prototype.AddInt16Attribute=
y.prototype.AddInt16Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=xa(g));return Wb(u,a,b,d,f,g)};y.prototype.AddUInt16Attribute=y.prototype.AddUInt16Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&
(f=f.ptr);"object"==typeof g&&(g=xa(g));return Xb(u,a,b,d,f,g)};y.prototype.AddInt32Attribute=y.prototype.AddInt32Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=da(g));return Yb(u,a,b,d,f,g)};y.prototype.AddUInt32Attribute=y.prototype.AddUInt32Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);
b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=da(g));return Zb(u,a,b,d,f,g)};y.prototype.AddMetadata=y.prototype.AddMetadata=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return!!$b(d,a,b)};y.prototype.SetMetadataForAttribute=y.prototype.SetMetadataForAttribute=function(a,b,d){var f=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===
typeof d&&(d=d.ptr);return!!ac(f,a,b,d)};y.prototype.__destroy__=y.prototype.__destroy__=function(){bc(this.ptr)};w.prototype=Object.create(D.prototype);w.prototype.constructor=w;w.prototype.__class__=w;w.__cache__={};c.MeshBuilder=w;w.prototype.AddFacesToMesh=w.prototype.AddFacesToMesh=function(a,b,d){var f=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);"object"==typeof d&&(d=da(d));return!!cc(f,a,b,d)};w.prototype.AddFloatAttributeToMesh=w.prototype.AddFloatAttributeToMesh=
function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=ma(g));return dc(u,a,b,d,f,g)};w.prototype.AddInt32AttributeToMesh=w.prototype.AddInt32AttributeToMesh=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==
typeof g&&(g=da(g));return ec(u,a,b,d,f,g)};w.prototype.AddMetadataToMesh=w.prototype.AddMetadataToMesh=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return!!fc(d,a,b)};w.prototype.AddFloatAttribute=w.prototype.AddFloatAttribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=ma(g));return gc(u,
a,b,d,f,g)};w.prototype.AddInt8Attribute=w.prototype.AddInt8Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=wa(g));return hc(u,a,b,d,f,g)};w.prototype.AddUInt8Attribute=w.prototype.AddUInt8Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&
(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=wa(g));return ic(u,a,b,d,f,g)};w.prototype.AddInt16Attribute=w.prototype.AddInt16Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=xa(g));return jc(u,a,b,d,f,g)};w.prototype.AddUInt16Attribute=w.prototype.AddUInt16Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();
a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=xa(g));return kc(u,a,b,d,f,g)};w.prototype.AddInt32Attribute=w.prototype.AddInt32Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=da(g));return lc(u,a,b,d,f,g)};w.prototype.AddUInt32Attribute=
w.prototype.AddUInt32Attribute=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);f&&"object"===typeof f&&(f=f.ptr);"object"==typeof g&&(g=da(g));return mc(u,a,b,d,f,g)};w.prototype.AddMetadata=w.prototype.AddMetadata=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return!!nc(d,a,b)};w.prototype.SetMetadataForAttribute=w.prototype.SetMetadataForAttribute=
function(a,b,d){var f=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!oc(f,a,b,d)};w.prototype.__destroy__=w.prototype.__destroy__=function(){pc(this.ptr)};z.prototype=Object.create(D.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};c.Encoder=z;z.prototype.SetEncodingMethod=z.prototype.SetEncodingMethod=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);qc(b,a)};z.prototype.SetAttributeQuantization=
z.prototype.SetAttributeQuantization=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);rc(d,a,b)};z.prototype.SetAttributeExplicitQuantization=z.prototype.SetAttributeExplicitQuantization=function(a,b,d,f,g){var u=this.ptr;r.prepare();a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof f&&(f=ma(f));g&&"object"===typeof g&&(g=g.ptr);sc(u,a,b,d,f,g)};z.prototype.SetSpeedOptions=z.prototype.SetSpeedOptions=
function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);tc(d,a,b)};z.prototype.SetTrackEncodedProperties=z.prototype.SetTrackEncodedProperties=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);uc(b,a)};z.prototype.EncodeMeshToDracoBuffer=z.prototype.EncodeMeshToDracoBuffer=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return vc(d,a,b)};z.prototype.EncodePointCloudToDracoBuffer=z.prototype.EncodePointCloudToDracoBuffer=
function(a,b,d){var f=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);return wc(f,a,b,d)};z.prototype.GetNumberOfEncodedPoints=z.prototype.GetNumberOfEncodedPoints=function(){return xc(this.ptr)};z.prototype.GetNumberOfEncodedFaces=z.prototype.GetNumberOfEncodedFaces=function(){return yc(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){zc(this.ptr)};C.prototype=Object.create(D.prototype);C.prototype.constructor=C;
C.prototype.__class__=C;C.__cache__={};c.ExpertEncoder=C;C.prototype.SetEncodingMethod=C.prototype.SetEncodingMethod=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);Ac(b,a)};C.prototype.SetAttributeQuantization=C.prototype.SetAttributeQuantization=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);Bc(d,a,b)};C.prototype.SetAttributeExplicitQuantization=C.prototype.SetAttributeExplicitQuantization=function(a,b,d,f,g){var u=this.ptr;r.prepare();
a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);d&&"object"===typeof d&&(d=d.ptr);"object"==typeof f&&(f=ma(f));g&&"object"===typeof g&&(g=g.ptr);Cc(u,a,b,d,f,g)};C.prototype.SetSpeedOptions=C.prototype.SetSpeedOptions=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);Dc(d,a,b)};C.prototype.SetTrackEncodedProperties=C.prototype.SetTrackEncodedProperties=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);Ec(b,a)};C.prototype.EncodeToDracoBuffer=
C.prototype.EncodeToDracoBuffer=function(a,b){var d=this.ptr;a&&"object"===typeof a&&(a=a.ptr);b&&"object"===typeof b&&(b=b.ptr);return Fc(d,a,b)};C.prototype.GetNumberOfEncodedPoints=C.prototype.GetNumberOfEncodedPoints=function(){return Gc(this.ptr)};C.prototype.GetNumberOfEncodedFaces=C.prototype.GetNumberOfEncodedFaces=function(){return Hc(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){Ic(this.ptr)};(function(){function a(){c.INVALID=Jc();c.POSITION=Kc();c.NORMAL=Lc();c.COLOR=
Mc();c.TEX_COORD=Nc();c.GENERIC=Oc();c.INVALID_GEOMETRY_TYPE=Pc();c.POINT_CLOUD=Qc();c.TRIANGULAR_MESH=Rc();c.MESH_SEQUENTIAL_ENCODING=Sc();c.MESH_EDGEBREAKER_ENCODING=Tc()}sa?a():Fa.unshift(a)})();if("function"===typeof c.onModuleParsed)c.onModuleParsed();return k.ready}}();
"object"===typeof exports&&"object"===typeof module?module.exports=DracoEncoderModule:"function"===typeof define&&define.amd?define([],function(){return DracoEncoderModule}):"object"===typeof exports&&(exports.DracoEncoderModule=DracoEncoderModule);

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -26,7 +26,7 @@ GeometryAttribute::GeometryAttribute()
unique_id_(0) {}
void GeometryAttribute::Init(GeometryAttribute::Type attribute_type,
DataBuffer *buffer, int8_t num_components,
DataBuffer *buffer, uint8_t num_components,
DataType data_type, bool normalized,
int64_t byte_stride, int64_t byte_offset) {
buffer_ = buffer;

View File

@ -15,6 +15,7 @@
#ifndef DRACO_ATTRIBUTES_GEOMETRY_ATTRIBUTE_H_
#define DRACO_ATTRIBUTES_GEOMETRY_ATTRIBUTE_H_
#include <algorithm>
#include <array>
#include <cmath>
#include <limits>
@ -23,6 +24,9 @@
#include "draco/core/data_buffer.h"
#include "draco/core/hash_utils.h"
#include "draco/draco_features.h"
#ifdef DRACO_TRANSCODER_SUPPORTED
#include "draco/core/status.h"
#endif
namespace draco {
@ -70,7 +74,7 @@ class GeometryAttribute {
GeometryAttribute();
// Initializes and enables the attribute.
void Init(Type attribute_type, DataBuffer *buffer, int8_t num_components,
void Init(Type attribute_type, DataBuffer *buffer, uint8_t num_components,
DataType data_type, bool normalized, int64_t byte_stride,
int64_t byte_offset);
bool IsValid() const { return buffer_ != nullptr; }
@ -141,6 +145,17 @@ class GeometryAttribute {
buffer_->Write(byte_pos, value, byte_stride());
}
#ifdef DRACO_TRANSCODER_SUPPORTED
// Sets a value of an attribute entry. The input |value| must have
// |input_num_components| entries and it will be automatically converted to
// the internal format used by the geometry attribute. If the conversion is
// not possible, an error status will be returned.
template <typename InputT>
Status ConvertAndSetAttributeValue(AttributeValueIndex avi,
int input_num_components,
const InputT *value);
#endif
// DEPRECATED: Use
// ConvertValue(AttributeValueIndex att_id,
// int out_num_components,
@ -245,10 +260,11 @@ class GeometryAttribute {
// Returns the number of components that are stored for each entry.
// For position attribute this is usually three (x,y,z),
// while texture coordinates have two components (u,v).
int8_t num_components() const { return num_components_; }
uint8_t num_components() const { return num_components_; }
// Indicates whether the data type should be normalized before interpretation,
// that is, it should be divided by the max value of the data type.
bool normalized() const { return normalized_; }
void set_normalized(bool normalized) { normalized_ = normalized; }
// The buffer storing the entire data of the attribute.
const DataBuffer *buffer() const { return buffer_; }
// Returns the number of bytes between two attribute entries, this is, at
@ -272,7 +288,7 @@ class GeometryAttribute {
// T is the stored attribute data type.
// OutT is the desired data type of the attribute.
template <typename T, typename OutT>
bool ConvertTypedValue(AttributeValueIndex att_id, int8_t out_num_components,
bool ConvertTypedValue(AttributeValueIndex att_id, uint8_t out_num_components,
OutT *out_value) const {
const uint8_t *src_address = GetAddress(att_id);
@ -282,62 +298,10 @@ class GeometryAttribute {
return false;
}
const T in_value = *reinterpret_cast<const T *>(src_address);
// Make sure the |in_value| can be represented as an integral type OutT.
if (std::is_integral<OutT>::value) {
// Make sure the |in_value| fits within the range of values that OutT
// is able to represent. Perform the check only for integral types.
if (!std::is_same<T, bool>::value && std::is_integral<T>::value) {
static constexpr OutT kOutMin =
std::is_signed<T>::value ? std::numeric_limits<OutT>::min() : 0;
if (in_value < kOutMin ||
in_value > std::numeric_limits<OutT>::max()) {
return false;
}
}
// Check conversion of floating point |in_value| to integral value OutT.
if (std::is_floating_point<T>::value) {
// Make sure the floating point |in_value| is not NaN and not Inf as
// integral type OutT is unable to represent these values.
if (sizeof(in_value) > sizeof(double)) {
if (std::isnan(static_cast<long double>(in_value)) ||
std::isinf(static_cast<long double>(in_value))) {
return false;
}
} else if (sizeof(in_value) > sizeof(float)) {
if (std::isnan(static_cast<double>(in_value)) ||
std::isinf(static_cast<double>(in_value))) {
return false;
}
} else {
if (std::isnan(static_cast<float>(in_value)) ||
std::isinf(static_cast<float>(in_value))) {
return false;
}
}
// Make sure the floating point |in_value| fits within the range of
// values that integral type OutT is able to represent.
if (in_value < std::numeric_limits<OutT>::min() ||
in_value >= std::numeric_limits<OutT>::max()) {
return false;
}
}
if (!ConvertComponentValue<T, OutT>(in_value, normalized_,
out_value + i)) {
return false;
}
out_value[i] = static_cast<OutT>(in_value);
// When converting integer to floating point, normalize the value if
// necessary.
if (std::is_integral<T>::value && std::is_floating_point<OutT>::value &&
normalized_) {
out_value[i] /= static_cast<OutT>(std::numeric_limits<T>::max());
}
// TODO(ostava): Add handling of normalized attributes when converting
// between different integer representations. If the attribute is
// normalized, integer values should be converted as if they represent 0-1
// range. E.g. when we convert uint16 to uint8, the range <0, 2^16 - 1>
// should be converted to range <0, 2^8 - 1>.
src_address += sizeof(T);
}
// Fill empty data for unused output components if needed.
@ -347,12 +311,128 @@ class GeometryAttribute {
return true;
}
#ifdef DRACO_TRANSCODER_SUPPORTED
// Function that converts input |value| from type T to the internal attribute
// representation defined by OutT and |num_components_|.
template <typename T, typename OutT>
Status ConvertAndSetAttributeTypedValue(AttributeValueIndex avi,
int8_t input_num_components,
const T *value) {
uint8_t *address = GetAddress(avi);
// Convert all components available in both the original and output formats.
for (int i = 0; i < num_components_; ++i) {
if (!IsAddressValid(address)) {
return ErrorStatus("GeometryAttribute: Invalid address.");
}
OutT *const out_value = reinterpret_cast<OutT *>(address);
if (i < input_num_components) {
if (!ConvertComponentValue<T, OutT>(*(value + i), normalized_,
out_value)) {
return ErrorStatus(
"GeometryAttribute: Failed to convert component value.");
}
} else {
*out_value = static_cast<OutT>(0);
}
address += sizeof(OutT);
}
return OkStatus();
}
#endif // DRACO_TRANSCODER_SUPPORTED
// Converts |in_value| of type T into |out_value| of type OutT. If
// |normalized| is true, any conversion between floating point and integer
// values will be treating integers as normalized types (the entire integer
// range will be used to represent 0-1 floating point range).
template <typename T, typename OutT>
static bool ConvertComponentValue(const T &in_value, bool normalized,
OutT *out_value) {
// Make sure the |in_value| can be represented as an integral type OutT.
if (std::is_integral<OutT>::value) {
// Make sure the |in_value| fits within the range of values that OutT
// is able to represent. Perform the check only for integral types.
if (!std::is_same<T, bool>::value && std::is_integral<T>::value) {
static constexpr OutT kOutMin =
std::is_signed<T>::value ? std::numeric_limits<OutT>::min() : 0;
if (in_value < kOutMin || in_value > std::numeric_limits<OutT>::max()) {
return false;
}
}
// Check conversion of floating point |in_value| to integral value OutT.
if (std::is_floating_point<T>::value) {
// Make sure the floating point |in_value| is not NaN and not Inf as
// integral type OutT is unable to represent these values.
if (sizeof(in_value) > sizeof(double)) {
if (std::isnan(static_cast<long double>(in_value)) ||
std::isinf(static_cast<long double>(in_value))) {
return false;
}
} else if (sizeof(in_value) > sizeof(float)) {
if (std::isnan(static_cast<double>(in_value)) ||
std::isinf(static_cast<double>(in_value))) {
return false;
}
} else {
if (std::isnan(static_cast<float>(in_value)) ||
std::isinf(static_cast<float>(in_value))) {
return false;
}
}
// Make sure the floating point |in_value| fits within the range of
// values that integral type OutT is able to represent.
if (in_value < std::numeric_limits<OutT>::min() ||
in_value >= std::numeric_limits<OutT>::max()) {
return false;
}
}
}
if (std::is_integral<T>::value && std::is_floating_point<OutT>::value &&
normalized) {
// When converting integer to floating point, normalize the value if
// necessary.
*out_value = static_cast<OutT>(in_value);
*out_value /= static_cast<OutT>(std::numeric_limits<T>::max());
} else if (std::is_floating_point<T>::value &&
std::is_integral<OutT>::value && normalized) {
// Converting from floating point to a normalized integer.
if (in_value > 1 || in_value < 0) {
// Normalized float values need to be between 0 and 1.
return false;
}
// TODO(ostava): Consider allowing float to normalized integer conversion
// for 64-bit integer types. Currently it doesn't work because we don't
// have a floating point type that could store all 64 bit integers.
if (sizeof(OutT) > 4) {
return false;
}
// Expand the float to the range of the output integer and round it to the
// nearest representable value. Use doubles for the math to ensure the
// integer values are represented properly during the conversion process.
*out_value = static_cast<OutT>(std::floor(
in_value * static_cast<double>(std::numeric_limits<OutT>::max()) +
0.5));
} else {
*out_value = static_cast<OutT>(in_value);
}
// TODO(ostava): Add handling of normalized attributes when converting
// between different integer representations. If the attribute is
// normalized, integer values should be converted as if they represent 0-1
// range. E.g. when we convert uint16 to uint8, the range <0, 2^16 - 1>
// should be converted to range <0, 2^8 - 1>.
return true;
}
DataBuffer *buffer_;
// The buffer descriptor is stored at the time the buffer is attached to this
// attribute. The purpose is to detect if any changes happened to the buffer
// since the time it was attached.
DataBufferDescriptor buffer_descriptor_;
int8_t num_components_;
uint8_t num_components_;
DataType data_type_;
bool normalized_;
int64_t byte_stride_;
@ -368,6 +448,54 @@ class GeometryAttribute {
friend struct GeometryAttributeHasher;
};
#ifdef DRACO_TRANSCODER_SUPPORTED
template <typename InputT>
Status GeometryAttribute::ConvertAndSetAttributeValue(AttributeValueIndex avi,
int input_num_components,
const InputT *value) {
switch (this->data_type()) {
case DT_INT8:
return ConvertAndSetAttributeTypedValue<InputT, int8_t>(
avi, input_num_components, value);
case DT_UINT8:
return ConvertAndSetAttributeTypedValue<InputT, uint8_t>(
avi, input_num_components, value);
case DT_INT16:
return ConvertAndSetAttributeTypedValue<InputT, int16_t>(
avi, input_num_components, value);
case DT_UINT16:
return ConvertAndSetAttributeTypedValue<InputT, uint16_t>(
avi, input_num_components, value);
case DT_INT32:
return ConvertAndSetAttributeTypedValue<InputT, int32_t>(
avi, input_num_components, value);
case DT_UINT32:
return ConvertAndSetAttributeTypedValue<InputT, uint32_t>(
avi, input_num_components, value);
case DT_INT64:
return ConvertAndSetAttributeTypedValue<InputT, int64_t>(
avi, input_num_components, value);
case DT_UINT64:
return ConvertAndSetAttributeTypedValue<InputT, uint64_t>(
avi, input_num_components, value);
case DT_FLOAT32:
return ConvertAndSetAttributeTypedValue<InputT, float>(
avi, input_num_components, value);
case DT_FLOAT64:
return ConvertAndSetAttributeTypedValue<InputT, double>(
avi, input_num_components, value);
case DT_BOOL:
return ConvertAndSetAttributeTypedValue<InputT, bool>(
avi, input_num_components, value);
default:
break;
}
return ErrorStatus(
"GeometryAttribute::SetAndConvertAttributeValue: Unsupported "
"attribute type.");
}
#endif
// Hashing support
// Function object for using Attribute as a hash key.

View File

@ -78,10 +78,13 @@ class PointAttributeVectorOutputIterator {
DRACO_DCHECK_EQ(attributes_.size(), 1); // Expect only ONE attribute.
AttributeTuple &att = attributes_[0];
PointAttribute *attribute = std::get<0>(att);
const AttributeValueIndex avi = attribute->mapped_index(point_id_);
if (avi >= static_cast<uint32_t>(attribute->size())) {
return *this;
}
const uint32_t &offset = std::get<1>(att);
DRACO_DCHECK_EQ(offset, 0); // expected to be zero
attribute->SetAttributeValue(attribute->mapped_index(point_id_),
&val[0] + offset);
attribute->SetAttributeValue(avi, &val[0] + offset);
return *this;
}
// Additional operator taking std::vector as argument.
@ -89,6 +92,10 @@ class PointAttributeVectorOutputIterator {
for (auto index = 0; index < attributes_.size(); index++) {
AttributeTuple &att = attributes_[index];
PointAttribute *attribute = std::get<0>(att);
const AttributeValueIndex avi = attribute->mapped_index(point_id_);
if (avi >= static_cast<uint32_t>(attribute->size())) {
return *this;
}
const uint32_t &offset = std::get<1>(att);
const uint32_t &data_size = std::get<3>(att);
const uint32_t &num_components = std::get<4>(att);
@ -103,10 +110,6 @@ class PointAttributeVectorOutputIterator {
// redirect to copied data
data_source = reinterpret_cast<uint32_t *>(data_);
}
const AttributeValueIndex avi = attribute->mapped_index(point_id_);
if (avi >= static_cast<uint32_t>(attribute->size())) {
return *this;
}
attribute->SetAttributeValue(avi, data_source);
}
return *this;
@ -195,54 +198,55 @@ bool KdTreeAttributesDecoder::DecodePortableAttributes(
data_size, num_components);
total_dimensionality += num_components;
}
PointAttributeVectorOutputIterator<uint32_t> out_it(atts);
typedef PointAttributeVectorOutputIterator<uint32_t> OutIt;
OutIt out_it(atts);
switch (compression_level) {
case 0: {
DynamicIntegerPointsKdTreeDecoder<0> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, out_it)) {
if (!DecodePoints<0, OutIt>(total_dimensionality, num_points, in_buffer,
&out_it)) {
return false;
}
break;
}
case 1: {
DynamicIntegerPointsKdTreeDecoder<1> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, out_it)) {
if (!DecodePoints<1, OutIt>(total_dimensionality, num_points, in_buffer,
&out_it)) {
return false;
}
break;
}
case 2: {
DynamicIntegerPointsKdTreeDecoder<2> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, out_it)) {
if (!DecodePoints<2, OutIt>(total_dimensionality, num_points, in_buffer,
&out_it)) {
return false;
}
break;
}
case 3: {
DynamicIntegerPointsKdTreeDecoder<3> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, out_it)) {
if (!DecodePoints<3, OutIt>(total_dimensionality, num_points, in_buffer,
&out_it)) {
return false;
}
break;
}
case 4: {
DynamicIntegerPointsKdTreeDecoder<4> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, out_it)) {
if (!DecodePoints<4, OutIt>(total_dimensionality, num_points, in_buffer,
&out_it)) {
return false;
}
break;
}
case 5: {
DynamicIntegerPointsKdTreeDecoder<5> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, out_it)) {
if (!DecodePoints<5, OutIt>(total_dimensionality, num_points, in_buffer,
&out_it)) {
return false;
}
break;
}
case 6: {
DynamicIntegerPointsKdTreeDecoder<6> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, out_it)) {
if (!DecodePoints<6, OutIt>(total_dimensionality, num_points, in_buffer,
&out_it)) {
return false;
}
break;
@ -253,6 +257,19 @@ bool KdTreeAttributesDecoder::DecodePortableAttributes(
return true;
}
template <int level_t, typename OutIteratorT>
bool KdTreeAttributesDecoder::DecodePoints(int total_dimensionality,
int num_expected_points,
DecoderBuffer *in_buffer,
OutIteratorT *out_iterator) {
DynamicIntegerPointsKdTreeDecoder<level_t> decoder(total_dimensionality);
if (!decoder.DecodePoints(in_buffer, *out_iterator) ||
decoder.num_decoded_points() != num_expected_points) {
return false;
}
return true;
}
bool KdTreeAttributesDecoder::DecodeDataNeededByPortableTransforms(
DecoderBuffer *in_buffer) {
if (in_buffer->bitstream_version() >= DRACO_BITSTREAM_VERSION(2, 3)) {

View File

@ -31,6 +31,10 @@ class KdTreeAttributesDecoder : public AttributesDecoder {
bool TransformAttributesToOriginalFormat() override;
private:
template <int level_t, typename OutIteratorT>
bool DecodePoints(int total_dimensionality, int num_expected_points,
DecoderBuffer *in_buffer, OutIteratorT *out_iterator);
template <typename SignedDataTypeT>
bool TransformAttributeBackToSignedType(PointAttribute *att,
int num_processed_signed_components);

View File

@ -208,7 +208,9 @@ class OctahedronToolBox {
DRACO_DCHECK_LE(t, center_value_);
DRACO_DCHECK_GE(s, -center_value_);
DRACO_DCHECK_GE(t, -center_value_);
return std::abs(s) + std::abs(t) <= center_value_;
const uint32_t st =
static_cast<uint32_t>(std::abs(s)) + static_cast<uint32_t>(std::abs(t));
return st <= center_value_;
}
void InvertDiamond(int32_t *s, int32_t *t) const {
@ -230,19 +232,29 @@ class OctahedronToolBox {
sign_t = (*t > 0) ? 1 : -1;
}
const int32_t corner_point_s = sign_s * center_value_;
const int32_t corner_point_t = sign_t * center_value_;
*s = 2 * *s - corner_point_s;
*t = 2 * *t - corner_point_t;
// Perform the addition and subtraction using unsigned integers to avoid
// signed integer overflows for bad data. Note that the result will be
// unchanged for non-overflowing cases.
const uint32_t corner_point_s = sign_s * center_value_;
const uint32_t corner_point_t = sign_t * center_value_;
uint32_t us = *s;
uint32_t ut = *t;
us = us + us - corner_point_s;
ut = ut + ut - corner_point_t;
if (sign_s * sign_t >= 0) {
int32_t temp = *s;
*s = -*t;
*t = -temp;
uint32_t temp = us;
us = -ut;
ut = -temp;
} else {
std::swap(*s, *t);
std::swap(us, ut);
}
*s = (*s + corner_point_s) / 2;
*t = (*t + corner_point_t) / 2;
us = us + corner_point_s;
ut = ut + corner_point_t;
*s = us;
*t = ut;
*s /= 2;
*t /= 2;
}
void InvertDirection(int32_t *s, int32_t *t) const {

View File

@ -22,6 +22,7 @@
#include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h"
#include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h"
#include "draco/compression/bit_coders/rans_bit_decoder.h"
#include "draco/core/math_utils.h"
#include "draco/core/varint_decoding.h"
#include "draco/draco_features.h"
@ -161,7 +162,8 @@ bool MeshPredictionSchemeConstrainedMultiParallelogramDecoder<
if (!is_crease) {
++num_used_parallelograms;
for (int j = 0; j < num_components; ++j) {
multi_pred_vals[j] += pred_vals[i][j];
multi_pred_vals[j] =
AddAsUnsigned(multi_pred_vals[j], pred_vals[i][j]);
}
}
}

View File

@ -18,6 +18,7 @@
#include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_decoder.h"
#include "draco/compression/attributes/prediction_schemes/mesh_prediction_scheme_parallelogram_shared.h"
#include "draco/core/math_utils.h"
#include "draco/draco_features.h"
namespace draco {
@ -89,7 +90,8 @@ bool MeshPredictionSchemeMultiParallelogramDecoder<DataTypeT, TransformT,
p, corner_id, table, *vertex_to_data_map, out_data,
num_components, parallelogram_pred_vals.get())) {
for (int c = 0; c < num_components; ++c) {
pred_vals[c] += parallelogram_pred_vals[c];
pred_vals[c] =
AddAsUnsigned(pred_vals[c], parallelogram_pred_vals[c]);
}
++num_parallelograms;
}

View File

@ -17,6 +17,9 @@
#include <math.h>
#include <algorithm>
#include <limits>
#include "draco/attributes/point_attribute.h"
#include "draco/core/math_utils.h"
#include "draco/core/vector_d.h"
@ -105,10 +108,14 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor<
next_data_id = mesh_data_.vertex_to_data_map()->at(next_vert_id);
prev_data_id = mesh_data_.vertex_to_data_map()->at(prev_vert_id);
typedef VectorD<int64_t, 2> Vec2;
typedef VectorD<int64_t, 3> Vec3;
typedef VectorD<uint64_t, 2> Vec2u;
if (prev_data_id < data_id && next_data_id < data_id) {
// Both other corners have available UV coordinates for prediction.
const VectorD<int64_t, 2> n_uv = GetTexCoordForEntryId(next_data_id, data);
const VectorD<int64_t, 2> p_uv = GetTexCoordForEntryId(prev_data_id, data);
const Vec2 n_uv = GetTexCoordForEntryId(next_data_id, data);
const Vec2 p_uv = GetTexCoordForEntryId(prev_data_id, data);
if (p_uv == n_uv) {
// We cannot do a reliable prediction on degenerated UV triangles.
predicted_value_[0] = p_uv[0];
@ -117,9 +124,9 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor<
}
// Get positions at all corners.
const VectorD<int64_t, 3> tip_pos = GetPositionForEntryId(data_id);
const VectorD<int64_t, 3> next_pos = GetPositionForEntryId(next_data_id);
const VectorD<int64_t, 3> prev_pos = GetPositionForEntryId(prev_data_id);
const Vec3 tip_pos = GetPositionForEntryId(data_id);
const Vec3 next_pos = GetPositionForEntryId(next_data_id);
const Vec3 prev_pos = GetPositionForEntryId(prev_data_id);
// We use the positions of the above triangle to predict the texture
// coordinate on the tip corner C.
// To convert the triangle into the UV coordinate system we first compute
@ -135,17 +142,17 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor<
// Where next_pos is point (N), prev_pos is point (P) and tip_pos is the
// position of predicted coordinate (C).
//
const VectorD<int64_t, 3> pn = prev_pos - next_pos;
const Vec3 pn = prev_pos - next_pos;
const uint64_t pn_norm2_squared = pn.SquaredNorm();
if (pn_norm2_squared != 0) {
// Compute the projection of C onto PN by computing dot product of CN with
// PN and normalizing it by length of PN. This gives us a factor |s| where
// |s = PN.Dot(CN) / PN.SquaredNorm2()|. This factor can be used to
// compute X in UV space |X_UV| as |X_UV = N_UV + s * PN_UV|.
const VectorD<int64_t, 3> cn = tip_pos - next_pos;
const Vec3 cn = tip_pos - next_pos;
const int64_t cn_dot_pn = pn.Dot(cn);
const VectorD<int64_t, 2> pn_uv = p_uv - n_uv;
const Vec2 pn_uv = p_uv - n_uv;
// Because we perform all computations with integers, we don't explicitly
// compute the normalized factor |s|, but rather we perform all operations
// over UV vectors in a non-normalized coordinate system scaled with a
@ -153,19 +160,23 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor<
//
// x_uv = X_UV * PN.Norm2Squared()
//
const VectorD<int64_t, 2> x_uv =
n_uv * pn_norm2_squared + (cn_dot_pn * pn_uv);
const int64_t n_uv_absmax_element =
std::max(std::abs(n_uv[0]), std::abs(n_uv[1]));
if (n_uv_absmax_element >
std::numeric_limits<int64_t>::max() / pn_norm2_squared) {
// Return false if the below multiplication would overflow.
return false;
}
const Vec2 x_uv = n_uv * pn_norm2_squared + (cn_dot_pn * pn_uv);
const int64_t pn_absmax_element =
std::max(std::max(std::abs(pn[0]), std::abs(pn[1])), std::abs(pn[2]));
if (cn_dot_pn > std::numeric_limits<int64_t>::max() / pn_absmax_element) {
// return false if squared length calculation would overflow.
// Return false if squared length calculation would overflow.
return false;
}
// Compute squared length of vector CX in position coordinate system:
const VectorD<int64_t, 3> x_pos =
next_pos + (cn_dot_pn * pn) / pn_norm2_squared;
const Vec3 x_pos = next_pos + (cn_dot_pn * pn) / pn_norm2_squared;
const uint64_t cx_norm2_squared = (tip_pos - x_pos).SquaredNorm();
// Compute vector CX_UV in the uv space by rotating vector PN_UV by 90
@ -182,7 +193,7 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor<
//
// cx_uv = CX.Norm2() * PN.Norm2() * Rot(PN_UV)
//
VectorD<int64_t, 2> cx_uv(pn_uv[1], -pn_uv[0]); // Rotated PN_UV.
Vec2 cx_uv(pn_uv[1], -pn_uv[0]); // Rotated PN_UV.
// Compute CX.Norm2() * PN.Norm2()
const uint64_t norm_squared =
IntSqrt(cx_norm2_squared * pn_norm2_squared);
@ -191,17 +202,15 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor<
// Predicted uv coordinate is then computed by either adding or
// subtracting CX_UV to/from X_UV.
VectorD<int64_t, 2> predicted_uv;
Vec2 predicted_uv;
if (is_encoder_t) {
// When encoding, compute both possible vectors and determine which one
// results in a better prediction.
// Both vectors need to be transformed back from the scaled space to
// the real UV coordinate space.
const VectorD<int64_t, 2> predicted_uv_0((x_uv + cx_uv) /
pn_norm2_squared);
const VectorD<int64_t, 2> predicted_uv_1((x_uv - cx_uv) /
pn_norm2_squared);
const VectorD<int64_t, 2> c_uv = GetTexCoordForEntryId(data_id, data);
const Vec2 predicted_uv_0((x_uv + cx_uv) / pn_norm2_squared);
const Vec2 predicted_uv_1((x_uv - cx_uv) / pn_norm2_squared);
const Vec2 c_uv = GetTexCoordForEntryId(data_id, data);
if ((c_uv - predicted_uv_0).SquaredNorm() <
(c_uv - predicted_uv_1).SquaredNorm()) {
predicted_uv = predicted_uv_0;
@ -217,10 +226,12 @@ bool MeshPredictionSchemeTexCoordsPortablePredictor<
}
const bool orientation = orientations_.back();
orientations_.pop_back();
// Perform operations in unsigned type to avoid signed integer overflow.
// Note that the result will be the same (for non-overflowing values).
if (orientation) {
predicted_uv = (x_uv + cx_uv) / pn_norm2_squared;
predicted_uv = Vec2(Vec2u(x_uv) + Vec2u(cx_uv)) / pn_norm2_squared;
} else {
predicted_uv = (x_uv - cx_uv) / pn_norm2_squared;
predicted_uv = Vec2(Vec2u(x_uv) - Vec2u(cx_uv)) / pn_norm2_squared;
}
}
predicted_value_[0] = static_cast<int>(predicted_uv[0]);

View File

@ -30,12 +30,16 @@ PredictionSchemeMethod SelectPredictionMethod(
}
if (encoder->GetGeometryType() == TRIANGULAR_MESH) {
// Use speed setting to select the best encoding method.
const int att_quant =
options.GetAttributeInt(att_id, "quantization_bits", -1);
const PointAttribute *const att = encoder->point_cloud()->attribute(att_id);
if (att->attribute_type() == GeometryAttribute::TEX_COORD &&
if (att_quant != -1 &&
att->attribute_type() == GeometryAttribute::TEX_COORD &&
att->num_components() == 2) {
// Texture coordinate predictor needs a position attribute that is either
// integer or quantized. For numerical reasons, we require the position
// quantization to be at most 21 bits (TODO(b/231259902)).
// quantization to be at most 21 bits and the 2*position_quantization +
// uv_quantization < 64 (TODO(b/231259902)).
const PointAttribute *const pos_att =
encoder->point_cloud()->GetNamedAttribute(
GeometryAttribute::POSITION);
@ -49,8 +53,10 @@ PredictionSchemeMethod SelectPredictionMethod(
GeometryAttribute::POSITION);
const int pos_quant =
options.GetAttributeInt(pos_att_id, "quantization_bits", -1);
// Must be quantized but the quantization is restricted to 21 bits.
if (pos_quant > 0 && pos_quant <= 21) {
// Must be quantized but the quantization is restricted to 21 bits and
// 2*|pos_quant|+|att_quant| must be smaller than 64 bits.
if (pos_quant > 0 && pos_quant <= 21 &&
2 * pos_quant + att_quant < 64) {
is_pos_att_valid = true;
}
}

View File

@ -21,6 +21,7 @@
#include "draco/compression/attributes/prediction_schemes/prediction_scheme_normal_octahedron_canonicalized_transform_base.h"
#include "draco/core/decoder_buffer.h"
#include "draco/core/macros.h"
#include "draco/core/math_utils.h"
#include "draco/core/vector_d.h"
namespace draco {
@ -98,9 +99,8 @@ class PredictionSchemeNormalOctahedronCanonicalizedDecodingTransform
if (!pred_is_in_bottom_left) {
pred = this->RotatePoint(pred, rotation_count);
}
Point2 orig = pred + corr;
orig[0] = this->ModMax(orig[0]);
orig[1] = this->ModMax(orig[1]);
Point2 orig(this->ModMax(AddAsUnsigned(pred[0], corr[0])),
this->ModMax(AddAsUnsigned(pred[1], corr[1])));
if (!pred_is_in_bottom_left) {
const int32_t reverse_rotation_count = (4 - rotation_count) % 4;
orig = this->RotatePoint(orig, reverse_rotation_count);

View File

@ -80,19 +80,31 @@ class PredictionSchemeNormalOctahedronDecodingTransform
private:
Point2 ComputeOriginalValue(Point2 pred, const Point2 &corr) const {
const Point2 t(this->center_value(), this->center_value());
pred = pred - t;
typedef typename std::make_unsigned<DataTypeT>::type UnsignedDataTypeT;
typedef VectorD<UnsignedDataTypeT, 2> Point2u;
// Perform the addition in unsigned type to avoid signed integer overflow.
// Note that the result will be the same (for non-overflowing values).
pred = Point2(Point2u(pred) - Point2u(t));
const bool pred_is_in_diamond = this->IsInDiamond(pred[0], pred[1]);
if (!pred_is_in_diamond) {
this->InvertDiamond(&pred[0], &pred[1]);
}
Point2 orig = pred + corr;
// Perform the addition in unsigned type to avoid signed integer overflow.
// Note that the result will be the same (for non-overflowing values).
Point2 orig(Point2u(pred) + Point2u(corr));
orig[0] = this->ModMax(orig[0]);
orig[1] = this->ModMax(orig[1]);
if (!pred_is_in_diamond) {
this->InvertDiamond(&orig[0], &orig[1]);
}
orig = orig + t;
// Perform the addition in unsigned type to avoid signed integer overflow.
// Note that the result will be the same (for non-overflowing values).
orig = Point2(Point2u(orig) + Point2u(t));
return orig;
}
};

View File

@ -47,14 +47,13 @@ class DirectBitDecoder {
// Decode the next |nbits| and return the sequence in |value|. |nbits| must be
// > 0 and <= 32.
void DecodeLeastSignificantBits32(int nbits, uint32_t *value) {
bool DecodeLeastSignificantBits32(int nbits, uint32_t *value) {
DRACO_DCHECK_EQ(true, nbits <= 32);
DRACO_DCHECK_EQ(true, nbits > 0);
const int remaining = 32 - num_used_bits_;
if (nbits <= remaining) {
if (pos_ == bits_.end()) {
*value = 0;
return;
return false;
}
*value = (*pos_ << num_used_bits_) >> (32 - nbits);
num_used_bits_ += nbits;
@ -64,8 +63,7 @@ class DirectBitDecoder {
}
} else {
if (pos_ + 1 == bits_.end()) {
*value = 0;
return;
return false;
}
const uint32_t value_l = ((*pos_) << num_used_bits_);
num_used_bits_ = nbits - remaining;
@ -73,6 +71,7 @@ class DirectBitDecoder {
const uint32_t value_r = (*pos_) >> (32 - num_used_bits_);
*value = (value_l >> (32 - num_used_bits_ - remaining)) | value_r;
}
return true;
}
void EndDecoding() {}

View File

@ -65,6 +65,10 @@ class EncoderOptionsBase : public DracoOptions<AttributeKeyT> {
this->SetGlobalInt("encoding_speed", encoding_speed);
this->SetGlobalInt("decoding_speed", decoding_speed);
}
bool IsSpeedSet() const {
return this->IsGlobalOptionSet("encoding_speed") ||
this->IsGlobalOptionSet("decoding_speed");
}
// Sets a given feature as supported or unsupported by the target decoder.
// Encoder will always use only supported features when encoding the input

View File

@ -0,0 +1,59 @@
// Copyright 2022 The Draco Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#include "draco/compression/draco_compression_options.h"
#ifdef DRACO_TRANSCODER_SUPPORTED
namespace draco {
SpatialQuantizationOptions::SpatialQuantizationOptions(int quantization_bits) {
SetQuantizationBits(quantization_bits);
}
void SpatialQuantizationOptions::SetQuantizationBits(int quantization_bits) {
mode_ = LOCAL_QUANTIZATION_BITS;
quantization_bits_ = quantization_bits;
}
bool SpatialQuantizationOptions::AreQuantizationBitsDefined() const {
return mode_ == LOCAL_QUANTIZATION_BITS;
}
SpatialQuantizationOptions &SpatialQuantizationOptions::SetGrid(float spacing) {
mode_ = GLOBAL_GRID;
spacing_ = spacing;
return *this;
}
bool SpatialQuantizationOptions::operator==(
const SpatialQuantizationOptions &other) const {
if (mode_ != other.mode_) {
return false;
}
if (mode_ == LOCAL_QUANTIZATION_BITS) {
if (quantization_bits_ != other.quantization_bits_) {
return false;
}
} else if (mode_ == GLOBAL_GRID) {
if (spacing_ != other.spacing_) {
return false;
}
}
return true;
}
} // namespace draco
#endif // DRACO_TRANSCODER_SUPPORTED

View File

@ -21,11 +21,58 @@
#include "draco/core/status.h"
namespace draco {
// Quantization options for positions. Currently there are two modes for
// quantizing positions:
//
// 1. Quantization bits:
// - User defined number of quantization bits that is evenly distributed
// to cover the compressed geometry.
// 2. Grid:
// - Positions are snapped to a global grid defined by grid spacing.
// - This method is primarily intended to be used when the location of
// quantized vertices needs to be consistent between multiple
// geometries.
class SpatialQuantizationOptions {
public:
explicit SpatialQuantizationOptions(int quantization_bits);
// Sets quantization bits that are going to be used for the compressed
// geometry. If the geometry is a scene, the same number of quantization bits
// is going to be applied to each mesh of the scene. Quantized values are
// going to be distributed within the bounds of individual meshes.
void SetQuantizationBits(int quantization_bits);
// If this returns true, quantization_bits() should be used to get the
// desired number of quantization bits for compression. Otherwise the grid
// mode is selected and spacing() should be used to get the desired grid
// spacing.
bool AreQuantizationBitsDefined() const;
const int quantization_bits() const { return quantization_bits_; }
// Defines quantization grid used for the compressed geometry. All vertices
// are going to be snapped to the nearest grid vertex that corresponds to an
// integer quantized position. |spacing| defines the distance between two grid
// vertices. E.g. a grid with |spacing| = 10 would have grid vertices at
// locations {10 * i, 10 * j, 10 * k} where i, j, k are integer numbers.
SpatialQuantizationOptions &SetGrid(float spacing);
const float spacing() const { return spacing_; }
bool operator==(const SpatialQuantizationOptions &other) const;
private:
enum Mode { LOCAL_QUANTIZATION_BITS, GLOBAL_GRID };
Mode mode_ = LOCAL_QUANTIZATION_BITS;
int quantization_bits_; // Default quantization bits for positions.
float spacing_ = 0.f;
};
// TODO(fgalligan): Add support for unified_position_quantization.
// Struct to hold Draco compression options.
struct DracoCompressionOptions {
int compression_level = 7; // compression level [0-10], most=10, least=0.
int quantization_bits_position = 11;
SpatialQuantizationOptions quantization_position{11};
int quantization_bits_normal = 8;
int quantization_bits_tex_coord = 10;
int quantization_bits_color = 8;
@ -36,7 +83,7 @@ struct DracoCompressionOptions {
bool operator==(const DracoCompressionOptions &other) const {
return compression_level == other.compression_level &&
quantization_bits_position == other.quantization_bits_position &&
quantization_position == other.quantization_position &&
quantization_bits_normal == other.quantization_bits_normal &&
quantization_bits_tex_coord == other.quantization_bits_tex_coord &&
quantization_bits_color == other.quantization_bits_color &&
@ -54,8 +101,15 @@ struct DracoCompressionOptions {
Status Check() const {
DRACO_RETURN_IF_ERROR(
Validate("Compression level", compression_level, 0, 10));
DRACO_RETURN_IF_ERROR(
Validate("Position quantization", quantization_bits_position, 0, 30));
if (quantization_position.AreQuantizationBitsDefined()) {
DRACO_RETURN_IF_ERROR(Validate("Position quantization",
quantization_position.quantization_bits(),
0, 30));
} else {
if (quantization_position.spacing() <= 0.f) {
return ErrorStatus("Position quantization spacing is invalid.");
}
}
DRACO_RETURN_IF_ERROR(
Validate("Normals quantization", quantization_bits_normal, 0, 30));
DRACO_RETURN_IF_ERROR(

View File

@ -0,0 +1,45 @@
#include "draco/compression/draco_compression_options.h"
#include "draco/core/draco_test_utils.h"
#ifdef DRACO_TRANSCODER_SUPPORTED
namespace {
TEST(DracoCompressionOptionsTest, TestPositionQuantizationBits) {
// Test verifies that we can define draco compression options using
// quantization bits.
draco::SpatialQuantizationOptions options(10);
// Quantization bits should be used by default.
ASSERT_TRUE(options.AreQuantizationBitsDefined());
ASSERT_EQ(options.quantization_bits(), 10);
// Change the quantization bits.
options.SetQuantizationBits(9);
ASSERT_TRUE(options.AreQuantizationBitsDefined());
ASSERT_EQ(options.quantization_bits(), 9);
// If we select the grid, quantization bits should not be used.
options.SetGrid(0.5f);
ASSERT_FALSE(options.AreQuantizationBitsDefined());
}
TEST(DracoCompressionOptionsTest, TestPositionQuantizationGrid) {
// Test verifies that we can define draco compression options using
// quantization grid.
draco::SpatialQuantizationOptions options(10);
// Quantization bits should be used by default.
ASSERT_TRUE(options.AreQuantizationBitsDefined());
// Set the grid parameters.
options.SetGrid(0.25f);
ASSERT_FALSE(options.AreQuantizationBitsDefined());
ASSERT_EQ(options.spacing(), 0.25f);
}
} // namespace
#endif // DRACO_TRANSCODER_SUPPORTED

View File

@ -402,4 +402,170 @@ TEST_F(EncodeTest, TestNoPosQuantizationNormalCoding) {
ASSERT_NE(decoded_mesh, nullptr);
}
#ifdef DRACO_TRANSCODER_SUPPORTED
TEST_F(EncodeTest, TestDracoCompressionOptions) {
// This test verifies that we can set the encoder's compression options via
// draco::Mesh's compression options.
const auto mesh = draco::ReadMeshFromTestFile("test_nm.obj");
ASSERT_NE(mesh, nullptr);
// First set compression level and quantization manually.
draco::Encoder encoder_manual;
draco::EncoderBuffer buffer_manual;
encoder_manual.SetAttributeQuantization(draco::GeometryAttribute::POSITION,
8);
encoder_manual.SetAttributeQuantization(draco::GeometryAttribute::NORMAL, 7);
encoder_manual.SetSpeedOptions(4, 4);
DRACO_ASSERT_OK(encoder_manual.EncodeMeshToBuffer(*mesh, &buffer_manual));
// Now do the same with options provided via DracoCompressionOptions.
draco::DracoCompressionOptions compression_options;
compression_options.compression_level = 6;
compression_options.quantization_position.SetQuantizationBits(8);
compression_options.quantization_bits_normal = 7;
mesh->SetCompressionOptions(compression_options);
mesh->SetCompressionEnabled(true);
draco::Encoder encoder_auto;
draco::EncoderBuffer buffer_auto;
DRACO_ASSERT_OK(encoder_auto.EncodeMeshToBuffer(*mesh, &buffer_auto));
// Ensure that both encoders produce the same result.
ASSERT_EQ(buffer_manual.size(), buffer_auto.size());
// Now change some of the mesh's compression settings and ensure the
// compression changes as well.
compression_options.compression_level = 7;
mesh->SetCompressionOptions(compression_options);
buffer_auto.Clear();
DRACO_ASSERT_OK(encoder_auto.EncodeMeshToBuffer(*mesh, &buffer_auto));
ASSERT_NE(buffer_manual.size(), buffer_auto.size());
// Check that |mesh| compression options do not override the encoder options.
mesh->GetCompressionOptions().compression_level = 10;
mesh->GetCompressionOptions().quantization_position.SetQuantizationBits(10);
mesh->GetCompressionOptions().quantization_bits_normal = 10;
draco::EncoderBuffer buffer;
DRACO_ASSERT_OK(encoder_manual.EncodeMeshToBuffer(*mesh, &buffer));
ASSERT_EQ(buffer.size(), buffer_manual.size());
}
TEST_F(EncodeTest, TestDracoCompressionOptionsManualOverride) {
// This test verifies that we can use encoder's option to override compression
// options provided in draco::Mesh's compression options.
const auto mesh = draco::ReadMeshFromTestFile("test_nm.obj");
ASSERT_NE(mesh, nullptr);
// Set some compression options.
draco::DracoCompressionOptions compression_options;
compression_options.compression_level = 6;
compression_options.quantization_position.SetQuantizationBits(8);
compression_options.quantization_bits_normal = 7;
mesh->SetCompressionOptions(compression_options);
mesh->SetCompressionEnabled(true);
draco::Encoder encoder;
draco::EncoderBuffer buffer_no_override;
DRACO_ASSERT_OK(encoder.EncodeMeshToBuffer(*mesh, &buffer_no_override));
// Now override some options and ensure the compression is different.
encoder.SetAttributeQuantization(draco::GeometryAttribute::POSITION, 5);
draco::EncoderBuffer buffer_with_override;
DRACO_ASSERT_OK(encoder.EncodeMeshToBuffer(*mesh, &buffer_with_override));
ASSERT_LT(buffer_with_override.size(), buffer_no_override.size());
}
TEST_F(EncodeTest, TestDracoCompressionOptionsGridQuantization) {
// Test verifies that we can set position quantization via grid spacing.
// 1x1x1 cube.
const auto mesh = draco::ReadMeshFromTestFile("cube_att.obj");
ASSERT_NE(mesh, nullptr);
mesh->SetCompressionEnabled(true);
// Set grid quantization for positions.
draco::DracoCompressionOptions compression_options;
// This should result in 10x10x10 quantization.
compression_options.quantization_position.SetGrid(0.1);
mesh->SetCompressionOptions(compression_options);
draco::ExpertEncoder encoder(*mesh);
draco::EncoderBuffer buffer;
DRACO_ASSERT_OK(encoder.EncodeToBuffer(&buffer));
// The grid options should be reflected in the |encoder|. Check that the
// computed values are correct.
const int pos_att_id =
mesh->GetNamedAttributeId(draco::GeometryAttribute::POSITION);
draco::Vector3f origin;
encoder.options().GetAttributeVector(pos_att_id, "quantization_origin", 3,
&origin[0]);
ASSERT_EQ(origin, draco::Vector3f(0.f, 0.f, 0.f));
// We need 4 quantization bits (for 10 values).
ASSERT_EQ(
encoder.options().GetAttributeInt(pos_att_id, "quantization_bits", -1),
4);
// The quantization range should be (1 << quantization_bits) * spacing.
ASSERT_NEAR(encoder.options().GetAttributeFloat(pos_att_id,
"quantization_range", 0.f),
16.f * 0.1f, 1e-6f);
}
TEST_F(EncodeTest, TestDracoCompressionOptionsGridQuantizationWithOffset) {
// Test verifies that we can set position quantization via grid spacing when
// the geometry is not perfectly aligned with the quantization grid.
// 1x1x1 cube.
const auto mesh = draco::ReadMeshFromTestFile("cube_att.obj");
ASSERT_NE(mesh, nullptr);
// Move all positions a bit.
auto *pos_att = mesh->attribute(
mesh->GetNamedAttributeId(draco::GeometryAttribute::POSITION));
for (draco::AttributeValueIndex avi(0); avi < pos_att->size(); ++avi) {
draco::Vector3f pos;
pos_att->GetValue(avi, &pos[0]);
pos = pos + draco::Vector3f(-0.55f, 0.65f, 10.75f);
pos_att->SetAttributeValue(avi, &pos[0]);
}
mesh->SetCompressionEnabled(true);
// Set grid quantization for positions.
draco::DracoCompressionOptions compression_options;
// This should result in 16x16x16 quantization if the grid was perfectly
// aligned but since it is not we should expect 17 or 18 values per component.
compression_options.quantization_position.SetGrid(0.0625f);
mesh->SetCompressionOptions(compression_options);
draco::ExpertEncoder encoder(*mesh);
draco::EncoderBuffer buffer;
DRACO_ASSERT_OK(encoder.EncodeToBuffer(&buffer));
// The grid options should be reflected in the |encoder|. Check that the
// computed values are correct.
const int pos_att_id =
mesh->GetNamedAttributeId(draco::GeometryAttribute::POSITION);
draco::Vector3f origin;
encoder.options().GetAttributeVector(pos_att_id, "quantization_origin", 3,
&origin[0]);
// The origin is the first lower value on the quantization grid for each
// component of the mesh.
ASSERT_EQ(origin, draco::Vector3f(-0.5625f, 0.625f, 10.75f));
// We need 5 quantization bits (for 17-18 values).
ASSERT_EQ(
encoder.options().GetAttributeInt(pos_att_id, "quantization_bits", -1),
5);
// The quantization range should be (1 << quantization_bits) * spacing.
ASSERT_NEAR(encoder.options().GetAttributeFloat(pos_att_id,
"quantization_range", 0.f),
32.f * 0.0625f, 1e-6f);
}
#endif // DRACO_TRANSCODER_SUPPORTED
} // namespace

View File

@ -20,6 +20,9 @@
#include "draco/compression/point_cloud/point_cloud_kd_tree_encoder.h"
#include "draco/compression/point_cloud/point_cloud_sequential_encoder.h"
#endif
#ifdef DRACO_TRANSCODER_SUPPORTED
#include "draco/core/bit_utils.h"
#endif
namespace draco {
@ -101,6 +104,11 @@ Status ExpertEncoder::EncodePointCloudToBuffer(const PointCloud &pc,
Status ExpertEncoder::EncodeMeshToBuffer(const Mesh &m,
EncoderBuffer *out_buffer) {
#ifdef DRACO_TRANSCODER_SUPPORTED
// Apply DracoCompressionOptions associated with the mesh.
DRACO_RETURN_IF_ERROR(ApplyCompressionOptions(m));
#endif
std::unique_ptr<MeshEncoder> encoder;
// Select the encoding method only based on the provided options.
int encoding_method = options().GetGlobalInt("encoding_method", -1);
@ -179,4 +187,106 @@ Status ExpertEncoder::SetAttributePredictionScheme(
return status;
}
#ifdef DRACO_TRANSCODER_SUPPORTED
Status ExpertEncoder::ApplyCompressionOptions(const Mesh &mesh) {
if (!mesh.IsCompressionEnabled()) {
return OkStatus();
}
const auto &compression_options = mesh.GetCompressionOptions();
// Set any encoder options that haven't been explicitly set by users (don't
// override existing options).
if (!options().IsSpeedSet()) {
options().SetSpeed(10 - compression_options.compression_level,
10 - compression_options.compression_level);
}
for (int ai = 0; ai < mesh.num_attributes(); ++ai) {
if (options().IsAttributeOptionSet(ai, "quantization_bits")) {
continue; // Don't override options that have been set.
}
int quantization_bits = 0;
const auto type = mesh.attribute(ai)->attribute_type();
switch (type) {
case GeometryAttribute::POSITION:
if (compression_options.quantization_position
.AreQuantizationBitsDefined()) {
quantization_bits =
compression_options.quantization_position.quantization_bits();
} else {
DRACO_RETURN_IF_ERROR(ApplyGridQuantization(mesh, ai));
}
break;
case GeometryAttribute::TEX_COORD:
quantization_bits = compression_options.quantization_bits_tex_coord;
break;
case GeometryAttribute::NORMAL:
quantization_bits = compression_options.quantization_bits_normal;
break;
case GeometryAttribute::COLOR:
quantization_bits = compression_options.quantization_bits_color;
break;
case GeometryAttribute::TANGENT:
quantization_bits = compression_options.quantization_bits_tangent;
break;
case GeometryAttribute::WEIGHTS:
quantization_bits = compression_options.quantization_bits_weight;
break;
case GeometryAttribute::GENERIC:
quantization_bits = compression_options.quantization_bits_generic;
break;
default:
break;
}
if (quantization_bits > 0) {
options().SetAttributeInt(ai, "quantization_bits", quantization_bits);
}
}
return OkStatus();
}
Status ExpertEncoder::ApplyGridQuantization(const Mesh &mesh,
int attribute_index) {
const auto compression_options = mesh.GetCompressionOptions();
if (mesh.attribute(attribute_index)->num_components() != 3) {
return ErrorStatus(
"Invalid number of components: Grid quantization is currently "
"supported only for 3D positions.");
}
const float spacing = compression_options.quantization_position.spacing();
// Compute quantization properties based on the grid spacing.
const auto &bbox = mesh.ComputeBoundingBox();
// Snap min and max points of the |bbox| to the quantization grid vertices.
Vector3f min_pos;
int num_values = 0; // Number of values that we need to encode.
for (int c = 0; c < 3; ++c) {
// Min / max position on grid vertices in grid coordinates.
const float min_grid_pos = floor(bbox.GetMinPoint()[c] / spacing);
const float max_grid_pos = ceil(bbox.GetMaxPoint()[c] / spacing);
// Min pos on grid vertex in mesh coordinates.
min_pos[c] = min_grid_pos * spacing;
const float component_num_values =
static_cast<int>(max_grid_pos) - static_cast<int>(min_grid_pos) + 1;
if (component_num_values > num_values) {
num_values = component_num_values;
}
}
// Now compute the number of bits needed to encode |num_values|.
int bits = MostSignificantBit(num_values);
if ((1 << bits) < num_values) {
// If the |num_values| is larger than number of values representable by
// |bits|, we need to use one more bit. This will be almost always true
// unless |num_values| was equal to 1 << |bits|.
bits++;
}
// Compute the range in mesh coordinates that matches the quantization bits.
const float range = (1 << bits) * spacing;
SetAttributeExplicitQuantization(attribute_index, bits, 3, min_pos.data(),
range);
return OkStatus();
}
#endif // DRACO_TRANSCODER_SUPPORTED
} // namespace draco

View File

@ -138,6 +138,12 @@ class ExpertEncoder : public EncoderBase<EncoderOptions> {
Status EncodeMeshToBuffer(const Mesh &m, EncoderBuffer *out_buffer);
#ifdef DRACO_TRANSCODER_SUPPORTED
// Applies compression options stored in |mesh|.
Status ApplyCompressionOptions(const Mesh &mesh);
Status ApplyGridQuantization(const Mesh &mesh, int attribute_index);
#endif // DRACO_TRANSCODER_SUPPORTED
const PointCloud *point_cloud_;
const Mesh *mesh_;
};

View File

@ -484,7 +484,10 @@ bool MeshEdgebreakerDecoderImpl<TraversalDecoder>::DecodeConnectivity() {
attribute_data_[i].connectivity_data.AddSeamEdge(CornerIndex(c));
}
// Recompute vertices from the newly added seam edges.
attribute_data_[i].connectivity_data.RecomputeVertices(nullptr, nullptr);
if (!attribute_data_[i].connectivity_data.RecomputeVertices(nullptr,
nullptr)) {
return false;
}
}
pos_encoding_data_.Init(corner_table_->num_vertices());
@ -574,6 +577,17 @@ int MeshEdgebreakerDecoderImpl<TraversalDecoder>::DecodeConnectivity(
const CornerIndex corner_b =
corner_table_->Next(corner_table_->LeftMostCorner(vertex_x));
if (corner_a == corner_b) {
// All matched corners must be different.
return -1;
}
if (corner_table_->Opposite(corner_a) != kInvalidCornerIndex ||
corner_table_->Opposite(corner_b) != kInvalidCornerIndex) {
// One of the corners is already opposite to an existing face, which
// should not happen unless the input was tampered with.
return -1;
}
// New tip corner.
const CornerIndex corner(3 * face.value());
// Update opposite corner mappings.
@ -616,6 +630,11 @@ int MeshEdgebreakerDecoderImpl<TraversalDecoder>::DecodeConnectivity(
return -1;
}
const CornerIndex corner_a = active_corner_stack.back();
if (corner_table_->Opposite(corner_a) != kInvalidCornerIndex) {
// Active corner is already opposite to an existing face, which should
// not happen unless the input was tampered with.
return -1;
}
// First corner on the new face is either corner "l" or "r".
const CornerIndex corner(3 * face.value());
@ -681,10 +700,14 @@ int MeshEdgebreakerDecoderImpl<TraversalDecoder>::DecodeConnectivity(
}
const CornerIndex corner_a = active_corner_stack.back();
if (corner_a == corner_b) {
// All matched corners must be different.
return -1;
}
if (corner_table_->Opposite(corner_a) != kInvalidCornerIndex ||
corner_table_->Opposite(corner_b) != kInvalidCornerIndex) {
// One of the corners is already opposite to an existing face, which
// should not happen unless the input was tempered with.
// should not happen unless the input was tampered with.
return -1;
}
@ -713,9 +736,15 @@ int MeshEdgebreakerDecoderImpl<TraversalDecoder>::DecodeConnectivity(
// Also update the vertex id at corner "n" and all corners that are
// connected to it in the CCW direction.
const CornerIndex first_corner = corner_n;
while (corner_n != kInvalidCornerIndex) {
corner_table_->MapCornerToVertex(corner_n, vertex_p);
corner_n = corner_table_->SwingLeft(corner_n);
if (corner_n == first_corner) {
// We reached the start again which should not happen for split
// symbols.
return -1;
}
}
// Make sure the old vertex n is now mapped to an invalid corner (make it
// isolated).
@ -842,6 +871,18 @@ int MeshEdgebreakerDecoderImpl<TraversalDecoder>::DecodeConnectivity(
const CornerIndex corner_c =
corner_table_->Next(corner_table_->LeftMostCorner(vert_x));
if (corner == corner_b || corner == corner_c || corner_b == corner_c) {
// All matched corners must be different.
return -1;
}
if (corner_table_->Opposite(corner) != kInvalidCornerIndex ||
corner_table_->Opposite(corner_b) != kInvalidCornerIndex ||
corner_table_->Opposite(corner_c) != kInvalidCornerIndex) {
// One of the corners is already opposite to an existing face, which
// should not happen unless the input was tampered with.
return -1;
}
const VertexIndex vert_p =
corner_table_->Vertex(corner_table_->Next(corner_c));

View File

@ -158,6 +158,10 @@ bool MeshSequentialDecoder::DecodeAndDecompressIndices(uint32_t num_faces) {
index_diff = -index_diff;
}
const int32_t index_value = index_diff + last_index_value;
if (index_value < 0) {
// Negative indices are not allowed.
return false;
}
face[j] = index_value;
last_index_value = index_value;
}

View File

@ -20,6 +20,7 @@
#include <array>
#include <memory>
#include <stack>
#include <vector>
#include "draco/compression/bit_coders/adaptive_rans_bit_decoder.h"
#include "draco/compression/bit_coders/direct_bit_decoder.h"
@ -103,6 +104,9 @@ class DynamicIntegerPointsKdTreeDecoder {
const uint32_t dimension() const { return dimension_; }
// Returns the number of decoded points. Must be called after DecodePoints().
uint32_t num_decoded_points() const { return num_decoded_points_; }
private:
uint32_t GetAxis(uint32_t num_remaining_points, const VectorUint32 &levels,
uint32_t last_axis);
@ -274,8 +278,10 @@ bool DynamicIntegerPointsKdTreeDecoder<compression_level_t>::DecodeInternal(
p_[axes_[j]] = 0;
const uint32_t num_remaining_bits = bit_length_ - levels[axes_[j]];
if (num_remaining_bits) {
remaining_bits_decoder_.DecodeLeastSignificantBits32(
num_remaining_bits, &p_[axes_[j]]);
if (!remaining_bits_decoder_.DecodeLeastSignificantBits32(
num_remaining_bits, &p_[axes_[j]])) {
return false;
}
}
p_[axes_[j]] = old_base[axes_[j]] | p_[axes_[j]];
}

View File

@ -27,4 +27,13 @@ BoundingBox::BoundingBox()
BoundingBox::BoundingBox(const Vector3f &min_point, const Vector3f &max_point)
: min_point_(min_point), max_point_(max_point) {}
const bool BoundingBox::IsValid() const {
return GetMinPoint()[0] != std::numeric_limits<float>::max() &&
GetMinPoint()[1] != std::numeric_limits<float>::max() &&
GetMinPoint()[2] != std::numeric_limits<float>::max() &&
GetMaxPoint()[0] != std::numeric_limits<float>::lowest() &&
GetMaxPoint()[1] != std::numeric_limits<float>::lowest() &&
GetMaxPoint()[2] != std::numeric_limits<float>::lowest();
}
} // namespace draco

View File

@ -38,6 +38,11 @@ class BoundingBox {
// Returns the maximum point of the bounding box.
inline const Vector3f &GetMaxPoint() const { return max_point_; }
// Checks if the bounding box object was created with the default constructor
// then never updated. Internally, checks if the bounding box minimum and
// maximum points hold the largest positive and smallest negative values.
const bool IsValid() const;
// Conditionally updates the bounding box with a given |new_point|.
void Update(const Vector3f &new_point) {
for (int i = 0; i < 3; i++) {

View File

@ -25,24 +25,32 @@ namespace draco {
// A wrapper around the standard std::vector that supports indexing of the
// vector entries using the strongly typed indices as defined in
// draco_index_type.h .
// TODO(ostava): Make the interface more complete. It's currently missing
// features such as iterators.
// draco_index_type.h.
// TODO(ostava): Make the interface more complete. It's currently missing some
// features.
template <class IndexTypeT, class ValueTypeT>
class IndexTypeVector {
public:
typedef typename std::vector<ValueTypeT>::const_reference const_reference;
typedef typename std::vector<ValueTypeT>::reference reference;
typedef typename std::vector<ValueTypeT>::iterator iterator;
typedef typename std::vector<ValueTypeT>::const_iterator const_iterator;
IndexTypeVector() {}
explicit IndexTypeVector(size_t size) : vector_(size) {}
IndexTypeVector(size_t size, const ValueTypeT &val) : vector_(size, val) {}
iterator begin() { return vector_.begin(); }
const_iterator begin() const { return vector_.begin(); }
iterator end() { return vector_.end(); }
const_iterator end() const { return vector_.end(); }
void clear() { vector_.clear(); }
void reserve(size_t size) { vector_.reserve(size); }
void resize(size_t size) { vector_.resize(size); }
void resize(size_t size, const ValueTypeT &val) { vector_.resize(size, val); }
void assign(size_t size, const ValueTypeT &val) { vector_.assign(size, val); }
iterator erase(iterator position) { return vector_.erase(position); }
void swap(IndexTypeVector<IndexTypeT, ValueTypeT> &arg) {
vector_.swap(arg.vector_);

View File

@ -18,7 +18,7 @@
namespace draco {
// Draco version is comprised of <major>.<minor>.<revision>.
static const char kDracoVersion[] = "1.5.3";
static const char kDracoVersion[] = "1.5.4";
const char *Version() { return kDracoVersion; }

View File

@ -19,6 +19,8 @@
#include "draco/core/vector_d.h"
namespace draco {
#define DRACO_INCREMENT_MOD(I, M) (((I) == ((M)-1)) ? 0 : ((I) + 1))
// Returns floor(sqrt(x)) where x is an integer number. The main intend of this
@ -52,4 +54,26 @@ inline uint64_t IntSqrt(uint64_t number) {
return square_root;
}
// Performs the addition in unsigned type to avoid signed integer overflow. Note
// that the result will be the same (for non-overflowing values).
template <
typename DataTypeT,
typename std::enable_if<std::is_integral<DataTypeT>::value &&
std::is_signed<DataTypeT>::value>::type* = nullptr>
inline DataTypeT AddAsUnsigned(DataTypeT a, DataTypeT b) {
typedef typename std::make_unsigned<DataTypeT>::type DataTypeUT;
return static_cast<DataTypeT>(static_cast<DataTypeUT>(a) +
static_cast<DataTypeUT>(b));
}
template <
typename DataTypeT,
typename std::enable_if<!std::is_integral<DataTypeT>::value ||
!std::is_signed<DataTypeT>::value>::type* = nullptr>
inline DataTypeT AddAsUnsigned(DataTypeT a, DataTypeT b) {
return a + b;
}
} // namespace draco
#endif // DRACO_CORE_MATH_UTILS_H_

View File

@ -5,7 +5,7 @@
#include "draco/core/draco_test_base.h"
using draco::Vector3f;
namespace draco {
TEST(MathUtils, Mod) { EXPECT_EQ(DRACO_INCREMENT_MOD(1, 1 << 1), 0); }
@ -20,3 +20,5 @@ TEST(MathUtils, IntSqrt) {
ASSERT_EQ(IntSqrt(number), static_cast<uint64_t>(floor(std::sqrt(number))));
}
}
} // namespace draco

View File

@ -20,8 +20,6 @@
namespace draco {
Options::Options() {}
void Options::MergeAndReplace(const Options &other_options) {
for (const auto &item : other_options.options_) {
options_[item.first] = item.second;

View File

@ -27,7 +27,8 @@ namespace draco {
// data type.
class Options {
public:
Options();
Options() = default;
~Options() = default;
// Merges |other_options| on top of the existing options of this instance
// replacing all entries that are present in both options instances.

File diff suppressed because it is too large Load Diff

View File

@ -22,6 +22,7 @@
#include <map>
#include <memory>
#include <string>
#include <unordered_set>
#include <vector>
#include "draco/core/decoder_buffer.h"
@ -31,6 +32,7 @@
#include "draco/io/texture_io.h"
#include "draco/mesh/mesh.h"
#include "draco/mesh/triangle_soup_mesh_builder.h"
#include "draco/point_cloud/point_cloud_builder.h"
#include "draco/scene/scene.h"
#include "tiny_gltf.h"
@ -130,7 +132,7 @@ class GltfDecoder {
// Checks that all the same glTF attribute types in different meshes and
// primitives contain the same characteristics.
Status CheckTypes(const std::string &attribute_name, int component_type,
int type);
int type, bool normalized);
// Accumulates the number of elements per attribute for |primitive|.
Status AccumulatePrimitiveStats(const tinygltf::Primitive &primitive);
@ -139,48 +141,86 @@ class GltfDecoder {
// GatherAttributeAndMaterialStats() must be called before this function. The
// GeometryAttribute::MATERIAL attribute will be created only if the glTF file
// contains more than one material.
Status AddAttributesToDracoMesh();
template <typename BuilderT>
Status AddAttributesToDracoMesh(BuilderT *builder);
// Copies attribute data from |accessor| and adds it to a Draco mesh using the
// geometry builder |builder|.
template <typename BuilderT>
Status AddAttributeValuesToBuilder(const std::string &attribute_name,
const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_elements,
const Eigen::Matrix4d &transform_matrix,
BuilderT *builder);
// Copies the tangent attribute data from |accessor| and adds it to a Draco
// mesh. This function will transform all of the data by |transform_matrix|
// and then normalize before adding the data to the Draco mesh.
// |indices_data| is the indices data from the glTF file. |att_id| is the
// attribute id of the tangent attribute in the Draco mesh. |number_of_faces|
// This is the number of faces this function will process. |reverse_winding|
// if set will change the orientation of the data.
Status AddTangentToMeshBuilder(const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_faces,
const Eigen::Matrix4d &transform_matrix,
bool reverse_winding,
TriangleSoupMeshBuilder *mb);
// attribute id of the tangent attribute in the Draco mesh.
// |number_of_elements| is the number of faces or points this function will
// process. |reverse_winding| if set will change the orientation of the data.
template <typename BuilderT>
Status AddTangentToBuilder(const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_elements,
const Eigen::Matrix4d &transform_matrix,
bool reverse_winding, BuilderT *builder);
// Copies the texture coordinate attribute data from |accessor| and adds it to
// a Draco mesh. This function will flip the data on the horizontal axis as
// Draco meshes store the texture coordinates differently than glTF.
// |indices_data| is the indices data from the glTF file. |att_id| is the
// attribute id of the texture coordinate attribute in the Draco mesh.
// |number_of_faces| This is the number of faces this function will process.
// |reverse_winding| if set will change the orientation of the data.
Status AddTexCoordToMeshBuilder(const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_faces,
bool reverse_winding,
TriangleSoupMeshBuilder *mb);
// |number_of_elements| is the number of faces or points this function will
// process. |reverse_winding| if set will change the orientation of the data.
template <typename BuilderT>
Status AddTexCoordToBuilder(const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_elements,
bool reverse_winding, BuilderT *builder);
// Copies the mesh feature ID attribute data from |accessor| and adds it to a
// Draco mesh. |indices_data| is the indices data from the glTF file. |att_id|
// is the attribute ID of the mesh feature ID attribute in the Draco mesh.
// |number_of_elements| is the number of faces or points this function will
// process. |reverse_winding| if set will change the orientation of the data.
template <typename BuilderT>
Status AddFeatureIdToBuilder(const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_elements,
bool reverse_winding,
const std::string &attribute_name,
BuilderT *builder);
// Copies the attribute data from |accessor| and adds it to a Draco mesh.
// This function will transform all of the data by |transform_matrix| before
// adding the data to the Draco mesh. |indices_data| is the indices data
// from the glTF file. |att_id| is the attribute id of the attribute in the
// Draco mesh. |number_of_faces| This is the number of faces this function
// will process. |normalize| if set will normalize all of the vector data
// after transformation. |reverse_winding| if set will change the orientation
// of the data.
Status AddTransformedDataToMeshBuilder(
const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data, int att_id,
int number_of_faces, const Eigen::Matrix4d &transform_matrix,
bool normalize, bool reverse_winding, TriangleSoupMeshBuilder *mb);
// Draco mesh. |number_of_elements| is the number of faces or points this
// function will process. |normalize| if set will normalize all of the vector
// data after transformation. |reverse_winding| if set will change the
// orientation of the data.
template <typename BuilderT>
Status AddTransformedDataToBuilder(const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_elements,
const Eigen::Matrix4d &transform_matrix,
bool normalize, bool reverse_winding,
BuilderT *builder);
// Sets values in |data| into the builder |builder| for |att_id|.
template <typename T>
void SetValuesForBuilder(const std::vector<uint32_t> &indices_data,
int att_id, int number_of_elements,
const std::vector<T> &data, bool reverse_winding,
TriangleSoupMeshBuilder *builder);
template <typename T>
void SetValuesForBuilder(const std::vector<uint32_t> &indices_data,
int att_id, int number_of_elements,
const std::vector<T> &data, bool reverse_winding,
PointCloudBuilder *builder);
// Sets values in |data| into the mesh builder |mb| for |att_id|.
// |reverse_winding| if set will change the orientation of the data.
@ -189,26 +229,43 @@ class GltfDecoder {
int number_of_faces, const std::vector<T> &data,
bool reverse_winding, TriangleSoupMeshBuilder *mb);
// Returns an address pointing to the content stored in |data|. This is used
// when passing values to mesh / point cloud builder when the input type can
// be either a VectorD or an arithmetic type.
template <typename T>
const void *GetDataContentAddress(const T &data) const;
// Adds the attribute data in |accessor| to |mb| for unique attribute
// |att_id|. |indices_data| is the mesh's indices data. |reverse_winding| if
// set will change the orientation of the data.
template <typename BuilderT>
Status AddAttributeDataByTypes(const tinygltf::Accessor &accessor,
const std::vector<uint32_t> &indices_data,
int att_id, int number_of_faces,
bool reverse_winding,
TriangleSoupMeshBuilder *mb);
int att_id, int number_of_elements,
bool reverse_winding, BuilderT *builder);
// Adds the textures to |owner|.
template <typename T>
Status CopyTextures(T *owner);
// Sets extra attribute properties on a constructed draco mesh.
void SetAttributePropertiesOnDracoMesh(Mesh *mesh);
// Adds the materials to |mesh|.
Status AddMaterialsToDracoMesh(Mesh *mesh);
// Adds the material data for the GeometryAttribute::MATERIAL attribute to the
// Draco mesh.
template <typename BuilderT>
Status AddMaterialDataToBuilder(int material_value, int number_of_elements,
BuilderT *builder);
template <typename T>
Status AddMaterialDataToMeshBuilder(T material_value, int number_of_faces);
Status AddMaterialDataToBuilderInternal(T material_value, int number_of_faces,
TriangleSoupMeshBuilder *builder);
template <typename T>
Status AddMaterialDataToBuilderInternal(T material_value,
int number_of_points,
PointCloudBuilder *builder);
// Checks if the glTF file contains a texture. If there is a texture, this
// function will read the texture data and add it to the Draco |material|. If
@ -251,17 +308,39 @@ class GltfDecoder {
const tinygltf::Value::Object &extension,
std::vector<MeshGroup::MaterialsVariantsMapping> *mappings);
// Adds an attribute of type |attribute_name| to |mb|. Returns the
// attribute id.
StatusOr<int> AddAttribute(const std::string &attribute_name,
int component_type, int type,
TriangleSoupMeshBuilder *mb);
// Decodes glTF mesh feature ID sets from all glTF primitives and adds them to
// |mesh|.
Status AddMeshFeaturesToDracoMesh(Mesh *mesh);
// Adds an attribute of |attribute_type| to |mb|. Returns the
// Decodes glTF mesh feature ID sets from glTF primitive in glTF node at
// |node_index| and adds them to |mesh|.
Status AddMeshFeaturesToDracoMesh(int node_index, Mesh *mesh);
// Decodes glTF structural metadata from glTF model and adds it to |geometry|.
template <typename GeometryT>
Status AddStructuralMetadataToGeometry(GeometryT *geometry);
// Decodes glTF mesh feature ID sets from |primitive| and adds them to |mesh|.
Status DecodeMeshFeatures(const tinygltf::Primitive &primitive,
TextureLibrary *texture_library, Mesh *mesh);
// Decodes glTF mesh feature ID sets from |extension| and adds them to the
// |mesh_features| vector.
Status DecodeMeshFeatures(
const tinygltf::Value::Object &extension, TextureLibrary *texture_library,
std::vector<std::unique_ptr<MeshFeatures>> *mesh_features);
// Adds an attribute of type |attribute_name| to |builder|. Returns the
// attribute id.
template <typename BuilderT>
StatusOr<int> AddAttribute(const std::string &attribute_name,
int component_type, int type, BuilderT *builder);
// Adds an attribute of |attribute_type| to |builder|. Returns the attribute
// id.
template <typename BuilderT>
StatusOr<int> AddAttribute(GeometryAttribute::Type attribute_type,
int component_type, int type,
TriangleSoupMeshBuilder *mb);
int component_type, int type, BuilderT *builder);
// Returns true if the KHR_texture_transform extension is set in |extension|.
// If the KHR_texture_transform extension is set then the values are returned
@ -307,6 +386,24 @@ class GltfDecoder {
const tinygltf::Value::Object &object,
float *value);
// Decodes an integer value with |name| from |object| to |value| and returns
// true if a well-formed value with such |name| is present.
static StatusOr<bool> DecodeInt(const std::string &name,
const tinygltf::Value::Object &object,
int *value);
// Decodes a string value with |name| from |object| to |value| and returns
// true if a well-formed value with such |name| is present.
static StatusOr<bool> DecodeString(const std::string &name,
const tinygltf::Value::Object &object,
std::string *value);
// Decodes data and data target from buffer view index with |name| in |object|
// to |data| and returns true if a well-formed data is present.
StatusOr<bool> DecodePropertyTableData(const std::string &name,
const tinygltf::Value::Object &object,
PropertyTable::Property::Data *data);
// Decodes a 3D vector with |name| from |object| to |value| and returns true
// if a well-formed vector with such |name| is present.
static StatusOr<bool> DecodeVector3f(const std::string &name,
@ -332,6 +429,23 @@ class GltfDecoder {
// Adds the skins to the scene.
Status AddSkinsToScene();
// All material and non-material textures (e.g., from EXT_mesh_features) are
// initially loaded into a texture library inside the the material library.
// These methods move |non_material_textures| from material texture library
// |material_tl| to non-material texture library |non_material_tl|.
static void MoveNonMaterialTextures(Mesh *mesh);
static void MoveNonMaterialTextures(Scene *scene);
static void MoveNonMaterialTextures(
const std::unordered_set<Texture *> &non_material_textures,
TextureLibrary *material_tl, TextureLibrary *non_material_tl);
// Builds and returns a mesh constructed from either mesh builder |mb| or
// point cloud builder |pb|. Mesh builder is used if |use_mesh_builder| is set
// to true.
static StatusOr<std::unique_ptr<Mesh>> BuildMeshFromBuilder(
bool use_mesh_builder, TriangleSoupMeshBuilder *mb,
PointCloudBuilder *pb);
// Map of glTF Mesh to Draco scene mesh group.
std::map<int, MeshGroupIndex> gltf_mesh_to_scene_mesh_group_;
@ -343,25 +457,34 @@ class GltfDecoder {
// Class used to build the Draco mesh.
TriangleSoupMeshBuilder mb_;
PointCloudBuilder pb_;
// Next face index used when adding attribute data to the Draco mesh.
int next_face_id_;
// Next point index used when adding attribute data to the point cloud.
int next_point_id_;
// Total number of indices from all the meshes and primitives.
int total_indices_count_;
int total_face_indices_count_;
int total_point_indices_count_;
// This is the id of the GeometryAttribute::MATERIAL attribute added to the
// Draco mesh.
int material_att_id_;
// Map of glTF attribute name to attribute element counts.
std::map<std::string, int> total_attribute_counts_;
// Data used when decoding the entire glTF asset into a single draco::Mesh.
// The struct tracks the total number of elements across all matching
// attributes and it ensures all matching attributes are compatible.
struct MeshAttributeData {
int component_type = 0;
int attribute_type = 0;
bool normalized = false;
int total_attribute_counts = 0;
};
// Map of glTF attribute name to attribute component type.
std::map<std::string, int> attribute_component_type_;
// Map of glTF attribute name to attribute type.
std::map<std::string, int> attribute_type_;
std::map<std::string, MeshAttributeData> mesh_attribute_data_;
// Map of glTF attribute name to Draco mesh attribute id.
std::map<std::string, int> attribute_name_to_draco_mesh_attribute_id_;

View File

@ -29,6 +29,7 @@
#include "draco/core/draco_test_base.h"
#include "draco/core/draco_test_utils.h"
#include "draco/core/draco_types.h"
#include "draco/io/gltf_test_helper.h"
#include "draco/mesh/mesh_are_equivalent.h"
#include "draco/mesh/mesh_utils.h"
#include "draco/scene/scene_indices.h"
@ -302,6 +303,24 @@ TEST(GltfDecoderTest, ColorAttributeGltf) {
EXPECT_EQ(mesh->num_faces(), 224) << "Unexpected number of faces.";
ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 1);
ASSERT_EQ(mesh->GetMaterialLibrary().GetMaterial(0)->NumTextureMaps(), 0);
ASSERT_NE(mesh->GetNamedAttribute(GeometryAttribute::COLOR), nullptr);
ASSERT_EQ(mesh->GetNamedAttribute(GeometryAttribute::COLOR)->data_type(),
draco::DT_UINT8);
// Ensure the normalized property for the color attribute is set properly.
ASSERT_TRUE(mesh->GetNamedAttribute(GeometryAttribute::COLOR)->normalized());
}
// Tests COLOR_0 input attribute when the asset is loaded into a scene.
TEST(GltfDecoderTest, ColorAttributeGltfScene) {
const std::string file_name = "test_pos_color.gltf";
const std::unique_ptr<Scene> scene(DecodeGltfFileToScene(file_name));
ASSERT_EQ(scene->NumMeshes(), 1);
const Mesh &mesh = scene->GetMesh(MeshIndex(0));
ASSERT_NE(mesh.GetNamedAttribute(GeometryAttribute::COLOR), nullptr);
ASSERT_EQ(mesh.GetNamedAttribute(GeometryAttribute::COLOR)->data_type(),
draco::DT_UINT8);
// Ensure the normalized property for the color attribute is set properly.
ASSERT_TRUE(mesh.GetNamedAttribute(GeometryAttribute::COLOR)->normalized());
}
// Tests a mesh with two sets of texture coordinates.
@ -1233,5 +1252,150 @@ TEST(GltfDecoderTest, MaterialsVariants) {
ASSERT_EQ(dragon_mappings[1].variants[0], 1);
}
TEST(GltfDecoderTest, DecodeMeshWithMeshFeaturesWithStructuralMetadata) {
// Checks decoding of a simple glTF with mesh features and structural metadata
// property table as draco::Mesh.
constexpr bool kDracoCompressionEnabled = false;
const auto path = GetTestFileFullPath("BoxMeta/glTF/BoxMeta.gltf");
draco::GltfDecoder decoder;
DRACO_ASSIGN_OR_ASSERT(auto mesh, decoder.DecodeFromFile(path));
ASSERT_NE(mesh, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh, kDracoCompressionEnabled);
GltfTestHelper::CheckBoxMetaStructuralMetadata(*mesh);
}
TEST(GltfDecoderTest, DecodeMeshWithMeshFeaturesWithDracoCompression) {
// Checks decoding of a simple glTF with mesh features compressed with Draco
// as draco::Mesh.
constexpr bool kDracoCompressionEnabled = true;
const auto path = GetTestFileFullPath("BoxMetaDraco/glTF/BoxMetaDraco.gltf");
draco::GltfDecoder decoder;
DRACO_ASSIGN_OR_ASSERT(auto mesh, decoder.DecodeFromFile(path));
ASSERT_NE(mesh, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh, kDracoCompressionEnabled);
}
TEST(GltfDecoderTest, DecodeSceneWithMeshFeaturesWithStructuralMetadata) {
// Checks decoding of a simple glTF with mesh features and structural metadata
// property table as draco::Scene.
constexpr bool kHasDracoCompression = false;
const auto path = GetTestFileFullPath("BoxMeta/glTF/BoxMeta.gltf");
draco::GltfDecoder decoder;
DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path));
ASSERT_NE(scene, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*scene, kHasDracoCompression);
GltfTestHelper::CheckBoxMetaStructuralMetadata(*scene);
}
TEST(GltfDecoderTest, DecodeSceneWithMeshFeaturesWithDracoCompression) {
// Checks decoding of a simple glTF with mesh features compressed with Draco
// as draco::Scene.
constexpr bool kHasDracoCompression = true;
const auto path = GetTestFileFullPath("BoxMetaDraco/glTF/BoxMetaDraco.gltf");
draco::GltfDecoder decoder;
DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path));
ASSERT_NE(scene, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*scene, kHasDracoCompression);
}
TEST(GltfDecoderTest, DecodePointCloudToMesh) {
// Checks decoding of a simple glTF with point primitives (no meshes).
const auto path = GetTestFileFullPath(
"SphereTwoMaterials/sphere_two_materials_point_cloud.gltf");
draco::GltfDecoder decoder;
DRACO_ASSIGN_OR_ASSERT(auto mesh, decoder.DecodeFromFile(path));
ASSERT_NE(mesh, nullptr);
// Check the point cloud has expected number of points and attributes.
ASSERT_EQ(mesh->num_faces(), 0);
ASSERT_EQ(mesh->num_points(), 462);
ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::NORMAL), 1);
ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 1);
ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::TANGENT), 1);
ASSERT_EQ(mesh->NumNamedAttributes(draco::GeometryAttribute::MATERIAL), 1);
// Check the point cloud has two materials.
ASSERT_EQ(mesh->GetNamedAttribute(draco::GeometryAttribute::MATERIAL)->size(),
2);
}
TEST(GltfDecoderTest, DecodeMeshAndPointCloudToMesh) {
// Checks decoding of a simple glTF with a mesh and point primitives into
// draco::Mesh. This should fail (draco::Mesh can't support mixed primitives).
const auto path = GetTestFileFullPath(
"SphereTwoMaterials/sphere_two_materials_mesh_and_point_cloud.gltf");
draco::GltfDecoder decoder;
ASSERT_FALSE(decoder.DecodeFromFile(path).ok());
}
TEST(GltfDecoderTest, DecodePointCloudToScene) {
// Checks decoding of a simple glTF with point primitives (no meshes) into
// draco::Scene.
const auto path = GetTestFileFullPath(
"SphereTwoMaterials/sphere_two_materials_point_cloud.gltf");
draco::GltfDecoder decoder;
DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path));
ASSERT_NE(scene, nullptr);
ASSERT_EQ(scene->NumMeshes(), 2);
// Check that each point cloud has expected number of points and attributes.
for (draco::MeshIndex mi(0); mi < scene->NumMeshes(); ++mi) {
const auto &mesh = scene->GetMesh(mi);
ASSERT_EQ(mesh.num_faces(), 0);
ASSERT_EQ(mesh.num_points(), 231);
ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::NORMAL), 1);
ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 1);
ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TANGENT), 1);
ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::MATERIAL), 0);
}
// Check the materials are properly assigned to each point cloud.
const auto instances = draco::SceneUtils::ComputeAllInstances(*scene);
ASSERT_EQ(instances.size(), 2);
ASSERT_EQ(draco::SceneUtils::GetMeshInstanceMaterialIndex(
*scene, instances[draco::MeshInstanceIndex(0)]),
0);
ASSERT_EQ(draco::SceneUtils::GetMeshInstanceMaterialIndex(
*scene, instances[draco::MeshInstanceIndex(1)]),
1);
}
TEST(GltfDecoderTest, DecodeMeshAndPointCloudToScene) {
// Checks decoding of a simple glTF with a mesh and point primitives into
// draco::Scene.
const auto path = GetTestFileFullPath(
"SphereTwoMaterials/sphere_two_materials_mesh_and_point_cloud.gltf");
draco::GltfDecoder decoder;
DRACO_ASSIGN_OR_ASSERT(auto scene, decoder.DecodeFromFileToScene(path));
ASSERT_NE(scene, nullptr);
ASSERT_EQ(scene->NumMeshes(), 2);
// First mesh should be a real mesh while the other one should be a point
// cloud (no faces). Otherwise, they should have the same properties.
for (draco::MeshIndex mi(0); mi < scene->NumMeshes(); ++mi) {
const auto &mesh = scene->GetMesh(mi);
ASSERT_EQ(mesh.num_faces(), mi.value() == 0 ? 224 : 0);
ASSERT_EQ(mesh.num_points(), 231);
ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::NORMAL), 1);
ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TEX_COORD), 1);
ASSERT_EQ(mesh.NumNamedAttributes(draco::GeometryAttribute::TANGENT), 1);
}
}
TEST(GltfDecoderTest, TestLoadUnsupportedTexCoordAttributes) {
// Checks that unsupported attributes (TEXCOORD_2 ... TEXCOORD_7) are ignored
// without causing the decoder to fail.
auto scene = draco::ReadSceneFromTestFile("UnusedTexCoords/TexCoord2.gltf");
ASSERT_NE(scene, nullptr);
ASSERT_EQ(scene->GetMesh(draco::MeshIndex(0))
.NumNamedAttributes(draco::GeometryAttribute::TEX_COORD),
2);
}
} // namespace draco
#endif // DRACO_TRANSCODER_SUPPORTED

File diff suppressed because it is too large Load Diff

View File

@ -38,7 +38,8 @@ class GltfEncoder {
public:
// Types of output modes for the glTF data encoder. |COMPACT| will output
// required and non-default glTF data. |VERBOSE| will output required and
// default glTF data.
// default glTF data as well as readable JSON even when the output is saved in
// a glTF-Binary file.
enum OutputType { COMPACT, VERBOSE };
GltfEncoder();
@ -95,6 +96,10 @@ class GltfEncoder {
Status EncodeToBuffer(const Scene &scene, class GltfAsset *gltf_asset,
EncoderBuffer *out_buffer);
// Sets appropriate Json writer mode based on the provided |gltf_asset|
// options.
static void SetJsonWriterMode(class GltfAsset *gltf_asset);
// Writes the ".gltf" and associted files. |gltf_asset| holds the glTF data.
// |buffer| is the encoded glTF json data. |filename| is the name of the
// ".gltf" file. |bin_filename| is the name of the glTF bin file. The other

View File

@ -26,6 +26,7 @@
#include "draco/io/file_reader_interface.h"
#include "draco/io/file_utils.h"
#include "draco/io/gltf_decoder.h"
#include "draco/io/gltf_test_helper.h"
#include "draco/io/parser_utils.h"
#include "draco/io/texture_io.h"
#include "draco/material/material_utils.h"
@ -308,6 +309,17 @@ class GltfEncoderTest : public ::testing::Test {
ASSERT_NE(*mesh_gltf, nullptr);
}
// Encode |mesh| to a temporary glTF file. Then decode the glTF file as a
// scene and return it in |scene_gltf|.
void MeshToDecodedGltfScene(const Mesh &mesh,
std::unique_ptr<Scene> *scene_gltf) {
const std::string gltf_file_full_path =
draco::GetTestTempFileFullPath("test.gltf");
EncodeMeshToFile(mesh, gltf_file_full_path);
*scene_gltf = std::move(ReadSceneFromFile(gltf_file_full_path)).value();
ASSERT_NE(*scene_gltf, nullptr);
}
// Encode |scene| to a temporary glTF file. Then decode the glTF file and
// return the scene in |scene_gltf|.
void SceneToDecodedGltfScene(const Scene &scene,
@ -697,7 +709,7 @@ TEST_F(GltfEncoderTest, DracoCompressionCheckOptions) {
const size_t default_bin_size = draco::GetFileSize(gltf_bin_filename);
// Test applying more quantization will make the compressed size smaller.
options.quantization_bits_position = 6;
options.quantization_position.SetQuantizationBits(6);
options.quantization_bits_normal = 6;
options.quantization_bits_tex_coord = 6;
SceneUtils::SetDracoCompressionOptions(&options, scene.get());
@ -723,7 +735,7 @@ TEST_F(GltfEncoderTest, DracoCompressionCheckOptions) {
draco::GetFileSize(gltf_bin_filename);
ASSERT_LT(more_weight_quantization_bin_size, more_quantization_bin_size);
options.quantization_bits_position = 20;
options.quantization_position.SetQuantizationBits(20);
options.quantization_bits_normal = 20;
options.quantization_bits_tex_coord = 20;
options.quantization_bits_weight = 20;
@ -794,7 +806,7 @@ TEST_F(GltfEncoderTest, TestQuantizationPerAttribute) {
// Test setting more position quantization then the default makes the
// compressed size smaller.
options.quantization_bits_position = 6;
options.quantization_position.SetQuantizationBits(6);
SceneUtils::SetDracoCompressionOptions(&options, scene.get());
ASSERT_TRUE(gltf_encoder.EncodeToFile<Scene>(*scene, gltf_file_full_path,
folder_path))
@ -1489,6 +1501,157 @@ TEST_F(GltfEncoderTest, EncodeMaterialsVariants) {
EncodeSceneToGltfAndCompare(scene.get());
}
// Tests encoding of draco::Scene to glTF with various mesh feature ID sets and
// structural metadata property table.
TEST_F(GltfEncoderTest, EncodeSceneWithMeshFeaturesWithStructuralMetadata) {
const std::string file_name = "BoxMeta/glTF/BoxMeta.gltf";
constexpr bool kHasMeshFeatures = true;
constexpr bool kHasStructuralMetadata = true;
constexpr bool kHasDracoCompression = false;
// Read test file from file.
const std::unique_ptr<Scene> scene(DecodeTestGltfFileToScene(file_name));
ASSERT_NE(scene, nullptr);
// Encode the scene to glTF and decode it back to draco::Scene and check.
std::unique_ptr<Scene> scene_from_gltf;
SceneToDecodedGltfScene(*scene, &scene_from_gltf);
ASSERT_NE(scene_from_gltf, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*scene_from_gltf,
kHasDracoCompression);
GltfTestHelper::CheckBoxMetaStructuralMetadata(*scene_from_gltf);
}
// Tests encoding of draco::Scene with Draco compression to glTF with various
// mesh feature ID sets.
TEST_F(GltfEncoderTest, EncodeSceneWithMeshFeaturesWithDracoCompression) {
const std::string file_name = "BoxMetaDraco/glTF/BoxMetaDraco.gltf";
constexpr bool kHasMeshFeatures = true;
constexpr bool kHasStructuralMetadata = false;
constexpr bool kHasDracoCompression = true;
// Read test file from file.
const std::unique_ptr<Scene> scene(DecodeTestGltfFileToScene(file_name));
ASSERT_NE(scene, nullptr);
// Encode the scene to glTF and decode it back to draco::Scene and check.
std::unique_ptr<Scene> scene_from_gltf;
SceneToDecodedGltfScene(*scene, &scene_from_gltf);
ASSERT_NE(scene_from_gltf, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*scene_from_gltf,
kHasDracoCompression);
}
// Tests encoding of draco::Mesh to glTF with various mesh feature ID sets and
// structural metadata property table.
TEST_F(GltfEncoderTest, EncodeMeshWithMeshFeaturesWithStructuralMetadata) {
const std::string file_name = "BoxMeta/glTF/BoxMeta.gltf";
constexpr bool kHasDracoCompression = false;
// Read test file from file.
const std::unique_ptr<Mesh> mesh(ReadMeshFromTestFile(file_name));
ASSERT_NE(mesh, nullptr);
// Encode the scene to glTF and decode it back to draco::Mesh and check.
std::unique_ptr<Mesh> mesh_from_gltf;
MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf);
ASSERT_NE(mesh_from_gltf, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh_from_gltf,
kHasDracoCompression);
GltfTestHelper::CheckBoxMetaStructuralMetadata(*mesh_from_gltf);
}
// Tests encoding of draco::Mesh with Draco compression to glTF with various
// mesh feature ID sets.
TEST_F(GltfEncoderTest, EncodeMeshWithMeshFeaturesWithDracoCompression) {
constexpr bool kHasDracoCompression = true;
const std::string file_name = "BoxMetaDraco/glTF/BoxMetaDraco.gltf";
// Read test file from file.
const std::unique_ptr<Mesh> mesh(ReadMeshFromTestFile(file_name));
ASSERT_NE(mesh, nullptr);
// Encode the scene to glTF and decode it back to draco::Mesh and check.
std::unique_ptr<Mesh> mesh_from_gltf;
MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf);
ASSERT_NE(mesh_from_gltf, nullptr);
GltfTestHelper::CheckBoxMetaMeshFeatures(*mesh_from_gltf,
kHasDracoCompression);
}
// Tests encoding of draco::Mesh with mesh features associated with different
// mesh primitives.
TEST_F(GltfEncoderTest, EncodeMeshWithMeshFeaturesWithMultiplePrimitives) {
const std::string file_name = "BoxesMeta/glTF/BoxesMeta.gltf";
// Read test file from file.
const std::unique_ptr<Mesh> mesh(ReadMeshFromTestFile(file_name));
ASSERT_NE(mesh, nullptr);
// All mesh features should share two textures.
ASSERT_EQ(mesh->GetNonMaterialTextureLibrary().NumTextures(), 2);
// Encode the scene to glTF and decode it back to draco::Mesh and check.
std::unique_ptr<Mesh> mesh_from_gltf;
MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf);
ASSERT_NE(mesh_from_gltf, nullptr);
ASSERT_EQ(mesh_from_gltf->GetMaterialLibrary().NumMaterials(), 2);
ASSERT_EQ(mesh_from_gltf->NumMeshFeatures(), 5);
// First two mesh features should be used by material 0 and the reamining by
// material 1.
for (draco::MeshFeaturesIndex mfi(0); mfi < 5; ++mfi) {
// Each mesh feature should be used by a single material.
ASSERT_EQ(mesh_from_gltf->NumMeshFeaturesMaterialMasks(mfi), 1);
if (mfi.value() < 2) {
ASSERT_EQ(mesh_from_gltf->GetMeshFeaturesMaterialMask(mfi, 0), 0);
} else {
ASSERT_EQ(mesh_from_gltf->GetMeshFeaturesMaterialMask(mfi, 0), 1);
}
}
// All mesh features should share two textures.
ASSERT_EQ(mesh_from_gltf->GetNonMaterialTextureLibrary().NumTextures(), 2);
// Ensure it still works correctly when we re-encode the source |mesh| as a
// scene.
std::unique_ptr<Scene> scene_from_gltf;
MeshToDecodedGltfScene(*mesh, &scene_from_gltf);
ASSERT_NE(scene_from_gltf, nullptr);
ASSERT_EQ(scene_from_gltf->NumMeshes(), 2);
// First mesh should have 2 mesh features and the other one 3 mesh features.
ASSERT_EQ(scene_from_gltf->GetMesh(draco::MeshIndex(0)).NumMeshFeatures(), 2);
ASSERT_EQ(scene_from_gltf->GetMesh(draco::MeshIndex(1)).NumMeshFeatures(), 3);
// All mesh features should share two textures.
ASSERT_EQ(scene_from_gltf->GetNonMaterialTextureLibrary().NumTextures(), 2);
}
// Tests encoding of draco::Mesh containing a point cloud and two materials.
TEST_F(GltfEncoderTest, EncodePointCloudWithMaterials) {
const std::string file_name =
"SphereTwoMaterials/sphere_two_materials_point_cloud.gltf";
// Read test file from file.
const std::unique_ptr<Mesh> mesh(ReadMeshFromTestFile(file_name));
ASSERT_NE(mesh, nullptr);
// Input should have no faces.
ASSERT_EQ(mesh->num_faces(), 0);
// There should be two materials
ASSERT_EQ(mesh->GetMaterialLibrary().NumMaterials(), 2);
// Encode the mesh to glTF and decode it back to draco::Mesh and check.
std::unique_ptr<Mesh> mesh_from_gltf;
MeshToDecodedGltfMesh(*mesh, &mesh_from_gltf);
ASSERT_NE(mesh_from_gltf, nullptr);
ASSERT_EQ(mesh_from_gltf->num_faces(), 0);
ASSERT_EQ(mesh_from_gltf->GetMaterialLibrary().NumMaterials(), 2);
}
} // namespace draco
#endif // DRACO_TRANSCODER_SUPPORTED

View File

@ -0,0 +1,823 @@
// Copyright 2022 The Draco Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#include "draco/io/gltf_test_helper.h"
#include <array>
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "draco/core/draco_test_base.h"
#include "draco/core/draco_test_utils.h"
#include "draco/metadata/property_table.h"
#include "draco/texture/texture_library.h"
namespace draco {
#ifdef DRACO_TRANSCODER_SUPPORTED
void GltfTestHelper::AddBoxMetaMeshFeatures(Scene *scene) {
// Check the scene.
ASSERT_NE(scene, nullptr);
ASSERT_EQ(scene->NumMeshes(), 1);
TextureLibrary &texture_library = scene->GetNonMaterialTextureLibrary();
ASSERT_EQ(texture_library.NumTextures(), 0);
// Check the mesh.
Mesh &mesh = scene->GetMesh(MeshIndex(0));
ASSERT_EQ(mesh.num_faces(), 12);
ASSERT_EQ(mesh.num_attributes(), 2);
ASSERT_EQ(mesh.num_points(), 24);
// Get mesh element counts.
const int num_faces = mesh.num_faces();
const int num_corners = 3 * mesh.num_faces();
const int num_vertices =
mesh.GetNamedAttribute(GeometryAttribute::POSITION)->size();
// Add feature ID set with per-face Uint8 attribute named _FEATURE_ID_0.
{
// Create feature ID attribute.
constexpr DataType kType = DataType::DT_UINT8;
std::unique_ptr<PointAttribute> pa(new PointAttribute());
pa->Init(GeometryAttribute::GENERIC, 1, kType, false, mesh.num_faces());
for (AttributeValueIndex avi(0); avi < num_faces; ++avi) {
const int8_t val = avi.value();
pa->SetAttributeValue(avi, &val);
}
const int att_id = mesh.AddPerFaceAttribute(std::move(pa));
std::unique_ptr<AttributeMetadata> metadata(new AttributeMetadata());
metadata->AddEntryString("attribute_name", "_FEATURE_ID_0");
mesh.AddAttributeMetadata(att_id, std::move(metadata));
// Add feature ID set to the mesh.
std::unique_ptr<MeshFeatures> features(new MeshFeatures());
features->SetLabel("faces");
features->SetFeatureCount(num_faces);
features->SetNullFeatureId(100);
features->SetPropertyTableIndex(0);
features->SetAttributeIndex(0);
mesh.AddMeshFeatures(std::move(features));
}
// Add feature ID set with per-vertex Uint16 attribute named _FEATURE_ID_1.
{
// Create feature ID attribute.
constexpr DataType kType = DataType::DT_UINT16;
std::unique_ptr<PointAttribute> pa(new PointAttribute());
pa->Init(GeometryAttribute::GENERIC, 1, kType, false, num_vertices);
for (AttributeValueIndex avi(0); avi < num_vertices; ++avi) {
const uint16_t val = avi.value();
pa->SetAttributeValue(avi, &val);
}
const int att_id = mesh.AddPerVertexAttribute(std::move(pa));
std::unique_ptr<AttributeMetadata> metadata(new AttributeMetadata());
metadata->AddEntryString("attribute_name", "_FEATURE_ID_1");
mesh.AddAttributeMetadata(att_id, std::move(metadata));
// Add feature ID set to the mesh.
std::unique_ptr<MeshFeatures> features(new MeshFeatures());
features->SetLabel("vertices");
features->SetFeatureCount(num_vertices);
features->SetNullFeatureId(101);
features->SetPropertyTableIndex(1);
features->SetAttributeIndex(1);
mesh.AddMeshFeatures(std::move(features));
}
// Add feature ID set with per-corner Float attribute named _FEATURE_ID_2.
{
// Create feature ID attribute.
constexpr DataType kType = DataType::DT_FLOAT32;
std::unique_ptr<PointAttribute> pa(new PointAttribute());
pa->Init(GeometryAttribute::GENERIC, 1, kType, false, num_corners);
IndexTypeVector<CornerIndex, AttributeValueIndex> corner_to_value(
num_corners);
for (AttributeValueIndex avi(0); avi < num_corners; ++avi) {
const float val = avi.value();
pa->SetAttributeValue(avi, &val);
corner_to_value[CornerIndex(avi.value())] = avi;
}
const int att_id =
mesh.AddAttributeWithConnectivity(std::move(pa), corner_to_value);
std::unique_ptr<AttributeMetadata> metadata(new AttributeMetadata());
metadata->AddEntryString("attribute_name", "_FEATURE_ID_2");
mesh.AddAttributeMetadata(att_id, std::move(metadata));
// Add feature ID set to the mesh.
std::unique_ptr<MeshFeatures> features(new MeshFeatures());
features->SetFeatureCount(num_corners);
features->SetAttributeIndex(2);
mesh.AddMeshFeatures(std::move(features));
}
// Add feature ID set with the IDs stored in the R texture channel and
// accessible via the first texture coordinate attribute.
{
// Add the first texture coordinate attribute.
constexpr DataType kType = DataType::DT_FLOAT32;
std::unique_ptr<PointAttribute> pa(new PointAttribute());
pa->Init(GeometryAttribute::TEX_COORD, 2, kType, false, num_vertices);
std::vector<std::array<float, 2>> uv = {
{0.0000f, 0.0000f}, {0.0000f, 0.5000f}, {0.0000f, 1.0000f},
{0.5000f, 0.0000f}, {0.5000f, 0.5000f}, {0.5000f, 1.0000f},
{1.0000f, 0.0000f}, {1.0000f, 0.5000f}};
for (AttributeValueIndex avi(0); avi < num_vertices; ++avi) {
const int index = avi.value();
pa->SetAttributeValue(avi, uv[index].data());
}
mesh.AddPerVertexAttribute(std::move(pa));
}
// Add feature ID set with the IDs stored in the GBA texture channels and
// accessible via the second texture coordinate attribute.
{
// Add the second texture coordinate attribute.
constexpr DataType kType = DataType::DT_FLOAT32;
std::unique_ptr<PointAttribute> pa(new PointAttribute());
pa->Init(GeometryAttribute::TEX_COORD, 2, kType, false, num_vertices);
std::vector<std::array<float, 2>> uv = {
{0.0000f, 0.0000f}, {0.0000f, 0.5000f}, {0.0000f, 1.0000f},
{0.5000f, 0.0000f}, {0.5000f, 0.5000f}, {0.5000f, 1.0000f},
{1.0000f, 0.0000f}, {1.0000f, 0.5000f}};
for (AttributeValueIndex avi(0); avi < num_vertices; ++avi) {
const int index = avi.value();
pa->SetAttributeValue(avi, uv[index].data());
}
mesh.AddPerVertexAttribute(std::move(pa));
ASSERT_EQ(mesh.NumNamedAttributes(GeometryAttribute::TEX_COORD), 2);
}
}
void GltfTestHelper::AddBoxMetaStructuralMetadata(Scene *scene) {
// Add structural metadata property table schema in the following JSON:
// "schema": {
// "id": "galaxy",
// "classes": {
// "planet": {
// "properties": {
// "color": {
// "componentType": "UINT8",
// "description": "The RGB color.",
// "required": true,
// "type": "VEC3"
// },
// "name": {
// "description": "The name.",
// "required": true,
// "type": "STRING"
// }
// "sequence": {
// "description": "The number sequence.",
// "required": false,
// "type": "SCALAR"
// }
// }
// }
// },
// "enums": {
// "classifications": {
// "description": "Classifications of planets.",
// "name": "classifications",
// "values": [
// { "name": "Unspecified", "value": 0 },
// { "name": "Gas Giant", "value": 1 },
// { "name": "Waterworld", "value": 2 },
// { "name": "Agriworld", "value": 3 },
// { "name": "Ordnance", "value": 4 }
// ]
// }
// }
// }
typedef PropertyTable::Schema::Object Object;
PropertyTable::Schema schema;
Object &json = schema.json;
json.SetObjects().emplace_back("id", "galaxy");
json.SetObjects().emplace_back("classes");
json.SetObjects().back().SetObjects().emplace_back("planet");
Object &planet = json.SetObjects().back().SetObjects().back();
planet.SetObjects().emplace_back("properties");
Object &properties = planet.SetObjects().back();
properties.SetObjects().emplace_back("color");
Object &color = properties.SetObjects().back();
color.SetObjects().emplace_back("componentType", "UINT8");
color.SetObjects().emplace_back("description", "The RGB color.");
color.SetObjects().emplace_back("required", true);
color.SetObjects().emplace_back("type", "VEC3");
properties.SetObjects().emplace_back("name");
Object &name = properties.SetObjects().back();
name.SetObjects().emplace_back("description", "The name.");
name.SetObjects().emplace_back("required", true);
name.SetObjects().emplace_back("type", "STRING");
properties.SetObjects().emplace_back("sequence");
Object &sequence = properties.SetObjects().back();
sequence.SetObjects().emplace_back("description", "The number sequence.");
sequence.SetObjects().emplace_back("required", false);
sequence.SetObjects().emplace_back("type", "SCALAR");
json.SetObjects().emplace_back("enums");
json.SetObjects().back().SetObjects().emplace_back("classifications");
Object &classifications = json.SetObjects().back().SetObjects().back();
classifications.SetObjects().emplace_back("description",
"Classifications of planets.");
classifications.SetObjects().emplace_back("name", "classifications");
classifications.SetObjects().emplace_back("values");
Object &values = classifications.SetObjects().back();
values.SetArray().emplace_back();
values.SetArray().back().SetObjects().emplace_back("name", "Unspecified");
values.SetArray().back().SetObjects().emplace_back("value", 0);
values.SetArray().emplace_back();
values.SetArray().back().SetObjects().emplace_back("name", "Gas Giant");
values.SetArray().back().SetObjects().emplace_back("value", 1);
values.SetArray().emplace_back();
values.SetArray().back().SetObjects().emplace_back("name", "Waterworld");
values.SetArray().back().SetObjects().emplace_back("value", 2);
values.SetArray().emplace_back();
values.SetArray().back().SetObjects().emplace_back("name", "Agriworld");
values.SetArray().back().SetObjects().emplace_back("value", 3);
values.SetArray().emplace_back();
values.SetArray().back().SetObjects().emplace_back("name", "Ordnance");
values.SetArray().back().SetObjects().emplace_back("value", 4);
// Add property table schema to the scene.
scene->GetStructuralMetadata().SetPropertyTableSchema(schema);
// Add structural metadata property table.
std::unique_ptr<PropertyTable> table(new PropertyTable());
table->SetName("Galaxy far far away.");
table->SetClass("planet");
table->SetCount(16);
// Add property describing RGB color components of the planet class.
{
std::unique_ptr<PropertyTable::Property> property(
new PropertyTable::Property());
property->SetName("color");
property->GetData().target = 34962; // ARRAY_BUFFER.
property->GetData().data = {94, 94, 194, // Tatooine
94, 145, 161, // Corusant
118, 171, 91, // Naboo
103, 139, 178, // Alderaan
83, 98, 154, // Dagobah
91, 177, 175, // Mandalore
190, 92, 108, // Corellia
72, 69, 169, // Kamino
154, 90, 101, // Kashyyyk
174, 85, 175, // Dantooine
184, 129, 96, // Hoth
185, 91, 180, // Mustafar
194, 150, 83, // Bespin
204, 111, 134, // Yavin
182, 90, 89, // Geonosis
0, 0, 0}; // UNLABELED
table->AddProperty(std::move(property));
}
// Add property that describes names of the planet class.
{
std::unique_ptr<PropertyTable::Property> property(
new PropertyTable::Property());
property->SetName("name");
property->GetData().target = 34963; // ELEMENT_ARRAY_BUFFER.
const std::string data =
"named_class:Tatooine"
"named_class:Corusant"
"named_class:Naboo"
"named_class:Alderaan"
"named_class:Dagobah"
"named_class:Mandalore"
"named_class:Corellia"
"named_class:Kamino"
"named_class:Kashyyyk"
"named_class:Dantooine"
"named_class:Hoth"
"named_class:Mustafar"
"named_class:Bespin"
"named_class:Yavin"
"named_class:Geonosis"
"UNLABELED";
property->GetData().data.assign(data.begin(), data.end());
property->GetStringOffsets().type = "UINT32";
property->GetStringOffsets().data.target = 34963; // ELEMENT_ARRAY_BUFFER.
property->GetStringOffsets().data.data = {0, 0, 0, 0, // Tatooine
20, 0, 0, 0, // Corusant
40, 0, 0, 0, // Naboo
57, 0, 0, 0, // Alderaan
77, 0, 0, 0, // Dagobah
96, 0, 0, 0, // Mandalore
117, 0, 0, 0, // Corellia
137, 0, 0, 0, // Kamino
155, 0, 0, 0, // Kashyyyk
175, 0, 0, 0, // Dantooine
196, 0, 0, 0, // Hoth
212, 0, 0, 0, // Mustafar
232, 0, 0, 0, // Bespin
250, 0, 0, 0, // Yavin
12, 1, 0, 0, // Geonosis
32, 1, 0, 0, // UNLABELED
41, 1, 0, 0};
table->AddProperty(std::move(property));
}
// Add property that contains variable-length number sequence of the planet
// class.
{
std::unique_ptr<PropertyTable::Property> property(
new PropertyTable::Property());
property->SetName("sequence");
property->GetData().target = 34963; // ELEMENT_ARRAY_BUFFER.
const std::vector<float> data = {
0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f, // Tatooine
6.5f, 7.5f, // Corusant
8.5f, // Naboo
9.5f, // Alderaan
10.5f, 11.5f, // Dagobah
12.5f, 13.5f, 14.5f, 15.5f, // Mandalore
16.5f, 17.5f, // Corellia
18.5f, 19.5f, // Kamino
20.5f, 21.5f, 22.5f, // Kashyyyk
23.5f, 24.5f, 25.5f, // Dantooine
26.5f, 27.5f, // Hoth
28.5f, 29.5f, // Mustafar
30.5f, 31.5f, 32.5f, // Bespin
33.5f, 34.5f, 35.5f, // Yavin
36.5f, 37.5f, 38.5f, 39.5f, 40.5f // Geonosis
}; // UNLABELED (empty array).
property->GetData().data.resize(4 * data.size());
memcpy(property->GetData().data.data(), data.data(), 4 * data.size());
property->GetArrayOffsets().type = "UINT8";
property->GetArrayOffsets().data.target = 34963; // ELEMENT_ARRAY_BUFFER.
property->GetArrayOffsets().data.data = {
0 * 4, // Tatooine
6 * 4, // Corusant
8 * 4, // Naboo
9 * 4, // Alderaan
10 * 4, // Dagobah
12 * 4, // Mandalore
16 * 4, // Corellia
18 * 4, // Kamino
20 * 4, // Kashyyyk
23 * 4, // Dantooine
26 * 4, // Hoth
28 * 4, // Mustafar
30 * 4, // Bespin
33 * 4, // Yavin
36 * 4, // Geonosis
41 * 4, // UNLABELED (empty array).
41 * 4};
table->AddProperty(std::move(property));
}
// Add property table to the scene.
scene->GetStructuralMetadata().AddPropertyTable(std::move(table));
}
template <>
void GltfTestHelper::CheckBoxMetaMeshFeatures(const Mesh &geometry,
bool has_draco_compression) {
CheckBoxMetaMeshFeatures(geometry, geometry.GetNonMaterialTextureLibrary(),
has_draco_compression);
}
template <>
void GltfTestHelper::CheckBoxMetaMeshFeatures(const Scene &geometry,
bool has_draco_compression) {
ASSERT_EQ(geometry.NumMeshes(), 1);
CheckBoxMetaMeshFeatures(geometry.GetMesh(MeshIndex(0)),
geometry.GetNonMaterialTextureLibrary(),
has_draco_compression);
}
void GltfTestHelper::CheckBoxMetaMeshFeatures(const Mesh &mesh,
const TextureLibrary &texture_lib,
bool has_draco_compression) {
// Check texture library.
ASSERT_EQ(texture_lib.NumTextures(), 2);
// Check basic mesh properties.
ASSERT_EQ(mesh.NumMeshFeatures(), 5);
ASSERT_EQ(mesh.num_faces(), 12);
ASSERT_EQ(mesh.num_attributes(), 7);
ASSERT_EQ(mesh.num_points(), 36);
ASSERT_EQ(mesh.NumNamedAttributes(GeometryAttribute::GENERIC), 3);
ASSERT_EQ(mesh.NumNamedAttributes(GeometryAttribute::TEX_COORD), 2);
// Get mesh element counts.
const int num_faces = mesh.num_faces();
const int num_corners = 3 * mesh.num_faces();
const int num_vertices =
mesh.GetNamedAttribute(GeometryAttribute::POSITION)->size();
// Check mesh feature ID set at index 0.
{
// Check mesh features.
const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(0));
ASSERT_EQ(features.GetLabel(), "faces");
ASSERT_EQ(features.GetFeatureCount(), num_faces);
ASSERT_EQ(features.GetNullFeatureId(), 100);
ASSERT_EQ(features.GetPropertyTableIndex(), 0);
ASSERT_EQ(features.GetAttributeIndex(), 0);
ASSERT_TRUE(features.GetTextureChannels().empty());
ASSERT_EQ(features.GetTextureMap().texture(), nullptr);
ASSERT_EQ(features.GetTextureMap().tex_coord_index(), -1);
// Check per-face Uint8 attribute named _FEATURE_ID_0.
const int att_id =
mesh.GetAttributeIdByMetadataEntry("attribute_name", "_FEATURE_ID_0");
auto att = mesh.GetAttributeByUniqueId(att_id);
ASSERT_NE(att, nullptr);
ASSERT_EQ(att->attribute_type(), GeometryAttribute::GENERIC);
ASSERT_EQ(att->data_type(), DataType::DT_UINT8);
ASSERT_EQ(att->num_components(), 1);
ASSERT_EQ(att->size(), num_faces);
ASSERT_EQ(att->indices_map_size(), num_corners);
// Check that the values are all the numbers from 0 to 12.
const std::vector<uint8_t> expected_values =
has_draco_compression
? std::vector<uint8_t>{7, 11, 10, 3, 2, 5, 4, 1, 6, 9, 8, 0}
: std::vector<uint8_t>{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
for (int i = 0; i < num_faces; i++) {
uint8_t val;
att->GetValue(AttributeValueIndex(i), &val);
ASSERT_EQ(val, expected_values[i]);
}
// Check that the corners of each face have a common value.
for (int i = 0; i < num_faces; i++) {
const auto face = mesh.face(FaceIndex(i));
ASSERT_EQ(*att->GetAddressOfMappedIndex(face[0]),
*att->GetAddressOfMappedIndex(face[1]));
ASSERT_EQ(*att->GetAddressOfMappedIndex(face[0]),
*att->GetAddressOfMappedIndex(face[2]));
}
}
// Check the 2nd mesh feature ID set at index 1.
{
// Check mesh features.
const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(1));
ASSERT_EQ(features.GetLabel(), "vertices");
ASSERT_EQ(features.GetFeatureCount(), num_vertices);
ASSERT_EQ(features.GetNullFeatureId(), 101);
ASSERT_EQ(features.GetPropertyTableIndex(), 1);
ASSERT_EQ(features.GetAttributeIndex(), 1);
ASSERT_TRUE(features.GetTextureChannels().empty());
ASSERT_EQ(features.GetTextureMap().texture(), nullptr);
ASSERT_EQ(features.GetTextureMap().tex_coord_index(), -1);
// Check per-vertex Uint16 attribute named _FEATURE_ID_1.
const int att_id =
mesh.GetAttributeIdByMetadataEntry("attribute_name", "_FEATURE_ID_1");
auto att = mesh.GetAttributeByUniqueId(att_id);
ASSERT_NE(att, nullptr);
ASSERT_EQ(att->attribute_type(), GeometryAttribute::GENERIC);
ASSERT_EQ(att->data_type(), DataType::DT_UINT16);
ASSERT_EQ(att->num_components(), 1);
ASSERT_EQ(att->size(), num_vertices);
ASSERT_EQ(att->indices_map_size(), num_corners);
// Check that the values are all the numbers from 0 to 7.
const std::vector<uint16_t> expected_values =
has_draco_compression ? std::vector<uint16_t>{3, 6, 7, 4, 5, 0, 1, 2}
: std::vector<uint16_t>{0, 1, 2, 3, 4, 5, 6, 7};
for (int i = 0; i < num_vertices; i++) {
uint16_t val;
att->GetValue(AttributeValueIndex(i), &val);
ASSERT_EQ(val, expected_values[i]);
}
// Check that the corners of a face have unique values.
for (int i = 0; i < num_faces; i++) {
const auto face = mesh.face(FaceIndex(i));
ASSERT_NE(*att->GetAddressOfMappedIndex(face[0]),
*att->GetAddressOfMappedIndex(face[1]));
ASSERT_NE(*att->GetAddressOfMappedIndex(face[1]),
*att->GetAddressOfMappedIndex(face[2]));
ASSERT_NE(*att->GetAddressOfMappedIndex(face[2]),
*att->GetAddressOfMappedIndex(face[0]));
}
}
// Check the 3rd mesh feature ID set at index 2.
{
// Check mesh features.
const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(2));
ASSERT_TRUE(features.GetLabel().empty());
ASSERT_EQ(features.GetFeatureCount(), num_corners);
ASSERT_EQ(features.GetNullFeatureId(), -1);
ASSERT_EQ(features.GetPropertyTableIndex(), -1);
ASSERT_EQ(features.GetAttributeIndex(), 2);
ASSERT_TRUE(features.GetTextureChannels().empty());
ASSERT_EQ(features.GetTextureMap().texture(), nullptr);
ASSERT_EQ(features.GetTextureMap().tex_coord_index(), -1);
// Check per-corner Float attribute named _FEATURE_ID_2.
const int att_id =
mesh.GetAttributeIdByMetadataEntry("attribute_name", "_FEATURE_ID_2");
auto att = mesh.GetAttributeByUniqueId(att_id);
ASSERT_NE(att, nullptr);
ASSERT_EQ(att->attribute_type(), GeometryAttribute::GENERIC);
ASSERT_EQ(att->data_type(), DataType::DT_FLOAT32);
ASSERT_EQ(att->num_components(), 1);
ASSERT_EQ(att->size(), num_corners);
ASSERT_EQ(att->indices_map_size(), 0);
ASSERT_TRUE(att->is_mapping_identity());
// Check that the values are from 0 to 35.
const std::vector<float> expected_values =
has_draco_compression
? std::vector<float>{23, 21, 22, 33, 34, 35, 31, 32, 30, 9, 10, 11,
7, 8, 6, 15, 16, 17, 14, 12, 13, 5, 3, 4,
19, 20, 18, 27, 28, 29, 26, 24, 25, 1, 2, 0}
: std::vector<float>{0, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35};
for (int i = 0; i < num_corners; i++) {
float val;
att->GetValue(AttributeValueIndex(i), &val);
ASSERT_EQ(val, expected_values[i]);
}
// Check that the corners have unique values.
for (int i = 0; i < num_faces; i++) {
const auto face = mesh.face(FaceIndex(i));
float v0, v1, v2;
att->GetMappedValue(face[0], &v0);
att->GetMappedValue(face[1], &v1);
att->GetMappedValue(face[2], &v2);
ASSERT_EQ(v0, expected_values[3 * i + 0]);
ASSERT_EQ(v1, expected_values[3 * i + 1]);
ASSERT_EQ(v2, expected_values[3 * i + 2]);
}
}
// Check mesh feature ID set at index 3.
{
// Check mesh features.
const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(3));
ASSERT_TRUE(features.GetLabel().empty());
ASSERT_EQ(features.GetFeatureCount(), 6);
ASSERT_EQ(features.GetNullFeatureId(), -1);
ASSERT_EQ(features.GetPropertyTableIndex(), -1);
ASSERT_EQ(features.GetAttributeIndex(), -1);
}
// Check mesh feature ID set at index 4.
{
// Check mesh features.
const MeshFeatures &features = mesh.GetMeshFeatures(MeshFeaturesIndex(4));
ASSERT_EQ(features.GetLabel(), "water");
ASSERT_EQ(features.GetFeatureCount(), 2);
ASSERT_EQ(features.GetNullFeatureId(), -1);
ASSERT_EQ(features.GetPropertyTableIndex(), -1);
ASSERT_EQ(features.GetAttributeIndex(), -1);
}
}
void GltfTestHelper::CheckBoxMetaStructuralMetadata(
const StructuralMetadata &structural_metadata) {
// Check property table schema.
{
const PropertyTable::Schema &schema =
structural_metadata.GetPropertyTableSchema();
ASSERT_FALSE(schema.Empty());
const PropertyTable::Schema::Object &json = schema.json;
ASSERT_EQ(json.GetObjects().size(), 3);
ASSERT_EQ(json.GetObjects()[0].GetName(), "classes");
ASSERT_EQ(json.GetObjects()[0].GetObjects().size(), 1);
ASSERT_EQ(json.GetObjects()[0].GetObjects()[0].GetName(), "planet");
ASSERT_EQ(json.GetObjects()[0].GetObjects()[0].GetObjects().size(), 1);
const auto &properties =
json.GetObjects()[0].GetObjects()[0].GetObjects()[0];
ASSERT_EQ(properties.GetName(), "properties");
ASSERT_EQ(properties.GetObjects().size(), 3);
const auto &color = properties.GetObjects()[0];
ASSERT_EQ(color.GetName(), "color");
ASSERT_EQ(color.GetObjects().size(), 4);
ASSERT_EQ(color.GetObjects()[0].GetName(), "componentType");
ASSERT_EQ(color.GetObjects()[1].GetName(), "description");
ASSERT_EQ(color.GetObjects()[2].GetName(), "required");
ASSERT_EQ(color.GetObjects()[3].GetName(), "type");
ASSERT_EQ(color.GetObjects()[0].GetString(), "UINT8");
ASSERT_EQ(color.GetObjects()[1].GetString(), "The RGB color.");
ASSERT_TRUE(color.GetObjects()[2].GetBoolean());
ASSERT_EQ(color.GetObjects()[3].GetString(), "VEC3");
const auto &name = properties.GetObjects()[1];
ASSERT_EQ(name.GetName(), "name");
ASSERT_EQ(name.GetObjects().size(), 3);
ASSERT_EQ(name.GetObjects()[0].GetName(), "description");
ASSERT_EQ(name.GetObjects()[1].GetName(), "required");
ASSERT_EQ(name.GetObjects()[2].GetName(), "type");
ASSERT_EQ(name.GetObjects()[0].GetString(), "The name.");
ASSERT_TRUE(name.GetObjects()[1].GetBoolean());
ASSERT_EQ(name.GetObjects()[2].GetString(), "STRING");
const auto &sequence = properties.GetObjects()[2];
ASSERT_EQ(sequence.GetName(), "sequence");
ASSERT_EQ(sequence.GetObjects().size(), 3);
ASSERT_EQ(sequence.GetObjects()[0].GetName(), "description");
ASSERT_EQ(sequence.GetObjects()[1].GetName(), "required");
ASSERT_EQ(sequence.GetObjects()[2].GetName(), "type");
ASSERT_EQ(sequence.GetObjects()[0].GetString(), "The number sequence.");
ASSERT_FALSE(sequence.GetObjects()[1].GetBoolean());
ASSERT_EQ(sequence.GetObjects()[2].GetString(), "SCALAR");
ASSERT_EQ(json.GetObjects()[1].GetName(), "enums");
const auto &classifications = json.GetObjects()[1].GetObjects()[0];
ASSERT_EQ(classifications.GetName(), "classifications");
ASSERT_EQ(classifications.GetObjects()[0].GetName(), "description");
ASSERT_EQ(classifications.GetObjects()[0].GetString(),
"Classifications of planets.");
ASSERT_EQ(classifications.GetObjects()[1].GetName(), "name");
ASSERT_EQ(classifications.GetObjects()[1].GetString(), "classifications");
ASSERT_EQ(classifications.GetObjects()[2].GetName(), "values");
const auto &values = classifications.GetObjects()[2];
ASSERT_EQ(values.GetArray()[0].GetObjects()[0].GetName(), "name");
ASSERT_EQ(values.GetArray()[1].GetObjects()[0].GetName(), "name");
ASSERT_EQ(values.GetArray()[2].GetObjects()[0].GetName(), "name");
ASSERT_EQ(values.GetArray()[3].GetObjects()[0].GetName(), "name");
ASSERT_EQ(values.GetArray()[4].GetObjects()[0].GetName(), "name");
ASSERT_EQ(values.GetArray()[0].GetObjects()[0].GetString(), "Unspecified");
ASSERT_EQ(values.GetArray()[1].GetObjects()[0].GetString(), "Gas Giant");
ASSERT_EQ(values.GetArray()[2].GetObjects()[0].GetString(), "Waterworld");
ASSERT_EQ(values.GetArray()[3].GetObjects()[0].GetString(), "Agriworld");
ASSERT_EQ(values.GetArray()[4].GetObjects()[0].GetString(), "Ordnance");
ASSERT_EQ(values.GetArray()[0].GetObjects()[1].GetName(), "value");
ASSERT_EQ(values.GetArray()[1].GetObjects()[1].GetName(), "value");
ASSERT_EQ(values.GetArray()[2].GetObjects()[1].GetName(), "value");
ASSERT_EQ(values.GetArray()[3].GetObjects()[1].GetName(), "value");
ASSERT_EQ(values.GetArray()[4].GetObjects()[1].GetName(), "value");
ASSERT_EQ(values.GetArray()[0].GetObjects()[1].GetInteger(), 0);
ASSERT_EQ(values.GetArray()[1].GetObjects()[1].GetInteger(), 1);
ASSERT_EQ(values.GetArray()[2].GetObjects()[1].GetInteger(), 2);
ASSERT_EQ(values.GetArray()[3].GetObjects()[1].GetInteger(), 3);
ASSERT_EQ(values.GetArray()[4].GetObjects()[1].GetInteger(), 4);
ASSERT_EQ(json.GetObjects()[2].GetName(), "id");
ASSERT_EQ(json.GetObjects()[2].GetString(), "galaxy");
}
// Check property table.
constexpr int kRows = 16;
ASSERT_EQ(structural_metadata.NumPropertyTables(), 1);
const PropertyTable &table = structural_metadata.GetPropertyTable(0);
ASSERT_EQ(table.GetName(), "Galaxy far far away.");
ASSERT_EQ(table.GetClass(), "planet");
ASSERT_EQ(table.GetCount(), kRows);
ASSERT_EQ(table.NumProperties(), 3);
// Check property that describes RGB color components of the planet class.
{
const PropertyTable::Property &property = table.GetProperty(0);
ASSERT_EQ(property.GetName(), "color");
ASSERT_EQ(property.GetData().data.size(), kRows * 3); // RGB components.
ASSERT_EQ(property.GetData().target, 34962); // ARRAY_BUFFER.
ASSERT_EQ(property.GetData().data[0], 94); // Tatooine [94, 94, 194].
ASSERT_EQ(property.GetData().data[1], 94);
ASSERT_EQ(property.GetData().data[2], 194);
ASSERT_EQ(property.GetData().data[18], 190); // Corellia [190, 92, 108].
ASSERT_EQ(property.GetData().data[19], 92);
ASSERT_EQ(property.GetData().data[20], 108);
ASSERT_EQ(property.GetData().data[45], 0); // UNLABELED [0, 0, 0].
ASSERT_EQ(property.GetData().data[46], 0);
ASSERT_EQ(property.GetData().data[47], 0);
ASSERT_TRUE(property.GetArrayOffsets().type.empty());
ASSERT_TRUE(property.GetArrayOffsets().data.data.empty());
ASSERT_EQ(property.GetArrayOffsets().data.target, 0);
ASSERT_TRUE(property.GetStringOffsets().type.empty());
ASSERT_TRUE(property.GetStringOffsets().data.data.empty());
ASSERT_EQ(property.GetStringOffsets().data.target, 0);
}
// Check property that describes names of the planet class.
{
const PropertyTable::Property &property = table.GetProperty(1);
ASSERT_EQ(property.GetName(), "name");
const std::vector<uint8_t> &data = property.GetData().data;
const std::vector<uint8_t> &offsets = property.GetStringOffsets().data.data;
ASSERT_EQ(data.size(), 296); // Concatenated label strings.
ASSERT_EQ(property.GetData().target, 34963); // ELEMENT_ARRAY_BUFFER.
ASSERT_EQ(property.GetStringOffsets().type, "UINT32");
ASSERT_EQ(offsets.size(), 4 * (kRows + 1));
ASSERT_EQ(property.GetStringOffsets().data.target, 34963);
ASSERT_EQ(offsets[0], 0); // Tatooine 0.
ASSERT_EQ(offsets[1], 0);
ASSERT_EQ(offsets[2], 0);
ASSERT_EQ(offsets[3], 0);
ASSERT_EQ(offsets[60], 32); // UNLABELED 287.
ASSERT_EQ(offsets[61], 1);
ASSERT_EQ(offsets[62], 0);
ASSERT_EQ(offsets[63], 0);
ASSERT_EQ(offsets[64], 41); // Beyond UNLABELED 296.
ASSERT_EQ(offsets[65], 1);
ASSERT_EQ(offsets[66], 0);
ASSERT_EQ(offsets[67], 0);
struct Name {
static std::string Extract(const std::vector<uint8_t> &data,
const std::vector<uint8_t> &offsets, int row) {
const int b = offsets[4 * (row + 0)] + 255 * offsets[4 * (row + 0) + 1];
const int e = offsets[4 * (row + 1)] + 255 * offsets[4 * (row + 1) + 1];
return std::string(data.begin() + b, data.begin() + e);
}
};
// Check that the names can be extracted from the data.
ASSERT_EQ(Name::Extract(data, offsets, 0), "named_class:Tatooine");
ASSERT_EQ(Name::Extract(data, offsets, 6), "named_class:Corellia");
ASSERT_EQ(Name::Extract(data, offsets, 15), "UNLABELED");
ASSERT_TRUE(property.GetArrayOffsets().type.empty());
ASSERT_TRUE(property.GetArrayOffsets().data.data.empty());
ASSERT_EQ(property.GetArrayOffsets().data.target, 0);
}
// Check property that describes number sequence of the planet class.
{
const PropertyTable::Property &property = table.GetProperty(2);
ASSERT_EQ(property.GetName(), "sequence");
const std::vector<uint8_t> &data = property.GetData().data;
const std::vector<uint8_t> &offsets = property.GetArrayOffsets().data.data;
ASSERT_EQ(data.size(), 41 * 4); // Concatenated float arrays.
ASSERT_EQ(property.GetData().target, 34963); // ELEMENT_ARRAY_BUFFER.
ASSERT_EQ(property.GetArrayOffsets().type, "UINT8");
ASSERT_EQ(offsets.size(), 20); // kRows + 1 + padding.
ASSERT_EQ(property.GetArrayOffsets().data.target, 34963);
ASSERT_EQ(offsets[0], 0 * 4); // Tatooine
ASSERT_EQ(offsets[1], 6 * 4); // Corusant
ASSERT_EQ(offsets[6], 16 * 4); // Corellia
ASSERT_EQ(offsets[14], 36 * 4); // Geonosis
ASSERT_EQ(offsets[15], 41 * 4); // UNLABELED (empty array).
ASSERT_EQ(offsets[16], 41 * 4); // Beyond UNLABELED (empty array).
struct Sequence {
static std::vector<float> Extract(const std::vector<uint8_t> &data,
const std::vector<uint8_t> &offsets,
int row) {
const int n = (offsets[row + 1] - offsets[row]) / 4;
std::vector<float> result;
result.reserve(n);
for (int i = 0; i < n; ++i) {
const void *const pointer = &data[offsets[row] + 4 * i];
result.push_back(*static_cast<const float *>(pointer));
}
return result;
}
};
// Check that the number sequence arrays can be extracted from the data.
ASSERT_EQ(
Sequence::Extract(data, offsets, 0),
(std::vector<float>{0.5f, 1.5f, 2.5f, 3.5f, 4.5f, 5.5f})); // Tatooine
ASSERT_EQ(Sequence::Extract(data, offsets, 1),
(std::vector<float>{6.5f, 7.5f})); // Corusant
ASSERT_EQ(
Sequence::Extract(data, offsets, 14),
(std::vector<float>{36.5f, 37.5f, 38.5f, 39.5f, 40.5f})); // Geonosis
ASSERT_TRUE(Sequence::Extract(data, offsets, 15)
.empty()); // UNLABELED (empty array).
ASSERT_TRUE(property.GetStringOffsets().type.empty());
ASSERT_TRUE(property.GetStringOffsets().data.data.empty());
ASSERT_EQ(property.GetStringOffsets().data.target, 0);
}
}
#endif // DRACO_TRANSCODER_SUPPORTED
} // namespace draco

Some files were not shown because too many files have changed in this diff Show More