xiongxt il y a 9 mois
Parent
commit
f140c46a48

+ 1 - 1
.vscode/settings.json

@@ -1,5 +1,5 @@
 {
   "editor.codeActionsOnSave": {
-    "source.fixAll.eslint": true
+    "source.fixAll.eslint": "explicit"
   }
 }

+ 2018 - 0
output.js

@@ -0,0 +1,2018 @@
+{
+  mode: 'development',
+  context: 'D:\\work\\ludash',
+  output: {
+    hashFunction: 'xxhash64',
+    path: 'D:\\work\\ludash\\dist',
+    filename: 'js/[name].js',
+    publicPath: '/ludash/',
+    chunkFilename: 'js/[name].js'
+  },
+  resolve: {
+    alias: {
+      '@': 'D:\\work\\ludash\\src',
+      vue$: 'vue/dist/vue.runtime.esm-bundler.js'
+    },
+    extensions: [
+      '.mjs',
+      '.js',
+      '.jsx',
+      '.vue',
+      '.json',
+      '.wasm'
+    ],
+    modules: [
+      'node_modules',
+      'D:\\work\\ludash\\node_modules',
+      'D:\\work\\ludash\\node_modules\\@vue\\cli-service\\node_modules'
+    ]
+  },
+  resolveLoader: {
+    modules: [
+      'D:\\work\\ludash\\node_modules\\@vue\\cli-plugin-babel\\node_modules',
+      'node_modules',
+      'D:\\work\\ludash\\node_modules',
+      'D:\\work\\ludash\\node_modules\\@vue\\cli-service\\node_modules'
+    ]
+  },
+  module: {
+    noParse: /^(vue|vue-router|vuex|vuex-router-sync)$/,
+    rules: [
+      /* config.module.rule('esm') */
+      {
+        test: /\.m?jsx?$/,
+        resolve: {
+          fullySpecified: false
+        }
+      },
+      /* config.module.rule('vue') */
+      {
+        test: /\.vue$/,
+        use: [
+          /* config.module.rule('vue').use('vue-loader') */
+          {
+            loader: 'D:\\work\\ludash\\node_modules\\vue-loader\\dist\\index.js',
+            options: {
+              cacheDirectory: 'D:\\work\\ludash\\node_modules\\.cache\\vue-loader',
+              cacheIdentifier: '28d563d6',
+              babelParserPlugins: [
+                'jsx',
+                'classProperties',
+                'decorators-legacy'
+              ]
+            }
+          }
+        ]
+      },
+      /* config.module.rule('vue-style') */
+      {
+        test: /\.vue$/,
+        resourceQuery: /type=style/,
+        sideEffects: true
+      },
+      /* config.module.rule('pug') */
+      {
+        test: /\.pug$/,
+        oneOf: [
+          /* config.module.rule('pug').oneOf('pug-vue') */
+          {
+            resourceQuery: /vue/,
+            use: [
+              /* config.module.rule('pug').oneOf('pug-vue').use('pug-plain-loader') */
+              {
+                loader: 'pug-plain-loader'
+              }
+            ]
+          },
+          /* config.module.rule('pug').oneOf('pug-template') */
+          {
+            use: [
+              /* config.module.rule('pug').oneOf('pug-template').use('raw') */
+              {
+                loader: 'raw-loader'
+              },
+              /* config.module.rule('pug').oneOf('pug-template').use('pug-plain-loader') */
+              {
+                loader: 'pug-plain-loader'
+              }
+            ]
+          }
+        ]
+      },
+      /* config.module.rule('svg') */
+      {
+        test: /\.(svg)(\?.*)?$/,
+        type: 'asset/resource',
+        generator: {
+          filename: 'img/[name].[hash:8][ext]'
+        }
+      },
+      /* config.module.rule('images') */
+      {
+        test: /\.(png|jpeg|jpg|hdr)$/,
+        type: 'asset',
+        generator: {
+          filename: 'img/[name].[hash:8][ext]'
+        }
+      },
+      /* config.module.rule('media') */
+      {
+        test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
+        type: 'asset',
+        generator: {
+          filename: 'media/[name].[hash:8][ext]'
+        }
+      },
+      /* config.module.rule('fonts') */
+      {
+        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/i,
+        type: 'asset',
+        generator: {
+          filename: 'fonts/[name].[hash:8][ext]'
+        }
+      },
+      /* config.module.rule('css') */
+      {
+        test: /\.css$/,
+        oneOf: [
+          /* config.module.rule('css').oneOf('vue-modules') */
+          {
+            resourceQuery: /module/,
+            use: [
+              /* config.module.rule('css').oneOf('vue-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('css').oneOf('vue-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2,
+                  modules: {
+                    localIdentName: '[name]_[local]_[hash:base64:5]',
+                    auto: () => true
+                  }
+                }
+              },
+              /* config.module.rule('css').oneOf('vue-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('css').oneOf('vue') */
+          {
+            resourceQuery: /\?vue/,
+            use: [
+              /* config.module.rule('css').oneOf('vue').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('css').oneOf('vue').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('css').oneOf('vue').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('css').oneOf('normal-modules') */
+          {
+            test: /\.module\.\w+$/,
+            use: [
+              /* config.module.rule('css').oneOf('normal-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('css').oneOf('normal-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('css').oneOf('normal-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('css').oneOf('normal') */
+          {
+            use: [
+              /* config.module.rule('css').oneOf('normal').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('css').oneOf('normal').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('css').oneOf('normal').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          }
+        ]
+      },
+      /* config.module.rule('postcss') */
+      {
+        test: /\.p(ost)?css$/,
+        oneOf: [
+          /* config.module.rule('postcss').oneOf('vue-modules') */
+          {
+            resourceQuery: /module/,
+            use: [
+              /* config.module.rule('postcss').oneOf('vue-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('postcss').oneOf('vue-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2,
+                  modules: {
+                    localIdentName: '[name]_[local]_[hash:base64:5]',
+                    auto: () => true
+                  }
+                }
+              },
+              /* config.module.rule('postcss').oneOf('vue-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('postcss').oneOf('vue') */
+          {
+            resourceQuery: /\?vue/,
+            use: [
+              /* config.module.rule('postcss').oneOf('vue').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('postcss').oneOf('vue').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('postcss').oneOf('vue').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('postcss').oneOf('normal-modules') */
+          {
+            test: /\.module\.\w+$/,
+            use: [
+              /* config.module.rule('postcss').oneOf('normal-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('postcss').oneOf('normal-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('postcss').oneOf('normal-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('postcss').oneOf('normal') */
+          {
+            use: [
+              /* config.module.rule('postcss').oneOf('normal').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('postcss').oneOf('normal').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('postcss').oneOf('normal').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              }
+            ]
+          }
+        ]
+      },
+      /* config.module.rule('scss') */
+      {
+        test: /\.scss$/,
+        oneOf: [
+          /* config.module.rule('scss').oneOf('vue-modules') */
+          {
+            resourceQuery: /module/,
+            use: [
+              /* config.module.rule('scss').oneOf('vue-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('scss').oneOf('vue-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2,
+                  modules: {
+                    localIdentName: '[name]_[local]_[hash:base64:5]',
+                    auto: () => true
+                  }
+                }
+              },
+              /* config.module.rule('scss').oneOf('vue-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('scss').oneOf('vue-modules').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          },
+          /* config.module.rule('scss').oneOf('vue') */
+          {
+            resourceQuery: /\?vue/,
+            use: [
+              /* config.module.rule('scss').oneOf('vue').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('scss').oneOf('vue').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('scss').oneOf('vue').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('scss').oneOf('vue').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          },
+          /* config.module.rule('scss').oneOf('normal-modules') */
+          {
+            test: /\.module\.\w+$/,
+            use: [
+              /* config.module.rule('scss').oneOf('normal-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('scss').oneOf('normal-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('scss').oneOf('normal-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('scss').oneOf('normal-modules').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          },
+          /* config.module.rule('scss').oneOf('normal') */
+          {
+            use: [
+              /* config.module.rule('scss').oneOf('normal').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('scss').oneOf('normal').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('scss').oneOf('normal').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('scss').oneOf('normal').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          }
+        ]
+      },
+      /* config.module.rule('sass') */
+      {
+        test: /\.sass$/,
+        oneOf: [
+          /* config.module.rule('sass').oneOf('vue-modules') */
+          {
+            resourceQuery: /module/,
+            use: [
+              /* config.module.rule('sass').oneOf('vue-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('sass').oneOf('vue-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2,
+                  modules: {
+                    localIdentName: '[name]_[local]_[hash:base64:5]',
+                    auto: () => true
+                  }
+                }
+              },
+              /* config.module.rule('sass').oneOf('vue-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('sass').oneOf('vue-modules').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false,
+                  sassOptions: {
+                    indentedSyntax: true
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('sass').oneOf('vue') */
+          {
+            resourceQuery: /\?vue/,
+            use: [
+              /* config.module.rule('sass').oneOf('vue').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('sass').oneOf('vue').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('sass').oneOf('vue').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('sass').oneOf('vue').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false,
+                  sassOptions: {
+                    indentedSyntax: true
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('sass').oneOf('normal-modules') */
+          {
+            test: /\.module\.\w+$/,
+            use: [
+              /* config.module.rule('sass').oneOf('normal-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('sass').oneOf('normal-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('sass').oneOf('normal-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('sass').oneOf('normal-modules').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false,
+                  sassOptions: {
+                    indentedSyntax: true
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('sass').oneOf('normal') */
+          {
+            use: [
+              /* config.module.rule('sass').oneOf('normal').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('sass').oneOf('normal').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('sass').oneOf('normal').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('sass').oneOf('normal').use('sass-loader') */
+              {
+                loader: 'sass-loader',
+                options: {
+                  sourceMap: false,
+                  sassOptions: {
+                    indentedSyntax: true
+                  }
+                }
+              }
+            ]
+          }
+        ]
+      },
+      /* config.module.rule('less') */
+      {
+        test: /\.less$/,
+        oneOf: [
+          /* config.module.rule('less').oneOf('vue-modules') */
+          {
+            resourceQuery: /module/,
+            use: [
+              /* config.module.rule('less').oneOf('vue-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('less').oneOf('vue-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2,
+                  modules: {
+                    localIdentName: '[name]_[local]_[hash:base64:5]',
+                    auto: () => true
+                  }
+                }
+              },
+              /* config.module.rule('less').oneOf('vue-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('less').oneOf('vue-modules').use('less-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\less-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  lessOptions: {
+                    javascriptEnabled: true,
+                    modifyVars: {
+                      'primary-color': '#42b883',
+                      'font-color': '#444'
+                    }
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('less').oneOf('vue') */
+          {
+            resourceQuery: /\?vue/,
+            use: [
+              /* config.module.rule('less').oneOf('vue').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('less').oneOf('vue').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('less').oneOf('vue').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('less').oneOf('vue').use('less-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\less-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  lessOptions: {
+                    javascriptEnabled: true,
+                    modifyVars: {
+                      'primary-color': '#42b883',
+                      'font-color': '#444'
+                    }
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('less').oneOf('normal-modules') */
+          {
+            test: /\.module\.\w+$/,
+            use: [
+              /* config.module.rule('less').oneOf('normal-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('less').oneOf('normal-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('less').oneOf('normal-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('less').oneOf('normal-modules').use('less-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\less-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  lessOptions: {
+                    javascriptEnabled: true,
+                    modifyVars: {
+                      'primary-color': '#42b883',
+                      'font-color': '#444'
+                    }
+                  }
+                }
+              }
+            ]
+          },
+          /* config.module.rule('less').oneOf('normal') */
+          {
+            use: [
+              /* config.module.rule('less').oneOf('normal').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('less').oneOf('normal').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('less').oneOf('normal').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('less').oneOf('normal').use('less-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\less-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  lessOptions: {
+                    javascriptEnabled: true,
+                    modifyVars: {
+                      'primary-color': '#42b883',
+                      'font-color': '#444'
+                    }
+                  }
+                }
+              }
+            ]
+          }
+        ]
+      },
+      /* config.module.rule('stylus') */
+      {
+        test: /\.styl(us)?$/,
+        oneOf: [
+          /* config.module.rule('stylus').oneOf('vue-modules') */
+          {
+            resourceQuery: /module/,
+            use: [
+              /* config.module.rule('stylus').oneOf('vue-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('stylus').oneOf('vue-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2,
+                  modules: {
+                    localIdentName: '[name]_[local]_[hash:base64:5]',
+                    auto: () => true
+                  }
+                }
+              },
+              /* config.module.rule('stylus').oneOf('vue-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('stylus').oneOf('vue-modules').use('stylus-loader') */
+              {
+                loader: 'stylus-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          },
+          /* config.module.rule('stylus').oneOf('vue') */
+          {
+            resourceQuery: /\?vue/,
+            use: [
+              /* config.module.rule('stylus').oneOf('vue').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('stylus').oneOf('vue').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('stylus').oneOf('vue').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('stylus').oneOf('vue').use('stylus-loader') */
+              {
+                loader: 'stylus-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          },
+          /* config.module.rule('stylus').oneOf('normal-modules') */
+          {
+            test: /\.module\.\w+$/,
+            use: [
+              /* config.module.rule('stylus').oneOf('normal-modules').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('stylus').oneOf('normal-modules').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('stylus').oneOf('normal-modules').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('stylus').oneOf('normal-modules').use('stylus-loader') */
+              {
+                loader: 'stylus-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          },
+          /* config.module.rule('stylus').oneOf('normal') */
+          {
+            use: [
+              /* config.module.rule('stylus').oneOf('normal').use('vue-style-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\vue-style-loader\\index.js',
+                options: {
+                  sourceMap: false,
+                  shadowMode: false
+                }
+              },
+              /* config.module.rule('stylus').oneOf('normal').use('css-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\css-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  importLoaders: 2
+                }
+              },
+              /* config.module.rule('stylus').oneOf('normal').use('postcss-loader') */
+              {
+                loader: 'D:\\work\\ludash\\node_modules\\postcss-loader\\dist\\cjs.js',
+                options: {
+                  sourceMap: false,
+                  postcssOptions: {
+                    plugins: [
+                      {
+                        postcssPlugin: 'autoprefixer',
+                        prepare: function () { /* omitted long function */ },
+                        info: function () { /* omitted long function */ },
+                        options: {
+                          overrideBrowserslist: [
+                            'Android 4.1',
+                            'iOS 7.1',
+                            'Chrome > 31',
+                            'ff > 31',
+                            'ie >= 8',
+                            'last 10 versions'
+                          ],
+                          grid: true
+                        },
+                        browsers: [
+                          'Android 4.1',
+                          'iOS 7.1',
+                          'Chrome > 31',
+                          'ff > 31',
+                          'ie >= 8',
+                          'last 10 versions'
+                        ]
+                      },
+                      {
+                        postcssPlugin: 'postcss-pxtorem',
+                        Once: function () { /* omitted long function */ },
+                        Declaration: function () { /* omitted long function */ },
+                        AtRule: function () { /* omitted long function */ }
+                      }
+                    ]
+                  }
+                }
+              },
+              /* config.module.rule('stylus').oneOf('normal').use('stylus-loader') */
+              {
+                loader: 'stylus-loader',
+                options: {
+                  sourceMap: false
+                }
+              }
+            ]
+          }
+        ]
+      },
+      /* config.module.rule('js') */
+      {
+        test: /\.m?jsx?$/,
+        exclude: [
+          function () { /* omitted long function */ }
+        ],
+        use: [
+          /* config.module.rule('js').use('babel-loader') */
+          {
+            loader: 'D:\\work\\ludash\\node_modules\\babel-loader\\lib\\index.js',
+            options: {
+              cacheCompression: false,
+              cacheDirectory: 'D:\\work\\ludash\\node_modules\\.cache\\babel-loader',
+              cacheIdentifier: 'e8de0bdc'
+            }
+          }
+        ]
+      }
+    ]
+  },
+  optimization: {
+    realContentHash: false,
+    splitChunks: {
+      cacheGroups: {
+        defaultVendors: {
+          name: 'chunk-vendors',
+          test: /[\\/]node_modules[\\/]/,
+          priority: -10,
+          chunks: 'initial'
+        },
+        common: {
+          name: 'chunk-common',
+          minChunks: 2,
+          priority: -20,
+          chunks: 'initial',
+          reuseExistingChunk: true
+        }
+      }
+    },
+    minimizer: [
+      /* config.optimization.minimizer('terser') */
+      new TerserPlugin(
+        {
+          terserOptions: {
+            compress: {
+              arrows: false,
+              collapse_vars: false,
+              comparisons: false,
+              computed_props: false,
+              hoist_funs: false,
+              hoist_props: false,
+              hoist_vars: false,
+              inline: false,
+              loops: false,
+              negate_iife: false,
+              properties: false,
+              reduce_funcs: false,
+              reduce_vars: false,
+              switches: false,
+              toplevel: false,
+              typeofs: false,
+              booleans: true,
+              if_return: true,
+              sequences: true,
+              unused: true,
+              conditionals: true,
+              dead_code: true,
+              evaluate: true
+            },
+            mangle: {
+              safari10: true
+            }
+          },
+          parallel: true,
+          extractComments: false
+        }
+      )
+    ]
+  },
+  plugins: [
+    /* config.plugin('vue-loader') */
+    new Plugin(),
+    /* config.plugin('feature-flags') */
+    new DefinePlugin(
+      {
+        __VUE_OPTIONS_API__: 'true',
+        __VUE_PROD_DEVTOOLS__: 'false'
+      }
+    ),
+    /* config.plugin('define') */
+    new DefinePlugin(
+      {
+        'process.env': {
+          NODE_ENV: '"development"',
+          BASE_URL: '"/ludash/"'
+        }
+      }
+    ),
+    /* config.plugin('case-sensitive-paths') */
+    new CaseSensitivePathsPlugin(),
+    /* config.plugin('friendly-errors') */
+    new FriendlyErrorsWebpackPlugin(
+      {
+        additionalTransformers: [
+          function () { /* omitted long function */ }
+        ],
+        additionalFormatters: [
+          function () { /* omitted long function */ }
+        ]
+      }
+    ),
+    /* config.plugin('html') */
+    new HtmlWebpackPlugin(
+      {
+        title: 'ludash',
+        scriptLoading: 'defer',
+        templateParameters: function () { /* omitted long function */ },
+        template: 'D:\\work\\ludash\\public\\index.html'
+      }
+    ),
+    /* config.plugin('copy') */
+    new CopyPlugin(
+      {
+        patterns: [
+          {
+            from: 'D:\\work\\ludash\\public',
+            to: 'D:\\work\\ludash\\dist',
+            toType: 'dir',
+            noErrorOnMissing: true,
+            globOptions: {
+              ignore: [
+                '**/.DS_Store',
+                'D:/work/ludash/public/index.html'
+              ]
+            },
+            info: {
+              minimized: true
+            }
+          }
+        ]
+      }
+    ),
+    /* config.plugin('eslint') */
+    new ESLintWebpackPlugin(
+      {
+        extensions: [
+          '.js',
+          '.jsx',
+          '.vue'
+        ],
+        cwd: 'D:\\work\\ludash',
+        cache: true,
+        cacheLocation: 'D:\\work\\ludash\\node_modules\\.cache\\eslint\\1937a8b2.json',
+        context: 'D:\\work\\ludash',
+        failOnWarning: false,
+        failOnError: true,
+        eslintPath: 'D:\\work\\ludash\\node_modules\\eslint',
+        formatter: 'stylish'
+      }
+    )
+  ],
+  entry: {
+    app: [
+      './src/main.js'
+    ]
+  }
+}

+ 32 - 0
public/draco/README.md

@@ -0,0 +1,32 @@
+# Draco 3D Data Compression
+
+Draco is an open-source library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.
+
+[Website](https://google.github.io/draco/) | [GitHub](https://github.com/google/draco)
+
+## Contents
+
+This folder contains three utilities:
+
+* `draco_decoder.js` — Emscripten-compiled decoder, compatible with any modern browser.
+* `draco_decoder.wasm` — WebAssembly decoder, compatible with newer browsers and devices.
+* `draco_wasm_wrapper.js` — JavaScript wrapper for the WASM decoder.
+
+Each file is provided in two variations:
+
+* **Default:** Latest stable builds, tracking the project's [master branch](https://github.com/google/draco).
+* **glTF:** Builds targeted by the [glTF mesh compression extension](https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression), tracking the [corresponding Draco branch](https://github.com/google/draco/tree/gltf_2.0_draco_extension).
+
+Either variation may be used with `THREE.DRACOLoader`:
+
+```js
+var dracoLoader = new THREE.DRACOLoader();
+dracoLoader.setDecoderPath('path/to/decoders/');
+dracoLoader.setDecoderConfig({type: 'js'}); // (Optional) Override detection of WASM support.
+```
+
+Further [documentation on GitHub](https://github.com/google/draco/tree/master/javascript/example#static-loading-javascript-decoder).
+
+## License
+
+[Apache License 2.0](https://github.com/google/draco/blob/master/LICENSE)

Fichier diff supprimé car celui-ci est trop grand
+ 7 - 0
public/draco/draco_decoder.js


BIN
public/draco/draco_decoder.wasm


Fichier diff supprimé car celui-ci est trop grand
+ 3 - 0
public/draco/draco_encoder.js


+ 117 - 0
public/draco/draco_wasm_wrapper.js

@@ -0,0 +1,117 @@
+var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(k){var n=0;return function(){return n<k.length?{done:!1,value:k[n++]}:{done:!0}}};$jscomp.arrayIterator=function(k){return{next:$jscomp.arrayIteratorImpl(k)}};$jscomp.makeIterator=function(k){var n="undefined"!=typeof Symbol&&Symbol.iterator&&k[Symbol.iterator];return n?n.call(k):$jscomp.arrayIterator(k)};$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(k){k=["object"==typeof globalThis&&globalThis,k,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var n=0;n<k.length;++n){var l=k[n];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(k,n,l){if(k==Array.prototype||k==Object.prototype)return k;k[n]=l.value;return k};$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(k,n){var l=$jscomp.propertyToPolyfillSymbol[n];if(null==l)return k[n];l=k[l];return void 0!==l?l:k[n]};$jscomp.polyfill=function(k,n,l,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(k,n,l,p):$jscomp.polyfillUnisolated(k,n,l,p))};
+$jscomp.polyfillUnisolated=function(k,n,l,p){l=$jscomp.global;k=k.split(".");for(p=0;p<k.length-1;p++){var h=k[p];if(!(h in l))return;l=l[h]}k=k[k.length-1];p=l[k];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(l,k,{configurable:!0,writable:!0,value:n})};
+$jscomp.polyfillIsolated=function(k,n,l,p){var h=k.split(".");k=1===h.length;p=h[0];p=!k&&p in $jscomp.polyfills?$jscomp.polyfills:$jscomp.global;for(var A=0;A<h.length-1;A++){var f=h[A];if(!(f in p))return;p=p[f]}h=h[h.length-1];l=$jscomp.IS_SYMBOL_NATIVE&&"es6"===l?p[h]:null;n=n(l);null!=n&&(k?$jscomp.defineProperty($jscomp.polyfills,h,{configurable:!0,writable:!0,value:n}):n!==l&&(void 0===$jscomp.propertyToPolyfillSymbol[h]&&(l=1E9*Math.random()>>>0,$jscomp.propertyToPolyfillSymbol[h]=$jscomp.IS_SYMBOL_NATIVE?
+$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(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(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&&va)return va.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(){var e=ja.buffer;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.");ka(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(){function e(){if(!la&&(la=!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);e()},1)):e())}}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=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},Aa,ka;a.ready=new Promise(function(e,b){Aa=e;ka=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){var Za=require("fs"),qa=require("path");U=ha?qa.dirname(U)+"/":__dirname+"/";var $a=function(e,b){e=e.startsWith("file://")?new URL(e):qa.normalize(e);return Za.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=$a(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,b,c){e=e.startsWith("file://")?
+new URL(e):qa.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):"",$a=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 ud=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 ja,wa=!1,va="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,Y,ea,ca,V,Ca=[],oa=[],Ba=[],za=!1,aa=0,ra=null,ia=null;var P="draco_decoder.wasm";P.startsWith("data:application/octet-stream;base64,")||(P=l(P));var vd=0,wd=[null,[],[]],xd={b:function(e,b,c){(new O(e)).init(b,c);vd++;throw e;},a:function(){f("")},g:function(e,b,c){ea.copyWithin(e,b,b+c)},e: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:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);A();var u=1;break a}catch(X){}u=void 0}if(u)return!0}return!1},f:function(e){return 52},d:function(e,b,c,d,g){return 70},c:function(e,b,c,d){for(var g=0,u=0;u<c;u++){var X=V[b>>2],ab=V[b+4>>2];b+=8;for(var sa=0;sa<ab;sa++){var ta=ea[X+sa],ua=wd[e];0===ta||10===ta?((1===e?ud:da)(p(ua,0)),ua.length=0):ua.push(ta)}g+=
+ab}V[d>>2]=g;return 0}};(function(){function e(g,u){a.asm=g.exports;ja=a.asm.h;A();oa.unshift(a.asm.i);aa--;a.monitorRunDependencies&&a.monitorRunDependencies(aa);0==aa&&(null!==ra&&(clearInterval(ra),ra=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:xd};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),ka(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(ka);return{}})();var bb=a._emscripten_bind_VoidPtr___destroy___0=function(){return(bb=a._emscripten_bind_VoidPtr___destroy___0=a.asm.k).apply(null,arguments)},Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Da=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.l).apply(null,arguments)},cb=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(cb=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.m).apply(null,arguments)},db=a._emscripten_bind_DecoderBuffer___destroy___0=
+function(){return(db=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.n).apply(null,arguments)},Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ea=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=a.asm.o).apply(null,arguments)},eb=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(eb=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.p).apply(null,arguments)},fb=a._emscripten_bind_AttributeTransformData___destroy___0=
+function(){return(fb=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.q).apply(null,arguments)},Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Fa=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=a.asm.r).apply(null,arguments)},gb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(gb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.s).apply(null,arguments)},Ga=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ga=
+a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.t).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_size_0=function(){return(hb=a._emscripten_bind_PointAttribute_size_0=a.asm.u).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(ib=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.v).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(jb=a._emscripten_bind_PointAttribute_attribute_type_0=
+a.asm.w).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(kb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.x).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(lb=a._emscripten_bind_PointAttribute_num_components_0=a.asm.y).apply(null,arguments)},mb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(mb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.z).apply(null,arguments)},nb=a._emscripten_bind_PointAttribute_byte_stride_0=
+function(){return(nb=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.A).apply(null,arguments)},ob=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(ob=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.B).apply(null,arguments)},pb=a._emscripten_bind_PointAttribute_unique_id_0=function(){return(pb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.C).apply(null,arguments)},qb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(qb=a._emscripten_bind_PointAttribute___destroy___0=
+a.asm.D).apply(null,arguments)},Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Ha=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.E).apply(null,arguments)},rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.F).apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=
+function(){return(sb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.G).apply(null,arguments)},tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(tb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.H).apply(null,arguments)},ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ub=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.I).apply(null,arguments)},vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=
+function(){return(vb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.J).apply(null,arguments)},Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ia=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=a.asm.K).apply(null,arguments)},wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(wb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.L).apply(null,
+arguments)},xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(xb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.M).apply(null,arguments)},yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(yb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.N).apply(null,arguments)},Ja=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Ja=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.O).apply(null,
+arguments)},zb=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(zb=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.P).apply(null,arguments)},Ab=a._emscripten_bind_PointCloud_num_points_0=function(){return(Ab=a._emscripten_bind_PointCloud_num_points_0=a.asm.Q).apply(null,arguments)},Bb=a._emscripten_bind_PointCloud___destroy___0=function(){return(Bb=a._emscripten_bind_PointCloud___destroy___0=a.asm.R).apply(null,arguments)},Ka=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ka=
+a._emscripten_bind_Mesh_Mesh_0=a.asm.S).apply(null,arguments)},Cb=a._emscripten_bind_Mesh_num_faces_0=function(){return(Cb=a._emscripten_bind_Mesh_num_faces_0=a.asm.T).apply(null,arguments)},Db=a._emscripten_bind_Mesh_num_attributes_0=function(){return(Db=a._emscripten_bind_Mesh_num_attributes_0=a.asm.U).apply(null,arguments)},Eb=a._emscripten_bind_Mesh_num_points_0=function(){return(Eb=a._emscripten_bind_Mesh_num_points_0=a.asm.V).apply(null,arguments)},Fb=a._emscripten_bind_Mesh___destroy___0=function(){return(Fb=
+a._emscripten_bind_Mesh___destroy___0=a.asm.W).apply(null,arguments)},La=a._emscripten_bind_Metadata_Metadata_0=function(){return(La=a._emscripten_bind_Metadata_Metadata_0=a.asm.X).apply(null,arguments)},Gb=a._emscripten_bind_Metadata___destroy___0=function(){return(Gb=a._emscripten_bind_Metadata___destroy___0=a.asm.Y).apply(null,arguments)},Hb=a._emscripten_bind_Status_code_0=function(){return(Hb=a._emscripten_bind_Status_code_0=a.asm.Z).apply(null,arguments)},Ib=a._emscripten_bind_Status_ok_0=function(){return(Ib=
+a._emscripten_bind_Status_ok_0=a.asm._).apply(null,arguments)},Jb=a._emscripten_bind_Status_error_msg_0=function(){return(Jb=a._emscripten_bind_Status_error_msg_0=a.asm.$).apply(null,arguments)},Kb=a._emscripten_bind_Status___destroy___0=function(){return(Kb=a._emscripten_bind_Status___destroy___0=a.asm.aa).apply(null,arguments)},Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ma=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm.ba).apply(null,arguments)},
+Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Lb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.ca).apply(null,arguments)},Mb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Mb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.da).apply(null,arguments)},Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Nb=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ea).apply(null,arguments)},Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=
+function(){return(Na=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.fa).apply(null,arguments)},Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Ob=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.ga).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt8Array_size_0=function(){return(Pb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ha).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Qb=a._emscripten_bind_DracoInt8Array___destroy___0=
+a.asm.ia).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ja).apply(null,arguments)},Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Rb=a._emscripten_bind_DracoUInt8Array_GetValue_1=a.asm.ka).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Sb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.la).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=
+function(){return(Tb=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ma).apply(null,arguments)},Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Pa=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.na).apply(null,arguments)},Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Ub=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.oa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Vb=a._emscripten_bind_DracoInt16Array_size_0=
+a.asm.pa).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Wb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.qa).apply(null,arguments)},Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Qa=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=a.asm.ra).apply(null,arguments)},Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Xb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.sa).apply(null,arguments)},
+Yb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Yb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.ta).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Zb=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ua).apply(null,arguments)},Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(Ra=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.va).apply(null,arguments)},$b=a._emscripten_bind_DracoInt32Array_GetValue_1=
+function(){return($b=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.wa).apply(null,arguments)},ac=a._emscripten_bind_DracoInt32Array_size_0=function(){return(ac=a._emscripten_bind_DracoInt32Array_size_0=a.asm.xa).apply(null,arguments)},bc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(bc=a._emscripten_bind_DracoInt32Array___destroy___0=a.asm.ya).apply(null,arguments)},Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Sa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=
+a.asm.za).apply(null,arguments)},cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(cc=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.Aa).apply(null,arguments)},dc=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(dc=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.Ba).apply(null,arguments)},ec=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(ec=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.Ca).apply(null,arguments)},Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=
+function(){return(Ta=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Da).apply(null,arguments)},fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(fc=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ea).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=a.asm.Fa).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(hc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=
+a.asm.Ga).apply(null,arguments)},ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(ic=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ha).apply(null,arguments)},jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(jc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Ia).apply(null,arguments)},kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(kc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ja).apply(null,arguments)},
+lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(lc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ka).apply(null,arguments)},mc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(mc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.La).apply(null,arguments)},Ua=a._emscripten_bind_Decoder_Decoder_0=function(){return(Ua=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ma).apply(null,arguments)},nc=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(nc=
+a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Na).apply(null,arguments)},oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(oc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.Oa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pc=a._emscripten_bind_Decoder_GetAttributeId_2=a.asm.Pa).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=
+a.asm.Qa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(rc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Ra).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(sc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Sa).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(tc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Ta).apply(null,arguments)},
+uc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(uc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ua).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Va).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(wc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Wa).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=
+function(){return(xc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Xa).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(yc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Ya).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(zc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Za).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ac=
+a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm._a).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.$a).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=a.asm.ab).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Dc=
+a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm.bb).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.cb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Fc=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=a.asm.db).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=
+function(){return(Gc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.eb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Hc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.fb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Ic=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=a.asm.gb).apply(null,arguments)},Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=
+function(){return(Jc=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.hb).apply(null,arguments)},Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Kc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.ib).apply(null,arguments)},Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Lc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=a.asm.jb).apply(null,arguments)},Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=
+function(){return(Mc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.kb).apply(null,arguments)},Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Nc=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.lb).apply(null,arguments)},Oc=a._emscripten_bind_Decoder___destroy___0=function(){return(Oc=a._emscripten_bind_Decoder___destroy___0=a.asm.mb).apply(null,arguments)},Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Pc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
+a.asm.nb).apply(null,arguments)},Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Qc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.ob).apply(null,arguments)},Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Rc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=a.asm.pb).apply(null,arguments)},Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=
+function(){return(Sc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.qb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.rb).apply(null,arguments)},Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Uc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=a.asm.sb).apply(null,arguments)},Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=
+function(){return(Vc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.tb).apply(null,arguments)},Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Wc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.ub).apply(null,arguments)},Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Xc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=a.asm.vb).apply(null,arguments)},Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=
+function(){return(Yc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.wb).apply(null,arguments)},Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Zc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.xb).apply(null,arguments)},$c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return($c=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=a.asm.yb).apply(null,arguments)},ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=
+function(){return(ad=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.zb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.Ab).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(cd=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.Bb).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(dd=a._emscripten_enum_draco_DataType_DT_UINT8=
+a.asm.Cb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_INT16=function(){return(ed=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Db).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(fd=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Eb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(gd=a._emscripten_enum_draco_DataType_DT_INT32=a.asm.Fb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_UINT32=
+function(){return(hd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Gb).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(id=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Hb).apply(null,arguments)},jd=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(jd=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Ib).apply(null,arguments)},kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(kd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Jb).apply(null,
+arguments)},ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(ld=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Kb).apply(null,arguments)},md=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(md=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Lb).apply(null,arguments)},nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(nd=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=a.asm.Mb).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_OK=function(){return(od=
+a._emscripten_enum_draco_StatusCode_OK=a.asm.Nb).apply(null,arguments)},pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Ob).apply(null,arguments)},qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(qd=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Pb).apply(null,arguments)},rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(rd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
+a.asm.Qb).apply(null,arguments)},sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(sd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Rb).apply(null,arguments)},td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(td=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Sb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Tb).apply(null,arguments)};a._free=function(){return(a._free=a.asm.Ub).apply(null,arguments)};
+var ya=function(){return(ya=a.asm.Vb).apply(null,arguments)};a.___start_em_js=15856;a.___stop_em_js=15954;var la;ia=function b(){la||ba();la||(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(){bb(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);cb(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){db(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 eb(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){fb(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(){gb(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 hb(this.ptr)};w.prototype.GetAttributeTransformData=
+w.prototype.GetAttributeTransformData=function(){return D(ib(this.ptr),Q)};w.prototype.attribute_type=w.prototype.attribute_type=function(){return jb(this.ptr)};w.prototype.data_type=w.prototype.data_type=function(){return kb(this.ptr)};w.prototype.num_components=w.prototype.num_components=function(){return lb(this.ptr)};w.prototype.normalized=w.prototype.normalized=function(){return!!mb(this.ptr)};w.prototype.byte_stride=w.prototype.byte_stride=function(){return nb(this.ptr)};w.prototype.byte_offset=
+w.prototype.byte_offset=function(){return ob(this.ptr)};w.prototype.unique_id=w.prototype.unique_id=function(){return pb(this.ptr)};w.prototype.__destroy__=w.prototype.__destroy__=function(){qb(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!!rb(c,b)};C.prototype.quantization_bits=
+C.prototype.quantization_bits=function(){return sb(this.ptr)};C.prototype.min_value=C.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return tb(c,b)};C.prototype.range=C.prototype.range=function(){return ub(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){vb(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!!wb(c,b)};F.prototype.quantization_bits=F.prototype.quantization_bits=function(){return xb(this.ptr)};F.prototype.__destroy__=F.prototype.__destroy__=function(){yb(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 zb(this.ptr)};G.prototype.num_points=G.prototype.num_points=function(){return Ab(this.ptr)};
+G.prototype.__destroy__=G.prototype.__destroy__=function(){Bb(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 Cb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=function(){return Db(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return Eb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Fb(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(){Gb(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 Hb(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!Ib(this.ptr)};B.prototype.error_msg=B.prototype.error_msg=function(){return h(Jb(this.ptr))};
+B.prototype.__destroy__=B.prototype.__destroy__=function(){Kb(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 Lb(c,b)};H.prototype.size=H.prototype.size=function(){return Mb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){Nb(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 Ob(c,b)};I.prototype.size=I.prototype.size=function(){return Pb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Qb(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 Rb(c,b)};J.prototype.size=J.prototype.size=function(){return Sb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Tb(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 Ub(c,b)};K.prototype.size=K.prototype.size=function(){return Vb(this.ptr)};
+K.prototype.__destroy__=K.prototype.__destroy__=function(){Wb(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 Xb(c,b)};L.prototype.size=L.prototype.size=function(){return Yb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Zb(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 $b(c,b)};M.prototype.size=M.prototype.size=function(){return ac(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){bc(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 cc(c,b)};N.prototype.size=N.prototype.size=function(){return dc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){ec(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!!fc(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 gc(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);hc(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 ic(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(jc(d,b,c))};y.prototype.NumEntries=y.prototype.NumEntries=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return kc(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(lc(d,b,c))};y.prototype.__destroy__=y.prototype.__destroy__=function(){mc(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(nc(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(oc(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 pc(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 qc(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 rc(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(sc(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(tc(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(uc(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(vc(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!!wc(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 xc(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!!yc(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!!zc(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!!Ac(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!!Bc(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!!Cc(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!!Dc(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!!Ec(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!!Fc(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!!Gc(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!!Hc(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!!Ic(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!!Jc(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);Kc(c,b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Lc(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(Mc(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(Nc(d,b,c),B)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Oc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Pc();a.ATTRIBUTE_NO_TRANSFORM=Qc();
+a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Rc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Sc();a.INVALID=Tc();a.POSITION=Uc();a.NORMAL=Vc();a.COLOR=Wc();a.TEX_COORD=Xc();a.GENERIC=Yc();a.INVALID_GEOMETRY_TYPE=Zc();a.POINT_CLOUD=$c();a.TRIANGULAR_MESH=ad();a.DT_INVALID=bd();a.DT_INT8=cd();a.DT_UINT8=dd();a.DT_INT16=ed();a.DT_UINT16=fd();a.DT_INT32=gd();a.DT_UINT32=hd();a.DT_INT64=id();a.DT_UINT64=jd();a.DT_FLOAT32=kd();a.DT_FLOAT64=ld();a.DT_BOOL=md();a.DT_TYPES_COUNT=nd();a.OK=od();a.DRACO_ERROR=pd();a.IO_ERROR=qd();
+a.INVALID_PARAMETER=rd();a.UNSUPPORTED_VERSION=sd();a.UNKNOWN_VERSION=td()}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);

Fichier diff supprimé car celui-ci est trop grand
+ 7 - 0
public/draco/gltf/draco_decoder.js


BIN
public/draco/gltf/draco_decoder.wasm


Fichier diff supprimé car celui-ci est trop grand
+ 3 - 0
public/draco/gltf/draco_encoder.js


+ 116 - 0
public/draco/gltf/draco_wasm_wrapper.js

@@ -0,0 +1,116 @@
+var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.arrayIteratorImpl=function(h){var n=0;return function(){return n<h.length?{done:!1,value:h[n++]}:{done:!0}}};$jscomp.arrayIterator=function(h){return{next:$jscomp.arrayIteratorImpl(h)}};$jscomp.makeIterator=function(h){var n="undefined"!=typeof Symbol&&Symbol.iterator&&h[Symbol.iterator];return n?n.call(h):$jscomp.arrayIterator(h)};$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(h){h=["object"==typeof globalThis&&globalThis,h,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var n=0;n<h.length;++n){var k=h[n];if(k&&k.Math==Math)return k}throw Error("Cannot find global object");};$jscomp.global=$jscomp.getGlobal(this);
+$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(h,n,k){if(h==Array.prototype||h==Object.prototype)return h;h[n]=k.value;return h};$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(h,n){var k=$jscomp.propertyToPolyfillSymbol[n];if(null==k)return h[n];k=h[k];return void 0!==k?k:h[n]};$jscomp.polyfill=function(h,n,k,p){n&&($jscomp.ISOLATE_POLYFILLS?$jscomp.polyfillIsolated(h,n,k,p):$jscomp.polyfillUnisolated(h,n,k,p))};
+$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,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&&ra)c=ra.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(){var e=ja.buffer;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.");ka(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(){function e(){if(!la&&(la=!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);e()},1)):e())}}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=void 0===n?{}:n;var a="undefined"!=typeof n?n:{},wa,ka;a.ready=new Promise(function(e,b){wa=e;ka=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){var Va=require("fs"),pa=require("path");U=fa?pa.dirname(U)+"/":__dirname+"/";var Wa=function(e,b){e=e.startsWith("file://")?new URL(e):pa.normalize(e);return Va.readFileSync(e,b?void 0:"utf8")};var ma=function(e){e=Wa(e,!0);e.buffer||(e=new Uint8Array(e));return e};var na=function(e,
+b,c){e=e.startsWith("file://")?new URL(e):pa.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):"",Wa=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 ja,sa=!1,ra="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0,W,ia,ca,Y,ya=[],oa=[],xa=[],va=!1,ba=0,qa=null,ha=null;var P="draco_decoder_gltf.wasm";P.startsWith("data:application/octet-stream;base64,")||(P=k(P));var pd=0,qd={b:function(e,b,c){(new A(e)).init(b,c);pd++;throw e;},a:function(){y("")},d:function(e,b,c){ia.copyWithin(e,b,b+c)},c: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:{d=ja.buffer;try{ja.grow(g-d.byteLength+65535>>>16);l();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;ja=a.asm.e;l();oa.unshift(a.asm.f);ba--;a.monitorRunDependencies&&a.monitorRunDependencies(ba);0==ba&&(null!==qa&&(clearInterval(qa),qa=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:qd};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),ka(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(ka);return{}})();var Xa=a._emscripten_bind_VoidPtr___destroy___0=function(){return(Xa=a._emscripten_bind_VoidPtr___destroy___0=a.asm.h).apply(null,arguments)},za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=
+function(){return(za=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=a.asm.i).apply(null,arguments)},Ya=a._emscripten_bind_DecoderBuffer_Init_2=function(){return(Ya=a._emscripten_bind_DecoderBuffer_Init_2=a.asm.j).apply(null,arguments)},Za=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Za=a._emscripten_bind_DecoderBuffer___destroy___0=a.asm.k).apply(null,arguments)},Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Aa=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=
+a.asm.l).apply(null,arguments)},$a=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return($a=a._emscripten_bind_AttributeTransformData_transform_type_0=a.asm.m).apply(null,arguments)},ab=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return(ab=a._emscripten_bind_AttributeTransformData___destroy___0=a.asm.n).apply(null,arguments)},Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(Ba=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=
+a.asm.o).apply(null,arguments)},bb=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return(bb=a._emscripten_bind_GeometryAttribute___destroy___0=a.asm.p).apply(null,arguments)},Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Ca=a._emscripten_bind_PointAttribute_PointAttribute_0=a.asm.q).apply(null,arguments)},cb=a._emscripten_bind_PointAttribute_size_0=function(){return(cb=a._emscripten_bind_PointAttribute_size_0=a.asm.r).apply(null,arguments)},db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=
+function(){return(db=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=a.asm.s).apply(null,arguments)},eb=a._emscripten_bind_PointAttribute_attribute_type_0=function(){return(eb=a._emscripten_bind_PointAttribute_attribute_type_0=a.asm.t).apply(null,arguments)},fb=a._emscripten_bind_PointAttribute_data_type_0=function(){return(fb=a._emscripten_bind_PointAttribute_data_type_0=a.asm.u).apply(null,arguments)},gb=a._emscripten_bind_PointAttribute_num_components_0=function(){return(gb=a._emscripten_bind_PointAttribute_num_components_0=
+a.asm.v).apply(null,arguments)},hb=a._emscripten_bind_PointAttribute_normalized_0=function(){return(hb=a._emscripten_bind_PointAttribute_normalized_0=a.asm.w).apply(null,arguments)},ib=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return(ib=a._emscripten_bind_PointAttribute_byte_stride_0=a.asm.x).apply(null,arguments)},jb=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return(jb=a._emscripten_bind_PointAttribute_byte_offset_0=a.asm.y).apply(null,arguments)},kb=a._emscripten_bind_PointAttribute_unique_id_0=
+function(){return(kb=a._emscripten_bind_PointAttribute_unique_id_0=a.asm.z).apply(null,arguments)},lb=a._emscripten_bind_PointAttribute___destroy___0=function(){return(lb=a._emscripten_bind_PointAttribute___destroy___0=a.asm.A).apply(null,arguments)},Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Da=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=a.asm.B).apply(null,arguments)},mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=
+function(){return(mb=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=a.asm.C).apply(null,arguments)},nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(nb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=a.asm.D).apply(null,arguments)},ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(ob=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=a.asm.E).apply(null,arguments)},pb=
+a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(pb=a._emscripten_bind_AttributeQuantizationTransform_range_0=a.asm.F).apply(null,arguments)},qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(qb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=a.asm.G).apply(null,arguments)},Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(Ea=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=
+a.asm.H).apply(null,arguments)},rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(rb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=a.asm.I).apply(null,arguments)},sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(sb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=a.asm.J).apply(null,arguments)},tb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(tb=
+a._emscripten_bind_AttributeOctahedronTransform___destroy___0=a.asm.K).apply(null,arguments)},Fa=a._emscripten_bind_PointCloud_PointCloud_0=function(){return(Fa=a._emscripten_bind_PointCloud_PointCloud_0=a.asm.L).apply(null,arguments)},ub=a._emscripten_bind_PointCloud_num_attributes_0=function(){return(ub=a._emscripten_bind_PointCloud_num_attributes_0=a.asm.M).apply(null,arguments)},vb=a._emscripten_bind_PointCloud_num_points_0=function(){return(vb=a._emscripten_bind_PointCloud_num_points_0=a.asm.N).apply(null,
+arguments)},wb=a._emscripten_bind_PointCloud___destroy___0=function(){return(wb=a._emscripten_bind_PointCloud___destroy___0=a.asm.O).apply(null,arguments)},Ga=a._emscripten_bind_Mesh_Mesh_0=function(){return(Ga=a._emscripten_bind_Mesh_Mesh_0=a.asm.P).apply(null,arguments)},xb=a._emscripten_bind_Mesh_num_faces_0=function(){return(xb=a._emscripten_bind_Mesh_num_faces_0=a.asm.Q).apply(null,arguments)},yb=a._emscripten_bind_Mesh_num_attributes_0=function(){return(yb=a._emscripten_bind_Mesh_num_attributes_0=
+a.asm.R).apply(null,arguments)},zb=a._emscripten_bind_Mesh_num_points_0=function(){return(zb=a._emscripten_bind_Mesh_num_points_0=a.asm.S).apply(null,arguments)},Ab=a._emscripten_bind_Mesh___destroy___0=function(){return(Ab=a._emscripten_bind_Mesh___destroy___0=a.asm.T).apply(null,arguments)},Ha=a._emscripten_bind_Metadata_Metadata_0=function(){return(Ha=a._emscripten_bind_Metadata_Metadata_0=a.asm.U).apply(null,arguments)},Bb=a._emscripten_bind_Metadata___destroy___0=function(){return(Bb=a._emscripten_bind_Metadata___destroy___0=
+a.asm.V).apply(null,arguments)},Cb=a._emscripten_bind_Status_code_0=function(){return(Cb=a._emscripten_bind_Status_code_0=a.asm.W).apply(null,arguments)},Db=a._emscripten_bind_Status_ok_0=function(){return(Db=a._emscripten_bind_Status_ok_0=a.asm.X).apply(null,arguments)},Eb=a._emscripten_bind_Status_error_msg_0=function(){return(Eb=a._emscripten_bind_Status_error_msg_0=a.asm.Y).apply(null,arguments)},Fb=a._emscripten_bind_Status___destroy___0=function(){return(Fb=a._emscripten_bind_Status___destroy___0=
+a.asm.Z).apply(null,arguments)},Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ia=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=a.asm._).apply(null,arguments)},Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Gb=a._emscripten_bind_DracoFloat32Array_GetValue_1=a.asm.$).apply(null,arguments)},Hb=a._emscripten_bind_DracoFloat32Array_size_0=function(){return(Hb=a._emscripten_bind_DracoFloat32Array_size_0=a.asm.aa).apply(null,arguments)},Ib=
+a._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ib=a._emscripten_bind_DracoFloat32Array___destroy___0=a.asm.ba).apply(null,arguments)},Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ja=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=a.asm.ca).apply(null,arguments)},Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Jb=a._emscripten_bind_DracoInt8Array_GetValue_1=a.asm.da).apply(null,arguments)},Kb=a._emscripten_bind_DracoInt8Array_size_0=
+function(){return(Kb=a._emscripten_bind_DracoInt8Array_size_0=a.asm.ea).apply(null,arguments)},Lb=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Lb=a._emscripten_bind_DracoInt8Array___destroy___0=a.asm.fa).apply(null,arguments)},Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Ka=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=a.asm.ga).apply(null,arguments)},Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Mb=a._emscripten_bind_DracoUInt8Array_GetValue_1=
+a.asm.ha).apply(null,arguments)},Nb=a._emscripten_bind_DracoUInt8Array_size_0=function(){return(Nb=a._emscripten_bind_DracoUInt8Array_size_0=a.asm.ia).apply(null,arguments)},Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ob=a._emscripten_bind_DracoUInt8Array___destroy___0=a.asm.ja).apply(null,arguments)},La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(La=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=a.asm.ka).apply(null,arguments)},Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=
+function(){return(Pb=a._emscripten_bind_DracoInt16Array_GetValue_1=a.asm.la).apply(null,arguments)},Qb=a._emscripten_bind_DracoInt16Array_size_0=function(){return(Qb=a._emscripten_bind_DracoInt16Array_size_0=a.asm.ma).apply(null,arguments)},Rb=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Rb=a._emscripten_bind_DracoInt16Array___destroy___0=a.asm.na).apply(null,arguments)},Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Ma=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=
+a.asm.oa).apply(null,arguments)},Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Sb=a._emscripten_bind_DracoUInt16Array_GetValue_1=a.asm.pa).apply(null,arguments)},Tb=a._emscripten_bind_DracoUInt16Array_size_0=function(){return(Tb=a._emscripten_bind_DracoUInt16Array_size_0=a.asm.qa).apply(null,arguments)},Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Ub=a._emscripten_bind_DracoUInt16Array___destroy___0=a.asm.ra).apply(null,arguments)},Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=
+function(){return(Na=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=a.asm.sa).apply(null,arguments)},Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Vb=a._emscripten_bind_DracoInt32Array_GetValue_1=a.asm.ta).apply(null,arguments)},Wb=a._emscripten_bind_DracoInt32Array_size_0=function(){return(Wb=a._emscripten_bind_DracoInt32Array_size_0=a.asm.ua).apply(null,arguments)},Xb=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Xb=a._emscripten_bind_DracoInt32Array___destroy___0=
+a.asm.va).apply(null,arguments)},Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(Oa=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=a.asm.wa).apply(null,arguments)},Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(Yb=a._emscripten_bind_DracoUInt32Array_GetValue_1=a.asm.xa).apply(null,arguments)},Zb=a._emscripten_bind_DracoUInt32Array_size_0=function(){return(Zb=a._emscripten_bind_DracoUInt32Array_size_0=a.asm.ya).apply(null,arguments)},$b=a._emscripten_bind_DracoUInt32Array___destroy___0=
+function(){return($b=a._emscripten_bind_DracoUInt32Array___destroy___0=a.asm.za).apply(null,arguments)},Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Pa=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=a.asm.Aa).apply(null,arguments)},ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(ac=a._emscripten_bind_MetadataQuerier_HasEntry_2=a.asm.Ba).apply(null,arguments)},bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(bc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=
+a.asm.Ca).apply(null,arguments)},cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(cc=a._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=a.asm.Da).apply(null,arguments)},dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(dc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=a.asm.Ea).apply(null,arguments)},ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(ec=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=a.asm.Fa).apply(null,
+arguments)},fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(fc=a._emscripten_bind_MetadataQuerier_NumEntries_1=a.asm.Ga).apply(null,arguments)},gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(gc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=a.asm.Ha).apply(null,arguments)},hc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return(hc=a._emscripten_bind_MetadataQuerier___destroy___0=a.asm.Ia).apply(null,arguments)},Qa=a._emscripten_bind_Decoder_Decoder_0=
+function(){return(Qa=a._emscripten_bind_Decoder_Decoder_0=a.asm.Ja).apply(null,arguments)},ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ic=a._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=a.asm.Ka).apply(null,arguments)},jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(jc=a._emscripten_bind_Decoder_DecodeArrayToMesh_3=a.asm.La).apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return(kc=a._emscripten_bind_Decoder_GetAttributeId_2=
+a.asm.Ma).apply(null,arguments)},lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(lc=a._emscripten_bind_Decoder_GetAttributeIdByName_2=a.asm.Na).apply(null,arguments)},mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(mc=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=a.asm.Oa).apply(null,arguments)},nc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return(nc=a._emscripten_bind_Decoder_GetAttribute_2=a.asm.Pa).apply(null,arguments)},
+oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(oc=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=a.asm.Qa).apply(null,arguments)},pc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return(pc=a._emscripten_bind_Decoder_GetMetadata_1=a.asm.Ra).apply(null,arguments)},qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(qc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=a.asm.Sa).apply(null,arguments)},rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=
+function(){return(rc=a._emscripten_bind_Decoder_GetFaceFromMesh_3=a.asm.Ta).apply(null,arguments)},sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(sc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=a.asm.Ua).apply(null,arguments)},tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(tc=a._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=a.asm.Va).apply(null,arguments)},uc=a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(uc=
+a._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=a.asm.Wa).apply(null,arguments)},vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(vc=a._emscripten_bind_Decoder_GetAttributeFloat_3=a.asm.Xa).apply(null,arguments)},wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(wc=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=a.asm.Ya).apply(null,arguments)},xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(xc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=
+a.asm.Za).apply(null,arguments)},yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(yc=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=a.asm._a).apply(null,arguments)},zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(zc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=a.asm.$a).apply(null,arguments)},Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(Ac=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=
+a.asm.ab).apply(null,arguments)},Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Bc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=a.asm.bb).apply(null,arguments)},Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Cc=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=a.asm.cb).apply(null,arguments)},Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Dc=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=
+a.asm.db).apply(null,arguments)},Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(Ec=a._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=a.asm.eb).apply(null,arguments)},Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Fc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=a.asm.fb).apply(null,arguments)},Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Gc=a._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=
+a.asm.gb).apply(null,arguments)},Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Hc=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=a.asm.hb).apply(null,arguments)},Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Ic=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=a.asm.ib).apply(null,arguments)},Jc=a._emscripten_bind_Decoder___destroy___0=function(){return(Jc=a._emscripten_bind_Decoder___destroy___0=a.asm.jb).apply(null,arguments)},Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=
+function(){return(Kc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=a.asm.kb).apply(null,arguments)},Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Lc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=a.asm.lb).apply(null,arguments)},Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Mc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=
+a.asm.mb).apply(null,arguments)},Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Nc=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=a.asm.nb).apply(null,arguments)},Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(Oc=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=a.asm.ob).apply(null,arguments)},Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(Pc=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION=
+a.asm.pb).apply(null,arguments)},Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Qc=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=a.asm.qb).apply(null,arguments)},Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Rc=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=a.asm.rb).apply(null,arguments)},Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Sc=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=
+a.asm.sb).apply(null,arguments)},Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Tc=a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=a.asm.tb).apply(null,arguments)},Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(Uc=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=a.asm.ub).apply(null,arguments)},Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Vc=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=
+a.asm.vb).apply(null,arguments)},Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Wc=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=a.asm.wb).apply(null,arguments)},Xc=a._emscripten_enum_draco_DataType_DT_INVALID=function(){return(Xc=a._emscripten_enum_draco_DataType_DT_INVALID=a.asm.xb).apply(null,arguments)},Yc=a._emscripten_enum_draco_DataType_DT_INT8=function(){return(Yc=a._emscripten_enum_draco_DataType_DT_INT8=a.asm.yb).apply(null,arguments)},Zc=
+a._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Zc=a._emscripten_enum_draco_DataType_DT_UINT8=a.asm.zb).apply(null,arguments)},$c=a._emscripten_enum_draco_DataType_DT_INT16=function(){return($c=a._emscripten_enum_draco_DataType_DT_INT16=a.asm.Ab).apply(null,arguments)},ad=a._emscripten_enum_draco_DataType_DT_UINT16=function(){return(ad=a._emscripten_enum_draco_DataType_DT_UINT16=a.asm.Bb).apply(null,arguments)},bd=a._emscripten_enum_draco_DataType_DT_INT32=function(){return(bd=a._emscripten_enum_draco_DataType_DT_INT32=
+a.asm.Cb).apply(null,arguments)},cd=a._emscripten_enum_draco_DataType_DT_UINT32=function(){return(cd=a._emscripten_enum_draco_DataType_DT_UINT32=a.asm.Db).apply(null,arguments)},dd=a._emscripten_enum_draco_DataType_DT_INT64=function(){return(dd=a._emscripten_enum_draco_DataType_DT_INT64=a.asm.Eb).apply(null,arguments)},ed=a._emscripten_enum_draco_DataType_DT_UINT64=function(){return(ed=a._emscripten_enum_draco_DataType_DT_UINT64=a.asm.Fb).apply(null,arguments)},fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=
+function(){return(fd=a._emscripten_enum_draco_DataType_DT_FLOAT32=a.asm.Gb).apply(null,arguments)},gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(gd=a._emscripten_enum_draco_DataType_DT_FLOAT64=a.asm.Hb).apply(null,arguments)},hd=a._emscripten_enum_draco_DataType_DT_BOOL=function(){return(hd=a._emscripten_enum_draco_DataType_DT_BOOL=a.asm.Ib).apply(null,arguments)},id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(id=a._emscripten_enum_draco_DataType_DT_TYPES_COUNT=
+a.asm.Jb).apply(null,arguments)},jd=a._emscripten_enum_draco_StatusCode_OK=function(){return(jd=a._emscripten_enum_draco_StatusCode_OK=a.asm.Kb).apply(null,arguments)},kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(kd=a._emscripten_enum_draco_StatusCode_DRACO_ERROR=a.asm.Lb).apply(null,arguments)},ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(ld=a._emscripten_enum_draco_StatusCode_IO_ERROR=a.asm.Mb).apply(null,arguments)},md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=
+function(){return(md=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=a.asm.Nb).apply(null,arguments)},nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(nd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=a.asm.Ob).apply(null,arguments)},od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(od=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=a.asm.Pb).apply(null,arguments)};a._malloc=function(){return(a._malloc=a.asm.Qb).apply(null,arguments)};
+a._free=function(){return(a._free=a.asm.Rb).apply(null,arguments)};var ua=function(){return(ua=a.asm.Sb).apply(null,arguments)};a.___start_em_js=11660;a.___stop_em_js=11758;var la;ha=function b(){la||F();la||(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(){Xa(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);Ya(d,b,c)};S.prototype.__destroy__=S.prototype.__destroy__=function(){Za(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 $a(this.ptr)};Q.prototype.__destroy__=Q.prototype.__destroy__=function(){ab(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(){bb(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 cb(this.ptr)};x.prototype.GetAttributeTransformData=x.prototype.GetAttributeTransformData=function(){return B(db(this.ptr),Q)};x.prototype.attribute_type=x.prototype.attribute_type=function(){return eb(this.ptr)};x.prototype.data_type=x.prototype.data_type=function(){return fb(this.ptr)};x.prototype.num_components=x.prototype.num_components=function(){return gb(this.ptr)};x.prototype.normalized=
+x.prototype.normalized=function(){return!!hb(this.ptr)};x.prototype.byte_stride=x.prototype.byte_stride=function(){return ib(this.ptr)};x.prototype.byte_offset=x.prototype.byte_offset=function(){return jb(this.ptr)};x.prototype.unique_id=x.prototype.unique_id=function(){return kb(this.ptr)};x.prototype.__destroy__=x.prototype.__destroy__=function(){lb(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!!mb(c,b)};D.prototype.quantization_bits=D.prototype.quantization_bits=function(){return nb(this.ptr)};D.prototype.min_value=D.prototype.min_value=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return ob(c,b)};D.prototype.range=D.prototype.range=function(){return pb(this.ptr)};D.prototype.__destroy__=D.prototype.__destroy__=function(){qb(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!!rb(c,b)};G.prototype.quantization_bits=G.prototype.quantization_bits=function(){return sb(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){tb(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 ub(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return vb(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){wb(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 xb(this.ptr)};E.prototype.num_attributes=E.prototype.num_attributes=
+function(){return yb(this.ptr)};E.prototype.num_points=E.prototype.num_points=function(){return zb(this.ptr)};E.prototype.__destroy__=E.prototype.__destroy__=function(){Ab(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(){Bb(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 Cb(this.ptr)};C.prototype.ok=C.prototype.ok=function(){return!!Db(this.ptr)};C.prototype.error_msg=C.prototype.error_msg=function(){return p(Eb(this.ptr))};C.prototype.__destroy__=C.prototype.__destroy__=function(){Fb(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 Gb(c,
+b)};I.prototype.size=I.prototype.size=function(){return Hb(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Ib(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 Jb(c,b)};J.prototype.size=J.prototype.size=function(){return Kb(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Lb(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 Mb(c,b)};K.prototype.size=K.prototype.size=function(){return Nb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__=function(){Ob(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 Pb(c,b)};L.prototype.size=L.prototype.size=function(){return Qb(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){Rb(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 Sb(c,b)};
+M.prototype.size=M.prototype.size=function(){return Tb(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){Ub(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 Vb(c,b)};N.prototype.size=N.prototype.size=function(){return Wb(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){Xb(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 Yb(c,b)};O.prototype.size=O.prototype.size=function(){return Zb(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){$b(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!!ac(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 bc(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);cc(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 dc(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(ec(d,b,c))};z.prototype.NumEntries=z.prototype.NumEntries=function(b){var c=this.ptr;
+b&&"object"===typeof b&&(b=b.ptr);return fc(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(gc(d,b,c))};z.prototype.__destroy__=z.prototype.__destroy__=function(){hc(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(ic(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(jc(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 kc(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 lc(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 mc(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(nc(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(oc(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(pc(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(qc(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!!rc(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 sc(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!!tc(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!!uc(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!!vc(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!!wc(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!!xc(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!!yc(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!!zc(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!!Ac(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!!Bc(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!!Cc(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!!Dc(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!!Ec(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);Fc(c,
+b)};m.prototype.GetEncodedGeometryType_Deprecated=m.prototype.GetEncodedGeometryType_Deprecated=function(b){var c=this.ptr;b&&"object"===typeof b&&(b=b.ptr);return Gc(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(Hc(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(Ic(d,b,c),C)};m.prototype.__destroy__=m.prototype.__destroy__=function(){Jc(this.ptr)};(function(){function b(){a.ATTRIBUTE_INVALID_TRANSFORM=Kc();a.ATTRIBUTE_NO_TRANSFORM=Lc();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=Mc();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Nc();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.DT_INVALID=Xc();a.DT_INT8=Yc();a.DT_UINT8=Zc();a.DT_INT16=
+$c();a.DT_UINT16=ad();a.DT_INT32=bd();a.DT_UINT32=cd();a.DT_INT64=dd();a.DT_UINT64=ed();a.DT_FLOAT32=fd();a.DT_FLOAT64=gd();a.DT_BOOL=hd();a.DT_TYPES_COUNT=id();a.OK=jd();a.DRACO_ERROR=kd();a.IO_ERROR=ld();a.INVALID_PARAMETER=md();a.UNSUPPORTED_VERSION=nd();a.UNKNOWN_VERSION=od()}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);

+ 34 - 0
src/js/debounce.js

@@ -0,0 +1,34 @@
+function debounce(func, wait, immediate) {
+  var prev, args, context, timeout, result;
+
+  function later() {
+    const n = Date.now();
+    if (wait > n - prev) {
+      timeout = setTimeout(later, n - prev);
+    } else {
+      result = func.apply(context, args);
+      timeout = null;
+      args = null;
+      context = null;
+    }
+  }
+
+  function debounced(..._args) {
+    args = _args;
+    // eslint-disable-next-line @typescript-eslint/no-this-alias
+    context = this;
+    prev = Date.now();
+
+    if (!timeout) {
+      timeout = setTimeout(later, wait);
+      if (immediate) {
+        result = func.apply(context, args);
+      }
+    }
+    return result;
+  }
+
+  return debounced;
+}
+
+export { debounce };

+ 36 - 0
src/js/throttle.js

@@ -0,0 +1,36 @@
+function throttle(func, wait, options) {
+  var args, prev, timeout, context;
+
+  function later() {
+    var now = Date.now();
+    var pass = now - prev;
+    if (wait > pass) {
+      timeout = setTimeout(later, pass);
+    } else {
+      if (options.trailing) {
+        func.apply(context, args);
+      }
+      timeout = null;
+      args = null;
+      context = null;
+    }
+  }
+
+  function throttled(..._args) {
+    // eslint-disable-next-line @typescript-eslint/no-this-alias
+    context = this;
+    args = _args;
+
+    if (!timeout) {
+      prev = Date.now();
+      if (options.leading) {
+        func.apply(context, args);
+      }
+      timeout = setTimeout(later, wait);
+    }
+  }
+
+  return throttled;
+}
+
+export { throttle };

+ 14 - 0
src/router/index.js

@@ -100,6 +100,14 @@ const routes = [
             /* webpackChunkName: "three" */ "../views/three/index-material.vue"
           ),
       },
+      {
+        path: "/three/glb",
+        name: "threeGlb",
+        component: () =>
+          import(
+            /* webpackChunkName: "three" */ "../views/three/index-glb.vue"
+          ),
+      },
     ],
   },
   {
@@ -149,6 +157,12 @@ const routes = [
         component: () =>
           import(/* webpackChunkName: "thread" */ "../views/thread.vue"),
       },
+      {
+        path: "debounce",
+        name: "debounce",
+        component: () =>
+          import(/* webpackChunkName: "debounce" */ "../views/debounce.vue"),
+      },
       {
         path: "",
         redirect: {

+ 132 - 0
src/views/debounce.vue

@@ -0,0 +1,132 @@
+<template>
+  <div>
+    <Block title="thread" desc="前端模拟多线程,跑大任务时不会阻塞主线程">
+      <p class="run">
+        <span id="t1" style="padding-right: 10px"></span>
+        <span id="t2"></span>
+        <button @click="throttled">throttled</button>
+        <button @click="debounced">debounced</button>请在控制台查看结果
+      </p>
+      <p class="demo">DEMO</p>
+    </Block>
+  </div>
+</template>
+
+<script setup>
+import Block from "@/components/block.vue";
+import { ref } from "vue";
+import { Codemirror } from "vue-codemirror";
+
+import { Thread } from "../../lib";
+function throttle(func, wait, options) {
+  var args, prev, timeout, context;
+
+  function later() {
+    var now = Date.now();
+    var pass = now - prev;
+    if (wait > pass) {
+      timeout = setTimeout(later, pass);
+    } else {
+      if (options.trailing) {
+        func.apply(context, args);
+      }
+      timeout = null;
+      args = null;
+      context = null;
+    }
+  }
+
+  function throttled(..._args) {
+    // eslint-disable-next-line @typescript-eslint/no-this-alias
+    context = this;
+    args = _args;
+
+    if (!timeout) {
+      prev = Date.now();
+      if (options.leading) {
+        func.apply(context, args);
+      }
+      timeout = setTimeout(later, wait);
+    }
+  }
+
+  return throttled;
+}
+
+// 快速排序
+function quicksort(array) {
+  var len = array.length;
+  var left = [];
+  var right = [];
+  var center = [];
+  if (len === 1 || len === 0) {
+    return array;
+  }
+  var centerIndex = Math.floor(len / 2);
+  var centerV = array[centerIndex];
+  for (var index = 0; index < len; index++) {
+    const element = array[index];
+    if (element < centerV) {
+      left.push(element);
+    } else if (element > centerV) {
+      right.push(element);
+    } else {
+      center.push(element);
+    }
+  }
+  return quicksort(left).concat(center, quicksort(right));
+}
+
+quicksort([9, 8, 7, 65, 4, 3, 2, 1]);
+
+function debounce(func, wait, immediate) {
+  var prev, args, context, timeout, result;
+
+  function later() {
+    const n = Date.now();
+    if (wait > n - prev) {
+      timeout = setTimeout(later, n - prev);
+    } else {
+      func.apply(context, args);
+      timeout = null;
+    }
+  }
+
+  function debounced(..._args) {
+    args = _args;
+    // eslint-disable-next-line @typescript-eslint/no-this-alias
+    context = this;
+    prev = Date.now();
+
+    if (!timeout) {
+      timeout = setTimeout(later, wait);
+      if (immediate) {
+        result = func.apply(context, args);
+      }
+    }
+    return result;
+  }
+
+  return debounced;
+}
+
+const throttled = throttle(
+  () => {
+    console.log("throttled");
+  },
+  1000,
+  {
+    leading: false,
+    trailing: true,
+  }
+);
+
+const debounced = debounce(
+  () => {
+    console.log("debounced");
+  },
+  1000,
+  true
+);
+// 启动运行
+</script>

BIN
src/views/three/assets/house_on_the_island.glb


+ 99 - 0
src/views/three/index-glb.vue

@@ -0,0 +1,99 @@
+<template>
+  <div ref="wrap" class="three-wrap"></div>
+</template>
+<script setup>
+import * as THREE from "three";
+import * as SceneUtils from "three/examples/jsm/utils/SceneUtils";
+import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
+import Stats from "three/examples/jsm/libs/stats.module";
+import * as dat from "dat.gui";
+import { onBeforeUnmount, onMounted, ref } from "vue";
+import { GLTFLoader } from "three/examples/jsm/loaders/GLTFLoader";
+import { RGBELoader } from "three/examples/jsm/loaders/RGBELoader";
+import { DRACOLoader } from "three/examples/jsm/loaders/DRACOLoader";
+import {
+  activeShadow,
+  addResizeAdapter,
+  getScence,
+  initAxes,
+  initBoxMesh,
+  initCamera,
+  initControl,
+  initGui,
+  initHemiLight,
+  initPointLight,
+  initPlaneMesh,
+  initRender,
+  initSphereMesh,
+  initStatus,
+  startAnimate,
+  makeStar,
+  initSpotLight,
+  getCanvasSize,
+} from "./util";
+
+/**
+ * @type {import("vue").Ref<HTMLDivElement>}
+ */
+const wrap = ref();
+const gui = initGui();
+const status = initStatus();
+
+onBeforeUnmount(() => {
+  gui.destroy();
+});
+
+onMounted(() => {
+  const render = initRender(wrap.value);
+  const camera = initCamera(wrap.value);
+  const scene = getScence();
+
+  const axes = initAxes();
+
+  const control = initControl(camera, render);
+
+  wrap.value.appendChild(render.domElement);
+  wrap.value.appendChild(status.dom);
+
+  scene.add(axes);
+  render.render(scene, camera);
+  addResizeAdapter(camera, render, wrap.value);
+
+  // 环境贴图
+  // const rgbeloader = new RGBELoader();
+  // rgbeloader.load(require("./assets/meadow_2k.hdr"), (envMap) => {
+  //   // 设置球形映射
+  //   envMap.mapping = THREE.EquirectangularReflectionMapping;
+  //   scene.background = envMap;
+  //   scene.environment = envMap;
+  // });
+
+  const star = makeStar();
+  star.position.set(4, 4, 0);
+  activeShadow(star);
+  scene.add(star);
+  const gltfLoader = new GLTFLoader();
+
+  const dracoLoader = new DRACOLoader();
+  dracoLoader.setDecoderPath("./draco/");
+
+  gltfLoader.setDRACOLoader(dracoLoader);
+
+  gltfLoader.load(require("./assets/house_on_the_island.glb"), (gltf) => {
+    activeShadow(gltf.scene);
+    scene.add(gltf.scene);
+  });
+
+  startAnimate(() => {
+    status.update();
+    control.update();
+    render.render(scene, camera);
+  });
+});
+</script>
+
+<style lang="less" scoped>
+.three-wrap {
+  position: relative;
+}
+</style>

+ 49 - 67
src/views/three/index-material.vue

@@ -63,36 +63,74 @@ onMounted(() => {
   const star = makeStar();
   const slight = initSpotLight();
 
+  // 指数雾
+  scene.fog = new THREE.FogExp2(0xcccccc, 0.02);
+
   // 环境贴图
   const rgbeloader = new RGBELoader();
   rgbeloader.load(require("./assets/meadow_2k.hdr"), (envMap) => {
+    // 设置球形映射
     envMap.mapping = THREE.EquirectangularReflectionMapping;
     scene.background = envMap;
     scene.environment = envMap;
     plane.material.envMap = envMap;
+    sphere.material.envMap = envMap;
+    box.material.envMap = envMap;
   });
 
   // 纹理贴图
   const textureLoader = new THREE.TextureLoader();
-  textureLoader.load(
+  const texture = textureLoader.load(
     require("./assets/Tiles130_1K-PNG/Tiles130_1K-PNG_Color.png"),
     (texture) => {
       plane.material.map = texture;
       sphere.material.map = texture;
+      box.material.map = texture;
       plane.material.transparent = true;
       sphere.material.transparent = true;
+      // 设置srgb颜色空间,更加真实 默认是LinearSRGBColorSpace
+      texture.colorSpace = THREE.SRGBColorSpace;
     }
   );
 
   // aoMap 环境遮挡贴图 增强环境阴影
   textureLoader.load(
-    require("./assets/Tiles130_1K-PNG/Tiles130_1K-PNG_Displacement.png"),
+    require("./assets/Tiles130_1K-PNG/Tiles130_1K-PNG_AmbientOcclusion.png"),
     (texture) => {
       plane.material.aoMap = texture;
+      box.material.aoMap = texture;
       sphere.material.aoMap = texture;
     }
   );
 
+  // // alphaMap 透明度贴图
+  // textureLoader.load(
+  //   require("./assets/Tiles130_1K-PNG/Tiles130.png"),
+  //   (texture) => {
+  //     plane.material.alphaMap = texture;
+  //     sphere.material.alphaMap = texture;
+  //   }
+  // );
+
+  // 光照贴图 光照下
+  // textureLoader.load(
+  //   require("./assets/Tiles130_1K-PNG/Tiles130.png"),
+  //   (texture) => {
+  //     plane.material.lightMap = texture;
+  //     sphere.material.lightMap = texture;
+  //     box.material.lightMap = texture;
+  //   }
+  // );
+
+  // 高光贴图 调节反射率
+  textureLoader.load(
+    require("./assets/Tiles130_1K-PNG/Tiles130_1K-PNG_Displacement.png"),
+    (texture) => {
+      // box.material.specularMap = texture;
+      plane.material.specularMap = texture;
+    }
+  );
+
   box.position.set(0, 5, 0);
   sphere.position.set(20, 10, 10);
   plight.position.set(40, 30, 0);
@@ -109,75 +147,19 @@ onMounted(() => {
   render.render(scene, camera);
   addResizeAdapter(camera, render, wrap.value);
 
-  const raycaster = new THREE.Raycaster();
-  const mouse = new THREE.Vector2();
-  wrap.value.addEventListener("click", (e) => {
-    const { layerX, layerY } = e;
-
-    mouse.x = layerX / (getCanvasSize(wrap.value).width / 2) - 1;
-    mouse.y = -(layerY / (getCanvasSize(wrap.value).height / 2) - 1);
-
-    // 通过摄像机和鼠标坐标更新射线
-    raycaster.setFromCamera(mouse, camera);
+  const starFolder = gui.addFolder("贴图");
 
-    const intersects = raycaster.intersectObjects(scene.children);
-
-    scene.children.forEach((it) => {
-      if (it.isMesh) {
-        it.material._select = false;
-        if (it.material._originColor) {
-          it.material.color.set(it.material._originColor);
-        }
-      }
-    });
-
-    intersects.forEach((it, index) => {
-      if (it.object.isMesh) {
-        if (index === 0 && it.object.material._select !== true) {
-          it.object.material._select = true;
-          it.object.material._originColor = it.object.material.color.getHex();
-          it.object.material.color.set(0xff0000);
-        }
-      }
-    });
-  });
-
-  const starFolder = gui.addFolder("星星");
-  starFolder.add(star.position, "x").min(-50).max(50).name("坐标X");
-  starFolder.add(star.position, "y").min(20).max(100).name("坐标Y");
+  starFolder.add(plane.material, "aoMapIntensity").min(0).max(1);
+  starFolder.add(plane.material, "lightMapIntensity").min(1).max(100);
   starFolder
-    .add(star.material, "emissiveIntensity")
-    .min(1)
-    .max(10)
-    .name("自发光强度");
-
-  starFolder
-    .add(star.children[0], "intensity")
-    .min(0)
-    .max(1000)
-    .name("光照强度");
-
-  const slightFolder = gui.addFolder("聚光灯");
-  slightFolder
-    .add(slight.position, "x")
-    .min(-50)
-    .max(50)
-    .name("聚光灯X")
+    .add(texture, "colorSpace")
+    .options({
+      SRGBColorSpace: THREE.SRGBColorSpace,
+      LinearSRGBColorSpace: THREE.LinearSRGBColorSpace,
+    })
     .onChange(() => {
-      slight.target.position.set(0, 0, 0);
+      texture.needsUpdate = true;
     });
-  slightFolder
-    .add(slight.position, "y")
-    .min(0)
-    .max(50)
-    .name("聚光灯Y")
-    .onChange(() => {
-      slight.target.position.set(0, 0, 0);
-    });
-
-  slightFolder.add(slight, "angle").min(0).max(Math.PI).name("angle");
-  slightFolder.add(slight, "penumbra").min(0).max(1).name("penumbra");
-  slightFolder.add(slight, "decay").min(0).max(10).name("decay");
 
   startAnimate(() => {
     status.update();

+ 6 - 4
src/views/three/util.js

@@ -78,11 +78,11 @@ export function initCamera(dom) {
   const camera = new THREE.PerspectiveCamera(
     50,
     getCanvasSize(dom).width / getCanvasSize(dom).height,
-    0.1,
+    0.01,
     2000
   );
   camera.updateProjectionMatrix();
-  camera.position.set(40, 40, 40);
+  camera.position.set(0.1, 0.1, 0.1);
   camera.lookAt(new THREE.Vector3(0, 0, 0));
   return camera;
 }
@@ -95,7 +95,7 @@ export function initAxes() {
 export function initBoxMesh() {
   return new THREE.Mesh(
     new THREE.BoxGeometry(10, 10, 10, 5, 5, 5),
-    new THREE.MeshStandardMaterial({
+    new THREE.MeshBasicMaterial({
       color: 0xffffff,
     })
   );
@@ -106,6 +106,7 @@ export function initSphereMesh() {
     new THREE.SphereGeometry(5),
     new THREE.MeshStandardMaterial({
       color: 0xffffff,
+      reflectivity: 1,
     })
   );
 }
@@ -113,8 +114,9 @@ export function initSphereMesh() {
 export function initPlaneMesh() {
   const mesh = new THREE.Mesh(
     new THREE.PlaneGeometry(100, 100),
-    new THREE.MeshStandardMaterial({
+    new THREE.MeshBasicMaterial({
       color: 0xcccccc,
+      reflectivity: 0.1,
     })
   );
   mesh.rotation.x = -Math.PI / 2;

+ 5 - 1
vue.config.js

@@ -4,8 +4,12 @@ module.exports = defineConfig({
   transpileDependencies: true,
   publicPath: "/ludash",
   chainWebpack(config) {
-    config.module.rule("images").test(/\.(png|jpeg|jpg|hdr)$/);
+    config.module.rule("images").test(/\.(png|jpeg|jpg|hdr|glb)$/);
+    config.module.rule("vue").use("vue-loader").options({
+      hotReload: false,
+    });
   },
+
   css: {
     loaderOptions: {
       less: {

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff