bimplus-renderer 1.8.13-dynloading-02 → 1.8.13-dynloading-04
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bimplus-renderer.js +1 -1
- package/dist/web-ifc.bimplus-renderer.js +1 -1
- package/package.json +4 -1
- package/assets/images/but_clash_sprite.png +0 -0
- package/assets/images/but_close_window.png +0 -0
- package/assets/images/but_fingerprint.png +0 -0
- package/assets/images/but_isolation_off.png +0 -0
- package/assets/images/but_isolation_on.png +0 -0
- package/bin/README.emcc.md +0 -41
- package/bin/processPartitionVertices.js +0 -16
- package/eslint.config.mjs +0 -38
- package/karma-files-config.js +0 -155
- package/karma-modelviewer-ddt.conf.js +0 -66
- package/karma-shared-config.js +0 -90
- package/openAllFiles.ps1 +0 -17
- package/types/bimplus-renderer.d.ts +0 -351
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bimplus-renderer",
|
|
3
|
-
"version": "1.8.13-dynloading-
|
|
3
|
+
"version": "1.8.13-dynloading-04",
|
|
4
4
|
"description": "bim+ renderer",
|
|
5
5
|
"types": "types/bimplus-renderer.d.ts",
|
|
6
6
|
"keywords": [
|
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
"type": "git",
|
|
22
22
|
"url": "."
|
|
23
23
|
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist/**"
|
|
26
|
+
],
|
|
24
27
|
"scripts": {
|
|
25
28
|
"eslint": "eslint src/**/* test/**/*",
|
|
26
29
|
"build": "npm run build-worker-dev && npm run eslint && webpack --config webpack.dev.js && npm run copy-wasm",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/bin/README.emcc.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
emcc for webassemblies
|
|
2
|
-
======================
|
|
3
|
-
|
|
4
|
-
Python installation
|
|
5
|
-
-------------------
|
|
6
|
-
Installation of python. On windows the best way is to open a powershell and type python. When python isn't installed a window is opened and python can be installed from webstore
|
|
7
|
-
|
|
8
|
-
After finished installation check installed python version in cmd or powershell
|
|
9
|
-
|
|
10
|
-
PS H:\> python --version
|
|
11
|
-
Python 3.8.6
|
|
12
|
-
|
|
13
|
-
Installation Emscripten
|
|
14
|
-
-----------------------
|
|
15
|
-
Install the emcc sdk.
|
|
16
|
-
Good description could be found here
|
|
17
|
-
|
|
18
|
-
https://www.tutorialspoint.com/webassembly/webassembly_installation.htm
|
|
19
|
-
|
|
20
|
-
Create some folder like C:\wa or C:\wa-emcc and clone the sdk inside this folder
|
|
21
|
-
|
|
22
|
-
Building Bimplus-Render
|
|
23
|
-
-----------------------
|
|
24
|
-
Add path information to systemvariables (Used installation folder for emcc like D:\wa-emcc\)
|
|
25
|
-
|
|
26
|
-
D:\wa-emcc\emsdk
|
|
27
|
-
D:\wa-emcc\emsdk\upstream\emscripten
|
|
28
|
-
D:\wa-emcc\emsdk\node\12.18.1_64bit\bin
|
|
29
|
-
D:\wa-emcc\emsdk\python\3.7.4-pywin32_64bit
|
|
30
|
-
D:\wa-emcc\emsdk\java\8.152_64bit\bin;
|
|
31
|
-
|
|
32
|
-
### Output of emcc is generated in bin folder
|
|
33
|
-
The
|
|
34
|
-
|
|
35
|
-
bin\
|
|
36
|
-
|
|
37
|
-
folder is needed for
|
|
38
|
-
|
|
39
|
-
npm run build
|
|
40
|
-
|
|
41
|
-
so we have excluded this file from .gitignore
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
var Module = (() => {
|
|
3
|
-
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
|
|
4
|
-
|
|
5
|
-
return (
|
|
6
|
-
function(moduleArg = {}) {
|
|
7
|
-
|
|
8
|
-
var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=true;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var wasmBinaryFile;wasmBinaryFile="data:application/octet-stream;base64,AGFzbQEAAAABJgdgAX8Bf2ABfAF8YAF/AGAAAGAAAX9gBn9/f39/fwBgBH9/f38AAgcBAWEBYQAAAw0MAAEDAQEAAgQFAgAGBAUBcAEBAQUHAQGACICAAgYIAX8BQYCNBAsHKQoBYgIAAWMAAwFkAAwBZQAJAWYACwFnAAoBaAAIAWkABwFqAAYBawEACphPDE8BAn9BgAkoAgAiASAAQQdqQXhxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABAARQ0BC0GACSAANgIAIAEPC0GECUEwNgIAQX8LjQEAIAAgACAAIAAgAEQJ9/0N4T0CP6JEiLIBdeDvST+gokQ7j2i1KIKkv6CiRFVEiA5Vwck/oKJEfW/rAxLW1L+gokRVVVVVVVXFP6AgAKIgACAAIAAgAESCki6xxbizP6JEWQGNG2wG5r+gokTIilmc5SoAQKCiREstihwnOgPAoKJEAAAAAAAA8D+gowsCAAusAQMBfAF+AX8gAL0iAkI0iKdB/w9xIgNBsghNBHwgA0H9B00EQCAARAAAAAAAAAAAog8LAnwgACAAmiACQgBZGyIARAAAAAAAADBDoEQAAAAAAAAww6AgAKEiAUQAAAAAAADgP2QEQCAAIAGgRAAAAAAAAPC/oAwBCyAAIAGgIgAgAUQAAAAAAADgv2VFDQAaIABEAAAAAAAA8D+gCyIAIACaIAJCAFkbBSAACwv7AwMDfAN/AX4gAL0iB0IgiKdB/////wdxIgRBgIDAoARPBEAgAEQYLURU+yH5PyAApiAHQv///////////wCDQoCAgICAgID4/wBWGw8LAkACfyAEQf//7/4DTQRAQX8gBEGAgIDyA08NARoMAgsgAJkhACAEQf//y/8DTQRAIARB//+X/wNNBEAgACAAoEQAAAAAAADwv6AgAEQAAAAAAAAAQKCjIQBBAAwCCyAARAAAAAAAAPC/oCAARAAAAAAAAPA/oKMhAEEBDAELIARB//+NgARNBEAgAEQAAAAAAAD4v6AgAEQAAAAAAAD4P6JEAAAAAAAA8D+goyEAQQIMAQtEAAAAAAAA8L8gAKMhAEEDCyEGIAAgAKIiAiACoiIBIAEgASABIAFEL2xqLES0or+iRJr93lIt3q2/oKJEbZp0r/Kws7+gokRxFiP+xnG8v6CiRMTrmJmZmcm/oKIhAyACIAEgASABIAEgAUQR2iLjOq2QP6JE6w12JEt7qT+gokRRPdCgZg2xP6CiRG4gTMXNRbc/oKJE/4MAkiRJwj+gokQNVVVVVVXVP6CiIQEgBEH//+/+A00EQCAAIAAgAyABoKKhDwsgBkEDdCIEQYAIaisDACAAIAMgAaCiIARBoAhqKwMAoSAAoaEiAJogACAHQgBTGyEACyAACxAAIwAgAGtBcHEiACQAIAALBgAgACQACwQAIwAL6BAECn8dfAl9AX4gAEEASgRAA0AgAiAIQQJ0aigCACEKIAEgCEEGdGoiBioCILsiEyAGKgIYuyIXIAYqAgS7IhiiIAYqAgi7IhkgBioCFLsiGqKhIhGiIAYqAgC7IhQgBioCKLsiGyAaoiAXIAYqAiS7IhyioSISoiAcIBmiIBggG6KhIhUgBioCELsiFqKgoCIQmUQAAAAAAACwPGNFBEAgGiAUoiAYIBaioUQAAAAAAADwPyAQoyIQoiEiIBwgFqIgGiAToqEgEKIhIyATIBeiIBYgG5qioCAQoiEkIBEgEKIhJSAVIBCiISYgEiAQoiEnIBYgGaIgFCAXoqEgEKIhKCATIBiiIBQgHJqioCAQoiEpIBsgFKIgGSAToqEgEKIhHwtBACELQ///f38hMkP//3//ITMCQCAKQQBMBEBD//9//yEuQ///f/8hL0P//39/ITBD//9/fyExDAELIAYqAji7ISogBioCNLshKyAGKgIwuyEsQ///f/8hLkP//3//IS9D//9/fyEwQ///f38hMQNAICggAyALIAxqIg1BGGxqIgYqAhS7IhGiICQgBioCDLsiIKIgHyAGKgIQuyIhoqCgIRAgIiARoiAjICCiICkgIaKgoCESIAYqAgC7IRUgBioCCLshHSAGKgIEuyEeAnwCQCAlIBGiICcgIKIgJiAhoqCgIhGZRAAAAAAAALA8Y0UNACASmUQAAAAAAACwPGNFDQBEGC1EVPshCcBEAAAAAAAAAIAgEr0iNkIAUxsgEb1CAFMNARpEGC1EVPshCUBEAAAAAAAAAAAgNkIAUxsMAQsCfAJAIBK9Qv///////////wCDQoCAgICAgID4/wBYBEAgEb1C////////////AINCgYCAgICAgPj/AFQNAQsgESASoAwBCyASvSI2QiCIpyIHQYCAwP8DayA2pyIOckUEQCAREAUMAQsgB0EedkECcSIPIBG9IjZCP4inciEGAkAgNkIgiKdB/////wdxIgkgNqdyRQRAAkACQCAGQQJrDgIAAQMLRBgtRFT7IQlADAMLRBgtRFT7IQnADAILRBgtRFT7Ifk/IBGmIAdB/////wdxIgcgDnJFDQEaAkAgB0GAgMD/B0YEQCAJQYCAwP8HRw0BIAZBA3RBwAhqKwMADAMLRBgtRFT7Ifk/IBGmIAlBgIDA/wdHIAdBgICAIGogCU9xRQ0CGgJ8IA8EQEQAAAAAAAAAACAJQYCAgCBqIAdJDQEaCyARIBKjmRAFCyERAkACQAJAIAYOAwQAAQILIBGaDAQLRBgtRFT7IQlAIBFEB1wUMyamobygoQwDCyARRAdcFDMmpqG8oEQYLURU+yEJwKAMAgsgBkEDdEHgCGorAwAhEQsgEQsLIRICfCAQvUL///////////8Ag0KAgICAgICA+P8AWAR8IBBEAAAAAAAA8L+lBUQAAAAAAADwvwtEAAAAAAAA8D+kIhC9IjZCIIinQf////8HcSIGQYCAwP8DTwRARAAAAAAAAAAARBgtRFT7IQlAIDZCAFkbIDanIAZBgIDA/wNrckUNARpEAAAAAAAAAAAgECAQoaMMAQsCfCAGQf////4DTQRARBgtRFT7Ifk/IAZBgYCA4wNJDQEaRAdcFDMmppE8IBAgECAQohACoqEgEKFEGC1EVPsh+T+gDAILIDZCAFMEQEQYLURU+yH5PyAQRAAAAAAAAPA/oEQAAAAAAADgP6IiEJ8iESARIBAQAqJEB1wUMyamkbygoKEiECAQoAwCC0QAAAAAAADwPyAQoUQAAAAAAADgP6IiEJ8iESAQEAKiIBAgEb1CgICAgHCDvyIQIBCioSARIBCgo6AgEKAiECAQoAsLIRAgBCANQQR0aiIGIBwgHaIgGCAVoiAaIB6ioKAgK6C2IjQ4AgQgBiATIB2iIBQgFaIgFiAeoqCgICygtiI1OAIAIAYgGyAdoiAZIBWiIBcgHqKgoCAqoLYiLTgCCCAGIBJEGC1EVPshGUCjRAAAAAAAAOA/oEQAAAAAAP6vQKIQBEQAAAAAAACwQKIgEL1C////////////AINCgICAgICAgPj/AFgEfCAQRBJwDM76IQlApAVEEnAMzvohCUALRI3ttaD3xrA+pUQYLURU+yEJQKNEAAAAAAD+r0CiEASgtjgCDCAzvEH/////B3FBgICA/AdNBH0gMyAtIDOXIC28Qf////8HcUGAgID8B0sbBSAtCyEzIDG8Qf////8HcUGAgID8B00EfSAxIC0gMZYgLbxB/////wdxQYCAgPwHSxsFIC0LITEgNCEtIC68Qf////8HcUGAgID8B00EfSAuIC0gLpcgLbxB/////wdxQYCAgPwHSxsFIC0LIS4gMLxB/////wdxQYCAgPwHTQR9IDAgLSAwliAtvEH/////B3FBgICA/AdLGwUgLQshMCA1IS0gL7xB/////wdxQYCAgPwHTQR9IC8gLSAvlyAtvEH/////B3FBgICA/AdLGwUgLQshLyAyvEH/////B3FBgICA/AdNBH0gMiAtIDKWIC28Qf////8HcUGAgID8B0sbBSAtCyEyIAtBAWoiCyAKRw0ACwsgBSAIQeAAbGoiBiAyOAIAIAYgMDgCBCAGIDE4AgggBiAvOAIMIAYgMDgCECAGIDE4AhQgBiAyOAIYIAYgLjgCHCAGIDE4AlwgBiAuOAJYIAYgLzgCVCAGIDM4AlAgBiAwOAJMIAYgLzgCSCAGIDM4AkQgBkFAayAuOAIAIAYgMjgCPCAGIDM4AjggBiAuOAI0IAYgLzgCMCAGIDM4AiwgBiAwOAIoIAYgMjgCJCAGIDE4AiAgCiAMaiEMIAhBAWoiCCAARw0ACwsL0gsBB38CQCAARQ0AIABBCGsiAiAAQQRrKAIAIgFBeHEiAGohBQJAIAFBAXENACABQQNxRQ0BIAIgAigCACIBayICQZgJKAIASQ0BIAAgAWohAAJAAkBBnAkoAgAgAkcEQCABQf8BTQRAIAFBA3YhBCACKAIMIgEgAigCCCIDRgRAQYgJQYgJKAIAQX4gBHdxNgIADAULIAMgATYCDCABIAM2AggMBAsgAigCGCEGIAIgAigCDCIBRwRAIAIoAggiAyABNgIMIAEgAzYCCAwDCyACQRRqIgQoAgAiA0UEQCACKAIQIgNFDQIgAkEQaiEECwNAIAQhByADIgFBFGoiBCgCACIDDQAgAUEQaiEEIAEoAhAiAw0ACyAHQQA2AgAMAgsgBSgCBCIBQQNxQQNHDQJBkAkgADYCACAFIAFBfnE2AgQgAiAAQQFyNgIEIAUgADYCAA8LQQAhAQsgBkUNAAJAIAIoAhwiA0ECdEG4C2oiBCgCACACRgRAIAQgATYCACABDQFBjAlBjAkoAgBBfiADd3E2AgAMAgsgBkEQQRQgBigCECACRhtqIAE2AgAgAUUNAQsgASAGNgIYIAIoAhAiAwRAIAEgAzYCECADIAE2AhgLIAIoAhQiA0UNACABIAM2AhQgAyABNgIYCyACIAVPDQAgBSgCBCIBQQFxRQ0AAkACQAJAAkAgAUECcUUEQEGgCSgCACAFRgRAQaAJIAI2AgBBlAlBlAkoAgAgAGoiADYCACACIABBAXI2AgQgAkGcCSgCAEcNBkGQCUEANgIAQZwJQQA2AgAPC0GcCSgCACAFRgRAQZwJIAI2AgBBkAlBkAkoAgAgAGoiADYCACACIABBAXI2AgQgACACaiAANgIADwsgAUF4cSAAaiEAIAFB/wFNBEAgAUEDdiEEIAUoAgwiASAFKAIIIgNGBEBBiAlBiAkoAgBBfiAEd3E2AgAMBQsgAyABNgIMIAEgAzYCCAwECyAFKAIYIQYgBSAFKAIMIgFHBEBBmAkoAgAaIAUoAggiAyABNgIMIAEgAzYCCAwDCyAFQRRqIgQoAgAiA0UEQCAFKAIQIgNFDQIgBUEQaiEECwNAIAQhByADIgFBFGoiBCgCACIDDQAgAUEQaiEEIAEoAhAiAw0ACyAHQQA2AgAMAgsgBSABQX5xNgIEIAIgAEEBcjYCBCAAIAJqIAA2AgAMAwtBACEBCyAGRQ0AAkAgBSgCHCIDQQJ0QbgLaiIEKAIAIAVGBEAgBCABNgIAIAENAUGMCUGMCSgCAEF+IAN3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogATYCACABRQ0BCyABIAY2AhggBSgCECIDBEAgASADNgIQIAMgATYCGAsgBSgCFCIDRQ0AIAEgAzYCFCADIAE2AhgLIAIgAEEBcjYCBCAAIAJqIAA2AgAgAkGcCSgCAEcNAEGQCSAANgIADwsgAEH/AU0EQCAAQXhxQbAJaiEBAn9BiAkoAgAiA0EBIABBA3Z0IgBxRQRAQYgJIAAgA3I2AgAgAQwBCyABKAIICyEAIAEgAjYCCCAAIAI2AgwgAiABNgIMIAIgADYCCA8LQR8hAyAAQf///wdNBEAgAEEmIABBCHZnIgFrdkEBcSABQQF0a0E+aiEDCyACIAM2AhwgAkIANwIQIANBAnRBuAtqIQECQAJAAkBBjAkoAgAiBEEBIAN0IgdxRQRAQYwJIAQgB3I2AgAgASACNgIAIAIgATYCGAwBCyAAQRkgA0EBdmtBACADQR9HG3QhAyABKAIAIQEDQCABIgQoAgRBeHEgAEYNAiADQR12IQEgA0EBdCEDIAQgAUEEcWoiB0EQaigCACIBDQALIAcgAjYCECACIAQ2AhgLIAIgAjYCDCACIAI2AggMAQsgBCgCCCIAIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiAANgIIC0GoCUGoCSgCAEEBayIAQX8gABs2AgALC8YnAQx/IwBBEGsiCiQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYgJKAIAIgZBECAAQQtqQXhxIABBC0kbIgVBA3YiAHYiAUEDcQRAAkAgAUF/c0EBcSAAaiICQQN0IgFBsAlqIgAgAUG4CWooAgAiASgCCCIERgRAQYgJIAZBfiACd3E2AgAMAQsgBCAANgIMIAAgBDYCCAsgAUEIaiEAIAEgAkEDdCICQQNyNgIEIAEgAmoiASABKAIEQQFyNgIEDA8LIAVBkAkoAgAiB00NASABBEACQEECIAB0IgJBACACa3IgASAAdHFoIgFBA3QiAEGwCWoiAiAAQbgJaigCACIAKAIIIgRGBEBBiAkgBkF+IAF3cSIGNgIADAELIAQgAjYCDCACIAQ2AggLIAAgBUEDcjYCBCAAIAVqIgggAUEDdCIBIAVrIgRBAXI2AgQgACABaiAENgIAIAcEQCAHQXhxQbAJaiEBQZwJKAIAIQICfyAGQQEgB0EDdnQiA3FFBEBBiAkgAyAGcjYCACABDAELIAEoAggLIQMgASACNgIIIAMgAjYCDCACIAE2AgwgAiADNgIICyAAQQhqIQBBnAkgCDYCAEGQCSAENgIADA8LQYwJKAIAIgtFDQEgC2hBAnRBuAtqKAIAIgIoAgRBeHEgBWshAyACIQEDQAJAIAEoAhAiAEUEQCABKAIUIgBFDQELIAAoAgRBeHEgBWsiASADIAEgA0kiARshAyAAIAIgARshAiAAIQEMAQsLIAIoAhghCSACIAIoAgwiBEcEQEGYCSgCABogAigCCCIAIAQ2AgwgBCAANgIIDA4LIAJBFGoiASgCACIARQRAIAIoAhAiAEUNAyACQRBqIQELA0AgASEIIAAiBEEUaiIBKAIAIgANACAEQRBqIQEgBCgCECIADQALIAhBADYCAAwNC0F/IQUgAEG/f0sNACAAQQtqIgBBeHEhBUGMCSgCACIIRQ0AQQAgBWshAwJAAkACQAJ/QQAgBUGAAkkNABpBHyAFQf///wdLDQAaIAVBJiAAQQh2ZyIAa3ZBAXEgAEEBdGtBPmoLIgdBAnRBuAtqKAIAIgFFBEBBACEADAELQQAhACAFQRkgB0EBdmtBACAHQR9HG3QhAgNAAkAgASgCBEF4cSAFayIGIANPDQAgASEEIAYiAw0AQQAhAyABIQAMAwsgACABKAIUIgYgBiABIAJBHXZBBHFqKAIQIgFGGyAAIAYbIQAgAkEBdCECIAENAAsLIAAgBHJFBEBBACEEQQIgB3QiAEEAIABrciAIcSIARQ0DIABoQQJ0QbgLaigCACEACyAARQ0BCwNAIAAoAgRBeHEgBWsiAiADSSEBIAIgAyABGyEDIAAgBCABGyEEIAAoAhAiAQR/IAEFIAAoAhQLIgANAAsLIARFDQAgA0GQCSgCACAFa08NACAEKAIYIQcgBCAEKAIMIgJHBEBBmAkoAgAaIAQoAggiACACNgIMIAIgADYCCAwMCyAEQRRqIgEoAgAiAEUEQCAEKAIQIgBFDQMgBEEQaiEBCwNAIAEhBiAAIgJBFGoiASgCACIADQAgAkEQaiEBIAIoAhAiAA0ACyAGQQA2AgAMCwsgBUGQCSgCACIETQRAQZwJKAIAIQACQCAEIAVrIgFBEE8EQCAAIAVqIgIgAUEBcjYCBCAAIARqIAE2AgAgACAFQQNyNgIEDAELIAAgBEEDcjYCBCAAIARqIgEgASgCBEEBcjYCBEEAIQJBACEBC0GQCSABNgIAQZwJIAI2AgAgAEEIaiEADA0LIAVBlAkoAgAiAkkEQEGUCSACIAVrIgE2AgBBoAlBoAkoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQgAEEIaiEADA0LQQAhACAFQS9qIgMCf0HgDCgCAARAQegMKAIADAELQewMQn83AgBB5AxCgKCAgICABDcCAEHgDCAKQQxqQXBxQdiq1aoFczYCAEH0DEEANgIAQcQMQQA2AgBBgCALIgFqIgZBACABayIIcSIBIAVNDQxBwAwoAgAiBARAQbgMKAIAIgcgAWoiCSAHTQ0NIAQgCUkNDQsCQEHEDC0AAEEEcUUEQAJAAkACQAJAQaAJKAIAIgQEQEHIDCEAA0AgBCAAKAIAIgdPBEAgByAAKAIEaiAESw0DCyAAKAIIIgANAAsLQQAQASICQX9GDQMgASEGQeQMKAIAIgBBAWsiBCACcQRAIAEgAmsgAiAEakEAIABrcWohBgsgBSAGTw0DQcAMKAIAIgAEQEG4DCgCACIEIAZqIgggBE0NBCAAIAhJDQQLIAYQASIAIAJHDQEMBQsgBiACayAIcSIGEAEiAiAAKAIAIAAoAgRqRg0BIAIhAAsgAEF/Rg0BIAVBMGogBk0EQCAAIQIMBAtB6AwoAgAiAiADIAZrakEAIAJrcSICEAFBf0YNASACIAZqIQYgACECDAMLIAJBf0cNAgtBxAxBxAwoAgBBBHI2AgALIAEQASECQQAQASEAIAJBf0YNBSAAQX9GDQUgACACTQ0FIAAgAmsiBiAFQShqTQ0FC0G4DEG4DCgCACAGaiIANgIAQbwMKAIAIABJBEBBvAwgADYCAAsCQEGgCSgCACIDBEBByAwhAANAIAIgACgCACIBIAAoAgQiBGpGDQIgACgCCCIADQALDAQLQZgJKAIAIgBBACAAIAJNG0UEQEGYCSACNgIAC0EAIQBBzAwgBjYCAEHIDCACNgIAQagJQX82AgBBrAlB4AwoAgA2AgBB1AxBADYCAANAIABBA3QiAUG4CWogAUGwCWoiBDYCACABQbwJaiAENgIAIABBAWoiAEEgRw0AC0GUCSAGQShrIgBBeCACa0EHcSIBayIENgIAQaAJIAEgAmoiATYCACABIARBAXI2AgQgACACakEoNgIEQaQJQfAMKAIANgIADAQLIAIgA00NAiABIANLDQIgACgCDEEIcQ0CIAAgBCAGajYCBEGgCSADQXggA2tBB3EiAGoiATYCAEGUCUGUCSgCACAGaiICIABrIgA2AgAgASAAQQFyNgIEIAIgA2pBKDYCBEGkCUHwDCgCADYCAAwDC0EAIQQMCgtBACECDAgLQZgJKAIAIAJLBEBBmAkgAjYCAAsgAiAGaiEBQcgMIQACQAJAAkADQCABIAAoAgBHBEAgACgCCCIADQEMAgsLIAAtAAxBCHFFDQELQcgMIQADQCADIAAoAgAiAU8EQCABIAAoAgRqIgQgA0sNAwsgACgCCCEADAALAAsgACACNgIAIAAgACgCBCAGajYCBCACQXggAmtBB3FqIgcgBUEDcjYCBCABQXggAWtBB3FqIgYgBSAHaiIFayEAIAMgBkYEQEGgCSAFNgIAQZQJQZQJKAIAIABqIgA2AgAgBSAAQQFyNgIEDAgLQZwJKAIAIAZGBEBBnAkgBTYCAEGQCUGQCSgCACAAaiIANgIAIAUgAEEBcjYCBCAAIAVqIAA2AgAMCAsgBigCBCIDQQNxQQFHDQYgA0F4cSEJIANB/wFNBEAgBigCDCIBIAYoAggiAkYEQEGICUGICSgCAEF+IANBA3Z3cTYCAAwHCyACIAE2AgwgASACNgIIDAYLIAYoAhghCCAGIAYoAgwiAkcEQCAGKAIIIgEgAjYCDCACIAE2AggMBQsgBkEUaiIBKAIAIgNFBEAgBigCECIDRQ0EIAZBEGohAQsDQCABIQQgAyICQRRqIgEoAgAiAw0AIAJBEGohASACKAIQIgMNAAsgBEEANgIADAQLQZQJIAZBKGsiAEF4IAJrQQdxIgFrIgg2AgBBoAkgASACaiIBNgIAIAEgCEEBcjYCBCAAIAJqQSg2AgRBpAlB8AwoAgA2AgAgAyAEQScgBGtBB3FqQS9rIgAgACADQRBqSRsiAUEbNgIEIAFB0AwpAgA3AhAgAUHIDCkCADcCCEHQDCABQQhqNgIAQcwMIAY2AgBByAwgAjYCAEHUDEEANgIAIAFBGGohAANAIABBBzYCBCAAQQhqIQwgAEEEaiEAIAwgBEkNAAsgASADRg0AIAEgASgCBEF+cTYCBCADIAEgA2siAkEBcjYCBCABIAI2AgAgAkH/AU0EQCACQXhxQbAJaiEAAn9BiAkoAgAiAUEBIAJBA3Z0IgJxRQRAQYgJIAEgAnI2AgAgAAwBCyAAKAIICyEBIAAgAzYCCCABIAM2AgwgAyAANgIMIAMgATYCCAwBC0EfIQAgAkH///8HTQRAIAJBJiACQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAAsgAyAANgIcIANCADcCECAAQQJ0QbgLaiEBAkACQEGMCSgCACIEQQEgAHQiBnFFBEBBjAkgBCAGcjYCACABIAM2AgAMAQsgAkEZIABBAXZrQQAgAEEfRxt0IQAgASgCACEEA0AgBCIBKAIEQXhxIAJGDQIgAEEddiEEIABBAXQhACABIARBBHFqIgYoAhAiBA0ACyAGIAM2AhALIAMgATYCGCADIAM2AgwgAyADNgIIDAELIAEoAggiACADNgIMIAEgAzYCCCADQQA2AhggAyABNgIMIAMgADYCCAtBlAkoAgAiACAFTQ0AQZQJIAAgBWsiATYCAEGgCUGgCSgCACIAIAVqIgI2AgAgAiABQQFyNgIEIAAgBUEDcjYCBCAAQQhqIQAMCAtBhAlBMDYCAEEAIQAMBwtBACECCyAIRQ0AAkAgBigCHCIBQQJ0QbgLaiIEKAIAIAZGBEAgBCACNgIAIAINAUGMCUGMCSgCAEF+IAF3cTYCAAwCCyAIQRBBFCAIKAIQIAZGG2ogAjYCACACRQ0BCyACIAg2AhggBigCECIBBEAgAiABNgIQIAEgAjYCGAsgBigCFCIBRQ0AIAIgATYCFCABIAI2AhgLIAAgCWohACAGIAlqIgYoAgQhAwsgBiADQX5xNgIEIAUgAEEBcjYCBCAAIAVqIAA2AgAgAEH/AU0EQCAAQXhxQbAJaiEBAn9BiAkoAgAiAkEBIABBA3Z0IgBxRQRAQYgJIAAgAnI2AgAgAQwBCyABKAIICyEAIAEgBTYCCCAAIAU2AgwgBSABNgIMIAUgADYCCAwBC0EfIQMgAEH///8HTQRAIABBJiAAQQh2ZyIBa3ZBAXEgAUEBdGtBPmohAwsgBSADNgIcIAVCADcCECADQQJ0QbgLaiEBAkACQEGMCSgCACICQQEgA3QiBHFFBEBBjAkgAiAEcjYCACABIAU2AgAMAQsgAEEZIANBAXZrQQAgA0EfRxt0IQMgASgCACECA0AgAiIBKAIEQXhxIABGDQIgA0EddiECIANBAXQhAyABIAJBBHFqIgQoAhAiAg0ACyAEIAU2AhALIAUgATYCGCAFIAU2AgwgBSAFNgIIDAELIAEoAggiACAFNgIMIAEgBTYCCCAFQQA2AhggBSABNgIMIAUgADYCCAsgB0EIaiEADAILAkAgB0UNAAJAIAQoAhwiAEECdEG4C2oiASgCACAERgRAIAEgAjYCACACDQFBjAkgCEF+IAB3cSIINgIADAILIAdBEEEUIAcoAhAgBEYbaiACNgIAIAJFDQELIAIgBzYCGCAEKAIQIgAEQCACIAA2AhAgACACNgIYCyAEKAIUIgBFDQAgAiAANgIUIAAgAjYCGAsCQCADQQ9NBEAgBCADIAVqIgBBA3I2AgQgACAEaiIAIAAoAgRBAXI2AgQMAQsgBCAFQQNyNgIEIAQgBWoiAiADQQFyNgIEIAIgA2ogAzYCACADQf8BTQRAIANBeHFBsAlqIQACf0GICSgCACIBQQEgA0EDdnQiA3FFBEBBiAkgASADcjYCACAADAELIAAoAggLIQEgACACNgIIIAEgAjYCDCACIAA2AgwgAiABNgIIDAELQR8hACADQf///wdNBEAgA0EmIANBCHZnIgBrdkEBcSAAQQF0a0E+aiEACyACIAA2AhwgAkIANwIQIABBAnRBuAtqIQECQAJAIAhBASAAdCIGcUUEQEGMCSAGIAhyNgIAIAEgAjYCAAwBCyADQRkgAEEBdmtBACAAQR9HG3QhACABKAIAIQUDQCAFIgEoAgRBeHEgA0YNAiAAQR12IQYgAEEBdCEAIAEgBkEEcWoiBigCECIFDQALIAYgAjYCEAsgAiABNgIYIAIgAjYCDCACIAI2AggMAQsgASgCCCIAIAI2AgwgASACNgIIIAJBADYCGCACIAE2AgwgAiAANgIICyAEQQhqIQAMAQsCQCAJRQ0AAkAgAigCHCIAQQJ0QbgLaiIBKAIAIAJGBEAgASAENgIAIAQNAUGMCSALQX4gAHdxNgIADAILIAlBEEEUIAkoAhAgAkYbaiAENgIAIARFDQELIAQgCTYCGCACKAIQIgAEQCAEIAA2AhAgACAENgIYCyACKAIUIgBFDQAgBCAANgIUIAAgBDYCGAsCQCADQQ9NBEAgAiADIAVqIgBBA3I2AgQgACACaiIAIAAoAgRBAXI2AgQMAQsgAiAFQQNyNgIEIAIgBWoiBCADQQFyNgIEIAMgBGogAzYCACAHBEAgB0F4cUGwCWohAEGcCSgCACEBAn9BASAHQQN2dCIFIAZxRQRAQYgJIAUgBnI2AgAgAAwBCyAAKAIICyEGIAAgATYCCCAGIAE2AgwgASAANgIMIAEgBjYCCAtBnAkgBDYCAEGQCSADNgIACyACQQhqIQALIApBEGokACAAC+UDAgV/FXwgAEEASgRAA0AgAiAFQQJ0aigCACEHIAEgBUEGdGoiBCoCILsiDyAEKgIYuyIMIAQqAgS7IhOiIAQqAgi7Ig0gBCoCFLsiFKKhIgqiIAQqAgC7IhAgBCoCKLsiDiAUoiAMIAQqAiS7IhWioSILoiAVIA2iIBMgDqKhIhEgBCoCELsiEqKgoCIJmUQAAAAAAACwPGNFBEAgEiANoiAQIAyioUQAAAAAAADwPyAJoyIJoiEXIA8gDKIgEiAOmqKgIAmiIRggCiAJoiEZIBEgCaIhGiALIAmiIRsgDiAQoiANIA+ioSAJoiEWC0EAIQggB0EASgRAIAQqAji7IREgBCoCNLshHCAEKgIwuyEdA0AgAyAGIAhqQRhsaiIEQRBqIBcgBCoCFLsiCaIgGCAEKgIMuyIKoiAWIAQqAhC7IguioKC2OAIAIAQgGSAJoiAbIAqiIBogC6KgoLY4AgwgBCAPIAQqAgi7IgmiIBAgBCoCALsiCqIgEiAEKgIEuyILoqCgIB2gtjgCACAEIBUgCaIgEyAKoiAUIAuioKAgHKC2OAIEIAQgDiAJoiANIAqiIAwgC6KgoCARoLY4AgggCEEBaiIIIAdHDQALCyAGIAdqIQYgBUEBaiIFIABHDQALCwsLhwEDAEGACAtgT7thBWes3T8YLURU+yHpP5v2gdILc+8/GC1EVPsh+T/iZS8ifyt6PAdcFDMmpoE8vcvweogHcDwHXBQzJqaRPBgtRFT7Iek/GC1EVPsh6b/SITN/fNkCQNIhM3982QLAAEHvCAsRgBgtRFT7IQlAGC1EVPshCcAAQYAJCwOABgE=";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}function getBinaryPromise(binaryFile){return Promise.resolve().then(()=>getBinarySync(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>WebAssembly.instantiate(binary,imports)).then(instance=>instance).then(receiver,reason=>{err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){return instantiateArrayBuffer(binaryFile,imports,callback)}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["b"];updateMemoryViews();addOnInit(wasmExports["c"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var getCFunc=ident=>{var func=Module["_"+ident];return func};var writeArrayToMemory=(array,buffer)=>{HEAP8.set(array,buffer)};var lengthBytesUTF8=str=>{var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var stringToUTF8OnStack=str=>{var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var ccall=(ident,returnType,argTypes,args,opts)=>{var toC={"string":str=>{var ret=0;if(str!==null&&str!==undefined&&str!==0){ret=stringToUTF8OnStack(str)}return ret},"array":arr=>{var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret};var wasmImports={a:_emscripten_resize_heap};var wasmExports=createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["c"])();var _inplace_transform_vertices=Module["_inplace_transform_vertices"]=(a0,a1,a2,a3)=>(_inplace_transform_vertices=Module["_inplace_transform_vertices"]=wasmExports["d"])(a0,a1,a2,a3);var _process_vertices=Module["_process_vertices"]=(a0,a1,a2,a3,a4,a5)=>(_process_vertices=Module["_process_vertices"]=wasmExports["e"])(a0,a1,a2,a3,a4,a5);var ___errno_location=()=>(___errno_location=wasmExports["__errno_location"])();var _malloc=Module["_malloc"]=a0=>(_malloc=Module["_malloc"]=wasmExports["f"])(a0);var _free=Module["_free"]=a0=>(_free=Module["_free"]=wasmExports["g"])(a0);var stackSave=()=>(stackSave=wasmExports["h"])();var stackRestore=a0=>(stackRestore=wasmExports["i"])(a0);var stackAlloc=a0=>(stackAlloc=wasmExports["j"])(a0);function intArrayFromBase64(s){var decoded=atob(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}Module["ccall"]=ccall;var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
return moduleArg.ready
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
);
|
|
15
|
-
})();
|
|
16
|
-
export default Module;
|
package/eslint.config.mjs
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import globals from "globals";
|
|
2
|
-
import js from "@eslint/js";
|
|
3
|
-
|
|
4
|
-
export default [
|
|
5
|
-
js.configs.recommended,
|
|
6
|
-
// File-pattern specific overrides
|
|
7
|
-
{
|
|
8
|
-
files: ["src/**/*", "test/**/*"],
|
|
9
|
-
rules: {
|
|
10
|
-
semi: ["warn", "always"], // check for missing semicolons at line ends
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
ignores: [
|
|
15
|
-
"./recordings/*", // don't check *.har recordings
|
|
16
|
-
"src/compiledWorkers/*", // don't check compiled worker files
|
|
17
|
-
],
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
languageOptions: {
|
|
21
|
-
ecmaVersion: 2022,
|
|
22
|
-
sourceType: "module",
|
|
23
|
-
globals: {
|
|
24
|
-
...globals.browser,
|
|
25
|
-
$: true,
|
|
26
|
-
jQuery: true,
|
|
27
|
-
QUnit: true,
|
|
28
|
-
// needed for webpack files
|
|
29
|
-
define: true,
|
|
30
|
-
require: true,
|
|
31
|
-
module: true,
|
|
32
|
-
__dirname: true,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
plugins: {},
|
|
36
|
-
rules: {},
|
|
37
|
-
},
|
|
38
|
-
];
|
package/karma-files-config.js
DELETED
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
// list of files / patterns to load in the browser
|
|
3
|
-
files: [
|
|
4
|
-
{ pattern: "src/wasm/*.wasm", included: false, served: true, type: "wasm" },
|
|
5
|
-
{ pattern: "bin/*.js", included: false, served: true /*, type: 'wasm'*/ },
|
|
6
|
-
// "bin/**/*.js",
|
|
7
|
-
"src/**/*.js",
|
|
8
|
-
// Load custom assertions first (isZeroFloat, floatEqual, etc.)
|
|
9
|
-
"test/customAsserts.js",
|
|
10
|
-
// Load test files
|
|
11
|
-
"test/**/*.js",
|
|
12
|
-
|
|
13
|
-
// For testing only specific files/file
|
|
14
|
-
// "test/tests/AmbientOcclusionSettingsTests.js",
|
|
15
|
-
// "test/tests/BackgroundTests.js",
|
|
16
|
-
// "test/tests/BasicTests.js",
|
|
17
|
-
// "test/tests/ClashesTests.js",
|
|
18
|
-
// "test/tests/ClippingBoxTests.js",
|
|
19
|
-
// "test/tests/ClippingPlaneSettingsTests.js",
|
|
20
|
-
// "test/tests/ClippingPlaneSpotTests.js",
|
|
21
|
-
// "test/tests/ClippingPlaneTests.js",
|
|
22
|
-
// "test/tests/ColorizeTests.js",
|
|
23
|
-
// "test/tests/ContentLoaderGLBTests.js",
|
|
24
|
-
// "test/tests/DiagnosticTests.js",
|
|
25
|
-
// "test/tests/DisciplineNodeStoreTests.js",
|
|
26
|
-
// "test/tests/DivisionsTests.js",
|
|
27
|
-
// "test/tests/DrawRangeTests.js",
|
|
28
|
-
// "test/tests/FingerprintCursorTests.js",
|
|
29
|
-
// "test/tests/FileViewTests.js",
|
|
30
|
-
// "test/tests/GLTFLoaderTests.js",
|
|
31
|
-
// "test/tests/GPUPickerTests.js",
|
|
32
|
-
// "test/tests/HideObjectTests.js",
|
|
33
|
-
// "test/tests/HighlightObjectEdgesPollyTests.js",
|
|
34
|
-
// "test/tests/HighlightObjectEdgesTests.js",
|
|
35
|
-
// "test/tests/HoverObjectTests.js",
|
|
36
|
-
// "test/tests/LayersTests.js",
|
|
37
|
-
// "test/tests/LookupTextureTests.js",
|
|
38
|
-
// "test/tests/LookupTextureIndexCounterTests.js",
|
|
39
|
-
// "test/tests/MeshPartSearcher*.js",
|
|
40
|
-
// "test/tests/NavigationMapTests.js",
|
|
41
|
-
// "test/tests/ObjectPreviewTests.js",
|
|
42
|
-
// "test/tests/ObjectsContainerTests.js",
|
|
43
|
-
// "test/tests/OverlayPollyTests.js",
|
|
44
|
-
// "test/tests/OverlayTests.js",
|
|
45
|
-
// "test/tests/PinsTests.js",
|
|
46
|
-
// "test/tests/PollyProjectLoaderTests.js",
|
|
47
|
-
// "test/tests/ProjectContentTests.js",
|
|
48
|
-
// "test/tests/RendererTests.js",
|
|
49
|
-
// "test/tests/RevisionCompareTests.js",
|
|
50
|
-
// "test/tests/RevisionsTests.js",
|
|
51
|
-
// "test/tests/SceneTests.js",
|
|
52
|
-
// "test/tests/SectionCutGeneralTests.js",
|
|
53
|
-
// "test/tests/SectionCutTests.js",
|
|
54
|
-
// "test/tests/SelectionModeTests.js",
|
|
55
|
-
// "test/tests/SelectionTests.js",
|
|
56
|
-
// "test/tests/SlideTests.js",
|
|
57
|
-
// "test/tests/Viewport3dSunCalculationTests.js",
|
|
58
|
-
// "test/tests/Viewport3dTests.js",
|
|
59
|
-
// "test/tests/VisibilityTests.js",
|
|
60
|
-
// "test/tests/VisualObjectStoreTests.js",
|
|
61
|
-
// "test/tests/VisualObjectMeshDataTests.js",
|
|
62
|
-
// "test/tests/VisualObjectTests.js",
|
|
63
|
-
// "test/tests/IfcContentLoaderTests.js",
|
|
64
|
-
|
|
65
|
-
// "test/tests/commands/CommandAddToSetTests.js",
|
|
66
|
-
// "test/tests/commands/CommandColorizeTests.js",
|
|
67
|
-
// "test/tests/commands/CommandHoverTests.js",
|
|
68
|
-
// "test/tests/commands/CommandIsolateHideTests.js",
|
|
69
|
-
// "test/tests/commands/CommandSelectTests.js",
|
|
70
|
-
|
|
71
|
-
// "test/tests/connexis/ConnectionElementTests.js",
|
|
72
|
-
|
|
73
|
-
// "test/tests/parser/DisciplineNodeParserTests.js",
|
|
74
|
-
// "test/tests/parser/SharedGlbProcessorWorkerQueueTests.js",
|
|
75
|
-
|
|
76
|
-
// "test/tests/markups/AnnotationMaterialsTests.js",
|
|
77
|
-
// "test/tests/markups/AnnotationSettingsTests.js",
|
|
78
|
-
// "test/tests/markups/AnnotationTests.js",
|
|
79
|
-
// "test/tests/markups/DimensionAngleTests.js",
|
|
80
|
-
// "test/tests/markups/DimensionEdgeTests.js",
|
|
81
|
-
// "test/tests/markups/DimensionExtensionHelperLineTests.js",
|
|
82
|
-
// "test/tests/markups/DimensionAxesHelperLinesTests.js",
|
|
83
|
-
// "test/tests/markups/DimensionLineTests.js",
|
|
84
|
-
// "test/tests/markups/DimensionPerpendicularLineTests.js",
|
|
85
|
-
// "test/tests/markups/DimensionLocalPointTests.js",
|
|
86
|
-
// "test/tests/markups/DimensionCalibrationPointTests.js",
|
|
87
|
-
// "test/tests/markups/DimensionPointHelperTests.js",
|
|
88
|
-
// "test/tests/markups/DimensionSettingsTests.js",
|
|
89
|
-
// "test/tests/markups/DimensionSlopeTests.js",
|
|
90
|
-
// "test/tests/markups/DimensionTextCreatorTests.js",
|
|
91
|
-
// "test/tests/markups/LocalCoordSystemManagerTests.js",
|
|
92
|
-
// "test/tests/markups/MarkupBaseTests.js",
|
|
93
|
-
// "test/tests/markups/MarkupsContainerTests.js",
|
|
94
|
-
// "test/tests/markups/ObjectPropsTests.js",
|
|
95
|
-
|
|
96
|
-
// "test/tests/interactors/AnnotationInteractorTests*.js",
|
|
97
|
-
// "test/tests/interactors/LaserMeasurementInteractor*.js",
|
|
98
|
-
// "test/tests/interactors/LocalCoordSystemInteractorTests*.js",
|
|
99
|
-
// "test/tests/interactors/InteractorMouseMovePollyTests*.js",
|
|
100
|
-
// "test/tests/interactors/MarkupBaseInteractorTests*.js",
|
|
101
|
-
// "test/tests/interactors/MarkupNoInputInteractorTests*.js",
|
|
102
|
-
// "test/tests/interactors/MeasureAngleInteractorTests*.js",
|
|
103
|
-
// "test/tests/interactors/MeasureAutoEdgesInteractorTests*.js",
|
|
104
|
-
// "test/tests/interactors/MeasureEdgeInteractorTests*.js",
|
|
105
|
-
// "test/tests/interactors/MeasureFreeInteractorTests*.js",
|
|
106
|
-
// "test/tests/interactors/MeasurePerpendicularInteractorTests*.js",
|
|
107
|
-
// "test/tests/interactors/MeasureLocalPointInteractorTests*.js",
|
|
108
|
-
// "test/tests/interactors/MeasureCalibratedPointInteractorTests*.js",
|
|
109
|
-
// "test/tests/interactors/MoveModelInteractorTests*.js",
|
|
110
|
-
// "test/tests/interactors/ObjectPropsInteractorTests*.js",
|
|
111
|
-
// "test/tests/interactors/SectionPlaneInteractorTests*.js",
|
|
112
|
-
// "test/tests/interactors/SelectPointsForOverlayInteractorTests*.js",
|
|
113
|
-
// "test/tests/interactors/ViewportInteractorTests*.js",
|
|
114
|
-
|
|
115
|
-
// "test/tests/utils/AssertUtilsTests.js",
|
|
116
|
-
// "test/tests/utils/BoundingBoxTests.js",
|
|
117
|
-
// "test/tests/utils/CameraUtilsTests.js",
|
|
118
|
-
// "test/tests/utils/EventUtilsTests.js",
|
|
119
|
-
// "test/tests/utils/FrustumVisualizerTests.js",
|
|
120
|
-
// "test/tests/utils/GeometryUtilsTests.js",
|
|
121
|
-
// "test/tests/utils/GeometryUtilsViewportTests.js",
|
|
122
|
-
// "test/tests/utils/GlobalAxesVisualizerTests.js",
|
|
123
|
-
// "test/tests/utils/MathExtensionsTests.js",
|
|
124
|
-
// "test/tests/utils/MeasureUtilsTests.js",
|
|
125
|
-
// "test/tests/utils/ParserUtilsTests.js",
|
|
126
|
-
// "test/tests/utils/RandomGeneratorTests.js",
|
|
127
|
-
// "test/tests/utils/SphereVisualizerTests.js",
|
|
128
|
-
// "test/tests/utils/SunCalculationTests.js",
|
|
129
|
-
// "test/tests/utils/TouchModeHelperTests.js",
|
|
130
|
-
// "test/tests/utils/ValueValidatorTests.js",
|
|
131
|
-
|
|
132
|
-
// "test/tests/frameSelection/FrameSelectionTests.js",
|
|
133
|
-
// "test/tests/frameSelection/FrameSelectionEventCheckerTests.js",
|
|
134
|
-
// "test/tests/frameSelection/EdgesFrustumCheckerTests.js",
|
|
135
|
-
// "test/tests/frameSelection/SelectionBoxTests.js",
|
|
136
|
-
// "test/tests/frameSelection/SelectionHelperTests.js",
|
|
137
|
-
// "test/tests/frameSelection/VerticesFrustumCheckerTests.js",
|
|
138
|
-
|
|
139
|
-
// "test/tests/overlays/CropBoxTests.js",
|
|
140
|
-
// "test/tests/overlays/UndoRedoManagerTests.js",
|
|
141
|
-
// "test/tests/overlays/ViewportCropBoxTests.js"
|
|
142
|
-
|
|
143
|
-
// "test/tests/viewControls/fileViewControlTests.js",
|
|
144
|
-
// "test/tests/viewControls/navigationMapViewControlTests.js",
|
|
145
|
-
// "test/tests/viewControls/orbitViewControlTests.js",
|
|
146
|
-
// "test/tests/viewControls/ViewControlTests.js",
|
|
147
|
-
|
|
148
|
-
// "test/tests/viewers/ProjectViewerTests.js",
|
|
149
|
-
// "test/tests/viewers/ViewStateBuilderTests.js",
|
|
150
|
-
|
|
151
|
-
// "test/performance/CommandColorizeTests.js",
|
|
152
|
-
// "test/performance/DisciplineNodeStoreTests.js",
|
|
153
|
-
// "test/performance/ObjectsContainerTests.js",
|
|
154
|
-
],
|
|
155
|
-
};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
// Karma configuration
|
|
2
|
-
// http://karma-runner.github.io/4.0/config/configuration-file.html
|
|
3
|
-
|
|
4
|
-
const karmaSharedConfig = require('./karma-shared-config');
|
|
5
|
-
|
|
6
|
-
module.exports = function (config) {
|
|
7
|
-
config.set({
|
|
8
|
-
|
|
9
|
-
// Merge with shared configuration
|
|
10
|
-
...karmaSharedConfig,
|
|
11
|
-
|
|
12
|
-
// list of files / patterns to load in the browser
|
|
13
|
-
files: [
|
|
14
|
-
{pattern: 'src/wasm/*.wasm', included: false, served: true, type: 'wasm'},
|
|
15
|
-
{pattern: 'bin/*.js', included: false, served: true/*, type: 'wasm'*/},
|
|
16
|
-
//'bin/**/*.js',
|
|
17
|
-
'src/**/*.js',
|
|
18
|
-
'modelviewer-data-driven-tests/tests**/*.js',
|
|
19
|
-
],
|
|
20
|
-
|
|
21
|
-
// preprocess matching files before serving them to the browser
|
|
22
|
-
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
|
23
|
-
preprocessors: {
|
|
24
|
-
'src/**/*.js': [ 'webpack', ],
|
|
25
|
-
'modelviewer-data-driven-tests/**/*.js': [ 'webpack', ],
|
|
26
|
-
},
|
|
27
|
-
|
|
28
|
-
// test results reporter to use
|
|
29
|
-
// possible values: 'dots', 'progress'
|
|
30
|
-
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
31
|
-
reporters: [
|
|
32
|
-
'progress'
|
|
33
|
-
],
|
|
34
|
-
|
|
35
|
-
// client configuration
|
|
36
|
-
client: {
|
|
37
|
-
clearContext: false,
|
|
38
|
-
// QUnit options for QUnit.config
|
|
39
|
-
// https://api.qunitjs.com/config/QUnit.config
|
|
40
|
-
qunit: {
|
|
41
|
-
// Show list of all running tests in browser
|
|
42
|
-
showUI: true,
|
|
43
|
-
testTimeout: 6000000,
|
|
44
|
-
// requireExpects: true, // The expect() method is optional by default
|
|
45
|
-
fixture: null, // Don't clear the qunit-fixture div after each test - we try to reuse the webgl context
|
|
46
|
-
}
|
|
47
|
-
},
|
|
48
|
-
|
|
49
|
-
// level of logging
|
|
50
|
-
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
|
51
|
-
logLevel: config.LOG_INFO,
|
|
52
|
-
//logLevel: config.LOG_DEBUG,
|
|
53
|
-
|
|
54
|
-
// start these browsers
|
|
55
|
-
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
|
56
|
-
// browsers: ['Chrome'],
|
|
57
|
-
browsers: [
|
|
58
|
-
//'Chrome',
|
|
59
|
-
//'ChromeHeadless', //It is currently not possible to run the tests in headless mode due to random stalls
|
|
60
|
-
// 'Firefox', // Use only one browser for test run to get correct code coverage output
|
|
61
|
-
'Firefox', // this will split tests between browsers
|
|
62
|
-
//'FirefoxHeadless',
|
|
63
|
-
],
|
|
64
|
-
|
|
65
|
-
})
|
|
66
|
-
}
|
package/karma-shared-config.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
// Karma configuration
|
|
2
|
-
// http://karma-runner.github.io/4.0/config/configuration-file.html
|
|
3
|
-
|
|
4
|
-
const webpackConfig = require("./karma.webpack");
|
|
5
|
-
|
|
6
|
-
module.exports = {
|
|
7
|
-
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
8
|
-
basePath: "",
|
|
9
|
-
|
|
10
|
-
browserConsoleLogOptions: {
|
|
11
|
-
terminal: false, // Turn off logging in console
|
|
12
|
-
},
|
|
13
|
-
|
|
14
|
-
// For firefox we get this error:
|
|
15
|
-
// Firefox was not killed in 2000 ms, sending SIGKILL.
|
|
16
|
-
// Default: 2000
|
|
17
|
-
processKillTimeout: 10000,
|
|
18
|
-
// fix for browser connection timeout error
|
|
19
|
-
captureTimeout: 60000,
|
|
20
|
-
browserDisconnectTimeout: 60000,
|
|
21
|
-
browserDisconnectTolerance: 1,
|
|
22
|
-
browserNoActivityTimeout: 60000, //by default 10000
|
|
23
|
-
|
|
24
|
-
// frameworks to use
|
|
25
|
-
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
26
|
-
frameworks: [
|
|
27
|
-
"sharding",
|
|
28
|
-
"qunit",
|
|
29
|
-
"jquery-3.4.0",
|
|
30
|
-
"host-environment",
|
|
31
|
-
"webpack",
|
|
32
|
-
],
|
|
33
|
-
|
|
34
|
-
// Default search path for ifcjs wasm files is root folder but karama serves them in different path -> proxies need to be set up
|
|
35
|
-
proxies: {
|
|
36
|
-
"/web-ifc-mt.wasm": "/base/src/wasm/web-ifc-mt.wasm",
|
|
37
|
-
"/web-ifc.wasm": "/base/src/wasm/web-ifc.wasm",
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
// list of files / patterns to exclude
|
|
41
|
-
exclude: ["src/vendor/*.js", "src/compiledWorkers/*.js", "src/workers/*.js"],
|
|
42
|
-
|
|
43
|
-
// web server port (we use different ports for renderer, websdk and webclient !)
|
|
44
|
-
port: 9877,
|
|
45
|
-
|
|
46
|
-
// enable / disable colors in the output (reporters and logs)
|
|
47
|
-
colors: true,
|
|
48
|
-
|
|
49
|
-
// enable / disable watching file and executing tests whenever any file changes
|
|
50
|
-
autoWatch: false,
|
|
51
|
-
|
|
52
|
-
// For Firefox headless a Custom Launcher is needed
|
|
53
|
-
customLaunchers: {
|
|
54
|
-
FirefoxHeadless: {
|
|
55
|
-
base: "Firefox",
|
|
56
|
-
flags: ["-headless"],
|
|
57
|
-
},
|
|
58
|
-
ChromeExt: {
|
|
59
|
-
base: "Chrome",
|
|
60
|
-
flags: [
|
|
61
|
-
"--js-flags=--expose-gc",
|
|
62
|
-
"--disable-extensions",
|
|
63
|
-
"--no-sandbox",
|
|
64
|
-
"--disable-translate",
|
|
65
|
-
"--disable-search-engine-choice-screen",
|
|
66
|
-
],
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
// Continuous Integration mode
|
|
71
|
-
// if true, Karma captures browsers, runs the tests and exits
|
|
72
|
-
singleRun: true,
|
|
73
|
-
|
|
74
|
-
// Concurrency level
|
|
75
|
-
// how many browser should be started simultaneous
|
|
76
|
-
// concurrency: Infinity, // not possible because of WebGL(0000001B0FEA0000)::ForceLoseContext
|
|
77
|
-
concurrency: 1,
|
|
78
|
-
|
|
79
|
-
// webpack-karma docu
|
|
80
|
-
// https://github.com/webpack-contrib/karma-webpack
|
|
81
|
-
webpack: webpackConfig,
|
|
82
|
-
|
|
83
|
-
// For more information of webpack middleware output disable this configuration
|
|
84
|
-
// webpack-dev-middleware configuration
|
|
85
|
-
// https://www.npmjs.com/package/webpack-dev-middleware
|
|
86
|
-
webpackMiddleware: {
|
|
87
|
-
// webpack stats: https://webpack.js.org/configuration/stats/#stats
|
|
88
|
-
stats: "errors-only", // show additional info for webpack build process
|
|
89
|
-
},
|
|
90
|
-
};
|
package/openAllFiles.ps1
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# security warning about running scripts, you need to change the execution policy
|
|
2
|
-
# to allow running scripts. You can do this by running the following command in PowerShell:
|
|
3
|
-
# Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
4
|
-
|
|
5
|
-
# Define the path to the projects directory
|
|
6
|
-
$projectsPath = ".\src"
|
|
7
|
-
|
|
8
|
-
# Get all .ts, .less, and .html files, excluding node_modules and dist directories
|
|
9
|
-
$files = Get-ChildItem -Path $projectsPath -Recurse -Include *.js, *.less, *.html | Where-Object {
|
|
10
|
-
$_.FullName -notmatch '\\node_modules\\' -and $_.FullName -notmatch '\\dist\\'
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
# Open each file in Visual Studio Code
|
|
14
|
-
$files | ForEach-Object { code $_.FullName }
|
|
15
|
-
|
|
16
|
-
# Output the count of opened files
|
|
17
|
-
$files.Count
|