@xeokit/xeokit-sdk 2.6.73 → 2.6.75

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.
Files changed (60) hide show
  1. package/dist/xeokit-sdk.cjs.js +221 -108
  2. package/dist/xeokit-sdk.es.js +221 -108
  3. package/dist/xeokit-sdk.es5.js +311 -301
  4. package/dist/xeokit-sdk.min.cjs.js +6 -6
  5. package/dist/xeokit-sdk.min.es.js +7 -7
  6. package/dist/xeokit-sdk.min.es5.js +6 -6
  7. package/package.json +1 -1
  8. package/src/extras/ContextMenu/ContextMenu.js +25 -16
  9. package/src/plugins/FastNavPlugin/FastNavPlugin.js +10 -0
  10. package/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +24 -49
  11. package/src/plugins/TreeViewPlugin/RenderService.js +13 -4
  12. package/src/plugins/TreeViewPlugin/TreeViewPlugin.js +1 -1
  13. package/src/viewer/Viewer.js +0 -16
  14. package/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +29 -8
  15. package/src/viewer/scene/LineSet/LineSet.js +7 -2
  16. package/src/viewer/scene/skybox/Skybox.js +110 -9
  17. package/types/plugins/SkyboxesPlugin/SkyboxesPlugin.d.ts +18 -4
  18. package/types/viewer/scene/CameraControl/CameraControl.d.ts +168 -0
  19. package/types/viewer/scene/LineSet/LineSet.d.ts +1 -1
  20. package/types/viewer/scene/camera/CameraPath.d.ts +86 -6
  21. package/types/viewer/scene/camera/CameraPathAnimation.d.ts +2 -0
  22. package/types/viewer/scene/geometry/ReadableGeometry.d.ts +14 -0
  23. package/types/viewer/scene/geometry/VBOGeometry.d.ts +2 -0
  24. package/types/viewer/scene/geometry/index.d.ts +2 -1
  25. package/types/viewer/scene/geometry/loaders/index.d.ts +2 -0
  26. package/types/viewer/scene/geometry/loaders/load3DSGeometry.d.ts +17 -0
  27. package/types/viewer/scene/geometry/loaders/loadOBJGeometry.d.ts +18 -0
  28. package/types/viewer/scene/index.d.ts +2 -0
  29. package/types/viewer/scene/input/input.d.ts +117 -0
  30. package/types/viewer/scene/lights/AmbientLight.d.ts +41 -0
  31. package/types/viewer/scene/lights/CubeTexture.d.ts +27 -0
  32. package/types/viewer/scene/lights/DirLight.d.ts +77 -0
  33. package/types/viewer/scene/lights/LightMap.d.ts +27 -0
  34. package/types/viewer/scene/lights/PointLight.d.ts +135 -0
  35. package/types/viewer/scene/lights/ReflectionMap.d.ts +26 -0
  36. package/types/viewer/scene/lights/index.d.ts +4 -1
  37. package/types/viewer/scene/marker/Marker.d.ts +5 -0
  38. package/types/viewer/scene/materials/EmphasisMaterial.d.ts +5 -0
  39. package/types/viewer/scene/materials/Fresnel.d.ts +25 -62
  40. package/types/viewer/scene/materials/LambertMaterial.d.ts +192 -0
  41. package/types/viewer/scene/materials/MetallicMaterial.d.ts +359 -0
  42. package/types/viewer/scene/materials/PhongMaterial.d.ts +5 -0
  43. package/types/viewer/scene/materials/PointsMaterial.d.ts +5 -0
  44. package/types/viewer/scene/materials/SpecularMaterial.d.ts +342 -0
  45. package/types/viewer/scene/materials/Texture.d.ts +36 -78
  46. package/types/viewer/scene/materials/index.d.ts +2 -0
  47. package/types/viewer/scene/models/SceneModel.d.ts +134 -7
  48. package/types/viewer/scene/models/SceneModelEntity.d.ts +65 -0
  49. package/types/viewer/scene/models/SceneModelMesh.d.ts +12 -0
  50. package/types/viewer/scene/paths/CubicBezierCurve.d.ts +146 -0
  51. package/types/viewer/scene/paths/Curve.d.ts +75 -0
  52. package/types/viewer/scene/paths/Path.d.ts +119 -0
  53. package/types/viewer/scene/paths/QuadraticBezierCurve.d.ts +124 -0
  54. package/types/viewer/scene/paths/SplineCurve.d.ts +84 -0
  55. package/types/viewer/scene/paths/index.d.ts +5 -0
  56. package/types/viewer/scene/scene/Scene.d.ts +102 -0
  57. package/types/viewer/scene/sectionPlane/SectionPlane.d.ts +41 -0
  58. package/types/viewer/scene/skybox/Skybox.d.ts +59 -0
  59. package/types/viewer/scene/skybox/index.d.ts +1 -0
  60. package/types/viewer/scene/webgl/PickResult.d.ts +19 -0
@@ -1,10 +1,10 @@
1
1
  /**
2
- * xeokit-sdk v2.6.73
3
- * Commit: 3b3bb2ad8abfdf189cf4ba7f67d6798375772b7b
4
- * Built: 2025-04-10T16:46:49.684Z
2
+ * xeokit-sdk v2.6.75
3
+ * Commit: c9b6b9ca6ba5bea44b4e84678d4f9ffbf152086d
4
+ * Built: 2025-04-17T10:44:28.149Z
5
5
  */
6
6
 
7
- var _globalThis$loaders3,_DRACO_EXTERNAL_LIBRA,_DEFAULT_SAMPLER_PARA;var _marked=/*#__PURE__*/_regeneratorRuntime().mark(makeStringIterator),_marked2=/*#__PURE__*/_regeneratorRuntime().mark(makeArrayBufferIterator),_marked3=/*#__PURE__*/_regeneratorRuntime().mark(makeMeshPrimitiveIterator);function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map():undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function");}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper);}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor);}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class);};return _wrapNativeSuper(Class);}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct.bind();}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor();if(Class)_setPrototypeOf(instance,Class.prototype);return instance;};}return _construct.apply(null,arguments);}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1;}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return exports;};var exports={},Op=Object.prototype,hasOwn=Op.hasOwnProperty,$Symbol="function"==typeof Symbol?Symbol:{},iteratorSymbol=$Symbol.iterator||"@@iterator",asyncIteratorSymbol=$Symbol.asyncIterator||"@@asyncIterator",toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";function define(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}),obj[key];}try{define({},"");}catch(err){define=function define(obj,key,value){return obj[key]=value;};}function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return generator._invoke=function(innerFn,self,context){var state="suspendedStart";return function(method,arg){if("executing"===state)throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult();}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult;}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg);}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done};}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg);}};}(innerFn,self,context),generator;}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)};}catch(err){return{type:"throw",arg:err};}}exports.wrap=wrap;var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var IteratorPrototype={};define(IteratorPrototype,iteratorSymbol,function(){return this;});var getProto=Object.getPrototypeOf,NativeIteratorPrototype=getProto&&getProto(getProto(values([])));NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)&&(IteratorPrototype=NativeIteratorPrototype);var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){define(prototype,method,function(arg){return this._invoke(method,arg);});});}function AsyncIterator(generator,PromiseImpl){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"!==record.type){var result=record.arg,value=result.value;return value&&"object"==_typeof(value)&&hasOwn.call(value,"__await")?PromiseImpl.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject);},function(err){invoke("throw",err,resolve,reject);}):PromiseImpl.resolve(value).then(function(unwrapped){result.value=unwrapped,resolve(result);},function(error){return invoke("throw",error,resolve,reject);});}reject(record.arg);}var previousPromise;this._invoke=function(method,arg){function callInvokeWithMethodAndArg(){return new PromiseImpl(function(resolve,reject){invoke(method,arg,resolve,reject);});}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();};}function maybeInvokeDelegate(delegate,context){var method=delegate.iterator[context.method];if(undefined===method){if(context.delegate=null,"throw"===context.method){if(delegate.iterator["return"]&&(context.method="return",context.arg=undefined,maybeInvokeDelegate(delegate,context),"throw"===context.method))return ContinueSentinel;context.method="throw",context.arg=new TypeError("The iterator does not provide a 'throw' method");}return ContinueSentinel;}var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;return info?info.done?(context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=undefined),context.delegate=null,ContinueSentinel):info:(context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel);}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry);}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record;}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0);}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i<iterable.length;){if(hasOwn.call(iterable,i))return next.value=iterable[i],next.done=!1,next;}return next.value=undefined,next.done=!0,next;};return next.next=next;}}return{next:doneResult};}function doneResult(){return{value:undefined,done:!0};}return GeneratorFunction.prototype=GeneratorFunctionPrototype,define(Gp,"constructor",GeneratorFunctionPrototype),define(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,toStringTagSymbol,"GeneratorFunction"),exports.isGeneratorFunction=function(genFun){var ctor="function"==typeof genFun&&genFun.constructor;return!!ctor&&(ctor===GeneratorFunction||"GeneratorFunction"===(ctor.displayName||ctor.name));},exports.mark=function(genFun){return Object.setPrototypeOf?Object.setPrototypeOf(genFun,GeneratorFunctionPrototype):(genFun.__proto__=GeneratorFunctionPrototype,define(genFun,toStringTagSymbol,"GeneratorFunction")),genFun.prototype=Object.create(Gp),genFun;},exports.awrap=function(arg){return{__await:arg};},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,asyncIteratorSymbol,function(){return this;}),exports.AsyncIterator=AsyncIterator,exports.async=function(innerFn,outerFn,self,tryLocsList,PromiseImpl){void 0===PromiseImpl&&(PromiseImpl=Promise);var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList),PromiseImpl);return exports.isGeneratorFunction(outerFn)?iter:iter.next().then(function(result){return result.done?result.value:iter.next();});},defineIteratorMethods(Gp),define(Gp,toStringTagSymbol,"Generator"),define(Gp,iteratorSymbol,function(){return this;}),define(Gp,"toString",function(){return"[object Generator]";}),exports.keys=function(object){var keys=[];for(var key in object){keys.push(key);}return keys.reverse(),function next(){for(;keys.length;){var key=keys.pop();if(key in object)return next.value=key,next.done=!1,next;}return next.done=!0,next;};},exports.values=values,Context.prototype={constructor:Context,reset:function reset(skipTempReset){if(this.prev=0,this.next=0,this.sent=this._sent=undefined,this.done=!1,this.delegate=null,this.method="next",this.arg=undefined,this.tryEntries.forEach(resetTryEntry),!skipTempReset)for(var name in this){"t"===name.charAt(0)&&hasOwn.call(this,name)&&!isNaN(+name.slice(1))&&(this[name]=undefined);}},stop:function stop(){this.done=!0;var rootRecord=this.tryEntries[0].completion;if("throw"===rootRecord.type)throw rootRecord.arg;return this.rval;},dispatchException:function dispatchException(exception){if(this.done)throw exception;var context=this;function handle(loc,caught){return record.type="throw",record.arg=exception,context.next=loc,caught&&(context.method="next",context.arg=undefined),!!caught;}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}else if(hasCatch){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);}else{if(!hasFinally)throw new Error("try statement without catch or finally");if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}}}},abrupt:function abrupt(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break;}}finallyEntry&&("break"===type||"continue"===type)&&finallyEntry.tryLoc<=arg&&arg<=finallyEntry.finallyLoc&&(finallyEntry=null);var record=finallyEntry?finallyEntry.completion:{};return record.type=type,record.arg=arg,finallyEntry?(this.method="next",this.next=finallyEntry.finallyLoc,ContinueSentinel):this.complete(record);},complete:function complete(record,afterLoc){if("throw"===record.type)throw record.arg;return"break"===record.type||"continue"===record.type?this.next=record.arg:"return"===record.type?(this.rval=this.arg=record.arg,this.method="return",this.next="end"):"normal"===record.type&&afterLoc&&(this.next=afterLoc),ContinueSentinel;},finish:function finish(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel;}},"catch":function _catch(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry);}return thrown;}}throw new Error("illegal catch attempt");},delegateYield:function delegateYield(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel;}},exports;}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e14){throw _e14;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o);},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e15){didErr=true;err=_e15;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};}function _get(){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get.bind();}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(arguments.length<3?target:receiver);}return desc.value;};}return _get.apply(this,arguments);}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break;}return object;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _awaitAsyncGenerator(value){return new _AwaitValue(value);}function _wrapAsyncGenerator(fn){return function(){return new _AsyncGenerator(fn.apply(this,arguments));};}function _AsyncGenerator(gen){var front,back;function send(key,arg){return new Promise(function(resolve,reject){var request={key:key,arg:arg,resolve:resolve,reject:reject,next:null};if(back){back=back.next=request;}else{front=back=request;resume(key,arg);}});}function resume(key,arg){try{var result=gen[key](arg);var value=result.value;var wrappedAwait=value instanceof _AwaitValue;Promise.resolve(wrappedAwait?value.wrapped:value).then(function(arg){if(wrappedAwait){resume(key==="return"?"return":"next",arg);return;}settle(result.done?"return":"normal",arg);},function(err){resume("throw",err);});}catch(err){settle("throw",err);}}function settle(type,value){switch(type){case"return":front.resolve({value:value,done:true});break;case"throw":front.reject(value);break;default:front.resolve({value:value,done:false});break;}front=front.next;if(front){resume(front.key,front.arg);}else{back=null;}}this._invoke=send;if(typeof gen["return"]!=="function"){this["return"]=undefined;}}_AsyncGenerator.prototype[typeof Symbol==="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this;};_AsyncGenerator.prototype.next=function(arg){return this._invoke("next",arg);};_AsyncGenerator.prototype["throw"]=function(arg){return this._invoke("throw",arg);};_AsyncGenerator.prototype["return"]=function(arg){return this._invoke("return",arg);};function _AwaitValue(value){this.wrapped=value;}function _asyncIterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator";}throw new TypeError("Object is not async iterable");}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then(function(value){return{value:value,done:done};});}return AsyncFromSyncIterator=function AsyncFromSyncIterator(s){this.s=s,this.n=s.next;},AsyncFromSyncIterator.prototype={s:null,n:null,next:function next(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments));},"return":function _return(value){var ret=this.s["return"];return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments));},"throw":function _throw(value){var thr=this.s["return"];return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments));}},new AsyncFromSyncIterator(s);}/** @private */var Map$1=/*#__PURE__*/function(){function Map$1(items,baseId){_classCallCheck(this,Map$1);this.items=items||[];this._lastUniqueId=(baseId||0)+1;}/**
7
+ var _globalThis$loaders3,_DRACO_EXTERNAL_LIBRA,_DEFAULT_SAMPLER_PARA;var _marked=/*#__PURE__*/_regeneratorRuntime().mark(makeStringIterator),_marked2=/*#__PURE__*/_regeneratorRuntime().mark(makeArrayBufferIterator),_marked3=/*#__PURE__*/_regeneratorRuntime().mark(makeMeshPrimitiveIterator);function _wrapNativeSuper(Class){var _cache=typeof Map==="function"?new Map():undefined;_wrapNativeSuper=function _wrapNativeSuper(Class){if(Class===null||!_isNativeFunction(Class))return Class;if(typeof Class!=="function"){throw new TypeError("Super expression must either be null or a function");}if(typeof _cache!=="undefined"){if(_cache.has(Class))return _cache.get(Class);_cache.set(Class,Wrapper);}function Wrapper(){return _construct(Class,arguments,_getPrototypeOf(this).constructor);}Wrapper.prototype=Object.create(Class.prototype,{constructor:{value:Wrapper,enumerable:false,writable:true,configurable:true}});return _setPrototypeOf(Wrapper,Class);};return _wrapNativeSuper(Class);}function _construct(Parent,args,Class){if(_isNativeReflectConstruct()){_construct=Reflect.construct.bind();}else{_construct=function _construct(Parent,args,Class){var a=[null];a.push.apply(a,args);var Constructor=Function.bind.apply(Parent,a);var instance=new Constructor();if(Class)_setPrototypeOf(instance,Class.prototype);return instance;};}return _construct.apply(null,arguments);}function _isNativeFunction(fn){return Function.toString.call(fn).indexOf("[native code]")!==-1;}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);enumerableOnly&&(symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;})),keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=null!=arguments[i]?arguments[i]:{};i%2?ownKeys(Object(source),!0).forEach(function(key){_defineProperty(target,key,source[key]);}):Object.getOwnPropertyDescriptors?Object.defineProperties(target,Object.getOwnPropertyDescriptors(source)):ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}return target;}function _defineProperty(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}function _regeneratorRuntime(){"use strict";/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function _regeneratorRuntime(){return exports;};var exports={},Op=Object.prototype,hasOwn=Op.hasOwnProperty,$Symbol="function"==typeof Symbol?Symbol:{},iteratorSymbol=$Symbol.iterator||"@@iterator",asyncIteratorSymbol=$Symbol.asyncIterator||"@@asyncIterator",toStringTagSymbol=$Symbol.toStringTag||"@@toStringTag";function define(obj,key,value){return Object.defineProperty(obj,key,{value:value,enumerable:!0,configurable:!0,writable:!0}),obj[key];}try{define({},"");}catch(err){define=function define(obj,key,value){return obj[key]=value;};}function wrap(innerFn,outerFn,self,tryLocsList){var protoGenerator=outerFn&&outerFn.prototype instanceof Generator?outerFn:Generator,generator=Object.create(protoGenerator.prototype),context=new Context(tryLocsList||[]);return generator._invoke=function(innerFn,self,context){var state="suspendedStart";return function(method,arg){if("executing"===state)throw new Error("Generator is already running");if("completed"===state){if("throw"===method)throw arg;return doneResult();}for(context.method=method,context.arg=arg;;){var delegate=context.delegate;if(delegate){var delegateResult=maybeInvokeDelegate(delegate,context);if(delegateResult){if(delegateResult===ContinueSentinel)continue;return delegateResult;}}if("next"===context.method)context.sent=context._sent=context.arg;else if("throw"===context.method){if("suspendedStart"===state)throw state="completed",context.arg;context.dispatchException(context.arg);}else"return"===context.method&&context.abrupt("return",context.arg);state="executing";var record=tryCatch(innerFn,self,context);if("normal"===record.type){if(state=context.done?"completed":"suspendedYield",record.arg===ContinueSentinel)continue;return{value:record.arg,done:context.done};}"throw"===record.type&&(state="completed",context.method="throw",context.arg=record.arg);}};}(innerFn,self,context),generator;}function tryCatch(fn,obj,arg){try{return{type:"normal",arg:fn.call(obj,arg)};}catch(err){return{type:"throw",arg:err};}}exports.wrap=wrap;var ContinueSentinel={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var IteratorPrototype={};define(IteratorPrototype,iteratorSymbol,function(){return this;});var getProto=Object.getPrototypeOf,NativeIteratorPrototype=getProto&&getProto(getProto(values([])));NativeIteratorPrototype&&NativeIteratorPrototype!==Op&&hasOwn.call(NativeIteratorPrototype,iteratorSymbol)&&(IteratorPrototype=NativeIteratorPrototype);var Gp=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(IteratorPrototype);function defineIteratorMethods(prototype){["next","throw","return"].forEach(function(method){define(prototype,method,function(arg){return this._invoke(method,arg);});});}function AsyncIterator(generator,PromiseImpl){function invoke(method,arg,resolve,reject){var record=tryCatch(generator[method],generator,arg);if("throw"!==record.type){var result=record.arg,value=result.value;return value&&"object"==_typeof(value)&&hasOwn.call(value,"__await")?PromiseImpl.resolve(value.__await).then(function(value){invoke("next",value,resolve,reject);},function(err){invoke("throw",err,resolve,reject);}):PromiseImpl.resolve(value).then(function(unwrapped){result.value=unwrapped,resolve(result);},function(error){return invoke("throw",error,resolve,reject);});}reject(record.arg);}var previousPromise;this._invoke=function(method,arg){function callInvokeWithMethodAndArg(){return new PromiseImpl(function(resolve,reject){invoke(method,arg,resolve,reject);});}return previousPromise=previousPromise?previousPromise.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg();};}function maybeInvokeDelegate(delegate,context){var method=delegate.iterator[context.method];if(undefined===method){if(context.delegate=null,"throw"===context.method){if(delegate.iterator["return"]&&(context.method="return",context.arg=undefined,maybeInvokeDelegate(delegate,context),"throw"===context.method))return ContinueSentinel;context.method="throw",context.arg=new TypeError("The iterator does not provide a 'throw' method");}return ContinueSentinel;}var record=tryCatch(method,delegate.iterator,context.arg);if("throw"===record.type)return context.method="throw",context.arg=record.arg,context.delegate=null,ContinueSentinel;var info=record.arg;return info?info.done?(context[delegate.resultName]=info.value,context.next=delegate.nextLoc,"return"!==context.method&&(context.method="next",context.arg=undefined),context.delegate=null,ContinueSentinel):info:(context.method="throw",context.arg=new TypeError("iterator result is not an object"),context.delegate=null,ContinueSentinel);}function pushTryEntry(locs){var entry={tryLoc:locs[0]};1 in locs&&(entry.catchLoc=locs[1]),2 in locs&&(entry.finallyLoc=locs[2],entry.afterLoc=locs[3]),this.tryEntries.push(entry);}function resetTryEntry(entry){var record=entry.completion||{};record.type="normal",delete record.arg,entry.completion=record;}function Context(tryLocsList){this.tryEntries=[{tryLoc:"root"}],tryLocsList.forEach(pushTryEntry,this),this.reset(!0);}function values(iterable){if(iterable){var iteratorMethod=iterable[iteratorSymbol];if(iteratorMethod)return iteratorMethod.call(iterable);if("function"==typeof iterable.next)return iterable;if(!isNaN(iterable.length)){var i=-1,next=function next(){for(;++i<iterable.length;){if(hasOwn.call(iterable,i))return next.value=iterable[i],next.done=!1,next;}return next.value=undefined,next.done=!0,next;};return next.next=next;}}return{next:doneResult};}function doneResult(){return{value:undefined,done:!0};}return GeneratorFunction.prototype=GeneratorFunctionPrototype,define(Gp,"constructor",GeneratorFunctionPrototype),define(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,toStringTagSymbol,"GeneratorFunction"),exports.isGeneratorFunction=function(genFun){var ctor="function"==typeof genFun&&genFun.constructor;return!!ctor&&(ctor===GeneratorFunction||"GeneratorFunction"===(ctor.displayName||ctor.name));},exports.mark=function(genFun){return Object.setPrototypeOf?Object.setPrototypeOf(genFun,GeneratorFunctionPrototype):(genFun.__proto__=GeneratorFunctionPrototype,define(genFun,toStringTagSymbol,"GeneratorFunction")),genFun.prototype=Object.create(Gp),genFun;},exports.awrap=function(arg){return{__await:arg};},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,asyncIteratorSymbol,function(){return this;}),exports.AsyncIterator=AsyncIterator,exports.async=function(innerFn,outerFn,self,tryLocsList,PromiseImpl){void 0===PromiseImpl&&(PromiseImpl=Promise);var iter=new AsyncIterator(wrap(innerFn,outerFn,self,tryLocsList),PromiseImpl);return exports.isGeneratorFunction(outerFn)?iter:iter.next().then(function(result){return result.done?result.value:iter.next();});},defineIteratorMethods(Gp),define(Gp,toStringTagSymbol,"Generator"),define(Gp,iteratorSymbol,function(){return this;}),define(Gp,"toString",function(){return"[object Generator]";}),exports.keys=function(object){var keys=[];for(var key in object){keys.push(key);}return keys.reverse(),function next(){for(;keys.length;){var key=keys.pop();if(key in object)return next.value=key,next.done=!1,next;}return next.done=!0,next;};},exports.values=values,Context.prototype={constructor:Context,reset:function reset(skipTempReset){if(this.prev=0,this.next=0,this.sent=this._sent=undefined,this.done=!1,this.delegate=null,this.method="next",this.arg=undefined,this.tryEntries.forEach(resetTryEntry),!skipTempReset)for(var name in this){"t"===name.charAt(0)&&hasOwn.call(this,name)&&!isNaN(+name.slice(1))&&(this[name]=undefined);}},stop:function stop(){this.done=!0;var rootRecord=this.tryEntries[0].completion;if("throw"===rootRecord.type)throw rootRecord.arg;return this.rval;},dispatchException:function dispatchException(exception){if(this.done)throw exception;var context=this;function handle(loc,caught){return record.type="throw",record.arg=exception,context.next=loc,caught&&(context.method="next",context.arg=undefined),!!caught;}for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i],record=entry.completion;if("root"===entry.tryLoc)return handle("end");if(entry.tryLoc<=this.prev){var hasCatch=hasOwn.call(entry,"catchLoc"),hasFinally=hasOwn.call(entry,"finallyLoc");if(hasCatch&&hasFinally){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}else if(hasCatch){if(this.prev<entry.catchLoc)return handle(entry.catchLoc,!0);}else{if(!hasFinally)throw new Error("try statement without catch or finally");if(this.prev<entry.finallyLoc)return handle(entry.finallyLoc);}}}},abrupt:function abrupt(type,arg){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc<=this.prev&&hasOwn.call(entry,"finallyLoc")&&this.prev<entry.finallyLoc){var finallyEntry=entry;break;}}finallyEntry&&("break"===type||"continue"===type)&&finallyEntry.tryLoc<=arg&&arg<=finallyEntry.finallyLoc&&(finallyEntry=null);var record=finallyEntry?finallyEntry.completion:{};return record.type=type,record.arg=arg,finallyEntry?(this.method="next",this.next=finallyEntry.finallyLoc,ContinueSentinel):this.complete(record);},complete:function complete(record,afterLoc){if("throw"===record.type)throw record.arg;return"break"===record.type||"continue"===record.type?this.next=record.arg:"return"===record.type?(this.rval=this.arg=record.arg,this.method="return",this.next="end"):"normal"===record.type&&afterLoc&&(this.next=afterLoc),ContinueSentinel;},finish:function finish(finallyLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.finallyLoc===finallyLoc)return this.complete(entry.completion,entry.afterLoc),resetTryEntry(entry),ContinueSentinel;}},"catch":function _catch(tryLoc){for(var i=this.tryEntries.length-1;i>=0;--i){var entry=this.tryEntries[i];if(entry.tryLoc===tryLoc){var record=entry.completion;if("throw"===record.type){var thrown=record.arg;resetTryEntry(entry);}return thrown;}}throw new Error("illegal catch attempt");},delegateYield:function delegateYield(iterable,resultName,nextLoc){return this.delegate={iterator:values(iterable),resultName:resultName,nextLoc:nextLoc},"next"===this.method&&(this.arg=undefined),ContinueSentinel;}},exports;}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value;}catch(error){reject(error);return;}if(info.done){resolve(value);}else{Promise.resolve(value).then(_next,_throw);}}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value);}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err);}_next(undefined);});};}function _toConsumableArray(arr){return _arrayWithoutHoles(arr)||_iterableToArray(arr)||_unsupportedIterableToArray(arr)||_nonIterableSpread();}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _iterableToArray(iter){if(typeof Symbol!=="undefined"&&iter[Symbol.iterator]!=null||iter["@@iterator"]!=null)return Array.from(iter);}function _arrayWithoutHoles(arr){if(Array.isArray(arr))return _arrayLikeToArray(arr);}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e14){throw _e14;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o);},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e15){didErr=true;err=_e15;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};}function _get(){if(typeof Reflect!=="undefined"&&Reflect.get){_get=Reflect.get.bind();}else{_get=function _get(target,property,receiver){var base=_superPropBase(target,property);if(!base)return;var desc=Object.getOwnPropertyDescriptor(base,property);if(desc.get){return desc.get.call(arguments.length<3?target:receiver);}return desc.value;};}return _get.apply(this,arguments);}function _superPropBase(object,property){while(!Object.prototype.hasOwnProperty.call(object,property)){object=_getPrototypeOf(object);if(object===null)break;}return object;}function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function");}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,writable:true,configurable:true}});Object.defineProperty(subClass,"prototype",{writable:false});if(superClass)_setPrototypeOf(subClass,superClass);}function _setPrototypeOf(o,p){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(o,p){o.__proto__=p;return o;};return _setPrototypeOf(o,p);}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=_getPrototypeOf(Derived),result;if(hasNativeReflectConstruct){var NewTarget=_getPrototypeOf(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return _possibleConstructorReturn(this,result);};}function _possibleConstructorReturn(self,call){if(call&&(_typeof(call)==="object"||typeof call==="function")){return call;}else if(call!==void 0){throw new TypeError("Derived constructors may only return object or undefined");}return _assertThisInitialized(self);}function _assertThisInitialized(self){if(self===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return self;}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}function _getPrototypeOf(o){_getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function _getPrototypeOf(o){return o.__proto__||Object.getPrototypeOf(o);};return _getPrototypeOf(o);}function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _iterableToArrayLimit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}function _defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}function _createClass(Constructor,protoProps,staticProps){if(protoProps)_defineProperties(Constructor.prototype,protoProps);if(staticProps)_defineProperties(Constructor,staticProps);Object.defineProperty(Constructor,"prototype",{writable:false});return Constructor;}function _awaitAsyncGenerator(value){return new _AwaitValue(value);}function _wrapAsyncGenerator(fn){return function(){return new _AsyncGenerator(fn.apply(this,arguments));};}function _AsyncGenerator(gen){var front,back;function send(key,arg){return new Promise(function(resolve,reject){var request={key:key,arg:arg,resolve:resolve,reject:reject,next:null};if(back){back=back.next=request;}else{front=back=request;resume(key,arg);}});}function resume(key,arg){try{var result=gen[key](arg);var value=result.value;var wrappedAwait=value instanceof _AwaitValue;Promise.resolve(wrappedAwait?value.wrapped:value).then(function(arg){if(wrappedAwait){resume(key==="return"?"return":"next",arg);return;}settle(result.done?"return":"normal",arg);},function(err){resume("throw",err);});}catch(err){settle("throw",err);}}function settle(type,value){switch(type){case"return":front.resolve({value:value,done:true});break;case"throw":front.reject(value);break;default:front.resolve({value:value,done:false});break;}front=front.next;if(front){resume(front.key,front.arg);}else{back=null;}}this._invoke=send;if(typeof gen["return"]!=="function"){this["return"]=undefined;}}_AsyncGenerator.prototype[typeof Symbol==="function"&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this;};_AsyncGenerator.prototype.next=function(arg){return this._invoke("next",arg);};_AsyncGenerator.prototype["throw"]=function(arg){return this._invoke("throw",arg);};_AsyncGenerator.prototype["return"]=function(arg){return this._invoke("return",arg);};function _AwaitValue(value){this.wrapped=value;}function _asyncIterator(iterable){var method,async,sync,retry=2;for("undefined"!=typeof Symbol&&(async=Symbol.asyncIterator,sync=Symbol.iterator);retry--;){if(async&&null!=(method=iterable[async]))return method.call(iterable);if(sync&&null!=(method=iterable[sync]))return new AsyncFromSyncIterator(method.call(iterable));async="@@asyncIterator",sync="@@iterator";}throw new TypeError("Object is not async iterable");}function AsyncFromSyncIterator(s){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var done=r.done;return Promise.resolve(r.value).then(function(value){return{value:value,done:done};});}return AsyncFromSyncIterator=function AsyncFromSyncIterator(s){this.s=s,this.n=s.next;},AsyncFromSyncIterator.prototype={s:null,n:null,next:function next(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments));},"return":function _return(value){var ret=this.s["return"];return void 0===ret?Promise.resolve({value:value,done:!0}):AsyncFromSyncIteratorContinuation(ret.apply(this.s,arguments));},"throw":function _throw(value){var thr=this.s["return"];return void 0===thr?Promise.reject(value):AsyncFromSyncIteratorContinuation(thr.apply(this.s,arguments));}},new AsyncFromSyncIterator(s);}/** @private */var Map$1=/*#__PURE__*/function(){function Map$1(items,baseId){_classCallCheck(this,Map$1);this.items=items||[];this._lastUniqueId=(baseId||0)+1;}/**
8
8
  * Usage:
9
9
  *
10
10
  * id = myMap.addItem("foo") // ID internally generated
@@ -264,7 +264,7 @@ this._menuMap={};// Menus mapped to their IDs
264
264
  this._itemList=[];// List of Items
265
265
  this._itemMap={};// Items mapped to their IDs
266
266
  this._shown=false;// True when the ContextMenu is visible
267
- this._nextId=0;this._parentNode=cfg.parentNode||document.body;/**
267
+ this._nextId=0;this._parentNode=cfg.parentNode||document.body;this._offsetParent=this._parentNode instanceof ShadowRoot?this._parentNode.host:this._parentNode;/**
268
268
  * Subscriptions to events fired at this ContextMenu.
269
269
  * @private
270
270
  */this._eventSubs={};if(cfg.hideOnMouseDown!==false){this._parentNode.addEventListener("mousedown",function(event){if(!event.target.classList.contains("xeokit-context-menu-item")){_this2.hide();}});this._parentNode.addEventListener("touchstart",this._canvasTouchStartHandler=function(event){if(!event.target.classList.contains("xeokit-context-menu-item")){_this2.hide();}});}if(cfg.items){this.items=cfg.items;}this._hideOnAction=cfg.hideOnAction!==false;this.context=cfg.context;this.enabled=cfg.enabled!==false;this.hide();}/**
@@ -335,21 +335,21 @@ this._nextId=0;this._parentNode=cfg.parentNode||document.body;/**
335
335
  */},{key:"hide",value:function hide(){if(!this._enabled){return;}if(!this._shown){return;}this._hideAllMenus();this._shown=false;this.fire("hidden",{});}/**
336
336
  * Destroys this ````ContextMenu````.
337
337
  */},{key:"destroy",value:function destroy(){this._context=null;this._clear();if(this._id!==null){idMap.removeItem(this._id);this._id=null;}}},{key:"_clear",value:function _clear(){// Destroys DOM elements, clears menu data
338
- for(var _i3=0,len=this._menuList.length;_i3<len;_i3++){var menu=this._menuList[_i3];var menuElement=menu.menuElement;menuElement.parentElement.removeChild(menuElement);}this._itemsCfg=[];this._rootMenu=null;this._menuList=[];this._menuMap={};this._itemList=[];this._itemMap={};}},{key:"_parseItems",value:function _parseItems(itemsCfg){var _this3=this;// Parses "items" config into menu data
338
+ for(var _i3=0,len=this._menuList.length;_i3<len;_i3++){var menu=this._menuList[_i3];var menuElement=menu.menuElement;menuElement.remove();}this._itemsCfg=[];this._rootMenu=null;this._menuList=[];this._menuMap={};this._itemList=[];this._itemMap={};}},{key:"_parseItems",value:function _parseItems(itemsCfg){var _this3=this;// Parses "items" config into menu data
339
339
  var visitItems=function visitItems(itemsCfg){var menuId=_this3._getNextId();var menu=new Menu(menuId);for(var _i4=0,len=itemsCfg.length;_i4<len;_i4++){var itemsGroupCfg=itemsCfg[_i4];var group=new Group();menu.groups.push(group);var _loop=function _loop(j,lenj){var itemCfg=itemsGroupCfg[j];var subItemsCfg=itemCfg.items;var hasSubItems=subItemsCfg&&subItemsCfg.length>0;var itemId=_this3._getNextId();var getTitle=itemCfg.getTitle||function(){return itemCfg.title||"";};var doAction=itemCfg.doAction||itemCfg.callback||function(){};var getEnabled=itemCfg.getEnabled||function(){return true;};var getShown=itemCfg.getShown||function(){return true;};var item=new Item(itemId,getTitle,doAction,getEnabled,getShown);item.parentMenu=menu;group.items.push(item);if(hasSubItems){var subMenu=visitItems(subItemsCfg);item.subMenu=subMenu;subMenu.parentItem=item;}_this3._itemList.push(item);_this3._itemMap[item.id]=item;};for(var j=0,lenj=itemsGroupCfg.length;j<lenj;j++){_loop(j,lenj);}}_this3._menuList.push(menu);_this3._menuMap[menu.id]=menu;return menu;};this._rootMenu=visitItems(itemsCfg);}},{key:"_getNextId",value:function _getNextId(){// Returns a unique ID
340
340
  return"ContextMenu_"+this._id+"_"+this._nextId++;// Start ID with alpha chars to make a valid DOM element selector
341
341
  }},{key:"_createUI",value:function _createUI(){var _this4=this;// Builds DOM elements for the entire menu tree
342
342
  var visitMenu=function visitMenu(menu){_this4._createMenuUI(menu);var groups=menu.groups;for(var _i5=0,len=groups.length;_i5<len;_i5++){var group=groups[_i5];var groupItems=group.items;for(var j=0,lenj=groupItems.length;j<lenj;j++){var item=groupItems[j];var subMenu=item.subMenu;if(subMenu){visitMenu(subMenu);}}}};visitMenu(this._rootMenu);}},{key:"_createMenuUI",value:function _createMenuUI(menu){var _this5=this;// Builds DOM elements for a menu
343
343
  var groups=menu.groups;var html=[];var menuElement=document.createElement("div");menuElement.classList.add("xeokit-context-menu",menu.id);menuElement.style.zIndex=300000;menuElement.style.position="absolute";html.push('<ul>');if(groups){for(var _i6=0,len=groups.length;_i6<len;_i6++){var group=groups[_i6];var groupIdx=_i6;var groupLen=len;var groupItems=group.items;if(groupItems){for(var j=0,lenj=groupItems.length;j<lenj;j++){var item=groupItems[j];var itemSubMenu=item.subMenu;var actionTitle=item.title||"";if(itemSubMenu){html.push('<li id="'+item.id+'" class="xeokit-context-menu-item xeokit-context-menu-submenu">'+actionTitle+'</li>');if(!(groupIdx===groupLen-1||j<lenj-1)){html.push('<li id="'+item.id+'" class="xeokit-context-menu-item-separator"></li>');}}else{html.push('<li id="'+item.id+'" class="xeokit-context-menu-item">'+actionTitle+'</li>');if(!(groupIdx===groupLen-1||j<lenj-1)){html.push('<li id="'+item.id+'" class="xeokit-context-menu-item-separator"></li>');}}}}}}html.push('</ul>');var htmlString=html.join("");menuElement.innerHTML=htmlString;this._parentNode.appendChild(menuElement);menu.menuElement=menuElement;menuElement.style["border-radius"]=4+"px";menuElement.style.display='none';menuElement.style["z-index"]=300000;menuElement.style.background="white";menuElement.style.border="1px solid black";menuElement.style["box-shadow"]="0 4px 5px 0 gray";menuElement.oncontextmenu=function(e){e.preventDefault();};// Bind event handlers
344
- var self=this;var lastSubMenu=null;if(groups){for(var _i7=0,_len=groups.length;_i7<_len;_i7++){var _group=groups[_i7];var _groupItems=_group.items;if(_groupItems){var _loop2=function _loop2(_j2,_lenj){var item=_groupItems[_j2];var itemSubMenu=item.subMenu;item.itemElement=_this5._parentNode.querySelector("#".concat(item.id));if(!item.itemElement){console.error("ContextMenu item element not found: "+item.id);return"continue";}item.itemElement.addEventListener("mouseenter",function(event){event.preventDefault();var subMenu=item.subMenu;if(!subMenu){if(lastSubMenu){self._hideMenu(lastSubMenu.id);lastSubMenu=null;}return;}if(lastSubMenu&&lastSubMenu.id!==subMenu.id){self._hideMenu(lastSubMenu.id);lastSubMenu=null;}if(item.enabled===false){return;}var itemElement=item.itemElement;var subMenuElement=subMenu.menuElement;var itemRect=itemElement.getBoundingClientRect();subMenuElement.getBoundingClientRect();var subMenuWidth=200;// TODO
345
- var showOnRight=itemRect.right+subMenuWidth<window.innerWidth;var showOnLeft=itemRect.left-subMenuWidth>0;if(showOnRight)self._showMenu(subMenu.id,itemRect.right-5,itemRect.top-1);else if(showOnLeft)self._showMenu(subMenu.id,itemRect.left-subMenuWidth,itemRect.top-1);else{var spaceOnLeft=itemRect.left,spaceOnRight=window.innerWidth-itemRect.right;if(spaceOnRight>spaceOnLeft)self._showMenu(subMenu.id,itemRect.right-5-(subMenuWidth-spaceOnRight),itemRect.top-1);else self._showMenu(subMenu.id,itemRect.left-spaceOnLeft,itemRect.top-1);}lastSubMenu=subMenu;});if(!itemSubMenu){// Item without sub-menu
344
+ var self=this;var lastSubMenu=null;if(groups){for(var _i7=0,_len=groups.length;_i7<_len;_i7++){var _group=groups[_i7];var _groupItems=_group.items;if(_groupItems){var _loop2=function _loop2(_j2,_lenj){var item=_groupItems[_j2];var itemSubMenu=item.subMenu;item.itemElement=_this5._parentNode.querySelector("#".concat(item.id));if(!item.itemElement){console.error("ContextMenu item element not found: "+item.id);return"continue";}item.itemElement.addEventListener("mouseenter",function(event){event.preventDefault();var subMenu=item.subMenu;if(!subMenu){if(lastSubMenu){self._hideMenu(lastSubMenu.id);lastSubMenu=null;}return;}if(lastSubMenu&&lastSubMenu.id!==subMenu.id){self._hideMenu(lastSubMenu.id);lastSubMenu=null;}if(item.enabled===false){return;}var itemElement=item.itemElement;var subMenuElement=subMenu.menuElement;var itemRect=itemElement.getBoundingClientRect();subMenuElement.getBoundingClientRect();var offsetRect=self._offsetParent.getBoundingClientRect();var subMenuWidth=200;// TODO
345
+ var showOnRight=itemRect.right+subMenuWidth<offsetRect.right;var showOnLeft=itemRect.left-subMenuWidth>offsetRect.left;if(showOnRight)self._showMenu(subMenu.id,itemRect.right+window.scrollX-5,itemRect.top+window.scrollY-1);else if(showOnLeft)self._showMenu(subMenu.id,itemRect.left-subMenuWidth+window.scrollX,itemRect.top+window.scrollY-1);else{var spaceOnLeft=itemRect.left-offsetRect.left,spaceOnRight=offsetRect.right-itemRect.right;if(spaceOnRight>spaceOnLeft)self._showMenu(subMenu.id,itemRect.right-5-(subMenuWidth-spaceOnRight),itemRect.top+window.scrollY-1);else self._showMenu(subMenu.id,itemRect.left-spaceOnLeft,itemRect.top+window.scrollY-1);}lastSubMenu=subMenu;});if(!itemSubMenu){// Item without sub-menu
346
346
  // clicking item fires the item's action callback
347
347
  item.itemElement.addEventListener("click",function(event){event.preventDefault();if(!self._context){return;}if(item.enabled===false){return;}if(item.doAction){item.doAction(self._context);}if(_this5._hideOnAction){self.hide();}else{self._updateItemsTitles();self._updateItemsEnabledStatus();}});item.itemElement.addEventListener("mouseup",function(event){if(event.which!==3){return;}event.preventDefault();if(!self._context){return;}if(item.enabled===false){return;}if(item.doAction){item.doAction(self._context);}if(_this5._hideOnAction){self.hide();}else{self._updateItemsTitles();self._updateItemsEnabledStatus();}});item.itemElement.addEventListener("mouseenter",function(event){event.preventDefault();if(item.enabled===false){return;}if(item.doHover){item.doHover(self._context);}});}};for(var _j2=0,_lenj=_groupItems.length;_j2<_lenj;_j2++){var _ret=_loop2(_j2,_lenj);if(_ret==="continue")continue;}}}}}},{key:"_updateItemsTitles",value:function _updateItemsTitles(){// Dynamically updates the title of each Item to the result of Item#getTitle()
348
348
  if(!this._context){return;}for(var _i8=0,len=this._itemList.length;_i8<len;_i8++){var item=this._itemList[_i8];var itemElement=item.itemElement;if(!itemElement){continue;}var getShown=item.getShown;if(!getShown||!getShown(this._context)){continue;}var title=item.getTitle(this._context);if(item.subMenu){itemElement.innerText=title;}else{itemElement.innerText=title;}}}},{key:"_updateItemsEnabledStatus",value:function _updateItemsEnabledStatus(){// Enables or disables each Item, depending on the result of Item#getEnabled()
349
349
  if(!this._context){return;}for(var _i9=0,len=this._itemList.length;_i9<len;_i9++){var item=this._itemList[_i9];var itemElement=item.itemElement;if(!itemElement){continue;}var getEnabled=item.getEnabled;if(!getEnabled){continue;}var getShown=item.getShown;if(!getShown){continue;}var shown=getShown(this._context);item.shown=shown;if(!shown){itemElement.style.display="none";continue;}else{itemElement.style.display="";}var enabled=getEnabled(this._context);item.enabled=enabled;if(!enabled){itemElement.classList.add("disabled");}else{itemElement.classList.remove("disabled");}}}},{key:"_updateSubMenuInfo",value:function _updateSubMenuInfo(){if(!this._context)return;var itemElement,itemRect,subMenuElement,initialStyles,showOnLeft,subMenuWidth;this._itemList.forEach(function(item){if(item.subMenu){itemElement=item.itemElement;itemRect=itemElement.getBoundingClientRect();subMenuElement=item.subMenu.menuElement;initialStyles={visibility:subMenuElement.style.visibility,display:subMenuElement.style.display};subMenuElement.style.display="block";subMenuElement.style.visibility="hidden";subMenuWidth=item.subMenu.menuElement.getBoundingClientRect().width;subMenuElement.style.visibility=initialStyles.visibility;subMenuElement.style.display=initialStyles.display;showOnLeft=itemRect.right+subMenuWidth>window.innerWidth;itemElement.setAttribute("data-submenuposition",showOnLeft?"left":"right");}});}},{key:"_showMenu",value:function _showMenu(menuId,pageX,pageY){// Shows the given menu, at the specified page coordinates
350
350
  var menu=this._menuMap[menuId];if(!menu){console.error("Menu not found: "+menuId);return;}if(menu.shown){return;}var menuElement=menu.menuElement;if(menuElement){this._showMenuElement(menuElement,pageX,pageY);menu.shown=true;}}},{key:"_hideMenu",value:function _hideMenu(menuId){// Hides the given menu
351
351
  var menu=this._menuMap[menuId];if(!menu){console.error("Menu not found: "+menuId);return;}if(!menu.shown){return;}var menuElement=menu.menuElement;if(menuElement){this._hideMenuElement(menuElement);menu.shown=false;}}},{key:"_hideAllMenus",value:function _hideAllMenus(){for(var _i10=0,len=this._menuList.length;_i10<len;_i10++){var menu=this._menuList[_i10];this._hideMenu(menu.id);}}},{key:"_showMenuElement",value:function _showMenuElement(menuElement,pageX,pageY){// Shows the given menu element, at the specified page coordinates
352
- menuElement.style.display='block';var menuHeight=menuElement.offsetHeight;var menuWidth=menuElement.offsetWidth;if(pageY+menuHeight>window.innerHeight){pageY=window.innerHeight-menuHeight;}if(pageX+menuWidth>window.innerWidth){pageX=window.innerWidth-menuWidth;}menuElement.style.left=pageX+'px';menuElement.style.top=pageY+'px';}},{key:"_hideMenuElement",value:function _hideMenuElement(menuElement){menuElement.style.display='none';}}]);return ContextMenu;}();/**
352
+ menuElement.style.display='block';var menuHeight=menuElement.offsetHeight;var menuWidth=menuElement.offsetWidth;var offsetRect=this._offsetParent.getBoundingClientRect();var bottomContainerBorder=offsetRect.bottom+window.scrollY;var rightContainerBorder=offsetRect.right+window.scrollX;if(pageY+menuHeight>bottomContainerBorder){pageY=bottomContainerBorder-menuHeight;}if(pageX+menuWidth>rightContainerBorder){pageX=rightContainerBorder-menuWidth;}menuElement.style.left=pageX-offsetRect.left-window.scrollX+'px';menuElement.style.top=pageY-offsetRect.top-window.scrollY+'px';}},{key:"_hideMenuElement",value:function _hideMenuElement(menuElement){menuElement.style.display='none';}}]);return ContextMenu;}();/**
353
353
  * A PointerLens shows a magnified view of a {@link Viewer}'s canvas, centered at the position of the
354
354
  * mouse or touch pointer.
355
355
  *
@@ -19559,11 +19559,11 @@ var _uniquifyPositions=uniquifyPositions({positionsCompressed:geometry.positions
19559
19559
  * @param {String} [cfg.id] Optional ID, unique among all components in the parent {@link Scene}, generated automatically when omitted.
19560
19560
  * @param {Number[]} cfg.positions World-space 3D vertex positions.
19561
19561
  * @param {Number[]} [cfg.indices] Indices to connect ````positions```` into line segments. Note that these are separate line segments, not a polyline.
19562
- * @param {Number[]} [cfg.color=[0,0,0]] The color of this ````LineSet````. This is both emissive and diffuse.
19562
+ * @param {Number[]} [cfg.color=[1,1,1]] The color of this ````LineSet````. This is both emissive and diffuse.
19563
19563
  * @param {Boolean} [cfg.visible=true] Indicates whether or not this ````LineSet```` is visible.
19564
19564
  * @param {Number} [cfg.opacity=1.0] ````LineSet````'s initial opacity factor.
19565
- */function LineSet(owner){var _this92;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,LineSet);_this92=_super119.call(this,owner,cfg);_this92._positions=cfg.positions||[];if(cfg.indices){_this92._indices=cfg.indices;}else{_this92._indices=[];for(var _i487=0,len=_this92._positions.length/3-1;_i487<len;_i487+=2){_this92._indices.push(_i487);_this92._indices.push(_i487+1);}}_this92._sceneModel=new SceneModel(_assertThisInitialized(_this92),{isModel:false// Don't register in Scene.models
19566
- });_this92._sceneModel.createMesh({id:"linesMesh",primitive:"lines",positions:_this92._positions,indices:_this92._indices});_this92._sceneModel.createEntity({meshIds:["linesMesh"],visible:cfg.visible,clippable:cfg.clippable,collidable:cfg.collidable});_this92._sceneModel.finalize();_this92.scene._lineSetCreated(_assertThisInitialized(_this92));return _this92;}/**
19565
+ */function LineSet(owner){var _this92;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,LineSet);_this92=_super119.call(this,owner,cfg);_this92._positions=cfg.positions||[];if(cfg.indices){_this92._indices=cfg.indices;}else{_this92._indices=[];for(var _i487=0,len=_this92._positions.length/3-1;_i487<len;_i487+=2){_this92._indices.push(_i487);_this92._indices.push(_i487+1);}}_this92._color=cfg.color||[1,1,1];_this92._opacity=cfg.opacity||1.0;_this92._sceneModel=new SceneModel(_assertThisInitialized(_this92),{isModel:false// Don't register in Scene.models
19566
+ });_this92._sceneModel.createMesh({id:"linesMesh",primitive:"lines",positions:_this92._positions,indices:_this92._indices,color:_this92._color,opacity:_this92._opacity});_this92._sceneModel.createEntity({meshIds:["linesMesh"],visible:cfg.visible,clippable:cfg.clippable,collidable:cfg.collidable});_this92._sceneModel.finalize();_this92.scene._lineSetCreated(_assertThisInitialized(_this92));return _this92;}/**
19567
19567
  * Sets if this ````LineSet```` is visible.
19568
19568
  *
19569
19569
  * Default value is ````true````.
@@ -20868,7 +20868,8 @@ return pickResult&&pickResult.worldPos?pickResult.worldPos:snap&&tryPickWorldPos
20868
20868
  * @param {Number} [cfg.scaleCanvasResolutionFactor=0.6] The factor by which we downscale the canvas resolution whenever we interact with the Viewer.
20869
20869
  * @param {Boolean} [cfg.delayBeforeRestore=true] Whether to temporarily have a delay before restoring normal rendering after we stop interacting with the Viewer.
20870
20870
  * @param {Number} [cfg.delayBeforeRestoreSeconds=0.5] Delay in seconds before restoring normal rendering after we stop interacting with the Viewer.
20871
- */function FastNavPlugin(viewer){var _this106;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,FastNavPlugin);_this106=_super129.call(this,"FastNav",viewer);_this106._hideColorTexture=cfg.hideColorTexture!==false;_this106._hidePBR=cfg.hidePBR!==false;_this106._hideSAO=cfg.hideSAO!==false;_this106._hideEdges=cfg.hideEdges!==false;_this106._hideTransparentObjects=!!cfg.hideTransparentObjects;_this106._scaleCanvasResolution=!!cfg.scaleCanvasResolution;_this106._defaultScaleCanvasResolutionFactor=cfg.defaultScaleCanvasResolutionFactor;_this106._scaleCanvasResolutionFactor=cfg.scaleCanvasResolutionFactor||0.6;_this106._delayBeforeRestore=cfg.delayBeforeRestore!==false;_this106._delayBeforeRestoreSeconds=cfg.delayBeforeRestoreSeconds||0.5;var timer=_this106._delayBeforeRestoreSeconds*1000;var fastMode=false;var switchToLowQuality=function switchToLowQuality(){timer=_this106._delayBeforeRestoreSeconds*1000;if(!fastMode){viewer.scene._renderer.setColorTextureEnabled(!_this106._hideColorTexture);viewer.scene._renderer.setPBREnabled(!_this106._hidePBR);viewer.scene._renderer.setSAOEnabled(!_this106._hideSAO);viewer.scene._renderer.setTransparentEnabled(!_this106._hideTransparentObjects);viewer.scene._renderer.setEdgesEnabled(!_this106._hideEdges);_this106._originalCanvasResolutionScale=viewer.scene.canvas.resolutionScale;if(_this106._scaleCanvasResolution){viewer.scene.canvas.resolutionScale=_this106._scaleCanvasResolutionFactor;}else{viewer.scene.canvas.resolutionScale=_this106._defaultScaleCanvasResolutionFactor;}fastMode=true;}};var switchToHighQuality=function switchToHighQuality(){viewer.scene.canvas.resolutionScale=_this106._defaultScaleCanvasResolutionFactor||_this106._originalCanvasResolutionScale||1.0;viewer.scene._renderer.setEdgesEnabled(true);viewer.scene._renderer.setColorTextureEnabled(true);viewer.scene._renderer.setPBREnabled(true);viewer.scene._renderer.setSAOEnabled(true);viewer.scene._renderer.setTransparentEnabled(true);fastMode=false;};_this106._onCanvasBoundary=viewer.scene.canvas.on("boundary",switchToLowQuality);_this106._onCameraMatrix=viewer.scene.camera.on("matrix",switchToLowQuality);_this106._onSceneTick=viewer.scene.on("tick",function(tickEvent){if(!fastMode){return;}timer-=tickEvent.deltaTime;if(!_this106._delayBeforeRestore||timer<=0){switchToHighQuality();}});var down=false;_this106._onSceneMouseDown=viewer.scene.input.on("mousedown",function(){down=true;});_this106._onSceneMouseUp=viewer.scene.input.on("mouseup",function(){down=false;});_this106._onSceneMouseMove=viewer.scene.input.on("mousemove",function(){if(!down){return;}switchToLowQuality();});return _this106;}/**
20871
+ * @param {Function} [cfg.onMoved] Optional callback function fired during moving mode, should return the callback function that will be fired when the interaction stops.
20872
+ */function FastNavPlugin(viewer){var _this106;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,FastNavPlugin);_this106=_super129.call(this,"FastNav",viewer);_this106._hideColorTexture=cfg.hideColorTexture!==false;_this106._hidePBR=cfg.hidePBR!==false;_this106._hideSAO=cfg.hideSAO!==false;_this106._hideEdges=cfg.hideEdges!==false;_this106._hideTransparentObjects=!!cfg.hideTransparentObjects;_this106._scaleCanvasResolution=!!cfg.scaleCanvasResolution;_this106._defaultScaleCanvasResolutionFactor=cfg.defaultScaleCanvasResolutionFactor;_this106._scaleCanvasResolutionFactor=cfg.scaleCanvasResolutionFactor||0.6;_this106._delayBeforeRestore=cfg.delayBeforeRestore!==false;_this106._delayBeforeRestoreSeconds=cfg.delayBeforeRestoreSeconds||0.5;_this106._onMoved=cfg.onMoved;_this106._onStopped=null;var timer=_this106._delayBeforeRestoreSeconds*1000;var fastMode=false;var switchToLowQuality=function switchToLowQuality(){timer=_this106._delayBeforeRestoreSeconds*1000;if(!fastMode){viewer.scene._renderer.setColorTextureEnabled(!_this106._hideColorTexture);viewer.scene._renderer.setPBREnabled(!_this106._hidePBR);viewer.scene._renderer.setSAOEnabled(!_this106._hideSAO);viewer.scene._renderer.setTransparentEnabled(!_this106._hideTransparentObjects);viewer.scene._renderer.setEdgesEnabled(!_this106._hideEdges);_this106._originalCanvasResolutionScale=viewer.scene.canvas.resolutionScale;if(_this106._scaleCanvasResolution){viewer.scene.canvas.resolutionScale=_this106._scaleCanvasResolutionFactor;}else{viewer.scene.canvas.resolutionScale=_this106._defaultScaleCanvasResolutionFactor;}if(_this106._onMoved){_this106._onStopped=_this106._onMoved();}fastMode=true;}};var switchToHighQuality=function switchToHighQuality(){viewer.scene.canvas.resolutionScale=_this106._defaultScaleCanvasResolutionFactor||_this106._originalCanvasResolutionScale||1.0;viewer.scene._renderer.setEdgesEnabled(true);viewer.scene._renderer.setColorTextureEnabled(true);viewer.scene._renderer.setPBREnabled(true);viewer.scene._renderer.setSAOEnabled(true);viewer.scene._renderer.setTransparentEnabled(true);if(_this106._onStopped){_this106._onStopped();}fastMode=false;};_this106._onCanvasBoundary=viewer.scene.canvas.on("boundary",switchToLowQuality);_this106._onCameraMatrix=viewer.scene.camera.on("matrix",switchToLowQuality);_this106._onSceneTick=viewer.scene.on("tick",function(tickEvent){if(!fastMode){return;}timer-=tickEvent.deltaTime;if(!_this106._delayBeforeRestore||timer<=0){switchToHighQuality();}});var down=false;_this106._onSceneMouseDown=viewer.scene.input.on("mousedown",function(){down=true;});_this106._onSceneMouseUp=viewer.scene.input.on("mouseup",function(){down=false;});_this106._onSceneMouseMove=viewer.scene.input.on("mousemove",function(){if(!down){return;}switchToLowQuality();});return _this106;}/**
20872
20873
  * Gets whether to temporarily hide color textures whenever we interact with the Viewer.
20873
20874
  *
20874
20875
  * Default is ````true````.
@@ -23109,11 +23110,16 @@ var id=curve;curve=this.scene.components[id];if(!curve){this.error("Component no
23109
23110
  * @param {Component} owner Owner component. When destroyed, the owner will destroy this PointLight as well.
23110
23111
  * @param {*} [cfg] Skybox configuration
23111
23112
  * @param {String} [cfg.id] Optional ID, unique among all components in the parent {Scene}, generated automatically when omitted.
23112
- * @param {String} [cfg.src=null] Path to skybox texture
23113
- * @param {String} [cfg.encoding="linear"] Texture encoding format. See the {@link Texture#encoding} property for more info.
23113
+ * @param {String | String[]} [cfg.src=null] Path to skybox texture
23114
+ * @param {Number} [cfg.encoding=LinearEncoding] Texture encoding format. See the {@link Texture#encoding} property for more info.
23114
23115
  * @param {Number} [cfg.size=1000] Size of this Skybox, given as the distance from the center at ````[0,0,0]```` to each face.
23115
23116
  * @param {Boolean} [cfg.active=true] True when this Skybox is visible.
23116
- */function Skybox(owner){var _this123;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Skybox);_this123=_super145.call(this,owner,cfg);_this123._skyboxMesh=new Mesh(_assertThisInitialized(_this123),{geometry:new ReadableGeometry(_assertThisInitialized(_this123),{// Box-shaped geometry
23117
+ */function Skybox(owner){var _this123;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Skybox);_this123=_super145.call(this,owner,cfg);var useMultipleTexture=_typeof(cfg.src)==="object"&&cfg.src!==null;if(useMultipleTexture){_this123._createCombinedTexture(cfg).then(function(combinedTexture){_this123._createSkyboxMesh(cfg,combinedTexture);})["catch"](function(e){return _this123.error(e);});}else{_this123._createSkyboxMesh(cfg);}return _this123;}/**
23118
+ *
23119
+ * @private
23120
+ * @param {*} cfg
23121
+ * @param {Texture} combinedTexture
23122
+ */_createClass(Skybox,[{key:"_createSkyboxMesh",value:function _createSkyboxMesh(cfg){var combinedTexture=arguments.length>1&&arguments[1]!==undefined?arguments[1]:null;var texture=combinedTexture||new Texture(this,{src:cfg.src,flipY:true,wrapS:ClampToEdgeWrapping,wrapT:ClampToEdgeWrapping,encoding:cfg.encoding||LinearEncoding});this._skyboxMesh=new Mesh(this,{geometry:new ReadableGeometry(this,{// Box-shaped geometry
23117
23123
  primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,// v0-v1-v2-v3 front
23118
23124
  1,1,1,1,-1,1,1,-1,-1,1,1,-1,// v0-v3-v4-v5 right
23119
23125
  1,1,1,1,1,-1,-1,1,-1,-1,1,1,// v0-v5-v6-v1 top
@@ -23121,16 +23127,28 @@ primitive:"triangles",positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,// v0-v1-v2-v3 fron
23121
23127
  -1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,// v7-v4-v3-v2 bottom
23122
23128
  1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1// v4-v7-v6-v5 back
23123
23129
  ],uv:[0.5,0.6666,0.25,0.6666,0.25,0.3333,0.5,0.3333,0.5,0.6666,0.5,0.3333,0.75,0.3333,0.75,0.6666,0.5,0.6666,0.5,1,0.25,1,0.25,0.6666,0.25,0.6666,0.0,0.6666,0.0,0.3333,0.25,0.3333,0.25,0,0.50,0,0.50,0.3333,0.25,0.3333,0.75,0.3333,1.0,0.3333,1.0,0.6666,0.75,0.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),background:true,scale:[2000,2000,2000],// Overridden when we initialize the 'size' property, below
23124
- rotation:[0,-90,0],material:new PhongMaterial(_assertThisInitialized(_this123),{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:new Texture(_assertThisInitialized(_this123),{src:cfg.src,flipY:true,wrapS:"clampToEdge",wrapT:"clampToEdge",encoding:cfg.encoding||"sRGB"}),backfaces:true// Show interior faces of our skybox geometry
23130
+ rotation:[0,-90,0],material:new PhongMaterial(this,{ambient:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],emissive:[1,1,1],emissiveMap:texture,backfaces:true// Show interior faces of our skybox geometry
23125
23131
  }),// stationary: true,
23126
- visible:false,pickable:false,clippable:false,collidable:false});_this123.size=cfg.size;// Sets 'xyz' property on the Mesh's Scale transform
23127
- _this123.active=cfg.active;return _this123;}/**
23132
+ visible:false,pickable:false,clippable:false,collidable:false});this.size=cfg.size;// Sets 'xyz' property on the Mesh's Scale transform
23133
+ this.active=cfg.active;}/**
23134
+ *
23135
+ * @private
23136
+ * @param {*} cfg
23137
+ * @returns {Texture}
23138
+ */},{key:"_createCombinedTexture",value:function(){var _createCombinedTexture2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(cfg){var _cfg$src,posX,negX,posY,negY,posZ,negZ,canvas,ctx,loadImage,_yield$Promise$all,_yield$Promise$all2,imgPosX,imgNegX,imgPosY,imgNegY,imgPosZ,imgNegZ,imageSize,combinedTexture;return _regeneratorRuntime().wrap(function _callee$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:_cfg$src=_slicedToArray(cfg.src,6),posX=_cfg$src[0],negX=_cfg$src[1],posY=_cfg$src[2],negY=_cfg$src[3],posZ=_cfg$src[4],negZ=_cfg$src[5];if(!(!posX||!negX||!posY||!negY||!posZ||!negZ)){_context2.next=3;break;}throw new Error("All six skybox textures must be provided");case 3:canvas=document.createElement('canvas');ctx=canvas.getContext('2d');loadImage=function loadImage(src){return new Promise(function(resolve,reject){var img=new Image();img.crossOrigin="anonymous";img.onload=function(){return resolve(img);};img.onerror=function(){return reject(new Error("Failed to load image: ".concat(src)));};img.src=src;});};_context2.prev=6;_context2.next=9;return Promise.all([loadImage(posX),loadImage(negX),loadImage(posY),loadImage(negY),loadImage(posZ),loadImage(negZ)]);case 9:_yield$Promise$all=_context2.sent;_yield$Promise$all2=_slicedToArray(_yield$Promise$all,6);imgPosX=_yield$Promise$all2[0];imgNegX=_yield$Promise$all2[1];imgPosY=_yield$Promise$all2[2];imgNegY=_yield$Promise$all2[3];imgPosZ=_yield$Promise$all2[4];imgNegZ=_yield$Promise$all2[5];imageSize=imgPosX.width;if(!(imgNegX.width!==imageSize||imgPosY.width!==imageSize||imgNegY.width!==imageSize||imgPosZ.width!==imageSize||imgNegZ.width!==imageSize)){_context2.next=20;break;}throw new Error("All skybox textures must have the same dimensions");case 20:// Set canvas size for the Christ cross layout (3×4 grid)
23139
+ canvas.width=imageSize*4;canvas.height=imageSize*3;ctx.fillStyle='black';ctx.fillRect(0,0,canvas.width,canvas.height);ctx.drawImage(imgNegX,imageSize*0,imageSize*1,imageSize,imageSize);// -X (left)
23140
+ ctx.drawImage(imgPosX,imageSize*2,imageSize*1,imageSize,imageSize);// +X (right)
23141
+ ctx.drawImage(imgPosY,imageSize*1,imageSize*0,imageSize,imageSize);// +Y (top)
23142
+ ctx.drawImage(imgNegY,imageSize*1,imageSize*2,imageSize,imageSize);// -Y (bottom)
23143
+ ctx.drawImage(imgPosZ,imageSize*1,imageSize*1,imageSize,imageSize);// +Z (front)
23144
+ ctx.drawImage(imgNegZ,imageSize*3,imageSize*1,imageSize,imageSize);// -Z (back)
23145
+ combinedTexture=new Texture(this,{image:canvas,flipY:true,wrapS:ClampToEdgeWrapping,wrapT:ClampToEdgeWrapping,encoding:cfg.encoding||LinearEncoding});return _context2.abrupt("return",combinedTexture);case 34:_context2.prev=34;_context2.t0=_context2["catch"](6);console.error("Error creating combined skybox texture:",_context2.t0);throw _context2.t0;case 38:case"end":return _context2.stop();}}},_callee,this,[[6,34]]);}));function _createCombinedTexture(_x7){return _createCombinedTexture2.apply(this,arguments);}return _createCombinedTexture;}()/**
23128
23146
  * Sets the size of this Skybox, given as the distance from the center at [0,0,0] to each face.
23129
23147
  *
23130
23148
  * Default value is ````1000````.
23131
23149
  *
23132
23150
  * @param {Number} value The size.
23133
- */_createClass(Skybox,[{key:"size",get:/**
23151
+ */},{key:"size",get:/**
23134
23152
  * Gets the size of this Skybox, given as the distance from the center at [0,0,0] to each face.
23135
23153
  *
23136
23154
  * Default value is ````1000````.
@@ -23187,7 +23205,7 @@ var eyeTargetVec=math.subVec3(optionalTargetWorldPos,camera.eye,tempVec3a$7);var
23187
23205
  // - get the vector in which we're dollying;
23188
23206
  // - add both vectors to camera eye and look.
23189
23207
  var worldPos1=this._unproject(targetCanvasPos,tempVec4a$6);camera.ortho.scale=camera.ortho.scale-dollyDelta;camera.ortho._update();// HACK
23190
- var worldPos2=this._unproject(targetCanvasPos,tempVec4b$6);var _offset=math.subVec3(worldPos2,worldPos1,tempVec4c$1);var eyeLookMoveVec=math.mulVec3Scalar(math.normalizeVec3(math.subVec3(camera.look,camera.eye,tempVec3a$7)),-dollyDelta,tempVec3b$4);var _moveVec=math.addVec3(_offset,eyeLookMoveVec,tempVec3c$3);camera.eye=[camera.eye[0]-_moveVec[0],camera.eye[1]-_moveVec[1],camera.eye[2]-_moveVec[2]];camera.look=[camera.look[0]-_moveVec[0],camera.look[1]-_moveVec[1],camera.look[2]-_moveVec[2]];}return dolliedThroughSurface;}},{key:"_unproject",value:function _unproject(canvasPos,worldPos){var camera=this._scene.camera;var transposedProjectMat=camera.project.transposedMatrix;var Pt3=transposedProjectMat.subarray(8,12);var Pt4=transposedProjectMat.subarray(12);var D=[0,0,-1.0,1];var screenZ=math.dotVec4(D,Pt3)/math.dotVec4(D,Pt4);camera.project.unproject(canvasPos,screenZ,screenPos,viewPos,worldPos);return worldPos;}},{key:"destroy",value:function destroy(){}}]);return PanController;}();var tempVec3a$6=math.vec3();var tempVec3b$3=math.vec3();var tempVec3c$2=math.vec3();var tempVec4a$5=math.vec4();var tempVec4b$5=math.vec4();var tempVec4c=math.vec4();/** @private */var PivotController=/*#__PURE__*/function(){/**
23208
+ var worldPos2=this._unproject(targetCanvasPos,tempVec4b$6);var _offset=math.subVec3(worldPos2,worldPos1,tempVec4c$1);var eyeLookMoveVec=math.mulVec3Scalar(math.normalizeVec3(math.subVec3(camera.look,camera.eye,tempVec3a$7)),-dollyDelta,tempVec3b$4);var _moveVec=math.addVec3(_offset,eyeLookMoveVec,tempVec3c$3);camera.eye=[camera.eye[0]-_moveVec[0],camera.eye[1]-_moveVec[1],camera.eye[2]-_moveVec[2]];camera.look=[camera.look[0]-_moveVec[0],camera.look[1]-_moveVec[1],camera.look[2]-_moveVec[2]];}return dolliedThroughSurface;}},{key:"_unproject",value:function _unproject(canvasPos,worldPos){var camera=this._scene.camera;var transposedProjectMat=camera.project.transposedMatrix;var Pt3=transposedProjectMat.subarray(8,12);var Pt4=transposedProjectMat.subarray(12);var D=[0,0,-1.0,1];var screenZ=math.dotVec4(D,Pt3)/math.dotVec4(D,Pt4);camera.project.unproject(canvasPos,screenZ,screenPos,viewPos,worldPos);return worldPos;}},{key:"destroy",value:function destroy(){}}]);return PanController;}();var tempVec3a$6=math.vec3();var tempVec3b$3=math.vec3();var tempVec3c$2=math.vec3();var tempVec4a$5=math.vec4();var tempVec4b$5=math.vec4();var tempVec4c=math.vec4();var TOP_LIMIT=0.001;var BOTTOM_LIMIT=Math.PI-0.001;/** @private */var PivotController=/*#__PURE__*/function(){/**
23191
23209
  * @private
23192
23210
  */function PivotController(scene,configs){var _this124=this;_classCallCheck(this,PivotController);// Pivot math by: http://www.derschmale.com/
23193
23211
  this._scene=scene;this._configs=configs;this._pivotWorldPos=math.vec3();this._cameraOffset=math.vec3();this._azimuth=0;this._polar=0;this._radius=0;this._pivotPosSet=false;// Initially false, true as soon as _pivotWorldPos has been set to some value
@@ -23208,7 +23226,7 @@ var canvasBoundingRect=canvas._lastBoundingClientRect;if(!canvasBoundingRect||ca
23208
23226
  *
23209
23227
  */},{key:"disablePivotSphere",value:function disablePivotSphere(){this.destroyPivotSphere();this._pivotSphereEnabled=false;}/**
23210
23228
  * Begins pivoting.
23211
- */},{key:"startPivot",value:function startPivot(){if(this._cameraLookingDownwards()){this._pivoting=false;return false;}var camera=this._scene.camera;var lookat=math.lookAtMat4v(camera.eye,camera.look,camera.worldUp);math.transformPoint3(lookat,this.getPivotPos(),this._cameraOffset);var pivotPos=this.getPivotPos();this._cameraOffset[2]+=math.distVec3(camera.eye,pivotPos);lookat=math.inverseMat4(lookat);var offset=math.transformVec3(lookat,this._cameraOffset);var diff=math.vec3();math.subVec3(camera.eye,pivotPos,diff);math.addVec3(diff,offset);if(camera.zUp){var t=diff[1];diff[1]=diff[2];diff[2]=t;}this._radius=math.lenVec3(diff);this._polar=Math.acos(diff[1]/this._radius);this._azimuth=Math.atan2(diff[0],diff[2]);this._pivoting=true;}},{key:"_cameraLookingDownwards",value:function _cameraLookingDownwards(){// Returns true if angle between camera viewing direction and World-space "up" axis is too small
23229
+ */},{key:"startPivot",value:function startPivot(){var camera=this._scene.camera;var lookat=math.lookAtMat4v(camera.eye,camera.look,camera.up);math.transformPoint3(lookat,this.getPivotPos(),this._cameraOffset);var pivotPos=this.getPivotPos();this._cameraOffset[2]+=math.distVec3(camera.eye,pivotPos);lookat=math.inverseMat4(lookat);var offset=math.transformVec3(lookat,this._cameraOffset);var diff=math.vec3();math.subVec3(camera.eye,pivotPos,diff);math.addVec3(diff,offset);if(camera.zUp){var t=diff[1];diff[1]=diff[2];diff[2]=t;}this._radius=math.lenVec3(diff);this._polar=Math.acos(diff[1]/this._radius);this._azimuth=Math.atan2(diff[0],diff[2]);this._pivoting=true;}},{key:"_cameraLookingDownwards",value:function _cameraLookingDownwards(){// Returns true if angle between camera viewing direction and World-space "up" axis is too small
23212
23230
  var camera=this._scene.camera;var forwardAxis=math.normalizeVec3(math.subVec3(camera.look,camera.eye,tempVec3a$6));var rightAxis=math.cross3Vec3(forwardAxis,camera.worldUp,tempVec3b$3);var rightAxisLen=math.sqLenVec3(rightAxis);return rightAxisLen<=0.0001;}/**
23213
23231
  * Returns true if we are currently pivoting.
23214
23232
  *
@@ -23232,7 +23250,11 @@ var camera=this._scene.camera;var forwardAxis=math.normalizeVec3(math.subVec3(ca
23232
23250
  *
23233
23251
  * @param {Number} yawInc Yaw rotation increment.
23234
23252
  * @param {Number} pitchInc Pitch rotation increment.
23235
- */},{key:"continuePivot",value:function continuePivot(yawInc,pitchInc){if(!this._pivoting){return;}if(yawInc===0&&pitchInc===0){return;}var camera=this._scene.camera;var dx=-yawInc;var dy=-pitchInc;if(camera.worldUp[2]===1){dx=-dx;}this._azimuth+=-dx*.01;this._polar+=dy*.01;this._polar=math.clamp(this._polar,.001,Math.PI-.001);var pos=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(camera.worldUp[2]===1){var t=pos[1];pos[1]=pos[2];pos[2]=t;}// Preserve the eye->look distance, since in xeokit "look" is the point-of-interest, not the direction vector.
23253
+ */},{key:"continuePivot",value:function continuePivot(yawInc,pitchInc){if(!this._pivoting){return;}if(yawInc===0&&pitchInc===0){return;}var camera=this._scene.camera;var dx=-yawInc;var dy=-pitchInc;if(camera.worldUp[2]===1){dx=-dx;}this._azimuth+=-dx*.01;var isMovingUp=dy<0;var isMovingDown=dy>0;// Track if we're at limits - only check if we're very close to the limit
23254
+ var atTopLimit=Math.abs(this._polar-TOP_LIMIT)<0.005;var atBottomLimit=Math.abs(this._polar-BOTTOM_LIMIT)<0.005;var newPolar=this._polar+dy*.01;// Case 1: At top limit and trying to go beyond
23255
+ if(atTopLimit&&isMovingUp){newPolar=TOP_LIMIT;}// Case 2: At bottom limit and trying to go beyond
23256
+ else if(atBottomLimit&&isMovingDown){newPolar=BOTTOM_LIMIT;}// Case 3: Normal rotation or moving away from a limit
23257
+ else{newPolar=math.clamp(newPolar,TOP_LIMIT,BOTTOM_LIMIT);}this._polar=newPolar;var pos=[this._radius*Math.sin(this._polar)*Math.sin(this._azimuth),this._radius*Math.cos(this._polar),this._radius*Math.sin(this._polar)*Math.cos(this._azimuth)];if(camera.worldUp[2]===1){var t=pos[1];pos[1]=pos[2];pos[2]=t;}// Preserve the eye->look distance, since in xeokit "look" is the point-of-interest, not the direction vector.
23236
23258
  var eyeLookLen=math.lenVec3(math.subVec3(camera.look,camera.eye,math.vec3()));var pivotPos=this.getPivotPos();math.addVec3(pos,pivotPos);var lookat=math.lookAtMat4v(pos,pivotPos,camera.worldUp);lookat=math.inverseMat4(lookat);var offset=math.transformVec3(lookat,this._cameraOffset);lookat[12]-=offset[0];lookat[13]-=offset[1];lookat[14]-=offset[2];var zAxis=[lookat[8],lookat[9],lookat[10]];camera.eye=[lookat[12],lookat[13],lookat[14]];math.subVec3(camera.eye,math.mulVec3Scalar(zAxis,eyeLookLen),camera.look);camera.up=[lookat[4],lookat[5],lookat[6]];this.showPivot();}/**
23237
23259
  * Shows the pivot position.
23238
23260
  *
@@ -25443,7 +25465,7 @@ doublePickFlyTo:true});this._plugins=[];/**
25443
25465
  * @param {Boolean} [params.includeGizmos=false] When true, will include gizmos like {@link SectionPlane} in the snapshot.
25444
25466
  * @returns {String} String-encoded image data URI.
25445
25467
  */},{key:"getSnapshot",value:function getSnapshot(){var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var needFinishSnapshot=!this._snapshotBegun;var resize=params.width!==undefined&&params.height!==undefined;var canvas=this.scene.canvas.canvas;var saveWidth=canvas.clientWidth;var saveHeight=canvas.clientHeight;var width=params.width?Math.floor(params.width):canvas.width;var height=params.height?Math.floor(params.height):canvas.height;if(resize){canvas.width=width;canvas.height=height;}if(!this._snapshotBegun){this.beginSnapshot({width:width,height:height});}if(!params.includeGizmos){this.sendToPlugins("snapshotStarting");// Tells plugins to hide things that shouldn't be in snapshot
25446
- }var captured={};for(var _i530=0,len=this._plugins.length;_i530<len;_i530++){var plugin=this._plugins[_i530];if(plugin.getContainerElement){var container=plugin.getContainerElement();if(container!==document.body){if(!captured[container.id]){captured[container.id]=true;html2canvas(container).then(function(canvas){document.body.appendChild(canvas);});}}}}// firing "rendering" is necessary to trigger DTX{Lines,Triangles}Layer::_uploadDeferredFlags
25468
+ }// firing "rendering" is necessary to trigger DTX{Lines,Triangles}Layer::_uploadDeferredFlags
25447
25469
  this.scene.fire("rendering",{},true);this.scene._renderer.renderSnapshot();var imageDataURI=this.scene._renderer.readSnapshot(params);if(resize){canvas.width=saveWidth;canvas.height=saveHeight;this.scene.glRedraw();}if(!params.includeGizmos){this.sendToPlugins("snapshotFinished");}if(needFinishSnapshot){this.endSnapshot();}return imageDataURI;}/**
25448
25470
  * Gets a snapshot of this Viewer's {@link Scene} as a Base64-encoded image which includes
25449
25471
  * the HTML elements created by various plugins.
@@ -25469,7 +25491,7 @@ this.scene.fire("rendering",{},true);this.scene._renderer.renderSnapshot();var i
25469
25491
  * @param {String} [params.format="jpeg"] Desired format; "jpeg", "png" or "bmp".
25470
25492
  * @param {Boolean} [params.includeGizmos=false] When true, will include gizmos like {@link SectionPlane} in the snapshot.
25471
25493
  * @returns {Promise} Promise which returns a string-encoded image data URI.
25472
- */},{key:"getSnapshotWithPlugins",value:function(){var _getSnapshotWithPlugins=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(){var _style$sheet;var params,needFinishSnapshot,resize,canvas,saveWidth,saveHeight,snapshotWidth,snapshotHeight,snapshotCanvas,pluginToCapture,pluginContainerElements,_i531,len,plugin,containerElement,style,_i532,_len99,_containerElement,format,_args=arguments;return _regeneratorRuntime().wrap(function _callee$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:params=_args.length>0&&_args[0]!==undefined?_args[0]:{};// We use gl.readPixels to get the WebGL canvas snapshot in a new
25494
+ */},{key:"getSnapshotWithPlugins",value:function(){var _getSnapshotWithPlugins=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(){var _style$sheet;var params,needFinishSnapshot,resize,canvas,saveWidth,saveHeight,snapshotWidth,snapshotHeight,snapshotCanvas,pluginToCapture,pluginContainerElements,_i530,len,plugin,containerElement,style,_i531,_len99,_containerElement,format,_args2=arguments;return _regeneratorRuntime().wrap(function _callee2$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:params=_args2.length>0&&_args2[0]!==undefined?_args2[0]:{};// We use gl.readPixels to get the WebGL canvas snapshot in a new
25473
25495
  // HTMLCanvas element, scaled to the target snapshot size, then
25474
25496
  // use html2canvas to render each plugin's container element into
25475
25497
  // that HTMLCanvas. Finally, we save the HTMLCanvas to a bitmap.
@@ -25479,20 +25501,20 @@ this.scene.fire("rendering",{},true);this.scene._renderer.renderSnapshot();var i
25479
25501
  // canvas ourselves, in order to allow the Viewer to render the
25480
25502
  // right amount of pixels, for a sharper image.
25481
25503
  needFinishSnapshot=!this._snapshotBegun;resize=params.width!==undefined&&params.height!==undefined;canvas=this.scene.canvas.canvas;saveWidth=canvas.clientWidth;saveHeight=canvas.clientHeight;snapshotWidth=params.width?Math.floor(params.width):canvas.width;snapshotHeight=params.height?Math.floor(params.height):canvas.height;if(resize){canvas.width=snapshotWidth;canvas.height=snapshotHeight;}if(!this._snapshotBegun){this.beginSnapshot();}if(!params.includeGizmos){this.sendToPlugins("snapshotStarting");// Tells plugins to hide things that shouldn't be in snapshot
25482
- }this.scene._renderer.renderSnapshot();snapshotCanvas=this.scene._renderer.readSnapshotAsCanvas();if(resize){canvas.width=saveWidth;canvas.height=saveHeight;this.scene.glRedraw();}pluginToCapture={};pluginContainerElements=[];for(_i531=0,len=this._plugins.length;_i531<len;_i531++){// Find plugin container elements
25483
- plugin=this._plugins[_i531];if(plugin.getContainerElement){containerElement=plugin.getContainerElement();if(containerElement!==document.body){if(!pluginToCapture[containerElement.id]){pluginToCapture[containerElement.id]=true;pluginContainerElements.push(containerElement);}}}}// Added to fix label's text offset in an html2canvas capture (See XEOK-151)
25504
+ }this.scene._renderer.renderSnapshot();snapshotCanvas=this.scene._renderer.readSnapshotAsCanvas();if(resize){canvas.width=saveWidth;canvas.height=saveHeight;this.scene.glRedraw();}pluginToCapture={};pluginContainerElements=[];for(_i530=0,len=this._plugins.length;_i530<len;_i530++){// Find plugin container elements
25505
+ plugin=this._plugins[_i530];if(plugin.getContainerElement){containerElement=plugin.getContainerElement();if(containerElement!==document.body){if(!pluginToCapture[containerElement.id]){pluginToCapture[containerElement.id]=true;pluginContainerElements.push(containerElement);}}}}// Added to fix label's text offset in an html2canvas capture (See XEOK-151)
25484
25506
  // based on https://github.com/niklasvh/html2canvas/issues/2775#issuecomment-1316356991
25485
- style=document.createElement('style');document.head.appendChild(style);(_style$sheet=style.sheet)===null||_style$sheet===void 0?void 0:_style$sheet.insertRule('body > div:last-child img { display: inline-block; }');_i532=0,_len99=pluginContainerElements.length;case 21:if(!(_i532<_len99)){_context2.next=29;break;}_containerElement=pluginContainerElements[_i532];_context2.next=25;return html2canvas(_containerElement,{canvas:snapshotCanvas,backgroundColor:null,scale:snapshotCanvas.width/_containerElement.clientWidth});case 25:// Reverts translation and scaling applied to the snapshotCanvas's context
25507
+ style=document.createElement('style');document.head.appendChild(style);(_style$sheet=style.sheet)===null||_style$sheet===void 0?void 0:_style$sheet.insertRule('body > div:last-child img { display: inline-block; }');_i531=0,_len99=pluginContainerElements.length;case 21:if(!(_i531<_len99)){_context3.next=29;break;}_containerElement=pluginContainerElements[_i531];_context3.next=25;return html2canvas(_containerElement,{canvas:snapshotCanvas,backgroundColor:null,scale:snapshotCanvas.width/_containerElement.clientWidth});case 25:// Reverts translation and scaling applied to the snapshotCanvas's context
25486
25508
  // by the html2canvas call (inside the ForeignObjectRenderer's constructor)
25487
25509
  // (implemented to compensate XCD-153 issue)
25488
- snapshotCanvas.getContext("2d").resetTransform();case 26:_i532++;_context2.next=21;break;case 29:style.remove();if(!params.includeGizmos){this.sendToPlugins("snapshotFinished");}if(needFinishSnapshot){this.endSnapshot();}format=params.format||"png";if(format!=="jpeg"&&format!=="png"&&format!=="bmp"){console.error("Unsupported image format: '"+format+"' - supported types are 'jpeg', 'bmp' and 'png' - defaulting to 'png'");format="png";}if(!params.includeGizmos){this.sendToPlugins("snapshotFinished");}if(needFinishSnapshot){this.endSnapshot();}return _context2.abrupt("return",snapshotCanvas.toDataURL("image/".concat(format)));case 37:case"end":return _context2.stop();}}},_callee,this);}));function getSnapshotWithPlugins(){return _getSnapshotWithPlugins.apply(this,arguments);}return getSnapshotWithPlugins;}()/**
25510
+ snapshotCanvas.getContext("2d").resetTransform();case 26:_i531++;_context3.next=21;break;case 29:style.remove();if(!params.includeGizmos){this.sendToPlugins("snapshotFinished");}if(needFinishSnapshot){this.endSnapshot();}format=params.format||"png";if(format!=="jpeg"&&format!=="png"&&format!=="bmp"){console.error("Unsupported image format: '"+format+"' - supported types are 'jpeg', 'bmp' and 'png' - defaulting to 'png'");format="png";}if(!params.includeGizmos){this.sendToPlugins("snapshotFinished");}if(needFinishSnapshot){this.endSnapshot();}return _context3.abrupt("return",snapshotCanvas.toDataURL("image/".concat(format)));case 37:case"end":return _context3.stop();}}},_callee2,this);}));function getSnapshotWithPlugins(){return _getSnapshotWithPlugins.apply(this,arguments);}return getSnapshotWithPlugins;}()/**
25489
25511
  * Exits snapshot mode.
25490
25512
  *
25491
25513
  * Switches rendering back to the main canvas.
25492
25514
  *
25493
25515
  */},{key:"endSnapshot",value:function endSnapshot(){if(!this._snapshotBegun){return;}this.scene._renderer.endSnapshot();this.scene._renderer.render({force:true});this._snapshotBegun=false;}/** Destroys this Viewer.
25494
25516
  */},{key:"destroy",value:function destroy(){var plugins=this._plugins.slice();// Array will modify as we delete plugins
25495
- for(var _i533=0,len=plugins.length;_i533<len;_i533++){var plugin=plugins[_i533];plugin.destroy();}this.scene.destroy();}}]);return Viewer;}();// loaders.gl
25517
+ for(var _i532=0,len=plugins.length;_i532<len;_i532++){var plugin=plugins[_i532];plugin.destroy();}this.scene.destroy();}}]);return Viewer;}();// loaders.gl
25496
25518
  // SPDX-License-Identifier: MIT
25497
25519
  // Copyright (c) vis.gl contributors
25498
25520
  /**
@@ -25502,10 +25524,10 @@ for(var _i533=0,len=plugins.length;_i533<len;_i533++){var plugin=plugins[_i533];
25502
25524
  * @param options
25503
25525
  * @param context
25504
25526
  */ // implementation signature
25505
- function parseFromContext(_x7,_x8,_x9,_x10){return _parseFromContext.apply(this,arguments);}/**
25527
+ function parseFromContext(_x8,_x9,_x10,_x11){return _parseFromContext.apply(this,arguments);}/**
25506
25528
  * Throws an `Error` with the optional `message` if `condition` is falsy
25507
25529
  * @note Replacement for the external assert method to reduce bundle size
25508
- */function _parseFromContext(){_parseFromContext=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee19(data,loaders,options,context){return _regeneratorRuntime().wrap(function _callee19$(_context23){while(1){switch(_context23.prev=_context23.next){case 0:return _context23.abrupt("return",context._parse(data,loaders,options,context));case 1:case"end":return _context23.stop();}}},_callee19);}));return _parseFromContext.apply(this,arguments);}function assert$4(condition,message){if(!condition){throw new Error(message||'loader assertion failed.');}}// Purpose: include this in your module to avoid
25530
+ */function _parseFromContext(){_parseFromContext=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee20(data,loaders,options,context){return _regeneratorRuntime().wrap(function _callee20$(_context24){while(1){switch(_context24.prev=_context24.next){case 0:return _context24.abrupt("return",context._parse(data,loaders,options,context));case 1:case"end":return _context24.stop();}}},_callee20);}));return _parseFromContext.apply(this,arguments);}function assert$4(condition,message){if(!condition){throw new Error(message||'loader assertion failed.');}}// Purpose: include this in your module to avoid
25509
25531
  /** true if running in a browser */var isBrowser$2=// @ts-ignore process does not exist on browser
25510
25532
  Boolean((typeof process==="undefined"?"undefined":_typeof(process))!=='object'||String(process)!=='[object process]'||process.browser);// Extract node major version
25511
25533
  var matches$1=typeof process!=='undefined'&&process.version&&/v([0-9]*)/.exec(process.version);/** Major Node version (as a number) */matches$1&&parseFloat(matches$1[1])||0;// Do not name these variables the same as the global objects - will break bundling
@@ -25611,7 +25633,7 @@ function createLog(){var log=new Log({id:'loaders.gl'});globalThis.loaders=globa
25611
25633
  * @param newOptions
25612
25634
  * @returns
25613
25635
  */function mergeLoaderOptions(baseOptions,newOptions){return mergeOptionsRecursively(baseOptions||{},newOptions);}function mergeOptionsRecursively(baseOptions,newOptions){var level=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;// Sanity check (jest test runner overwrites the console object which can lead to infinite recursion)
25614
- if(level>3){return newOptions;}var options=_objectSpread({},baseOptions);for(var _i534=0,_Object$entries4=Object.entries(newOptions);_i534<_Object$entries4.length;_i534++){var _Object$entries4$_i=_slicedToArray(_Object$entries4[_i534],2),key=_Object$entries4$_i[0],newValue=_Object$entries4$_i[1];if(newValue&&_typeof(newValue)==='object'&&!Array.isArray(newValue)){options[key]=mergeOptionsRecursively(options[key]||{},newOptions[key],level+1);// Object.assign(options[key] as object, newOptions[key]);
25636
+ if(level>3){return newOptions;}var options=_objectSpread({},baseOptions);for(var _i533=0,_Object$entries4=Object.entries(newOptions);_i533<_Object$entries4.length;_i533++){var _Object$entries4$_i=_slicedToArray(_Object$entries4[_i533],2),key=_Object$entries4$_i[0],newValue=_Object$entries4$_i[1];if(newValue&&_typeof(newValue)==='object'&&!Array.isArray(newValue)){options[key]=mergeOptionsRecursively(options[key]||{},newOptions[key],level+1);// Object.assign(options[key] as object, newOptions[key]);
25615
25637
  }else{options[key]=newOptions[key];}}return options;}// loaders.gl
25616
25638
  /**
25617
25639
  * Register application-imported modules
@@ -25746,22 +25768,22 @@ _this129.onError(error);});worker.on('exit',function(code){// console.error('exi
25746
25768
  * Terminates all workers in the pool
25747
25769
  * @note Can free up significant memory
25748
25770
  */_createClass(WorkerPool,[{key:"destroy",value:function destroy(){// Destroy idle workers, active Workers will be destroyed on completion
25749
- this.idleQueue.forEach(function(worker){return worker.destroy();});this.isDestroyed=true;}},{key:"setProps",value:function setProps(props){this.props=_objectSpread(_objectSpread({},this.props),props);if(props.name!==undefined){this.name=props.name;}if(props.maxConcurrency!==undefined){this.maxConcurrency=props.maxConcurrency;}if(props.maxMobileConcurrency!==undefined){this.maxMobileConcurrency=props.maxMobileConcurrency;}if(props.reuseWorkers!==undefined){this.reuseWorkers=props.reuseWorkers;}if(props.onDebug!==undefined){this.onDebug=props.onDebug;}}},{key:"startJob",value:function(){var _startJob=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name){var _this130=this;var onMessage,onError,startPromise,_args2=arguments;return _regeneratorRuntime().wrap(function _callee2$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:onMessage=_args2.length>1&&_args2[1]!==undefined?_args2[1]:function(job,type,data){return job.done(data);};onError=_args2.length>2&&_args2[2]!==undefined?_args2[2]:function(job,error){return job.error(error);};// Promise resolves when thread starts working on this job
25771
+ this.idleQueue.forEach(function(worker){return worker.destroy();});this.isDestroyed=true;}},{key:"setProps",value:function setProps(props){this.props=_objectSpread(_objectSpread({},this.props),props);if(props.name!==undefined){this.name=props.name;}if(props.maxConcurrency!==undefined){this.maxConcurrency=props.maxConcurrency;}if(props.maxMobileConcurrency!==undefined){this.maxMobileConcurrency=props.maxMobileConcurrency;}if(props.reuseWorkers!==undefined){this.reuseWorkers=props.reuseWorkers;}if(props.onDebug!==undefined){this.onDebug=props.onDebug;}}},{key:"startJob",value:function(){var _startJob=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(name){var _this130=this;var onMessage,onError,startPromise,_args3=arguments;return _regeneratorRuntime().wrap(function _callee3$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:onMessage=_args3.length>1&&_args3[1]!==undefined?_args3[1]:function(job,type,data){return job.done(data);};onError=_args3.length>2&&_args3[2]!==undefined?_args3[2]:function(job,error){return job.error(error);};// Promise resolves when thread starts working on this job
25750
25772
  startPromise=new Promise(function(onStart){// Promise resolves when thread completes or fails working on this job
25751
25773
  _this130.jobQueue.push({name:name,onMessage:onMessage,onError:onError,onStart:onStart});return _this130;});this._startQueuedJob();// eslint-disable-line @typescript-eslint/no-floating-promises
25752
- _context3.next=6;return startPromise;case 6:return _context3.abrupt("return",_context3.sent);case 7:case"end":return _context3.stop();}}},_callee2,this);}));function startJob(_x11){return _startJob.apply(this,arguments);}return startJob;}()// PRIVATE
25774
+ _context4.next=6;return startPromise;case 6:return _context4.abrupt("return",_context4.sent);case 7:case"end":return _context4.stop();}}},_callee3,this);}));function startJob(_x12){return _startJob.apply(this,arguments);}return startJob;}()// PRIVATE
25753
25775
  /**
25754
25776
  * Starts first queued job if worker is available or can be created
25755
25777
  * Called when job is started and whenever a worker returns to the idleQueue
25756
- */},{key:"_startQueuedJob",value:function(){var _startQueuedJob2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(){var workerThread,queuedJob,job;return _regeneratorRuntime().wrap(function _callee3$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:if(this.jobQueue.length){_context4.next=2;break;}return _context4.abrupt("return");case 2:workerThread=this._getAvailableWorker();if(workerThread){_context4.next=5;break;}return _context4.abrupt("return");case 5:// We have a worker, dequeue and start the job
25757
- queuedJob=this.jobQueue.shift();if(!queuedJob){_context4.next=23;break;}// Emit a debug event
25778
+ */},{key:"_startQueuedJob",value:function(){var _startQueuedJob2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(){var workerThread,queuedJob,job;return _regeneratorRuntime().wrap(function _callee4$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:if(this.jobQueue.length){_context5.next=2;break;}return _context5.abrupt("return");case 2:workerThread=this._getAvailableWorker();if(workerThread){_context5.next=5;break;}return _context5.abrupt("return");case 5:// We have a worker, dequeue and start the job
25779
+ queuedJob=this.jobQueue.shift();if(!queuedJob){_context5.next=23;break;}// Emit a debug event
25758
25780
  // @ts-ignore
25759
25781
  this.onDebug({message:'Starting job',name:queuedJob.name,workerThread:workerThread,backlog:this.jobQueue.length});// Create a worker job to let the app access thread and manage job completion
25760
25782
  job=new WorkerJob(queuedJob.name,workerThread);// Set the worker thread's message handlers
25761
25783
  workerThread.onMessage=function(data){return queuedJob.onMessage(job,data.type,data.payload);};workerThread.onError=function(error){return queuedJob.onError(job,error);};// Resolve the start promise so that the app can start sending messages to worker
25762
25784
  queuedJob.onStart(job);// Wait for the app to signal that the job is complete, then return worker to queue
25763
- _context4.prev=12;_context4.next=15;return job.result;case 15:_context4.next=20;break;case 17:_context4.prev=17;_context4.t0=_context4["catch"](12);// eslint-disable-next-line no-console
25764
- console.error("Worker exception: ".concat(_context4.t0));case 20:_context4.prev=20;this.returnWorkerToQueue(workerThread);return _context4.finish(20);case 23:case"end":return _context4.stop();}}},_callee3,this,[[12,17,20,23]]);}));function _startQueuedJob(){return _startQueuedJob2.apply(this,arguments);}return _startQueuedJob;}()/**
25785
+ _context5.prev=12;_context5.next=15;return job.result;case 15:_context5.next=20;break;case 17:_context5.prev=17;_context5.t0=_context5["catch"](12);// eslint-disable-next-line no-console
25786
+ console.error("Worker exception: ".concat(_context5.t0));case 20:_context5.prev=20;this.returnWorkerToQueue(workerThread);return _context5.finish(20);case 23:case"end":return _context5.stop();}}},_callee4,this,[[12,17,20,23]]);}));function _startQueuedJob(){return _startQueuedJob2.apply(this,arguments);}return _startQueuedJob;}()/**
25765
25787
  * Returns a worker to the idle queue
25766
25788
  * Destroys the worker if
25767
25789
  * - pool is destroyed
@@ -25851,17 +25873,17 @@ var loadLibraryPromises={};// promises
25851
25873
  * @param libraryUrl
25852
25874
  * @param moduleName
25853
25875
  * @param options
25854
- */function loadLibrary(_x12){return _loadLibrary.apply(this,arguments);}// TODO - sort out how to resolve paths for main/worker and dev/prod
25855
- function _loadLibrary(){_loadLibrary=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee20(libraryUrl){var moduleName,options,libraryName,_args23=arguments;return _regeneratorRuntime().wrap(function _callee20$(_context24){while(1){switch(_context24.prev=_context24.next){case 0:moduleName=_args23.length>1&&_args23[1]!==undefined?_args23[1]:null;options=_args23.length>2&&_args23[2]!==undefined?_args23[2]:{};libraryName=_args23.length>3&&_args23[3]!==undefined?_args23[3]:null;if(moduleName){libraryUrl=getLibraryUrl(libraryUrl,moduleName,options,libraryName);}// Ensure libraries are only loaded once
25876
+ */function loadLibrary(_x13){return _loadLibrary.apply(this,arguments);}// TODO - sort out how to resolve paths for main/worker and dev/prod
25877
+ function _loadLibrary(){_loadLibrary=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee21(libraryUrl){var moduleName,options,libraryName,_args24=arguments;return _regeneratorRuntime().wrap(function _callee21$(_context25){while(1){switch(_context25.prev=_context25.next){case 0:moduleName=_args24.length>1&&_args24[1]!==undefined?_args24[1]:null;options=_args24.length>2&&_args24[2]!==undefined?_args24[2]:{};libraryName=_args24.length>3&&_args24[3]!==undefined?_args24[3]:null;if(moduleName){libraryUrl=getLibraryUrl(libraryUrl,moduleName,options,libraryName);}// Ensure libraries are only loaded once
25856
25878
  loadLibraryPromises[libraryUrl]=// eslint-disable-next-line @typescript-eslint/no-misused-promises
25857
- loadLibraryPromises[libraryUrl]||loadLibraryFromFile(libraryUrl);_context24.next=7;return loadLibraryPromises[libraryUrl];case 7:return _context24.abrupt("return",_context24.sent);case 8:case"end":return _context24.stop();}}},_callee20);}));return _loadLibrary.apply(this,arguments);}function getLibraryUrl(library,moduleName){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var libraryName=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;// Check if already a URL
25879
+ loadLibraryPromises[libraryUrl]||loadLibraryFromFile(libraryUrl);_context25.next=7;return loadLibraryPromises[libraryUrl];case 7:return _context25.abrupt("return",_context25.sent);case 8:case"end":return _context25.stop();}}},_callee21);}));return _loadLibrary.apply(this,arguments);}function getLibraryUrl(library,moduleName){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var libraryName=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;// Check if already a URL
25858
25880
  if(!options.useLocalLibraries&&library.startsWith('http')){return library;}libraryName=libraryName||library;// Allow application to import and supply libraries through `options.modules`
25859
25881
  // TODO - See js-module-utils in loader-utils
25860
25882
  var modules=options.modules||{};if(modules[libraryName]){return modules[libraryName];}// Load from local files, not from CDN scripts in Node.js
25861
25883
  // TODO - needs to locate the modules directory when installed!
25862
25884
  if(!isBrowser){return"modules/".concat(moduleName,"/dist/libs/").concat(libraryName);}// In browser, load from external scripts
25863
25885
  if(options.CDN){assert$2(options.CDN.startsWith('http'));return"".concat(options.CDN,"/").concat(moduleName,"@").concat(VERSION$5,"/dist/libs/").concat(libraryName);}// TODO - loading inside workers requires paths relative to worker script location...
25864
- if(isWorker){return"../src/libs/".concat(libraryName);}return"modules/".concat(moduleName,"/src/libs/").concat(libraryName);}function loadLibraryFromFile(_x13){return _loadLibraryFromFile.apply(this,arguments);}/*
25886
+ if(isWorker){return"../src/libs/".concat(libraryName);}return"modules/".concat(moduleName,"/src/libs/").concat(libraryName);}function loadLibraryFromFile(_x14){return _loadLibraryFromFile.apply(this,arguments);}/*
25865
25887
  async function loadScriptFromFile(libraryUrl) {
25866
25888
  const script = document.createElement('script');
25867
25889
  script.src = libraryUrl;
@@ -25877,8 +25899,8 @@ async function loadScriptFromFile(libraryUrl) {
25877
25899
  // - Potentially bypasses CORS
25878
25900
  // Upside is that this separates fetching and parsing
25879
25901
  // we could create a`LibraryLoader` or`ModuleLoader`
25880
- function _loadLibraryFromFile(){_loadLibraryFromFile=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee21(libraryUrl){var _ref36,requireFromFile,scriptSource;return _regeneratorRuntime().wrap(function _callee21$(_context25){while(1){switch(_context25.prev=_context25.next){case 0:if(!libraryUrl.endsWith('wasm')){_context25.next=4;break;}_context25.next=3;return loadAsArrayBuffer(libraryUrl);case 3:return _context25.abrupt("return",_context25.sent);case 4:if(isBrowser){_context25.next=16;break;}_context25.prev=5;_ref36=globalThis.loaders||{},requireFromFile=_ref36.requireFromFile;_context25.next=9;return requireFromFile===null||requireFromFile===void 0?void 0:requireFromFile(libraryUrl);case 9:return _context25.abrupt("return",_context25.sent);case 12:_context25.prev=12;_context25.t0=_context25["catch"](5);console.error(_context25.t0);// eslint-disable-line no-console
25881
- return _context25.abrupt("return",null);case 16:if(!isWorker){_context25.next=18;break;}return _context25.abrupt("return",importScripts(libraryUrl));case 18:_context25.next=20;return loadAsText(libraryUrl);case 20:scriptSource=_context25.sent;return _context25.abrupt("return",loadLibraryFromString(scriptSource,libraryUrl));case 22:case"end":return _context25.stop();}}},_callee21,null,[[5,12]]);}));return _loadLibraryFromFile.apply(this,arguments);}function loadLibraryFromString(scriptSource,id){if(!isBrowser){var _ref16=globalThis.loaders||{},requireFromString=_ref16.requireFromString;return requireFromString===null||requireFromString===void 0?void 0:requireFromString(scriptSource,id);}if(isWorker){// Use lvalue trick to make eval run in global scope
25902
+ function _loadLibraryFromFile(){_loadLibraryFromFile=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee22(libraryUrl){var _ref36,requireFromFile,scriptSource;return _regeneratorRuntime().wrap(function _callee22$(_context26){while(1){switch(_context26.prev=_context26.next){case 0:if(!libraryUrl.endsWith('wasm')){_context26.next=4;break;}_context26.next=3;return loadAsArrayBuffer(libraryUrl);case 3:return _context26.abrupt("return",_context26.sent);case 4:if(isBrowser){_context26.next=16;break;}_context26.prev=5;_ref36=globalThis.loaders||{},requireFromFile=_ref36.requireFromFile;_context26.next=9;return requireFromFile===null||requireFromFile===void 0?void 0:requireFromFile(libraryUrl);case 9:return _context26.abrupt("return",_context26.sent);case 12:_context26.prev=12;_context26.t0=_context26["catch"](5);console.error(_context26.t0);// eslint-disable-line no-console
25903
+ return _context26.abrupt("return",null);case 16:if(!isWorker){_context26.next=18;break;}return _context26.abrupt("return",importScripts(libraryUrl));case 18:_context26.next=20;return loadAsText(libraryUrl);case 20:scriptSource=_context26.sent;return _context26.abrupt("return",loadLibraryFromString(scriptSource,libraryUrl));case 22:case"end":return _context26.stop();}}},_callee22,null,[[5,12]]);}));return _loadLibraryFromFile.apply(this,arguments);}function loadLibraryFromString(scriptSource,id){if(!isBrowser){var _ref16=globalThis.loaders||{},requireFromString=_ref16.requireFromString;return requireFromString===null||requireFromString===void 0?void 0:requireFromString(scriptSource,id);}if(isWorker){// Use lvalue trick to make eval run in global scope
25882
25904
  eval.call(globalThis,scriptSource);// eslint-disable-line no-eval
25883
25905
  // https://stackoverflow.com/questions/9107240/1-evalthis-vs-evalthis-in-javascript
25884
25906
  // http://perfectionkills.com/global-eval-what-are-the-options/
@@ -25896,31 +25918,31 @@ function combineWorkerWithLibrary(worker, jsContent) {
25896
25918
  ].join('\n');
25897
25919
  this.workerSourceURL = URL.createObjectURL(new Blob([body]));
25898
25920
  }
25899
- */function loadAsArrayBuffer(_x14){return _loadAsArrayBuffer.apply(this,arguments);}/**
25921
+ */function loadAsArrayBuffer(_x15){return _loadAsArrayBuffer.apply(this,arguments);}/**
25900
25922
  * Load a file from local file system
25901
25923
  * @param filename
25902
25924
  * @returns
25903
- */function _loadAsArrayBuffer(){_loadAsArrayBuffer=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee22(url){var _ref37,readFileAsArrayBuffer,response;return _regeneratorRuntime().wrap(function _callee22$(_context26){while(1){switch(_context26.prev=_context26.next){case 0:_ref37=globalThis.loaders||{},readFileAsArrayBuffer=_ref37.readFileAsArrayBuffer;if(!(isBrowser||!readFileAsArrayBuffer||url.startsWith('http'))){_context26.next=8;break;}_context26.next=4;return fetch(url);case 4:response=_context26.sent;_context26.next=7;return response.arrayBuffer();case 7:return _context26.abrupt("return",_context26.sent);case 8:_context26.next=10;return readFileAsArrayBuffer(url);case 10:return _context26.abrupt("return",_context26.sent);case 11:case"end":return _context26.stop();}}},_callee22);}));return _loadAsArrayBuffer.apply(this,arguments);}function loadAsText(_x15){return _loadAsText.apply(this,arguments);}/**
25925
+ */function _loadAsArrayBuffer(){_loadAsArrayBuffer=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee23(url){var _ref37,readFileAsArrayBuffer,response;return _regeneratorRuntime().wrap(function _callee23$(_context27){while(1){switch(_context27.prev=_context27.next){case 0:_ref37=globalThis.loaders||{},readFileAsArrayBuffer=_ref37.readFileAsArrayBuffer;if(!(isBrowser||!readFileAsArrayBuffer||url.startsWith('http'))){_context27.next=8;break;}_context27.next=4;return fetch(url);case 4:response=_context27.sent;_context27.next=7;return response.arrayBuffer();case 7:return _context27.abrupt("return",_context27.sent);case 8:_context27.next=10;return readFileAsArrayBuffer(url);case 10:return _context27.abrupt("return",_context27.sent);case 11:case"end":return _context27.stop();}}},_callee23);}));return _loadAsArrayBuffer.apply(this,arguments);}function loadAsText(_x16){return _loadAsText.apply(this,arguments);}/**
25904
25926
  * Determines if a loader can parse with worker
25905
25927
  * @param loader
25906
25928
  * @param options
25907
- */function _loadAsText(){_loadAsText=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee23(url){var _ref38,readFileAsText,response;return _regeneratorRuntime().wrap(function _callee23$(_context27){while(1){switch(_context27.prev=_context27.next){case 0:_ref38=globalThis.loaders||{},readFileAsText=_ref38.readFileAsText;if(!(isBrowser||!readFileAsText||url.startsWith('http'))){_context27.next=8;break;}_context27.next=4;return fetch(url);case 4:response=_context27.sent;_context27.next=7;return response.text();case 7:return _context27.abrupt("return",_context27.sent);case 8:_context27.next=10;return readFileAsText(url);case 10:return _context27.abrupt("return",_context27.sent);case 11:case"end":return _context27.stop();}}},_callee23);}));return _loadAsText.apply(this,arguments);}function canParseWithWorker(loader,options){if(!WorkerFarm.isSupported()){return false;}// Node workers are still experimental
25929
+ */function _loadAsText(){_loadAsText=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee24(url){var _ref38,readFileAsText,response;return _regeneratorRuntime().wrap(function _callee24$(_context28){while(1){switch(_context28.prev=_context28.next){case 0:_ref38=globalThis.loaders||{},readFileAsText=_ref38.readFileAsText;if(!(isBrowser||!readFileAsText||url.startsWith('http'))){_context28.next=8;break;}_context28.next=4;return fetch(url);case 4:response=_context28.sent;_context28.next=7;return response.text();case 7:return _context28.abrupt("return",_context28.sent);case 8:_context28.next=10;return readFileAsText(url);case 10:return _context28.abrupt("return",_context28.sent);case 11:case"end":return _context28.stop();}}},_callee24);}));return _loadAsText.apply(this,arguments);}function canParseWithWorker(loader,options){if(!WorkerFarm.isSupported()){return false;}// Node workers are still experimental
25908
25930
  if(!isBrowser&&!(options!==null&&options!==void 0&&options._nodeWorkers)){return false;}return loader.worker&&(options===null||options===void 0?void 0:options.worker);}/**
25909
25931
  * this function expects that the worker function sends certain messages,
25910
25932
  * this can be automated if the worker is wrapper by a call to createLoaderWorker in @loaders.gl/loader-utils.
25911
- */function parseWithWorker(_x16,_x17,_x18,_x19,_x20){return _parseWithWorker.apply(this,arguments);}/**
25933
+ */function parseWithWorker(_x17,_x18,_x19,_x20,_x21){return _parseWithWorker.apply(this,arguments);}/**
25912
25934
  * Handle worker's responses to the main thread
25913
25935
  * @param job
25914
25936
  * @param type
25915
25937
  * @param payload
25916
- */function _parseWithWorker(){_parseWithWorker=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee24(loader,data,options,context,parseOnMainThread){var name,url,workerFarm,workerPool,job,result;return _regeneratorRuntime().wrap(function _callee24$(_context28){while(1){switch(_context28.prev=_context28.next){case 0:name=loader.id;// TODO
25938
+ */function _parseWithWorker(){_parseWithWorker=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee25(loader,data,options,context,parseOnMainThread){var name,url,workerFarm,workerPool,job,result;return _regeneratorRuntime().wrap(function _callee25$(_context29){while(1){switch(_context29.prev=_context29.next){case 0:name=loader.id;// TODO
25917
25939
  url=getWorkerURL(loader,options);workerFarm=WorkerFarm.getWorkerFarm(options);workerPool=workerFarm.getWorkerPool({name:name,url:url});// options.log object contains functions which cannot be transferred
25918
25940
  // context.fetch & context.parse functions cannot be transferred
25919
25941
  // TODO - decide how to handle logging on workers
25920
- options=JSON.parse(JSON.stringify(options));context=JSON.parse(JSON.stringify(context||{}));_context28.next=8;return workerPool.startJob('process-on-worker',// @ts-expect-error
25942
+ options=JSON.parse(JSON.stringify(options));context=JSON.parse(JSON.stringify(context||{}));_context29.next=8;return workerPool.startJob('process-on-worker',// @ts-expect-error
25921
25943
  onMessage.bind(null,parseOnMainThread)// eslint-disable-line @typescript-eslint/no-misused-promises
25922
- );case 8:job=_context28.sent;job.postMessage('process',{// @ts-ignore
25923
- input:data,options:options,context:context});_context28.next=12;return job.result;case 12:result=_context28.sent;_context28.next=15;return result.result;case 15:return _context28.abrupt("return",_context28.sent);case 16:case"end":return _context28.stop();}}},_callee24);}));return _parseWithWorker.apply(this,arguments);}function onMessage(_x21,_x22,_x23,_x24){return _onMessage2.apply(this,arguments);}// loaders.gl
25944
+ );case 8:job=_context29.sent;job.postMessage('process',{// @ts-ignore
25945
+ input:data,options:options,context:context});_context29.next=12;return job.result;case 12:result=_context29.sent;_context29.next=15;return result.result;case 15:return _context29.abrupt("return",_context29.sent);case 16:case"end":return _context29.stop();}}},_callee25);}));return _parseWithWorker.apply(this,arguments);}function onMessage(_x22,_x23,_x24,_x25){return _onMessage2.apply(this,arguments);}// loaders.gl
25924
25946
  // SPDX-License-Identifier: MIT
25925
25947
  // Copyright (c) vis.gl contributors
25926
25948
  /**
@@ -25928,9 +25950,9 @@ input:data,options:options,context:context});_context28.next=12;return job.resul
25928
25950
  * @param data
25929
25951
  * @param length
25930
25952
  * @returns
25931
- */function _onMessage2(){_onMessage2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee25(parseOnMainThread,job,type,payload){var id,input,options,result,message;return _regeneratorRuntime().wrap(function _callee25$(_context29){while(1){switch(_context29.prev=_context29.next){case 0:_context29.t0=type;_context29.next=_context29.t0==='done'?3:_context29.t0==='error'?5:_context29.t0==='process'?7:20;break;case 3:job.done(payload);return _context29.abrupt("break",21);case 5:job.error(new Error(payload.error));return _context29.abrupt("break",21);case 7:// Worker is asking for main thread to parseO
25932
- id=payload.id,input=payload.input,options=payload.options;_context29.prev=8;_context29.next=11;return parseOnMainThread(input,options);case 11:result=_context29.sent;job.postMessage('done',{id:id,result:result});_context29.next=19;break;case 15:_context29.prev=15;_context29.t1=_context29["catch"](8);message=_context29.t1 instanceof Error?_context29.t1.message:'unknown error';job.postMessage('error',{id:id,error:message});case 19:return _context29.abrupt("break",21);case 20:// eslint-disable-next-line
25933
- console.warn("parse-with-worker unknown message ".concat(type));case 21:case"end":return _context29.stop();}}},_callee25,null,[[8,15]]);}));return _onMessage2.apply(this,arguments);}function getFirstCharacters$1(data){var length=arguments.length>1&&arguments[1]!==undefined?arguments[1]:5;if(typeof data==='string'){return data.slice(0,length);}else if(ArrayBuffer.isView(data)){// Typed Arrays can have offsets into underlying buffer
25953
+ */function _onMessage2(){_onMessage2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee26(parseOnMainThread,job,type,payload){var id,input,options,result,message;return _regeneratorRuntime().wrap(function _callee26$(_context30){while(1){switch(_context30.prev=_context30.next){case 0:_context30.t0=type;_context30.next=_context30.t0==='done'?3:_context30.t0==='error'?5:_context30.t0==='process'?7:20;break;case 3:job.done(payload);return _context30.abrupt("break",21);case 5:job.error(new Error(payload.error));return _context30.abrupt("break",21);case 7:// Worker is asking for main thread to parseO
25954
+ id=payload.id,input=payload.input,options=payload.options;_context30.prev=8;_context30.next=11;return parseOnMainThread(input,options);case 11:result=_context30.sent;job.postMessage('done',{id:id,result:result});_context30.next=19;break;case 15:_context30.prev=15;_context30.t1=_context30["catch"](8);message=_context30.t1 instanceof Error?_context30.t1.message:'unknown error';job.postMessage('error',{id:id,error:message});case 19:return _context30.abrupt("break",21);case 20:// eslint-disable-next-line
25955
+ console.warn("parse-with-worker unknown message ".concat(type));case 21:case"end":return _context30.stop();}}},_callee26,null,[[8,15]]);}));return _onMessage2.apply(this,arguments);}function getFirstCharacters$1(data){var length=arguments.length>1&&arguments[1]!==undefined?arguments[1]:5;if(typeof data==='string'){return data.slice(0,length);}else if(ArrayBuffer.isView(data)){// Typed Arrays can have offsets into underlying buffer
25934
25956
  return getMagicString$2(data.buffer,data.byteOffset,length);}else if(data instanceof ArrayBuffer){var byteOffset=0;return getMagicString$2(data,byteOffset,length);}return'';}/**
25935
25957
  * Gets a magic string from a "file"
25936
25958
  * Typically used to check or detect file format
@@ -25938,14 +25960,14 @@ return getMagicString$2(data.buffer,data.byteOffset,length);}else if(data instan
25938
25960
  * @param byteOffset
25939
25961
  * @param length
25940
25962
  * @returns
25941
- */function getMagicString$2(arrayBuffer,byteOffset,length){if(arrayBuffer.byteLength<=byteOffset+length){return'';}var dataView=new DataView(arrayBuffer);var magic='';for(var _i535=0;_i535<length;_i535++){magic+=String.fromCharCode(dataView.getUint8(byteOffset+_i535));}return magic;}/**
25963
+ */function getMagicString$2(arrayBuffer,byteOffset,length){if(arrayBuffer.byteLength<=byteOffset+length){return'';}var dataView=new DataView(arrayBuffer);var magic='';for(var _i534=0;_i534<length;_i534++){magic+=String.fromCharCode(dataView.getUint8(byteOffset+_i534));}return magic;}/**
25942
25964
  * Minimal JSON parser that throws more meaningful error messages
25943
25965
  */function parseJSON(string){try{return JSON.parse(string);}catch(_){throw new Error("Failed to parse JSON from data starting with \"".concat(getFirstCharacters$1(string),"\""));}}/**
25944
25966
  * compare two binary arrays for equality
25945
25967
  * @param a
25946
25968
  * @param b
25947
25969
  * @param byteLength
25948
- */function compareArrayBuffers(arrayBuffer1,arrayBuffer2,byteLength){byteLength=byteLength||arrayBuffer1.byteLength;if(arrayBuffer1.byteLength<byteLength||arrayBuffer2.byteLength<byteLength){return false;}var array1=new Uint8Array(arrayBuffer1);var array2=new Uint8Array(arrayBuffer2);for(var _i536=0;_i536<array1.length;++_i536){if(array1[_i536]!==array2[_i536]){return false;}}return true;}/**
25970
+ */function compareArrayBuffers(arrayBuffer1,arrayBuffer2,byteLength){byteLength=byteLength||arrayBuffer1.byteLength;if(arrayBuffer1.byteLength<byteLength||arrayBuffer2.byteLength<byteLength){return false;}var array1=new Uint8Array(arrayBuffer1);var array2=new Uint8Array(arrayBuffer2);for(var _i535=0;_i535<array1.length;++_i535){if(array1[_i535]!==array2[_i535]){return false;}}return true;}/**
25949
25971
  * Concatenate a sequence of ArrayBuffers from arguments
25950
25972
  * @return A concatenated ArrayBuffer
25951
25973
  */function concatenateArrayBuffers(){for(var _len100=arguments.length,sources=new Array(_len100),_key5=0;_key5<_len100;_key5++){sources[_key5]=arguments[_key5];}return concatenateArrayBuffersFromArray(sources);}/**
@@ -25989,8 +26011,8 @@ target.set(sourceArray,targetOffset);return targetOffset+padToNBytes(sourceArray
25989
26011
  /**
25990
26012
  * Concatenates all data chunks yielded by an (async) iterator
25991
26013
  * This function can e.g. be used to enable atomic parsers to work on (async) iterator inputs
25992
- */function concatenateArrayBuffersAsync(_x25){return _concatenateArrayBuffersAsync.apply(this,arguments);}// Simple file alias mechanisms for tests.
25993
- function _concatenateArrayBuffersAsync(){_concatenateArrayBuffersAsync=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee26(asyncIterator){var arrayBuffers,_iteratorAbruptCompletion,_didIteratorError,_iteratorError,_iterator,_step,chunk;return _regeneratorRuntime().wrap(function _callee26$(_context30){while(1){switch(_context30.prev=_context30.next){case 0:arrayBuffers=[];_iteratorAbruptCompletion=false;_didIteratorError=false;_context30.prev=3;_iterator=_asyncIterator(asyncIterator);case 5:_context30.next=7;return _iterator.next();case 7:if(!(_iteratorAbruptCompletion=!(_step=_context30.sent).done)){_context30.next=13;break;}chunk=_step.value;arrayBuffers.push(chunk);case 10:_iteratorAbruptCompletion=false;_context30.next=5;break;case 13:_context30.next=19;break;case 15:_context30.prev=15;_context30.t0=_context30["catch"](3);_didIteratorError=true;_iteratorError=_context30.t0;case 19:_context30.prev=19;_context30.prev=20;if(!(_iteratorAbruptCompletion&&_iterator["return"]!=null)){_context30.next=24;break;}_context30.next=24;return _iterator["return"]();case 24:_context30.prev=24;if(!_didIteratorError){_context30.next=27;break;}throw _iteratorError;case 27:return _context30.finish(24);case 28:return _context30.finish(19);case 29:return _context30.abrupt("return",concatenateArrayBuffers.apply(void 0,arrayBuffers));case 30:case"end":return _context30.stop();}}},_callee26,null,[[3,15,19,29],[20,,24,28]]);}));return _concatenateArrayBuffersAsync.apply(this,arguments);}var pathPrefix='';var fileAliases={};/**
26014
+ */function concatenateArrayBuffersAsync(_x26){return _concatenateArrayBuffersAsync.apply(this,arguments);}// Simple file alias mechanisms for tests.
26015
+ function _concatenateArrayBuffersAsync(){_concatenateArrayBuffersAsync=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee27(asyncIterator){var arrayBuffers,_iteratorAbruptCompletion,_didIteratorError,_iteratorError,_iterator,_step,chunk;return _regeneratorRuntime().wrap(function _callee27$(_context31){while(1){switch(_context31.prev=_context31.next){case 0:arrayBuffers=[];_iteratorAbruptCompletion=false;_didIteratorError=false;_context31.prev=3;_iterator=_asyncIterator(asyncIterator);case 5:_context31.next=7;return _iterator.next();case 7:if(!(_iteratorAbruptCompletion=!(_step=_context31.sent).done)){_context31.next=13;break;}chunk=_step.value;arrayBuffers.push(chunk);case 10:_iteratorAbruptCompletion=false;_context31.next=5;break;case 13:_context31.next=19;break;case 15:_context31.prev=15;_context31.t0=_context31["catch"](3);_didIteratorError=true;_iteratorError=_context31.t0;case 19:_context31.prev=19;_context31.prev=20;if(!(_iteratorAbruptCompletion&&_iterator["return"]!=null)){_context31.next=24;break;}_context31.next=24;return _iterator["return"]();case 24:_context31.prev=24;if(!_didIteratorError){_context31.next=27;break;}throw _iteratorError;case 27:return _context31.finish(24);case 28:return _context31.finish(19);case 29:return _context31.abrupt("return",concatenateArrayBuffers.apply(void 0,arrayBuffers));case 30:case"end":return _context31.stop();}}},_callee27,null,[[3,15,19,29],[20,,24,28]]);}));return _concatenateArrayBuffersAsync.apply(this,arguments);}var pathPrefix='';var fileAliases={};/**
25994
26016
  * Resolves aliases and adds path-prefix to paths
25995
26017
  */function resolvePath(filename){for(var alias in fileAliases){if(filename.startsWith(alias)){var replacement=fileAliases[alias];filename=filename.replace(alias,replacement);}}if(!filename.startsWith('http://')&&!filename.startsWith('https://')){filename="".concat(pathPrefix).concat(filename);}return filename;}// loaders.gl
25996
26018
  // SPDX-License-Identifier: MIT
@@ -26087,30 +26109,30 @@ return resource.length;}if(resource instanceof ArrayBuffer){return resource.byte
26087
26109
  * Adds content-length header when possible
26088
26110
  *
26089
26111
  * @param resource
26090
- */function makeResponse(_x26){return _makeResponse.apply(this,arguments);}/**
26112
+ */function makeResponse(_x27){return _makeResponse.apply(this,arguments);}/**
26091
26113
  * Checks response status (async) and throws a helpful error message if status is not OK.
26092
26114
  * @param response
26093
- */function _makeResponse(){_makeResponse=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee27(resource){var headers,contentLength,url,type,initialDataUrl,response;return _regeneratorRuntime().wrap(function _callee27$(_context31){while(1){switch(_context31.prev=_context31.next){case 0:if(!isResponse(resource)){_context31.next=2;break;}return _context31.abrupt("return",resource);case 2:// Add content-length header if possible
26115
+ */function _makeResponse(){_makeResponse=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee28(resource){var headers,contentLength,url,type,initialDataUrl,response;return _regeneratorRuntime().wrap(function _callee28$(_context32){while(1){switch(_context32.prev=_context32.next){case 0:if(!isResponse(resource)){_context32.next=2;break;}return _context32.abrupt("return",resource);case 2:// Add content-length header if possible
26094
26116
  headers={};contentLength=getResourceContentLength(resource);if(contentLength>=0){headers['content-length']=String(contentLength);}// `new Response(File)` does not preserve content-type and URL
26095
26117
  // so we add them here
26096
26118
  url=getResourceUrl(resource);type=getResourceMIMEType(resource);if(type){headers['content-type']=type;}// Add a custom header with initial bytes if available
26097
- _context31.next=10;return getInitialDataUrl(resource);case 10:initialDataUrl=_context31.sent;if(initialDataUrl){headers['x-first-bytes']=initialDataUrl;}// TODO - is this the best way of handling strings?
26119
+ _context32.next=10;return getInitialDataUrl(resource);case 10:initialDataUrl=_context32.sent;if(initialDataUrl){headers['x-first-bytes']=initialDataUrl;}// TODO - is this the best way of handling strings?
26098
26120
  // Maybe package as data URL instead?
26099
26121
  if(typeof resource==='string'){// Convert to ArrayBuffer to avoid Response treating it as a URL
26100
26122
  resource=new TextEncoder().encode(resource);}// Attempt to create a Response from the resource, adding headers and setting url
26101
26123
  response=new Response(resource,{headers:headers});// We can't control `Response.url` via constructor, use a property override to record URL.
26102
- Object.defineProperty(response,'url',{value:url});return _context31.abrupt("return",response);case 16:case"end":return _context31.stop();}}},_callee27);}));return _makeResponse.apply(this,arguments);}function checkResponse(_x27){return _checkResponse.apply(this,arguments);}// HELPERS
26103
- function _checkResponse(){_checkResponse=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee28(response){var _error3;return _regeneratorRuntime().wrap(function _callee28$(_context32){while(1){switch(_context32.prev=_context32.next){case 0:if(response.ok){_context32.next=5;break;}_context32.next=3;return getResponseError(response);case 3:_error3=_context32.sent;throw _error3;case 5:case"end":return _context32.stop();}}},_callee28);}));return _checkResponse.apply(this,arguments);}function getResponseError(_x28){return _getResponseError.apply(this,arguments);}function _getResponseError(){_getResponseError=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee29(response){var shortUrl,message,info,contentType;return _regeneratorRuntime().wrap(function _callee29$(_context33){while(1){switch(_context33.prev=_context33.next){case 0:shortUrl=shortenUrlForDisplay(response.url);message="Failed to fetch resource (".concat(response.status,") ").concat(response.statusText,": ").concat(shortUrl);message=message.length>100?"".concat(message.slice(0,100),"..."):message;info={reason:response.statusText,url:response.url,response:response};// See if we got an error message in the body
26104
- _context33.prev=4;contentType=response.headers.get('Content-Type');if(!(!response.bodyUsed&&contentType!==null&&contentType!==void 0&&contentType.includes('application/json'))){_context33.next=12;break;}_context33.next=9;return response.json();case 9:_context33.t0=_context33.sent;_context33.next=15;break;case 12:_context33.next=14;return response.text();case 14:_context33.t0=_context33.sent;case 15:info.reason=_context33.t0;_context33.next=20;break;case 18:_context33.prev=18;_context33.t1=_context33["catch"](4);case 20:return _context33.abrupt("return",new FetchError(message,info));case 21:case"end":return _context33.stop();}}},_callee29,null,[[4,18]]);}));return _getResponseError.apply(this,arguments);}function getInitialDataUrl(_x29){return _getInitialDataUrl.apply(this,arguments);}// https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string
26105
- function _getInitialDataUrl(){_getInitialDataUrl=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee30(resource){var INITIAL_DATA_LENGTH,blobSlice,slice,_base;return _regeneratorRuntime().wrap(function _callee30$(_context34){while(1){switch(_context34.prev=_context34.next){case 0:INITIAL_DATA_LENGTH=5;if(!(typeof resource==='string')){_context34.next=3;break;}return _context34.abrupt("return","data:,".concat(resource.slice(0,INITIAL_DATA_LENGTH)));case 3:if(!(resource instanceof Blob)){_context34.next=8;break;}blobSlice=resource.slice(0,5);_context34.next=7;return new Promise(function(resolve){var reader=new FileReader();reader.onload=function(event){var _event$target;return resolve(event===null||event===void 0?void 0:(_event$target=event.target)===null||_event$target===void 0?void 0:_event$target.result);};reader.readAsDataURL(blobSlice);});case 7:return _context34.abrupt("return",_context34.sent);case 8:if(!(resource instanceof ArrayBuffer)){_context34.next=12;break;}slice=resource.slice(0,INITIAL_DATA_LENGTH);_base=arrayBufferToBase64(slice);return _context34.abrupt("return","data:base64,".concat(_base));case 12:return _context34.abrupt("return",null);case 13:case"end":return _context34.stop();}}},_callee30);}));return _getInitialDataUrl.apply(this,arguments);}function arrayBufferToBase64(buffer){var binary='';var bytes=new Uint8Array(buffer);for(var _i537=0;_i537<bytes.byteLength;_i537++){binary+=String.fromCharCode(bytes[_i537]);}return btoa(binary);}// loaders.gl
26124
+ Object.defineProperty(response,'url',{value:url});return _context32.abrupt("return",response);case 16:case"end":return _context32.stop();}}},_callee28);}));return _makeResponse.apply(this,arguments);}function checkResponse(_x28){return _checkResponse.apply(this,arguments);}// HELPERS
26125
+ function _checkResponse(){_checkResponse=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee29(response){var _error3;return _regeneratorRuntime().wrap(function _callee29$(_context33){while(1){switch(_context33.prev=_context33.next){case 0:if(response.ok){_context33.next=5;break;}_context33.next=3;return getResponseError(response);case 3:_error3=_context33.sent;throw _error3;case 5:case"end":return _context33.stop();}}},_callee29);}));return _checkResponse.apply(this,arguments);}function getResponseError(_x29){return _getResponseError.apply(this,arguments);}function _getResponseError(){_getResponseError=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee30(response){var shortUrl,message,info,contentType;return _regeneratorRuntime().wrap(function _callee30$(_context34){while(1){switch(_context34.prev=_context34.next){case 0:shortUrl=shortenUrlForDisplay(response.url);message="Failed to fetch resource (".concat(response.status,") ").concat(response.statusText,": ").concat(shortUrl);message=message.length>100?"".concat(message.slice(0,100),"..."):message;info={reason:response.statusText,url:response.url,response:response};// See if we got an error message in the body
26126
+ _context34.prev=4;contentType=response.headers.get('Content-Type');if(!(!response.bodyUsed&&contentType!==null&&contentType!==void 0&&contentType.includes('application/json'))){_context34.next=12;break;}_context34.next=9;return response.json();case 9:_context34.t0=_context34.sent;_context34.next=15;break;case 12:_context34.next=14;return response.text();case 14:_context34.t0=_context34.sent;case 15:info.reason=_context34.t0;_context34.next=20;break;case 18:_context34.prev=18;_context34.t1=_context34["catch"](4);case 20:return _context34.abrupt("return",new FetchError(message,info));case 21:case"end":return _context34.stop();}}},_callee30,null,[[4,18]]);}));return _getResponseError.apply(this,arguments);}function getInitialDataUrl(_x30){return _getInitialDataUrl.apply(this,arguments);}// https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string
26127
+ function _getInitialDataUrl(){_getInitialDataUrl=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee31(resource){var INITIAL_DATA_LENGTH,blobSlice,slice,_base;return _regeneratorRuntime().wrap(function _callee31$(_context35){while(1){switch(_context35.prev=_context35.next){case 0:INITIAL_DATA_LENGTH=5;if(!(typeof resource==='string')){_context35.next=3;break;}return _context35.abrupt("return","data:,".concat(resource.slice(0,INITIAL_DATA_LENGTH)));case 3:if(!(resource instanceof Blob)){_context35.next=8;break;}blobSlice=resource.slice(0,5);_context35.next=7;return new Promise(function(resolve){var reader=new FileReader();reader.onload=function(event){var _event$target;return resolve(event===null||event===void 0?void 0:(_event$target=event.target)===null||_event$target===void 0?void 0:_event$target.result);};reader.readAsDataURL(blobSlice);});case 7:return _context35.abrupt("return",_context35.sent);case 8:if(!(resource instanceof ArrayBuffer)){_context35.next=12;break;}slice=resource.slice(0,INITIAL_DATA_LENGTH);_base=arrayBufferToBase64(slice);return _context35.abrupt("return","data:base64,".concat(_base));case 12:return _context35.abrupt("return",null);case 13:case"end":return _context35.stop();}}},_callee31);}));return _getInitialDataUrl.apply(this,arguments);}function arrayBufferToBase64(buffer){var binary='';var bytes=new Uint8Array(buffer);for(var _i536=0;_i536<bytes.byteLength;_i536++){binary+=String.fromCharCode(bytes[_i536]);}return btoa(binary);}// loaders.gl
26106
26128
  // import {FetchError} from './fetch-error';
26107
26129
  function isNodePath(url){return!isRequestURL(url)&&!isDataURL(url);}function isRequestURL(url){return url.startsWith('http:')||url.startsWith('https:');}function isDataURL(url){return url.startsWith('data:');}/**
26108
26130
  * fetch API compatible function
26109
26131
  * - Supports fetching from Node.js local file system paths
26110
26132
  * - Respects pathPrefix and file aliases
26111
- */function fetchFile$1(_x30,_x31){return _fetchFile$.apply(this,arguments);}// loaders.gl
26112
- function _fetchFile$(){_fetchFile$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee31(urlOrData,fetchOptions){var url,_globalThis$loaders6,_globalThis$loaders7;return _regeneratorRuntime().wrap(function _callee31$(_context35){while(1){switch(_context35.prev=_context35.next){case 0:if(!(typeof urlOrData==='string')){_context35.next=8;break;}url=resolvePath(urlOrData);// Support fetching from local file system
26113
- if(!isNodePath(url)){_context35.next=5;break;}if(!((_globalThis$loaders6=globalThis.loaders)!==null&&_globalThis$loaders6!==void 0&&_globalThis$loaders6.fetchNode)){_context35.next=5;break;}return _context35.abrupt("return",(_globalThis$loaders7=globalThis.loaders)===null||_globalThis$loaders7===void 0?void 0:_globalThis$loaders7.fetchNode(url,fetchOptions));case 5:_context35.next=7;return fetch(url,fetchOptions);case 7:return _context35.abrupt("return",_context35.sent);case 8:_context35.next=10;return makeResponse(urlOrData);case 10:return _context35.abrupt("return",_context35.sent);case 11:case"end":return _context35.stop();}}},_callee31);}));return _fetchFile$.apply(this,arguments);}var probeLog=new Log({id:'loaders.gl'});// Logs nothing
26133
+ */function fetchFile$1(_x31,_x32){return _fetchFile$.apply(this,arguments);}// loaders.gl
26134
+ function _fetchFile$(){_fetchFile$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee32(urlOrData,fetchOptions){var url,_globalThis$loaders6,_globalThis$loaders7;return _regeneratorRuntime().wrap(function _callee32$(_context36){while(1){switch(_context36.prev=_context36.next){case 0:if(!(typeof urlOrData==='string')){_context36.next=8;break;}url=resolvePath(urlOrData);// Support fetching from local file system
26135
+ if(!isNodePath(url)){_context36.next=5;break;}if(!((_globalThis$loaders6=globalThis.loaders)!==null&&_globalThis$loaders6!==void 0&&_globalThis$loaders6.fetchNode)){_context36.next=5;break;}return _context36.abrupt("return",(_globalThis$loaders7=globalThis.loaders)===null||_globalThis$loaders7===void 0?void 0:_globalThis$loaders7.fetchNode(url,fetchOptions));case 5:_context36.next=7;return fetch(url,fetchOptions);case 7:return _context36.abrupt("return",_context36.sent);case 8:_context36.next=10;return makeResponse(urlOrData);case 10:return _context36.abrupt("return",_context36.sent);case 11:case"end":return _context36.stop();}}},_callee32);}));return _fetchFile$.apply(this,arguments);}var probeLog=new Log({id:'loaders.gl'});// Logs nothing
26114
26136
  var NullLog=/*#__PURE__*/function(){function NullLog(){_classCallCheck(this,NullLog);}_createClass(NullLog,[{key:"log",value:function log(){return function(){};}},{key:"info",value:function info(){return function(){};}},{key:"warn",value:function warn(){return function(){};}},{key:"error",value:function error(){return function(){};}}]);return NullLog;}();// Logs to console
26115
26137
  var ConsoleLog=/*#__PURE__*/function(){function ConsoleLog(){_classCallCheck(this,ConsoleLog);_defineProperty(this,"console",void 0);this.console=console;// eslint-disable-line
26116
26138
  }_createClass(ConsoleLog,[{key:"log",value:function log(){var _this$console$log;for(var _len101=arguments.length,args=new Array(_len101),_key6=0;_key6<_len101;_key6++){args[_key6]=arguments[_key6];}return(_this$console$log=this.console.log).bind.apply(_this$console$log,[this.console].concat(args));}},{key:"info",value:function info(){var _this$console$info;for(var _len102=arguments.length,args=new Array(_len102),_key7=0;_key7<_len102;_key7++){args[_key7]=arguments[_key7];}return(_this$console$info=this.console.info).bind.apply(_this$console$info,[this.console].concat(args));}},{key:"warn",value:function warn(){var _this$console$warn;for(var _len103=arguments.length,args=new Array(_len103),_key8=0;_key8<_len103;_key8++){args[_key8]=arguments[_key8];}return(_this$console$warn=this.console.warn).bind.apply(_this$console$warn,[this.console].concat(args));}},{key:"error",value:function error(){var _this$console$error;for(var _len104=arguments.length,args=new Array(_len104),_key9=0;_key9<_len104;_key9++){args[_key9]=arguments[_key9];}return(_this$console$error=this.console.error).bind.apply(_this$console$error,[this.console].concat(args));}}]);return ConsoleLog;}();// loaders.gl
@@ -26202,7 +26224,7 @@ var EXT_PATTERN=/\.([^.]+)$/;// TODO - Need a variant that peeks at streams for
26202
26224
  * @param loaders
26203
26225
  * @param options
26204
26226
  * @param context used internally, applications should not provide this parameter
26205
- */function selectLoader(_x32){return _selectLoader.apply(this,arguments);}/**
26227
+ */function selectLoader(_x33){return _selectLoader.apply(this,arguments);}/**
26206
26228
  * Find a loader that matches file extension and/or initial file content
26207
26229
  * Search the loaders array argument for a loader that matches url extension or initial data
26208
26230
  * Returns: a normalized loader
@@ -26210,8 +26232,8 @@ var EXT_PATTERN=/\.([^.]+)$/;// TODO - Need a variant that peeks at streams for
26210
26232
  * @param loaders
26211
26233
  * @param options
26212
26234
  * @param context used internally, applications should not provide this parameter
26213
- */function _selectLoader(){_selectLoader=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee32(data){var loaders,options,context,loader,_args35=arguments;return _regeneratorRuntime().wrap(function _callee32$(_context36){while(1){switch(_context36.prev=_context36.next){case 0:loaders=_args35.length>1&&_args35[1]!==undefined?_args35[1]:[];options=_args35.length>2?_args35[2]:undefined;context=_args35.length>3?_args35[3]:undefined;if(validHTTPResponse(data)){_context36.next=5;break;}return _context36.abrupt("return",null);case 5:// First make a sync attempt, disabling exceptions
26214
- loader=selectLoaderSync(data,loaders,_objectSpread(_objectSpread({},options),{},{nothrow:true}),context);if(!loader){_context36.next=8;break;}return _context36.abrupt("return",loader);case 8:if(!isBlob(data)){_context36.next=13;break;}_context36.next=11;return data.slice(0,10).arrayBuffer();case 11:data=_context36.sent;loader=selectLoaderSync(data,loaders,options,context);case 13:if(!(!loader&&!(options!==null&&options!==void 0&&options.nothrow))){_context36.next=15;break;}throw new Error(getNoValidLoaderMessage(data));case 15:return _context36.abrupt("return",loader);case 16:case"end":return _context36.stop();}}},_callee32);}));return _selectLoader.apply(this,arguments);}function selectLoaderSync(data){var loaders=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var options=arguments.length>2?arguments[2]:undefined;var context=arguments.length>3?arguments[3]:undefined;if(!validHTTPResponse(data)){return null;}// eslint-disable-next-line complexity
26235
+ */function _selectLoader(){_selectLoader=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee33(data){var loaders,options,context,loader,_args36=arguments;return _regeneratorRuntime().wrap(function _callee33$(_context37){while(1){switch(_context37.prev=_context37.next){case 0:loaders=_args36.length>1&&_args36[1]!==undefined?_args36[1]:[];options=_args36.length>2?_args36[2]:undefined;context=_args36.length>3?_args36[3]:undefined;if(validHTTPResponse(data)){_context37.next=5;break;}return _context37.abrupt("return",null);case 5:// First make a sync attempt, disabling exceptions
26236
+ loader=selectLoaderSync(data,loaders,_objectSpread(_objectSpread({},options),{},{nothrow:true}),context);if(!loader){_context37.next=8;break;}return _context37.abrupt("return",loader);case 8:if(!isBlob(data)){_context37.next=13;break;}_context37.next=11;return data.slice(0,10).arrayBuffer();case 11:data=_context37.sent;loader=selectLoaderSync(data,loaders,options,context);case 13:if(!(!loader&&!(options!==null&&options!==void 0&&options.nothrow))){_context37.next=15;break;}throw new Error(getNoValidLoaderMessage(data));case 15:return _context37.abrupt("return",loader);case 16:case"end":return _context37.stop();}}},_callee33);}));return _selectLoader.apply(this,arguments);}function selectLoaderSync(data){var loaders=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var options=arguments.length>2?arguments[2]:undefined;var context=arguments.length>3?arguments[3]:undefined;if(!validHTTPResponse(data)){return null;}// eslint-disable-next-line complexity
26215
26237
  // if only a single loader was provided (not as array), force its use
26216
26238
  // TODO - Should this behavior be kept and documented?
26217
26239
  if(loaders&&!Array.isArray(loaders)){// TODO - remove support for legacy loaders
@@ -26241,7 +26263,7 @@ if(compareMIMETypes(mimeType,"application/x.".concat(loader.id))){return loader;
26241
26263
  if(testDataAgainstBinary(data.buffer,data.byteOffset,loader)){return loader;}}else if(data instanceof ArrayBuffer){var byteOffset=0;if(testDataAgainstBinary(data,byteOffset,loader)){return loader;}}// TODO Handle streaming case (requires creating a new AsyncIterator)
26242
26264
  }}catch(err){_iterator15.e(err);}finally{_iterator15.f();}return null;}function testDataAgainstText(data,loader){if(loader.testText){return loader.testText(data);}var tests=Array.isArray(loader.tests)?loader.tests:[loader.tests];return tests.some(function(test){return data.startsWith(test);});}function testDataAgainstBinary(data,byteOffset,loader){var tests=Array.isArray(loader.tests)?loader.tests:[loader.tests];return tests.some(function(test){return testBinary(data,byteOffset,loader,test);});}function testBinary(data,byteOffset,loader,test){if(test instanceof ArrayBuffer){return compareArrayBuffers(test,data,test.byteLength);}switch(_typeof(test)){case'function':return test(data);case'string':// Magic bytes check: If `test` is a string, check if binary data starts with that strings
26243
26265
  var magic=getMagicString$1(data,byteOffset,test.length);return test===magic;default:return false;}}function getFirstCharacters(data){var length=arguments.length>1&&arguments[1]!==undefined?arguments[1]:5;if(typeof data==='string'){return data.slice(0,length);}else if(ArrayBuffer.isView(data)){// Typed Arrays can have offsets into underlying buffer
26244
- return getMagicString$1(data.buffer,data.byteOffset,length);}else if(data instanceof ArrayBuffer){var byteOffset=0;return getMagicString$1(data,byteOffset,length);}return'';}function getMagicString$1(arrayBuffer,byteOffset,length){if(arrayBuffer.byteLength<byteOffset+length){return'';}var dataView=new DataView(arrayBuffer);var magic='';for(var _i538=0;_i538<length;_i538++){magic+=String.fromCharCode(dataView.getUint8(byteOffset+_i538));}return magic;}// loaders.gl
26266
+ return getMagicString$1(data.buffer,data.byteOffset,length);}else if(data instanceof ArrayBuffer){var byteOffset=0;return getMagicString$1(data,byteOffset,length);}return'';}function getMagicString$1(arrayBuffer,byteOffset,length){if(arrayBuffer.byteLength<byteOffset+length){return'';}var dataView=new DataView(arrayBuffer);var magic='';for(var _i537=0;_i537<length;_i537++){magic+=String.fromCharCode(dataView.getUint8(byteOffset+_i537));}return magic;}// loaders.gl
26245
26267
  // SPDX-License-Identifier: MIT
26246
26268
  // Copyright (c) vis.gl contributors
26247
26269
  var DEFAULT_CHUNK_SIZE$2=256*1024;/**
@@ -26249,9 +26271,9 @@ var DEFAULT_CHUNK_SIZE$2=256*1024;/**
26249
26271
  * @param blob string to iterate over
26250
26272
  * @param options
26251
26273
  * @param options.chunkSize
26252
- */function makeStringIterator(string,options){var chunkSize,offset,textEncoder,chunkLength,chunk;return _regeneratorRuntime().wrap(function makeStringIterator$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:chunkSize=(options===null||options===void 0?void 0:options.chunkSize)||DEFAULT_CHUNK_SIZE$2;offset=0;textEncoder=new TextEncoder();case 3:if(!(offset<string.length)){_context5.next=11;break;}// Create a chunk of the right size
26274
+ */function makeStringIterator(string,options){var chunkSize,offset,textEncoder,chunkLength,chunk;return _regeneratorRuntime().wrap(function makeStringIterator$(_context6){while(1){switch(_context6.prev=_context6.next){case 0:chunkSize=(options===null||options===void 0?void 0:options.chunkSize)||DEFAULT_CHUNK_SIZE$2;offset=0;textEncoder=new TextEncoder();case 3:if(!(offset<string.length)){_context6.next=11;break;}// Create a chunk of the right size
26253
26275
  chunkLength=Math.min(string.length-offset,chunkSize);chunk=string.slice(offset,offset+chunkLength);offset+=chunkLength;// yield an ArrayBuffer chunk
26254
- _context5.next=9;return textEncoder.encode(chunk);case 9:_context5.next=3;break;case 11:case"end":return _context5.stop();}}},_marked);}// loaders.gl
26276
+ _context6.next=9;return textEncoder.encode(chunk);case 9:_context6.next=3;break;case 11:case"end":return _context6.stop();}}},_marked);}// loaders.gl
26255
26277
  // SPDX-License-Identifier: MIT
26256
26278
  // Copyright (c) vis.gl contributors
26257
26279
  var DEFAULT_CHUNK_SIZE$1=256*1024;/**
@@ -26259,10 +26281,10 @@ var DEFAULT_CHUNK_SIZE$1=256*1024;/**
26259
26281
  * @param blob ArrayBuffer to iterate over
26260
26282
  * @param options
26261
26283
  * @param options.chunkSize
26262
- */function makeArrayBufferIterator(arrayBuffer){var options,_options$chunkSize,chunkSize,byteOffset,chunkByteLength,chunk,sourceArray,_chunkArray,_args5=arguments;return _regeneratorRuntime().wrap(function makeArrayBufferIterator$(_context6){while(1){switch(_context6.prev=_context6.next){case 0:options=_args5.length>1&&_args5[1]!==undefined?_args5[1]:{};_options$chunkSize=options.chunkSize,chunkSize=_options$chunkSize===void 0?DEFAULT_CHUNK_SIZE$1:_options$chunkSize;byteOffset=0;case 3:if(!(byteOffset<arrayBuffer.byteLength)){_context6.next=14;break;}// Create a chunk of the right size
26284
+ */function makeArrayBufferIterator(arrayBuffer){var options,_options$chunkSize,chunkSize,byteOffset,chunkByteLength,chunk,sourceArray,_chunkArray,_args6=arguments;return _regeneratorRuntime().wrap(function makeArrayBufferIterator$(_context7){while(1){switch(_context7.prev=_context7.next){case 0:options=_args6.length>1&&_args6[1]!==undefined?_args6[1]:{};_options$chunkSize=options.chunkSize,chunkSize=_options$chunkSize===void 0?DEFAULT_CHUNK_SIZE$1:_options$chunkSize;byteOffset=0;case 3:if(!(byteOffset<arrayBuffer.byteLength)){_context7.next=14;break;}// Create a chunk of the right size
26263
26285
  chunkByteLength=Math.min(arrayBuffer.byteLength-byteOffset,chunkSize);chunk=new ArrayBuffer(chunkByteLength);// Copy data from the big chunk
26264
26286
  sourceArray=new Uint8Array(arrayBuffer,byteOffset,chunkByteLength);_chunkArray=new Uint8Array(chunk);_chunkArray.set(sourceArray);// yield the chunk
26265
- byteOffset+=chunkByteLength;_context6.next=12;return chunk;case 12:_context6.next=3;break;case 14:case"end":return _context6.stop();}}},_marked2);}// loaders.gl
26287
+ byteOffset+=chunkByteLength;_context7.next=12;return chunk;case 12:_context7.next=3;break;case 14:case"end":return _context7.stop();}}},_marked2);}// loaders.gl
26266
26288
  // SPDX-License-Identifier: MIT
26267
26289
  // Copyright (c) vis.gl contributors
26268
26290
  var DEFAULT_CHUNK_SIZE=1024*1024;// 1MB — biggest value that keeps UI responsive
@@ -26275,7 +26297,7 @@ var DEFAULT_CHUNK_SIZE=1024*1024;// 1MB — biggest value that keeps UI responsi
26275
26297
  /**
26276
26298
  * Returns an async iterable that reads from a stream (works in both Node.js and browsers)
26277
26299
  * @param stream stream to iterator over
26278
- */function _makeBlobIterator(){_makeBlobIterator=_wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(blob,options){var chunkSize,offset,end,chunk;return _regeneratorRuntime().wrap(function _callee4$(_context7){while(1){switch(_context7.prev=_context7.next){case 0:chunkSize=(options===null||options===void 0?void 0:options.chunkSize)||DEFAULT_CHUNK_SIZE;offset=0;case 2:if(!(offset<blob.size)){_context7.next=12;break;}end=offset+chunkSize;_context7.next=6;return _awaitAsyncGenerator(blob.slice(offset,end).arrayBuffer());case 6:chunk=_context7.sent;offset=end;_context7.next=10;return chunk;case 10:_context7.next=2;break;case 12:case"end":return _context7.stop();}}},_callee4);}));return _makeBlobIterator.apply(this,arguments);}function makeStreamIterator(stream,options){return isBrowser$2?makeBrowserStreamIterator(stream,options):makeNodeStreamIterator(stream);}/**
26300
+ */function _makeBlobIterator(){_makeBlobIterator=_wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(blob,options){var chunkSize,offset,end,chunk;return _regeneratorRuntime().wrap(function _callee5$(_context8){while(1){switch(_context8.prev=_context8.next){case 0:chunkSize=(options===null||options===void 0?void 0:options.chunkSize)||DEFAULT_CHUNK_SIZE;offset=0;case 2:if(!(offset<blob.size)){_context8.next=12;break;}end=offset+chunkSize;_context8.next=6;return _awaitAsyncGenerator(blob.slice(offset,end).arrayBuffer());case 6:chunk=_context8.sent;offset=end;_context8.next=10;return chunk;case 10:_context8.next=2;break;case 12:case"end":return _context8.stop();}}},_callee5);}));return _makeBlobIterator.apply(this,arguments);}function makeStreamIterator(stream,options){return isBrowser$2?makeBrowserStreamIterator(stream,options):makeNodeStreamIterator(stream);}/**
26279
26301
  * Returns an async iterable that reads from a DOM (browser) stream
26280
26302
  * @param stream stream to iterate from
26281
26303
  * @see https://jakearchibald.com/2017/async-iterators-and-generators/#making-streams-iterate
@@ -26283,7 +26305,7 @@ var DEFAULT_CHUNK_SIZE=1024*1024;// 1MB — biggest value that keeps UI responsi
26283
26305
  * Returns an async iterable that reads from a DOM (browser) stream
26284
26306
  * @param stream stream to iterate from
26285
26307
  * @note Requires Node.js >= 10
26286
- */function _makeBrowserStreamIterator(){_makeBrowserStreamIterator=_wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(stream,options){var reader,nextBatchPromise,currentBatchPromise,_yield$_awaitAsyncGen,done,value;return _regeneratorRuntime().wrap(function _callee5$(_context8){while(1){switch(_context8.prev=_context8.next){case 0:// WhatWG: stream is supposed to have a `getIterator` method
26308
+ */function _makeBrowserStreamIterator(){_makeBrowserStreamIterator=_wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(stream,options){var reader,nextBatchPromise,currentBatchPromise,_yield$_awaitAsyncGen,done,value;return _regeneratorRuntime().wrap(function _callee6$(_context9){while(1){switch(_context9.prev=_context9.next){case 0:// WhatWG: stream is supposed to have a `getIterator` method
26287
26309
  // if (typeof stream.getIterator === 'function') {
26288
26310
  // return stream.getIterator();
26289
26311
  // }
@@ -26291,13 +26313,13 @@ var DEFAULT_CHUNK_SIZE=1024*1024;// 1MB — biggest value that keeps UI responsi
26291
26313
  // return makeToArrayBufferIterator(stream);
26292
26314
  // }
26293
26315
  // In the browser, we first need to get a lock on the stream
26294
- reader=stream.getReader();_context8.prev=1;case 2:if(!true){_context8.next=16;break;}currentBatchPromise=nextBatchPromise||reader.read();// Issue a read for an additional batch, while we await the next batch
26316
+ reader=stream.getReader();_context9.prev=1;case 2:if(!true){_context9.next=16;break;}currentBatchPromise=nextBatchPromise||reader.read();// Issue a read for an additional batch, while we await the next batch
26295
26317
  // Idea is to make fetching happen in parallel with processing / parsing
26296
26318
  if(options!==null&&options!==void 0&&options._streamReadAhead){nextBatchPromise=reader.read();}// Read from the stream
26297
26319
  // value is a Uint8Array
26298
- _context8.next=7;return _awaitAsyncGenerator(currentBatchPromise);case 7:_yield$_awaitAsyncGen=_context8.sent;done=_yield$_awaitAsyncGen.done;value=_yield$_awaitAsyncGen.value;if(!done){_context8.next=12;break;}return _context8.abrupt("return");case 12:_context8.next=14;return toArrayBuffer(value);case 14:_context8.next=2;break;case 16:_context8.next=21;break;case 18:_context8.prev=18;_context8.t0=_context8["catch"](1);// TODO - examples makes it look like this should always be called,
26320
+ _context9.next=7;return _awaitAsyncGenerator(currentBatchPromise);case 7:_yield$_awaitAsyncGen=_context9.sent;done=_yield$_awaitAsyncGen.done;value=_yield$_awaitAsyncGen.value;if(!done){_context9.next=12;break;}return _context9.abrupt("return");case 12:_context9.next=14;return toArrayBuffer(value);case 14:_context9.next=2;break;case 16:_context9.next=21;break;case 18:_context9.prev=18;_context9.t0=_context9["catch"](1);// TODO - examples makes it look like this should always be called,
26299
26321
  // but that generates exceptions so only call it if we do not reach the end
26300
- reader.releaseLock();case 21:case"end":return _context8.stop();}}},_callee5,null,[[1,18]]);}));return _makeBrowserStreamIterator.apply(this,arguments);}function makeNodeStreamIterator(_x5,_x6){return _makeNodeStreamIterator.apply(this,arguments);}/* TODO - remove NODE < 10
26322
+ reader.releaseLock();case 21:case"end":return _context9.stop();}}},_callee6,null,[[1,18]]);}));return _makeBrowserStreamIterator.apply(this,arguments);}function makeNodeStreamIterator(_x5,_x6){return _makeNodeStreamIterator.apply(this,arguments);}/* TODO - remove NODE < 10
26301
26323
  * @see https://github.com/bustle/streaming-iterables, MIT license
26302
26324
  *
26303
26325
  if (typeof stream[Symbol.asyncIterator] === 'function') {
@@ -26332,9 +26354,9 @@ async function onceReadable(stream: Readable): Promise<any> {
26332
26354
  * @returns
26333
26355
  * This function can e.g. be used to enable data sources that can only be read atomically
26334
26356
  * (such as `Blob` and `File` via `FileReader`) to still be parsed in batches.
26335
- */function _makeNodeStreamIterator(){_makeNodeStreamIterator=_wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(stream,options){var _iteratorAbruptCompletion2,_didIteratorError2,_iteratorError2,_iterator2,_step2,chunk;return _regeneratorRuntime().wrap(function _callee6$(_context9){while(1){switch(_context9.prev=_context9.next){case 0:// Hacky test for node version to ensure we don't call bad polyfills
26357
+ */function _makeNodeStreamIterator(){_makeNodeStreamIterator=_wrapAsyncGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(stream,options){var _iteratorAbruptCompletion2,_didIteratorError2,_iteratorError2,_iterator2,_step2,chunk;return _regeneratorRuntime().wrap(function _callee7$(_context10){while(1){switch(_context10.prev=_context10.next){case 0:// Hacky test for node version to ensure we don't call bad polyfills
26336
26358
  // NODE 10+: stream is an asyncIterator
26337
- _iteratorAbruptCompletion2=false;_didIteratorError2=false;_context9.prev=2;_iterator2=_asyncIterator(stream);case 4:_context9.next=6;return _awaitAsyncGenerator(_iterator2.next());case 6:if(!(_iteratorAbruptCompletion2=!(_step2=_context9.sent).done)){_context9.next=13;break;}chunk=_step2.value;_context9.next=10;return toArrayBuffer(chunk);case 10:_iteratorAbruptCompletion2=false;_context9.next=4;break;case 13:_context9.next=19;break;case 15:_context9.prev=15;_context9.t0=_context9["catch"](2);_didIteratorError2=true;_iteratorError2=_context9.t0;case 19:_context9.prev=19;_context9.prev=20;if(!(_iteratorAbruptCompletion2&&_iterator2["return"]!=null)){_context9.next=24;break;}_context9.next=24;return _awaitAsyncGenerator(_iterator2["return"]());case 24:_context9.prev=24;if(!_didIteratorError2){_context9.next=27;break;}throw _iteratorError2;case 27:return _context9.finish(24);case 28:return _context9.finish(19);case 29:case"end":return _context9.stop();}}},_callee6,null,[[2,15,19,29],[20,,24,28]]);}));return _makeNodeStreamIterator.apply(this,arguments);}function makeIterator(data,options){if(typeof data==='string'){// Note: Converts string chunks to binary
26359
+ _iteratorAbruptCompletion2=false;_didIteratorError2=false;_context10.prev=2;_iterator2=_asyncIterator(stream);case 4:_context10.next=6;return _awaitAsyncGenerator(_iterator2.next());case 6:if(!(_iteratorAbruptCompletion2=!(_step2=_context10.sent).done)){_context10.next=13;break;}chunk=_step2.value;_context10.next=10;return toArrayBuffer(chunk);case 10:_iteratorAbruptCompletion2=false;_context10.next=4;break;case 13:_context10.next=19;break;case 15:_context10.prev=15;_context10.t0=_context10["catch"](2);_didIteratorError2=true;_iteratorError2=_context10.t0;case 19:_context10.prev=19;_context10.prev=20;if(!(_iteratorAbruptCompletion2&&_iterator2["return"]!=null)){_context10.next=24;break;}_context10.next=24;return _awaitAsyncGenerator(_iterator2["return"]());case 24:_context10.prev=24;if(!_didIteratorError2){_context10.next=27;break;}throw _iteratorError2;case 27:return _context10.finish(24);case 28:return _context10.finish(19);case 29:case"end":return _context10.stop();}}},_callee7,null,[[2,15,19,29],[20,,24,28]]);}));return _makeNodeStreamIterator.apply(this,arguments);}function makeIterator(data,options){if(typeof data==='string'){// Note: Converts string chunks to binary
26338
26360
  return makeStringIterator(data,options);}if(data instanceof ArrayBuffer){return makeArrayBufferIterator(data,options);}if(isBlob(data)){return makeBlobIterator(data,options);}if(isReadableStream(data)){return makeStreamIterator(data,options);}if(isResponse(data)){var response=data;return makeStreamIterator(response.body,options);}throw new Error('makeIterator');}// loaders.gl
26339
26361
  var ERR_DATA='Cannot convert supplied data type';// eslint-disable-next-line complexity
26340
26362
  function getArrayBufferOrStringFromDataSync(data,loader,options){if(loader.text&&typeof data==='string'){return data;}if(isBuffer(data)){// @ts-ignore
@@ -26345,13 +26367,13 @@ if(loader.text&&!loader.binary){var _textDecoder=new TextDecoder('utf8');return
26345
26367
  // TODO - this is a potentially unnecessary copy
26346
26368
  var byteLength=data.byteLength||data.length;if(data.byteOffset!==0||byteLength!==_arrayBuffer.byteLength){// console.warn(`loaders.gl copying arraybuffer of length ${byteLength}`);
26347
26369
  _arrayBuffer=_arrayBuffer.slice(data.byteOffset,data.byteOffset+byteLength);}return _arrayBuffer;}throw new Error(ERR_DATA);}// Convert async iterator to a promise
26348
- function getArrayBufferOrStringFromData(_x33,_x34,_x35){return _getArrayBufferOrStringFromData.apply(this,arguments);}// loaders.gl
26370
+ function getArrayBufferOrStringFromData(_x34,_x35,_x36){return _getArrayBufferOrStringFromData.apply(this,arguments);}// loaders.gl
26349
26371
  /**
26350
26372
  * Gets the current fetch function from options and context
26351
26373
  * @param options
26352
26374
  * @param context
26353
- */function _getArrayBufferOrStringFromData(){_getArrayBufferOrStringFromData=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee33(data,loader,options){var isArrayBuffer,response;return _regeneratorRuntime().wrap(function _callee33$(_context37){while(1){switch(_context37.prev=_context37.next){case 0:isArrayBuffer=data instanceof ArrayBuffer||ArrayBuffer.isView(data);if(!(typeof data==='string'||isArrayBuffer)){_context37.next=3;break;}return _context37.abrupt("return",getArrayBufferOrStringFromDataSync(data,loader));case 3:if(!isBlob(data)){_context37.next=7;break;}_context37.next=6;return makeResponse(data);case 6:data=_context37.sent;case 7:if(!isResponse(data)){_context37.next=21;break;}response=data;_context37.next=11;return checkResponse(response);case 11:if(!loader.binary){_context37.next=17;break;}_context37.next=14;return response.arrayBuffer();case 14:_context37.t0=_context37.sent;_context37.next=20;break;case 17:_context37.next=19;return response.text();case 19:_context37.t0=_context37.sent;case 20:return _context37.abrupt("return",_context37.t0);case 21:if(isReadableStream(data)){// @ts-expect-error TS2559 options type
26354
- data=makeIterator(data,options);}if(!(isIterable(data)||isAsyncIterable(data))){_context37.next=24;break;}return _context37.abrupt("return",concatenateArrayBuffersAsync(data));case 24:throw new Error(ERR_DATA);case 25:case"end":return _context37.stop();}}},_callee33);}));return _getArrayBufferOrStringFromData.apply(this,arguments);}function getFetchFunction(options,context){var globalOptions=getGlobalLoaderOptions();var loaderOptions=options||globalOptions;// options.fetch can be a function
26375
+ */function _getArrayBufferOrStringFromData(){_getArrayBufferOrStringFromData=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee34(data,loader,options){var isArrayBuffer,response;return _regeneratorRuntime().wrap(function _callee34$(_context38){while(1){switch(_context38.prev=_context38.next){case 0:isArrayBuffer=data instanceof ArrayBuffer||ArrayBuffer.isView(data);if(!(typeof data==='string'||isArrayBuffer)){_context38.next=3;break;}return _context38.abrupt("return",getArrayBufferOrStringFromDataSync(data,loader));case 3:if(!isBlob(data)){_context38.next=7;break;}_context38.next=6;return makeResponse(data);case 6:data=_context38.sent;case 7:if(!isResponse(data)){_context38.next=21;break;}response=data;_context38.next=11;return checkResponse(response);case 11:if(!loader.binary){_context38.next=17;break;}_context38.next=14;return response.arrayBuffer();case 14:_context38.t0=_context38.sent;_context38.next=20;break;case 17:_context38.next=19;return response.text();case 19:_context38.t0=_context38.sent;case 20:return _context38.abrupt("return",_context38.t0);case 21:if(isReadableStream(data)){// @ts-expect-error TS2559 options type
26376
+ data=makeIterator(data,options);}if(!(isIterable(data)||isAsyncIterable(data))){_context38.next=24;break;}return _context38.abrupt("return",concatenateArrayBuffersAsync(data));case 24:throw new Error(ERR_DATA);case 25:case"end":return _context38.stop();}}},_callee34);}));return _getArrayBufferOrStringFromData.apply(this,arguments);}function getFetchFunction(options,context){var globalOptions=getGlobalLoaderOptions();var loaderOptions=options||globalOptions;// options.fetch can be a function
26355
26377
  if(typeof loaderOptions.fetch==='function'){return loaderOptions.fetch;}// options.fetch can be an options object
26356
26378
  if(isObject(loaderOptions.fetch)){return function(url){return fetchFile$1(url,loaderOptions.fetch);};}// else refer to context (from parent loader) if available
26357
26379
  if(context!==null&&context!==void 0&&context.fetch){return context===null||context===void 0?void 0:context.fetch;}// else return the default fetch function
@@ -26380,31 +26402,31 @@ return candidateLoaders&&candidateLoaders.length?candidateLoaders:undefined;}//
26380
26402
  * @param options
26381
26403
  * @param context
26382
26404
  */ // implementation signature
26383
- function parse$3(_x36,_x37,_x38,_x39){return _parse$.apply(this,arguments);}// TODO: support progress and abort
26405
+ function parse$3(_x37,_x38,_x39,_x40){return _parse$.apply(this,arguments);}// TODO: support progress and abort
26384
26406
  // TODO - should accept loader.parseAsyncIterator and concatenate.
26385
- function _parse$(){_parse$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee34(data,loaders,options,context){var url,typedLoaders,candidateLoaders,loader;return _regeneratorRuntime().wrap(function _callee34$(_context38){while(1){switch(_context38.prev=_context38.next){case 0:// Signature: parse(data, options, context | url)
26407
+ function _parse$(){_parse$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee35(data,loaders,options,context){var url,typedLoaders,candidateLoaders,loader;return _regeneratorRuntime().wrap(function _callee35$(_context39){while(1){switch(_context39.prev=_context39.next){case 0:// Signature: parse(data, options, context | url)
26386
26408
  // Uses registered loaders
26387
26409
  if(loaders&&!Array.isArray(loaders)&&!isLoaderObject(loaders)){context=undefined;// context not supported in short signature
26388
- options=loaders;loaders=undefined;}_context38.next=3;return data;case 3:data=_context38.sent;// Resolve any promise
26410
+ options=loaders;loaders=undefined;}_context39.next=3;return data;case 3:data=_context39.sent;// Resolve any promise
26389
26411
  options=options||{};// Could be invalid...
26390
26412
  // Extract a url for auto detection
26391
26413
  url=getResourceUrl(data);// Chooses a loader (and normalizes it)
26392
26414
  // Also use any loaders in the context, new loaders take priority
26393
26415
  typedLoaders=loaders;candidateLoaders=getLoadersFromContext(typedLoaders,context);// todo hacky type cast
26394
- _context38.next=10;return selectLoader(data,candidateLoaders,options);case 10:loader=_context38.sent;if(loader){_context38.next=13;break;}return _context38.abrupt("return",null);case 13:// Normalize options
26416
+ _context39.next=10;return selectLoader(data,candidateLoaders,options);case 10:loader=_context39.sent;if(loader){_context39.next=13;break;}return _context39.abrupt("return",null);case 13:// Normalize options
26395
26417
  // @ts-expect-error
26396
26418
  options=normalizeOptions(options,loader,candidateLoaders,url);// Could be invalid...
26397
26419
  // Get a context (if already present, will be unchanged)
26398
26420
  context=getLoaderContext(// @ts-expect-error
26399
- {url:url,_parse:parse$3,loaders:candidateLoaders},options,context||null);_context38.next=17;return parseWithLoader(loader,data,options,context);case 17:return _context38.abrupt("return",_context38.sent);case 18:case"end":return _context38.stop();}}},_callee34);}));return _parse$.apply(this,arguments);}function parseWithLoader(_x40,_x41,_x42,_x43){return _parseWithLoader.apply(this,arguments);}// loaders.gl
26421
+ {url:url,_parse:parse$3,loaders:candidateLoaders},options,context||null);_context39.next=17;return parseWithLoader(loader,data,options,context);case 17:return _context39.abrupt("return",_context39.sent);case 18:case"end":return _context39.stop();}}},_callee35);}));return _parse$.apply(this,arguments);}function parseWithLoader(_x41,_x42,_x43,_x44){return _parseWithLoader.apply(this,arguments);}// loaders.gl
26400
26422
  /**
26401
26423
  * Deduces a simple data type "descriptor from a typed array instance
26402
- */function _parseWithLoader(){_parseWithLoader=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee35(loader,data,options,context){var response,ok,redirected,status,statusText,type,url,headers,loaderWithParser;return _regeneratorRuntime().wrap(function _callee35$(_context39){while(1){switch(_context39.prev=_context39.next){case 0:validateWorkerVersion(loader);options=mergeLoaderOptions(loader.options,options);if(isResponse(data)){// Serialize to support passing the response to web worker
26424
+ */function _parseWithLoader(){_parseWithLoader=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee36(loader,data,options,context){var response,ok,redirected,status,statusText,type,url,headers,loaderWithParser;return _regeneratorRuntime().wrap(function _callee36$(_context40){while(1){switch(_context40.prev=_context40.next){case 0:validateWorkerVersion(loader);options=mergeLoaderOptions(loader.options,options);if(isResponse(data)){// Serialize to support passing the response to web worker
26403
26425
  response=data;ok=response.ok,redirected=response.redirected,status=response.status,statusText=response.statusText,type=response.type,url=response.url;headers=Object.fromEntries(response.headers.entries());// @ts-expect-error TODO - fix this
26404
- context.response={headers:headers,ok:ok,redirected:redirected,status:status,statusText:statusText,type:type,url:url};}_context39.next=5;return getArrayBufferOrStringFromData(data,loader,options);case 5:data=_context39.sent;loaderWithParser=loader;// First check for synchronous text parser, wrap results in promises
26405
- if(!(loaderWithParser.parseTextSync&&typeof data==='string')){_context39.next=9;break;}return _context39.abrupt("return",loaderWithParser.parseTextSync(data,options,context));case 9:if(!canParseWithWorker(loader,options)){_context39.next=13;break;}_context39.next=12;return parseWithWorker(loader,data,options,context,parse$3);case 12:return _context39.abrupt("return",_context39.sent);case 13:if(!(loaderWithParser.parseText&&typeof data==='string')){_context39.next=17;break;}_context39.next=16;return loaderWithParser.parseText(data,options,context);case 16:return _context39.abrupt("return",_context39.sent);case 17:if(!loaderWithParser.parse){_context39.next=21;break;}_context39.next=20;return loaderWithParser.parse(data,options,context);case 20:return _context39.abrupt("return",_context39.sent);case 21:// This should not happen, all sync loaders should also offer `parse` function
26426
+ context.response={headers:headers,ok:ok,redirected:redirected,status:status,statusText:statusText,type:type,url:url};}_context40.next=5;return getArrayBufferOrStringFromData(data,loader,options);case 5:data=_context40.sent;loaderWithParser=loader;// First check for synchronous text parser, wrap results in promises
26427
+ if(!(loaderWithParser.parseTextSync&&typeof data==='string')){_context40.next=9;break;}return _context40.abrupt("return",loaderWithParser.parseTextSync(data,options,context));case 9:if(!canParseWithWorker(loader,options)){_context40.next=13;break;}_context40.next=12;return parseWithWorker(loader,data,options,context,parse$3);case 12:return _context40.abrupt("return",_context40.sent);case 13:if(!(loaderWithParser.parseText&&typeof data==='string')){_context40.next=17;break;}_context40.next=16;return loaderWithParser.parseText(data,options,context);case 16:return _context40.abrupt("return",_context40.sent);case 17:if(!loaderWithParser.parse){_context40.next=21;break;}_context40.next=20;return loaderWithParser.parse(data,options,context);case 20:return _context40.abrupt("return",_context40.sent);case 21:// This should not happen, all sync loaders should also offer `parse` function
26406
26428
  assert$2(!loaderWithParser.parseSync);// TBD - If asynchronous parser not available, return null
26407
- throw new Error("".concat(loader.id," loader - no parser found and worker is disabled"));case 23:case"end":return _context39.stop();}}},_callee35);}));return _parseWithLoader.apply(this,arguments);}function getDataTypeFromTypedArray(array){switch(array.constructor){case Int8Array:return'int8';case Uint8Array:case Uint8ClampedArray:return'uint8';case Int16Array:return'int16';case Uint16Array:return'uint16';case Int32Array:return'int32';case Uint32Array:return'uint32';case Float32Array:return'float32';case Float64Array:return'float64';default:return'null';}}/**
26429
+ throw new Error("".concat(loader.id," loader - no parser found and worker is disabled"));case 23:case"end":return _context40.stop();}}},_callee36);}));return _parseWithLoader.apply(this,arguments);}function getDataTypeFromTypedArray(array){switch(array.constructor){case Int8Array:return'int8';case Uint8Array:case Uint8ClampedArray:return'uint8';case Int16Array:return'int16';case Uint16Array:return'uint16';case Int32Array:return'int32';case Uint32Array:return'uint32';case Float32Array:return'float32';case Float64Array:return'float64';default:return'null';}}/**
26408
26430
  * Get number of vertices in mesh
26409
26431
  * @param attributes
26410
26432
  */ /**
@@ -26412,7 +26434,7 @@ throw new Error("".concat(loader.id," loader - no parser found and worker is dis
26412
26434
  * @param attributes
26413
26435
  * @returns array of two vectors representing the axis aligned bounding box
26414
26436
  */ // eslint-disable-next-line complexity
26415
- function getMeshBoundingBox(attributes){var minX=Infinity;var minY=Infinity;var minZ=Infinity;var maxX=-Infinity;var maxY=-Infinity;var maxZ=-Infinity;var positions=attributes.POSITION?attributes.POSITION.value:[];var len=positions&&positions.length;for(var _i539=0;_i539<len;_i539+=3){var x=positions[_i539];var y=positions[_i539+1];var _z4=positions[_i539+2];minX=x<minX?x:minX;minY=y<minY?y:minY;minZ=_z4<minZ?_z4:minZ;maxX=x>maxX?x:maxX;maxY=y>maxY?y:maxY;maxZ=_z4>maxZ?_z4:maxZ;}return[[minX,minY,minZ],[maxX,maxY,maxZ]];}// loaders.gl
26437
+ function getMeshBoundingBox(attributes){var minX=Infinity;var minY=Infinity;var minZ=Infinity;var maxX=-Infinity;var maxY=-Infinity;var maxZ=-Infinity;var positions=attributes.POSITION?attributes.POSITION.value:[];var len=positions&&positions.length;for(var _i538=0;_i538<len;_i538+=3){var x=positions[_i538];var y=positions[_i538+1];var _z4=positions[_i538+2];minX=x<minX?x:minX;minY=y<minY?y:minY;minZ=_z4<minZ?_z4:minZ;maxX=x>maxX?x:maxX;maxY=y>maxY?y:maxY;maxZ=_z4>maxZ?_z4:maxZ;}return[[minX,minY,minZ],[maxX,maxY,maxZ]];}// loaders.gl
26416
26438
  /**
26417
26439
  * Create a schema for mesh attributes data
26418
26440
  * @param attributes
@@ -26463,29 +26485,29 @@ var src="data:image/svg+xml;base64,".concat(btoa(xmlText));return src;}return ge
26463
26485
  throw new Error('SVG cannot be parsed directly to imagebitmap');}// TODO - how to determine mime type? Param? Sniff here?
26464
26486
  return new Blob([new Uint8Array(arrayBuffer)]);// MIME type not needed?
26465
26487
  }// Parses html image from array buffer
26466
- function parseToImage(_x44,_x45,_x46){return _parseToImage.apply(this,arguments);}function _parseToImage(){_parseToImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee36(arrayBuffer,options,url){var blobOrDataUrl,URL,objectUrl;return _regeneratorRuntime().wrap(function _callee36$(_context40){while(1){switch(_context40.prev=_context40.next){case 0:// Note: image parsing requires conversion to Blob (for createObjectURL).
26488
+ function parseToImage(_x45,_x46,_x47){return _parseToImage.apply(this,arguments);}function _parseToImage(){_parseToImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee37(arrayBuffer,options,url){var blobOrDataUrl,URL,objectUrl;return _regeneratorRuntime().wrap(function _callee37$(_context41){while(1){switch(_context41.prev=_context41.next){case 0:// Note: image parsing requires conversion to Blob (for createObjectURL).
26467
26489
  // Potentially inefficient for not using `response.blob()` (and for File / Blob inputs)...
26468
26490
  // But presumably not worth adding 'blob' flag to loader objects?
26469
- blobOrDataUrl=getBlobOrSVGDataUrl(arrayBuffer,url);URL=self.URL||self.webkitURL;objectUrl=typeof blobOrDataUrl!=='string'&&URL.createObjectURL(blobOrDataUrl);_context40.prev=3;_context40.next=6;return loadToImage(objectUrl||blobOrDataUrl,options);case 6:return _context40.abrupt("return",_context40.sent);case 7:_context40.prev=7;if(objectUrl){URL.revokeObjectURL(objectUrl);}return _context40.finish(7);case 10:case"end":return _context40.stop();}}},_callee36,null,[[3,,7,10]]);}));return _parseToImage.apply(this,arguments);}function loadToImage(_x47,_x48){return _loadToImage.apply(this,arguments);}function _loadToImage(){_loadToImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee37(url,options){var image;return _regeneratorRuntime().wrap(function _callee37$(_context41){while(1){switch(_context41.prev=_context41.next){case 0:image=new Image();image.src=url;// The `image.onload()` callback does not guarantee that the image has been decoded
26491
+ blobOrDataUrl=getBlobOrSVGDataUrl(arrayBuffer,url);URL=self.URL||self.webkitURL;objectUrl=typeof blobOrDataUrl!=='string'&&URL.createObjectURL(blobOrDataUrl);_context41.prev=3;_context41.next=6;return loadToImage(objectUrl||blobOrDataUrl,options);case 6:return _context41.abrupt("return",_context41.sent);case 7:_context41.prev=7;if(objectUrl){URL.revokeObjectURL(objectUrl);}return _context41.finish(7);case 10:case"end":return _context41.stop();}}},_callee37,null,[[3,,7,10]]);}));return _parseToImage.apply(this,arguments);}function loadToImage(_x48,_x49){return _loadToImage.apply(this,arguments);}function _loadToImage(){_loadToImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee38(url,options){var image;return _regeneratorRuntime().wrap(function _callee38$(_context42){while(1){switch(_context42.prev=_context42.next){case 0:image=new Image();image.src=url;// The `image.onload()` callback does not guarantee that the image has been decoded
26470
26492
  // so a main thread "freeze" can be incurred when using the image for the first time.
26471
26493
  // `Image.decode()` returns a promise that completes when image is decoded.
26472
26494
  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/decode
26473
26495
  // Note: When calling `img.decode()`, we do not need to wait for `img.onload()`
26474
26496
  // Note: `HTMLImageElement.decode()` is not available in Edge and IE11
26475
- if(!(options.image&&options.image.decode&&image.decode)){_context41.next=6;break;}_context41.next=5;return image.decode();case 5:return _context41.abrupt("return",image);case 6:_context41.next=8;return new Promise(function(resolve,reject){try{image.onload=function(){return resolve(image);};image.onerror=function(error){var message=error instanceof Error?error.message:'error';reject(new Error(message));};}catch(error){reject(error);}});case 8:return _context41.abrupt("return",_context41.sent);case 9:case"end":return _context41.stop();}}},_callee37);}));return _loadToImage.apply(this,arguments);}var EMPTY_OBJECT={};var imagebitmapOptionsSupported=true;/**
26497
+ if(!(options.image&&options.image.decode&&image.decode)){_context42.next=6;break;}_context42.next=5;return image.decode();case 5:return _context42.abrupt("return",image);case 6:_context42.next=8;return new Promise(function(resolve,reject){try{image.onload=function(){return resolve(image);};image.onerror=function(error){var message=error instanceof Error?error.message:'error';reject(new Error(message));};}catch(error){reject(error);}});case 8:return _context42.abrupt("return",_context42.sent);case 9:case"end":return _context42.stop();}}},_callee38);}));return _loadToImage.apply(this,arguments);}var EMPTY_OBJECT={};var imagebitmapOptionsSupported=true;/**
26476
26498
  * Asynchronously parses an array buffer into an ImageBitmap - this contains the decoded data
26477
26499
  * ImageBitmaps are supported on worker threads, but not supported on Edge, IE11 and Safari
26478
26500
  * https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap#Browser_compatibility
26479
26501
  *
26480
26502
  * TODO - createImageBitmap supports source rect (5 param overload), pass through?
26481
- */function parseToImageBitmap(_x49,_x50,_x51){return _parseToImageBitmap.apply(this,arguments);}/**
26503
+ */function parseToImageBitmap(_x50,_x51,_x52){return _parseToImageBitmap.apply(this,arguments);}/**
26482
26504
  * Safely creates an imageBitmap with options
26483
26505
  * *
26484
26506
  * Firefox crashes if imagebitmapOptions is supplied
26485
26507
  * Avoid supplying if not provided or supported, remember if not supported
26486
- */function _parseToImageBitmap(){_parseToImageBitmap=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee38(arrayBuffer,options,url){var blob,_image7,imagebitmapOptions;return _regeneratorRuntime().wrap(function _callee38$(_context42){while(1){switch(_context42.prev=_context42.next){case 0:if(!isSVG(url)){_context42.next=7;break;}_context42.next=3;return parseToImage(arrayBuffer,options,url);case 3:_image7=_context42.sent;blob=_image7;_context42.next=8;break;case 7:// Create blob from the array buffer
26487
- blob=getBlob(arrayBuffer,url);case 8:imagebitmapOptions=options&&options.imagebitmap;_context42.next=11;return safeCreateImageBitmap(blob,imagebitmapOptions);case 11:return _context42.abrupt("return",_context42.sent);case 12:case"end":return _context42.stop();}}},_callee38);}));return _parseToImageBitmap.apply(this,arguments);}function safeCreateImageBitmap(_x52){return _safeCreateImageBitmap.apply(this,arguments);}function _safeCreateImageBitmap(){_safeCreateImageBitmap=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee39(blob){var imagebitmapOptions,_args42=arguments;return _regeneratorRuntime().wrap(function _callee39$(_context43){while(1){switch(_context43.prev=_context43.next){case 0:imagebitmapOptions=_args42.length>1&&_args42[1]!==undefined?_args42[1]:null;if(isEmptyObject(imagebitmapOptions)||!imagebitmapOptionsSupported){imagebitmapOptions=null;}if(!imagebitmapOptions){_context43.next=13;break;}_context43.prev=3;_context43.next=6;return createImageBitmap(blob,imagebitmapOptions);case 6:return _context43.abrupt("return",_context43.sent);case 9:_context43.prev=9;_context43.t0=_context43["catch"](3);console.warn(_context43.t0);// eslint-disable-line
26488
- imagebitmapOptionsSupported=false;case 13:_context43.next=15;return createImageBitmap(blob);case 15:return _context43.abrupt("return",_context43.sent);case 16:case"end":return _context43.stop();}}},_callee39,null,[[3,9]]);}));return _safeCreateImageBitmap.apply(this,arguments);}function isEmptyObject(object){// @ts-ignore
26508
+ */function _parseToImageBitmap(){_parseToImageBitmap=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee39(arrayBuffer,options,url){var blob,_image7,imagebitmapOptions;return _regeneratorRuntime().wrap(function _callee39$(_context43){while(1){switch(_context43.prev=_context43.next){case 0:if(!isSVG(url)){_context43.next=7;break;}_context43.next=3;return parseToImage(arrayBuffer,options,url);case 3:_image7=_context43.sent;blob=_image7;_context43.next=8;break;case 7:// Create blob from the array buffer
26509
+ blob=getBlob(arrayBuffer,url);case 8:imagebitmapOptions=options&&options.imagebitmap;_context43.next=11;return safeCreateImageBitmap(blob,imagebitmapOptions);case 11:return _context43.abrupt("return",_context43.sent);case 12:case"end":return _context43.stop();}}},_callee39);}));return _parseToImageBitmap.apply(this,arguments);}function safeCreateImageBitmap(_x53){return _safeCreateImageBitmap.apply(this,arguments);}function _safeCreateImageBitmap(){_safeCreateImageBitmap=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee40(blob){var imagebitmapOptions,_args43=arguments;return _regeneratorRuntime().wrap(function _callee40$(_context44){while(1){switch(_context44.prev=_context44.next){case 0:imagebitmapOptions=_args43.length>1&&_args43[1]!==undefined?_args43[1]:null;if(isEmptyObject(imagebitmapOptions)||!imagebitmapOptionsSupported){imagebitmapOptions=null;}if(!imagebitmapOptions){_context44.next=13;break;}_context44.prev=3;_context44.next=6;return createImageBitmap(blob,imagebitmapOptions);case 6:return _context44.abrupt("return",_context44.sent);case 9:_context44.prev=9;_context44.t0=_context44["catch"](3);console.warn(_context44.t0);// eslint-disable-line
26510
+ imagebitmapOptionsSupported=false;case 13:_context44.next=15;return createImageBitmap(blob);case 15:return _context44.abrupt("return",_context44.sent);case 16:case"end":return _context44.stop();}}},_callee40,null,[[3,9]]);}));return _safeCreateImageBitmap.apply(this,arguments);}function isEmptyObject(object){// @ts-ignore
26489
26511
  for(var key in object||EMPTY_OBJECT){return false;}return true;}// loaders.gl
26490
26512
  // SPDX-License-Identifier: MIT
26491
26513
  // Copyright (c) vis.gl contributors
@@ -26540,7 +26562,7 @@ return decodeMajorBrand(buffer);}/**
26540
26562
  // return {ext: '3gp', mime: 'video/3gpp'};
26541
26563
  // }
26542
26564
  // return {ext: 'mp4', mime: 'video/mp4'};
26543
- }/** Interpret a chunk of bytes as a UTF8 string */function getUTF8String(array,start,end){return String.fromCharCode.apply(String,_toConsumableArray(array.slice(start,end)));}function stringToBytes(string){return _toConsumableArray(string).map(function(character){return character.charCodeAt(0);});}function checkString(buffer,header){var offset=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;var headerBytes=stringToBytes(header);for(var _i540=0;_i540<headerBytes.length;++_i540){if(headerBytes[_i540]!==buffer[_i540+offset]){return false;}}return true;}// Attributions
26565
+ }/** Interpret a chunk of bytes as a UTF8 string */function getUTF8String(array,start,end){return String.fromCharCode.apply(String,_toConsumableArray(array.slice(start,end)));}function stringToBytes(string){return _toConsumableArray(string).map(function(character){return character.charCodeAt(0);});}function checkString(buffer,header){var offset=arguments.length>2&&arguments[2]!==undefined?arguments[2]:0;var headerBytes=stringToBytes(header);for(var _i539=0;_i539<headerBytes.length;++_i539){if(headerBytes[_i539]!==buffer[_i539+offset]){return false;}}return true;}// Attributions
26544
26566
  var BIG_ENDIAN=false;var LITTLE_ENDIAN$1=true;/**
26545
26567
  * Extracts `{mimeType, width and height}` from a memory buffer containing a known image format
26546
26568
  * Currently supports `image/png`, `image/jpeg`, `image/bmp` and `image/gif`.
@@ -26573,7 +26595,7 @@ width:dataView.getUint16(i+7,BIG_ENDIAN)// Number of pixels per line
26573
26595
  if(!tableMarkers.has(marker)){return null;}// Length includes size of length parameter but not the two byte header.
26574
26596
  i+=2;i+=dataView.getUint16(i,BIG_ENDIAN);}return null;}function getJpegMarkers(){// Tables/misc header markers.
26575
26597
  // DQT, DHT, DAC, DRI, COM, APP_n
26576
- var tableMarkers=new Set([0xffdb,0xffc4,0xffcc,0xffdd,0xfffe]);for(var _i541=0xffe0;_i541<0xfff0;++_i541){tableMarkers.add(_i541);}// SOF markers and DHP marker.
26598
+ var tableMarkers=new Set([0xffdb,0xffc4,0xffcc,0xffdd,0xfffe]);for(var _i540=0xffe0;_i540<0xfff0;++_i540){tableMarkers.add(_i540);}// SOF markers and DHP marker.
26577
26599
  // These markers are after tables/misc data.
26578
26600
  var sofMarkers=new Set([0xffc0,0xffc1,0xffc2,0xffc3,0xffc5,0xffc6,0xffc7,0xffc9,0xffca,0xffcb,0xffcd,0xffce,0xffcf,0xffde]);return{tableMarkers:tableMarkers,sofMarkers:sofMarkers};}// TODO - move into image module?
26579
26601
  function toDataView(data){if(data instanceof DataView){return data;}if(ArrayBuffer.isView(data)){return new DataView(data.buffer);}// TODO: make these functions work for Node.js buffers?
@@ -26582,16 +26604,16 @@ function toDataView(data){if(data instanceof DataView){return data;}if(ArrayBuff
26582
26604
  // }
26583
26605
  // Careful - Node Buffers will look like ArrayBuffers (keep after isBuffer)
26584
26606
  if(data instanceof ArrayBuffer){return new DataView(data);}throw new Error('toDataView');}// Use polyfills if installed to parsed image using get-pixels
26585
- function parseToNodeImage(_x53,_x54){return _parseToNodeImage.apply(this,arguments);}// Parse to platform defined image type (data on node, ImageBitmap or HTMLImage on browser)
26607
+ function parseToNodeImage(_x54,_x55){return _parseToNodeImage.apply(this,arguments);}// Parse to platform defined image type (data on node, ImageBitmap or HTMLImage on browser)
26586
26608
  // eslint-disable-next-line complexity
26587
- function _parseToNodeImage(){_parseToNodeImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee40(arrayBuffer,options){var _globalThis$loaders8;var _ref39,mimeType,parseImageNode;return _regeneratorRuntime().wrap(function _callee40$(_context44){while(1){switch(_context44.prev=_context44.next){case 0:_ref39=getBinaryImageMetadata(arrayBuffer)||{},mimeType=_ref39.mimeType;// @ts-ignore
26609
+ function _parseToNodeImage(){_parseToNodeImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee41(arrayBuffer,options){var _globalThis$loaders8;var _ref39,mimeType,parseImageNode;return _regeneratorRuntime().wrap(function _callee41$(_context45){while(1){switch(_context45.prev=_context45.next){case 0:_ref39=getBinaryImageMetadata(arrayBuffer)||{},mimeType=_ref39.mimeType;// @ts-ignore
26588
26610
  parseImageNode=(_globalThis$loaders8=globalThis.loaders)===null||_globalThis$loaders8===void 0?void 0:_globalThis$loaders8.parseImageNode;assert$4(parseImageNode);// '@loaders.gl/polyfills not installed'
26589
26611
  // @ts-expect-error TODO should we throw error in this case?
26590
- _context44.next=5;return parseImageNode(arrayBuffer,mimeType);case 5:return _context44.abrupt("return",_context44.sent);case 6:case"end":return _context44.stop();}}},_callee40);}));return _parseToNodeImage.apply(this,arguments);}function parseImage(_x55,_x56,_x57){return _parseImage.apply(this,arguments);}// Get a loadable image type from image type
26591
- function _parseImage(){_parseImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee41(arrayBuffer,options,context){var imageOptions,imageType,_ref40,url,loadType,image;return _regeneratorRuntime().wrap(function _callee41$(_context45){while(1){switch(_context45.prev=_context45.next){case 0:options=options||{};imageOptions=options.image||{};// The user can request a specific output format via `options.image.type`
26612
+ _context45.next=5;return parseImageNode(arrayBuffer,mimeType);case 5:return _context45.abrupt("return",_context45.sent);case 6:case"end":return _context45.stop();}}},_callee41);}));return _parseToNodeImage.apply(this,arguments);}function parseImage(_x56,_x57,_x58){return _parseImage.apply(this,arguments);}// Get a loadable image type from image type
26613
+ function _parseImage(){_parseImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee42(arrayBuffer,options,context){var imageOptions,imageType,_ref40,url,loadType,image;return _regeneratorRuntime().wrap(function _callee42$(_context46){while(1){switch(_context46.prev=_context46.next){case 0:options=options||{};imageOptions=options.image||{};// The user can request a specific output format via `options.image.type`
26592
26614
  imageType=imageOptions.type||'auto';_ref40=context||{},url=_ref40.url;// Note: For options.image.type === `data`, we may still need to load as `image` or `imagebitmap`
26593
- loadType=getLoadableImageType(imageType);_context45.t0=loadType;_context45.next=_context45.t0==='imagebitmap'?8:_context45.t0==='image'?12:_context45.t0==='data'?16:20;break;case 8:_context45.next=10;return parseToImageBitmap(arrayBuffer,options,url);case 10:image=_context45.sent;return _context45.abrupt("break",21);case 12:_context45.next=14;return parseToImage(arrayBuffer,options,url);case 14:image=_context45.sent;return _context45.abrupt("break",21);case 16:_context45.next=18;return parseToNodeImage(arrayBuffer);case 18:image=_context45.sent;return _context45.abrupt("break",21);case 20:assert$4(false);case 21:// Browser: if options.image.type === 'data', we can now extract data from the loaded image
26594
- if(imageType==='data'){image=getImageData(image);}return _context45.abrupt("return",image);case 23:case"end":return _context45.stop();}}},_callee41);}));return _parseImage.apply(this,arguments);}function getLoadableImageType(type){switch(type){case'auto':case'data':// Browser: For image data we need still need to load using an image format
26615
+ loadType=getLoadableImageType(imageType);_context46.t0=loadType;_context46.next=_context46.t0==='imagebitmap'?8:_context46.t0==='image'?12:_context46.t0==='data'?16:20;break;case 8:_context46.next=10;return parseToImageBitmap(arrayBuffer,options,url);case 10:image=_context46.sent;return _context46.abrupt("break",21);case 12:_context46.next=14;return parseToImage(arrayBuffer,options,url);case 14:image=_context46.sent;return _context46.abrupt("break",21);case 16:_context46.next=18;return parseToNodeImage(arrayBuffer);case 18:image=_context46.sent;return _context46.abrupt("break",21);case 20:assert$4(false);case 21:// Browser: if options.image.type === 'data', we can now extract data from the loaded image
26616
+ if(imageType==='data'){image=getImageData(image);}return _context46.abrupt("return",image);case 23:case"end":return _context46.stop();}}},_callee42);}));return _parseImage.apply(this,arguments);}function getLoadableImageType(type){switch(type){case'auto':case'data':// Browser: For image data we need still need to load using an image format
26595
26617
  // Node: the default image type is `data`.
26596
26618
  return getDefaultImageType();default:// Throw an error if not supported
26597
26619
  isImageTypeSupported(type);return type;}}// import type { ImageType } from '@loaders.gl/schema';
@@ -26643,7 +26665,7 @@ var _getAccessorArrayType=getAccessorArrayTypeAndLength(gltfAccessor,bufferView)
26643
26665
  var elementByteSize=componentByteSize*numberOfComponentsInElement;var elementAddressScale=bufferView.byteStride||elementByteSize;// Creare an array of component's type where all components (not just elements) will reside
26644
26666
  if(typeof bufferView.byteStride==='undefined'||bufferView.byteStride===elementByteSize){// No iterleaving
26645
26667
  var _result3=new ArrayType(arrayBuffer,byteOffset,length);return _result3;}// Iterleaving
26646
- var result=new ArrayType(length);for(var _i542=0;_i542<gltfAccessor.count;_i542++){var values=new ArrayType(arrayBuffer,byteOffset+_i542*elementAddressScale,numberOfComponentsInElement);result.set(values,_i542*numberOfComponentsInElement);}return result;}// loaders.gl
26668
+ var result=new ArrayType(length);for(var _i541=0;_i541<gltfAccessor.count;_i541++){var values=new ArrayType(arrayBuffer,byteOffset+_i541*elementAddressScale,numberOfComponentsInElement);result.set(values,_i541*numberOfComponentsInElement);}return result;}// loaders.gl
26647
26669
  function makeDefaultGLTFJson(){return{asset:{version:'2.0',generator:'loaders.gl'},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]};}/**
26648
26670
  * Class for structured access to GLTF data
26649
26671
  */var GLTFScenegraph=/*#__PURE__*/function(){// internal
@@ -26889,7 +26911,7 @@ var offset=(indY*w+indX)*components;return offset;}/**
26889
26911
  * @param stringOffsets - Index of the buffer view containing offsets for strings. It should be available for string type.
26890
26912
  * @returns String property values
26891
26913
  */function getPropertyDataString(numberOfElements,valuesDataBytes,arrayOffsets,stringOffsets){if(arrayOffsets){// TODO: implement it as soon as we have the corresponding tileset
26892
- throw new Error('Not implemented - arrayOffsets for strings is specified');}if(stringOffsets){var stringsArray=[];var textDecoder=new TextDecoder('utf8');var stringOffset=0;for(var index=0;index<numberOfElements;index++){var stringByteSize=stringOffsets[index+1]-stringOffsets[index];if(stringByteSize+stringOffset<=valuesDataBytes.length){var stringData=valuesDataBytes.subarray(stringOffset,stringByteSize+stringOffset);var stringAttribute=textDecoder.decode(stringData);stringsArray.push(stringAttribute);stringOffset+=stringByteSize;}}return stringsArray;}return[];}var EXT_MESH_FEATURES_NAME='EXT_mesh_features';var name$b=EXT_MESH_FEATURES_NAME;function decode$9(_x58,_x59){return _decode$.apply(this,arguments);}function _decode$(){_decode$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee42(gltfData,options){var scenegraph;return _regeneratorRuntime().wrap(function _callee42$(_context46){while(1){switch(_context46.prev=_context46.next){case 0:scenegraph=new GLTFScenegraph(gltfData);decodeExtMeshFeatures(scenegraph,options);case 2:case"end":return _context46.stop();}}},_callee42);}));return _decode$.apply(this,arguments);}function encode$5(gltfData,options){var scenegraph=new GLTFScenegraph(gltfData);encodeExtMeshFeatures(scenegraph);scenegraph.createBinaryChunk();return scenegraph.gltf;}/**
26914
+ throw new Error('Not implemented - arrayOffsets for strings is specified');}if(stringOffsets){var stringsArray=[];var textDecoder=new TextDecoder('utf8');var stringOffset=0;for(var index=0;index<numberOfElements;index++){var stringByteSize=stringOffsets[index+1]-stringOffsets[index];if(stringByteSize+stringOffset<=valuesDataBytes.length){var stringData=valuesDataBytes.subarray(stringOffset,stringByteSize+stringOffset);var stringAttribute=textDecoder.decode(stringData);stringsArray.push(stringAttribute);stringOffset+=stringByteSize;}}return stringsArray;}return[];}var EXT_MESH_FEATURES_NAME='EXT_mesh_features';var name$b=EXT_MESH_FEATURES_NAME;function decode$9(_x59,_x60){return _decode$.apply(this,arguments);}function _decode$(){_decode$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee43(gltfData,options){var scenegraph;return _regeneratorRuntime().wrap(function _callee43$(_context47){while(1){switch(_context47.prev=_context47.next){case 0:scenegraph=new GLTFScenegraph(gltfData);decodeExtMeshFeatures(scenegraph,options);case 2:case"end":return _context47.stop();}}},_callee43);}));return _decode$.apply(this,arguments);}function encode$5(gltfData,options){var scenegraph=new GLTFScenegraph(gltfData);encodeExtMeshFeatures(scenegraph);scenegraph.createBinaryChunk();return scenegraph.gltf;}/**
26893
26915
  * Decodes feature metadata from extension.
26894
26916
  * @param {GLTFScenegraph} scenegraph - Instance of the class for structured access to GLTF data.
26895
26917
  * @param {GLTFLoaderOptions} options - GLTFLoader options.
@@ -26934,7 +26956,7 @@ featureIds[elementIndex]={featureCount:typedArray.length,propertyTable:featureId
26934
26956
  */function createAccessorKey(attributes){var prefix='_FEATURE_ID_';// Search for all "_FEATURE_ID_n" attribures in the primitive provided if any.
26935
26957
  // If there are some, e.g. "_FEATURE_ID_0", "_FEATURE_ID_1",
26936
26958
  // we will add a new one with the name "_FEATURE_ID_2"
26937
- var attrs=Object.keys(attributes).filter(function(item){return item.indexOf(prefix)===0;});var max=-1;var _iterator25=_createForOfIteratorHelper(attrs),_step25;try{for(_iterator25.s();!(_step25=_iterator25.n()).done;){var _a8=_step25.value;var n=Number(_a8.substring(prefix.length));if(n>max){max=n;}}}catch(err){_iterator25.e(err);}finally{_iterator25.f();}max++;var accessorKey="".concat(prefix).concat(max);return{accessorKey:accessorKey,index:max};}var EXT_mesh_features=/*#__PURE__*/Object.freeze({__proto__:null,name:name$b,decode:decode$9,encode:encode$5,createExtMeshFeatures:createExtMeshFeatures});var EXT_STRUCTURAL_METADATA_NAME='EXT_structural_metadata';var name$a=EXT_STRUCTURAL_METADATA_NAME;function decode$8(_x60,_x61){return _decode$2.apply(this,arguments);}function _decode$2(){_decode$2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee43(gltfData,options){var scenegraph;return _regeneratorRuntime().wrap(function _callee43$(_context47){while(1){switch(_context47.prev=_context47.next){case 0:scenegraph=new GLTFScenegraph(gltfData);decodeExtStructuralMetadata(scenegraph,options);case 2:case"end":return _context47.stop();}}},_callee43);}));return _decode$2.apply(this,arguments);}function encode$4(gltfData,options){var scenegraph=new GLTFScenegraph(gltfData);encodeExtStructuralMetadata(scenegraph);scenegraph.createBinaryChunk();return scenegraph.gltf;}/*
26959
+ var attrs=Object.keys(attributes).filter(function(item){return item.indexOf(prefix)===0;});var max=-1;var _iterator25=_createForOfIteratorHelper(attrs),_step25;try{for(_iterator25.s();!(_step25=_iterator25.n()).done;){var _a8=_step25.value;var n=Number(_a8.substring(prefix.length));if(n>max){max=n;}}}catch(err){_iterator25.e(err);}finally{_iterator25.f();}max++;var accessorKey="".concat(prefix).concat(max);return{accessorKey:accessorKey,index:max};}var EXT_mesh_features=/*#__PURE__*/Object.freeze({__proto__:null,name:name$b,decode:decode$9,encode:encode$5,createExtMeshFeatures:createExtMeshFeatures});var EXT_STRUCTURAL_METADATA_NAME='EXT_structural_metadata';var name$a=EXT_STRUCTURAL_METADATA_NAME;function decode$8(_x61,_x62){return _decode$2.apply(this,arguments);}function _decode$2(){_decode$2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee44(gltfData,options){var scenegraph;return _regeneratorRuntime().wrap(function _callee44$(_context48){while(1){switch(_context48.prev=_context48.next){case 0:scenegraph=new GLTFScenegraph(gltfData);decodeExtStructuralMetadata(scenegraph,options);case 2:case"end":return _context48.stop();}}},_callee44);}));return _decode$2.apply(this,arguments);}function encode$4(gltfData,options){var scenegraph=new GLTFScenegraph(gltfData);encodeExtStructuralMetadata(scenegraph);scenegraph.createBinaryChunk();return scenegraph.gltf;}/*
26938
26960
  // Example of the extension.
26939
26961
  // See more info at https://github.com/CesiumGS/glTF/tree/3d-tiles-next/extensions/2.0/Vendor/EXT_structural_metadata
26940
26962
  const extensions = {
@@ -27126,9 +27148,9 @@ return getEnumsArray(valuesData,0,numberOfElements,enumEntry);}/**
27126
27148
  * @param count - Values length to parse.
27127
27149
  * @param enumEntry - Enums dictionary.
27128
27150
  * @returns Array of strings with parsed ENUM names.
27129
- */function getEnumsArray(valuesData,offset,count,enumEntry){var array=[];for(var _i543=0;_i543<count;_i543++){// At the moment we don't support BigInt. It requires additional calculations logic
27151
+ */function getEnumsArray(valuesData,offset,count,enumEntry){var array=[];for(var _i542=0;_i542<count;_i542++){// At the moment we don't support BigInt. It requires additional calculations logic
27130
27152
  // and might be an issue in Safari
27131
- if(valuesData instanceof BigInt64Array||valuesData instanceof BigUint64Array){array.push('');}else{var value=valuesData[offset+_i543];var enumObject=getEnumByValue(enumEntry,value);if(enumObject){array.push(enumObject.name);}else{array.push('');}}}return array;}/**
27153
+ if(valuesData instanceof BigInt64Array||valuesData instanceof BigUint64Array){array.push('');}else{var value=valuesData[offset+_i542];var enumObject=getEnumByValue(enumEntry,value);if(enumObject){array.push(enumObject.name);}else{array.push('');}}}return array;}/**
27132
27154
  * Looks up ENUM whose `value` property matches the specified number in the parameter `value`.
27133
27155
  * @param {GLTF_EXT_structural_metadata_Enum} enumEntry - ENUM entry containing the array of possible enums.
27134
27156
  * @param {number} value - The value of the ENUM to locate.
@@ -27146,13 +27168,13 @@ var count=0;var schemaClass=(_schema$classes2=schema.classes)===null||_schema$cl
27146
27168
  if(count!==attribute.values.length&&attribute.values.length){throw new Error('Illegal values in attributes');}var classProperty=schemaClass===null||schemaClass===void 0?void 0:schemaClass.properties[attribute.name];if(classProperty){// const tableProperty = createPropertyTableProperty(attribute, classProperty, scenegraph);
27147
27169
  if(!table.properties){table.properties={};}// values is a required field. Its real value will be set while encoding data
27148
27170
  table.properties[attribute.name]={values:0,data:attribute.values};}}}catch(err){_iterator33.e(err);}finally{_iterator33.f();}table.count=count;return table;}function createPropertyTableProperty(// attribute: PropertyAttribute,
27149
- values,classProperty,scenegraph){var prop={values:0};if(classProperty.type==='STRING'){var _createPropertyDataSt=createPropertyDataString(values),stringData=_createPropertyDataSt.stringData,stringOffsets=_createPropertyDataSt.stringOffsets;prop.stringOffsets=createBufferView(stringOffsets,scenegraph);prop.values=createBufferView(stringData,scenegraph);}else if(classProperty.type==='SCALAR'&&classProperty.componentType){var data=createPropertyDataScalar(values,classProperty.componentType);prop.values=createBufferView(data,scenegraph);}return prop;}var COMPONENT_TYPE_TO_ARRAY_CONSTRUCTOR={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function createPropertyDataScalar(array,componentType){var numberArray=[];var _iterator34=_createForOfIteratorHelper(array),_step34;try{for(_iterator34.s();!(_step34=_iterator34.n()).done;){var value=_step34.value;numberArray.push(Number(value));}}catch(err){_iterator34.e(err);}finally{_iterator34.f();}var Construct=COMPONENT_TYPE_TO_ARRAY_CONSTRUCTOR[componentType];if(!Construct){throw new Error('Illegal component type');}return new Construct(numberArray);}function createPropertyDataString(strings){var utf8Encode=new TextEncoder();var arr=[];var len=0;var _iterator35=_createForOfIteratorHelper(strings),_step35;try{for(_iterator35.s();!(_step35=_iterator35.n()).done;){var _str=_step35.value;var uint8Array=utf8Encode.encode(_str);len+=uint8Array.length;arr.push(uint8Array);}}catch(err){_iterator35.e(err);}finally{_iterator35.f();}var strArray=new Uint8Array(len);var strOffsets=[];var offset=0;for(var _i544=0,_arr2=arr;_i544<_arr2.length;_i544++){var str=_arr2[_i544];strArray.set(str,offset);strOffsets.push(offset);offset+=str.length;}strOffsets.push(offset);// The last offset represents the byte offset after the last string.
27171
+ values,classProperty,scenegraph){var prop={values:0};if(classProperty.type==='STRING'){var _createPropertyDataSt=createPropertyDataString(values),stringData=_createPropertyDataSt.stringData,stringOffsets=_createPropertyDataSt.stringOffsets;prop.stringOffsets=createBufferView(stringOffsets,scenegraph);prop.values=createBufferView(stringData,scenegraph);}else if(classProperty.type==='SCALAR'&&classProperty.componentType){var data=createPropertyDataScalar(values,classProperty.componentType);prop.values=createBufferView(data,scenegraph);}return prop;}var COMPONENT_TYPE_TO_ARRAY_CONSTRUCTOR={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function createPropertyDataScalar(array,componentType){var numberArray=[];var _iterator34=_createForOfIteratorHelper(array),_step34;try{for(_iterator34.s();!(_step34=_iterator34.n()).done;){var value=_step34.value;numberArray.push(Number(value));}}catch(err){_iterator34.e(err);}finally{_iterator34.f();}var Construct=COMPONENT_TYPE_TO_ARRAY_CONSTRUCTOR[componentType];if(!Construct){throw new Error('Illegal component type');}return new Construct(numberArray);}function createPropertyDataString(strings){var utf8Encode=new TextEncoder();var arr=[];var len=0;var _iterator35=_createForOfIteratorHelper(strings),_step35;try{for(_iterator35.s();!(_step35=_iterator35.n()).done;){var _str=_step35.value;var uint8Array=utf8Encode.encode(_str);len+=uint8Array.length;arr.push(uint8Array);}}catch(err){_iterator35.e(err);}finally{_iterator35.f();}var strArray=new Uint8Array(len);var strOffsets=[];var offset=0;for(var _i543=0,_arr2=arr;_i543<_arr2.length;_i543++){var str=_arr2[_i543];strArray.set(str,offset);strOffsets.push(offset);offset+=str.length;}strOffsets.push(offset);// The last offset represents the byte offset after the last string.
27150
27172
  var stringOffsetsTypedArray=new Uint32Array(strOffsets);// Its length = len+1
27151
- return{stringData:strArray,stringOffsets:stringOffsetsTypedArray};}function createBufferView(typedArray,scenegraph){scenegraph.gltf.buffers.push({arrayBuffer:typedArray.buffer,byteOffset:typedArray.byteOffset,byteLength:typedArray.byteLength});return scenegraph.addBufferView(typedArray);}var EXT_structural_metadata=/*#__PURE__*/Object.freeze({__proto__:null,name:name$a,decode:decode$8,encode:encode$4,createExtStructuralMetadata:createExtStructuralMetadata});/** Extension name */var EXT_FEATURE_METADATA_NAME='EXT_feature_metadata';var name$9=EXT_FEATURE_METADATA_NAME;function decode$7(_x62,_x63){return _decode$3.apply(this,arguments);}/**
27173
+ return{stringData:strArray,stringOffsets:stringOffsetsTypedArray};}function createBufferView(typedArray,scenegraph){scenegraph.gltf.buffers.push({arrayBuffer:typedArray.buffer,byteOffset:typedArray.byteOffset,byteLength:typedArray.byteLength});return scenegraph.addBufferView(typedArray);}var EXT_structural_metadata=/*#__PURE__*/Object.freeze({__proto__:null,name:name$a,decode:decode$8,encode:encode$4,createExtStructuralMetadata:createExtStructuralMetadata});/** Extension name */var EXT_FEATURE_METADATA_NAME='EXT_feature_metadata';var name$9=EXT_FEATURE_METADATA_NAME;function decode$7(_x63,_x64){return _decode$3.apply(this,arguments);}/**
27152
27174
  * Decodes feature metadata from extension.
27153
27175
  * @param scenegraph - Instance of the class for structured access to GLTF data.
27154
27176
  * @param options - GLTFLoader options.
27155
- */function _decode$3(){_decode$3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee44(gltfData,options){var scenegraph;return _regeneratorRuntime().wrap(function _callee44$(_context48){while(1){switch(_context48.prev=_context48.next){case 0:scenegraph=new GLTFScenegraph(gltfData);decodeExtFeatureMetadata(scenegraph,options);case 2:case"end":return _context48.stop();}}},_callee44);}));return _decode$3.apply(this,arguments);}function decodeExtFeatureMetadata(scenegraph,options){var _options$gltf5,_options$gltf6;// Decoding metadata involves buffers processing.
27177
+ */function _decode$3(){_decode$3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee45(gltfData,options){var scenegraph;return _regeneratorRuntime().wrap(function _callee45$(_context49){while(1){switch(_context49.prev=_context49.next){case 0:scenegraph=new GLTFScenegraph(gltfData);decodeExtFeatureMetadata(scenegraph,options);case 2:case"end":return _context49.stop();}}},_callee45);}));return _decode$3.apply(this,arguments);}function decodeExtFeatureMetadata(scenegraph,options){var _options$gltf5,_options$gltf6;// Decoding metadata involves buffers processing.
27156
27178
  // So, if buffers have not been loaded, there is no reason to process metadata.
27157
27179
  if(!((_options$gltf5=options.gltf)!==null&&_options$gltf5!==void 0&&_options$gltf5.loadBuffers)){return;}var extension=scenegraph.getExtension(EXT_FEATURE_METADATA_NAME);if(!extension){return;}if((_options$gltf6=options.gltf)!==null&&_options$gltf6!==void 0&&_options$gltf6.loadImages){decodePropertyTextures(scenegraph,extension);}decodePropertyTables(scenegraph,extension);}/**
27158
27180
  * Processes the data stored in the textures
@@ -27259,34 +27281,34 @@ var BASIS_EXTERNAL_LIBRARIES={/** Basis transcoder, javascript wrapper part */TR
27259
27281
  * Loads wasm transcoder module
27260
27282
  * @param options
27261
27283
  * @returns {BasisFile} promise
27262
- */function loadBasisTranscoderModule(_x64){return _loadBasisTranscoderModule.apply(this,arguments);}/**
27284
+ */function loadBasisTranscoderModule(_x65){return _loadBasisTranscoderModule.apply(this,arguments);}/**
27263
27285
  * Loads wasm transcoder module
27264
27286
  * @param options
27265
27287
  * @returns {BasisFile} promise
27266
- */function _loadBasisTranscoderModule(){_loadBasisTranscoderModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee45(options){var basis;return _regeneratorRuntime().wrap(function _callee45$(_context49){while(1){switch(_context49.prev=_context49.next){case 0:registerJSModules(options.modules);basis=getJSModuleOrNull('basis');if(!basis){_context49.next=4;break;}return _context49.abrupt("return",basis);case 4:loadBasisTranscoderPromise||(loadBasisTranscoderPromise=loadBasisTranscoder(options));_context49.next=7;return loadBasisTranscoderPromise;case 7:return _context49.abrupt("return",_context49.sent);case 8:case"end":return _context49.stop();}}},_callee45);}));return _loadBasisTranscoderModule.apply(this,arguments);}function loadBasisTranscoder(_x65){return _loadBasisTranscoder.apply(this,arguments);}/**
27288
+ */function _loadBasisTranscoderModule(){_loadBasisTranscoderModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee46(options){var basis;return _regeneratorRuntime().wrap(function _callee46$(_context50){while(1){switch(_context50.prev=_context50.next){case 0:registerJSModules(options.modules);basis=getJSModuleOrNull('basis');if(!basis){_context50.next=4;break;}return _context50.abrupt("return",basis);case 4:loadBasisTranscoderPromise||(loadBasisTranscoderPromise=loadBasisTranscoder(options));_context50.next=7;return loadBasisTranscoderPromise;case 7:return _context50.abrupt("return",_context50.sent);case 8:case"end":return _context50.stop();}}},_callee46);}));return _loadBasisTranscoderModule.apply(this,arguments);}function loadBasisTranscoder(_x66){return _loadBasisTranscoder.apply(this,arguments);}/**
27267
27289
  * Initialize wasm transcoder module
27268
27290
  * @param BasisModule - js part of the module
27269
27291
  * @param wasmBinary - wasm part of the module
27270
27292
  * @returns {BasisFile} promise
27271
- */function _loadBasisTranscoder(){_loadBasisTranscoder=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee46(options){var BASIS,wasmBinary,_yield$Promise$all,_yield$Promise$all2;return _regeneratorRuntime().wrap(function _callee46$(_context50){while(1){switch(_context50.prev=_context50.next){case 0:BASIS=null;wasmBinary=null;_context50.t0=Promise;_context50.next=5;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER,'textures',options);case 5:_context50.t1=_context50.sent;_context50.next=8;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM,'textures',options);case 8:_context50.t2=_context50.sent;_context50.t3=[_context50.t1,_context50.t2];_context50.next=12;return _context50.t0.all.call(_context50.t0,_context50.t3);case 12:_yield$Promise$all=_context50.sent;_yield$Promise$all2=_slicedToArray(_yield$Promise$all,2);BASIS=_yield$Promise$all2[0];wasmBinary=_yield$Promise$all2[1];// Depends on how import happened...
27293
+ */function _loadBasisTranscoder(){_loadBasisTranscoder=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee47(options){var BASIS,wasmBinary,_yield$Promise$all3,_yield$Promise$all4;return _regeneratorRuntime().wrap(function _callee47$(_context51){while(1){switch(_context51.prev=_context51.next){case 0:BASIS=null;wasmBinary=null;_context51.t0=Promise;_context51.next=5;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER,'textures',options);case 5:_context51.t1=_context51.sent;_context51.next=8;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.TRANSCODER_WASM,'textures',options);case 8:_context51.t2=_context51.sent;_context51.t3=[_context51.t1,_context51.t2];_context51.next=12;return _context51.t0.all.call(_context51.t0,_context51.t3);case 12:_yield$Promise$all3=_context51.sent;_yield$Promise$all4=_slicedToArray(_yield$Promise$all3,2);BASIS=_yield$Promise$all4[0];wasmBinary=_yield$Promise$all4[1];// Depends on how import happened...
27272
27294
  // @ts-ignore TS2339: Property does not exist on type
27273
- BASIS=BASIS||globalThis.BASIS;_context50.next=19;return initializeBasisTranscoderModule(BASIS,wasmBinary);case 19:return _context50.abrupt("return",_context50.sent);case 20:case"end":return _context50.stop();}}},_callee46);}));return _loadBasisTranscoder.apply(this,arguments);}function initializeBasisTranscoderModule(BasisModule,wasmBinary){var options={};if(wasmBinary){options.wasmBinary=wasmBinary;}return new Promise(function(resolve){// if you try to return BasisModule the browser crashes!
27295
+ BASIS=BASIS||globalThis.BASIS;_context51.next=19;return initializeBasisTranscoderModule(BASIS,wasmBinary);case 19:return _context51.abrupt("return",_context51.sent);case 20:case"end":return _context51.stop();}}},_callee47);}));return _loadBasisTranscoder.apply(this,arguments);}function initializeBasisTranscoderModule(BasisModule,wasmBinary){var options={};if(wasmBinary){options.wasmBinary=wasmBinary;}return new Promise(function(resolve){// if you try to return BasisModule the browser crashes!
27274
27296
  BasisModule(options).then(function(module){var BasisFile=module.BasisFile,initializeBasis=module.initializeBasis;initializeBasis();resolve({BasisFile:BasisFile});});});}var loadBasisEncoderPromise;/**
27275
27297
  * Loads wasm encoder module
27276
27298
  * @param options
27277
27299
  * @returns {BasisFile, KTX2File} promise
27278
- */function loadBasisEncoderModule(_x66){return _loadBasisEncoderModule.apply(this,arguments);}/**
27300
+ */function loadBasisEncoderModule(_x67){return _loadBasisEncoderModule.apply(this,arguments);}/**
27279
27301
  * Loads wasm encoder module
27280
27302
  * @param options
27281
27303
  * @returns {BasisFile, KTX2File} promise
27282
- */function _loadBasisEncoderModule(){_loadBasisEncoderModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee47(options){var modules;return _regeneratorRuntime().wrap(function _callee47$(_context51){while(1){switch(_context51.prev=_context51.next){case 0:modules=options.modules||{};if(!modules.basisEncoder){_context51.next=3;break;}return _context51.abrupt("return",modules.basisEncoder);case 3:loadBasisEncoderPromise=loadBasisEncoderPromise||loadBasisEncoder(options);_context51.next=6;return loadBasisEncoderPromise;case 6:return _context51.abrupt("return",_context51.sent);case 7:case"end":return _context51.stop();}}},_callee47);}));return _loadBasisEncoderModule.apply(this,arguments);}function loadBasisEncoder(_x67){return _loadBasisEncoder.apply(this,arguments);}/**
27304
+ */function _loadBasisEncoderModule(){_loadBasisEncoderModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee48(options){var modules;return _regeneratorRuntime().wrap(function _callee48$(_context52){while(1){switch(_context52.prev=_context52.next){case 0:modules=options.modules||{};if(!modules.basisEncoder){_context52.next=3;break;}return _context52.abrupt("return",modules.basisEncoder);case 3:loadBasisEncoderPromise=loadBasisEncoderPromise||loadBasisEncoder(options);_context52.next=6;return loadBasisEncoderPromise;case 6:return _context52.abrupt("return",_context52.sent);case 7:case"end":return _context52.stop();}}},_callee48);}));return _loadBasisEncoderModule.apply(this,arguments);}function loadBasisEncoder(_x68){return _loadBasisEncoder.apply(this,arguments);}/**
27283
27305
  * Initialize wasm transcoder module
27284
27306
  * @param BasisEncoderModule - js part of the module
27285
27307
  * @param wasmBinary - wasm part of the module
27286
27308
  * @returns {BasisFile, KTX2File} promise
27287
- */function _loadBasisEncoder(){_loadBasisEncoder=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee48(options){var BASIS_ENCODER,wasmBinary,_yield$Promise$all3,_yield$Promise$all4;return _regeneratorRuntime().wrap(function _callee48$(_context52){while(1){switch(_context52.prev=_context52.next){case 0:BASIS_ENCODER=null;wasmBinary=null;_context52.t0=Promise;_context52.next=5;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER,'textures',options);case 5:_context52.t1=_context52.sent;_context52.next=8;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM,'textures',options);case 8:_context52.t2=_context52.sent;_context52.t3=[_context52.t1,_context52.t2];_context52.next=12;return _context52.t0.all.call(_context52.t0,_context52.t3);case 12:_yield$Promise$all3=_context52.sent;_yield$Promise$all4=_slicedToArray(_yield$Promise$all3,2);BASIS_ENCODER=_yield$Promise$all4[0];wasmBinary=_yield$Promise$all4[1];// Depends on how import happened...
27309
+ */function _loadBasisEncoder(){_loadBasisEncoder=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee49(options){var BASIS_ENCODER,wasmBinary,_yield$Promise$all5,_yield$Promise$all6;return _regeneratorRuntime().wrap(function _callee49$(_context53){while(1){switch(_context53.prev=_context53.next){case 0:BASIS_ENCODER=null;wasmBinary=null;_context53.t0=Promise;_context53.next=5;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER,'textures',options);case 5:_context53.t1=_context53.sent;_context53.next=8;return loadLibrary(BASIS_EXTERNAL_LIBRARIES.ENCODER_WASM,'textures',options);case 8:_context53.t2=_context53.sent;_context53.t3=[_context53.t1,_context53.t2];_context53.next=12;return _context53.t0.all.call(_context53.t0,_context53.t3);case 12:_yield$Promise$all5=_context53.sent;_yield$Promise$all6=_slicedToArray(_yield$Promise$all5,2);BASIS_ENCODER=_yield$Promise$all6[0];wasmBinary=_yield$Promise$all6[1];// Depends on how import happened...
27288
27310
  // @ts-ignore TS2339: Property does not exist on type
27289
- BASIS_ENCODER=BASIS_ENCODER||globalThis.BASIS;_context52.next=19;return initializeBasisEncoderModule(BASIS_ENCODER,wasmBinary);case 19:return _context52.abrupt("return",_context52.sent);case 20:case"end":return _context52.stop();}}},_callee48);}));return _loadBasisEncoder.apply(this,arguments);}function initializeBasisEncoderModule(BasisEncoderModule,wasmBinary){var options={};if(wasmBinary){options.wasmBinary=wasmBinary;}return new Promise(function(resolve){// if you try to return BasisModule the browser crashes!
27311
+ BASIS_ENCODER=BASIS_ENCODER||globalThis.BASIS;_context53.next=19;return initializeBasisEncoderModule(BASIS_ENCODER,wasmBinary);case 19:return _context53.abrupt("return",_context53.sent);case 20:case"end":return _context53.stop();}}},_callee49);}));return _loadBasisEncoder.apply(this,arguments);}function initializeBasisEncoderModule(BasisEncoderModule,wasmBinary){var options={};if(wasmBinary){options.wasmBinary=wasmBinary;}return new Promise(function(resolve){// if you try to return BasisModule the browser crashes!
27290
27312
  BasisEncoderModule(options).then(function(module){var BasisFile=module.BasisFile,KTX2File=module.KTX2File,initializeBasis=module.initializeBasis,BasisEncoder=module.BasisEncoder;initializeBasis();resolve({BasisFile:BasisFile,KTX2File:KTX2File,BasisEncoder:BasisEncoder});});});}// loaders.gl
27291
27313
  // SPDX-License-Identifier: MIT
27292
27314
  // Copyright (c) vis.gl contributors
@@ -27330,13 +27352,13 @@ var OutputFormat={etc1:{basisFormat:0,compressed:true,format:GL_EXTENSIONS_CONST
27330
27352
  * @param data
27331
27353
  * @param options
27332
27354
  * @returns compressed texture data
27333
- */function parseBasis(_x68,_x69){return _parseBasis.apply(this,arguments);}/**
27355
+ */function parseBasis(_x69,_x70){return _parseBasis.apply(this,arguments);}/**
27334
27356
  * Parse *.basis file data
27335
27357
  * @param BasisFile - initialized transcoder module
27336
27358
  * @param data
27337
27359
  * @param options
27338
27360
  * @returns compressed texture data
27339
- */function _parseBasis(){_parseBasis=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee49(data,options){var fileConstructors,_yield$loadBasisTrans,BasisFile,_fileConstructors,_yield$loadBasisTrans2,_BasisFile;return _regeneratorRuntime().wrap(function _callee49$(_context53){while(1){switch(_context53.prev=_context53.next){case 0:if(!(options.basis.containerFormat==='auto')){_context53.next=11;break;}if(!isKTX(data)){_context53.next=6;break;}_context53.next=4;return loadBasisEncoderModule(options);case 4:fileConstructors=_context53.sent;return _context53.abrupt("return",parseKTX2File(fileConstructors.KTX2File,data,options));case 6:_context53.next=8;return loadBasisTranscoderModule(options);case 8:_yield$loadBasisTrans=_context53.sent;BasisFile=_yield$loadBasisTrans.BasisFile;return _context53.abrupt("return",parseBasisFile(BasisFile,data,options));case 11:_context53.t0=options.basis.module;_context53.next=_context53.t0==='encoder'?14:_context53.t0==='transcoder'?22:22;break;case 14:_context53.next=16;return loadBasisEncoderModule(options);case 16:_fileConstructors=_context53.sent;_context53.t1=options.basis.containerFormat;_context53.next=_context53.t1==='ktx2'?20:_context53.t1==='basis'?21:21;break;case 20:return _context53.abrupt("return",parseKTX2File(_fileConstructors.KTX2File,data,options));case 21:return _context53.abrupt("return",parseBasisFile(_fileConstructors.BasisFile,data,options));case 22:_context53.next=24;return loadBasisTranscoderModule(options);case 24:_yield$loadBasisTrans2=_context53.sent;_BasisFile=_yield$loadBasisTrans2.BasisFile;return _context53.abrupt("return",parseBasisFile(_BasisFile,data,options));case 27:case"end":return _context53.stop();}}},_callee49);}));return _parseBasis.apply(this,arguments);}function parseBasisFile(BasisFile,data,options){var basisFile=new BasisFile(new Uint8Array(data));try{if(!basisFile.startTranscoding()){throw new Error('Failed to start basis transcoding');}var imageCount=basisFile.getNumImages();var images=[];for(var imageIndex=0;imageIndex<imageCount;imageIndex++){var levelsCount=basisFile.getNumLevels(imageIndex);var levels=[];for(var levelIndex=0;levelIndex<levelsCount;levelIndex++){levels.push(transcodeImage(basisFile,imageIndex,levelIndex,options));}images.push(levels);}return images;}finally{basisFile.close();basisFile["delete"]();}}/**
27361
+ */function _parseBasis(){_parseBasis=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee50(data,options){var fileConstructors,_yield$loadBasisTrans,BasisFile,_fileConstructors,_yield$loadBasisTrans2,_BasisFile;return _regeneratorRuntime().wrap(function _callee50$(_context54){while(1){switch(_context54.prev=_context54.next){case 0:if(!(options.basis.containerFormat==='auto')){_context54.next=11;break;}if(!isKTX(data)){_context54.next=6;break;}_context54.next=4;return loadBasisEncoderModule(options);case 4:fileConstructors=_context54.sent;return _context54.abrupt("return",parseKTX2File(fileConstructors.KTX2File,data,options));case 6:_context54.next=8;return loadBasisTranscoderModule(options);case 8:_yield$loadBasisTrans=_context54.sent;BasisFile=_yield$loadBasisTrans.BasisFile;return _context54.abrupt("return",parseBasisFile(BasisFile,data,options));case 11:_context54.t0=options.basis.module;_context54.next=_context54.t0==='encoder'?14:_context54.t0==='transcoder'?22:22;break;case 14:_context54.next=16;return loadBasisEncoderModule(options);case 16:_fileConstructors=_context54.sent;_context54.t1=options.basis.containerFormat;_context54.next=_context54.t1==='ktx2'?20:_context54.t1==='basis'?21:21;break;case 20:return _context54.abrupt("return",parseKTX2File(_fileConstructors.KTX2File,data,options));case 21:return _context54.abrupt("return",parseBasisFile(_fileConstructors.BasisFile,data,options));case 22:_context54.next=24;return loadBasisTranscoderModule(options);case 24:_yield$loadBasisTrans2=_context54.sent;_BasisFile=_yield$loadBasisTrans2.BasisFile;return _context54.abrupt("return",parseBasisFile(_BasisFile,data,options));case 27:case"end":return _context54.stop();}}},_callee50);}));return _parseBasis.apply(this,arguments);}function parseBasisFile(BasisFile,data,options){var basisFile=new BasisFile(new Uint8Array(data));try{if(!basisFile.startTranscoding()){throw new Error('Failed to start basis transcoding');}var imageCount=basisFile.getNumImages();var images=[];for(var imageIndex=0;imageIndex<imageCount;imageIndex++){var levelsCount=basisFile.getNumLevels(imageIndex);var levels=[];for(var levelIndex=0;levelIndex<levelsCount;levelIndex++){levels.push(transcodeImage(basisFile,imageIndex,levelIndex,options));}images.push(levels);}return images;}finally{basisFile.close();basisFile["delete"]();}}/**
27340
27362
  * Parse the particular level image of a basis file
27341
27363
  * @param basisFile
27342
27364
  * @param imageIndex
@@ -27434,13 +27456,13 @@ var wasmpack=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,1
27434
27456
  NONE:'',OCTAHEDRAL:'meshopt_decodeFilterOct',QUATERNION:'meshopt_decodeFilterQuat',EXPONENTIAL:'meshopt_decodeFilterExp'};var DECODERS={// legacy index-based enums for glTF
27435
27457
  0:'meshopt_decodeVertexBuffer',1:'meshopt_decodeIndexBuffer',2:'meshopt_decodeIndexSequence',// string-based enums for glTF
27436
27458
  ATTRIBUTES:'meshopt_decodeVertexBuffer',TRIANGLES:'meshopt_decodeIndexBuffer',INDICES:'meshopt_decodeIndexSequence'};// eslint-disable-next-line max-params
27437
- function meshoptDecodeGltfBuffer(_x70,_x71,_x72,_x73,_x74){return _meshoptDecodeGltfBuffer.apply(this,arguments);}function _meshoptDecodeGltfBuffer(){_meshoptDecodeGltfBuffer=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee50(target,count,size,source,mode){var filter,instance,_args53=arguments;return _regeneratorRuntime().wrap(function _callee50$(_context54){while(1){switch(_context54.prev=_context54.next){case 0:filter=_args53.length>5&&_args53[5]!==undefined?_args53[5]:'NONE';_context54.next=3;return loadWasmInstance();case 3:instance=_context54.sent;decode$6(instance,instance.exports[DECODERS[mode]],target,count,size,source,instance.exports[FILTERS[filter||'NONE']]);case 5:case"end":return _context54.stop();}}},_callee50);}));return _meshoptDecodeGltfBuffer.apply(this,arguments);}var wasmPromise;function loadWasmInstance(){return _loadWasmInstance.apply(this,arguments);}function _loadWasmInstance(){_loadWasmInstance=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee51(){return _regeneratorRuntime().wrap(function _callee51$(_context55){while(1){switch(_context55.prev=_context55.next){case 0:// eslint-disable-next-line
27438
- if(!wasmPromise){wasmPromise=loadWasmModule();}return _context55.abrupt("return",wasmPromise);case 2:case"end":return _context55.stop();}}},_callee51);}));return _loadWasmInstance.apply(this,arguments);}function loadWasmModule(){return _loadWasmModule.apply(this,arguments);}function _loadWasmModule(){_loadWasmModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee52(){var wasm,result;return _regeneratorRuntime().wrap(function _callee52$(_context56){while(1){switch(_context56.prev=_context56.next){case 0:wasm=wasm_base;if(WebAssembly.validate(detector)){wasm=wasm_simd;// eslint-disable-next-line no-console
27439
- console.log('Warning: meshopt_decoder is using experimental SIMD support');}_context56.next=4;return WebAssembly.instantiate(unpack(wasm),{});case 4:result=_context56.sent;_context56.next=7;return result.instance.exports.__wasm_call_ctors();case 7:return _context56.abrupt("return",result.instance);case 8:case"end":return _context56.stop();}}},_callee52);}));return _loadWasmModule.apply(this,arguments);}function unpack(data){var result=new Uint8Array(data.length);for(var _i545=0;_i545<data.length;++_i545){var ch=data.charCodeAt(_i545);result[_i545]=ch>96?ch-71:ch>64?ch-65:ch>47?ch+4:ch>46?63:62;}var write=0;for(var _i546=0;_i546<data.length;++_i546){result[write++]=result[_i546]<60?wasmpack[result[_i546]]:(result[_i546]-60)*64+result[++_i546];}return result.buffer.slice(0,write);}// eslint-disable-next-line max-params
27459
+ function meshoptDecodeGltfBuffer(_x71,_x72,_x73,_x74,_x75){return _meshoptDecodeGltfBuffer.apply(this,arguments);}function _meshoptDecodeGltfBuffer(){_meshoptDecodeGltfBuffer=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee51(target,count,size,source,mode){var filter,instance,_args54=arguments;return _regeneratorRuntime().wrap(function _callee51$(_context55){while(1){switch(_context55.prev=_context55.next){case 0:filter=_args54.length>5&&_args54[5]!==undefined?_args54[5]:'NONE';_context55.next=3;return loadWasmInstance();case 3:instance=_context55.sent;decode$6(instance,instance.exports[DECODERS[mode]],target,count,size,source,instance.exports[FILTERS[filter||'NONE']]);case 5:case"end":return _context55.stop();}}},_callee51);}));return _meshoptDecodeGltfBuffer.apply(this,arguments);}var wasmPromise;function loadWasmInstance(){return _loadWasmInstance.apply(this,arguments);}function _loadWasmInstance(){_loadWasmInstance=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee52(){return _regeneratorRuntime().wrap(function _callee52$(_context56){while(1){switch(_context56.prev=_context56.next){case 0:// eslint-disable-next-line
27460
+ if(!wasmPromise){wasmPromise=loadWasmModule();}return _context56.abrupt("return",wasmPromise);case 2:case"end":return _context56.stop();}}},_callee52);}));return _loadWasmInstance.apply(this,arguments);}function loadWasmModule(){return _loadWasmModule.apply(this,arguments);}function _loadWasmModule(){_loadWasmModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee53(){var wasm,result;return _regeneratorRuntime().wrap(function _callee53$(_context57){while(1){switch(_context57.prev=_context57.next){case 0:wasm=wasm_base;if(WebAssembly.validate(detector)){wasm=wasm_simd;// eslint-disable-next-line no-console
27461
+ console.log('Warning: meshopt_decoder is using experimental SIMD support');}_context57.next=4;return WebAssembly.instantiate(unpack(wasm),{});case 4:result=_context57.sent;_context57.next=7;return result.instance.exports.__wasm_call_ctors();case 7:return _context57.abrupt("return",result.instance);case 8:case"end":return _context57.stop();}}},_callee53);}));return _loadWasmModule.apply(this,arguments);}function unpack(data){var result=new Uint8Array(data.length);for(var _i544=0;_i544<data.length;++_i544){var ch=data.charCodeAt(_i544);result[_i544]=ch>96?ch-71:ch>64?ch-65:ch>47?ch+4:ch>46?63:62;}var write=0;for(var _i545=0;_i545<data.length;++_i545){result[write++]=result[_i545]<60?wasmpack[result[_i545]]:(result[_i545]-60)*64+result[++_i545];}return result.buffer.slice(0,write);}// eslint-disable-next-line max-params
27440
27462
  function decode$6(instance,fun,target,count,size,source,filter){var sbrk=instance.exports.sbrk;var count4=count+3&~3;// pad for SIMD filter
27441
- var tp=sbrk(count4*size);var sp=sbrk(source.length);var heap=new Uint8Array(instance.exports.memory.buffer);heap.set(source,sp);var res=fun(tp,count,size,sp,source.length);if(res===0&&filter){filter(tp,count4,size);}target.set(heap.subarray(tp,tp+count*size));sbrk(tp-sbrk(0));if(res!==0){throw new Error("Malformed buffer data: ".concat(res));}}/** Extension name */var EXT_MESHOPT_COMPRESSION='EXT_meshopt_compression';var name$8=EXT_MESHOPT_COMPRESSION;function decode$5(_x75,_x76){return _decode$4.apply(this,arguments);}/** Decode one meshopt buffer view */function _decode$4(){_decode$4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee53(gltfData,options){var _options$gltf8,_options$gltf9;var scenegraph,promises,_iterator67,_step67,bufferViewIndex;return _regeneratorRuntime().wrap(function _callee53$(_context57){while(1){switch(_context57.prev=_context57.next){case 0:scenegraph=new GLTFScenegraph(gltfData);if(!(!(options!==null&&options!==void 0&&(_options$gltf8=options.gltf)!==null&&_options$gltf8!==void 0&&_options$gltf8.decompressMeshes)||!((_options$gltf9=options.gltf)!==null&&_options$gltf9!==void 0&&_options$gltf9.loadBuffers))){_context57.next=3;break;}return _context57.abrupt("return");case 3:promises=[];_iterator67=_createForOfIteratorHelper(gltfData.json.bufferViews||[]);try{for(_iterator67.s();!(_step67=_iterator67.n()).done;){bufferViewIndex=_step67.value;promises.push(decodeMeshoptBufferView(scenegraph,bufferViewIndex));}// Decompress meshes in parallel
27442
- }catch(err){_iterator67.e(err);}finally{_iterator67.f();}_context57.next=8;return Promise.all(promises);case 8:// We have now decompressed all primitives, so remove the top-level extension
27443
- scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);case 9:case"end":return _context57.stop();}}},_callee53);}));return _decode$4.apply(this,arguments);}function decodeMeshoptBufferView(_x77,_x78){return _decodeMeshoptBufferView.apply(this,arguments);}function _decodeMeshoptBufferView(){_decodeMeshoptBufferView=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee54(scenegraph,bufferView){var meshoptExtension,_meshoptExtension$byt,byteOffset,_meshoptExtension$byt2,byteLength,byteStride,count,mode,_meshoptExtension$fil,filter,bufferIndex,buffer,source,result;return _regeneratorRuntime().wrap(function _callee54$(_context58){while(1){switch(_context58.prev=_context58.next){case 0:meshoptExtension=scenegraph.getObjectExtension(bufferView,EXT_MESHOPT_COMPRESSION);if(!meshoptExtension){_context58.next=9;break;}_meshoptExtension$byt=meshoptExtension.byteOffset,byteOffset=_meshoptExtension$byt===void 0?0:_meshoptExtension$byt,_meshoptExtension$byt2=meshoptExtension.byteLength,byteLength=_meshoptExtension$byt2===void 0?0:_meshoptExtension$byt2,byteStride=meshoptExtension.byteStride,count=meshoptExtension.count,mode=meshoptExtension.mode,_meshoptExtension$fil=meshoptExtension.filter,filter=_meshoptExtension$fil===void 0?'NONE':_meshoptExtension$fil,bufferIndex=meshoptExtension.buffer;buffer=scenegraph.gltf.buffers[bufferIndex];source=new Uint8Array(buffer.arrayBuffer,buffer.byteOffset+byteOffset,byteLength);result=new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer,bufferView.byteOffset,bufferView.byteLength);_context58.next=8;return meshoptDecodeGltfBuffer(result,count,byteStride,source,mode,filter);case 8:scenegraph.removeObjectExtension(bufferView,EXT_MESHOPT_COMPRESSION);case 9:case"end":return _context58.stop();}}},_callee54);}));return _decodeMeshoptBufferView.apply(this,arguments);}var EXT_meshopt_compression=/*#__PURE__*/Object.freeze({__proto__:null,name:name$8,decode:decode$5});// GLTF EXTENSION: EXT_TEXTURE_WEBP
27463
+ var tp=sbrk(count4*size);var sp=sbrk(source.length);var heap=new Uint8Array(instance.exports.memory.buffer);heap.set(source,sp);var res=fun(tp,count,size,sp,source.length);if(res===0&&filter){filter(tp,count4,size);}target.set(heap.subarray(tp,tp+count*size));sbrk(tp-sbrk(0));if(res!==0){throw new Error("Malformed buffer data: ".concat(res));}}/** Extension name */var EXT_MESHOPT_COMPRESSION='EXT_meshopt_compression';var name$8=EXT_MESHOPT_COMPRESSION;function decode$5(_x76,_x77){return _decode$4.apply(this,arguments);}/** Decode one meshopt buffer view */function _decode$4(){_decode$4=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee54(gltfData,options){var _options$gltf8,_options$gltf9;var scenegraph,promises,_iterator67,_step67,bufferViewIndex;return _regeneratorRuntime().wrap(function _callee54$(_context58){while(1){switch(_context58.prev=_context58.next){case 0:scenegraph=new GLTFScenegraph(gltfData);if(!(!(options!==null&&options!==void 0&&(_options$gltf8=options.gltf)!==null&&_options$gltf8!==void 0&&_options$gltf8.decompressMeshes)||!((_options$gltf9=options.gltf)!==null&&_options$gltf9!==void 0&&_options$gltf9.loadBuffers))){_context58.next=3;break;}return _context58.abrupt("return");case 3:promises=[];_iterator67=_createForOfIteratorHelper(gltfData.json.bufferViews||[]);try{for(_iterator67.s();!(_step67=_iterator67.n()).done;){bufferViewIndex=_step67.value;promises.push(decodeMeshoptBufferView(scenegraph,bufferViewIndex));}// Decompress meshes in parallel
27464
+ }catch(err){_iterator67.e(err);}finally{_iterator67.f();}_context58.next=8;return Promise.all(promises);case 8:// We have now decompressed all primitives, so remove the top-level extension
27465
+ scenegraph.removeExtension(EXT_MESHOPT_COMPRESSION);case 9:case"end":return _context58.stop();}}},_callee54);}));return _decode$4.apply(this,arguments);}function decodeMeshoptBufferView(_x78,_x79){return _decodeMeshoptBufferView.apply(this,arguments);}function _decodeMeshoptBufferView(){_decodeMeshoptBufferView=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee55(scenegraph,bufferView){var meshoptExtension,_meshoptExtension$byt,byteOffset,_meshoptExtension$byt2,byteLength,byteStride,count,mode,_meshoptExtension$fil,filter,bufferIndex,buffer,source,result;return _regeneratorRuntime().wrap(function _callee55$(_context59){while(1){switch(_context59.prev=_context59.next){case 0:meshoptExtension=scenegraph.getObjectExtension(bufferView,EXT_MESHOPT_COMPRESSION);if(!meshoptExtension){_context59.next=9;break;}_meshoptExtension$byt=meshoptExtension.byteOffset,byteOffset=_meshoptExtension$byt===void 0?0:_meshoptExtension$byt,_meshoptExtension$byt2=meshoptExtension.byteLength,byteLength=_meshoptExtension$byt2===void 0?0:_meshoptExtension$byt2,byteStride=meshoptExtension.byteStride,count=meshoptExtension.count,mode=meshoptExtension.mode,_meshoptExtension$fil=meshoptExtension.filter,filter=_meshoptExtension$fil===void 0?'NONE':_meshoptExtension$fil,bufferIndex=meshoptExtension.buffer;buffer=scenegraph.gltf.buffers[bufferIndex];source=new Uint8Array(buffer.arrayBuffer,buffer.byteOffset+byteOffset,byteLength);result=new Uint8Array(scenegraph.gltf.buffers[bufferView.buffer].arrayBuffer,bufferView.byteOffset,bufferView.byteLength);_context59.next=8;return meshoptDecodeGltfBuffer(result,count,byteStride,source,mode,filter);case 8:scenegraph.removeObjectExtension(bufferView,EXT_MESHOPT_COMPRESSION);case 9:case"end":return _context59.stop();}}},_callee55);}));return _decodeMeshoptBufferView.apply(this,arguments);}var EXT_meshopt_compression=/*#__PURE__*/Object.freeze({__proto__:null,name:name$8,decode:decode$5});// GLTF EXTENSION: EXT_TEXTURE_WEBP
27444
27466
  var EXT_TEXTURE_WEBP='EXT_texture_webp';/** Extension name */var name$7=EXT_TEXTURE_WEBP;/**
27445
27467
  * Replaces a texture source reference with the extension texture
27446
27468
  * Done in preprocess() to prevent load of default image
@@ -27498,7 +27520,7 @@ if(dracoGeometry instanceof this.draco.Mesh){switch(options.topology){case'trian
27498
27520
  attributes:attributes,indices:{value:this._getTriangleStripIndices(dracoGeometry),size:1}};case'triangle-list':default:return{topology:'triangle-list',mode:5,// GL.TRIANGLE_STRIP
27499
27521
  attributes:attributes,indices:{value:this._getTriangleListIndices(dracoGeometry),size:1}};}}// PointCloud - must come last as Mesh inherits from PointCloud
27500
27522
  return{topology:'point-list',mode:0,// GL.POINTS
27501
- attributes:attributes};}},{key:"_getMeshAttributes",value:function _getMeshAttributes(loaderData,dracoGeometry,options){var attributes={};for(var _i547=0,_Object$values=Object.values(loaderData.attributes);_i547<_Object$values.length;_i547++){var loaderAttribute=_Object$values[_i547];var attributeName=this._deduceAttributeName(loaderAttribute,options);loaderAttribute.name=attributeName;var values=this._getAttributeValues(dracoGeometry,loaderAttribute);if(values){var value=values.value,size=values.size;attributes[attributeName]={value:value,size:size,byteOffset:loaderAttribute.byte_offset,byteStride:loaderAttribute.byte_stride,normalized:loaderAttribute.normalized};}}return attributes;}// MESH INDICES EXTRACTION
27523
+ attributes:attributes};}},{key:"_getMeshAttributes",value:function _getMeshAttributes(loaderData,dracoGeometry,options){var attributes={};for(var _i546=0,_Object$values=Object.values(loaderData.attributes);_i546<_Object$values.length;_i546++){var loaderAttribute=_Object$values[_i546];var attributeName=this._deduceAttributeName(loaderAttribute,options);loaderAttribute.name=attributeName;var values=this._getAttributeValues(dracoGeometry,loaderAttribute);if(values){var value=values.value,size=values.size;attributes[attributeName]={value:value,size:size,byteOffset:loaderAttribute.byte_offset,byteStride:loaderAttribute.byte_stride,normalized:loaderAttribute.normalized};}}return attributes;}// MESH INDICES EXTRACTION
27502
27524
  /**
27503
27525
  * For meshes, we need indices to define the faces.
27504
27526
  * @param dracoGeometry
@@ -27535,7 +27557,7 @@ console.warn("DRACO: Unsupported attribute type ".concat(attribute.data_type));r
27535
27557
  * types
27536
27558
  * @param attributeData
27537
27559
  */},{key:"_deduceAttributeName",value:function _deduceAttributeName(attribute,options){// Deduce name based on application provided map
27538
- var uniqueId=attribute.unique_id;for(var _i548=0,_Object$entries5=Object.entries(options.extraAttributes||{});_i548<_Object$entries5.length;_i548++){var _Object$entries5$_i=_slicedToArray(_Object$entries5[_i548],2),attributeName=_Object$entries5$_i[0],attributeUniqueId=_Object$entries5$_i[1];if(attributeUniqueId===uniqueId){return attributeName;}}// Deduce name based on attribute type
27560
+ var uniqueId=attribute.unique_id;for(var _i547=0,_Object$entries5=Object.entries(options.extraAttributes||{});_i547<_Object$entries5.length;_i547++){var _Object$entries5$_i=_slicedToArray(_Object$entries5[_i547],2),attributeName=_Object$entries5$_i[0],attributeUniqueId=_Object$entries5$_i[1];if(attributeUniqueId===uniqueId){return attributeName;}}// Deduce name based on attribute type
27539
27561
  var thisAttributeType=attribute.attribute_type;for(var dracoAttributeConstant in DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP){var attributeType=this.draco[dracoAttributeConstant];if(attributeType===thisAttributeType){// TODO - Return unique names if there multiple attributes per type
27540
27562
  // (e.g. multiple TEX_COORDS or COLORS)
27541
27563
  return DRACO_TO_GLTF_ATTRIBUTE_NAME_MAP[dracoAttributeConstant];}}// Look up in metadata
@@ -27562,25 +27584,25 @@ this.metadataQuerier.GetIntEntryArray(dracoMetadata,entryName,dracoArray);var in
27562
27584
  * @returns draco specific data type
27563
27585
  */function getDracoDataType(draco,attributeType){switch(attributeType){case Float32Array:return draco.DT_FLOAT32;case Int8Array:return draco.DT_INT8;case Int16Array:return draco.DT_INT16;case Int32Array:return draco.DT_INT32;case Uint8Array:return draco.DT_UINT8;case Uint16Array:return draco.DT_UINT16;case Uint32Array:return draco.DT_UINT32;default:return draco.DT_INVALID;}}/**
27564
27586
  * Copy a Draco int32 array into a JS typed array
27565
- */function getInt32Array(dracoArray){var numValues=dracoArray.size();var intArray=new Int32Array(numValues);for(var _i549=0;_i549<numValues;_i549++){intArray[_i549]=dracoArray.GetValue(_i549);}return intArray;}/**
27587
+ */function getInt32Array(dracoArray){var numValues=dracoArray.size();var intArray=new Int32Array(numValues);for(var _i548=0;_i548<numValues;_i548++){intArray[_i548]=dracoArray.GetValue(_i548);}return intArray;}/**
27566
27588
  * Copy a Draco int32 array into a JS typed array
27567
- */function getUint32Array(dracoArray){var numValues=dracoArray.size();var intArray=new Int32Array(numValues);for(var _i550=0;_i550<numValues;_i550++){intArray[_i550]=dracoArray.GetValue(_i550);}return intArray;}// Dynamic DRACO module loading inspired by THREE.DRACOLoader
27568
- var DRACO_DECODER_VERSION='1.5.6';var DRACO_ENCODER_VERSION='1.4.1';var STATIC_DECODER_URL="https://www.gstatic.com/draco/versioned/decoders/".concat(DRACO_DECODER_VERSION);var DRACO_EXTERNAL_LIBRARIES={/** The primary Draco3D encoder, javascript wrapper part */DECODER:'draco_wasm_wrapper.js',/** The primary draco decoder, compiled web assembly part */DECODER_WASM:'draco_decoder.wasm',/** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */FALLBACK_DECODER:'draco_decoder.js',/** Draco encoder */ENCODER:'draco_encoder.js'};var DRACO_EXTERNAL_LIBRARY_URLS=(_DRACO_EXTERNAL_LIBRA={},_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.DECODER,"".concat(STATIC_DECODER_URL,"/").concat(DRACO_EXTERNAL_LIBRARIES.DECODER)),_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.DECODER_WASM,"".concat(STATIC_DECODER_URL,"/").concat(DRACO_EXTERNAL_LIBRARIES.DECODER_WASM)),_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,"".concat(STATIC_DECODER_URL,"/").concat(DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER)),_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.ENCODER,"https://raw.githubusercontent.com/google/draco/".concat(DRACO_ENCODER_VERSION,"/javascript/").concat(DRACO_EXTERNAL_LIBRARIES.ENCODER)),_DRACO_EXTERNAL_LIBRA);var loadDecoderPromise;function loadDracoDecoderModule(_x79){return _loadDracoDecoderModule.apply(this,arguments);}// DRACO DECODER LOADING
27569
- function _loadDracoDecoderModule(){_loadDracoDecoderModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee55(options){var modules;return _regeneratorRuntime().wrap(function _callee55$(_context59){while(1){switch(_context59.prev=_context59.next){case 0:modules=options.modules||{};// Check if a bundled draco3d library has been supplied by application
27589
+ */function getUint32Array(dracoArray){var numValues=dracoArray.size();var intArray=new Int32Array(numValues);for(var _i549=0;_i549<numValues;_i549++){intArray[_i549]=dracoArray.GetValue(_i549);}return intArray;}// Dynamic DRACO module loading inspired by THREE.DRACOLoader
27590
+ var DRACO_DECODER_VERSION='1.5.6';var DRACO_ENCODER_VERSION='1.4.1';var STATIC_DECODER_URL="https://www.gstatic.com/draco/versioned/decoders/".concat(DRACO_DECODER_VERSION);var DRACO_EXTERNAL_LIBRARIES={/** The primary Draco3D encoder, javascript wrapper part */DECODER:'draco_wasm_wrapper.js',/** The primary draco decoder, compiled web assembly part */DECODER_WASM:'draco_decoder.wasm',/** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */FALLBACK_DECODER:'draco_decoder.js',/** Draco encoder */ENCODER:'draco_encoder.js'};var DRACO_EXTERNAL_LIBRARY_URLS=(_DRACO_EXTERNAL_LIBRA={},_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.DECODER,"".concat(STATIC_DECODER_URL,"/").concat(DRACO_EXTERNAL_LIBRARIES.DECODER)),_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.DECODER_WASM,"".concat(STATIC_DECODER_URL,"/").concat(DRACO_EXTERNAL_LIBRARIES.DECODER_WASM)),_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER,"".concat(STATIC_DECODER_URL,"/").concat(DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER)),_defineProperty(_DRACO_EXTERNAL_LIBRA,DRACO_EXTERNAL_LIBRARIES.ENCODER,"https://raw.githubusercontent.com/google/draco/".concat(DRACO_ENCODER_VERSION,"/javascript/").concat(DRACO_EXTERNAL_LIBRARIES.ENCODER)),_DRACO_EXTERNAL_LIBRA);var loadDecoderPromise;function loadDracoDecoderModule(_x80){return _loadDracoDecoderModule.apply(this,arguments);}// DRACO DECODER LOADING
27591
+ function _loadDracoDecoderModule(){_loadDracoDecoderModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee56(options){var modules;return _regeneratorRuntime().wrap(function _callee56$(_context60){while(1){switch(_context60.prev=_context60.next){case 0:modules=options.modules||{};// Check if a bundled draco3d library has been supplied by application
27570
27592
  if(modules.draco3d){loadDecoderPromise||(loadDecoderPromise=modules.draco3d.createDecoderModule({}).then(function(draco){return{draco:draco};}));}else{// If not, dynamically load the WASM script from our CDN
27571
- loadDecoderPromise||(loadDecoderPromise=loadDracoDecoder(options));}_context59.next=4;return loadDecoderPromise;case 4:return _context59.abrupt("return",_context59.sent);case 5:case"end":return _context59.stop();}}},_callee55);}));return _loadDracoDecoderModule.apply(this,arguments);}function loadDracoDecoder(_x80){return _loadDracoDecoder.apply(this,arguments);}function _loadDracoDecoder(){_loadDracoDecoder=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee56(options){var DracoDecoderModule,wasmBinary,_yield$Promise$all5,_yield$Promise$all6;return _regeneratorRuntime().wrap(function _callee56$(_context60){while(1){switch(_context60.prev=_context60.next){case 0:_context60.t0=options.draco&&options.draco.decoderType;_context60.next=_context60.t0==='js'?3:_context60.t0==='wasm'?7:7;break;case 3:_context60.next=5;return loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],'draco',options,DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER);case 5:DracoDecoderModule=_context60.sent;return _context60.abrupt("break",21);case 7:_context60.t1=Promise;_context60.next=10;return loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],'draco',options,DRACO_EXTERNAL_LIBRARIES.DECODER);case 10:_context60.t2=_context60.sent;_context60.next=13;return loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],'draco',options,DRACO_EXTERNAL_LIBRARIES.DECODER_WASM);case 13:_context60.t3=_context60.sent;_context60.t4=[_context60.t2,_context60.t3];_context60.next=17;return _context60.t1.all.call(_context60.t1,_context60.t4);case 17:_yield$Promise$all5=_context60.sent;_yield$Promise$all6=_slicedToArray(_yield$Promise$all5,2);DracoDecoderModule=_yield$Promise$all6[0];wasmBinary=_yield$Promise$all6[1];case 21:// Depends on how import happened...
27593
+ loadDecoderPromise||(loadDecoderPromise=loadDracoDecoder(options));}_context60.next=4;return loadDecoderPromise;case 4:return _context60.abrupt("return",_context60.sent);case 5:case"end":return _context60.stop();}}},_callee56);}));return _loadDracoDecoderModule.apply(this,arguments);}function loadDracoDecoder(_x81){return _loadDracoDecoder.apply(this,arguments);}function _loadDracoDecoder(){_loadDracoDecoder=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee57(options){var DracoDecoderModule,wasmBinary,_yield$Promise$all7,_yield$Promise$all8;return _regeneratorRuntime().wrap(function _callee57$(_context61){while(1){switch(_context61.prev=_context61.next){case 0:_context61.t0=options.draco&&options.draco.decoderType;_context61.next=_context61.t0==='js'?3:_context61.t0==='wasm'?7:7;break;case 3:_context61.next=5;return loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],'draco',options,DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER);case 5:DracoDecoderModule=_context61.sent;return _context61.abrupt("break",21);case 7:_context61.t1=Promise;_context61.next=10;return loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],'draco',options,DRACO_EXTERNAL_LIBRARIES.DECODER);case 10:_context61.t2=_context61.sent;_context61.next=13;return loadLibrary(DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],'draco',options,DRACO_EXTERNAL_LIBRARIES.DECODER_WASM);case 13:_context61.t3=_context61.sent;_context61.t4=[_context61.t2,_context61.t3];_context61.next=17;return _context61.t1.all.call(_context61.t1,_context61.t4);case 17:_yield$Promise$all7=_context61.sent;_yield$Promise$all8=_slicedToArray(_yield$Promise$all7,2);DracoDecoderModule=_yield$Promise$all8[0];wasmBinary=_yield$Promise$all8[1];case 21:// Depends on how import happened...
27572
27594
  // @ts-ignore
27573
- DracoDecoderModule=DracoDecoderModule||globalThis.DracoDecoderModule;_context60.next=24;return initializeDracoDecoder(DracoDecoderModule,wasmBinary);case 24:return _context60.abrupt("return",_context60.sent);case 25:case"end":return _context60.stop();}}},_callee56);}));return _loadDracoDecoder.apply(this,arguments);}function initializeDracoDecoder(DracoDecoderModule,wasmBinary){var options={};if(wasmBinary){options.wasmBinary=wasmBinary;}return new Promise(function(resolve){DracoDecoderModule(_objectSpread(_objectSpread({},options),{},{onModuleLoaded:function onModuleLoaded(draco){return resolve({draco:draco});}// Module is Promise-like. Wrap in object to avoid loop.
27595
+ DracoDecoderModule=DracoDecoderModule||globalThis.DracoDecoderModule;_context61.next=24;return initializeDracoDecoder(DracoDecoderModule,wasmBinary);case 24:return _context61.abrupt("return",_context61.sent);case 25:case"end":return _context61.stop();}}},_callee57);}));return _loadDracoDecoder.apply(this,arguments);}function initializeDracoDecoder(DracoDecoderModule,wasmBinary){var options={};if(wasmBinary){options.wasmBinary=wasmBinary;}return new Promise(function(resolve){DracoDecoderModule(_objectSpread(_objectSpread({},options),{},{onModuleLoaded:function onModuleLoaded(draco){return resolve({draco:draco});}// Module is Promise-like. Wrap in object to avoid loop.
27574
27596
  }));});}/**
27575
27597
  * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
27576
27598
  * Refused to execute script from 'https://raw.githubusercontent.com/google/draco/1.4.1/javascript/draco_encoder.js' because its MIME type ('') is not executable.
27577
27599
  */({id:'draco-writer',name:'Draco compressed geometry writer',module:'draco',version:VERSION$1,worker:true,options:{draco:{},source:null}});/**
27578
27600
  * Loader for Draco3D compressed geometries
27579
- */var DracoLoader=_objectSpread(_objectSpread({},DracoLoader$1),{},{parse:parse$2});function parse$2(_x81,_x82){return _parse$2.apply(this,arguments);}// TODO - remove
27601
+ */var DracoLoader=_objectSpread(_objectSpread({},DracoLoader$1),{},{parse:parse$2});function parse$2(_x82,_x83){return _parse$2.apply(this,arguments);}// TODO - remove
27580
27602
  // Returns a fresh attributes object with glTF-standardized attributes names
27581
27603
  // Attributes that cannot be identified will not be included
27582
27604
  // Removes `indices` if present, as it should be stored separately from the attributes
27583
- function _parse$2(){_parse$2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee57(arrayBuffer,options){var _yield$loadDracoDecod,draco,dracoParser;return _regeneratorRuntime().wrap(function _callee57$(_context61){while(1){switch(_context61.prev=_context61.next){case 0:_context61.next=2;return loadDracoDecoderModule(options);case 2:_yield$loadDracoDecod=_context61.sent;draco=_yield$loadDracoDecod.draco;dracoParser=new DracoParser(draco);_context61.prev=5;return _context61.abrupt("return",dracoParser.parseSync(arrayBuffer,options===null||options===void 0?void 0:options.draco));case 7:_context61.prev=7;dracoParser.destroy();return _context61.finish(7);case 10:case"end":return _context61.stop();}}},_callee57,null,[[5,,7,10]]);}));return _parse$2.apply(this,arguments);}function getGLTFAccessors(attributes){var accessors={};for(var _name6 in attributes){var attribute=attributes[_name6];if(_name6!=='indices'){var glTFAccessor=getGLTFAccessor(attribute);accessors[_name6]=glTFAccessor;}}return accessors;}// Fix up a single accessor.
27605
+ function _parse$2(){_parse$2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee58(arrayBuffer,options){var _yield$loadDracoDecod,draco,dracoParser;return _regeneratorRuntime().wrap(function _callee58$(_context62){while(1){switch(_context62.prev=_context62.next){case 0:_context62.next=2;return loadDracoDecoderModule(options);case 2:_yield$loadDracoDecod=_context62.sent;draco=_yield$loadDracoDecod.draco;dracoParser=new DracoParser(draco);_context62.prev=5;return _context62.abrupt("return",dracoParser.parseSync(arrayBuffer,options===null||options===void 0?void 0:options.draco));case 7:_context62.prev=7;dracoParser.destroy();return _context62.finish(7);case 10:case"end":return _context62.stop();}}},_callee58,null,[[5,,7,10]]);}));return _parse$2.apply(this,arguments);}function getGLTFAccessors(attributes){var accessors={};for(var _name6 in attributes){var attribute=attributes[_name6];if(_name6!=='indices'){var glTFAccessor=getGLTFAccessor(attribute);accessors[_name6]=glTFAccessor;}}return accessors;}// Fix up a single accessor.
27584
27606
  // Input: typed array or a partial accessor object
27585
27607
  // Return: accessor object
27586
27608
  function getGLTFAccessor(attribute){var _getAccessorData=getAccessorData(attribute),buffer=_getAccessorData.buffer,size=_getAccessorData.size,count=_getAccessorData.count;var glTFAccessor={// glTF Accessor values
@@ -27594,9 +27616,9 @@ byteOffset:0,count:count,type:getAccessorTypeFromSize(size),componentType:getCom
27594
27616
  // }
27595
27617
  function getAccessorData(attribute){var buffer=attribute;var size=1;var count=0;if(attribute&&attribute.value){buffer=attribute.value;size=attribute.size||1;}if(buffer){if(!ArrayBuffer.isView(buffer)){buffer=toTypedArray(buffer,Float32Array);}count=buffer.length/size;}return{buffer:buffer,size:size,count:count};}// Convert non-typed arrays to arrays of specified format
27596
27618
  function toTypedArray(array,ArrayType){var convertTypedArrays=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;if(!array){return null;}if(Array.isArray(array)){return new ArrayType(array);}if(convertTypedArrays&&!(array instanceof ArrayType)){return new ArrayType(array);}return array;}// https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Khronos/KHR_draco_mesh_compression
27597
- var KHR_DRACO_MESH_COMPRESSION='KHR_draco_mesh_compression';/** Extension name */var name$5=KHR_DRACO_MESH_COMPRESSION;function preprocess$1(gltfData,options,context){var scenegraph=new GLTFScenegraph(gltfData);var _iterator42=_createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph)),_step42;try{for(_iterator42.s();!(_step42=_iterator42.n()).done;){var _primitive5=_step42.value;if(scenegraph.getObjectExtension(_primitive5,KHR_DRACO_MESH_COMPRESSION));}}catch(err){_iterator42.e(err);}finally{_iterator42.f();}}function decode$4(_x83,_x84,_x85){return _decode$5.apply(this,arguments);}function _decode$5(){_decode$5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee58(gltfData,options,context){var _options$gltf10;var scenegraph,promises,_iterator68,_step68,_primitive10;return _regeneratorRuntime().wrap(function _callee58$(_context62){while(1){switch(_context62.prev=_context62.next){case 0:if(options!==null&&options!==void 0&&(_options$gltf10=options.gltf)!==null&&_options$gltf10!==void 0&&_options$gltf10.decompressMeshes){_context62.next=2;break;}return _context62.abrupt("return");case 2:scenegraph=new GLTFScenegraph(gltfData);promises=[];_iterator68=_createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph));try{for(_iterator68.s();!(_step68=_iterator68.n()).done;){_primitive10=_step68.value;if(scenegraph.getObjectExtension(_primitive10,KHR_DRACO_MESH_COMPRESSION)){promises.push(decompressPrimitive(scenegraph,_primitive10,options,context));}}// Decompress meshes in parallel
27598
- }catch(err){_iterator68.e(err);}finally{_iterator68.f();}_context62.next=8;return Promise.all(promises);case 8:// We have now decompressed all primitives, so remove the top-level extension
27599
- scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);case 9:case"end":return _context62.stop();}}},_callee58);}));return _decode$5.apply(this,arguments);}function encode$3(gltfData){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var scenegraph=new GLTFScenegraph(gltfData);var _iterator43=_createForOfIteratorHelper(scenegraph.json.meshes||[]),_step43;try{for(_iterator43.s();!(_step43=_iterator43.n()).done;){var _mesh7=_step43.value;// eslint-disable-next-line camelcase
27619
+ var KHR_DRACO_MESH_COMPRESSION='KHR_draco_mesh_compression';/** Extension name */var name$5=KHR_DRACO_MESH_COMPRESSION;function preprocess$1(gltfData,options,context){var scenegraph=new GLTFScenegraph(gltfData);var _iterator42=_createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph)),_step42;try{for(_iterator42.s();!(_step42=_iterator42.n()).done;){var _primitive5=_step42.value;if(scenegraph.getObjectExtension(_primitive5,KHR_DRACO_MESH_COMPRESSION));}}catch(err){_iterator42.e(err);}finally{_iterator42.f();}}function decode$4(_x84,_x85,_x86){return _decode$5.apply(this,arguments);}function _decode$5(){_decode$5=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee59(gltfData,options,context){var _options$gltf10;var scenegraph,promises,_iterator68,_step68,_primitive10;return _regeneratorRuntime().wrap(function _callee59$(_context63){while(1){switch(_context63.prev=_context63.next){case 0:if(options!==null&&options!==void 0&&(_options$gltf10=options.gltf)!==null&&_options$gltf10!==void 0&&_options$gltf10.decompressMeshes){_context63.next=2;break;}return _context63.abrupt("return");case 2:scenegraph=new GLTFScenegraph(gltfData);promises=[];_iterator68=_createForOfIteratorHelper(makeMeshPrimitiveIterator(scenegraph));try{for(_iterator68.s();!(_step68=_iterator68.n()).done;){_primitive10=_step68.value;if(scenegraph.getObjectExtension(_primitive10,KHR_DRACO_MESH_COMPRESSION)){promises.push(decompressPrimitive(scenegraph,_primitive10,options,context));}}// Decompress meshes in parallel
27620
+ }catch(err){_iterator68.e(err);}finally{_iterator68.f();}_context63.next=8;return Promise.all(promises);case 8:// We have now decompressed all primitives, so remove the top-level extension
27621
+ scenegraph.removeExtension(KHR_DRACO_MESH_COMPRESSION);case 9:case"end":return _context63.stop();}}},_callee59);}));return _decode$5.apply(this,arguments);}function encode$3(gltfData){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var scenegraph=new GLTFScenegraph(gltfData);var _iterator43=_createForOfIteratorHelper(scenegraph.json.meshes||[]),_step43;try{for(_iterator43.s();!(_step43=_iterator43.n()).done;){var _mesh7=_step43.value;// eslint-disable-next-line camelcase
27600
27622
  // @ts-ignore
27601
27623
  compressMesh(_mesh7);// NOTE: Only add the extension if something was actually compressed
27602
27624
  scenegraph.addRequiredExtension(KHR_DRACO_MESH_COMPRESSION);}}catch(err){_iterator43.e(err);}finally{_iterator43.f();}}// DECODE
@@ -27604,18 +27626,18 @@ scenegraph.addRequiredExtension(KHR_DRACO_MESH_COMPRESSION);}}catch(err){_iterat
27604
27626
  // DracoDecoder needs to be imported and registered by app
27605
27627
  // Returns: Promise that resolves when all pending draco decoder jobs for this mesh complete
27606
27628
  // TODO - Implement fallback behavior per KHR_DRACO_MESH_COMPRESSION spec
27607
- function decompressPrimitive(_x86,_x87,_x88,_x89){return _decompressPrimitive.apply(this,arguments);}// ENCODE
27629
+ function decompressPrimitive(_x87,_x88,_x89,_x90){return _decompressPrimitive.apply(this,arguments);}// ENCODE
27608
27630
  // eslint-disable-next-line max-len
27609
27631
  // Only TRIANGLES: 0x0004 and TRIANGLE_STRIP: 0x0005 are supported
27610
- function _decompressPrimitive(){_decompressPrimitive=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee59(scenegraph,primitive,options,context){var dracoExtension,buffer,bufferCopy,dracoOptions,decodedData,decodedAttributes,_i695,_Object$entries9,_Object$entries9$_i,attributeName,decodedAttribute,accessorIndex,accessor;return _regeneratorRuntime().wrap(function _callee59$(_context63){while(1){switch(_context63.prev=_context63.next){case 0:dracoExtension=scenegraph.getObjectExtension(primitive,KHR_DRACO_MESH_COMPRESSION);if(dracoExtension){_context63.next=3;break;}return _context63.abrupt("return");case 3:buffer=scenegraph.getTypedArrayForBufferView(dracoExtension.bufferView);// TODO - parse does not yet deal well with byte offsets embedded in typed arrays. Copy buffer
27632
+ function _decompressPrimitive(){_decompressPrimitive=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee60(scenegraph,primitive,options,context){var dracoExtension,buffer,bufferCopy,dracoOptions,decodedData,decodedAttributes,_i694,_Object$entries9,_Object$entries9$_i,attributeName,decodedAttribute,accessorIndex,accessor;return _regeneratorRuntime().wrap(function _callee60$(_context64){while(1){switch(_context64.prev=_context64.next){case 0:dracoExtension=scenegraph.getObjectExtension(primitive,KHR_DRACO_MESH_COMPRESSION);if(dracoExtension){_context64.next=3;break;}return _context64.abrupt("return");case 3:buffer=scenegraph.getTypedArrayForBufferView(dracoExtension.bufferView);// TODO - parse does not yet deal well with byte offsets embedded in typed arrays. Copy buffer
27611
27633
  // TODO - remove when `parse` is fixed to handle `byteOffset`s
27612
27634
  bufferCopy=sliceArrayBuffer(buffer.buffer,buffer.byteOffset);// , buffer.byteLength);
27613
27635
  dracoOptions=_objectSpread({},options);// TODO - remove hack: The entire tileset might be included, too expensive to serialize
27614
- delete dracoOptions['3d-tiles'];_context63.next=9;return parseFromContext(bufferCopy,DracoLoader,dracoOptions,context);case 9:decodedData=_context63.sent;decodedAttributes=getGLTFAccessors(decodedData.attributes);// Restore min/max values
27615
- for(_i695=0,_Object$entries9=Object.entries(decodedAttributes);_i695<_Object$entries9.length;_i695++){_Object$entries9$_i=_slicedToArray(_Object$entries9[_i695],2),attributeName=_Object$entries9$_i[0],decodedAttribute=_Object$entries9$_i[1];if(attributeName in primitive.attributes){accessorIndex=primitive.attributes[attributeName];accessor=scenegraph.getAccessor(accessorIndex);if(accessor!==null&&accessor!==void 0&&accessor.min&&accessor!==null&&accessor!==void 0&&accessor.max){decodedAttribute.min=accessor.min;decodedAttribute.max=accessor.max;}}}// @ts-ignore
27636
+ delete dracoOptions['3d-tiles'];_context64.next=9;return parseFromContext(bufferCopy,DracoLoader,dracoOptions,context);case 9:decodedData=_context64.sent;decodedAttributes=getGLTFAccessors(decodedData.attributes);// Restore min/max values
27637
+ for(_i694=0,_Object$entries9=Object.entries(decodedAttributes);_i694<_Object$entries9.length;_i694++){_Object$entries9$_i=_slicedToArray(_Object$entries9[_i694],2),attributeName=_Object$entries9$_i[0],decodedAttribute=_Object$entries9$_i[1];if(attributeName in primitive.attributes){accessorIndex=primitive.attributes[attributeName];accessor=scenegraph.getAccessor(accessorIndex);if(accessor!==null&&accessor!==void 0&&accessor.min&&accessor!==null&&accessor!==void 0&&accessor.max){decodedAttribute.min=accessor.min;decodedAttribute.max=accessor.max;}}}// @ts-ignore
27616
27638
  primitive.attributes=decodedAttributes;if(decodedData.indices){// @ts-ignore
27617
27639
  primitive.indices=getGLTFAccessor(decodedData.indices);}// Extension has been processed, delete it
27618
- scenegraph.removeObjectExtension(primitive,KHR_DRACO_MESH_COMPRESSION);checkPrimitive(primitive);case 16:case"end":return _context63.stop();}}},_callee59);}));return _decompressPrimitive.apply(this,arguments);}function compressMesh(attributes,indices){var _context$parseSync;var mode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:4;var options=arguments.length>3?arguments[3]:undefined;var context=arguments.length>4?arguments[4]:undefined;if(!options.DracoWriter){throw new Error('options.gltf.DracoWriter not provided');}// TODO - use DracoWriter using encode w/ registered DracoWriter...
27640
+ scenegraph.removeObjectExtension(primitive,KHR_DRACO_MESH_COMPRESSION);checkPrimitive(primitive);case 16:case"end":return _context64.stop();}}},_callee60);}));return _decompressPrimitive.apply(this,arguments);}function compressMesh(attributes,indices){var _context$parseSync;var mode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:4;var options=arguments.length>3?arguments[3]:undefined;var context=arguments.length>4?arguments[4]:undefined;if(!options.DracoWriter){throw new Error('options.gltf.DracoWriter not provided');}// TODO - use DracoWriter using encode w/ registered DracoWriter...
27619
27641
  var compressedData=options.DracoWriter.encodeSync({attributes:attributes});// Draco compression may change the order and number of vertices in a mesh.
27620
27642
  // To satisfy the requirement that accessors properties be correct for both
27621
27643
  // compressed and uncompressed data, generators should create uncompressed
@@ -27626,7 +27648,7 @@ var decodedData=context===null||context===void 0?void 0:(_context$parseSync=cont
27626
27648
  mode:mode,// GL.POINTS
27627
27649
  extensions:_defineProperty({},KHR_DRACO_MESH_COMPRESSION,{bufferView:bufferViewIndex,attributes:fauxAccessors// TODO - verify with spec
27628
27650
  })}]};return glTFMesh;}// UTILS
27629
- function checkPrimitive(primitive){if(!primitive.attributes&&Object.keys(primitive.attributes).length>0){throw new Error('glTF: Empty primitive detected: Draco decompression failure?');}}function makeMeshPrimitiveIterator(scenegraph){var _iterator44,_step44,_mesh8,_iterator45,_step45,_primitive6;return _regeneratorRuntime().wrap(function makeMeshPrimitiveIterator$(_context10){while(1){switch(_context10.prev=_context10.next){case 0:_iterator44=_createForOfIteratorHelper(scenegraph.json.meshes||[]);_context10.prev=1;_iterator44.s();case 3:if((_step44=_iterator44.n()).done){_context10.next=24;break;}_mesh8=_step44.value;_iterator45=_createForOfIteratorHelper(_mesh8.primitives);_context10.prev=6;_iterator45.s();case 8:if((_step45=_iterator45.n()).done){_context10.next=14;break;}_primitive6=_step45.value;_context10.next=12;return _primitive6;case 12:_context10.next=8;break;case 14:_context10.next=19;break;case 16:_context10.prev=16;_context10.t0=_context10["catch"](6);_iterator45.e(_context10.t0);case 19:_context10.prev=19;_iterator45.f();return _context10.finish(19);case 22:_context10.next=3;break;case 24:_context10.next=29;break;case 26:_context10.prev=26;_context10.t1=_context10["catch"](1);_iterator44.e(_context10.t1);case 29:_context10.prev=29;_iterator44.f();return _context10.finish(29);case 32:case"end":return _context10.stop();}}},_marked3,null,[[1,26,29,32],[6,16,19,22]]);}var KHR_draco_mesh_compression=/*#__PURE__*/Object.freeze({__proto__:null,name:name$5,preprocess:preprocess$1,decode:decode$4,encode:encode$3});// math.gl
27651
+ function checkPrimitive(primitive){if(!primitive.attributes&&Object.keys(primitive.attributes).length>0){throw new Error('glTF: Empty primitive detected: Draco decompression failure?');}}function makeMeshPrimitiveIterator(scenegraph){var _iterator44,_step44,_mesh8,_iterator45,_step45,_primitive6;return _regeneratorRuntime().wrap(function makeMeshPrimitiveIterator$(_context11){while(1){switch(_context11.prev=_context11.next){case 0:_iterator44=_createForOfIteratorHelper(scenegraph.json.meshes||[]);_context11.prev=1;_iterator44.s();case 3:if((_step44=_iterator44.n()).done){_context11.next=24;break;}_mesh8=_step44.value;_iterator45=_createForOfIteratorHelper(_mesh8.primitives);_context11.prev=6;_iterator45.s();case 8:if((_step45=_iterator45.n()).done){_context11.next=14;break;}_primitive6=_step45.value;_context11.next=12;return _primitive6;case 12:_context11.next=8;break;case 14:_context11.next=19;break;case 16:_context11.prev=16;_context11.t0=_context11["catch"](6);_iterator45.e(_context11.t0);case 19:_context11.prev=19;_iterator45.f();return _context11.finish(19);case 22:_context11.next=3;break;case 24:_context11.next=29;break;case 26:_context11.prev=26;_context11.t1=_context11["catch"](1);_iterator44.e(_context11.t1);case 29:_context11.prev=29;_iterator44.f();return _context11.finish(29);case 32:case"end":return _context11.stop();}}},_marked3,null,[[1,26,29,32],[6,16,19,22]]);}var KHR_draco_mesh_compression=/*#__PURE__*/Object.freeze({__proto__:null,name:name$5,preprocess:preprocess$1,decode:decode$4,encode:encode$3});// math.gl
27630
27652
  var DEFAULT_CONFIG={EPSILON:1e-12,debug:false,precision:4,printTypes:false,printDegrees:false,printRowMajor:true,_cartographicRadians:false};// Configuration is truly global as of v3.6 to ensure single config even if multiple copies of math.gl
27631
27653
  // Multiple copies of config can be quite tricky to debug...
27632
27654
  globalThis.mathgl=globalThis.mathgl||{config:_objectSpread({},DEFAULT_CONFIG)};var config=globalThis.mathgl.config;/**
@@ -27646,8 +27668,8 @@ return"".concat(parseFloat(value.toPrecision(precision)));}/**
27646
27668
  * @param b
27647
27669
  * @param epsilon
27648
27670
  * @returns
27649
- */function _equals(a,b,epsilon){var oldEpsilon=config.EPSILON;if(epsilon){config.EPSILON=epsilon;}try{if(a===b){return true;}if(isArray(a)&&isArray(b)){if(a.length!==b.length){return false;}for(var _i551=0;_i551<a.length;++_i551){// eslint-disable-next-line max-depth
27650
- if(!_equals(a[_i551],b[_i551])){return false;}}return true;}if(a&&a.equals){return a.equals(b);}if(b&&b.equals){return b.equals(a);}if(typeof a==='number'&&typeof b==='number'){return Math.abs(a-b)<=config.EPSILON*Math.max(1,Math.abs(a),Math.abs(b));}return false;}finally{config.EPSILON=oldEpsilon;}}// HELPERS
27671
+ */function _equals(a,b,epsilon){var oldEpsilon=config.EPSILON;if(epsilon){config.EPSILON=epsilon;}try{if(a===b){return true;}if(isArray(a)&&isArray(b)){if(a.length!==b.length){return false;}for(var _i550=0;_i550<a.length;++_i550){// eslint-disable-next-line max-depth
27672
+ if(!_equals(a[_i550],b[_i550])){return false;}}return true;}if(a&&a.equals){return a.equals(b);}if(b&&b.equals){return b.equals(a);}if(typeof a==='number'&&typeof b==='number'){return Math.abs(a-b)<=config.EPSILON*Math.max(1,Math.abs(a),Math.abs(b));}return false;}finally{config.EPSILON=oldEpsilon;}}// HELPERS
27651
27673
  function round(value){return Math.round(value/config.EPSILON)*config.EPSILON;}// math.gl
27652
27674
  /** Base class for vectors and matrices */var MathArray=/*#__PURE__*/function(_Array){_inherits(MathArray,_Array);var _super148=_createSuper(MathArray);function MathArray(){_classCallCheck(this,MathArray);return _super148.apply(this,arguments);}_createClass(MathArray,[{key:"clone",value:// Common methods
27653
27675
  /**
@@ -27655,20 +27677,20 @@ function round(value){return Math.round(value/config.EPSILON)*config.EPSILON;}//
27655
27677
  * @returns a new copy of this object
27656
27678
  */function clone(){// @ts-expect-error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
27657
27679
  return new this.constructor().copy(this);// eslint-disable-line
27658
- }},{key:"fromArray",value:function fromArray(array){var offset=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;for(var _i552=0;_i552<this.ELEMENTS;++_i552){this[_i552]=array[_i552+offset];}return this.check();}},{key:"toArray",value:function toArray(){var targetArray=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var offset=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;for(var _i553=0;_i553<this.ELEMENTS;++_i553){targetArray[offset+_i553]=this[_i553];}return targetArray;}},{key:"toObject",value:function toObject(targetObject){return targetObject;}},{key:"from",value:function from(arrayOrObject){return Array.isArray(arrayOrObject)?this.copy(arrayOrObject):// @ts-ignore
27680
+ }},{key:"fromArray",value:function fromArray(array){var offset=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;for(var _i551=0;_i551<this.ELEMENTS;++_i551){this[_i551]=array[_i551+offset];}return this.check();}},{key:"toArray",value:function toArray(){var targetArray=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var offset=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;for(var _i552=0;_i552<this.ELEMENTS;++_i552){targetArray[offset+_i552]=this[_i552];}return targetArray;}},{key:"toObject",value:function toObject(targetObject){return targetObject;}},{key:"from",value:function from(arrayOrObject){return Array.isArray(arrayOrObject)?this.copy(arrayOrObject):// @ts-ignore
27659
27681
  this.fromObject(arrayOrObject);}},{key:"to",value:function to(arrayOrObject){// @ts-ignore
27660
27682
  if(arrayOrObject===this){return this;}// @ts-expect-error TS2339: Property 'toObject' does not exist on type 'MathArray'.
27661
- return isArray(arrayOrObject)?this.toArray(arrayOrObject):this.toObject(arrayOrObject);}},{key:"toTarget",value:function toTarget(target){return target?this.to(target):this;}/** @deprecated */},{key:"toFloat32Array",value:function toFloat32Array(){return new Float32Array(this);}},{key:"toString",value:function toString(){return this.formatString(config);}/** Formats string according to options */},{key:"formatString",value:function formatString(opts){var string='';for(var _i554=0;_i554<this.ELEMENTS;++_i554){string+=(_i554>0?', ':'')+formatValue(this[_i554],opts);}return"".concat(opts.printTypes?this.constructor.name:'',"[").concat(string,"]");}},{key:"equals",value:function equals(array){if(!array||this.length!==array.length){return false;}for(var _i555=0;_i555<this.ELEMENTS;++_i555){if(!_equals(this[_i555],array[_i555])){return false;}}return true;}},{key:"exactEquals",value:function exactEquals(array){if(!array||this.length!==array.length){return false;}for(var _i556=0;_i556<this.ELEMENTS;++_i556){if(this[_i556]!==array[_i556]){return false;}}return true;}// Modifiers
27662
- /** Negates all values in this object */},{key:"negate",value:function negate(){for(var _i557=0;_i557<this.ELEMENTS;++_i557){this[_i557]=-this[_i557];}return this.check();}},{key:"lerp",value:function lerp(a,b,t){if(t===undefined){return this.lerp(this,a,b);}for(var _i558=0;_i558<this.ELEMENTS;++_i558){var ai=a[_i558];var endValue=typeof b==='number'?b:b[_i558];this[_i558]=ai+t*(endValue-ai);}return this.check();}/** Minimal */},{key:"min",value:function min(vector){for(var _i559=0;_i559<this.ELEMENTS;++_i559){this[_i559]=Math.min(vector[_i559],this[_i559]);}return this.check();}/** Maximal */},{key:"max",value:function max(vector){for(var _i560=0;_i560<this.ELEMENTS;++_i560){this[_i560]=Math.max(vector[_i560],this[_i560]);}return this.check();}},{key:"clamp",value:function clamp(minVector,maxVector){for(var _i561=0;_i561<this.ELEMENTS;++_i561){this[_i561]=Math.min(Math.max(this[_i561],minVector[_i561]),maxVector[_i561]);}return this.check();}},{key:"add",value:function add(){for(var _len105=arguments.length,vectors=new Array(_len105),_key10=0;_key10<_len105;_key10++){vectors[_key10]=arguments[_key10];}for(var _i562=0,_vectors=vectors;_i562<_vectors.length;_i562++){var vector=_vectors[_i562];for(var _i563=0;_i563<this.ELEMENTS;++_i563){this[_i563]+=vector[_i563];}}return this.check();}},{key:"subtract",value:function subtract(){for(var _len106=arguments.length,vectors=new Array(_len106),_key11=0;_key11<_len106;_key11++){vectors[_key11]=arguments[_key11];}for(var _i564=0,_vectors2=vectors;_i564<_vectors2.length;_i564++){var vector=_vectors2[_i564];for(var _i565=0;_i565<this.ELEMENTS;++_i565){this[_i565]-=vector[_i565];}}return this.check();}},{key:"scale",value:function scale(_scale5){if(typeof _scale5==='number'){for(var _i566=0;_i566<this.ELEMENTS;++_i566){this[_i566]*=_scale5;}}else{for(var _i567=0;_i567<this.ELEMENTS&&_i567<_scale5.length;++_i567){this[_i567]*=_scale5[_i567];}}return this.check();}/**
27683
+ return isArray(arrayOrObject)?this.toArray(arrayOrObject):this.toObject(arrayOrObject);}},{key:"toTarget",value:function toTarget(target){return target?this.to(target):this;}/** @deprecated */},{key:"toFloat32Array",value:function toFloat32Array(){return new Float32Array(this);}},{key:"toString",value:function toString(){return this.formatString(config);}/** Formats string according to options */},{key:"formatString",value:function formatString(opts){var string='';for(var _i553=0;_i553<this.ELEMENTS;++_i553){string+=(_i553>0?', ':'')+formatValue(this[_i553],opts);}return"".concat(opts.printTypes?this.constructor.name:'',"[").concat(string,"]");}},{key:"equals",value:function equals(array){if(!array||this.length!==array.length){return false;}for(var _i554=0;_i554<this.ELEMENTS;++_i554){if(!_equals(this[_i554],array[_i554])){return false;}}return true;}},{key:"exactEquals",value:function exactEquals(array){if(!array||this.length!==array.length){return false;}for(var _i555=0;_i555<this.ELEMENTS;++_i555){if(this[_i555]!==array[_i555]){return false;}}return true;}// Modifiers
27684
+ /** Negates all values in this object */},{key:"negate",value:function negate(){for(var _i556=0;_i556<this.ELEMENTS;++_i556){this[_i556]=-this[_i556];}return this.check();}},{key:"lerp",value:function lerp(a,b,t){if(t===undefined){return this.lerp(this,a,b);}for(var _i557=0;_i557<this.ELEMENTS;++_i557){var ai=a[_i557];var endValue=typeof b==='number'?b:b[_i557];this[_i557]=ai+t*(endValue-ai);}return this.check();}/** Minimal */},{key:"min",value:function min(vector){for(var _i558=0;_i558<this.ELEMENTS;++_i558){this[_i558]=Math.min(vector[_i558],this[_i558]);}return this.check();}/** Maximal */},{key:"max",value:function max(vector){for(var _i559=0;_i559<this.ELEMENTS;++_i559){this[_i559]=Math.max(vector[_i559],this[_i559]);}return this.check();}},{key:"clamp",value:function clamp(minVector,maxVector){for(var _i560=0;_i560<this.ELEMENTS;++_i560){this[_i560]=Math.min(Math.max(this[_i560],minVector[_i560]),maxVector[_i560]);}return this.check();}},{key:"add",value:function add(){for(var _len105=arguments.length,vectors=new Array(_len105),_key10=0;_key10<_len105;_key10++){vectors[_key10]=arguments[_key10];}for(var _i561=0,_vectors=vectors;_i561<_vectors.length;_i561++){var vector=_vectors[_i561];for(var _i562=0;_i562<this.ELEMENTS;++_i562){this[_i562]+=vector[_i562];}}return this.check();}},{key:"subtract",value:function subtract(){for(var _len106=arguments.length,vectors=new Array(_len106),_key11=0;_key11<_len106;_key11++){vectors[_key11]=arguments[_key11];}for(var _i563=0,_vectors2=vectors;_i563<_vectors2.length;_i563++){var vector=_vectors2[_i563];for(var _i564=0;_i564<this.ELEMENTS;++_i564){this[_i564]-=vector[_i564];}}return this.check();}},{key:"scale",value:function scale(_scale5){if(typeof _scale5==='number'){for(var _i565=0;_i565<this.ELEMENTS;++_i565){this[_i565]*=_scale5;}}else{for(var _i566=0;_i566<this.ELEMENTS&&_i566<_scale5.length;++_i566){this[_i566]*=_scale5[_i566];}}return this.check();}/**
27663
27685
  * Multiplies all elements by `scale`
27664
27686
  * Note: `Matrix4.multiplyByScalar` only scales its 3x3 "minor"
27665
- */},{key:"multiplyByScalar",value:function multiplyByScalar(scalar){for(var _i568=0;_i568<this.ELEMENTS;++_i568){this[_i568]*=scalar;}return this.check();}// Debug checks
27666
- /** Throws an error if array length is incorrect or contains illegal values */},{key:"check",value:function check(){if(config.debug&&!this.validate()){throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));}return this;}/** Returns false if the array length is incorrect or contains illegal values */},{key:"validate",value:function validate(){var valid=this.length===this.ELEMENTS;for(var _i569=0;_i569<this.ELEMENTS;++_i569){valid=valid&&Number.isFinite(this[_i569]);}return valid;}// three.js compatibility
27667
- /** @deprecated */},{key:"sub",value:function sub(a){return this.subtract(a);}/** @deprecated */},{key:"setScalar",value:function setScalar(a){for(var _i570=0;_i570<this.ELEMENTS;++_i570){this[_i570]=a;}return this.check();}/** @deprecated */},{key:"addScalar",value:function addScalar(a){for(var _i571=0;_i571<this.ELEMENTS;++_i571){this[_i571]+=a;}return this.check();}/** @deprecated */},{key:"subScalar",value:function subScalar(a){return this.addScalar(-a);}/** @deprecated */},{key:"multiplyScalar",value:function multiplyScalar(scalar){// Multiplies all elements
27687
+ */},{key:"multiplyByScalar",value:function multiplyByScalar(scalar){for(var _i567=0;_i567<this.ELEMENTS;++_i567){this[_i567]*=scalar;}return this.check();}// Debug checks
27688
+ /** Throws an error if array length is incorrect or contains illegal values */},{key:"check",value:function check(){if(config.debug&&!this.validate()){throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));}return this;}/** Returns false if the array length is incorrect or contains illegal values */},{key:"validate",value:function validate(){var valid=this.length===this.ELEMENTS;for(var _i568=0;_i568<this.ELEMENTS;++_i568){valid=valid&&Number.isFinite(this[_i568]);}return valid;}// three.js compatibility
27689
+ /** @deprecated */},{key:"sub",value:function sub(a){return this.subtract(a);}/** @deprecated */},{key:"setScalar",value:function setScalar(a){for(var _i569=0;_i569<this.ELEMENTS;++_i569){this[_i569]=a;}return this.check();}/** @deprecated */},{key:"addScalar",value:function addScalar(a){for(var _i570=0;_i570<this.ELEMENTS;++_i570){this[_i570]+=a;}return this.check();}/** @deprecated */},{key:"subScalar",value:function subScalar(a){return this.addScalar(-a);}/** @deprecated */},{key:"multiplyScalar",value:function multiplyScalar(scalar){// Multiplies all elements
27668
27690
  // `Matrix4.scale` only scales its 3x3 "minor"
27669
- for(var _i572=0;_i572<this.ELEMENTS;++_i572){this[_i572]*=scalar;}return this.check();}/** @deprecated */},{key:"divideScalar",value:function divideScalar(a){return this.multiplyByScalar(1/a);}/** @deprecated */},{key:"clampScalar",value:function clampScalar(min,max){for(var _i573=0;_i573<this.ELEMENTS;++_i573){this[_i573]=Math.min(Math.max(this[_i573],min),max);}return this.check();}/** @deprecated */},{key:"elements",get:function get(){return this;}}]);return MathArray;}(/*#__PURE__*/_wrapNativeSuper(Array));// math.gl
27691
+ for(var _i571=0;_i571<this.ELEMENTS;++_i571){this[_i571]*=scalar;}return this.check();}/** @deprecated */},{key:"divideScalar",value:function divideScalar(a){return this.multiplyByScalar(1/a);}/** @deprecated */},{key:"clampScalar",value:function clampScalar(min,max){for(var _i572=0;_i572<this.ELEMENTS;++_i572){this[_i572]=Math.min(Math.max(this[_i572],min),max);}return this.check();}/** @deprecated */},{key:"elements",get:function get(){return this;}}]);return MathArray;}(/*#__PURE__*/_wrapNativeSuper(Array));// math.gl
27670
27692
  function validateVector(v,length){if(v.length!==length){return false;}// Could be arguments "array" (v.every not availasble)
27671
- for(var _i574=0;_i574<v.length;++_i574){if(!Number.isFinite(v[_i574])){return false;}}return true;}function checkNumber(value){if(!Number.isFinite(value)){throw new Error("Invalid number ".concat(JSON.stringify(value)));}return value;}function checkVector(v,length){var callerName=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'';if(config.debug&&!validateVector(v,length)){throw new Error("math.gl: ".concat(callerName," some fields set to invalid numbers'"));}return v;}// math.gl
27693
+ for(var _i573=0;_i573<v.length;++_i573){if(!Number.isFinite(v[_i573])){return false;}}return true;}function checkNumber(value){if(!Number.isFinite(value)){throw new Error("Invalid number ".concat(JSON.stringify(value)));}return value;}function checkVector(v,length){var callerName=arguments.length>2&&arguments[2]!==undefined?arguments[2]:'';if(config.debug&&!validateVector(v,length)){throw new Error("math.gl: ".concat(callerName," some fields set to invalid numbers'"));}return v;}// math.gl
27672
27694
  // SPDX-License-Identifier: MIT
27673
27695
  // Copyright (c) vis.gl contributors
27674
27696
  function assert(condition,message){if(!condition){throw new Error("math.gl assertion ".concat(message));}}// math.gl
@@ -27682,10 +27704,10 @@ function get(){return this[0];},set:function set(value){this[0]=checkNumber(valu
27682
27704
  * Returns the length of the vector from the origin to the point described by this vector
27683
27705
  */},{key:"magnitude",value:function magnitude(){return this.len();}/**
27684
27706
  * Returns the squared length of the vector from the origin to the point described by this vector
27685
- */},{key:"lengthSquared",value:function lengthSquared(){var length=0;for(var _i575=0;_i575<this.ELEMENTS;++_i575){length+=this[_i575]*this[_i575];}return length;}/**
27707
+ */},{key:"lengthSquared",value:function lengthSquared(){var length=0;for(var _i574=0;_i574<this.ELEMENTS;++_i574){length+=this[_i574]*this[_i574];}return length;}/**
27686
27708
  * Returns the squared length of the vector from the origin to the point described by this vector
27687
- */},{key:"magnitudeSquared",value:function magnitudeSquared(){return this.lengthSquared();}},{key:"distance",value:function distance(mathArray){return Math.sqrt(this.distanceSquared(mathArray));}},{key:"distanceSquared",value:function distanceSquared(mathArray){var length=0;for(var _i576=0;_i576<this.ELEMENTS;++_i576){var dist=this[_i576]-mathArray[_i576];length+=dist*dist;}return checkNumber(length);}},{key:"dot",value:function dot(mathArray){var product=0;for(var _i577=0;_i577<this.ELEMENTS;++_i577){product+=this[_i577]*mathArray[_i577];}return checkNumber(product);}// MODIFIERS
27688
- },{key:"normalize",value:function normalize(){var length=this.magnitude();if(length!==0){for(var _i578=0;_i578<this.ELEMENTS;++_i578){this[_i578]/=length;}}return this.check();}},{key:"multiply",value:function multiply(){for(var _len107=arguments.length,vectors=new Array(_len107),_key12=0;_key12<_len107;_key12++){vectors[_key12]=arguments[_key12];}for(var _i579=0,_vectors3=vectors;_i579<_vectors3.length;_i579++){var vector=_vectors3[_i579];for(var _i580=0;_i580<this.ELEMENTS;++_i580){this[_i580]*=vector[_i580];}}return this.check();}},{key:"divide",value:function divide(){for(var _len108=arguments.length,vectors=new Array(_len108),_key13=0;_key13<_len108;_key13++){vectors[_key13]=arguments[_key13];}for(var _i581=0,_vectors4=vectors;_i581<_vectors4.length;_i581++){var vector=_vectors4[_i581];for(var _i582=0;_i582<this.ELEMENTS;++_i582){this[_i582]/=vector[_i582];}}return this.check();}// THREE.js compatibility
27709
+ */},{key:"magnitudeSquared",value:function magnitudeSquared(){return this.lengthSquared();}},{key:"distance",value:function distance(mathArray){return Math.sqrt(this.distanceSquared(mathArray));}},{key:"distanceSquared",value:function distanceSquared(mathArray){var length=0;for(var _i575=0;_i575<this.ELEMENTS;++_i575){var dist=this[_i575]-mathArray[_i575];length+=dist*dist;}return checkNumber(length);}},{key:"dot",value:function dot(mathArray){var product=0;for(var _i576=0;_i576<this.ELEMENTS;++_i576){product+=this[_i576]*mathArray[_i576];}return checkNumber(product);}// MODIFIERS
27710
+ },{key:"normalize",value:function normalize(){var length=this.magnitude();if(length!==0){for(var _i577=0;_i577<this.ELEMENTS;++_i577){this[_i577]/=length;}}return this.check();}},{key:"multiply",value:function multiply(){for(var _len107=arguments.length,vectors=new Array(_len107),_key12=0;_key12<_len107;_key12++){vectors[_key12]=arguments[_key12];}for(var _i578=0,_vectors3=vectors;_i578<_vectors3.length;_i578++){var vector=_vectors3[_i578];for(var _i579=0;_i579<this.ELEMENTS;++_i579){this[_i579]*=vector[_i579];}}return this.check();}},{key:"divide",value:function divide(){for(var _len108=arguments.length,vectors=new Array(_len108),_key13=0;_key13<_len108;_key13++){vectors[_key13]=arguments[_key13];}for(var _i580=0,_vectors4=vectors;_i580<_vectors4.length;_i580++){var vector=_vectors4[_i580];for(var _i581=0;_i581<this.ELEMENTS;++_i581){this[_i581]/=vector[_i581];}}return this.check();}// THREE.js compatibility
27689
27711
  },{key:"lengthSq",value:function lengthSq(){return this.lengthSquared();}},{key:"distanceTo",value:function distanceTo(vector){return this.distance(vector);}},{key:"distanceToSquared",value:function distanceToSquared(vector){return this.distanceSquared(vector);}},{key:"getComponent",value:function getComponent(i){assert(i>=0&&i<this.ELEMENTS,'index is out of range');return checkNumber(this[i]);}},{key:"setComponent",value:function setComponent(i,value){assert(i>=0&&i<this.ELEMENTS,'index is out of range');this[i]=value;return this.check();}},{key:"addVectors",value:function addVectors(a,b){return this.copy(a).add(b);}},{key:"subVectors",value:function subVectors(a,b){return this.copy(a).subtract(b);}},{key:"multiplyVectors",value:function multiplyVectors(a,b){return this.copy(a).multiply(b);}},{key:"addScaledVector",value:function addScaledVector(a,b){// @ts-expect-error error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
27690
27712
  return this.add(new this.constructor(a).multiplyScalar(b));}}]);return Vector;}(MathArray);// @eslint-disable
27691
27713
  var ARRAY_TYPE=typeof Float32Array!=='undefined'?Float32Array:Array;// @eslint-disable
@@ -27845,9 +27867,9 @@ _this134[0]=x;_this134[1]=y;_this134[2]=z;}return _this134;}_createClass(Vector3
27845
27867
  // return object;
27846
27868
  // }
27847
27869
  // TODO better override formatString?
27848
- function toString(){var string='[';if(config.printRowMajor){string+='row-major:';for(var row=0;row<this.RANK;++row){for(var col=0;col<this.RANK;++col){string+=" ".concat(this[col*this.RANK+row]);}}}else{string+='column-major:';for(var _i583=0;_i583<this.ELEMENTS;++_i583){string+=" ".concat(this[_i583]);}}string+=']';return string;}},{key:"getElementIndex",value:function getElementIndex(row,col){return col*this.RANK+row;}// By default assumes row major indices
27870
+ function toString(){var string='[';if(config.printRowMajor){string+='row-major:';for(var row=0;row<this.RANK;++row){for(var col=0;col<this.RANK;++col){string+=" ".concat(this[col*this.RANK+row]);}}}else{string+='column-major:';for(var _i582=0;_i582<this.ELEMENTS;++_i582){string+=" ".concat(this[_i582]);}}string+=']';return string;}},{key:"getElementIndex",value:function getElementIndex(row,col){return col*this.RANK+row;}// By default assumes row major indices
27849
27871
  },{key:"getElement",value:function getElement(row,col){return this[col*this.RANK+row];}// By default assumes row major indices
27850
- },{key:"setElement",value:function setElement(row,col,value){this[col*this.RANK+row]=checkNumber(value);return this;}},{key:"getColumn",value:function getColumn(columnIndex){var result=arguments.length>1&&arguments[1]!==undefined?arguments[1]:new Array(this.RANK).fill(-0);var firstIndex=columnIndex*this.RANK;for(var _i584=0;_i584<this.RANK;++_i584){result[_i584]=this[firstIndex+_i584];}return result;}},{key:"setColumn",value:function setColumn(columnIndex,columnVector){var firstIndex=columnIndex*this.RANK;for(var _i585=0;_i585<this.RANK;++_i585){this[firstIndex+_i585]=columnVector[_i585];}return this;}}]);return Matrix;}(MathArray);/**
27872
+ },{key:"setElement",value:function setElement(row,col,value){this[col*this.RANK+row]=checkNumber(value);return this;}},{key:"getColumn",value:function getColumn(columnIndex){var result=arguments.length>1&&arguments[1]!==undefined?arguments[1]:new Array(this.RANK).fill(-0);var firstIndex=columnIndex*this.RANK;for(var _i583=0;_i583<this.RANK;++_i583){result[_i583]=this[firstIndex+_i583];}return result;}},{key:"setColumn",value:function setColumn(columnIndex,columnVector){var firstIndex=columnIndex*this.RANK;for(var _i584=0;_i584<this.RANK;++_i584){this[firstIndex+_i584]=columnVector[_i584];}return this;}}]);return Matrix;}(MathArray);/**
27851
27873
  * Transpose the values of a mat3
27852
27874
  *
27853
27875
  * @param {mat3} out the receiving matrix
@@ -27932,12 +27954,12 @@ this[0]=array[0];this[1]=array[1];this[2]=array[2];this[3]=array[3];this[4]=arra
27932
27954
  * The extension entry to process the transformation
27933
27955
  * @param gltfData gltf buffers and json
27934
27956
  * @param options GLTFLoader options
27935
- */function decode$3(_x90,_x91){return _decode$6.apply(this,arguments);}/**
27957
+ */function decode$3(_x91,_x92){return _decode$6.apply(this,arguments);}/**
27936
27958
  * Transform TEXCOORD by material
27937
27959
  * @param materialIndex processing material index
27938
27960
  * @param gltfData gltf buffers and json
27939
- */function _decode$6(){_decode$6=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee60(gltfData,options){var _options$gltf11;var gltfScenegraph,hasExtension,materials,_i696;return _regeneratorRuntime().wrap(function _callee60$(_context64){while(1){switch(_context64.prev=_context64.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);hasExtension=gltfScenegraph.hasExtension(KHR_TEXTURE_TRANSFORM);if(!(!hasExtension||!((_options$gltf11=options.gltf)!==null&&_options$gltf11!==void 0&&_options$gltf11.loadBuffers))){_context64.next=4;break;}return _context64.abrupt("return");case 4:materials=gltfData.json.materials||[];for(_i696=0;_i696<materials.length;_i696++){transformTexCoords(_i696,gltfData);}case 6:case"end":return _context64.stop();}}},_callee60);}));return _decode$6.apply(this,arguments);}function transformTexCoords(materialIndex,gltfData){var _gltfData$json$materi,_material$pbrMetallic,_material$pbrMetallic2;var material=(_gltfData$json$materi=gltfData.json.materials)===null||_gltfData$json$materi===void 0?void 0:_gltfData$json$materi[materialIndex];var materialTextures=[material===null||material===void 0?void 0:(_material$pbrMetallic=material.pbrMetallicRoughness)===null||_material$pbrMetallic===void 0?void 0:_material$pbrMetallic.baseColorTexture,material===null||material===void 0?void 0:material.emissiveTexture,material===null||material===void 0?void 0:material.normalTexture,material===null||material===void 0?void 0:material.occlusionTexture,material===null||material===void 0?void 0:(_material$pbrMetallic2=material.pbrMetallicRoughness)===null||_material$pbrMetallic2===void 0?void 0:_material$pbrMetallic2.metallicRoughnessTexture];// Save processed texCoords in order no to process the same twice
27940
- var processedTexCoords=[];for(var _i586=0,_materialTextures=materialTextures;_i586<_materialTextures.length;_i586++){var _textureInfo$extensio;var textureInfo=_materialTextures[_i586];if(textureInfo&&textureInfo!==null&&textureInfo!==void 0&&(_textureInfo$extensio=textureInfo.extensions)!==null&&_textureInfo$extensio!==void 0&&_textureInfo$extensio[KHR_TEXTURE_TRANSFORM]){transformPrimitives(gltfData,materialIndex,textureInfo,processedTexCoords);}}}/**
27961
+ */function _decode$6(){_decode$6=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee61(gltfData,options){var _options$gltf11;var gltfScenegraph,hasExtension,materials,_i695;return _regeneratorRuntime().wrap(function _callee61$(_context65){while(1){switch(_context65.prev=_context65.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);hasExtension=gltfScenegraph.hasExtension(KHR_TEXTURE_TRANSFORM);if(!(!hasExtension||!((_options$gltf11=options.gltf)!==null&&_options$gltf11!==void 0&&_options$gltf11.loadBuffers))){_context65.next=4;break;}return _context65.abrupt("return");case 4:materials=gltfData.json.materials||[];for(_i695=0;_i695<materials.length;_i695++){transformTexCoords(_i695,gltfData);}case 6:case"end":return _context65.stop();}}},_callee61);}));return _decode$6.apply(this,arguments);}function transformTexCoords(materialIndex,gltfData){var _gltfData$json$materi,_material$pbrMetallic,_material$pbrMetallic2;var material=(_gltfData$json$materi=gltfData.json.materials)===null||_gltfData$json$materi===void 0?void 0:_gltfData$json$materi[materialIndex];var materialTextures=[material===null||material===void 0?void 0:(_material$pbrMetallic=material.pbrMetallicRoughness)===null||_material$pbrMetallic===void 0?void 0:_material$pbrMetallic.baseColorTexture,material===null||material===void 0?void 0:material.emissiveTexture,material===null||material===void 0?void 0:material.normalTexture,material===null||material===void 0?void 0:material.occlusionTexture,material===null||material===void 0?void 0:(_material$pbrMetallic2=material.pbrMetallicRoughness)===null||_material$pbrMetallic2===void 0?void 0:_material$pbrMetallic2.metallicRoughnessTexture];// Save processed texCoords in order no to process the same twice
27962
+ var processedTexCoords=[];for(var _i585=0,_materialTextures=materialTextures;_i585<_materialTextures.length;_i585++){var _textureInfo$extensio;var textureInfo=_materialTextures[_i585];if(textureInfo&&textureInfo!==null&&textureInfo!==void 0&&(_textureInfo$extensio=textureInfo.extensions)!==null&&_textureInfo$extensio!==void 0&&_textureInfo$extensio[KHR_TEXTURE_TRANSFORM]){transformPrimitives(gltfData,materialIndex,textureInfo,processedTexCoords);}}}/**
27941
27963
  * Transform primitives of the particular material
27942
27964
  * @param gltfData gltf data
27943
27965
  * @param materialIndex primitives with this material will be transformed
@@ -27964,10 +27986,10 @@ var _getAccessorArrayType2=getAccessorArrayTypeAndLength(accessor,bufferView),Ar
27964
27986
  var bytes=BYTES$1[accessor.componentType];// Number of components. For the `TEXCOORD_0` with `VEC2` type, it must return 2
27965
27987
  var components=COMPONENTS$1[accessor.type];// Multiplier to calculate the address of the `TEXCOORD_0` element in the arrayBuffer
27966
27988
  var elementAddressScale=bufferView.byteStride||bytes*components;// Data transform to Float32Array
27967
- var result=new Float32Array(length);for(var _i587=0;_i587<accessor.count;_i587++){// Take [u, v] couple from the arrayBuffer
27968
- var uv=new ArrayType(arrayBuffer,byteOffset+_i587*elementAddressScale,2);// Set and transform Vector3 per https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_texture_transform#overview
27989
+ var result=new Float32Array(length);for(var _i586=0;_i586<accessor.count;_i586++){// Take [u, v] couple from the arrayBuffer
27990
+ var uv=new ArrayType(arrayBuffer,byteOffset+_i586*elementAddressScale,2);// Set and transform Vector3 per https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Khronos/KHR_texture_transform#overview
27969
27991
  scratchVector.set(uv[0],uv[1],1);scratchVector.transformByMatrix3(matrix);// Save result in Float32Array
27970
- result.set([scratchVector[0],scratchVector[1]],_i587*components);}// If texCoord the same, replace gltf structural data
27992
+ result.set([scratchVector[0],scratchVector[1]],_i586*components);}// If texCoord the same, replace gltf structural data
27971
27993
  if(originalTexCoord===texCoord){updateGltf(accessor,bufferView,gltfData.buffers,result);}else{// If texCoord change, create new attribute
27972
27994
  createAttribute(texCoord,accessor,primitive,gltfData,result);}}}}}/**
27973
27995
  * Update GLTF structural objects with new data as we create new `Float32Array` for `TEXCOORD_0`.
@@ -27988,13 +28010,13 @@ createAttribute(texCoord,accessor,primitive,gltfData,result);}}}}}/**
27988
28010
  * @param extensionData extension data
27989
28011
  * @returns transformation matrix
27990
28012
  */function makeTransformationMatrix(extensionData){var _extensionData$offset=extensionData.offset,offset=_extensionData$offset===void 0?[0,0]:_extensionData$offset,_extensionData$rotati=extensionData.rotation,rotation=_extensionData$rotati===void 0?0:_extensionData$rotati,_extensionData$scale=extensionData.scale,scale=_extensionData$scale===void 0?[1,1]:_extensionData$scale;var translationMatrix=new Matrix3().set(1,0,0,0,1,0,offset[0],offset[1],1);var rotationMatrix=scratchRotationMatrix.set(Math.cos(rotation),Math.sin(rotation),0,-Math.sin(rotation),Math.cos(rotation),0,0,0,1);var scaleMatrix=scratchScaleMatrix.set(scale[0],0,0,0,scale[1],0,0,0,1);return translationMatrix.multiplyRight(rotationMatrix).multiplyRight(scaleMatrix);}var KHR_texture_transform=/*#__PURE__*/Object.freeze({__proto__:null,name:name$4,decode:decode$3});// GLTF EXTENSION: KHR_lights_punctual
27991
- var KHR_LIGHTS_PUNCTUAL='KHR_lights_punctual';var name$3=KHR_LIGHTS_PUNCTUAL;function decode$2(_x92){return _decode$7.apply(this,arguments);}// Move the light ar ray out of the extension and remove the extension
27992
- function _decode$7(){_decode$7=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee61(gltfData){var gltfScenegraph,json,extension,_iterator69,_step69,node,nodeExtension;return _regeneratorRuntime().wrap(function _callee61$(_context65){while(1){switch(_context65.prev=_context65.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;// Move the light array out of the extension and remove the extension
28013
+ var KHR_LIGHTS_PUNCTUAL='KHR_lights_punctual';var name$3=KHR_LIGHTS_PUNCTUAL;function decode$2(_x93){return _decode$7.apply(this,arguments);}// Move the light ar ray out of the extension and remove the extension
28014
+ function _decode$7(){_decode$7=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee62(gltfData){var gltfScenegraph,json,extension,_iterator69,_step69,node,nodeExtension;return _regeneratorRuntime().wrap(function _callee62$(_context66){while(1){switch(_context66.prev=_context66.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;// Move the light array out of the extension and remove the extension
27993
28015
  extension=gltfScenegraph.getExtension(KHR_LIGHTS_PUNCTUAL);if(extension){// @ts-ignore
27994
28016
  gltfScenegraph.json.lights=extension.lights;gltfScenegraph.removeExtension(KHR_LIGHTS_PUNCTUAL);}// Any nodes that have the extension, add lights field pointing to light object
27995
28017
  // and remove the extension
27996
28018
  _iterator69=_createForOfIteratorHelper(json.nodes||[]);try{for(_iterator69.s();!(_step69=_iterator69.n()).done;){node=_step69.value;nodeExtension=gltfScenegraph.getObjectExtension(node,KHR_LIGHTS_PUNCTUAL);if(nodeExtension){// @ts-ignore
27997
- node.light=nodeExtension.light;}gltfScenegraph.removeObjectExtension(node,KHR_LIGHTS_PUNCTUAL);}}catch(err){_iterator69.e(err);}finally{_iterator69.f();}case 6:case"end":return _context65.stop();}}},_callee61);}));return _decode$7.apply(this,arguments);}function encode$2(_x93){return _encode$.apply(this,arguments);}function _encode$(){_encode$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee62(gltfData){var gltfScenegraph,json,extension,_iterator70,_step70,light,node;return _regeneratorRuntime().wrap(function _callee62$(_context66){while(1){switch(_context66.prev=_context66.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;// @ts-ignore
28019
+ node.light=nodeExtension.light;}gltfScenegraph.removeObjectExtension(node,KHR_LIGHTS_PUNCTUAL);}}catch(err){_iterator69.e(err);}finally{_iterator69.f();}case 6:case"end":return _context66.stop();}}},_callee62);}));return _decode$7.apply(this,arguments);}function encode$2(_x94){return _encode$.apply(this,arguments);}function _encode$(){_encode$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee63(gltfData){var gltfScenegraph,json,extension,_iterator70,_step70,light,node;return _regeneratorRuntime().wrap(function _callee63$(_context67){while(1){switch(_context67.prev=_context67.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;// @ts-ignore
27998
28020
  if(json.lights){extension=gltfScenegraph.addExtension(KHR_LIGHTS_PUNCTUAL);// @ts-ignore
27999
28021
  assert$1(!extension.lights);// @ts-ignore
28000
28022
  extension.lights=json.lights;// @ts-ignore
@@ -28003,23 +28025,23 @@ delete json.lights;}// Any nodes that have lights field pointing to light object
28003
28025
  // @ts-ignore
28004
28026
  if(gltfScenegraph.json.lights){// @ts-ignore
28005
28027
  _iterator70=_createForOfIteratorHelper(gltfScenegraph.json.lights);try{for(_iterator70.s();!(_step70=_iterator70.n()).done;){light=_step70.value;node=light.node;gltfScenegraph.addObjectExtension(node,KHR_LIGHTS_PUNCTUAL,light);}// @ts-ignore
28006
- }catch(err){_iterator70.e(err);}finally{_iterator70.f();}delete gltfScenegraph.json.lights;}case 4:case"end":return _context66.stop();}}},_callee62);}));return _encode$.apply(this,arguments);}var KHR_lights_punctual=/*#__PURE__*/Object.freeze({__proto__:null,name:name$3,decode:decode$2,encode:encode$2});// GLTF EXTENSION: KHR_materials_unlit
28007
- var KHR_MATERIALS_UNLIT='KHR_materials_unlit';var name$2=KHR_MATERIALS_UNLIT;function decode$1(_x94){return _decode$8.apply(this,arguments);}function _decode$8(){_decode$8=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee63(gltfData){var gltfScenegraph,json,_iterator71,_step71,material,extension;return _regeneratorRuntime().wrap(function _callee63$(_context67){while(1){switch(_context67.prev=_context67.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;// Any nodes that have the extension, add lights field pointing to light object
28028
+ }catch(err){_iterator70.e(err);}finally{_iterator70.f();}delete gltfScenegraph.json.lights;}case 4:case"end":return _context67.stop();}}},_callee63);}));return _encode$.apply(this,arguments);}var KHR_lights_punctual=/*#__PURE__*/Object.freeze({__proto__:null,name:name$3,decode:decode$2,encode:encode$2});// GLTF EXTENSION: KHR_materials_unlit
28029
+ var KHR_MATERIALS_UNLIT='KHR_materials_unlit';var name$2=KHR_MATERIALS_UNLIT;function decode$1(_x95){return _decode$8.apply(this,arguments);}function _decode$8(){_decode$8=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee64(gltfData){var gltfScenegraph,json,_iterator71,_step71,material,extension;return _regeneratorRuntime().wrap(function _callee64$(_context68){while(1){switch(_context68.prev=_context68.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;// Any nodes that have the extension, add lights field pointing to light object
28008
28030
  // and remove the extension
28009
28031
  _iterator71=_createForOfIteratorHelper(json.materials||[]);try{for(_iterator71.s();!(_step71=_iterator71.n()).done;){material=_step71.value;extension=material.extensions&&material.extensions.KHR_materials_unlit;if(extension){// @ts-ignore TODO
28010
28032
  material.unlit=true;}gltfScenegraph.removeObjectExtension(material,KHR_MATERIALS_UNLIT);}// Remove the top-level extension
28011
- }catch(err){_iterator71.e(err);}finally{_iterator71.f();}gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);case 5:case"end":return _context67.stop();}}},_callee63);}));return _decode$8.apply(this,arguments);}function encode$1(gltfData){var gltfScenegraph=new GLTFScenegraph(gltfData);var json=gltfScenegraph.json;// Any nodes that have lights field pointing to light object
28033
+ }catch(err){_iterator71.e(err);}finally{_iterator71.f();}gltfScenegraph.removeExtension(KHR_MATERIALS_UNLIT);case 5:case"end":return _context68.stop();}}},_callee64);}));return _decode$8.apply(this,arguments);}function encode$1(gltfData){var gltfScenegraph=new GLTFScenegraph(gltfData);var json=gltfScenegraph.json;// Any nodes that have lights field pointing to light object
28012
28034
  // add the extension
28013
28035
  // @ts-ignore
28014
28036
  if(gltfScenegraph.materials){var _iterator48=_createForOfIteratorHelper(json.materials||[]),_step48;try{for(_iterator48.s();!(_step48=_iterator48.n()).done;){var material=_step48.value;// @ts-ignore
28015
28037
  if(material.unlit){// @ts-ignore
28016
28038
  delete material.unlit;gltfScenegraph.addObjectExtension(material,KHR_MATERIALS_UNLIT,{});gltfScenegraph.addExtension(KHR_MATERIALS_UNLIT);}}}catch(err){_iterator48.e(err);}finally{_iterator48.f();}}}var KHR_materials_unlit=/*#__PURE__*/Object.freeze({__proto__:null,name:name$2,decode:decode$1,encode:encode$1});// GLTF EXTENSION: KHR_techniques_webgl
28017
- var KHR_TECHNIQUES_WEBGL='KHR_techniques_webgl';var name$1=KHR_TECHNIQUES_WEBGL;function decode(_x95){return _decode.apply(this,arguments);}// eslint-disable-next-line
28018
- function _decode(){_decode=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee64(gltfData){var gltfScenegraph,json,extension,techniques,_iterator72,_step72,material,materialExtension;return _regeneratorRuntime().wrap(function _callee64$(_context68){while(1){switch(_context68.prev=_context68.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;extension=gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);if(extension){techniques=resolveTechniques(extension,gltfScenegraph);_iterator72=_createForOfIteratorHelper(json.materials||[]);try{for(_iterator72.s();!(_step72=_iterator72.n()).done;){material=_step72.value;materialExtension=gltfScenegraph.getObjectExtension(material,KHR_TECHNIQUES_WEBGL);if(materialExtension){// @ts-ignore TODO
28039
+ var KHR_TECHNIQUES_WEBGL='KHR_techniques_webgl';var name$1=KHR_TECHNIQUES_WEBGL;function decode(_x96){return _decode.apply(this,arguments);}// eslint-disable-next-line
28040
+ function _decode(){_decode=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee65(gltfData){var gltfScenegraph,json,extension,techniques,_iterator72,_step72,material,materialExtension;return _regeneratorRuntime().wrap(function _callee65$(_context69){while(1){switch(_context69.prev=_context69.next){case 0:gltfScenegraph=new GLTFScenegraph(gltfData);json=gltfScenegraph.json;extension=gltfScenegraph.getExtension(KHR_TECHNIQUES_WEBGL);if(extension){techniques=resolveTechniques(extension,gltfScenegraph);_iterator72=_createForOfIteratorHelper(json.materials||[]);try{for(_iterator72.s();!(_step72=_iterator72.n()).done;){material=_step72.value;materialExtension=gltfScenegraph.getObjectExtension(material,KHR_TECHNIQUES_WEBGL);if(materialExtension){// @ts-ignore TODO
28019
28041
  material.technique=Object.assign({},materialExtension,// @ts-ignore
28020
28042
  techniques[materialExtension.technique]);// @ts-ignore TODO
28021
28043
  material.technique.values=resolveValues(material.technique,gltfScenegraph);}gltfScenegraph.removeObjectExtension(material,KHR_TECHNIQUES_WEBGL);}// Remove the top-level extension
28022
- }catch(err){_iterator72.e(err);}finally{_iterator72.f();}gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);}case 4:case"end":return _context68.stop();}}},_callee64);}));return _decode.apply(this,arguments);}function encode(_x96,_x97){return _encode.apply(this,arguments);}function _encode(){_encode=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee65(gltfData,options){return _regeneratorRuntime().wrap(function _callee65$(_context69){while(1){switch(_context69.prev=_context69.next){case 0:case"end":return _context69.stop();}}},_callee65);}));return _encode.apply(this,arguments);}function resolveTechniques(techniquesExtension,// programs: {[key: string]: any}[],
28044
+ }catch(err){_iterator72.e(err);}finally{_iterator72.f();}gltfScenegraph.removeExtension(KHR_TECHNIQUES_WEBGL);}case 4:case"end":return _context69.stop();}}},_callee65);}));return _decode.apply(this,arguments);}function encode(_x97,_x98){return _encode.apply(this,arguments);}function _encode(){_encode=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee66(gltfData,options){return _regeneratorRuntime().wrap(function _callee66$(_context70){while(1){switch(_context70.prev=_context70.next){case 0:case"end":return _context70.stop();}}},_callee66);}));return _encode.apply(this,arguments);}function resolveTechniques(techniquesExtension,// programs: {[key: string]: any}[],
28023
28045
  // shaders: {[key: string]: any}[],
28024
28046
  // techniques: {[key: string]: any}[]
28025
28047
  gltfScenegraph){var _techniquesExtension$=techniquesExtension.programs,programs=_techniquesExtension$===void 0?[]:_techniquesExtension$,_techniquesExtension$2=techniquesExtension.shaders,shaders=_techniquesExtension$2===void 0?[]:_techniquesExtension$2,_techniquesExtension$3=techniquesExtension.techniques,techniques=_techniquesExtension$3===void 0?[]:_techniquesExtension$3;var textDecoder=new TextDecoder();shaders.forEach(function(shader){if(Number.isFinite(shader.bufferView)){shader.code=textDecoder.decode(gltfScenegraph.getTypedArrayForBufferView(shader.bufferView));}else{// TODO: handle URI shader
@@ -28037,7 +28059,7 @@ values[uniform].texture=gltfScenegraph.getTexture(values[uniform].index);}});ret
28037
28059
  // KHR_binary_gltf,
28038
28060
  // 2.0
28039
28061
  EXT_structural_metadata,EXT_mesh_features,EXT_meshopt_compression,EXT_texture_webp,// Basisu should come after webp, we want basisu to be preferred if both are provided
28040
- KHR_texture_basisu,KHR_draco_mesh_compression,KHR_lights_punctual,KHR_materials_unlit,KHR_techniques_webgl,KHR_texture_transform,EXT_feature_metadata];/** Call before any resource loading starts */function preprocessExtensions(gltf){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var context=arguments.length>2?arguments[2]:undefined;var extensions=EXTENSIONS.filter(function(extension){return useExtension(extension.name,options);});var _iterator49=_createForOfIteratorHelper(extensions),_step49;try{for(_iterator49.s();!(_step49=_iterator49.n()).done;){var _extension$preprocess;var extension=_step49.value;(_extension$preprocess=extension.preprocess)===null||_extension$preprocess===void 0?void 0:_extension$preprocess.call(extension,gltf,options,context);}}catch(err){_iterator49.e(err);}finally{_iterator49.f();}}/** Call after resource loading */function decodeExtensions(_x98){return _decodeExtensions.apply(this,arguments);}function _decodeExtensions(){_decodeExtensions=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee66(gltf){var options,context,extensions,_iterator73,_step73,_extension$decode,extension,_args69=arguments;return _regeneratorRuntime().wrap(function _callee66$(_context70){while(1){switch(_context70.prev=_context70.next){case 0:options=_args69.length>1&&_args69[1]!==undefined?_args69[1]:{};context=_args69.length>2?_args69[2]:undefined;extensions=EXTENSIONS.filter(function(extension){return useExtension(extension.name,options);});_iterator73=_createForOfIteratorHelper(extensions);_context70.prev=4;_iterator73.s();case 6:if((_step73=_iterator73.n()).done){_context70.next=12;break;}extension=_step73.value;_context70.next=10;return(_extension$decode=extension.decode)===null||_extension$decode===void 0?void 0:_extension$decode.call(extension,gltf,options,context);case 10:_context70.next=6;break;case 12:_context70.next=17;break;case 14:_context70.prev=14;_context70.t0=_context70["catch"](4);_iterator73.e(_context70.t0);case 17:_context70.prev=17;_iterator73.f();return _context70.finish(17);case 20:case"end":return _context70.stop();}}},_callee66,null,[[4,14,17,20]]);}));return _decodeExtensions.apply(this,arguments);}function useExtension(extensionName,options){var _options$gltf7;var excludes=(options===null||options===void 0?void 0:(_options$gltf7=options.gltf)===null||_options$gltf7===void 0?void 0:_options$gltf7.excludeExtensions)||{};var exclude=extensionName in excludes&&!excludes[extensionName];return!exclude;}// GLTF 1.0 EXTENSION: KHR_binary_glTF
28062
+ KHR_texture_basisu,KHR_draco_mesh_compression,KHR_lights_punctual,KHR_materials_unlit,KHR_techniques_webgl,KHR_texture_transform,EXT_feature_metadata];/** Call before any resource loading starts */function preprocessExtensions(gltf){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var context=arguments.length>2?arguments[2]:undefined;var extensions=EXTENSIONS.filter(function(extension){return useExtension(extension.name,options);});var _iterator49=_createForOfIteratorHelper(extensions),_step49;try{for(_iterator49.s();!(_step49=_iterator49.n()).done;){var _extension$preprocess;var extension=_step49.value;(_extension$preprocess=extension.preprocess)===null||_extension$preprocess===void 0?void 0:_extension$preprocess.call(extension,gltf,options,context);}}catch(err){_iterator49.e(err);}finally{_iterator49.f();}}/** Call after resource loading */function decodeExtensions(_x99){return _decodeExtensions.apply(this,arguments);}function _decodeExtensions(){_decodeExtensions=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee67(gltf){var options,context,extensions,_iterator73,_step73,_extension$decode,extension,_args70=arguments;return _regeneratorRuntime().wrap(function _callee67$(_context71){while(1){switch(_context71.prev=_context71.next){case 0:options=_args70.length>1&&_args70[1]!==undefined?_args70[1]:{};context=_args70.length>2?_args70[2]:undefined;extensions=EXTENSIONS.filter(function(extension){return useExtension(extension.name,options);});_iterator73=_createForOfIteratorHelper(extensions);_context71.prev=4;_iterator73.s();case 6:if((_step73=_iterator73.n()).done){_context71.next=12;break;}extension=_step73.value;_context71.next=10;return(_extension$decode=extension.decode)===null||_extension$decode===void 0?void 0:_extension$decode.call(extension,gltf,options,context);case 10:_context71.next=6;break;case 12:_context71.next=17;break;case 14:_context71.prev=14;_context71.t0=_context71["catch"](4);_iterator73.e(_context71.t0);case 17:_context71.prev=17;_iterator73.f();return _context71.finish(17);case 20:case"end":return _context71.stop();}}},_callee67,null,[[4,14,17,20]]);}));return _decodeExtensions.apply(this,arguments);}function useExtension(extensionName,options){var _options$gltf7;var excludes=(options===null||options===void 0?void 0:(_options$gltf7=options.gltf)===null||_options$gltf7===void 0?void 0:_options$gltf7.excludeExtensions)||{};var exclude=extensionName in excludes&&!excludes[extensionName];return!exclude;}// GLTF 1.0 EXTENSION: KHR_binary_glTF
28041
28063
  var KHR_BINARY_GLTF='KHR_binary_glTF';function preprocess(gltfData){var gltfScenegraph=new GLTFScenegraph(gltfData);var json=gltfScenegraph.json;// Note: json.buffers.binary_glTF also needs to be replaced
28042
28064
  // This is currently done during gltf normalization
28043
28065
  // Image and shader nodes can have the extension
@@ -28124,14 +28146,14 @@ json[topLevelArrayName]=[];}var _iterator56=_createForOfIteratorHelper(json[topL
28124
28146
  delete buffer.type;}}catch(err){_iterator57.e(err);}finally{_iterator57.f();}}/**
28125
28147
  * Update material (set pbrMetallicRoughness)
28126
28148
  * @param {*} json
28127
- */},{key:"_updateMaterial",value:function _updateMaterial(json){var _iterator58=_createForOfIteratorHelper(json.materials),_step58;try{var _loop10=function _loop10(){var _material$values,_material$values2,_material$values3;var material=_step58.value;material.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};var textureId=((_material$values=material.values)===null||_material$values===void 0?void 0:_material$values.tex)||((_material$values2=material.values)===null||_material$values2===void 0?void 0:_material$values2.texture2d_0)||((_material$values3=material.values)===null||_material$values3===void 0?void 0:_material$values3.diffuseTex);var textureIndex=json.textures.findIndex(function(texture){return texture.id===textureId;});if(textureIndex!==-1){material.pbrMetallicRoughness.baseColorTexture={index:textureIndex};}};for(_iterator58.s();!(_step58=_iterator58.n()).done;){_loop10();}}catch(err){_iterator58.e(err);}finally{_iterator58.f();}}}]);return GLTFV1Normalizer;}();function normalizeGLTFV1(gltf){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return new GLTFV1Normalizer().normalize(gltf,options);}function parseGLTF$1(_x99,_x100){return _parseGLTF$.apply(this,arguments);}/**
28149
+ */},{key:"_updateMaterial",value:function _updateMaterial(json){var _iterator58=_createForOfIteratorHelper(json.materials),_step58;try{var _loop10=function _loop10(){var _material$values,_material$values2,_material$values3;var material=_step58.value;material.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};var textureId=((_material$values=material.values)===null||_material$values===void 0?void 0:_material$values.tex)||((_material$values2=material.values)===null||_material$values2===void 0?void 0:_material$values2.texture2d_0)||((_material$values3=material.values)===null||_material$values3===void 0?void 0:_material$values3.diffuseTex);var textureIndex=json.textures.findIndex(function(texture){return texture.id===textureId;});if(textureIndex!==-1){material.pbrMetallicRoughness.baseColorTexture={index:textureIndex};}};for(_iterator58.s();!(_step58=_iterator58.n()).done;){_loop10();}}catch(err){_iterator58.e(err);}finally{_iterator58.f();}}}]);return GLTFV1Normalizer;}();function normalizeGLTFV1(gltf){var options=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return new GLTFV1Normalizer().normalize(gltf,options);}function parseGLTF$1(_x100,_x101){return _parseGLTF$.apply(this,arguments);}/**
28128
28150
  *
28129
28151
  * @param gltf
28130
28152
  * @param data - can be ArrayBuffer (GLB), ArrayBuffer (Binary JSON), String (JSON), or Object (parsed JSON)
28131
28153
  * @param byteOffset
28132
28154
  * @param options
28133
- */function _parseGLTF$(){_parseGLTF$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee67(gltf,arrayBufferOrString){var _options$gltf12,_options$gltf13,_options$gltf14;var byteOffset,options,context,_args70=arguments;return _regeneratorRuntime().wrap(function _callee67$(_context71){while(1){switch(_context71.prev=_context71.next){case 0:byteOffset=_args70.length>2&&_args70[2]!==undefined?_args70[2]:0;options=_args70.length>3?_args70[3]:undefined;context=_args70.length>4?_args70[4]:undefined;parseGLTFContainerSync(gltf,arrayBufferOrString,byteOffset,options);normalizeGLTFV1(gltf,{normalize:options===null||options===void 0?void 0:(_options$gltf12=options.gltf)===null||_options$gltf12===void 0?void 0:_options$gltf12.normalize});preprocessExtensions(gltf,options,context);// Load linked buffers asynchronously and decodes base64 buffers in parallel
28134
- if(!(options!==null&&options!==void 0&&(_options$gltf13=options.gltf)!==null&&_options$gltf13!==void 0&&_options$gltf13.loadBuffers&&gltf.json.buffers)){_context71.next=9;break;}_context71.next=9;return loadBuffers(gltf,options,context);case 9:if(!(options!==null&&options!==void 0&&(_options$gltf14=options.gltf)!==null&&_options$gltf14!==void 0&&_options$gltf14.loadImages)){_context71.next=12;break;}_context71.next=12;return loadImages(gltf,options,context);case 12:_context71.next=14;return decodeExtensions(gltf,options,context);case 14:return _context71.abrupt("return",gltf);case 15:case"end":return _context71.stop();}}},_callee67);}));return _parseGLTF$.apply(this,arguments);}function parseGLTFContainerSync(gltf,data,byteOffset,options){// Initialize gltf container
28155
+ */function _parseGLTF$(){_parseGLTF$=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee68(gltf,arrayBufferOrString){var _options$gltf12,_options$gltf13,_options$gltf14;var byteOffset,options,context,_args71=arguments;return _regeneratorRuntime().wrap(function _callee68$(_context72){while(1){switch(_context72.prev=_context72.next){case 0:byteOffset=_args71.length>2&&_args71[2]!==undefined?_args71[2]:0;options=_args71.length>3?_args71[3]:undefined;context=_args71.length>4?_args71[4]:undefined;parseGLTFContainerSync(gltf,arrayBufferOrString,byteOffset,options);normalizeGLTFV1(gltf,{normalize:options===null||options===void 0?void 0:(_options$gltf12=options.gltf)===null||_options$gltf12===void 0?void 0:_options$gltf12.normalize});preprocessExtensions(gltf,options,context);// Load linked buffers asynchronously and decodes base64 buffers in parallel
28156
+ if(!(options!==null&&options!==void 0&&(_options$gltf13=options.gltf)!==null&&_options$gltf13!==void 0&&_options$gltf13.loadBuffers&&gltf.json.buffers)){_context72.next=9;break;}_context72.next=9;return loadBuffers(gltf,options,context);case 9:if(!(options!==null&&options!==void 0&&(_options$gltf14=options.gltf)!==null&&_options$gltf14!==void 0&&_options$gltf14.loadImages)){_context72.next=12;break;}_context72.next=12;return loadImages(gltf,options,context);case 12:_context72.next=14;return decodeExtensions(gltf,options,context);case 14:return _context72.abrupt("return",gltf);case 15:case"end":return _context72.stop();}}},_callee68);}));return _parseGLTF$.apply(this,arguments);}function parseGLTFContainerSync(gltf,data,byteOffset,options){// Initialize gltf container
28135
28157
  if(options.uri){gltf.baseUri=options.uri;}// If data is binary and starting with magic bytes, assume binary JSON text, convert to string
28136
28158
  if(data instanceof ArrayBuffer&&!isGLB(data,byteOffset,options)){var textDecoder=new TextDecoder();data=textDecoder.decode(data);}if(typeof data==='string'){// If string, try to parse as JSON
28137
28159
  gltf.json=parseJSON(data);}else if(data instanceof ArrayBuffer){// If still ArrayBuffer, parse as GLB container
@@ -28144,29 +28166,29 @@ if(gltf._glb&&gltf._glb.header.hasBinChunk){var binChunks=gltf._glb.binChunks;gl
28144
28166
  }// Populate images
28145
28167
  var images=gltf.json.images||[];gltf.images=new Array(images.length).fill({});}/** Asynchronously fetch and parse buffers, store in buffers array outside of json
28146
28168
  * TODO - traverse gltf and determine which buffers are actually needed
28147
- */function loadBuffers(_x101,_x102,_x103){return _loadBuffers.apply(this,arguments);}/**
28169
+ */function loadBuffers(_x102,_x103,_x104){return _loadBuffers.apply(this,arguments);}/**
28148
28170
  * Loads all images
28149
28171
  * TODO - traverse gltf and determine which images are actually needed
28150
28172
  * @param gltf
28151
28173
  * @param options
28152
28174
  * @param context
28153
28175
  * @returns
28154
- */function _loadBuffers(){_loadBuffers=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee68(gltf,options,context){var buffers,_i697,buffer,_context$fetch,_response$arrayBuffer,_fetch,uri,response,arrayBuffer;return _regeneratorRuntime().wrap(function _callee68$(_context72){while(1){switch(_context72.prev=_context72.next){case 0:// TODO
28155
- buffers=gltf.json.buffers||[];_i697=0;case 2:if(!(_i697<buffers.length)){_context72.next=22;break;}buffer=buffers[_i697];if(!buffer.uri){_context72.next=18;break;}_fetch=context.fetch;assert$1(_fetch);uri=resolveUrl(buffer.uri,options);_context72.next=10;return context===null||context===void 0?void 0:(_context$fetch=context.fetch)===null||_context$fetch===void 0?void 0:_context$fetch.call(context,uri);case 10:response=_context72.sent;_context72.next=13;return response===null||response===void 0?void 0:(_response$arrayBuffer=response.arrayBuffer)===null||_response$arrayBuffer===void 0?void 0:_response$arrayBuffer.call(response);case 13:arrayBuffer=_context72.sent;gltf.buffers[_i697]={arrayBuffer:arrayBuffer,byteOffset:0,byteLength:arrayBuffer.byteLength};delete buffer.uri;_context72.next=19;break;case 18:if(gltf.buffers[_i697]===null){gltf.buffers[_i697]={arrayBuffer:new ArrayBuffer(buffer.byteLength),byteOffset:0,byteLength:buffer.byteLength};}case 19:++_i697;_context72.next=2;break;case 22:case"end":return _context72.stop();}}},_callee68);}));return _loadBuffers.apply(this,arguments);}function loadImages(_x104,_x105,_x106){return _loadImages.apply(this,arguments);}/** Make sure we only load images that are actually referenced by textures */function _loadImages(){_loadImages=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee69(gltf,options,context){var imageIndices,images,promises,_iterator74,_step74,imageIndex;return _regeneratorRuntime().wrap(function _callee69$(_context73){while(1){switch(_context73.prev=_context73.next){case 0:imageIndices=getReferencesImageIndices(gltf);images=gltf.json.images||[];promises=[];_iterator74=_createForOfIteratorHelper(imageIndices);try{for(_iterator74.s();!(_step74=_iterator74.n()).done;){imageIndex=_step74.value;promises.push(loadImage(gltf,images[imageIndex],imageIndex,options,context));}}catch(err){_iterator74.e(err);}finally{_iterator74.f();}_context73.next=7;return Promise.all(promises);case 7:return _context73.abrupt("return",_context73.sent);case 8:case"end":return _context73.stop();}}},_callee69);}));return _loadImages.apply(this,arguments);}function getReferencesImageIndices(gltf){var imageIndices=new Set();var textures=gltf.json.textures||[];var _iterator59=_createForOfIteratorHelper(textures),_step59;try{for(_iterator59.s();!(_step59=_iterator59.n()).done;){var texture=_step59.value;if(texture.source!==undefined){imageIndices.add(texture.source);}}}catch(err){_iterator59.e(err);}finally{_iterator59.f();}return Array.from(imageIndices).sort();}/** Asynchronously fetches and parses one image, store in images array outside of json */function loadImage(_x107,_x108,_x109,_x110,_x111){return _loadImage.apply(this,arguments);}/**
28176
+ */function _loadBuffers(){_loadBuffers=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee69(gltf,options,context){var buffers,_i696,buffer,_context$fetch,_response$arrayBuffer,_fetch,uri,response,arrayBuffer;return _regeneratorRuntime().wrap(function _callee69$(_context73){while(1){switch(_context73.prev=_context73.next){case 0:// TODO
28177
+ buffers=gltf.json.buffers||[];_i696=0;case 2:if(!(_i696<buffers.length)){_context73.next=22;break;}buffer=buffers[_i696];if(!buffer.uri){_context73.next=18;break;}_fetch=context.fetch;assert$1(_fetch);uri=resolveUrl(buffer.uri,options);_context73.next=10;return context===null||context===void 0?void 0:(_context$fetch=context.fetch)===null||_context$fetch===void 0?void 0:_context$fetch.call(context,uri);case 10:response=_context73.sent;_context73.next=13;return response===null||response===void 0?void 0:(_response$arrayBuffer=response.arrayBuffer)===null||_response$arrayBuffer===void 0?void 0:_response$arrayBuffer.call(response);case 13:arrayBuffer=_context73.sent;gltf.buffers[_i696]={arrayBuffer:arrayBuffer,byteOffset:0,byteLength:arrayBuffer.byteLength};delete buffer.uri;_context73.next=19;break;case 18:if(gltf.buffers[_i696]===null){gltf.buffers[_i696]={arrayBuffer:new ArrayBuffer(buffer.byteLength),byteOffset:0,byteLength:buffer.byteLength};}case 19:++_i696;_context73.next=2;break;case 22:case"end":return _context73.stop();}}},_callee69);}));return _loadBuffers.apply(this,arguments);}function loadImages(_x105,_x106,_x107){return _loadImages.apply(this,arguments);}/** Make sure we only load images that are actually referenced by textures */function _loadImages(){_loadImages=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee70(gltf,options,context){var imageIndices,images,promises,_iterator74,_step74,imageIndex;return _regeneratorRuntime().wrap(function _callee70$(_context74){while(1){switch(_context74.prev=_context74.next){case 0:imageIndices=getReferencesImageIndices(gltf);images=gltf.json.images||[];promises=[];_iterator74=_createForOfIteratorHelper(imageIndices);try{for(_iterator74.s();!(_step74=_iterator74.n()).done;){imageIndex=_step74.value;promises.push(loadImage(gltf,images[imageIndex],imageIndex,options,context));}}catch(err){_iterator74.e(err);}finally{_iterator74.f();}_context74.next=7;return Promise.all(promises);case 7:return _context74.abrupt("return",_context74.sent);case 8:case"end":return _context74.stop();}}},_callee70);}));return _loadImages.apply(this,arguments);}function getReferencesImageIndices(gltf){var imageIndices=new Set();var textures=gltf.json.textures||[];var _iterator59=_createForOfIteratorHelper(textures),_step59;try{for(_iterator59.s();!(_step59=_iterator59.n()).done;){var texture=_step59.value;if(texture.source!==undefined){imageIndices.add(texture.source);}}}catch(err){_iterator59.e(err);}finally{_iterator59.f();}return Array.from(imageIndices).sort();}/** Asynchronously fetches and parses one image, store in images array outside of json */function loadImage(_x108,_x109,_x110,_x111,_x112){return _loadImage.apply(this,arguments);}/**
28156
28178
  * GLTF loader
28157
- */function _loadImage(){_loadImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee70(gltf,image,index,options,context){var arrayBuffer,uri,_fetch2,response,array,parsedImage;return _regeneratorRuntime().wrap(function _callee70$(_context74){while(1){switch(_context74.prev=_context74.next){case 0:if(!(image.uri&&!image.hasOwnProperty('bufferView'))){_context74.next=10;break;}uri=resolveUrl(image.uri,options);_fetch2=context.fetch;_context74.next=5;return _fetch2(uri);case 5:response=_context74.sent;_context74.next=8;return response.arrayBuffer();case 8:arrayBuffer=_context74.sent;image.bufferView={data:arrayBuffer};case 10:if(Number.isFinite(image.bufferView)){array=getTypedArrayForBufferView(gltf.json,gltf.buffers,image.bufferView);arrayBuffer=sliceArrayBuffer(array.buffer,array.byteOffset,array.byteLength);}assert$1(arrayBuffer,'glTF image has no data');// Call `parse`
28158
- _context74.next=14;return parseFromContext(arrayBuffer,[ImageLoader,BasisLoader],_objectSpread(_objectSpread({},options),{},{mimeType:image.mimeType,basis:options.basis||{format:selectSupportedBasisFormat()}}),context);case 14:parsedImage=_context74.sent;if(parsedImage&&parsedImage[0]){parsedImage={compressed:true,// @ts-expect-error
28179
+ */function _loadImage(){_loadImage=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee71(gltf,image,index,options,context){var arrayBuffer,uri,_fetch2,response,array,parsedImage;return _regeneratorRuntime().wrap(function _callee71$(_context75){while(1){switch(_context75.prev=_context75.next){case 0:if(!(image.uri&&!image.hasOwnProperty('bufferView'))){_context75.next=10;break;}uri=resolveUrl(image.uri,options);_fetch2=context.fetch;_context75.next=5;return _fetch2(uri);case 5:response=_context75.sent;_context75.next=8;return response.arrayBuffer();case 8:arrayBuffer=_context75.sent;image.bufferView={data:arrayBuffer};case 10:if(Number.isFinite(image.bufferView)){array=getTypedArrayForBufferView(gltf.json,gltf.buffers,image.bufferView);arrayBuffer=sliceArrayBuffer(array.buffer,array.byteOffset,array.byteLength);}assert$1(arrayBuffer,'glTF image has no data');// Call `parse`
28180
+ _context75.next=14;return parseFromContext(arrayBuffer,[ImageLoader,BasisLoader],_objectSpread(_objectSpread({},options),{},{mimeType:image.mimeType,basis:options.basis||{format:selectSupportedBasisFormat()}}),context);case 14:parsedImage=_context75.sent;if(parsedImage&&parsedImage[0]){parsedImage={compressed:true,// @ts-expect-error
28159
28181
  mipmaps:false,width:parsedImage[0].width,height:parsedImage[0].height,data:parsedImage[0]};}// TODO making sure ImageLoader is overridable by using array of loaders
28160
28182
  // const parsedImage = await parse(arrayBuffer, [ImageLoader]);
28161
28183
  // Store the loaded image
28162
28184
  gltf.images=gltf.images||[];// @ts-expect-error TODO - sort out image typing asap
28163
- gltf.images[index]=parsedImage;case 18:case"end":return _context74.stop();}}},_callee70);}));return _loadImage.apply(this,arguments);}var GLTFLoader={dataType:null,batchType:null,name:'glTF',id:'gltf',module:'gltf',version:VERSION$3,extensions:['gltf','glb'],mimeTypes:['model/gltf+json','model/gltf-binary'],text:true,binary:true,tests:['glTF'],parse:parse$1,options:{gltf:{normalize:true,// Normalize glTF v1 to glTF v2 format (not yet stable)
28185
+ gltf.images[index]=parsedImage;case 18:case"end":return _context75.stop();}}},_callee71);}));return _loadImage.apply(this,arguments);}var GLTFLoader={dataType:null,batchType:null,name:'glTF',id:'gltf',module:'gltf',version:VERSION$3,extensions:['gltf','glb'],mimeTypes:['model/gltf+json','model/gltf-binary'],text:true,binary:true,tests:['glTF'],parse:parse$1,options:{gltf:{normalize:true,// Normalize glTF v1 to glTF v2 format (not yet stable)
28164
28186
  loadBuffers:true,// Fetch any linked .BIN buffers, decode base64
28165
28187
  loadImages:true,// Create image objects
28166
28188
  decompressMeshes:true// Decompress Draco encoded meshes
28167
28189
  },// common?
28168
28190
  log:console// eslint-disable-line
28169
- }};function parse$1(_x112){return _parse$3.apply(this,arguments);}// loaders.gl
28191
+ }};function parse$1(_x113){return _parse$3.apply(this,arguments);}// loaders.gl
28170
28192
  // This is a post processor for loaded glTF files
28171
28193
  // The goal is to make the loaded data easier to use in WebGL applications
28172
28194
  //
@@ -28175,9 +28197,9 @@ log:console// eslint-disable-line
28175
28197
  // * Translate stringified enum keys and values into WebGL constants.
28176
28198
  // * Load images (optional)
28177
28199
  // ENUM LOOKUP
28178
- function _parse$3(){_parse$3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee71(arrayBuffer){var options,context,_options2,_options2$byteOffset,byteOffset,gltf,_args74=arguments;return _regeneratorRuntime().wrap(function _callee71$(_context75){while(1){switch(_context75.prev=_context75.next){case 0:options=_args74.length>1&&_args74[1]!==undefined?_args74[1]:{};context=_args74.length>2?_args74[2]:undefined;// Apps can call the parse method directly, we so apply default options here
28200
+ function _parse$3(){_parse$3=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee72(arrayBuffer){var options,context,_options2,_options2$byteOffset,byteOffset,gltf,_args75=arguments;return _regeneratorRuntime().wrap(function _callee72$(_context76){while(1){switch(_context76.prev=_context76.next){case 0:options=_args75.length>1&&_args75[1]!==undefined?_args75[1]:{};context=_args75.length>2?_args75[2]:undefined;// Apps can call the parse method directly, we so apply default options here
28179
28201
  options=_objectSpread(_objectSpread({},GLTFLoader.options),options);// @ts-ignore
28180
- options.gltf=_objectSpread(_objectSpread({},GLTFLoader.options.gltf),options.gltf);_options2=options,_options2$byteOffset=_options2.byteOffset,byteOffset=_options2$byteOffset===void 0?0:_options2$byteOffset;gltf={};_context75.next=8;return parseGLTF$1(gltf,arrayBuffer,byteOffset,options,context);case 8:return _context75.abrupt("return",_context75.sent);case 9:case"end":return _context75.stop();}}},_callee71);}));return _parse$3.apply(this,arguments);}var COMPONENTS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};var BYTES={5120:1,// BYTE
28202
+ options.gltf=_objectSpread(_objectSpread({},GLTFLoader.options.gltf),options.gltf);_options2=options,_options2$byteOffset=_options2.byteOffset,byteOffset=_options2$byteOffset===void 0?0:_options2$byteOffset;gltf={};_context76.next=8;return parseGLTF$1(gltf,arrayBuffer,byteOffset,options,context);case 8:return _context76.abrupt("return",_context76.sent);case 9:case"end":return _context76.stop();}}},_callee72);}));return _parse$3.apply(this,arguments);}var COMPONENTS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};var BYTES={5120:1,// BYTE
28181
28203
  5121:1,// UNSIGNED_BYTE
28182
28204
  5122:2,// SHORT
28183
28205
  5123:2,// UNSIGNED_SHORT
@@ -28219,7 +28241,7 @@ if(accessor.bufferView){var buffer=accessor.bufferView.buffer;var _getAccessorAr
28219
28241
  * @param bytesPerElement
28220
28242
  * @param count
28221
28243
  * @returns
28222
- */},{key:"_getValueFromInterleavedBuffer",value:function _getValueFromInterleavedBuffer(buffer,byteOffset,byteStride,bytesPerElement,count){var result=new Uint8Array(count*bytesPerElement);for(var _i588=0;_i588<count;_i588++){var elementOffset=byteOffset+_i588*byteStride;result.set(new Uint8Array(buffer.arrayBuffer.slice(elementOffset,elementOffset+bytesPerElement)),_i588*bytesPerElement);}return result.buffer;}},{key:"_resolveTexture",value:function _resolveTexture(gltfTexture,index){return _objectSpread(_objectSpread({},gltfTexture),{},{// @ts-expect-error id could already be present, glTF standard does not prevent it
28244
+ */},{key:"_getValueFromInterleavedBuffer",value:function _getValueFromInterleavedBuffer(buffer,byteOffset,byteStride,bytesPerElement,count){var result=new Uint8Array(count*bytesPerElement);for(var _i587=0;_i587<count;_i587++){var elementOffset=byteOffset+_i587*byteStride;result.set(new Uint8Array(buffer.arrayBuffer.slice(elementOffset,elementOffset+bytesPerElement)),_i587*bytesPerElement);}return result.buffer;}},{key:"_resolveTexture",value:function _resolveTexture(gltfTexture,index){return _objectSpread(_objectSpread({},gltfTexture),{},{// @ts-expect-error id could already be present, glTF standard does not prevent it
28223
28245
  id:gltfTexture.id||"texture-".concat(index),sampler:typeof gltfTexture.sampler==='number'?this.getSampler(gltfTexture.sampler):makeDefaultSampler(),source:typeof gltfTexture.source==='number'?this.getImage(gltfTexture.source):undefined});}},{key:"_resolveSampler",value:function _resolveSampler(gltfSampler,index){var sampler=_objectSpread(_objectSpread({// @ts-expect-error id could already be present, glTF standard does not prevent it
28224
28246
  id:gltfSampler.id||"sampler-".concat(index)},gltfSampler),{},{parameters:{}});// Map textual parameters to GL parameter values
28225
28247
  for(var key in sampler){var glEnum=this._enumSamplerParameter(key);if(glEnum!==undefined){sampler.parameters[glEnum]=sampler[key];}}return sampler;}},{key:"_enumSamplerParameter",value:function _enumSamplerParameter(key){return SAMPLER_PARAMETER_GLTF_TO_GL[key];}},{key:"_resolveImage",value:function _resolveImage(gltfImage,index){var image=_objectSpread(_objectSpread({},gltfImage),{},{// @ts-expect-error id could already be present, glTF standard does not prevent it
@@ -28236,7 +28258,7 @@ sceneModel.fire("loaded",true,false);});if(ok){ok();}},function(msg){plugin.erro
28236
28258
  sceneModel.fire("loaded",true,false);if(ok){ok();}});}}]);return GLTFSceneModelLoader;}();function loadGLTF(plugin,src,metaModelJSON,options,sceneModel,ok,error){var spinner=plugin.viewer.scene.canvas.spinner;spinner.processes++;var isGLB=src.split('.').pop()==="glb";if(isGLB){plugin.dataSource.getGLB(src,function(arrayBuffer){// OK
28237
28259
  options.basePath=getBasePath(src);parseGLTF(plugin,src,arrayBuffer,metaModelJSON,options,sceneModel,ok);spinner.processes--;},function(err){spinner.processes--;error(err);});}else{plugin.dataSource.getGLTF(src,function(gltf){// OK
28238
28260
  options.basePath=getBasePath(src);parseGLTF(plugin,src,gltf,metaModelJSON,options,sceneModel,ok);spinner.processes--;},function(err){spinner.processes--;error(err);});}}function getBasePath(src){var i=src.lastIndexOf("/");return i!==0?src.substring(0,i+1):"";}function parseGLTF(plugin,src,gltf,metaModelJSON,options,sceneModel,ok){var spinner=plugin.viewer.scene.canvas.spinner;spinner.processes++;parse$3(gltf,GLTFLoader,{baseUri:options.basePath}).then(function(gltfData){var processedGLTF=postProcessGLTF(gltfData);var ctx={src:src,entityId:options.entityId,metaModelJSON:metaModelJSON,autoMetaModel:options.autoMetaModel,globalizeObjectIds:options.globalizeObjectIds,metaObjects:[],loadBuffer:options.loadBuffer,basePath:options.basePath,handlenode:options.handlenode,backfaces:!!options.backfaces,gltfData:processedGLTF,scene:sceneModel.scene,plugin:plugin,sceneModel:sceneModel,//geometryCreated: {},
28239
- numObjects:0,nodes:[],nextId:0,log:function log(msg){plugin.log(msg);}};loadTextures(ctx);loadMaterials(ctx);if(options.autoMetaModel){ctx.metaObjects.push({id:sceneModel.id,type:"Default",name:sceneModel.id});}loadDefaultScene(ctx);sceneModel.finalize();if(options.autoMetaModel){plugin.viewer.metaScene.createMetaModel(sceneModel.id,{metaObjects:ctx.metaObjects});}spinner.processes--;ok();});}function loadTextures(ctx){var gltfData=ctx.gltfData;var textures=gltfData.textures;if(textures){for(var _i589=0,len=textures.length;_i589<len;_i589++){loadTexture(ctx,textures[_i589]);}}}function loadTexture(ctx,texture){if(!texture.source||!texture.source.image){return;}var textureId="texture-".concat(ctx.nextId++);var minFilter=NearestMipMapLinearFilter;switch(texture.sampler.minFilter){case 9728:minFilter=NearestFilter;break;case 9729:minFilter=LinearFilter;break;case 9984:minFilter=NearestMipMapNearestFilter;break;case 9985:minFilter=LinearMipMapNearestFilter;break;case 9986:minFilter=NearestMipMapLinearFilter;break;case 9987:minFilter=LinearMipMapLinearFilter;break;}var magFilter=LinearFilter;switch(texture.sampler.magFilter){case 9728:magFilter=NearestFilter;break;case 9729:magFilter=LinearFilter;break;}var wrapS=RepeatWrapping;switch(texture.sampler.wrapS){case 33071:wrapS=ClampToEdgeWrapping;break;case 33648:wrapS=MirroredRepeatWrapping;break;case 10497:wrapS=RepeatWrapping;break;}var wrapT=RepeatWrapping;switch(texture.sampler.wrapT){case 33071:wrapT=ClampToEdgeWrapping;break;case 33648:wrapT=MirroredRepeatWrapping;break;case 10497:wrapT=RepeatWrapping;break;}var wrapR=RepeatWrapping;switch(texture.sampler.wrapR){case 33071:wrapR=ClampToEdgeWrapping;break;case 33648:wrapR=MirroredRepeatWrapping;break;case 10497:wrapR=RepeatWrapping;break;}ctx.sceneModel.createTexture({id:textureId,image:texture.source.image,flipY:!!texture.flipY,minFilter:minFilter,magFilter:magFilter,wrapS:wrapS,wrapT:wrapT,wrapR:wrapR,encoding:sRGBEncoding});texture._textureId=textureId;}function loadMaterials(ctx){var gltfData=ctx.gltfData;var materials=gltfData.materials;if(materials){for(var _i590=0,len=materials.length;_i590<len;_i590++){var material=materials[_i590];material._textureSetId=loadTextureSet(ctx,material);material._attributes=loadMaterialAttributes(ctx,material);}}}function loadTextureSet(ctx,material){var textureSetCfg={};if(material.normalTexture){textureSetCfg.normalTextureId=material.normalTexture.texture._textureId;}if(material.occlusionTexture){textureSetCfg.occlusionTextureId=material.occlusionTexture.texture._textureId;}if(material.emissiveTexture){textureSetCfg.emissiveTextureId=material.emissiveTexture.texture._textureId;}switch(material.alphaMode){case"OPAQUE":break;case"MASK":var alphaCutoff=material.alphaCutoff;// Default from the spec https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-material
28261
+ numObjects:0,nodes:[],nextId:0,log:function log(msg){plugin.log(msg);}};loadTextures(ctx);loadMaterials(ctx);if(options.autoMetaModel){ctx.metaObjects.push({id:sceneModel.id,type:"Default",name:sceneModel.id});}loadDefaultScene(ctx);sceneModel.finalize();if(options.autoMetaModel){plugin.viewer.metaScene.createMetaModel(sceneModel.id,{metaObjects:ctx.metaObjects});}spinner.processes--;ok();});}function loadTextures(ctx){var gltfData=ctx.gltfData;var textures=gltfData.textures;if(textures){for(var _i588=0,len=textures.length;_i588<len;_i588++){loadTexture(ctx,textures[_i588]);}}}function loadTexture(ctx,texture){if(!texture.source||!texture.source.image){return;}var textureId="texture-".concat(ctx.nextId++);var minFilter=NearestMipMapLinearFilter;switch(texture.sampler.minFilter){case 9728:minFilter=NearestFilter;break;case 9729:minFilter=LinearFilter;break;case 9984:minFilter=NearestMipMapNearestFilter;break;case 9985:minFilter=LinearMipMapNearestFilter;break;case 9986:minFilter=NearestMipMapLinearFilter;break;case 9987:minFilter=LinearMipMapLinearFilter;break;}var magFilter=LinearFilter;switch(texture.sampler.magFilter){case 9728:magFilter=NearestFilter;break;case 9729:magFilter=LinearFilter;break;}var wrapS=RepeatWrapping;switch(texture.sampler.wrapS){case 33071:wrapS=ClampToEdgeWrapping;break;case 33648:wrapS=MirroredRepeatWrapping;break;case 10497:wrapS=RepeatWrapping;break;}var wrapT=RepeatWrapping;switch(texture.sampler.wrapT){case 33071:wrapT=ClampToEdgeWrapping;break;case 33648:wrapT=MirroredRepeatWrapping;break;case 10497:wrapT=RepeatWrapping;break;}var wrapR=RepeatWrapping;switch(texture.sampler.wrapR){case 33071:wrapR=ClampToEdgeWrapping;break;case 33648:wrapR=MirroredRepeatWrapping;break;case 10497:wrapR=RepeatWrapping;break;}ctx.sceneModel.createTexture({id:textureId,image:texture.source.image,flipY:!!texture.flipY,minFilter:minFilter,magFilter:magFilter,wrapS:wrapS,wrapT:wrapT,wrapR:wrapR,encoding:sRGBEncoding});texture._textureId=textureId;}function loadMaterials(ctx){var gltfData=ctx.gltfData;var materials=gltfData.materials;if(materials){for(var _i589=0,len=materials.length;_i589<len;_i589++){var material=materials[_i589];material._textureSetId=loadTextureSet(ctx,material);material._attributes=loadMaterialAttributes(ctx,material);}}}function loadTextureSet(ctx,material){var textureSetCfg={};if(material.normalTexture){textureSetCfg.normalTextureId=material.normalTexture.texture._textureId;}if(material.occlusionTexture){textureSetCfg.occlusionTextureId=material.occlusionTexture.texture._textureId;}if(material.emissiveTexture){textureSetCfg.emissiveTextureId=material.emissiveTexture.texture._textureId;}switch(material.alphaMode){case"OPAQUE":break;case"MASK":var alphaCutoff=material.alphaCutoff;// Default from the spec https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-material
28240
28262
  textureSetCfg.alphaCutoff=alphaCutoff!==undefined?alphaCutoff:0.5;break;}var metallicPBR=material.pbrMetallicRoughness;if(material.pbrMetallicRoughness){var pbrMetallicRoughness=material.pbrMetallicRoughness;var baseColorTexture=pbrMetallicRoughness.baseColorTexture||pbrMetallicRoughness.colorTexture;if(baseColorTexture){if(baseColorTexture.texture){textureSetCfg.colorTextureId=baseColorTexture.texture._textureId;}else{textureSetCfg.colorTextureId=ctx.gltfData.textures[baseColorTexture.index]._textureId;}}if(metallicPBR.metallicRoughnessTexture){textureSetCfg.metallicRoughnessTextureId=metallicPBR.metallicRoughnessTexture.texture._textureId;}}var extensions=material.extensions;if(extensions){var specularPBR=extensions["KHR_materials_pbrSpecularGlossiness"];if(specularPBR){specularPBR.specularTexture;var specularColorTexture=specularPBR.specularColorTexture;if(specularColorTexture!==null&&specularColorTexture!==undefined){textureSetCfg.colorTextureId=ctx.gltfData.textures[specularColorTexture.index]._textureId;}}}if(textureSetCfg.normalTextureId!==undefined||textureSetCfg.occlusionTextureId!==undefined||textureSetCfg.emissiveTextureId!==undefined||textureSetCfg.colorTextureId!==undefined||textureSetCfg.metallicRoughnessTextureId!==undefined){textureSetCfg.id="textureSet-".concat(ctx.nextId++,";");ctx.sceneModel.createTextureSet(textureSetCfg);return textureSetCfg.id;}return null;}function loadMaterialAttributes(ctx,material){// Substitute RGBA for material, to use fast flat shading instead
28241
28263
  var extensions=material.extensions;var materialAttributes={color:new Float32Array([1,1,1,1]),opacity:1,metallic:0,roughness:1,doubleSided:true};if(extensions){var specularPBR=extensions["KHR_materials_pbrSpecularGlossiness"];if(specularPBR){var diffuseFactor=specularPBR.diffuseFactor;if(diffuseFactor!==null&&diffuseFactor!==undefined){materialAttributes.color.set(diffuseFactor);}}var common=extensions["KHR_materials_common"];if(common){var technique=common.technique;var values=common.values||{};var blinn=technique==="BLINN";var phong=technique==="PHONG";var lambert=technique==="LAMBERT";var diffuse=values.diffuse;if(diffuse&&(blinn||phong||lambert)){if(!utils.isString(diffuse)){materialAttributes.color.set(diffuse);}}var transparency=values.transparency;if(transparency!==null&&transparency!==undefined){materialAttributes.opacity=transparency;}var transparent=values.transparent;if(transparent!==null&&transparent!==undefined){materialAttributes.opacity=transparent;}}}var metallicPBR=material.pbrMetallicRoughness;if(metallicPBR){var baseColorFactor=metallicPBR.baseColorFactor;if(baseColorFactor){materialAttributes.color[0]=baseColorFactor[0];materialAttributes.color[1]=baseColorFactor[1];materialAttributes.color[2]=baseColorFactor[2];materialAttributes.opacity=baseColorFactor[3];}var metallicFactor=metallicPBR.metallicFactor;if(metallicFactor!==null&&metallicFactor!==undefined){materialAttributes.metallic=metallicFactor;}var roughnessFactor=metallicPBR.roughnessFactor;if(roughnessFactor!==null&&roughnessFactor!==undefined){materialAttributes.roughness=roughnessFactor;}}materialAttributes.doubleSided=material.doubleSided!==false;return materialAttributes;}function loadDefaultScene(ctx){var gltfData=ctx.gltfData;var scene=gltfData.scene||gltfData.scenes[0];if(!scene){error(ctx,"glTF has no default scene");return;}var nodes=scene.nodes;if(!nodes){return;}(function accumulateMeshInstantes(nodes){nodes.forEach(function(node){var mesh=node.mesh;if(mesh){mesh.instances||(mesh.instances=0);mesh.instances+=1;}if(node.children){accumulateMeshInstantes(node.children);}});})(nodes);// Create a SceneMesh for each mesh primitive, and a SceneModelEntity for the root node and each named node.
28242
28264
  var meshIdsStack=[];var meshIds=null;(function createSceneMeshesAndEntities(nodes,depth,parentMatrix){nodes.forEach(function(node){var nodeName=node.name;var entityId=nodeName!==undefined&&nodeName!==null&&nodeName||depth===0&&"entity-"+ctx.nextId++;if(entityId){while(ctx.sceneModel.objects[entityId]){entityId="entity-"+ctx.nextId++;}meshIdsStack.push(meshIds);meshIds=[];}var matrix=parseNodeMatrix(node,parentMatrix);if(node.mesh){parseNodeMesh(node,ctx,matrix,meshIds);}if(node.children){createSceneMeshesAndEntities(node.children,depth+1,matrix);}if(entityId){if(meshIds.length>0){var globalId=ctx.globalizeObjectIds?math.globalizeObjectId(ctx.sceneModel.id,entityId):entityId;ctx.sceneModel.createEntity({id:globalId,meshIds:meshIds,isObject:true});if(ctx.autoMetaModel){ctx.metaObjects.push({id:globalId,type:"Default",name:globalId,parent:ctx.sceneModel.id});}}meshIds=meshIdsStack.pop();}});})(nodes,0,null);}/**
@@ -28252,7 +28274,7 @@ var meshIdsStack=[];var meshIds=null;(function createSceneMeshesAndEntities(node
28252
28274
  * @param ctx Parsing context
28253
28275
  * @param matrix Matrix for the XKTMeshes
28254
28276
  * @param meshIds returns IDs of the new XKTMeshes
28255
- */function parseNodeMesh(node,ctx,matrix,meshIds){var mesh=node.mesh;if(!mesh){return;}var numPrimitives=mesh.primitives.length;if(numPrimitives>0){for(var _i591=0;_i591<numPrimitives;_i591++){var _primitive9=mesh.primitives[_i591];if(_primitive9.mode<4){continue;}var meshCfg={id:ctx.sceneModel.id+"."+ctx.numObjects++};var material=_primitive9.material;if(material){meshCfg.textureSetId=material._textureSetId;meshCfg.color=material._attributes.color;meshCfg.opacity=material._attributes.opacity;meshCfg.metallic=material._attributes.metallic;meshCfg.roughness=material._attributes.roughness;}else{meshCfg.color=new Float32Array([1.0,1.0,1.0]);meshCfg.opacity=1.0;}var backfaces=ctx.backfaces!==false||material&&material.doubleSided!==false;switch(_primitive9.mode){case 0:// POINTS
28277
+ */function parseNodeMesh(node,ctx,matrix,meshIds){var mesh=node.mesh;if(!mesh){return;}var numPrimitives=mesh.primitives.length;if(numPrimitives>0){for(var _i590=0;_i590<numPrimitives;_i590++){var _primitive9=mesh.primitives[_i590];if(_primitive9.mode<4){continue;}var meshCfg={id:ctx.sceneModel.id+"."+ctx.numObjects++};var material=_primitive9.material;if(material){meshCfg.textureSetId=material._textureSetId;meshCfg.color=material._attributes.color;meshCfg.opacity=material._attributes.opacity;meshCfg.metallic=material._attributes.metallic;meshCfg.roughness=material._attributes.roughness;}else{meshCfg.color=new Float32Array([1.0,1.0,1.0]);meshCfg.opacity=1.0;}var backfaces=ctx.backfaces!==false||material&&material.doubleSided!==false;switch(_primitive9.mode){case 0:// POINTS
28256
28278
  meshCfg.primitive="points";break;case 1:// LINES
28257
28279
  meshCfg.primitive="lines";break;case 2:// LINE_LOOP
28258
28280
  meshCfg.primitive="lines";break;case 3:// LINE_STRIP
@@ -28583,7 +28605,7 @@ if(!params.src&&!params.gltf){this.error("load() param expected: src or gltf");r
28583
28605
  {boundaries:[[11,11,2,2]],"dir":[-0.5,0.7071,-0.5],"up":[0.5,0.7071,0.5]},// Bottom-front-right corner
28584
28606
  {boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],"dir":[0.5,-0.7071,0.5],"up":[0.5,0.7071,0.5]},// Top-back-left corner
28585
28607
  {boundaries:[[11,5,2,2]],"dir":[-0.5,-0.7071,-0.5],"up":[-0.5,0.7071,-0.5]}// Top-front-right corner
28586
- ];for(var _i592=0,len=areasZUp.length;_i592<len;_i592++){math.normalizeVec3(areasZUp[_i592].dir,areasZUp[_i592].dir);math.normalizeVec3(areasZUp[_i592].up,areasZUp[_i592].up);}for(var _i593=0,_len110=areasYUp.length;_i593<_len110;_i593++){math.normalizeVec3(areasYUp[_i593].dir,areasYUp[_i593].dir);math.normalizeVec3(areasYUp[_i593].up,areasYUp[_i593].up);}var areas=areasYUp;this._textureCanvas=document.createElement('canvas');this._textureCanvas.width=width;this._textureCanvas.height=height;this._textureCanvas.style.width=width+"px";this._textureCanvas.style.height=height+"px";this._textureCanvas.style.padding="0";this._textureCanvas.style.margin="0";this._textureCanvas.style.top="0";this._textureCanvas.style.background=cubeColor;this._textureCanvas.style.position="absolute";this._textureCanvas.style.opacity="1.0";this._textureCanvas.style.visibility="hidden";this._textureCanvas.style["z-index"]=2000000;parentNode.appendChild(this._textureCanvas);var context=this._textureCanvas.getContext("2d");var zUp=false;function paint(){for(var _i594=0,_len111=facesZUp.length;_i594<_len111;_i594++){var face=facesZUp[_i594];var boundary=face.boundary;var xmin=Math.round(boundary[0]*scale);var ymin=Math.round(boundary[1]*scale);var _width=Math.round(boundary[2]*scale);var _height=Math.round(boundary[3]*scale);context.fillStyle=face.color;context.fillRect(xmin,ymin,_width,_height);}for(var _i595=0,_len112=areas.length;_i595<_len112;_i595++){var _xmin=void 0;var _ymin=void 0;var _width2=void 0;var _height2=void 0;var _area=areas[_i595];var boundaries=_area.boundaries;for(var j=0,lenj=boundaries.length;j<lenj;j++){var _boundary=boundaries[j];_xmin=Math.round(_boundary[0]*scale);_ymin=Math.round(_boundary[1]*scale);_width2=Math.round(_boundary[2]*scale);_height2=Math.round(_boundary[3]*scale);if(_area.highlighted){context.fillStyle=_area.highlighted?cubeHighlightColor:_area.color||cubeColor;context.fillRect(_xmin,_ymin,_width2,_height2);}}if(_area.label){context.fillStyle=textColor;context.font='60px sans-serif';context.textAlign="center";var xcenter=_xmin+_width2*0.5;var ycenter=_ymin+_height2*0.7;context.fillText(translateLabel(_area.label),xcenter,ycenter,80);}}navCubeScene.glRedraw();}var translateLabel=function(){var swizzleYUp={"NavCube.front":"NavCube.front","NavCube.back":"NavCube.back","NavCube.right":"NavCube.right","NavCube.left":"NavCube.left","NavCube.top":"NavCube.top","NavCube.bottom":"NavCube.bottom"};var swizzleZUp={"NavCube.front":"NavCube.front","NavCube.back":"NavCube.back","NavCube.right":"NavCube.right","NavCube.left":"NavCube.left","NavCube.top":"NavCube.top","NavCube.bottom":"NavCube.bottom"};var defaultLabels={"NavCube.front":"FRONT","NavCube.back":"BACK","NavCube.right":"RIGHT","NavCube.left":"LEFT","NavCube.top":"TOP","NavCube.bottom":"BOTTOM"};return function(key){var swizzle=zUp?swizzleZUp:swizzleYUp;var swizzledKey=swizzle?swizzle[key]:null;if(swizzledKey){return viewer.localeService.translate(swizzledKey)||defaultLabels[swizzledKey]||swizzledKey;}return key;};}();this.setZUp=function(){zUp=true;areas=areasZUp;this.clear();};this.setYUp=function(){zUp=false;areas=areasYUp;this.clear();};this.clear=function(){context.fillStyle=cubeColor;context.fillRect(0,0,width,height);for(var i=0,len=areas.length;i<len;i++){var _area2=areas[i];_area2.highlighted=false;}paint();};this.getArea=function(uv){var s=uv[0]*width;var t=height-uv[1]*height;// Correct for our texture Y-flipping
28608
+ ];for(var _i591=0,len=areasZUp.length;_i591<len;_i591++){math.normalizeVec3(areasZUp[_i591].dir,areasZUp[_i591].dir);math.normalizeVec3(areasZUp[_i591].up,areasZUp[_i591].up);}for(var _i592=0,_len110=areasYUp.length;_i592<_len110;_i592++){math.normalizeVec3(areasYUp[_i592].dir,areasYUp[_i592].dir);math.normalizeVec3(areasYUp[_i592].up,areasYUp[_i592].up);}var areas=areasYUp;this._textureCanvas=document.createElement('canvas');this._textureCanvas.width=width;this._textureCanvas.height=height;this._textureCanvas.style.width=width+"px";this._textureCanvas.style.height=height+"px";this._textureCanvas.style.padding="0";this._textureCanvas.style.margin="0";this._textureCanvas.style.top="0";this._textureCanvas.style.background=cubeColor;this._textureCanvas.style.position="absolute";this._textureCanvas.style.opacity="1.0";this._textureCanvas.style.visibility="hidden";this._textureCanvas.style["z-index"]=2000000;parentNode.appendChild(this._textureCanvas);var context=this._textureCanvas.getContext("2d");var zUp=false;function paint(){for(var _i593=0,_len111=facesZUp.length;_i593<_len111;_i593++){var face=facesZUp[_i593];var boundary=face.boundary;var xmin=Math.round(boundary[0]*scale);var ymin=Math.round(boundary[1]*scale);var _width=Math.round(boundary[2]*scale);var _height=Math.round(boundary[3]*scale);context.fillStyle=face.color;context.fillRect(xmin,ymin,_width,_height);}for(var _i594=0,_len112=areas.length;_i594<_len112;_i594++){var _xmin=void 0;var _ymin=void 0;var _width2=void 0;var _height2=void 0;var _area=areas[_i594];var boundaries=_area.boundaries;for(var j=0,lenj=boundaries.length;j<lenj;j++){var _boundary=boundaries[j];_xmin=Math.round(_boundary[0]*scale);_ymin=Math.round(_boundary[1]*scale);_width2=Math.round(_boundary[2]*scale);_height2=Math.round(_boundary[3]*scale);if(_area.highlighted){context.fillStyle=_area.highlighted?cubeHighlightColor:_area.color||cubeColor;context.fillRect(_xmin,_ymin,_width2,_height2);}}if(_area.label){context.fillStyle=textColor;context.font='60px sans-serif';context.textAlign="center";var xcenter=_xmin+_width2*0.5;var ycenter=_ymin+_height2*0.7;context.fillText(translateLabel(_area.label),xcenter,ycenter,80);}}navCubeScene.glRedraw();}var translateLabel=function(){var swizzleYUp={"NavCube.front":"NavCube.front","NavCube.back":"NavCube.back","NavCube.right":"NavCube.right","NavCube.left":"NavCube.left","NavCube.top":"NavCube.top","NavCube.bottom":"NavCube.bottom"};var swizzleZUp={"NavCube.front":"NavCube.front","NavCube.back":"NavCube.back","NavCube.right":"NavCube.right","NavCube.left":"NavCube.left","NavCube.top":"NavCube.top","NavCube.bottom":"NavCube.bottom"};var defaultLabels={"NavCube.front":"FRONT","NavCube.back":"BACK","NavCube.right":"RIGHT","NavCube.left":"LEFT","NavCube.top":"TOP","NavCube.bottom":"BOTTOM"};return function(key){var swizzle=zUp?swizzleZUp:swizzleYUp;var swizzledKey=swizzle?swizzle[key]:null;if(swizzledKey){return viewer.localeService.translate(swizzledKey)||defaultLabels[swizzledKey]||swizzledKey;}return key;};}();this.setZUp=function(){zUp=true;areas=areasZUp;this.clear();};this.setYUp=function(){zUp=false;areas=areasYUp;this.clear();};this.clear=function(){context.fillStyle=cubeColor;context.fillRect(0,0,width,height);for(var i=0,len=areas.length;i<len;i++){var _area2=areas[i];_area2.highlighted=false;}paint();};this.getArea=function(uv){var s=uv[0]*width;var t=height-uv[1]*height;// Correct for our texture Y-flipping
28587
28609
  for(var i=0,len=areas.length;i<len;i++){var _area3=areas[i];var boundaries=_area3.boundaries;for(var j=0,lenj=boundaries.length;j<lenj;j++){var boundary=boundaries[j];if(s>=boundary[0]*scale&&s<=(boundary[0]+boundary[2])*scale&&t>=boundary[1]*scale&&t<=(boundary[1]+boundary[3])*scale){return i;}}}return-1;};this.setAreaHighlighted=function(areaId,highlighted){var area=areas[areaId];if(!area){throw"Area not found: "+areaId;}area.highlighted=!!highlighted;paint();};this.getAreaDir=function(areaId){var area=areas[areaId];if(!area){throw"Unknown area: "+areaId;}return area.dir;};this.getAreaUp=function(areaId){var area=areas[areaId];if(!area){throw"Unknown area: "+areaId;}return area.up;};this.getImage=function(){return this._textureCanvas;};this.destroy=function(){if(this._textureCanvas){this._textureCanvas.parentNode.removeChild(this._textureCanvas);this._textureCanvas=null;}};}var tempVec3a$4=math.vec3();var tempVec3b$1=math.vec3();math.mat4();/**
28588
28610
  * {@link Viewer} plugin that lets us look at the entire {@link Scene} from along a chosen axis or diagonal.
28589
28611
  *
@@ -29548,7 +29570,7 @@ for(var _id4 in this._controls){if(this._controls.hasOwnProperty(_id4)){this._co
29548
29570
  * These are created and destroyed automatically as models are loaded and destroyed.
29549
29571
  *
29550
29572
  * @type {{String: {String:Storey}}}
29551
- */_this153.modelStoreys={};_this153._fitStoreyMaps=!!cfg.fitStoreyMaps;_this153._onModelLoaded=_this153.viewer.scene.on("modelLoaded",function(modelId){_this153._registerModelStoreys(modelId);_this153.fire("storeys",_this153.storeys);});return _this153;}_createClass(StoreyViewsPlugin,[{key:"_registerModelStoreys",value:function _registerModelStoreys(modelId){var _this154=this;var viewer=this.viewer;var scene=viewer.scene;var metaScene=viewer.metaScene;var metaModel=metaScene.metaModels[modelId];var model=scene.models[modelId];if(!metaModel||!metaModel.rootMetaObjects){return;}var rootMetaObjects=metaModel.rootMetaObjects;for(var j=0,lenj=rootMetaObjects.length;j<lenj;j++){var storeyIds=rootMetaObjects[j].getObjectIDsInSubtreeByType(["IfcBuildingStorey"]);for(var _i596=0,len=storeyIds.length;_i596<len;_i596++){var storeyId=storeyIds[_i596];var metaObject=metaScene.metaObjects[storeyId];var childObjectIds=metaObject.getObjectIDsInSubtree();var storeyAABB=scene.getAABB(childObjectIds);var numObjects=Math.random()>0.5?childObjectIds.length:0;var storey=new Storey(this,model.aabb,storeyAABB,modelId,storeyId,numObjects);storey._onModelDestroyed=model.once("destroyed",function(){_this154._deregisterModelStoreys(modelId);_this154.fire("storeys",_this154.storeys);});this.storeys[storeyId]=storey;this._storeysList=null;if(!this.modelStoreys[modelId]){this.modelStoreys[modelId]={};}this.modelStoreys[modelId][storeyId]=storey;}}this._clipBoundingBoxes();}},{key:"_clipBoundingBoxes",value:function _clipBoundingBoxes(){var storeysList=this.storeysList;var metaScene=this.viewer.metaScene;var camera=this.viewer.camera;var worldUp=camera.worldUp;var xUp=worldUp[0]>worldUp[1]&&worldUp[0]>worldUp[2];var yUp=!xUp&&worldUp[1]>worldUp[0]&&worldUp[1]>worldUp[2];!xUp&&!yUp&&worldUp[2]>worldUp[0]&&worldUp[2]>worldUp[1];var bbIndex;if(xUp)bbIndex=0;else if(yUp)bbIndex=1;else bbIndex=2;for(var _i597=0,len=storeysList.length;_i597<len;_i597++){var storeyMetaObjectCur=metaScene.metaObjects[storeysList[_i597].storeyId];var elevationCur=storeyMetaObjectCur.attributes.elevation;if(isNaN(elevationCur))return;var bb=storeysList[_i597].storeyAABB;bb[bbIndex]=Math.max(bb[1],parseFloat(elevationCur));if(_i597>0){var storeyMetaObjectNext=metaScene.metaObjects[storeysList[_i597-1].storeyId];var elevationNext=storeyMetaObjectNext.attributes.elevation;bb[4]=Math.min(bb[bbIndex+3],parseFloat(elevationNext));}this.storeys[storeysList[_i597].storeyId].storeyAABB=bb;}}},{key:"_deregisterModelStoreys",value:function _deregisterModelStoreys(modelId){var storeys=this.modelStoreys[modelId];if(storeys){var scene=this.viewer.scene;for(var storyObjectId in storeys){if(storeys.hasOwnProperty(storyObjectId)){var storey=storeys[storyObjectId];var model=scene.models[storey.modelId];if(model){model.off(storey._onModelDestroyed);}delete this.storeys[storyObjectId];this._storeysList=null;}}delete this.modelStoreys[modelId];}}/**
29573
+ */_this153.modelStoreys={};_this153._fitStoreyMaps=!!cfg.fitStoreyMaps;_this153._onModelLoaded=_this153.viewer.scene.on("modelLoaded",function(modelId){_this153._registerModelStoreys(modelId);_this153.fire("storeys",_this153.storeys);});return _this153;}_createClass(StoreyViewsPlugin,[{key:"_registerModelStoreys",value:function _registerModelStoreys(modelId){var _this154=this;var viewer=this.viewer;var scene=viewer.scene;var metaScene=viewer.metaScene;var metaModel=metaScene.metaModels[modelId];var model=scene.models[modelId];if(!metaModel||!metaModel.rootMetaObjects){return;}var rootMetaObjects=metaModel.rootMetaObjects;for(var j=0,lenj=rootMetaObjects.length;j<lenj;j++){var storeyIds=rootMetaObjects[j].getObjectIDsInSubtreeByType(["IfcBuildingStorey"]);for(var _i595=0,len=storeyIds.length;_i595<len;_i595++){var storeyId=storeyIds[_i595];var metaObject=metaScene.metaObjects[storeyId];var childObjectIds=metaObject.getObjectIDsInSubtree();var storeyAABB=scene.getAABB(childObjectIds);var numObjects=Math.random()>0.5?childObjectIds.length:0;var storey=new Storey(this,model.aabb,storeyAABB,modelId,storeyId,numObjects);storey._onModelDestroyed=model.once("destroyed",function(){_this154._deregisterModelStoreys(modelId);_this154.fire("storeys",_this154.storeys);});this.storeys[storeyId]=storey;this._storeysList=null;if(!this.modelStoreys[modelId]){this.modelStoreys[modelId]={};}this.modelStoreys[modelId][storeyId]=storey;}}this._clipBoundingBoxes();}},{key:"_clipBoundingBoxes",value:function _clipBoundingBoxes(){var storeysList=this.storeysList;var metaScene=this.viewer.metaScene;var camera=this.viewer.camera;var worldUp=camera.worldUp;var xUp=worldUp[0]>worldUp[1]&&worldUp[0]>worldUp[2];var yUp=!xUp&&worldUp[1]>worldUp[0]&&worldUp[1]>worldUp[2];!xUp&&!yUp&&worldUp[2]>worldUp[0]&&worldUp[2]>worldUp[1];var bbIndex;if(xUp)bbIndex=0;else if(yUp)bbIndex=1;else bbIndex=2;for(var _i596=0,len=storeysList.length;_i596<len;_i596++){var storeyMetaObjectCur=metaScene.metaObjects[storeysList[_i596].storeyId];var elevationCur=storeyMetaObjectCur.attributes.elevation;if(isNaN(elevationCur))return;var bb=storeysList[_i596].storeyAABB;bb[bbIndex]=Math.max(bb[1],parseFloat(elevationCur));if(_i596>0){var storeyMetaObjectNext=metaScene.metaObjects[storeysList[_i596-1].storeyId];var elevationNext=storeyMetaObjectNext.attributes.elevation;bb[4]=Math.min(bb[bbIndex+3],parseFloat(elevationNext));}this.storeys[storeysList[_i596].storeyId].storeyAABB=bb;}}},{key:"_deregisterModelStoreys",value:function _deregisterModelStoreys(modelId){var storeys=this.modelStoreys[modelId];if(storeys){var scene=this.viewer.scene;for(var storyObjectId in storeys){if(storeys.hasOwnProperty(storyObjectId)){var storey=storeys[storyObjectId];var model=scene.models[storey.modelId];if(model){model.off(storey._onModelDestroyed);}delete this.storeys[storyObjectId];this._storeysList=null;}}delete this.modelStoreys[modelId];}}/**
29552
29574
  * When true, the elements of each floor map image will be proportionally resized to encompass the entire image. This leads to varying scales among different
29553
29575
  * floor map images. If false, each floor map image will display the model's extents, ensuring a consistent scale across all images.
29554
29576
  * @returns {*|boolean}
@@ -29933,7 +29955,7 @@ var sectionPlane=new SectionPlane(this.viewer.scene,{id:params.id,pos:params.pos
29933
29955
  * @param {String} id ID of the {@link SectionPlane}.
29934
29956
  */},{key:"destroySectionPlane",value:function destroySectionPlane(id){var sectionPlane=this.viewer.scene.sectionPlanes[id];if(!sectionPlane){this.error("SectionPlane not found: "+id);return;}this._sectionPlaneDestroyed(sectionPlane);sectionPlane.destroy();if(id===this._shownControlId){this._shownControlId=null;}}},{key:"_sectionPlaneDestroyed",value:function _sectionPlaneDestroyed(sectionPlane){if(this._overview){this._overview.removeSectionPlane(sectionPlane);}var control=this._controls[sectionPlane.id];if(!control){return;}control.setVisible(false);control._setSectionPlane(null);delete this._controls[sectionPlane.id];this._freeControls.push(control);}/**
29935
29957
  * Destroys all {@link SectionPlane}s created by this FaceAlignedSectionPlanesPlugin.
29936
- */},{key:"clear",value:function clear(){var ids=Object.keys(this._sectionPlanes);for(var _i598=0,len=ids.length;_i598<len;_i598++){this.destroySectionPlane(ids[_i598]);}}/**
29958
+ */},{key:"clear",value:function clear(){var ids=Object.keys(this._sectionPlanes);for(var _i597=0,len=ids.length;_i597<len;_i597++){this.destroySectionPlane(ids[_i597]);}}/**
29937
29959
  * @private
29938
29960
  */},{key:"send",value:function send(name,value){switch(name){case"snapshotStarting":// Viewer#getSnapshot() about to take snapshot - hide controls
29939
29961
  for(var id in this._controls){if(this._controls.hasOwnProperty(id)){this._controls[id].setCulled(true);}}break;case"snapshotFinished":// Viewer#getSnapshot() finished taking snapshot - show controls again
@@ -29954,46 +29976,27 @@ for(var _id5 in this._controls){if(this._controls.hasOwnProperty(_id5)){this._co
29954
29976
  * });
29955
29977
  *
29956
29978
  * // Add a GLTFModelsPlugin
29957
- * var gltfLoaderPlugin = new GLTFModelsPlugin(viewer, {
29958
- * id: "GLTFModels" // Default value
29959
- * });
29979
+ * var xktLoaderPlugin = new XKTLoaderPlugin(viewer);
29960
29980
  *
29961
29981
  * // Add a SkyboxesPlugin
29962
- * var skyboxesPlugin = new SkyboxesPlugin(viewer, {
29963
- * id: "Skyboxes" // Default value
29964
- * });
29982
+ * var skyboxesPlugin = new SkyboxesPlugin(viewer);
29983
+ *
29984
+ * // Create a skybox
29985
+ * skyBoxesPlugin.createSkybox({
29986
+ * src: [
29987
+ * "./assets/images/posx.jpg",
29988
+ * "./assets/images/negx.jpg",
29989
+ * "./assets/images/posy.jpg",
29990
+ * "./assets/images/negy.jpg",
29991
+ * "./assets/images/posz.jpg",
29992
+ * "./assets/images/negz.jpg"
29993
+ * ]
29994
+ * })
29965
29995
  *
29966
- * // Load a glTF model
29967
- * const model = gltfLoaderPlugin.load({
29996
+ * // Load an XKT model
29997
+ * const model = xktLoaderPlugin.load({
29968
29998
  * id: "myModel",
29969
- * src: "./models/gltf/mygltfmodel.gltf"
29970
- * });
29971
- *
29972
- * // Create three directional World-space lights. "World" means that they will appear as if part
29973
- * // of the world, instead of "View", where they move with the user's head.
29974
- *
29975
- * skyboxesPlugin.createLight({
29976
- * id: "keyLight",
29977
- * dir: [0.8, -0.6, -0.8],
29978
- * color: [1.0, 0.3, 0.3],
29979
- * intensity: 1.0,
29980
- * space: "world"
29981
- * });
29982
- *
29983
- * skyboxesPlugin.createLight({
29984
- * id: "fillLight",
29985
- * dir: [-0.8, -0.4, -0.4],
29986
- * color: [0.3, 1.0, 0.3],
29987
- * intensity: 1.0,
29988
- * space: "world"
29989
- * });
29990
- *
29991
- * skyboxesPlugin.createDirLight({
29992
- * id: "rimLight",
29993
- * dir: [0.2, -0.8, 0.8],
29994
- * color: [0.6, 0.6, 0.6],
29995
- * intensity: 1.0,
29996
- * space: "world"
29999
+ * src: "./models/xkt/myModel.xkt"
29997
30000
  * });
29998
30001
  *
29999
30002
  * @class SkyboxesPlugin
@@ -30002,11 +30005,14 @@ for(var _id5 in this._controls){if(this._controls.hasOwnProperty(_id5)){this._co
30002
30005
  */_createClass(SkyboxesPlugin,[{key:"send",value:function send(name,value){switch(name){case"clear":this.clear();break;}}/**
30003
30006
  Creates a skybox.
30004
30007
 
30005
- @param {String} id Unique ID to assign to the skybox.
30006
30008
  @param {Object} params Skybox configuration.
30009
+ @param {String} [params.id] Optional ID, unique among all components in the parent {Scene}, generated automatically when omitted.
30010
+ @param {String | String[]} [params.src=null] Path to skybox texture
30011
+ @param {Number} [params.encoding=LinearEncoding] Texture encoding format. See the {@link Texture#encoding} property for more info.
30012
+ @param {Number} [params.size=1000] Size of this Skybox, given as the distance from the center at ````[0,0,0]```` to each face.
30007
30013
  @param {Boolean} [params.active=true] Whether the skybox plane is initially active. Only skyboxes while this is true.
30008
30014
  @returns {Skybox} The new skybox.
30009
- */},{key:"createSkybox",value:function createSkybox(id,params){if(this.viewer.scene.components[id]){this.error("Component with this ID already exists: "+id);return this;}var skybox=new Skybox(this.viewer.scene,{id:id,pos:params.pos,dir:params.dir,active:true});this.skyboxes[id]=skybox;return skybox;}/**
30015
+ */},{key:"createSkybox",value:function createSkybox(params){var skybox=new Skybox(this.viewer.scene,params);this.skyboxes[skybox.id]=skybox;return skybox;}/**
30010
30016
  Destroys a skybox.
30011
30017
  @param id
30012
30018
  */},{key:"destroySkybox",value:function destroySkybox(id){var skybox=this.skyboxes[id];if(!skybox){this.error("Skybox not found: "+id);return;}skybox.destroy();}/**
@@ -30034,14 +30040,14 @@ roughness:0.5});// var material = new PhongMaterial(modelNode, { // Share materi
30034
30040
  // reflectivity: 1,
30035
30041
  // specular: [0.5, 0.5, 1.0]
30036
30042
  // });
30037
- var dataOffset=84;var faceLength=12*4+2;var positions=[];var normals=[];var splitMeshes=options.splitMeshes;for(var face=0;face<faces;face++){var start=dataOffset+face*faceLength;var normalX=reader.getFloat32(start,true);var normalY=reader.getFloat32(start+4,true);var normalZ=reader.getFloat32(start+8,true);if(hasColors){var packedColor=reader.getUint16(start+48,true);if((packedColor&0x8000)===0){r=(packedColor&0x1F)/31;g=(packedColor>>5&0x1F)/31;b=(packedColor>>10&0x1F)/31;}else{r=defaultR;g=defaultG;b=defaultB;}if(splitMeshes&&r!==lastR||g!==lastG||b!==lastB){if(lastR!==null){newMesh=true;}lastR=r;lastG=g;lastB=b;}}for(var _i599=1;_i599<=3;_i599++){var vertexstart=start+_i599*12;positions.push(reader.getFloat32(vertexstart,true));positions.push(reader.getFloat32(vertexstart+4,true));positions.push(reader.getFloat32(vertexstart+8,true));normals.push(normalX,normalY,normalZ);if(hasColors){colors.push(r,g,b,1);// TODO: handle alpha
30043
+ var dataOffset=84;var faceLength=12*4+2;var positions=[];var normals=[];var splitMeshes=options.splitMeshes;for(var face=0;face<faces;face++){var start=dataOffset+face*faceLength;var normalX=reader.getFloat32(start,true);var normalY=reader.getFloat32(start+4,true);var normalZ=reader.getFloat32(start+8,true);if(hasColors){var packedColor=reader.getUint16(start+48,true);if((packedColor&0x8000)===0){r=(packedColor&0x1F)/31;g=(packedColor>>5&0x1F)/31;b=(packedColor>>10&0x1F)/31;}else{r=defaultR;g=defaultG;b=defaultB;}if(splitMeshes&&r!==lastR||g!==lastG||b!==lastB){if(lastR!==null){newMesh=true;}lastR=r;lastG=g;lastB=b;}}for(var _i598=1;_i598<=3;_i598++){var vertexstart=start+_i598*12;positions.push(reader.getFloat32(vertexstart,true));positions.push(reader.getFloat32(vertexstart+4,true));positions.push(reader.getFloat32(vertexstart+8,true));normals.push(normalX,normalY,normalZ);if(hasColors){colors.push(r,g,b,1);// TODO: handle alpha
30038
30044
  }}if(splitMeshes&&newMesh){addMesh(modelNode,positions,normals,colors,material,options);positions=[];normals=[];colors=colors?[]:null;newMesh=false;}}if(positions.length>0){addMesh(modelNode,positions,normals,colors,material,options);}}function parseASCII(plugin,data,modelNode,options){var faceRegex=/facet([\s\S]*?)endfacet/g;var faceCounter=0;var floatRegex=/[\s]+([+-]?(?:\d+.\d+|\d+.|\d+|.\d+)(?:[eE][+-]?\d+)?)/.source;var vertexRegex=new RegExp('vertex'+floatRegex+floatRegex+floatRegex,'g');var normalRegex=new RegExp('normal'+floatRegex+floatRegex+floatRegex,'g');var positions=[];var normals=[];var colors=null;var normalx;var normaly;var normalz;var result;var verticesPerFace;var normalsPerFace;var text;while((result=faceRegex.exec(data))!==null){verticesPerFace=0;normalsPerFace=0;text=result[0];while((result=normalRegex.exec(text))!==null){normalx=parseFloat(result[1]);normaly=parseFloat(result[2]);normalz=parseFloat(result[3]);normalsPerFace++;}while((result=vertexRegex.exec(text))!==null){positions.push(parseFloat(result[1]),parseFloat(result[2]),parseFloat(result[3]));normals.push(normalx,normaly,normalz);verticesPerFace++;}if(normalsPerFace!==1){plugin.error("Error in normal of face "+faceCounter);}if(verticesPerFace!==3){plugin.error("Error in positions of face "+faceCounter);}faceCounter++;}var material=new MetallicMaterial(modelNode,{roughness:0.5});// var material = new PhongMaterial(modelNode, {
30039
30045
  // diffuse: [0.4, 0.4, 0.4],
30040
30046
  // reflectivity: 1,
30041
30047
  // specular: [0.5, 0.5, 1.0]
30042
30048
  // });
30043
- addMesh(modelNode,positions,normals,colors,material,options);}function addMesh(modelNode,positions,normals,colors,material,options){var indices=new Int32Array(positions.length/3);for(var ni=0,len=indices.length;ni<len;ni++){indices[ni]=ni;}normals=normals&&normals.length>0?normals:null;colors=colors&&colors.length>0?colors:null;if(options.smoothNormals){math.faceToVertexNormals(positions,normals,options);}var origin=tempVec3a$1;worldToRTCPositions(positions,positions,origin);var geometry=new ReadableGeometry(modelNode,{primitive:"triangles",positions:positions,normals:normals,colors:colors,indices:indices});var mesh=new Mesh(modelNode,{origin:origin[0]!==0||origin[1]!==0||origin[2]!==0?origin:null,geometry:geometry,material:material,edges:options.edges});modelNode.addChild(mesh);}function ensureString(buffer){if(typeof buffer!=='string'){return decodeText(new Uint8Array(buffer));}return buffer;}function ensureBinary(buffer){if(typeof buffer==='string'){var arrayBuffer=new Uint8Array(buffer.length);for(var _i600=0;_i600<buffer.length;_i600++){arrayBuffer[_i600]=buffer.charCodeAt(_i600)&0xff;// implicitly assumes little-endian
30044
- }return arrayBuffer.buffer||arrayBuffer;}else{return buffer;}}function decodeText(array){if(typeof TextDecoder!=='undefined'){return new TextDecoder().decode(array);}var s='';for(var _i601=0,il=array.length;_i601<il;_i601++){s+=String.fromCharCode(array[_i601]);// Implicitly assumes little-endian.
30049
+ addMesh(modelNode,positions,normals,colors,material,options);}function addMesh(modelNode,positions,normals,colors,material,options){var indices=new Int32Array(positions.length/3);for(var ni=0,len=indices.length;ni<len;ni++){indices[ni]=ni;}normals=normals&&normals.length>0?normals:null;colors=colors&&colors.length>0?colors:null;if(options.smoothNormals){math.faceToVertexNormals(positions,normals,options);}var origin=tempVec3a$1;worldToRTCPositions(positions,positions,origin);var geometry=new ReadableGeometry(modelNode,{primitive:"triangles",positions:positions,normals:normals,colors:colors,indices:indices});var mesh=new Mesh(modelNode,{origin:origin[0]!==0||origin[1]!==0||origin[2]!==0?origin:null,geometry:geometry,material:material,edges:options.edges});modelNode.addChild(mesh);}function ensureString(buffer){if(typeof buffer!=='string'){return decodeText(new Uint8Array(buffer));}return buffer;}function ensureBinary(buffer){if(typeof buffer==='string'){var arrayBuffer=new Uint8Array(buffer.length);for(var _i599=0;_i599<buffer.length;_i599++){arrayBuffer[_i599]=buffer.charCodeAt(_i599)&0xff;// implicitly assumes little-endian
30050
+ }return arrayBuffer.buffer||arrayBuffer;}else{return buffer;}}function decodeText(array){if(typeof TextDecoder!=='undefined'){return new TextDecoder().decode(array);}var s='';for(var _i600=0,il=array.length;_i600<il;_i600++){s+=String.fromCharCode(array[_i600]);// Implicitly assumes little-endian.
30045
30051
  }return decodeURIComponent(escape(s));}/**
30046
30052
  * {@link Viewer} plugin that loads models from <a href="https://en.wikipedia.org/wiki/STL_(file_format)">STL</a> files.
30047
30053
  *
@@ -30257,15 +30263,19 @@ addMesh(modelNode,positions,normals,colors,material,options);}function addMesh(m
30257
30263
  */,set:function set(value){this._dataSource=value||new STLDefaultDataSource();}},{key:"load",value:function load(params){if(params.id&&this.viewer.scene.components[params.id]){this.error("Component with this ID already exists in viewer: "+params.id+" - will autogenerate this ID");delete params.id;}var modelNode=new Node$1(this.viewer.scene,utils.apply(params,{isModel:true}));var src=params.src;var stl=params.stl;if(!src&&!stl){this.error("load() param expected: either 'src' or 'stl'");return modelNode;}if(src){this._sceneGraphLoader.load(this,modelNode,src,params);}else{this._sceneGraphLoader.parse(this,modelNode,stl,params);}return modelNode;}}]);return STLLoaderPlugin;}(Plugin);/**
30258
30264
  * @desc A {@link TreeViewPlugin} render class.
30259
30265
  *
30260
- */var RenderService=/*#__PURE__*/function(){function RenderService(){_classCallCheck(this,RenderService);}_createClass(RenderService,[{key:"createRootNode",value:/*
30266
+ */var RenderService=/*#__PURE__*/function(){/**
30267
+ * @constructor
30268
+ *
30269
+ * @param {HTMLElement} treeViewContainer Container element for the tree which uses this render service.
30270
+ */function RenderService(treeViewContainer){_classCallCheck(this,RenderService);this._treeViewContainer=treeViewContainer;}/*
30261
30271
  * Creates the root node of the tree.
30262
30272
  * @return {HTMLElement} The root node of the tree.
30263
- */function createRootNode(){return document.createElement('ul');}/*
30273
+ */_createClass(RenderService,[{key:"createRootNode",value:function createRootNode(){return document.createElement('ul');}/*
30264
30274
  * Creates node of the tree.
30265
30275
  * @param {Object} node The node to create.
30266
30276
 
30267
30277
  * @return {HTMLElement} The html element for the node.
30268
- */},{key:"createNodeElement",value:function createNodeElement(node,expandHandler,checkHandler,contextmenuHandler,titleClickHandler){var nodeElement=document.createElement('li');nodeElement.id=node.nodeId;if(node.xrayed){nodeElement.classList.add('xrayed-node');}if(node.children.length>0){var switchElement=document.createElement('a');switchElement.href='#';switchElement.id="switch-".concat(node.nodeId);switchElement.textContent='+';switchElement.classList.add('plus');if(expandHandler)switchElement.addEventListener('click',expandHandler);nodeElement.appendChild(switchElement);}var checkbox=document.createElement('input');checkbox.id="checkbox-".concat(node.nodeId);checkbox.type="checkbox";checkbox.checked=node.checked;checkbox.style["pointer-events"]="all";if(checkHandler)checkbox.addEventListener("change",checkHandler);nodeElement.appendChild(checkbox);var span=document.createElement('span');span.textContent=node.title;nodeElement.appendChild(span);if(contextmenuHandler){addContextMenuListener(span,contextmenuHandler);}if(titleClickHandler){span.onclick=titleClickHandler;}return nodeElement;}},{key:"createDisabledNodeElement",value:function createDisabledNodeElement(rootName){var li=document.createElement('li');var switchElement=document.createElement('a');switchElement.href='#';switchElement.textContent='!';switchElement.classList.add('warn');switchElement.classList.add('warning');li.appendChild(switchElement);var span=document.createElement('span');span.textContent=rootName;li.appendChild(span);return li;}},{key:"addChildren",value:function addChildren(element,nodes){var ul=document.createElement('ul');nodes.forEach(function(nodeElement){ul.appendChild(nodeElement);});element.parentElement.appendChild(ul);}},{key:"expand",value:function expand(element,expandHandler,collapseHandler){element.classList.remove('plus');element.classList.add('minus');element.textContent='-';element.removeEventListener('click',expandHandler);element.addEventListener('click',collapseHandler);}},{key:"collapse",value:function collapse(element,expandHandler,collapseHandler){if(!element){return;}var parent=element.parentElement;if(!parent){return;}var ul=parent.querySelector('ul');if(!ul){return;}parent.removeChild(ul);element.classList.remove('minus');element.classList.add('plus');element.textContent='+';element.removeEventListener('click',collapseHandler);element.addEventListener('click',expandHandler);}},{key:"isExpanded",value:function isExpanded(element){var parentElement=element.parentElement;return parentElement.getElementsByTagName('li')[0]!==undefined;}},{key:"getId",value:function getId(element){var parentElement=element.parentElement;return parentElement.id;}},{key:"getIdFromCheckbox",value:function getIdFromCheckbox(element){return element.id.replace('checkbox-','');}},{key:"getSwitchElement",value:function getSwitchElement(nodeId){return document.getElementById("switch-".concat(nodeId));}},{key:"isChecked",value:function isChecked(element){return element.checked;}},{key:"setCheckbox",value:function setCheckbox(nodeId,checked){var indeterminate=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var checkbox=document.getElementById("checkbox-".concat(nodeId));if(checkbox){if(checked!==checkbox.checked){checkbox.checked=checked;}if(indeterminate!==checkbox.indeterminate){checkbox.indeterminate=indeterminate;if(indeterminate){checkbox.checked=false;}}}}},{key:"setXRayed",value:function setXRayed(nodeId,xrayed){var treeNode=document.getElementById(nodeId);if(treeNode){if(xrayed){treeNode.classList.add('xrayed-node');}else{treeNode.classList.remove('xrayed-node');}}}},{key:"setHighlighted",value:function setHighlighted(nodeId,highlighted){var treeNode=document.getElementById(nodeId);if(treeNode){if(highlighted){treeNode.scrollIntoView({block:"center"});treeNode.classList.add('highlighted-node');}else{treeNode.classList.remove('highlighted-node');}}}}]);return RenderService;}();var treeViews=[];/**
30278
+ */},{key:"createNodeElement",value:function createNodeElement(node,expandHandler,checkHandler,contextmenuHandler,titleClickHandler){var nodeElement=document.createElement('li');nodeElement.id=node.nodeId;if(node.xrayed){nodeElement.classList.add('xrayed-node');}if(node.children.length>0){var switchElement=document.createElement('a');switchElement.href='#';switchElement.id="switch-".concat(node.nodeId);switchElement.textContent='+';switchElement.classList.add('plus');if(expandHandler)switchElement.addEventListener('click',expandHandler);nodeElement.appendChild(switchElement);}var checkbox=document.createElement('input');checkbox.id="checkbox-".concat(node.nodeId);checkbox.type="checkbox";checkbox.checked=node.checked;checkbox.style["pointer-events"]="all";if(checkHandler)checkbox.addEventListener("change",checkHandler);nodeElement.appendChild(checkbox);var span=document.createElement('span');span.textContent=node.title;nodeElement.appendChild(span);if(contextmenuHandler){addContextMenuListener(span,contextmenuHandler);}if(titleClickHandler){span.onclick=titleClickHandler;}return nodeElement;}},{key:"createDisabledNodeElement",value:function createDisabledNodeElement(rootName){var li=document.createElement('li');var switchElement=document.createElement('a');switchElement.href='#';switchElement.textContent='!';switchElement.classList.add('warn');switchElement.classList.add('warning');li.appendChild(switchElement);var span=document.createElement('span');span.textContent=rootName;li.appendChild(span);return li;}},{key:"addChildren",value:function addChildren(element,nodes){var ul=document.createElement('ul');nodes.forEach(function(nodeElement){ul.appendChild(nodeElement);});element.parentElement.appendChild(ul);}},{key:"expand",value:function expand(element,expandHandler,collapseHandler){element.classList.remove('plus');element.classList.add('minus');element.textContent='-';element.removeEventListener('click',expandHandler);element.addEventListener('click',collapseHandler);}},{key:"collapse",value:function collapse(element,expandHandler,collapseHandler){if(!element){return;}var parent=element.parentElement;if(!parent){return;}var ul=parent.querySelector('ul');if(!ul){return;}parent.removeChild(ul);element.classList.remove('minus');element.classList.add('plus');element.textContent='+';element.removeEventListener('click',collapseHandler);element.addEventListener('click',expandHandler);}},{key:"isExpanded",value:function isExpanded(element){var parentElement=element.parentElement;return parentElement.getElementsByTagName('li')[0]!==undefined;}},{key:"getId",value:function getId(element){var parentElement=element.parentElement;return parentElement.id;}},{key:"getIdFromCheckbox",value:function getIdFromCheckbox(element){return element.id.replace('checkbox-','');}},{key:"getSwitchElement",value:function getSwitchElement(nodeId){return this._treeViewContainer.querySelector("[id=\"switch-".concat(nodeId,"\"]"));}},{key:"isChecked",value:function isChecked(element){return element.checked;}},{key:"setCheckbox",value:function setCheckbox(nodeId,checked){var indeterminate=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var checkbox=this._treeViewContainer.querySelector("[id=\"checkbox-".concat(nodeId,"\"]"));if(checkbox){if(checked!==checkbox.checked){checkbox.checked=checked;}if(indeterminate!==checkbox.indeterminate){checkbox.indeterminate=indeterminate;if(indeterminate){checkbox.checked=false;}}}}},{key:"setXRayed",value:function setXRayed(nodeId,xrayed){var treeNode=this._treeViewContainer.querySelector("[id=\"".concat(nodeId,"\"]"));if(treeNode){if(xrayed){treeNode.classList.add('xrayed-node');}else{treeNode.classList.remove('xrayed-node');}}}},{key:"setHighlighted",value:function setHighlighted(nodeId,highlighted){var treeNode=this._treeViewContainer.querySelector("[id=\"".concat(nodeId,"\"]"));if(treeNode){if(highlighted){treeNode.scrollIntoView({block:"center"});treeNode.classList.add('highlighted-node');}else{treeNode.classList.remove('highlighted-node');}}}}]);return RenderService;}();var treeViews=[];/**
30269
30279
  * @desc A {@link Viewer} plugin that provides an HTML tree view to navigate the IFC elements in models.
30270
30280
  * <br>
30271
30281
  *
@@ -30630,12 +30640,12 @@ addMesh(modelNode,positions,normals,colors,material,options);}function addMesh(m
30630
30640
  */_this164.errors=[];/**
30631
30641
  * True if errors were found generating this TreeView.
30632
30642
  * @type {boolean}
30633
- */_this164.valid=true;var containerElement=cfg.containerElement||document.getElementById(cfg.containerElementId);if(!(containerElement instanceof HTMLElement)){_this164.error("Mandatory config expected: valid containerElementId or containerElement");return _possibleConstructorReturn(_this164);}for(var _i602=0;;_i602++){if(!treeViews[_i602]){treeViews[_i602]=_assertThisInitialized(_this164);_this164._index=_i602;_this164._id="tree-".concat(_i602);break;}}_this164._containerElement=containerElement;_this164._metaModels={};_this164._autoAddModels=cfg.autoAddModels!==false;_this164._autoExpandDepth=cfg.autoExpandDepth||0;_this164._sortNodes=cfg.sortNodes!==false;_this164._viewer=viewer;_this164._rootElement=null;_this164._muteSceneEvents=false;_this164._muteTreeEvents=false;_this164._rootNodes=[];_this164._objectNodes={};// Object ID -> Node
30643
+ */_this164.valid=true;var containerElement=cfg.containerElement||document.getElementById(cfg.containerElementId);if(!(containerElement instanceof HTMLElement)){_this164.error("Mandatory config expected: valid containerElementId or containerElement");return _possibleConstructorReturn(_this164);}for(var _i601=0;;_i601++){if(!treeViews[_i601]){treeViews[_i601]=_assertThisInitialized(_this164);_this164._index=_i601;_this164._id="tree-".concat(_i601);break;}}_this164._containerElement=containerElement;_this164._metaModels={};_this164._autoAddModels=cfg.autoAddModels!==false;_this164._autoExpandDepth=cfg.autoExpandDepth||0;_this164._sortNodes=cfg.sortNodes!==false;_this164._viewer=viewer;_this164._rootElement=null;_this164._muteSceneEvents=false;_this164._muteTreeEvents=false;_this164._rootNodes=[];_this164._objectNodes={};// Object ID -> Node
30634
30644
  _this164._nodeNodes={};// Node ID -> Node
30635
30645
  _this164._rootNames={};// Node ID -> Root name
30636
- _this164._sortNodes=cfg.sortNodes;_this164._pruneEmptyNodes=cfg.pruneEmptyNodes;_this164._showListItemElementId=null;_this164._renderService=cfg.renderService||new RenderService();_this164._showIndeterminate=(_cfg$showIndeterminat=cfg.showIndeterminate)!==null&&_cfg$showIndeterminat!==void 0?_cfg$showIndeterminat:false;_this164._showProjectNode=(_cfg$showProjectNode=cfg.showProjectNode)!==null&&_cfg$showProjectNode!==void 0?_cfg$showProjectNode:false;_this164._elevationSortFunction=(_cfg$elevationSortFun=cfg.elevationSortFunction)!==null&&_cfg$elevationSortFun!==void 0?_cfg$elevationSortFun:undefined;_this164._defaultSortFunction=(_cfg$defaultSortFunct=cfg.defaultSortFunction)!==null&&_cfg$defaultSortFunct!==void 0?_cfg$defaultSortFunct:undefined;if(!_this164._renderService){throw new Error('TreeViewPlugin: no render service set');}_this164._containerElement.oncontextmenu=function(e){e.preventDefault();};_this164._onObjectVisibility=_this164._viewer.scene.on("objectVisibility",function(entity){if(_this164._muteSceneEvents){return;}var objectId=entity.id;var node=_this164._objectNodes[objectId];if(!node){return;// Not in this tree
30646
+ _this164._sortNodes=cfg.sortNodes;_this164._pruneEmptyNodes=cfg.pruneEmptyNodes;_this164._showListItemElementId=null;_this164._renderService=cfg.renderService||new RenderService(_this164._containerElement);_this164._showIndeterminate=(_cfg$showIndeterminat=cfg.showIndeterminate)!==null&&_cfg$showIndeterminat!==void 0?_cfg$showIndeterminat:false;_this164._showProjectNode=(_cfg$showProjectNode=cfg.showProjectNode)!==null&&_cfg$showProjectNode!==void 0?_cfg$showProjectNode:false;_this164._elevationSortFunction=(_cfg$elevationSortFun=cfg.elevationSortFunction)!==null&&_cfg$elevationSortFun!==void 0?_cfg$elevationSortFun:undefined;_this164._defaultSortFunction=(_cfg$defaultSortFunct=cfg.defaultSortFunction)!==null&&_cfg$defaultSortFunct!==void 0?_cfg$defaultSortFunct:undefined;if(!_this164._renderService){throw new Error('TreeViewPlugin: no render service set');}_this164._containerElement.oncontextmenu=function(e){e.preventDefault();};_this164._onObjectVisibility=_this164._viewer.scene.on("objectVisibility",function(entity){if(_this164._muteSceneEvents){return;}var objectId=entity.id;var node=_this164._objectNodes[objectId];if(!node){return;// Not in this tree
30637
30647
  }var visible=entity.visible;var updated=visible!==node.checked;if(!updated){return;}_this164._muteTreeEvents=true;node.checked=visible;if(visible){node.numVisibleEntities++;}else{node.numVisibleEntities--;}_this164._renderService.setCheckbox(node.nodeId,visible);var parent=node.parent;while(parent){parent.checked=visible;if(visible){parent.numVisibleEntities++;}else{parent.numVisibleEntities--;}var indeterminate=_this164._showIndeterminate&&parent.numVisibleEntities>0&&parent.numVisibleEntities<parent.numEntities;parent.checked=parent.numVisibleEntities>0;_this164._renderService.setCheckbox(parent.nodeId,parent.checked,indeterminate);parent=parent.parent;}_this164._muteTreeEvents=false;});_this164._onObjectXrayed=_this164._viewer.scene.on('objectXRayed',function(entity){if(_this164._muteSceneEvents){return;}var objectId=entity.id;var node=_this164._objectNodes[objectId];if(!node){return;// Not in this tree
30638
- }_this164._muteTreeEvents=true;var xrayed=entity.xrayed;var updated=xrayed!==node.xrayed;if(!updated){return;}node.xrayed=xrayed;_this164._renderService.setXRayed(node.nodeId,xrayed);_this164._muteTreeEvents=false;});_this164._switchExpandHandler=function(event){event.preventDefault();event.stopPropagation();var switchElement=event.target;_this164._expandSwitchElement(switchElement);};_this164._switchCollapseHandler=function(event){event.preventDefault();event.stopPropagation();var switchElement=event.target;_this164._collapseSwitchElement(switchElement);};_this164._checkboxChangeHandler=function(event){if(_this164._muteTreeEvents){return;}_this164._muteSceneEvents=true;var checkbox=event.target;var visible=_this164._renderService.isChecked(checkbox);var nodeId=_this164._renderService.getIdFromCheckbox(checkbox);var checkedNode=_this164._nodeNodes[nodeId];var objects=_this164._viewer.scene.objects;var numUpdated=0;_this164._withNodeTree(checkedNode,function(node){var objectId=node.objectId;var entity=objects[objectId];var isLeaf=node.children.length===0;node.numVisibleEntities=visible?node.numEntities:0;if(isLeaf&&visible!==node.checked){numUpdated++;}node.checked=visible;_this164._renderService.setCheckbox(node.nodeId,visible);if(entity){entity.visible=visible;}});var parent=checkedNode.parent;while(parent){if(visible){parent.numVisibleEntities+=numUpdated;}else{parent.numVisibleEntities-=numUpdated;}var indeterminate=_this164._showIndeterminate&&parent.numVisibleEntities>0&&parent.numVisibleEntities<parent.numEntities;parent.checked=parent.numVisibleEntities>0;_this164._renderService.setCheckbox(parent.nodeId,parent.checked,indeterminate);parent=parent.parent;}_this164._muteSceneEvents=false;};_this164._hierarchy=cfg.hierarchy||"containment";_this164._autoExpandDepth=cfg.autoExpandDepth||0;if(_this164._autoAddModels){var modelIds=Object.keys(_this164.viewer.metaScene.metaModels);for(var _i603=0,len=modelIds.length;_i603<len;_i603++){var modelId=modelIds[_i603];var metaModel=_this164.viewer.metaScene.metaModels[modelId];if(metaModel.finalized){_this164.addModel(modelId);}}_this164.viewer.scene.on("modelLoaded",function(modelId){if(_this164.viewer.metaScene.metaModels[modelId]){_this164.addModel(modelId);}});}_this164.hierarchy=cfg.hierarchy;return _this164;}/**
30648
+ }_this164._muteTreeEvents=true;var xrayed=entity.xrayed;var updated=xrayed!==node.xrayed;if(!updated){return;}node.xrayed=xrayed;_this164._renderService.setXRayed(node.nodeId,xrayed);_this164._muteTreeEvents=false;});_this164._switchExpandHandler=function(event){event.preventDefault();event.stopPropagation();var switchElement=event.target;_this164._expandSwitchElement(switchElement);};_this164._switchCollapseHandler=function(event){event.preventDefault();event.stopPropagation();var switchElement=event.target;_this164._collapseSwitchElement(switchElement);};_this164._checkboxChangeHandler=function(event){if(_this164._muteTreeEvents){return;}_this164._muteSceneEvents=true;var checkbox=event.target;var visible=_this164._renderService.isChecked(checkbox);var nodeId=_this164._renderService.getIdFromCheckbox(checkbox);var checkedNode=_this164._nodeNodes[nodeId];var objects=_this164._viewer.scene.objects;var numUpdated=0;_this164._withNodeTree(checkedNode,function(node){var objectId=node.objectId;var entity=objects[objectId];var isLeaf=node.children.length===0;node.numVisibleEntities=visible?node.numEntities:0;if(isLeaf&&visible!==node.checked){numUpdated++;}node.checked=visible;_this164._renderService.setCheckbox(node.nodeId,visible);if(entity){entity.visible=visible;}});var parent=checkedNode.parent;while(parent){if(visible){parent.numVisibleEntities+=numUpdated;}else{parent.numVisibleEntities-=numUpdated;}var indeterminate=_this164._showIndeterminate&&parent.numVisibleEntities>0&&parent.numVisibleEntities<parent.numEntities;parent.checked=parent.numVisibleEntities>0;_this164._renderService.setCheckbox(parent.nodeId,parent.checked,indeterminate);parent=parent.parent;}_this164._muteSceneEvents=false;};_this164._hierarchy=cfg.hierarchy||"containment";_this164._autoExpandDepth=cfg.autoExpandDepth||0;if(_this164._autoAddModels){var modelIds=Object.keys(_this164.viewer.metaScene.metaModels);for(var _i602=0,len=modelIds.length;_i602<len;_i602++){var modelId=modelIds[_i602];var metaModel=_this164.viewer.metaScene.metaModels[modelId];if(metaModel.finalized){_this164.addModel(modelId);}}_this164.viewer.scene.on("modelLoaded",function(modelId){if(_this164.viewer.metaScene.metaModels[modelId]){_this164.addModel(modelId);}});}_this164.hierarchy=cfg.hierarchy;return _this164;}/**
30639
30649
  * Sets how the nodes are organized within this tree view.
30640
30650
  *
30641
30651
  * Accepted values are:
@@ -30689,7 +30699,7 @@ _this164._sortNodes=cfg.sortNodes;_this164._pruneEmptyNodes=cfg.pruneEmptyNodes;
30689
30699
  *
30690
30700
  * @param {String} objectId ID of the {@link Entity}.
30691
30701
  */},{key:"showNode",value:function showNode(objectId){this.unShowNode();var node=this._objectNodes[objectId];if(!node){return;// Node may not exist for the given object if (this._pruneEmptyNodes == true)
30692
- }this.collapse();var nodeId=node.nodeId;var switchElement=this._renderService.getSwitchElement(nodeId);if(switchElement){this._expandSwitchElement(switchElement);switchElement.scrollIntoView();return true;}var path=[];path.unshift(node);var parent=node.parent;while(parent){path.unshift(parent);parent=parent.parent;}for(var _i604=0,len=path.length;_i604<len;_i604++){var _switchElement=this._renderService.getSwitchElement(path[_i604].nodeId);if(_switchElement){this._expandSwitchElement(_switchElement);}}this._renderService.setHighlighted(nodeId,true);this._showListItemElementId=nodeId;}/**
30702
+ }this.collapse();var nodeId=node.nodeId;var switchElement=this._renderService.getSwitchElement(nodeId);if(switchElement){this._expandSwitchElement(switchElement);switchElement.scrollIntoView();return true;}var path=[];path.unshift(node);var parent=node.parent;while(parent){path.unshift(parent);parent=parent.parent;}for(var _i603=0,len=path.length;_i603<len;_i603++){var _switchElement=this._renderService.getSwitchElement(path[_i603].nodeId);if(_switchElement){this._expandSwitchElement(_switchElement);}}this._renderService.setHighlighted(nodeId,true);this._showListItemElementId=nodeId;}/**
30693
30703
  * De-highlights the node previously shown with {@link TreeViewPlugin#showNode}.
30694
30704
  *
30695
30705
  * Does nothing if no node is currently shown.
@@ -30701,15 +30711,15 @@ _this164._sortNodes=cfg.sortNodes;_this164._pruneEmptyNodes=cfg.pruneEmptyNodes;
30701
30711
  * Collapses the tree first.
30702
30712
  *
30703
30713
  * @param {Number} depth Depth to expand to.
30704
- */},{key:"expandToDepth",value:function expandToDepth(depth){var _this166=this;this.collapse();var expand=function expand(node,countDepth){if(countDepth===depth){return;}var switchElement=_this166._renderService.getSwitchElement(node.nodeId);if(switchElement){_this166._expandSwitchElement(switchElement);var childNodes=node.children;for(var i=0,len=childNodes.length;i<len;i++){var childNode=childNodes[i];expand(childNode,countDepth+1);}}};for(var _i605=0,len=this._rootNodes.length;_i605<len;_i605++){var rootNode=this._rootNodes[_i605];expand(rootNode,0);}}/**
30714
+ */},{key:"expandToDepth",value:function expandToDepth(depth){var _this166=this;this.collapse();var expand=function expand(node,countDepth){if(countDepth===depth){return;}var switchElement=_this166._renderService.getSwitchElement(node.nodeId);if(switchElement){_this166._expandSwitchElement(switchElement);var childNodes=node.children;for(var i=0,len=childNodes.length;i<len;i++){var childNode=childNodes[i];expand(childNode,countDepth+1);}}};for(var _i604=0,len=this._rootNodes.length;_i604<len;_i604++){var rootNode=this._rootNodes[_i604];expand(rootNode,0);}}/**
30705
30715
  * Closes all the nodes in the tree.
30706
- */},{key:"collapse",value:function collapse(){for(var _i606=0,len=this._rootNodes.length;_i606<len;_i606++){var rootNode=this._rootNodes[_i606];var nodeId=rootNode.nodeId;this._collapseNode(nodeId);}}/**
30716
+ */},{key:"collapse",value:function collapse(){for(var _i605=0,len=this._rootNodes.length;_i605<len;_i605++){var rootNode=this._rootNodes[_i605];var nodeId=rootNode.nodeId;this._collapseNode(nodeId);}}/**
30707
30717
  * Iterates over a subtree of the tree view's {@link TreeViewNode}s, calling the given callback for each
30708
30718
  * node in depth-first pre-order.
30709
30719
  *
30710
30720
  * @param {TreeViewNode} node Root of the subtree.
30711
30721
  * @param {Function} callback Callback called at each {@link TreeViewNode}, with the TreeViewNode given as the argument.
30712
- */},{key:"withNodeTree",value:function withNodeTree(node,callback){callback(node);var children=node.children;if(!children){return;}for(var _i607=0,len=children.length;_i607<len;_i607++){this.withNodeTree(children[_i607],callback);}}/**
30722
+ */},{key:"withNodeTree",value:function withNodeTree(node,callback){callback(node);var children=node.children;if(!children){return;}for(var _i606=0,len=children.length;_i606<len;_i606++){this.withNodeTree(children[_i606],callback);}}/**
30713
30723
  * Destroys this TreeViewPlugin.
30714
30724
  */},{key:"destroy",value:function destroy(){if(!this._containerElement){return;}this._metaModels={};if(this._rootElement&&!this._destroyed){this._rootElement.parentNode.removeChild(this._rootElement);this._viewer.scene.off(this._onObjectVisibility);this._destroyed=true;}delete treeViews[this._index];_get(_getPrototypeOf(TreeViewPlugin.prototype),"destroy",this).call(this);}},{key:"_createNodes",value:function _createNodes(){if(this._rootElement){this._rootElement.parentNode.removeChild(this._rootElement);this._rootElement=null;}this._rootNodes=[];this._objectNodes={};this._nodeNodes={};this._validate();if(this.valid||this._hierarchy!=="storeys"){this._createEnabledNodes();}else{this._createDisabledNodes();}}},{key:"_validate",value:function _validate(){this.errors=[];switch(this._hierarchy){case"storeys":this.valid=this._validateMetaModelForStoreysHierarchy();break;case"types":this.valid=this._rootNodes.length>0;break;case"containment":default:this.valid=this._rootNodes.length>0;break;}return this.valid;}},{key:"_validateMetaModelForStoreysHierarchy",value:function _validateMetaModelForStoreysHierarchy(){var level=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;var ctx=arguments.length>1?arguments[1]:undefined;var buildingNode=arguments.length>2?arguments[2]:undefined;// ctx = ctx || {
30715
30725
  // foundIFCBuildingStoreys: false
@@ -30738,9 +30748,9 @@ _this164._sortNodes=cfg.sortNodes;_this164._pruneEmptyNodes=cfg.pruneEmptyNodes;
30738
30748
  // // errors.push("Can't build storeys hierarchy: no IfcBuildingStoreys found");
30739
30749
  // }
30740
30750
  // }
30741
- return true;}},{key:"_createEnabledNodes",value:function _createEnabledNodes(){if(this._pruneEmptyNodes){this._findEmptyNodes();}switch(this._hierarchy){case"storeys":this._createStoreysNodes();if(this._rootNodes.length===0){this.error("Failed to build storeys hierarchy");}break;case"types":this._createTypesNodes();break;case"containment":default:this._createContainmentNodes();}if(this._sortNodes){this._doSortNodes();}this._synchNodesToEntities();this._createTrees();this.expandToDepth(this._autoExpandDepth);}},{key:"_createDisabledNodes",value:function _createDisabledNodes(){var rootNode=this._renderService.createRootNode();this._rootElement=rootNode;this._containerElement.appendChild(rootNode);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){var rootMetaObject=rootMetaObjects[objectId];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var childNode=this._renderService.createDisabledNodeElement(rootName);rootNode.appendChild(childNode);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){this._findEmptyNodes2(rootMetaObjects[objectId]);}}},{key:"_findEmptyNodes2",value:function _findEmptyNodes2(metaObject){var countEntities=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var viewer=this.viewer;var scene=viewer.scene;var children=metaObject.children;var objectId=metaObject.id;var entity=scene.objects[objectId];metaObject._countEntities=0;if(entity){metaObject._countEntities++;}if(children){for(var _i608=0,len=children.length;_i608<len;_i608++){var childMetaObject=children[_i608];childMetaObject._countEntities=this._findEmptyNodes2(childMetaObject);metaObject._countEntities+=childMetaObject._countEntities;}}return metaObject._countEntities;}},{key:"_createStoreysNodes",value:function _createStoreysNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createStoreysNodes2(rootMetaObjects[id],null,null,null,null);}}},{key:"_createStoreysNodes2",value:function _createStoreysNodes2(metaObject,projectNode,buildingNode,storeyNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(this._showProjectNode&&metaObjectType==='IfcProject'){projectNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(projectNode);this._objectNodes[projectNode.objectId]=projectNode;this._nodeNodes[projectNode.nodeId]=projectNode;}else if(metaObjectType==="IfcBuilding"){buildingNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:projectNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};if(projectNode){projectNode.children.push(buildingNode);}else{this._rootNodes.push(buildingNode);}this._objectNodes[buildingNode.objectId]=buildingNode;this._nodeNodes[buildingNode.nodeId]=buildingNode;}else if(metaObjectType==="IfcBuildingStorey"){if(!buildingNode){this.error("Failed to build storeys hierarchy for model - model does not have an IfcBuilding object, or is not an IFC model");return;}storeyNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:buildingNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};buildingNode.children.push(storeyNode);this._objectNodes[storeyNode.objectId]=storeyNode;this._nodeNodes[storeyNode.nodeId]=storeyNode;typeNodes={};}else{if(storeyNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){typeNodes=typeNodes||{};var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(storeyNode.objectId,"-").concat(metaObjectType),objectId:"".concat(storeyNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:storeyNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};storeyNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(node);this._objectNodes[node.objectId]=node;this._nodeNodes[node.nodeId]=node;}}}if(children){for(var _i609=0,len=children.length;_i609<len;_i609++){var childMetaObject=children[_i609];this._createStoreysNodes2(childMetaObject,projectNode,buildingNode,storeyNode,typeNodes);}}}},{key:"_createTypesNodes",value:function _createTypesNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createTypesNodes2(rootMetaObjects[id],null,null);}}},{key:"_createTypesNodes2",value:function _createTypesNodes2(metaObject,rootNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(!metaObject.parent){rootNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(rootNode);this._objectNodes[rootNode.objectId]=rootNode;this._nodeNodes[rootNode.nodeId]=rootNode;typeNodes={};}else{if(rootNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(rootNode.objectId,"-").concat(metaObjectType),objectId:"".concat(rootNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:rootNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};rootNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(node);this._objectNodes[node.objectId]=node;this._nodeNodes[node.nodeId]=node;}}}if(children){for(var _i610=0,len=children.length;_i610<len;_i610++){var childMetaObject=children[_i610];this._createTypesNodes2(childMetaObject,rootNode,typeNodes);}}}},{key:"_createContainmentNodes",value:function _createContainmentNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createContainmentNodes2(rootMetaObjects[id],null);}}},{key:"_createContainmentNodes2",value:function _createContainmentNodes2(metaObject,parent){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name||metaObjectType;var children=metaObject.children;var objectId=metaObject.id;var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:!parent?metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||metaObjectName:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:parent,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};if(parent){parent.children.push(node);}else{this._rootNodes.push(node);}this._objectNodes[node.objectId]=node;this._nodeNodes[node.nodeId]=node;if(children){for(var _i611=0,len=children.length;_i611<len;_i611++){var childMetaObject=children[_i611];this._createContainmentNodes2(childMetaObject,node);}}}},{key:"_doSortNodes",value:function _doSortNodes(){for(var _i612=0,len=this._rootNodes.length;_i612<len;_i612++){var rootNode=this._rootNodes[_i612];this._sortChildren(rootNode);}}},{key:"_sortChildren",value:function _sortChildren(node){var children=node.children;if(!children||children.length===0){return;}var firstChild=children[0];if((this._hierarchy==="storeys"||this._hierarchy==="containment")&&firstChild.type==="IfcBuildingStorey"){if(this._elevationSortFunction)children.sort(this._elevationSortFunction);else children.sort(this._getSpatialSortFunc());}else{if(this._defaultSortFunction)children.sort(this._defaultSortFunction);else children.sort(this._alphaSortFunc);}for(var _i613=0,len=children.length;_i613<len;_i613++){var _node2=children[_i613];this._sortChildren(_node2);}}},{key:"_getSpatialSortFunc",value:function _getSpatialSortFunc(){var _this167=this;var viewer=this.viewer;var scene=viewer.scene;var camera=scene.camera;return this._spatialSortFunc||(this._spatialSortFunc=function(storey1,storey2){if(camera.xUp);else if(camera.yUp);else;var metaScene=_this167.viewer.metaScene;var storey1MetaObject=metaScene.metaObjects[storey1.objectId];var storey2MetaObject=metaScene.metaObjects[storey2.objectId];if(storey1MetaObject&&storey1MetaObject.attributes&&storey1MetaObject.attributes.elevation!==undefined&&storey2MetaObject&&storey2MetaObject.attributes&&storey2MetaObject.attributes.elevation!==undefined){var elevation1=Number.parseFloat(storey1MetaObject.attributes.elevation);var elevation2=Number.parseFloat(storey2MetaObject.attributes.elevation);if(elevation1>elevation2){return-1;}if(elevation1<elevation2){return 1;}return 0;}else{return 0;}});}},{key:"_alphaSortFunc",value:function _alphaSortFunc(node1,node2){var title1=node1.title.toUpperCase();// FIXME: Should be case sensitive?
30742
- var title2=node2.title.toUpperCase();if(title1<title2){return-1;}if(title1>title2){return 1;}return 0;}},{key:"_synchNodesToEntities",value:function _synchNodesToEntities(){var objectIds=Object.keys(this.viewer.metaScene.metaObjects);var metaObjects=this._viewer.metaScene.metaObjects;var objects=this._viewer.scene.objects;for(var _i614=0,len=objectIds.length;_i614<len;_i614++){var objectId=objectIds[_i614];var metaObject=metaObjects[objectId];if(metaObject){var node=this._objectNodes[objectId];if(node){var entity=objects[objectId];if(entity){var visible=entity.visible;node.numEntities=1;node.xrayed=entity.xrayed;if(visible){node.numVisibleEntities=1;node.checked=true;}else{node.numVisibleEntities=0;node.checked=false;}var parent=node.parent;// Synch parents
30743
- while(parent){parent.numEntities++;if(visible){parent.numVisibleEntities++;parent.checked=true;}parent=parent.parent;}}}}}}},{key:"_withNodeTree",value:function _withNodeTree(node,callback){callback(node);var children=node.children;if(!children){return;}for(var _i615=0,len=children.length;_i615<len;_i615++){this._withNodeTree(children[_i615],callback);}}},{key:"_createTrees",value:function _createTrees(){var _this168=this;if(this._rootNodes.length===0){return;}var rootNodeElements=this._rootNodes.map(function(rootNode){return _this168._createNodeElement(rootNode);});var rootNode=this._renderService.createRootNode();rootNodeElements.forEach(function(nodeElement){rootNode.appendChild(nodeElement);});this._containerElement.appendChild(rootNode);this._rootElement=rootNode;}},{key:"_createNodeElement",value:function _createNodeElement(node){var _this169=this;var contextmenuHandler=function contextmenuHandler(event){_this169.fire("contextmenu",{event:event,viewer:_this169._viewer,treeViewPlugin:_this169,treeViewNode:node});event.preventDefault();};var onclickHandler=function onclickHandler(event){_this169.fire("nodeTitleClicked",{event:event,viewer:_this169._viewer,treeViewPlugin:_this169,treeViewNode:node});event.preventDefault();};return this._renderService.createNodeElement(node,this._switchExpandHandler,this._checkboxChangeHandler,contextmenuHandler,onclickHandler);}},{key:"_expandSwitchElement",value:function _expandSwitchElement(switchElement){var _this170=this;var expanded=this._renderService.isExpanded(switchElement);if(expanded){return;}var nodeId=this._renderService.getId(switchElement);var nodeElements=this._nodeNodes[nodeId].children.map(function(node){return _this170._createNodeElement(node);});this._renderService.addChildren(switchElement,nodeElements);this._renderService.expand(switchElement,this._switchExpandHandler,this._switchCollapseHandler);}},{key:"_collapseNode",value:function _collapseNode(nodeId){var switchElement=this._renderService.getSwitchElement(nodeId);this._collapseSwitchElement(switchElement);}},{key:"_collapseSwitchElement",value:function _collapseSwitchElement(switchElement){this._renderService.collapse(switchElement,this._switchExpandHandler,this._switchCollapseHandler);}}]);return TreeViewPlugin;}(Plugin);/**
30751
+ return true;}},{key:"_createEnabledNodes",value:function _createEnabledNodes(){if(this._pruneEmptyNodes){this._findEmptyNodes();}switch(this._hierarchy){case"storeys":this._createStoreysNodes();if(this._rootNodes.length===0){this.error("Failed to build storeys hierarchy");}break;case"types":this._createTypesNodes();break;case"containment":default:this._createContainmentNodes();}if(this._sortNodes){this._doSortNodes();}this._synchNodesToEntities();this._createTrees();this.expandToDepth(this._autoExpandDepth);}},{key:"_createDisabledNodes",value:function _createDisabledNodes(){var rootNode=this._renderService.createRootNode();this._rootElement=rootNode;this._containerElement.appendChild(rootNode);var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){var rootMetaObject=rootMetaObjects[objectId];var metaObjectType=rootMetaObject.type;var metaObjectName=rootMetaObject.name;var rootName=metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType;var childNode=this._renderService.createDisabledNodeElement(rootName);rootNode.appendChild(childNode);}}},{key:"_findEmptyNodes",value:function _findEmptyNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var objectId in rootMetaObjects){this._findEmptyNodes2(rootMetaObjects[objectId]);}}},{key:"_findEmptyNodes2",value:function _findEmptyNodes2(metaObject){var countEntities=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var viewer=this.viewer;var scene=viewer.scene;var children=metaObject.children;var objectId=metaObject.id;var entity=scene.objects[objectId];metaObject._countEntities=0;if(entity){metaObject._countEntities++;}if(children){for(var _i607=0,len=children.length;_i607<len;_i607++){var childMetaObject=children[_i607];childMetaObject._countEntities=this._findEmptyNodes2(childMetaObject);metaObject._countEntities+=childMetaObject._countEntities;}}return metaObject._countEntities;}},{key:"_createStoreysNodes",value:function _createStoreysNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createStoreysNodes2(rootMetaObjects[id],null,null,null,null);}}},{key:"_createStoreysNodes2",value:function _createStoreysNodes2(metaObject,projectNode,buildingNode,storeyNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(this._showProjectNode&&metaObjectType==='IfcProject'){projectNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(projectNode);this._objectNodes[projectNode.objectId]=projectNode;this._nodeNodes[projectNode.nodeId]=projectNode;}else if(metaObjectType==="IfcBuilding"){buildingNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:projectNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};if(projectNode){projectNode.children.push(buildingNode);}else{this._rootNodes.push(buildingNode);}this._objectNodes[buildingNode.objectId]=buildingNode;this._nodeNodes[buildingNode.nodeId]=buildingNode;}else if(metaObjectType==="IfcBuildingStorey"){if(!buildingNode){this.error("Failed to build storeys hierarchy for model - model does not have an IfcBuilding object, or is not an IFC model");return;}storeyNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:buildingNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};buildingNode.children.push(storeyNode);this._objectNodes[storeyNode.objectId]=storeyNode;this._nodeNodes[storeyNode.nodeId]=storeyNode;typeNodes={};}else{if(storeyNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){typeNodes=typeNodes||{};var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(storeyNode.objectId,"-").concat(metaObjectType),objectId:"".concat(storeyNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:storeyNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};storeyNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(node);this._objectNodes[node.objectId]=node;this._nodeNodes[node.nodeId]=node;}}}if(children){for(var _i608=0,len=children.length;_i608<len;_i608++){var childMetaObject=children[_i608];this._createStoreysNodes2(childMetaObject,projectNode,buildingNode,storeyNode,typeNodes);}}}},{key:"_createTypesNodes",value:function _createTypesNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createTypesNodes2(rootMetaObjects[id],null,null);}}},{key:"_createTypesNodes2",value:function _createTypesNodes2(metaObject,rootNode,typeNodes){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name;var children=metaObject.children;var objectId=metaObject.id;if(!metaObject.parent){rootNode={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||(metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType),type:metaObjectType,parent:null,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};this._rootNodes.push(rootNode);this._objectNodes[rootNode.objectId]=rootNode;this._nodeNodes[rootNode.nodeId]=rootNode;typeNodes={};}else{if(rootNode){var objects=this._viewer.scene.objects;var object=objects[objectId];if(object){var typeNode=typeNodes[metaObjectType];if(!typeNode){typeNode={nodeId:"".concat(this._id,"-").concat(rootNode.objectId,"-").concat(metaObjectType),objectId:"".concat(rootNode.objectId,"-").concat(metaObjectType),title:metaObjectType,type:metaObjectType,parent:rootNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};rootNode.children.push(typeNode);this._objectNodes[typeNode.objectId]=typeNode;this._nodeNodes[typeNode.nodeId]=typeNode;typeNodes[metaObjectType]=typeNode;}var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:typeNode,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};typeNode.children.push(node);this._objectNodes[node.objectId]=node;this._nodeNodes[node.nodeId]=node;}}}if(children){for(var _i609=0,len=children.length;_i609<len;_i609++){var childMetaObject=children[_i609];this._createTypesNodes2(childMetaObject,rootNode,typeNodes);}}}},{key:"_createContainmentNodes",value:function _createContainmentNodes(){var rootMetaObjects=this._viewer.metaScene.rootMetaObjects;for(var id in rootMetaObjects){this._createContainmentNodes2(rootMetaObjects[id],null);}}},{key:"_createContainmentNodes2",value:function _createContainmentNodes2(metaObject,parent){if(this._pruneEmptyNodes&&metaObject._countEntities===0){return;}var metaObjectType=metaObject.type;var metaObjectName=metaObject.name||metaObjectType;var children=metaObject.children;var objectId=metaObject.id;var node={nodeId:"".concat(this._id,"-").concat(objectId),objectId:objectId,title:!parent?metaObject.metaModels.length===0?metaObjectName:this._rootNames[metaObject.metaModels[0].id]||metaObjectName:metaObjectName&&metaObjectName!==""&&metaObjectName!=="Undefined"&&metaObjectName!=="Default"?metaObjectName:metaObjectType,type:metaObjectType,parent:parent,numEntities:0,numVisibleEntities:0,checked:false,xrayed:false,children:[]};if(parent){parent.children.push(node);}else{this._rootNodes.push(node);}this._objectNodes[node.objectId]=node;this._nodeNodes[node.nodeId]=node;if(children){for(var _i610=0,len=children.length;_i610<len;_i610++){var childMetaObject=children[_i610];this._createContainmentNodes2(childMetaObject,node);}}}},{key:"_doSortNodes",value:function _doSortNodes(){for(var _i611=0,len=this._rootNodes.length;_i611<len;_i611++){var rootNode=this._rootNodes[_i611];this._sortChildren(rootNode);}}},{key:"_sortChildren",value:function _sortChildren(node){var children=node.children;if(!children||children.length===0){return;}var firstChild=children[0];if((this._hierarchy==="storeys"||this._hierarchy==="containment")&&firstChild.type==="IfcBuildingStorey"){if(this._elevationSortFunction)children.sort(this._elevationSortFunction);else children.sort(this._getSpatialSortFunc());}else{if(this._defaultSortFunction)children.sort(this._defaultSortFunction);else children.sort(this._alphaSortFunc);}for(var _i612=0,len=children.length;_i612<len;_i612++){var _node2=children[_i612];this._sortChildren(_node2);}}},{key:"_getSpatialSortFunc",value:function _getSpatialSortFunc(){var _this167=this;var viewer=this.viewer;var scene=viewer.scene;var camera=scene.camera;return this._spatialSortFunc||(this._spatialSortFunc=function(storey1,storey2){if(camera.xUp);else if(camera.yUp);else;var metaScene=_this167.viewer.metaScene;var storey1MetaObject=metaScene.metaObjects[storey1.objectId];var storey2MetaObject=metaScene.metaObjects[storey2.objectId];if(storey1MetaObject&&storey1MetaObject.attributes&&storey1MetaObject.attributes.elevation!==undefined&&storey2MetaObject&&storey2MetaObject.attributes&&storey2MetaObject.attributes.elevation!==undefined){var elevation1=Number.parseFloat(storey1MetaObject.attributes.elevation);var elevation2=Number.parseFloat(storey2MetaObject.attributes.elevation);if(elevation1>elevation2){return-1;}if(elevation1<elevation2){return 1;}return 0;}else{return 0;}});}},{key:"_alphaSortFunc",value:function _alphaSortFunc(node1,node2){var title1=node1.title.toUpperCase();// FIXME: Should be case sensitive?
30752
+ var title2=node2.title.toUpperCase();if(title1<title2){return-1;}if(title1>title2){return 1;}return 0;}},{key:"_synchNodesToEntities",value:function _synchNodesToEntities(){var objectIds=Object.keys(this.viewer.metaScene.metaObjects);var metaObjects=this._viewer.metaScene.metaObjects;var objects=this._viewer.scene.objects;for(var _i613=0,len=objectIds.length;_i613<len;_i613++){var objectId=objectIds[_i613];var metaObject=metaObjects[objectId];if(metaObject){var node=this._objectNodes[objectId];if(node){var entity=objects[objectId];if(entity){var visible=entity.visible;node.numEntities=1;node.xrayed=entity.xrayed;if(visible){node.numVisibleEntities=1;node.checked=true;}else{node.numVisibleEntities=0;node.checked=false;}var parent=node.parent;// Synch parents
30753
+ while(parent){parent.numEntities++;if(visible){parent.numVisibleEntities++;parent.checked=true;}parent=parent.parent;}}}}}}},{key:"_withNodeTree",value:function _withNodeTree(node,callback){callback(node);var children=node.children;if(!children){return;}for(var _i614=0,len=children.length;_i614<len;_i614++){this._withNodeTree(children[_i614],callback);}}},{key:"_createTrees",value:function _createTrees(){var _this168=this;if(this._rootNodes.length===0){return;}var rootNodeElements=this._rootNodes.map(function(rootNode){return _this168._createNodeElement(rootNode);});var rootNode=this._renderService.createRootNode();rootNodeElements.forEach(function(nodeElement){rootNode.appendChild(nodeElement);});this._containerElement.appendChild(rootNode);this._rootElement=rootNode;}},{key:"_createNodeElement",value:function _createNodeElement(node){var _this169=this;var contextmenuHandler=function contextmenuHandler(event){_this169.fire("contextmenu",{event:event,viewer:_this169._viewer,treeViewPlugin:_this169,treeViewNode:node});event.preventDefault();};var onclickHandler=function onclickHandler(event){_this169.fire("nodeTitleClicked",{event:event,viewer:_this169._viewer,treeViewPlugin:_this169,treeViewNode:node});event.preventDefault();};return this._renderService.createNodeElement(node,this._switchExpandHandler,this._checkboxChangeHandler,contextmenuHandler,onclickHandler);}},{key:"_expandSwitchElement",value:function _expandSwitchElement(switchElement){var _this170=this;var expanded=this._renderService.isExpanded(switchElement);if(expanded){return;}var nodeId=this._renderService.getId(switchElement);var nodeElements=this._nodeNodes[nodeId].children.map(function(node){return _this170._createNodeElement(node);});this._renderService.addChildren(switchElement,nodeElements);this._renderService.expand(switchElement,this._switchExpandHandler,this._switchCollapseHandler);}},{key:"_collapseNode",value:function _collapseNode(nodeId){var switchElement=this._renderService.getSwitchElement(nodeId);this._collapseSwitchElement(switchElement);}},{key:"_collapseSwitchElement",value:function _collapseSwitchElement(switchElement){this._renderService.collapse(switchElement,this._switchExpandHandler,this._switchCollapseHandler);}}]);return TreeViewPlugin;}(Plugin);/**
30744
30754
  * For each Entity in its Scene, efficiently combines updates from multiple culling systems into a single "culled" state.
30745
30755
  *
30746
30756
  * Two culling systems are supported:
@@ -30757,7 +30767,7 @@ this._objectsViewCulled=[];// A flag for each object to indicate its view-cull s
30757
30767
  this._objectsDetailCulled=[];// A flag for each object to indicate its detail-cull status
30758
30768
  this._objectsChanged=[];// A flag for each object, set whenever its cull status has changed since last _applyChanges()
30759
30769
  this._objectsChangedList=[];// A list of objects whose cull status has changed, applied and cleared by _applyChanges()
30760
- this._modelInfos={};this._numObjects=0;this._lenObjectsChangedList=0;this._dirty=true;this._onModelLoaded=scene.on("modelLoaded",function(modelId){var model=scene.models[modelId];if(model){_this171._addModel(model);}});this._onTick=scene.on("tick",function(){if(_this171._dirty){_this171._build();}_this171._applyChanges();});}_createClass(ObjectCullStates,[{key:"_addModel",value:function _addModel(model){var _this172=this;var modelInfo={model:model,onDestroyed:model.on("destroyed",function(){_this172._removeModel(model);})};this._modelInfos[model.id]=modelInfo;this._dirty=true;}},{key:"_removeModel",value:function _removeModel(model){var modelInfo=this._modelInfos[model.id];if(modelInfo){modelInfo.model.off(modelInfo.onDestroyed);delete this._modelInfos[model.id];this._dirty=true;}}},{key:"_build",value:function _build(){if(!this._dirty){return;}this._applyChanges();var objects=this._scene.objects;for(var _i616=0;_i616<this._numObjects;_i616++){this._objects[_i616]=null;}this._numObjects=0;for(var objectId in objects){var entity=objects[objectId];this._objects[this._numObjects++]=entity;}this._lenObjectsChangedList=0;this._dirty=false;}},{key:"_applyChanges",value:function _applyChanges(){if(this._lenObjectsChangedList>0){for(var _i617=0;_i617<this._lenObjectsChangedList;_i617++){var objectIdx=this._objectsChangedList[_i617];var object=this._objects[objectIdx];var viewCulled=this._objectsViewCulled[objectIdx];var detailCulled=this._objectsDetailCulled[objectIdx];var culled=viewCulled||detailCulled;object.culled=culled;this._objectsChanged[objectIdx]=false;}this._lenObjectsChangedList=0;}}/**
30770
+ this._modelInfos={};this._numObjects=0;this._lenObjectsChangedList=0;this._dirty=true;this._onModelLoaded=scene.on("modelLoaded",function(modelId){var model=scene.models[modelId];if(model){_this171._addModel(model);}});this._onTick=scene.on("tick",function(){if(_this171._dirty){_this171._build();}_this171._applyChanges();});}_createClass(ObjectCullStates,[{key:"_addModel",value:function _addModel(model){var _this172=this;var modelInfo={model:model,onDestroyed:model.on("destroyed",function(){_this172._removeModel(model);})};this._modelInfos[model.id]=modelInfo;this._dirty=true;}},{key:"_removeModel",value:function _removeModel(model){var modelInfo=this._modelInfos[model.id];if(modelInfo){modelInfo.model.off(modelInfo.onDestroyed);delete this._modelInfos[model.id];this._dirty=true;}}},{key:"_build",value:function _build(){if(!this._dirty){return;}this._applyChanges();var objects=this._scene.objects;for(var _i615=0;_i615<this._numObjects;_i615++){this._objects[_i615]=null;}this._numObjects=0;for(var objectId in objects){var entity=objects[objectId];this._objects[this._numObjects++]=entity;}this._lenObjectsChangedList=0;this._dirty=false;}},{key:"_applyChanges",value:function _applyChanges(){if(this._lenObjectsChangedList>0){for(var _i616=0;_i616<this._lenObjectsChangedList;_i616++){var objectIdx=this._objectsChangedList[_i616];var object=this._objects[objectIdx];var viewCulled=this._objectsViewCulled[objectIdx];var detailCulled=this._objectsDetailCulled[objectIdx];var culled=viewCulled||detailCulled;object.culled=culled;this._objectsChanged[objectIdx]=false;}this._lenObjectsChangedList=0;}}/**
30761
30771
  * Array of {@link Entity} instances that represent objects in the {@link Scene}.
30762
30772
  *
30763
30773
  * ObjectCullStates rebuilds this from {@link Scene#objects} whenever ````Scene```` fires a ````modelLoaded```` event.
@@ -30833,7 +30843,7 @@ _this173._maxTreeDepth=cfg.maxTreeDepth||MAX_KD_TREE_DEPTH;_this173._modelInfos=
30833
30843
  * Gets whether view culling is enabled.
30834
30844
  *
30835
30845
  * @retutns {Boolean} Whether view culling is enabled.
30836
- */function get(){return this._enabled;},set:function set(enabled){this._enabled=enabled;}},{key:"_addModel",value:function _addModel(model){var _this174=this;var modelInfo={model:model,onDestroyed:model.on("destroyed",function(){_this174._removeModel(model);})};this._modelInfos[model.id]=modelInfo;this._kdTreeDirty=true;}},{key:"_removeModel",value:function _removeModel(model){var modelInfo=this._modelInfos[model.id];if(modelInfo){modelInfo.model.off(modelInfo.onDestroyed);delete this._modelInfos[model.id];this._kdTreeDirty=true;}}},{key:"_doCull",value:function _doCull(){var cullDirty=this._frustumDirty||this._kdTreeDirty;if(this._frustumDirty){this._buildFrustum();}if(this._kdTreeDirty){this._buildKDTree();}if(cullDirty){var kdNode=this._kdRoot;if(kdNode){this._visitKDNode(kdNode);}}}},{key:"_buildFrustum",value:function _buildFrustum(){var camera=this.viewer.scene.camera;setFrustum(this._frustum,camera.viewMatrix,camera.projMatrix);this._frustumDirty=false;}},{key:"_buildKDTree",value:function _buildKDTree(){var viewer=this.viewer;var scene=viewer.scene;var depth=0;if(this._kdRoot);this._kdRoot={aabb:scene.getAABB(),intersection:Frustum$1.INTERSECT};for(var objectIdx=0,len=this._objectCullStates.numObjects;objectIdx<len;objectIdx++){var entity=this._objectCullStates.objects[objectIdx];this._insertEntityIntoKDTree(this._kdRoot,entity,objectIdx,depth+1);}this._kdTreeDirty=false;}},{key:"_insertEntityIntoKDTree",value:function _insertEntityIntoKDTree(kdNode,entity,objectIdx,depth){var entityAABB=entity.aabb;if(depth>=this._maxTreeDepth){kdNode.objects=kdNode.objects||[];kdNode.objects.push(objectIdx);math.expandAABB3(kdNode.aabb,entityAABB);return;}if(kdNode.left){if(math.containsAABB3(kdNode.left.aabb,entityAABB)){this._insertEntityIntoKDTree(kdNode.left,entity,objectIdx,depth+1);return;}}if(kdNode.right){if(math.containsAABB3(kdNode.right.aabb,entityAABB)){this._insertEntityIntoKDTree(kdNode.right,entity,objectIdx,depth+1);return;}}var nodeAABB=kdNode.aabb;kdTreeDimLength[0]=nodeAABB[3]-nodeAABB[0];kdTreeDimLength[1]=nodeAABB[4]-nodeAABB[1];kdTreeDimLength[2]=nodeAABB[5]-nodeAABB[2];var dim=0;if(kdTreeDimLength[1]>kdTreeDimLength[dim]){dim=1;}if(kdTreeDimLength[2]>kdTreeDimLength[dim]){dim=2;}if(!kdNode.left){var aabbLeft=nodeAABB.slice();aabbLeft[dim+3]=(nodeAABB[dim]+nodeAABB[dim+3])/2.0;kdNode.left={aabb:aabbLeft,intersection:Frustum$1.INTERSECT};if(math.containsAABB3(aabbLeft,entityAABB)){this._insertEntityIntoKDTree(kdNode.left,entity,objectIdx,depth+1);return;}}if(!kdNode.right){var aabbRight=nodeAABB.slice();aabbRight[dim]=(nodeAABB[dim]+nodeAABB[dim+3])/2.0;kdNode.right={aabb:aabbRight,intersection:Frustum$1.INTERSECT};if(math.containsAABB3(aabbRight,entityAABB)){this._insertEntityIntoKDTree(kdNode.right,entity,objectIdx,depth+1);return;}}kdNode.objects=kdNode.objects||[];kdNode.objects.push(objectIdx);math.expandAABB3(kdNode.aabb,entityAABB);}},{key:"_visitKDNode",value:function _visitKDNode(kdNode){var intersects=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Frustum$1.INTERSECT;if(intersects!==Frustum$1.INTERSECT&&kdNode.intersects===intersects){return;}if(intersects===Frustum$1.INTERSECT){intersects=frustumIntersectsAABB3(this._frustum,kdNode.aabb);kdNode.intersects=intersects;}var culled=intersects===Frustum$1.OUTSIDE;var objects=kdNode.objects;if(objects&&objects.length>0){for(var _i618=0,len=objects.length;_i618<len;_i618++){var objectIdx=objects[_i618];this._objectCullStates.setObjectViewCulled(objectIdx,culled);}}if(kdNode.left){this._visitKDNode(kdNode.left,intersects);}if(kdNode.right){this._visitKDNode(kdNode.right,intersects);}}/**
30846
+ */function get(){return this._enabled;},set:function set(enabled){this._enabled=enabled;}},{key:"_addModel",value:function _addModel(model){var _this174=this;var modelInfo={model:model,onDestroyed:model.on("destroyed",function(){_this174._removeModel(model);})};this._modelInfos[model.id]=modelInfo;this._kdTreeDirty=true;}},{key:"_removeModel",value:function _removeModel(model){var modelInfo=this._modelInfos[model.id];if(modelInfo){modelInfo.model.off(modelInfo.onDestroyed);delete this._modelInfos[model.id];this._kdTreeDirty=true;}}},{key:"_doCull",value:function _doCull(){var cullDirty=this._frustumDirty||this._kdTreeDirty;if(this._frustumDirty){this._buildFrustum();}if(this._kdTreeDirty){this._buildKDTree();}if(cullDirty){var kdNode=this._kdRoot;if(kdNode){this._visitKDNode(kdNode);}}}},{key:"_buildFrustum",value:function _buildFrustum(){var camera=this.viewer.scene.camera;setFrustum(this._frustum,camera.viewMatrix,camera.projMatrix);this._frustumDirty=false;}},{key:"_buildKDTree",value:function _buildKDTree(){var viewer=this.viewer;var scene=viewer.scene;var depth=0;if(this._kdRoot);this._kdRoot={aabb:scene.getAABB(),intersection:Frustum$1.INTERSECT};for(var objectIdx=0,len=this._objectCullStates.numObjects;objectIdx<len;objectIdx++){var entity=this._objectCullStates.objects[objectIdx];this._insertEntityIntoKDTree(this._kdRoot,entity,objectIdx,depth+1);}this._kdTreeDirty=false;}},{key:"_insertEntityIntoKDTree",value:function _insertEntityIntoKDTree(kdNode,entity,objectIdx,depth){var entityAABB=entity.aabb;if(depth>=this._maxTreeDepth){kdNode.objects=kdNode.objects||[];kdNode.objects.push(objectIdx);math.expandAABB3(kdNode.aabb,entityAABB);return;}if(kdNode.left){if(math.containsAABB3(kdNode.left.aabb,entityAABB)){this._insertEntityIntoKDTree(kdNode.left,entity,objectIdx,depth+1);return;}}if(kdNode.right){if(math.containsAABB3(kdNode.right.aabb,entityAABB)){this._insertEntityIntoKDTree(kdNode.right,entity,objectIdx,depth+1);return;}}var nodeAABB=kdNode.aabb;kdTreeDimLength[0]=nodeAABB[3]-nodeAABB[0];kdTreeDimLength[1]=nodeAABB[4]-nodeAABB[1];kdTreeDimLength[2]=nodeAABB[5]-nodeAABB[2];var dim=0;if(kdTreeDimLength[1]>kdTreeDimLength[dim]){dim=1;}if(kdTreeDimLength[2]>kdTreeDimLength[dim]){dim=2;}if(!kdNode.left){var aabbLeft=nodeAABB.slice();aabbLeft[dim+3]=(nodeAABB[dim]+nodeAABB[dim+3])/2.0;kdNode.left={aabb:aabbLeft,intersection:Frustum$1.INTERSECT};if(math.containsAABB3(aabbLeft,entityAABB)){this._insertEntityIntoKDTree(kdNode.left,entity,objectIdx,depth+1);return;}}if(!kdNode.right){var aabbRight=nodeAABB.slice();aabbRight[dim]=(nodeAABB[dim]+nodeAABB[dim+3])/2.0;kdNode.right={aabb:aabbRight,intersection:Frustum$1.INTERSECT};if(math.containsAABB3(aabbRight,entityAABB)){this._insertEntityIntoKDTree(kdNode.right,entity,objectIdx,depth+1);return;}}kdNode.objects=kdNode.objects||[];kdNode.objects.push(objectIdx);math.expandAABB3(kdNode.aabb,entityAABB);}},{key:"_visitKDNode",value:function _visitKDNode(kdNode){var intersects=arguments.length>1&&arguments[1]!==undefined?arguments[1]:Frustum$1.INTERSECT;if(intersects!==Frustum$1.INTERSECT&&kdNode.intersects===intersects){return;}if(intersects===Frustum$1.INTERSECT){intersects=frustumIntersectsAABB3(this._frustum,kdNode.aabb);kdNode.intersects=intersects;}var culled=intersects===Frustum$1.OUTSIDE;var objects=kdNode.objects;if(objects&&objects.length>0){for(var _i617=0,len=objects.length;_i617<len;_i617++){var objectIdx=objects[_i617];this._objectCullStates.setObjectViewCulled(objectIdx,culled);}}if(kdNode.left){this._visitKDNode(kdNode.left,intersects);}if(kdNode.right){this._visitKDNode(kdNode.right,intersects);}}/**
30837
30847
  * @private
30838
30848
  */},{key:"send",value:function send(name,value){}/**
30839
30849
  * Destroys this ViewCullPlugin.
@@ -30858,7 +30868,7 @@ _this173._maxTreeDepth=cfg.maxTreeDepth||MAX_KD_TREE_DEPTH;_this173._modelInfos=
30858
30868
  * @param {Function} ok Callback fired on success, argument is the ````.xkt```` file in an arraybuffer.
30859
30869
  * @param {Function} error Callback fired on error.
30860
30870
  */},{key:"getXKT",value:function getXKT(src,ok,error){var defaultCallback=function defaultCallback(){};ok=ok||defaultCallback;error=error||defaultCallback;var dataUriRegex=/^data:(.*?)(;base64)?,(.*)$/;var dataUriRegexResult=src.match(dataUriRegex);if(dataUriRegexResult){// Safari can't handle data URIs through XMLHttpRequest
30861
- var isBase64=!!dataUriRegexResult[2];var data=dataUriRegexResult[3];data=window.decodeURIComponent(data);if(isBase64){data=window.atob(data);}try{var buffer=new ArrayBuffer(data.length);var view=new Uint8Array(buffer);for(var i=0;i<data.length;i++){view[i]=data.charCodeAt(i);}ok(buffer);}catch(errMsg){error(errMsg);}}else{var request=new XMLHttpRequest();request.open('GET',this._cacheBusterURL(src),true);request.responseType='arraybuffer';request.onreadystatechange=function(){if(request.readyState===4){if(request.status===200){ok(request.response);}else{error('getXKT error : '+request.response);}}};request.send(null);}}}]);return XKTDefaultDataSource;}();/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */!function(t,e){"object"==(typeof exports==="undefined"?"undefined":_typeof(exports))&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pako={});}(undefined,function(t){function e(t){var e=t.length;for(;--e>=0;){t[e]=0;}}var a=256,i=286,n=30,s=15,r=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),o=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),l=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);var _=new Array(60);e(_);var f=new Array(512);e(f);var c=new Array(256);e(c);var u=new Array(29);e(u);var w=new Array(n);function m(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length;}var b,g,p;function k(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e;}e(w);var v=function v(t){return t<256?f[t]:f[256+(t>>>7)];},y=function y(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255;},x=function x(t,e,a){t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,y(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a);},z=function z(t,e,a){x(t,a[2*e],a[2*e+1]);},A=function A(t,e){var a=0;do{a|=1&t,t>>>=1,a<<=1;}while(--e>0);return a>>>1;},E=function E(t,e,a){var i=new Array(16);var n,r,o=0;for(n=1;n<=s;n++){o=o+a[n-1]<<1,i[n]=o;}for(r=0;r<=e;r++){var _e3=t[2*r+1];0!==_e3&&(t[2*r]=A(i[_e3]++,_e3));}},R=function R(t){var e;for(e=0;e<i;e++){t.dyn_ltree[2*e]=0;}for(e=0;e<n;e++){t.dyn_dtree[2*e]=0;}for(e=0;e<19;e++){t.bl_tree[2*e]=0;}t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0;},Z=function Z(t){t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0;},U=function U(t,e,a,i){var n=2*e,s=2*a;return t[n]<t[s]||t[n]===t[s]&&i[e]<=i[a];},S=function S(t,e,a){var i=t.heap[a];var n=a<<1;for(;n<=t.heap_len&&(n<t.heap_len&&U(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!U(e,i,t.heap[n],t.depth));){t.heap[a]=t.heap[n],a=n,n<<=1;}t.heap[a]=i;},D=function D(t,e,i){var n,s,l,h,d=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+d++],n+=(255&t.pending_buf[t.sym_buf+d++])<<8,s=t.pending_buf[t.sym_buf+d++],0===n?z(t,s,e):(l=c[s],z(t,l+a+1,e),h=r[l],0!==h&&(s-=u[l],x(t,s,h)),n--,l=v(n),z(t,l,i),h=o[l],0!==h&&(n-=w[l],x(t,n,h)));}while(d<t.sym_next);z(t,256,e);},T=function T(t,e){var a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,r=e.stat_desc.elems;var o,l,h,d=-1;for(t.heap_len=0,t.heap_max=573,o=0;o<r;o++){0!==a[2*o]?(t.heap[++t.heap_len]=d=o,t.depth[o]=0):a[2*o+1]=0;}for(;t.heap_len<2;){h=t.heap[++t.heap_len]=d<2?++d:0,a[2*h]=1,t.depth[h]=0,t.opt_len--,n&&(t.static_len-=i[2*h+1]);}for(e.max_code=d,o=t.heap_len>>1;o>=1;o--){S(t,a,o);}h=r;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],S(t,a,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,a[2*h]=a[2*o]+a[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,a[2*o+1]=a[2*l+1]=h,t.heap[1]=h++,S(t,a,1);}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;var d,_,f,c,u,w,m=0;for(c=0;c<=s;c++){t.bl_count[c]=0;}for(a[2*t.heap[t.heap_max]+1]=0,d=t.heap_max+1;d<573;d++){_=t.heap[d],c=a[2*a[2*_+1]+1]+1,c>h&&(c=h,m++),a[2*_+1]=c,_>i||(t.bl_count[c]++,u=0,_>=l&&(u=o[_-l]),w=a[2*_],t.opt_len+=w*(c+u),r&&(t.static_len+=w*(n[2*_+1]+u)));}if(0!==m){do{for(c=h-1;0===t.bl_count[c];){c--;}t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[h]--,m-=2;}while(m>0);for(c=h;0!==c;c--){for(_=t.bl_count[c];0!==_;){f=t.heap[--d],f>i||(a[2*f+1]!==c&&(t.opt_len+=(c-a[2*f+1])*a[2*f],a[2*f+1]=c),_--);}}}}(t,e),E(a,d,t.bl_count);},O=function O(t,e,a){var i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++){n=r,r=e[2*(i+1)+1],++o<l&&n===r||(o<h?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,s=n,0===r?(l=138,h=3):n===r?(l=6,h=3):(l=7,h=4));}},I=function I(t,e,a){var i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),i=0;i<=a;i++){if(n=r,r=e[2*(i+1)+1],!(++o<l&&n===r)){if(o<h)do{z(t,n,t.bl_tree);}while(0!=--o);else 0!==n?(n!==s&&(z(t,n,t.bl_tree),o--),z(t,16,t.bl_tree),x(t,o-3,2)):o<=10?(z(t,17,t.bl_tree),x(t,o-3,3)):(z(t,18,t.bl_tree),x(t,o-11,7));o=0,s=n,0===r?(l=138,h=3):n===r?(l=6,h=3):(l=7,h=4);}}};var F=!1;var L=function L(t,e,a,i){x(t,0+(i?1:0),3),Z(t),y(t,a),y(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a;};var N=function N(t,e,i,n){var s,r,o=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,i=4093624447;for(e=0;e<=31;e++,i>>>=1){if(1&i&&0!==t.dyn_ltree[2*e])return 0;}if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<a;e++){if(0!==t.dyn_ltree[2*e])return 1;}return 0;}(t)),T(t,t.l_desc),T(t,t.d_desc),o=function(t){var e;for(O(t,t.dyn_ltree,t.l_desc.max_code),O(t,t.dyn_dtree,t.d_desc.max_code),T(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--){;}return t.opt_len+=3*(e+1)+5+5+4,e;}(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=i+5,i+4<=s&&-1!==e?L(t,e,i,n):4===t.strategy||r===s?(x(t,2+(n?1:0),3),D(t,d,_)):(x(t,4+(n?1:0),3),function(t,e,a,i){var n;for(x(t,e-257,5),x(t,a-1,5),x(t,i-4,4),n=0;n<i;n++){x(t,t.bl_tree[2*h[n]+1],3);}I(t,t.dyn_ltree,e-1),I(t,t.dyn_dtree,a-1);}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),D(t,t.dyn_ltree,t.dyn_dtree)),R(t),n&&Z(t);},B={_tr_init:function _tr_init(t){F||(function(){var t,e,a,h,k;var v=new Array(16);for(a=0,h=0;h<28;h++){for(u[h]=a,t=0;t<1<<r[h];t++){c[a++]=h;}}for(c[a-1]=h,k=0,h=0;h<16;h++){for(w[h]=k,t=0;t<1<<o[h];t++){f[k++]=h;}}for(k>>=7;h<n;h++){for(w[h]=k<<7,t=0;t<1<<o[h]-7;t++){f[256+k++]=h;}}for(e=0;e<=s;e++){v[e]=0;}for(t=0;t<=143;){d[2*t+1]=8,t++,v[8]++;}for(;t<=255;){d[2*t+1]=9,t++,v[9]++;}for(;t<=279;){d[2*t+1]=7,t++,v[7]++;}for(;t<=287;){d[2*t+1]=8,t++,v[8]++;}for(E(d,287,v),t=0;t<n;t++){_[2*t+1]=5,_[2*t]=A(t,5);}b=new m(d,r,257,i,s),g=new m(_,o,0,n,s),p=new m(new Array(0),l,0,19,7);}(),F=!0),t.l_desc=new k(t.dyn_ltree,b),t.d_desc=new k(t.dyn_dtree,g),t.bl_desc=new k(t.bl_tree,p),t.bi_buf=0,t.bi_valid=0,R(t);},_tr_stored_block:L,_tr_flush_block:N,_tr_tally:function _tr_tally(t,e,i){return t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=i,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(c[i]+a+1)]++,t.dyn_dtree[2*v(e)]++),t.sym_next===t.sym_end;},_tr_align:function _tr_align(t){x(t,2,3),z(t,256,d),function(t){16===t.bi_valid?(y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8);}(t);}};var C=function C(t,e,a,i){var n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0;}while(--r);n%=65521,s%=65521;}return n|s<<16|0;};var M=new Uint32Array(function(){var t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++){t=1&t?3988292384^t>>>1:t>>>1;}e[a]=t;}return e;}());var H=function H(t,e,a,i){var n=M,s=i+a;t^=-1;for(var _a9=i;_a9<s;_a9++){t=t>>>8^n[255&(t^e[_a9])];}return-1^t;},j={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},K={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};var P=B._tr_init,Y=B._tr_stored_block,G=B._tr_flush_block,X=B._tr_tally,W=B._tr_align,q=K.Z_NO_FLUSH,J=K.Z_PARTIAL_FLUSH,Q=K.Z_FULL_FLUSH,V=K.Z_FINISH,$=K.Z_BLOCK,tt=K.Z_OK,et=K.Z_STREAM_END,at=K.Z_STREAM_ERROR,it=K.Z_DATA_ERROR,nt=K.Z_BUF_ERROR,st=K.Z_DEFAULT_COMPRESSION,rt=K.Z_FILTERED,ot=K.Z_HUFFMAN_ONLY,lt=K.Z_RLE,ht=K.Z_FIXED,dt=K.Z_DEFAULT_STRATEGY,_t=K.Z_UNKNOWN,ft=K.Z_DEFLATED,ct=258,ut=262,wt=42,mt=113,bt=666,gt=function gt(t,e){return t.msg=j[e],e;},pt=function pt(t){return 2*t-(t>4?9:0);},kt=function kt(t){var e=t.length;for(;--e>=0;){t[e]=0;}},vt=function vt(t){var e,a,i,n=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=n?a-n:0;}while(--e);e=n,i=e;do{a=t.prev[--i],t.prev[i]=a>=n?a-n:0;}while(--e);};var yt=function yt(t,e,a){return(e<<t.hash_shift^a)&t.hash_mask;};var xt=function xt(t){var e=t.state;var a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0));},zt=function zt(t,e){G(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,xt(t.strm);},At=function At(t,e){t.pending_buf[t.pending++]=e;},Et=function Et(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e;},Rt=function Rt(t,e,a,i){var n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=C(t.adler,e,n,a):2===t.state.wrap&&(t.adler=H(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n);},Zt=function Zt(t,e){var a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,o=t.nice_match;var l=t.strstart>t.w_size-ut?t.strstart-(t.w_size-ut):0,h=t.window,d=t.w_mask,_=t.prev,f=t.strstart+ct;var c=h[s+r-1],u=h[s+r];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+r]===u&&h[a+r-1]===c&&h[a]===h[s]&&h[++a]===h[s+1]){s+=2,a++;do{}while(h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&s<f);if(i=ct-(f-s),s=f-ct,i>r){if(t.match_start=e,r=i,i>=o)break;c=h[s+r-1],u=h[s+r];}}}while((e=_[e&d])>l&&0!=--n);return r<=t.lookahead?r:t.lookahead;},Ut=function Ut(t){var e=t.w_size;var a,i,n;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ut)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),vt(t),i+=e),0===t.strm.avail_in)break;if(a=Rt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(n=t.strstart-t.insert,t.ins_h=t.window[n],t.ins_h=yt(t,t.ins_h,t.window[n+1]);t.insert&&(t.ins_h=yt(t,t.ins_h,t.window[n+3-1]),t.prev[n&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=n,n++,t.insert--,!(t.lookahead+t.insert<3));){;}}while(t.lookahead<ut&&0!==t.strm.avail_in);},St=function St(t,e){var a,i,n,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r=0,o=t.strm.avail_in;do{if(a=65535,n=t.bi_valid+42>>3,t.strm.avail_out<n)break;if(n=t.strm.avail_out-n,i=t.strstart-t.block_start,a>i+t.strm.avail_in&&(a=i+t.strm.avail_in),a>n&&(a=n),a<s&&(0===a&&e!==V||e===q||a!==i+t.strm.avail_in))break;r=e===V&&a===i+t.strm.avail_in?1:0,Y(t,0,0,r),t.pending_buf[t.pending-4]=a,t.pending_buf[t.pending-3]=a>>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,xt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(Rt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a);}while(0===r);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),r?4:e!==q&&e!==V&&0===t.strm.avail_in&&t.strstart===t.block_start?2:(n=t.window_size-t.strstart,t.strm.avail_in>n&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,n+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),n>t.strm.avail_in&&(n=t.strm.avail_in),n&&(Rt(t.strm,t.window,t.strstart,n),t.strstart+=n,t.insert+=n>t.w_size-t.insert?t.w_size-t.insert:n),t.high_water<t.strstart&&(t.high_water=t.strstart),n=t.bi_valid+42>>3,n=t.pending_buf_size-n>65535?65535:t.pending_buf_size-n,s=n>t.w_size?t.w_size:n,i=t.strstart-t.block_start,(i>=s||(i||e===V)&&e!==q&&0===t.strm.avail_in&&i<=n)&&(a=i>n?n:i,r=e===V&&0===t.strm.avail_in&&a===i?1:0,Y(t,t.block_start,a,r),t.block_start+=a,xt(t.strm)),r?3:1);},Dt=function Dt(t,e){var a,i;for(;;){if(t.lookahead<ut){if(Ut(t),t.lookahead<ut&&e===q)return 1;if(0===t.lookahead)break;}if(a=0,t.lookahead>=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ut&&(t.match_length=Zt(t,a)),t.match_length>=3){if(i=X(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;}while(0!=--t.match_length);t.strstart++;}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=yt(t,t.ins_h,t.window[t.strstart+1]);}else i=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(zt(t,!1),0===t.strm.avail_out))return 1;}return t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;},Tt=function Tt(t,e){var a,i,n;for(;;){if(t.lookahead<ut){if(Ut(t),t.lookahead<ut&&e===q)return 1;if(0===t.lookahead)break;}if(a=0,t.lookahead>=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-ut&&(t.match_length=Zt(t,a),t.match_length<=5&&(t.strategy===rt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=X(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(zt(t,!1),0===t.strm.avail_out))return 1;}else if(t.match_available){if(i=X(t,0,t.window[t.strstart-1]),i&&zt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1;}else t.match_available=1,t.strstart++,t.lookahead--;}return t.match_available&&(i=X(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;};function Ot(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n;}var It=[new Ot(0,0,0,0,St),new Ot(4,4,8,4,Dt),new Ot(4,5,16,8,Dt),new Ot(4,6,32,32,Dt),new Ot(4,4,16,16,Tt),new Ot(8,16,32,32,Tt),new Ot(8,16,128,128,Tt),new Ot(8,32,128,256,Tt),new Ot(32,128,258,1024,Tt),new Ot(32,258,258,4096,Tt)];function Ft(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ft,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),kt(this.dyn_ltree),kt(this.dyn_dtree),kt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),kt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),kt(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}var Lt=function Lt(t){if(!t)return 1;var e=t.state;return!e||e.strm!==t||e.status!==wt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==mt&&e.status!==bt?1:0;},Nt=function Nt(t){if(Lt(t))return gt(t,at);t.total_in=t.total_out=0,t.data_type=_t;var e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?wt:mt,t.adler=2===e.wrap?0:1,e.last_flush=-2,P(e),tt;},Bt=function Bt(t){var e=Nt(t);var a;return e===tt&&((a=t.state).window_size=2*a.w_size,kt(a.head),a.max_lazy_match=It[a.level].max_lazy,a.good_match=It[a.level].good_length,a.nice_match=It[a.level].nice_length,a.max_chain_length=It[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e;},Ct=function Ct(t,e,a,i,n,s){if(!t)return at;var r=1;if(e===st&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==ft||i<8||i>15||e<0||e>9||s<0||s>ht||8===i&&1!==r)return gt(t,at);8===i&&(i=9);var o=new Ft();return t.state=o,o.strm=t,o.status=wt,o.wrap=r,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=e,o.strategy=s,o.method=a,Bt(t);};var Mt={deflateInit:function deflateInit(t,e){return Ct(t,e,ft,15,8,dt);},deflateInit2:Ct,deflateReset:Bt,deflateResetKeep:Nt,deflateSetHeader:function deflateSetHeader(t,e){return Lt(t)||2!==t.state.wrap?at:(t.state.gzhead=e,tt);},deflate:function deflate(t,e){if(Lt(t)||e>$||e<0)return t?gt(t,at):at;var a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===bt&&e!==V)return gt(t,0===t.avail_out?nt:at);var i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(xt(t),0===t.avail_out)return a.last_flush=-1,tt;}else if(0===t.avail_in&&pt(e)<=pt(i)&&e!==V)return gt(t,nt);if(a.status===bt&&0!==t.avail_in)return gt(t,nt);if(a.status===wt&&0===a.wrap&&(a.status=mt),a.status===wt){var _e4=ft+(a.w_bits-8<<4)<<8,_i619=-1;if(_i619=a.strategy>=ot||a.level<2?0:a.level<6?1:6===a.level?2:3,_e4|=_i619<<6,0!==a.strstart&&(_e4|=32),_e4+=31-_e4%31,Et(a,_e4),0!==a.strstart&&(Et(a,t.adler>>>16),Et(a,65535&t.adler)),t.adler=1,a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;}if(57===a.status)if(t.adler=0,At(a,31),At(a,139),At(a,8),a.gzhead)At(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),At(a,255&a.gzhead.time),At(a,a.gzhead.time>>8&255),At(a,a.gzhead.time>>16&255),At(a,a.gzhead.time>>24&255),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(At(a,255&a.gzhead.extra.length),At(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=H(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(At(a,0),At(a,0),At(a,0),At(a,0),At(a,0),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,3),a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;if(69===a.status){if(a.gzhead.extra){var _e5=a.pending,_i620=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+_i620>a.pending_buf_size;){var _n3=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+_n3),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>_e5&&(t.adler=H(t.adler,a.pending_buf,a.pending-_e5,_e5)),a.gzindex+=_n3,xt(t),0!==a.pending)return a.last_flush=-1,tt;_e5=0,_i620-=_n3;}var _n2=new Uint8Array(a.gzhead.extra);a.pending_buf.set(_n2.subarray(a.gzindex,a.gzindex+_i620),a.pending),a.pending+=_i620,a.gzhead.hcrc&&a.pending>_e5&&(t.adler=H(t.adler,a.pending_buf,a.pending-_e5,_e5)),a.gzindex=0;}a.status=73;}if(73===a.status){if(a.gzhead.name){var _e6,_i621=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>_i621&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i621,_i621)),xt(t),0!==a.pending)return a.last_flush=-1,tt;_i621=0;}_e6=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,At(a,_e6);}while(0!==_e6);a.gzhead.hcrc&&a.pending>_i621&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i621,_i621)),a.gzindex=0;}a.status=91;}if(91===a.status){if(a.gzhead.comment){var _e7,_i622=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>_i622&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i622,_i622)),xt(t),0!==a.pending)return a.last_flush=-1,tt;_i622=0;}_e7=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,At(a,_e7);}while(0!==_e7);a.gzhead.hcrc&&a.pending>_i622&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i622,_i622));}a.status=103;}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(xt(t),0!==a.pending))return a.last_flush=-1,tt;At(a,255&t.adler),At(a,t.adler>>8&255),t.adler=0;}if(a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;}if(0!==t.avail_in||0!==a.lookahead||e!==q&&a.status!==bt){var _i623=0===a.level?St(a,e):a.strategy===ot?function(t,e){var a;for(;;){if(0===t.lookahead&&(Ut(t),0===t.lookahead)){if(e===q)return 1;break;}if(t.match_length=0,a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(zt(t,!1),0===t.strm.avail_out))return 1;}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;}(a,e):a.strategy===lt?function(t,e){var a,i,n,s;var r=t.window;for(;;){if(t.lookahead<=ct){if(Ut(t),t.lookahead<=ct&&e===q)return 1;if(0===t.lookahead)break;}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+ct;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&n<s);t.match_length=ct-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead);}if(t.match_length>=3?(a=X(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(zt(t,!1),0===t.strm.avail_out))return 1;}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;}(a,e):It[a.level].func(a,e);if(3!==_i623&&4!==_i623||(a.status=bt),1===_i623||3===_i623)return 0===t.avail_out&&(a.last_flush=-1),tt;if(2===_i623&&(e===J?W(a):e!==$&&(Y(a,0,0,!1),e===Q&&(kt(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),xt(t),0===t.avail_out))return a.last_flush=-1,tt;}return e!==V?tt:a.wrap<=0?et:(2===a.wrap?(At(a,255&t.adler),At(a,t.adler>>8&255),At(a,t.adler>>16&255),At(a,t.adler>>24&255),At(a,255&t.total_in),At(a,t.total_in>>8&255),At(a,t.total_in>>16&255),At(a,t.total_in>>24&255)):(Et(a,t.adler>>>16),Et(a,65535&t.adler)),xt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?tt:et);},deflateEnd:function deflateEnd(t){if(Lt(t))return at;var e=t.state.status;return t.state=null,e===mt?gt(t,it):tt;},deflateSetDictionary:function deflateSetDictionary(t,e){var a=e.length;if(Lt(t))return at;var i=t.state,n=i.wrap;if(2===n||1===n&&i.status!==wt||i.lookahead)return at;if(1===n&&(t.adler=C(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(kt(i.head),i.strstart=0,i.block_start=0,i.insert=0);var _t2=new Uint8Array(i.w_size);_t2.set(e.subarray(a-i.w_size,a),0),e=_t2,a=i.w_size;}var s=t.avail_in,r=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Ut(i);i.lookahead>=3;){var _t3=i.strstart,_e8=i.lookahead-2;do{i.ins_h=yt(i,i.ins_h,i.window[_t3+3-1]),i.prev[_t3&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=_t3,_t3++;}while(--_e8);i.strstart=_t3,i.lookahead=2,Ut(i);}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=o,t.avail_in=s,i.wrap=n,tt;},deflateInfo:"pako deflate (from Nodeca project)"};var Ht=function Ht(t,e){return Object.prototype.hasOwnProperty.call(t,e);};var jt=function jt(t){var e=Array.prototype.slice.call(arguments,1);for(;e.length;){var _a10=e.shift();if(_a10){if("object"!=_typeof(_a10))throw new TypeError(_a10+"must be non-object");for(var _e9 in _a10){Ht(_a10,_e9)&&(t[_e9]=_a10[_e9]);}}}return t;},Kt=function Kt(t){var e=0;for(var _a11=0,_i624=t.length;_a11<_i624;_a11++){e+=t[_a11].length;}var a=new Uint8Array(e);for(var _e10=0,_i625=0,_n4=t.length;_e10<_n4;_e10++){var _n5=t[_e10];a.set(_n5,_i625),_i625+=_n5.length;}return a;};var Pt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1));}catch(t){Pt=!1;}var Yt=new Uint8Array(256);for(var _t4=0;_t4<256;_t4++){Yt[_t4]=_t4>=252?6:_t4>=248?5:_t4>=240?4:_t4>=224?3:_t4>=192?2:1;}Yt[254]=Yt[254]=1;var Gt=function Gt(t){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);var e,a,i,n,s,r=t.length,o=0;for(n=0;n<r;n++){a=t.charCodeAt(n),55296==(64512&a)&&n+1<r&&(i=t.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),o+=a<128?1:a<2048?2:a<65536?3:4;}for(e=new Uint8Array(o),s=0,n=0;s<o;n++){a=t.charCodeAt(n),55296==(64512&a)&&n+1<r&&(i=t.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),a<128?e[s++]=a:a<2048?(e[s++]=192|a>>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);}return e;},Xt=function Xt(t,e){var a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));var i,n;var s=new Array(2*a);for(n=0,i=0;i<a;){var _e11=t[i++];if(_e11<128){s[n++]=_e11;continue;}var _r2=Yt[_e11];if(_r2>4)s[n++]=65533,i+=_r2-1;else{for(_e11&=2===_r2?31:3===_r2?15:7;_r2>1&&i<a;){_e11=_e11<<6|63&t[i++],_r2--;}_r2>1?s[n++]=65533:_e11<65536?s[n++]=_e11:(_e11-=65536,s[n++]=55296|_e11>>10&1023,s[n++]=56320|1023&_e11);}}return function(t,e){if(e<65534&&t.subarray&&Pt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));var a="";for(var _i626=0;_i626<e;_i626++){a+=String.fromCharCode(t[_i626]);}return a;}(s,n);},Wt=function Wt(t,e){(e=e||t.length)>t.length&&(e=t.length);var a=e-1;for(;a>=0&&128==(192&t[a]);){a--;}return a<0||0===a?e:a+Yt[t[a]]>e?a:e;};var qt=function qt(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};var Jt=Object.prototype.toString,Qt=K.Z_NO_FLUSH,Vt=K.Z_SYNC_FLUSH,$t=K.Z_FULL_FLUSH,te=K.Z_FINISH,ee=K.Z_OK,ae=K.Z_STREAM_END,ie=K.Z_DEFAULT_COMPRESSION,ne=K.Z_DEFAULT_STRATEGY,se=K.Z_DEFLATED;function re(t){this.options=jt({level:ie,method:se,chunkSize:16384,windowBits:15,memLevel:8,strategy:ne},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qt(),this.strm.avail_out=0;var a=Mt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==ee)throw new Error(j[a]);if(e.header&&Mt.deflateSetHeader(this.strm,e.header),e.dictionary){var _t5;if(_t5="string"==typeof e.dictionary?Gt(e.dictionary):"[object ArrayBuffer]"===Jt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=Mt.deflateSetDictionary(this.strm,_t5),a!==ee)throw new Error(j[a]);this._dict_set=!0;}}function oe(t,e){var a=new re(e);if(a.push(t,!0),a.err)throw a.msg||j[a.err];return a.result;}re.prototype.push=function(t,e){var a=this.strm,i=this.options.chunkSize;var n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?te:Qt,"string"==typeof t?a.input=Gt(t):"[object ArrayBuffer]"===Jt.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Vt||s===$t)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Mt.deflate(a,s),n===ae)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Mt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ee;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break;}else this.onData(a.output);}}return!0;},re.prototype.onData=function(t){this.chunks.push(t);},re.prototype.onEnd=function(t){t===ee&&(this.result=Kt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg;};var le={Deflate:re,deflate:oe,deflateRaw:function deflateRaw(t,e){return(e=e||{}).raw=!0,oe(t,e);},gzip:function gzip(t,e){return(e=e||{}).gzip=!0,oe(t,e);},constants:K};var he=16209;var de=function de(t,e){var a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z,A;var E=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),n=t.next_out,A=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),o=E.dmax,l=E.wsize,h=E.whave,d=E.wnext,_=E.window,f=E.hold,c=E.bits,u=E.lencode,w=E.distcode,m=(1<<E.lenbits)-1,b=(1<<E.distbits)-1;t:do{c<15&&(f+=z[a++]<<c,c+=8,f+=z[a++]<<c,c+=8),g=u[f&m];e:for(;;){if(p=g>>>24,f>>>=p,c-=p,p=g>>>16&255,0===p)A[n++]=65535&g;else{if(!(16&p)){if(0==(64&p)){g=u[(65535&g)+(f&(1<<p)-1)];continue e;}if(32&p){E.mode=16191;break t;}t.msg="invalid literal/length code",E.mode=he;break t;}k=65535&g,p&=15,p&&(c<p&&(f+=z[a++]<<c,c+=8),k+=f&(1<<p)-1,f>>>=p,c-=p),c<15&&(f+=z[a++]<<c,c+=8,f+=z[a++]<<c,c+=8),g=w[f&b];a:for(;;){if(p=g>>>24,f>>>=p,c-=p,p=g>>>16&255,!(16&p)){if(0==(64&p)){g=w[(65535&g)+(f&(1<<p)-1)];continue a;}t.msg="invalid distance code",E.mode=he;break t;}if(v=65535&g,p&=15,c<p&&(f+=z[a++]<<c,c+=8,c<p&&(f+=z[a++]<<c,c+=8)),v+=f&(1<<p)-1,v>o){t.msg="invalid distance too far back",E.mode=he;break t;}if(f>>>=p,c-=p,p=n-s,v>p){if(p=v-p,p>h&&E.sane){t.msg="invalid distance too far back",E.mode=he;break t;}if(y=0,x=_,0===d){if(y+=l-p,p<k){k-=p;do{A[n++]=_[y++];}while(--p);y=n-v,x=A;}}else if(d<p){if(y+=l+d-p,p-=d,p<k){k-=p;do{A[n++]=_[y++];}while(--p);if(y=0,d<k){p=d,k-=p;do{A[n++]=_[y++];}while(--p);y=n-v,x=A;}}}else if(y+=d-p,p<k){k-=p;do{A[n++]=_[y++];}while(--p);y=n-v,x=A;}for(;k>2;){A[n++]=x[y++],A[n++]=x[y++],A[n++]=x[y++],k-=3;}k&&(A[n++]=x[y++],k>1&&(A[n++]=x[y++]));}else{y=n-v;do{A[n++]=A[y++],A[n++]=A[y++],A[n++]=A[y++],k-=3;}while(k>2);k&&(A[n++]=A[y++],k>1&&(A[n++]=A[y++]));}break;}}break;}}while(a<i&&n<r);k=c>>3,a-=k,c-=k<<3,f&=(1<<c)-1,t.next_in=a,t.next_out=n,t.avail_in=a<i?i-a+5:5-(a-i),t.avail_out=n<r?r-n+257:257-(n-r),E.hold=f,E.bits=c;};var _e=15,fe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),ce=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),ue=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),we=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var me=function me(t,e,a,i,n,s,r,o){var l=o.bits;var h,d,_,f,c,u,w=0,m=0,b=0,g=0,p=0,k=0,v=0,y=0,x=0,z=0,A=null;var E=new Uint16Array(16),R=new Uint16Array(16);var Z,U,S,D=null;for(w=0;w<=_e;w++){E[w]=0;}for(m=0;m<i;m++){E[e[a+m]]++;}for(p=l,g=_e;g>=1&&0===E[g];g--){;}if(p>g&&(p=g),0===g)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(b=1;b<g&&0===E[b];b++){;}for(p<b&&(p=b),y=1,w=1;w<=_e;w++){if(y<<=1,y-=E[w],y<0)return-1;}if(y>0&&(0===t||1!==g))return-1;for(R[1]=0,w=1;w<_e;w++){R[w+1]=R[w]+E[w];}for(m=0;m<i;m++){0!==e[a+m]&&(r[R[e[a+m]]++]=m);}if(0===t?(A=D=r,u=20):1===t?(A=fe,D=ce,u=257):(A=ue,D=we,u=0),z=0,m=0,w=b,c=s,k=p,v=0,_=-1,x=1<<p,f=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){Z=w-v,r[m]+1<u?(U=0,S=r[m]):r[m]>=u?(U=D[r[m]-u],S=A[r[m]-u]):(U=96,S=0),h=1<<w-v,d=1<<k,b=d;do{d-=h,n[c+(z>>v)+d]=Z<<24|U<<16|S|0;}while(0!==d);for(h=1<<w-1;z&h;){h>>=1;}if(0!==h?(z&=h-1,z+=h):z=0,m++,0==--E[w]){if(w===g)break;w=e[a+r[m]];}if(w>p&&(z&f)!==_){for(0===v&&(v=p),c+=b,k=w-v,y=1<<k;k+v<g&&(y-=E[k+v],!(y<=0));){k++,y<<=1;}if(x+=1<<k,1===t&&x>852||2===t&&x>592)return 1;_=z&f,n[_]=p<<24|k<<16|c-s|0;}}return 0!==z&&(n[c+z]=w-v<<24|64<<16|0),o.bits=p,0;};var be=K.Z_FINISH,ge=K.Z_BLOCK,pe=K.Z_TREES,ke=K.Z_OK,ve=K.Z_STREAM_END,ye=K.Z_NEED_DICT,xe=K.Z_STREAM_ERROR,ze=K.Z_DATA_ERROR,Ae=K.Z_MEM_ERROR,Ee=K.Z_BUF_ERROR,Re=K.Z_DEFLATED,Ze=16180,Ue=16190,Se=16191,De=16192,Te=16194,Oe=16199,Ie=16200,Fe=16206,Le=16209,Ne=function Ne(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);};function Be(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}var Ce=function Ce(t){if(!t)return 1;var e=t.state;return!e||e.strm!==t||e.mode<Ze||e.mode>16211?1:0;},Me=function Me(t){if(Ce(t))return xe;var e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Ze,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,ke;},He=function He(t){if(Ce(t))return xe;var e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Me(t);},je=function je(t,e){var a;if(Ce(t))return xe;var i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?xe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,He(t));},Ke=function Ke(t,e){if(!t)return xe;var a=new Be();t.state=a,a.strm=t,a.window=null,a.mode=Ze;var i=je(t,e);return i!==ke&&(t.state=null),i;};var Pe,Ye,Ge=!0;var Xe=function Xe(t){if(Ge){Pe=new Int32Array(512),Ye=new Int32Array(32);var _e12=0;for(;_e12<144;){t.lens[_e12++]=8;}for(;_e12<256;){t.lens[_e12++]=9;}for(;_e12<280;){t.lens[_e12++]=7;}for(;_e12<288;){t.lens[_e12++]=8;}for(me(1,t.lens,0,288,Pe,0,t.work,{bits:9}),_e12=0;_e12<32;){t.lens[_e12++]=5;}me(2,t.lens,0,32,Ye,0,t.work,{bits:5}),Ge=!1;}t.lencode=Pe,t.lenbits=9,t.distcode=Ye,t.distbits=5;},We=function We(t,e,a,i){var n;var s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),i>=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0;};var qe={inflateReset:He,inflateReset2:je,inflateResetKeep:Me,inflateInit:function inflateInit(t){return Ke(t,15);},inflateInit2:Ke,inflate:function inflate(t,e){var a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z=0;var A=new Uint8Array(4);var E,R;var Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ce(t)||!t.output||!t.input&&0!==t.avail_in)return xe;a=t.state,a.mode===Se&&(a.mode=De),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,_=o,f=l,x=ke;t:for(;;){switch(a.mode){case Ze:if(0===a.wrap){a.mode=De;break;}for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(2&a.wrap&&35615===h){0===a.wbits&&(a.wbits=15),a.check=0,A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0),h=0,d=0,a.mode=16181;break;}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=Le;break;}if((15&h)!==Re){t.msg="unknown compression method",a.mode=Le;break;}if(h>>>=4,d-=4,y=8+(15&h),0===a.wbits&&(a.wbits=y),y>15||y>a.wbits){t.msg="invalid window size",a.mode=Le;break;}a.dmax=1<<a.wbits,a.flags=0,t.adler=a.check=1,a.mode=512&h?16189:Se,h=0,d=0;break;case 16181:for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(a.flags=h,(255&a.flags)!==Re){t.msg="unknown compression method",a.mode=Le;break;}if(57344&a.flags){t.msg="unknown header flags set",a.mode=Le;break;}a.head&&(a.head.text=h>>8&1),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.head&&(a.head.time=h),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,A[2]=h>>>16&255,A[3]=h>>>24&255,a.check=H(a.check,A,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0;}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+c),y)),512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y));}while(y&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,y)break t;}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.comment+=String.fromCharCode(y));}while(y&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,y)break t;}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(4&a.wrap&&h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=Le;break;}h=0,d=0;}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=Se;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}t.adler=a.check=Ne(h),h=0,d=0,a.mode=Ue;case Ue:if(0===a.havedict)return t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,ye;t.adler=a.check=1,a.mode=Se;case Se:if(e===ge||e===pe)break t;case De:if(a.last){h>>>=7&d,d-=7&d,a.mode=Fe;break;}for(;d<3;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}switch(a.last=1&h,h>>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(Xe(a),a.mode=Oe,e===pe){h>>>=2,d-=2;break t;}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=Le;}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=Le;break;}if(a.length=65535&h,h=0,d=0,a.mode=Te,e===pe)break t;case Te:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;n.set(i.subarray(s,s+c),r),o-=c,s+=c,l-=c,r+=c,a.length-=c;break;}a.mode=Se;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=Le;break;}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.lens[Z[a.have++]]=7&h,h>>>=3,d-=3;}for(;a.have<19;){a.lens[Z[a.have++]]=0;}if(a.lencode=a.lendyn,a.lenbits=7,E={bits:a.lenbits},x=me(0,a.lens,0,19,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid code lengths set",a.mode=Le;break;}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;z=a.lencode[h&(1<<a.lenbits)-1],m=z>>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(g<16)h>>>=m,d-=m,a.lens[a.have++]=g;else{if(16===g){for(R=m+2;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(h>>>=m,d-=m,0===a.have){t.msg="invalid bit length repeat",a.mode=Le;break;}y=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2;}else if(17===g){for(R=m+3;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=m,d-=m,y=0,c=3+(7&h),h>>>=3,d-=3;}else{for(R=m+7;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=m,d-=m,y=0,c=11+(127&h),h>>>=7,d-=7;}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=Le;break;}for(;c--;){a.lens[a.have++]=y;}}}if(a.mode===Le)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=Le;break;}if(a.lenbits=9,E={bits:a.lenbits},x=me(1,a.lens,0,a.nlen,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid literal/lengths set",a.mode=Le;break;}if(a.distbits=6,a.distcode=a.distdyn,E={bits:a.distbits},x=me(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,E),a.distbits=E.bits,x){t.msg="invalid distances set",a.mode=Le;break;}if(a.mode=Oe,e===pe)break t;case Oe:a.mode=Ie;case Ie:if(o>=6&&l>=258){t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,de(t,f),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===Se&&(a.back=-1);break;}for(a.back=0;z=a.lencode[h&(1<<a.lenbits)-1],m=z>>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(b&&0==(240&b)){for(p=m,k=b,v=g;z=a.lencode[v+((h&(1<<p+k)-1)>>p)],m=z>>>24,b=z>>>16&255,g=65535&z,!(p+m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=p,d-=p,a.back+=p;}if(h>>>=m,d-=m,a.back+=m,a.length=g,0===b){a.mode=16205;break;}if(32&b){a.back=-1,a.mode=Se;break;}if(64&b){t.msg="invalid literal/length code",a.mode=Le;break;}a.extra=15&b,a.mode=16201;case 16201:if(a.extra){for(R=a.extra;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra;}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<<a.distbits)-1],m=z>>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(0==(240&b)){for(p=m,k=b,v=g;z=a.distcode[v+((h&(1<<p+k)-1)>>p)],m=z>>>24,b=z>>>16&255,g=65535&z,!(p+m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=p,d-=p,a.back+=p;}if(h>>>=m,d-=m,a.back+=m,64&b){t.msg="invalid distance code",a.mode=Le;break;}a.offset=g,a.extra=15&b,a.mode=16203;case 16203:if(a.extra){for(R=a.extra;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra;}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=Le;break;}a.mode=16204;case 16204:if(0===l)break t;if(c=f-l,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=Le;break;}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window;}else w=n,u=r-a.offset,c=a.length;c>l&&(c=l),l-=c,a.length-=c;do{n[r++]=w[u++];}while(--c);0===a.length&&(a.mode=Ie);break;case 16205:if(0===l)break t;n[r++]=a.length,l--,a.mode=Ie;break;case Fe:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[s++]<<d,d+=8;}if(f-=l,t.total_out+=f,a.total+=f,4&a.wrap&&f&&(t.adler=a.check=a.flags?H(a.check,n,f,r-f):C(a.check,n,f,r-f)),f=l,4&a.wrap&&(a.flags?h:Ne(h))!==a.check){t.msg="incorrect data check",a.mode=Le;break;}h=0,d=0;}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(4&a.wrap&&h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=Le;break;}h=0,d=0;}a.mode=16208;case 16208:x=ve;break t;case Le:x=ze;break t;case 16210:return Ae;default:return xe;}}return t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||f!==t.avail_out&&a.mode<Le&&(a.mode<Fe||e!==be))&&We(t,t.output,t.next_out,f-t.avail_out),_-=t.avail_in,f-=t.avail_out,t.total_in+=_,t.total_out+=f,a.total+=f,4&a.wrap&&f&&(t.adler=a.check=a.flags?H(a.check,n,f,t.next_out-f):C(a.check,n,f,t.next_out-f)),t.data_type=a.bits+(a.last?64:0)+(a.mode===Se?128:0)+(a.mode===Oe||a.mode===Te?256:0),(0===_&&0===f||e===be)&&x===ke&&(x=Ee),x;},inflateEnd:function inflateEnd(t){if(Ce(t))return xe;var e=t.state;return e.window&&(e.window=null),t.state=null,ke;},inflateGetHeader:function inflateGetHeader(t,e){if(Ce(t))return xe;var a=t.state;return 0==(2&a.wrap)?xe:(a.head=e,e.done=!1,ke);},inflateSetDictionary:function inflateSetDictionary(t,e){var a=e.length;var i,n,s;return Ce(t)?xe:(i=t.state,0!==i.wrap&&i.mode!==Ue?xe:i.mode===Ue&&(n=1,n=C(n,e,a,0),n!==i.check)?ze:(s=We(t,e,a,a),s?(i.mode=16210,Ae):(i.havedict=1,ke)));},inflateInfo:"pako inflate (from Nodeca project)"};var Je=function Je(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1;};var Qe=Object.prototype.toString,Ve=K.Z_NO_FLUSH,$e=K.Z_FINISH,ta=K.Z_OK,ea=K.Z_STREAM_END,aa=K.Z_NEED_DICT,ia=K.Z_STREAM_ERROR,na=K.Z_DATA_ERROR,sa=K.Z_MEM_ERROR;function ra(t){this.options=jt({chunkSize:65536,windowBits:15,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qt(),this.strm.avail_out=0;var a=qe.inflateInit2(this.strm,e.windowBits);if(a!==ta)throw new Error(j[a]);if(this.header=new Je(),qe.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Gt(e.dictionary):"[object ArrayBuffer]"===Qe.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=qe.inflateSetDictionary(this.strm,e.dictionary),a!==ta)))throw new Error(j[a]);}function oa(t,e){var a=new ra(e);if(a.push(t),a.err)throw a.msg||j[a.err];return a.result;}ra.prototype.push=function(t,e){var a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;var s,r,o;if(this.ended)return!1;for(r=e===~~e?e:!0===e?$e:Ve,"[object ArrayBuffer]"===Qe.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),s=qe.inflate(a,r),s===aa&&n&&(s=qe.inflateSetDictionary(a,n),s===ta?s=qe.inflate(a,r):s===na&&(s=aa));a.avail_in>0&&s===ea&&a.state.wrap>0&&0!==t[a.next_in];){qe.inflateReset(a),s=qe.inflate(a,r);}switch(s){case ia:case na:case aa:case sa:return this.onEnd(s),this.ended=!0,!1;}if(o=a.avail_out,a.next_out&&(0===a.avail_out||s===ea))if("string"===this.options.to){var _t6=Wt(a.output,a.next_out),_e13=a.next_out-_t6,_n6=Xt(a.output,_t6);a.next_out=_e13,a.avail_out=i-_e13,_e13&&a.output.set(a.output.subarray(_t6,_t6+_e13),0),this.onData(_n6);}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(s!==ta||0!==o){if(s===ea)return s=qe.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===a.avail_in)break;}}return!0;},ra.prototype.onData=function(t){this.chunks.push(t);},ra.prototype.onEnd=function(t){t===ta&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Kt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg;};var la={Inflate:ra,inflate:oa,inflateRaw:function inflateRaw(t,e){return(e=e||{}).raw=!0,oa(t,e);},ungzip:oa,constants:K};var ha=le.Deflate,da=le.deflate,_a=le.deflateRaw,fa=le.gzip,ca=la.Inflate,ua=la.inflate,wa=la.inflateRaw,ma=la.ungzip;var ba=ha,ga=da,pa=_a,ka=fa,va=ca,ya=ua,xa=wa,za=ma,Aa=K,Ea={Deflate:ba,deflate:ga,deflateRaw:pa,gzip:ka,Inflate:va,inflate:ya,inflateRaw:xa,ungzip:za,constants:Aa};t.Deflate=ba,t.Inflate=va,t.constants=Aa,t["default"]=Ea,t.deflate=ga,t.deflateRaw=pa,t.gzip=ka,t.inflate=ya,t.inflateRaw=xa,t.ungzip=za,Object.defineProperty(t,"__esModule",{value:!0});});var p=/*#__PURE__*/Object.freeze({__proto__:null});/*
30871
+ var isBase64=!!dataUriRegexResult[2];var data=dataUriRegexResult[3];data=window.decodeURIComponent(data);if(isBase64){data=window.atob(data);}try{var buffer=new ArrayBuffer(data.length);var view=new Uint8Array(buffer);for(var i=0;i<data.length;i++){view[i]=data.charCodeAt(i);}ok(buffer);}catch(errMsg){error(errMsg);}}else{var request=new XMLHttpRequest();request.open('GET',this._cacheBusterURL(src),true);request.responseType='arraybuffer';request.onreadystatechange=function(){if(request.readyState===4){if(request.status===200){ok(request.response);}else{error('getXKT error : '+request.response);}}};request.send(null);}}}]);return XKTDefaultDataSource;}();/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */!function(t,e){"object"==(typeof exports==="undefined"?"undefined":_typeof(exports))&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).pako={});}(undefined,function(t){function e(t){var e=t.length;for(;--e>=0;){t[e]=0;}}var a=256,i=286,n=30,s=15,r=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),o=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),l=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),h=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),d=new Array(576);e(d);var _=new Array(60);e(_);var f=new Array(512);e(f);var c=new Array(256);e(c);var u=new Array(29);e(u);var w=new Array(n);function m(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length;}var b,g,p;function k(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e;}e(w);var v=function v(t){return t<256?f[t]:f[256+(t>>>7)];},y=function y(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255;},x=function x(t,e,a){t.bi_valid>16-a?(t.bi_buf|=e<<t.bi_valid&65535,y(t,t.bi_buf),t.bi_buf=e>>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=a);},z=function z(t,e,a){x(t,a[2*e],a[2*e+1]);},A=function A(t,e){var a=0;do{a|=1&t,t>>>=1,a<<=1;}while(--e>0);return a>>>1;},E=function E(t,e,a){var i=new Array(16);var n,r,o=0;for(n=1;n<=s;n++){o=o+a[n-1]<<1,i[n]=o;}for(r=0;r<=e;r++){var _e3=t[2*r+1];0!==_e3&&(t[2*r]=A(i[_e3]++,_e3));}},R=function R(t){var e;for(e=0;e<i;e++){t.dyn_ltree[2*e]=0;}for(e=0;e<n;e++){t.dyn_dtree[2*e]=0;}for(e=0;e<19;e++){t.bl_tree[2*e]=0;}t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0;},Z=function Z(t){t.bi_valid>8?y(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0;},U=function U(t,e,a,i){var n=2*e,s=2*a;return t[n]<t[s]||t[n]===t[s]&&i[e]<=i[a];},S=function S(t,e,a){var i=t.heap[a];var n=a<<1;for(;n<=t.heap_len&&(n<t.heap_len&&U(e,t.heap[n+1],t.heap[n],t.depth)&&n++,!U(e,i,t.heap[n],t.depth));){t.heap[a]=t.heap[n],a=n,n<<=1;}t.heap[a]=i;},D=function D(t,e,i){var n,s,l,h,d=0;if(0!==t.sym_next)do{n=255&t.pending_buf[t.sym_buf+d++],n+=(255&t.pending_buf[t.sym_buf+d++])<<8,s=t.pending_buf[t.sym_buf+d++],0===n?z(t,s,e):(l=c[s],z(t,l+a+1,e),h=r[l],0!==h&&(s-=u[l],x(t,s,h)),n--,l=v(n),z(t,l,i),h=o[l],0!==h&&(n-=w[l],x(t,n,h)));}while(d<t.sym_next);z(t,256,e);},T=function T(t,e){var a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,r=e.stat_desc.elems;var o,l,h,d=-1;for(t.heap_len=0,t.heap_max=573,o=0;o<r;o++){0!==a[2*o]?(t.heap[++t.heap_len]=d=o,t.depth[o]=0):a[2*o+1]=0;}for(;t.heap_len<2;){h=t.heap[++t.heap_len]=d<2?++d:0,a[2*h]=1,t.depth[h]=0,t.opt_len--,n&&(t.static_len-=i[2*h+1]);}for(e.max_code=d,o=t.heap_len>>1;o>=1;o--){S(t,a,o);}h=r;do{o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],S(t,a,1),l=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=l,a[2*h]=a[2*o]+a[2*l],t.depth[h]=(t.depth[o]>=t.depth[l]?t.depth[o]:t.depth[l])+1,a[2*o+1]=a[2*l+1]=h,t.heap[1]=h++,S(t,a,1);}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,l=e.stat_desc.extra_base,h=e.stat_desc.max_length;var d,_,f,c,u,w,m=0;for(c=0;c<=s;c++){t.bl_count[c]=0;}for(a[2*t.heap[t.heap_max]+1]=0,d=t.heap_max+1;d<573;d++){_=t.heap[d],c=a[2*a[2*_+1]+1]+1,c>h&&(c=h,m++),a[2*_+1]=c,_>i||(t.bl_count[c]++,u=0,_>=l&&(u=o[_-l]),w=a[2*_],t.opt_len+=w*(c+u),r&&(t.static_len+=w*(n[2*_+1]+u)));}if(0!==m){do{for(c=h-1;0===t.bl_count[c];){c--;}t.bl_count[c]--,t.bl_count[c+1]+=2,t.bl_count[h]--,m-=2;}while(m>0);for(c=h;0!==c;c--){for(_=t.bl_count[c];0!==_;){f=t.heap[--d],f>i||(a[2*f+1]!==c&&(t.opt_len+=(c-a[2*f+1])*a[2*f],a[2*f+1]=c),_--);}}}}(t,e),E(a,d,t.bl_count);},O=function O(t,e,a){var i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++){n=r,r=e[2*(i+1)+1],++o<l&&n===r||(o<h?t.bl_tree[2*n]+=o:0!==n?(n!==s&&t.bl_tree[2*n]++,t.bl_tree[32]++):o<=10?t.bl_tree[34]++:t.bl_tree[36]++,o=0,s=n,0===r?(l=138,h=3):n===r?(l=6,h=3):(l=7,h=4));}},I=function I(t,e,a){var i,n,s=-1,r=e[1],o=0,l=7,h=4;for(0===r&&(l=138,h=3),i=0;i<=a;i++){if(n=r,r=e[2*(i+1)+1],!(++o<l&&n===r)){if(o<h)do{z(t,n,t.bl_tree);}while(0!=--o);else 0!==n?(n!==s&&(z(t,n,t.bl_tree),o--),z(t,16,t.bl_tree),x(t,o-3,2)):o<=10?(z(t,17,t.bl_tree),x(t,o-3,3)):(z(t,18,t.bl_tree),x(t,o-11,7));o=0,s=n,0===r?(l=138,h=3):n===r?(l=6,h=3):(l=7,h=4);}}};var F=!1;var L=function L(t,e,a,i){x(t,0+(i?1:0),3),Z(t),y(t,a),y(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a;};var N=function N(t,e,i,n){var s,r,o=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,i=4093624447;for(e=0;e<=31;e++,i>>>=1){if(1&i&&0!==t.dyn_ltree[2*e])return 0;}if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<a;e++){if(0!==t.dyn_ltree[2*e])return 1;}return 0;}(t)),T(t,t.l_desc),T(t,t.d_desc),o=function(t){var e;for(O(t,t.dyn_ltree,t.l_desc.max_code),O(t,t.dyn_dtree,t.d_desc.max_code),T(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*h[e]+1];e--){;}return t.opt_len+=3*(e+1)+5+5+4,e;}(t),s=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=s&&(s=r)):s=r=i+5,i+4<=s&&-1!==e?L(t,e,i,n):4===t.strategy||r===s?(x(t,2+(n?1:0),3),D(t,d,_)):(x(t,4+(n?1:0),3),function(t,e,a,i){var n;for(x(t,e-257,5),x(t,a-1,5),x(t,i-4,4),n=0;n<i;n++){x(t,t.bl_tree[2*h[n]+1],3);}I(t,t.dyn_ltree,e-1),I(t,t.dyn_dtree,a-1);}(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),D(t,t.dyn_ltree,t.dyn_dtree)),R(t),n&&Z(t);},B={_tr_init:function _tr_init(t){F||(function(){var t,e,a,h,k;var v=new Array(16);for(a=0,h=0;h<28;h++){for(u[h]=a,t=0;t<1<<r[h];t++){c[a++]=h;}}for(c[a-1]=h,k=0,h=0;h<16;h++){for(w[h]=k,t=0;t<1<<o[h];t++){f[k++]=h;}}for(k>>=7;h<n;h++){for(w[h]=k<<7,t=0;t<1<<o[h]-7;t++){f[256+k++]=h;}}for(e=0;e<=s;e++){v[e]=0;}for(t=0;t<=143;){d[2*t+1]=8,t++,v[8]++;}for(;t<=255;){d[2*t+1]=9,t++,v[9]++;}for(;t<=279;){d[2*t+1]=7,t++,v[7]++;}for(;t<=287;){d[2*t+1]=8,t++,v[8]++;}for(E(d,287,v),t=0;t<n;t++){_[2*t+1]=5,_[2*t]=A(t,5);}b=new m(d,r,257,i,s),g=new m(_,o,0,n,s),p=new m(new Array(0),l,0,19,7);}(),F=!0),t.l_desc=new k(t.dyn_ltree,b),t.d_desc=new k(t.dyn_dtree,g),t.bl_desc=new k(t.bl_tree,p),t.bi_buf=0,t.bi_valid=0,R(t);},_tr_stored_block:L,_tr_flush_block:N,_tr_tally:function _tr_tally(t,e,i){return t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=i,0===e?t.dyn_ltree[2*i]++:(t.matches++,e--,t.dyn_ltree[2*(c[i]+a+1)]++,t.dyn_dtree[2*v(e)]++),t.sym_next===t.sym_end;},_tr_align:function _tr_align(t){x(t,2,3),z(t,256,d),function(t){16===t.bi_valid?(y(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8);}(t);}};var C=function C(t,e,a,i){var n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0;}while(--r);n%=65521,s%=65521;}return n|s<<16|0;};var M=new Uint32Array(function(){var t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++){t=1&t?3988292384^t>>>1:t>>>1;}e[a]=t;}return e;}());var H=function H(t,e,a,i){var n=M,s=i+a;t^=-1;for(var _a9=i;_a9<s;_a9++){t=t>>>8^n[255&(t^e[_a9])];}return-1^t;},j={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},K={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};var P=B._tr_init,Y=B._tr_stored_block,G=B._tr_flush_block,X=B._tr_tally,W=B._tr_align,q=K.Z_NO_FLUSH,J=K.Z_PARTIAL_FLUSH,Q=K.Z_FULL_FLUSH,V=K.Z_FINISH,$=K.Z_BLOCK,tt=K.Z_OK,et=K.Z_STREAM_END,at=K.Z_STREAM_ERROR,it=K.Z_DATA_ERROR,nt=K.Z_BUF_ERROR,st=K.Z_DEFAULT_COMPRESSION,rt=K.Z_FILTERED,ot=K.Z_HUFFMAN_ONLY,lt=K.Z_RLE,ht=K.Z_FIXED,dt=K.Z_DEFAULT_STRATEGY,_t=K.Z_UNKNOWN,ft=K.Z_DEFLATED,ct=258,ut=262,wt=42,mt=113,bt=666,gt=function gt(t,e){return t.msg=j[e],e;},pt=function pt(t){return 2*t-(t>4?9:0);},kt=function kt(t){var e=t.length;for(;--e>=0;){t[e]=0;}},vt=function vt(t){var e,a,i,n=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=n?a-n:0;}while(--e);e=n,i=e;do{a=t.prev[--i],t.prev[i]=a>=n?a-n:0;}while(--e);};var yt=function yt(t,e,a){return(e<<t.hash_shift^a)&t.hash_mask;};var xt=function xt(t){var e=t.state;var a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0));},zt=function zt(t,e){G(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,xt(t.strm);},At=function At(t,e){t.pending_buf[t.pending++]=e;},Et=function Et(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e;},Rt=function Rt(t,e,a,i){var n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=C(t.adler,e,n,a):2===t.state.wrap&&(t.adler=H(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n);},Zt=function Zt(t,e){var a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,o=t.nice_match;var l=t.strstart>t.w_size-ut?t.strstart-(t.w_size-ut):0,h=t.window,d=t.w_mask,_=t.prev,f=t.strstart+ct;var c=h[s+r-1],u=h[s+r];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(a=e,h[a+r]===u&&h[a+r-1]===c&&h[a]===h[s]&&h[++a]===h[s+1]){s+=2,a++;do{}while(h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&h[++s]===h[++a]&&s<f);if(i=ct-(f-s),s=f-ct,i>r){if(t.match_start=e,r=i,i>=o)break;c=h[s+r-1],u=h[s+r];}}}while((e=_[e&d])>l&&0!=--n);return r<=t.lookahead?r:t.lookahead;},Ut=function Ut(t){var e=t.w_size;var a,i,n;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ut)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),vt(t),i+=e),0===t.strm.avail_in)break;if(a=Rt(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(n=t.strstart-t.insert,t.ins_h=t.window[n],t.ins_h=yt(t,t.ins_h,t.window[n+1]);t.insert&&(t.ins_h=yt(t,t.ins_h,t.window[n+3-1]),t.prev[n&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=n,n++,t.insert--,!(t.lookahead+t.insert<3));){;}}while(t.lookahead<ut&&0!==t.strm.avail_in);},St=function St(t,e){var a,i,n,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r=0,o=t.strm.avail_in;do{if(a=65535,n=t.bi_valid+42>>3,t.strm.avail_out<n)break;if(n=t.strm.avail_out-n,i=t.strstart-t.block_start,a>i+t.strm.avail_in&&(a=i+t.strm.avail_in),a>n&&(a=n),a<s&&(0===a&&e!==V||e===q||a!==i+t.strm.avail_in))break;r=e===V&&a===i+t.strm.avail_in?1:0,Y(t,0,0,r),t.pending_buf[t.pending-4]=a,t.pending_buf[t.pending-3]=a>>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,xt(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(Rt(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a);}while(0===r);return o-=t.strm.avail_in,o&&(o>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=o&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-o,t.strm.next_in),t.strstart),t.strstart+=o,t.insert+=o>t.w_size-t.insert?t.w_size-t.insert:o),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),r?4:e!==q&&e!==V&&0===t.strm.avail_in&&t.strstart===t.block_start?2:(n=t.window_size-t.strstart,t.strm.avail_in>n&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,n+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),n>t.strm.avail_in&&(n=t.strm.avail_in),n&&(Rt(t.strm,t.window,t.strstart,n),t.strstart+=n,t.insert+=n>t.w_size-t.insert?t.w_size-t.insert:n),t.high_water<t.strstart&&(t.high_water=t.strstart),n=t.bi_valid+42>>3,n=t.pending_buf_size-n>65535?65535:t.pending_buf_size-n,s=n>t.w_size?t.w_size:n,i=t.strstart-t.block_start,(i>=s||(i||e===V)&&e!==q&&0===t.strm.avail_in&&i<=n)&&(a=i>n?n:i,r=e===V&&0===t.strm.avail_in&&a===i?1:0,Y(t,t.block_start,a,r),t.block_start+=a,xt(t.strm)),r?3:1);},Dt=function Dt(t,e){var a,i;for(;;){if(t.lookahead<ut){if(Ut(t),t.lookahead<ut&&e===q)return 1;if(0===t.lookahead)break;}if(a=0,t.lookahead>=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ut&&(t.match_length=Zt(t,a)),t.match_length>=3){if(i=X(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;}while(0!=--t.match_length);t.strstart++;}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=yt(t,t.ins_h,t.window[t.strstart+1]);}else i=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(zt(t,!1),0===t.strm.avail_out))return 1;}return t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;},Tt=function Tt(t,e){var a,i,n;for(;;){if(t.lookahead<ut){if(Ut(t),t.lookahead<ut&&e===q)return 1;if(0===t.lookahead)break;}if(a=0,t.lookahead>=3&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length<t.max_lazy_match&&t.strstart-a<=t.w_size-ut&&(t.match_length=Zt(t,a),t.match_length<=5&&(t.strategy===rt||3===t.match_length&&t.strstart-t.match_start>4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=X(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=yt(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(zt(t,!1),0===t.strm.avail_out))return 1;}else if(t.match_available){if(i=X(t,0,t.window[t.strstart-1]),i&&zt(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1;}else t.match_available=1,t.strstart++,t.lookahead--;}return t.match_available&&(i=X(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;};function Ot(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n;}var It=[new Ot(0,0,0,0,St),new Ot(4,4,8,4,Dt),new Ot(4,5,16,8,Dt),new Ot(4,6,32,32,Dt),new Ot(4,4,16,16,Tt),new Ot(8,16,32,32,Tt),new Ot(8,16,128,128,Tt),new Ot(8,32,128,256,Tt),new Ot(32,128,258,1024,Tt),new Ot(32,258,258,4096,Tt)];function Ft(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ft,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),kt(this.dyn_ltree),kt(this.dyn_dtree),kt(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),kt(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),kt(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0;}var Lt=function Lt(t){if(!t)return 1;var e=t.state;return!e||e.strm!==t||e.status!==wt&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==mt&&e.status!==bt?1:0;},Nt=function Nt(t){if(Lt(t))return gt(t,at);t.total_in=t.total_out=0,t.data_type=_t;var e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?wt:mt,t.adler=2===e.wrap?0:1,e.last_flush=-2,P(e),tt;},Bt=function Bt(t){var e=Nt(t);var a;return e===tt&&((a=t.state).window_size=2*a.w_size,kt(a.head),a.max_lazy_match=It[a.level].max_lazy,a.good_match=It[a.level].good_length,a.nice_match=It[a.level].nice_length,a.max_chain_length=It[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e;},Ct=function Ct(t,e,a,i,n,s){if(!t)return at;var r=1;if(e===st&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==ft||i<8||i>15||e<0||e>9||s<0||s>ht||8===i&&1!==r)return gt(t,at);8===i&&(i=9);var o=new Ft();return t.state=o,o.strm=t,o.status=wt,o.wrap=r,o.gzhead=null,o.w_bits=i,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=n+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+3-1)/3),o.window=new Uint8Array(2*o.w_size),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<n+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=3*(o.lit_bufsize-1),o.level=e,o.strategy=s,o.method=a,Bt(t);};var Mt={deflateInit:function deflateInit(t,e){return Ct(t,e,ft,15,8,dt);},deflateInit2:Ct,deflateReset:Bt,deflateResetKeep:Nt,deflateSetHeader:function deflateSetHeader(t,e){return Lt(t)||2!==t.state.wrap?at:(t.state.gzhead=e,tt);},deflate:function deflate(t,e){if(Lt(t)||e>$||e<0)return t?gt(t,at):at;var a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===bt&&e!==V)return gt(t,0===t.avail_out?nt:at);var i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(xt(t),0===t.avail_out)return a.last_flush=-1,tt;}else if(0===t.avail_in&&pt(e)<=pt(i)&&e!==V)return gt(t,nt);if(a.status===bt&&0!==t.avail_in)return gt(t,nt);if(a.status===wt&&0===a.wrap&&(a.status=mt),a.status===wt){var _e4=ft+(a.w_bits-8<<4)<<8,_i618=-1;if(_i618=a.strategy>=ot||a.level<2?0:a.level<6?1:6===a.level?2:3,_e4|=_i618<<6,0!==a.strstart&&(_e4|=32),_e4+=31-_e4%31,Et(a,_e4),0!==a.strstart&&(Et(a,t.adler>>>16),Et(a,65535&t.adler)),t.adler=1,a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;}if(57===a.status)if(t.adler=0,At(a,31),At(a,139),At(a,8),a.gzhead)At(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),At(a,255&a.gzhead.time),At(a,a.gzhead.time>>8&255),At(a,a.gzhead.time>>16&255),At(a,a.gzhead.time>>24&255),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(At(a,255&a.gzhead.extra.length),At(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=H(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(At(a,0),At(a,0),At(a,0),At(a,0),At(a,0),At(a,9===a.level?2:a.strategy>=ot||a.level<2?4:0),At(a,3),a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;if(69===a.status){if(a.gzhead.extra){var _e5=a.pending,_i619=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+_i619>a.pending_buf_size;){var _n3=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+_n3),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>_e5&&(t.adler=H(t.adler,a.pending_buf,a.pending-_e5,_e5)),a.gzindex+=_n3,xt(t),0!==a.pending)return a.last_flush=-1,tt;_e5=0,_i619-=_n3;}var _n2=new Uint8Array(a.gzhead.extra);a.pending_buf.set(_n2.subarray(a.gzindex,a.gzindex+_i619),a.pending),a.pending+=_i619,a.gzhead.hcrc&&a.pending>_e5&&(t.adler=H(t.adler,a.pending_buf,a.pending-_e5,_e5)),a.gzindex=0;}a.status=73;}if(73===a.status){if(a.gzhead.name){var _e6,_i620=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>_i620&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i620,_i620)),xt(t),0!==a.pending)return a.last_flush=-1,tt;_i620=0;}_e6=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,At(a,_e6);}while(0!==_e6);a.gzhead.hcrc&&a.pending>_i620&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i620,_i620)),a.gzindex=0;}a.status=91;}if(91===a.status){if(a.gzhead.comment){var _e7,_i621=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>_i621&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i621,_i621)),xt(t),0!==a.pending)return a.last_flush=-1,tt;_i621=0;}_e7=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,At(a,_e7);}while(0!==_e7);a.gzhead.hcrc&&a.pending>_i621&&(t.adler=H(t.adler,a.pending_buf,a.pending-_i621,_i621));}a.status=103;}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(xt(t),0!==a.pending))return a.last_flush=-1,tt;At(a,255&t.adler),At(a,t.adler>>8&255),t.adler=0;}if(a.status=mt,xt(t),0!==a.pending)return a.last_flush=-1,tt;}if(0!==t.avail_in||0!==a.lookahead||e!==q&&a.status!==bt){var _i622=0===a.level?St(a,e):a.strategy===ot?function(t,e){var a;for(;;){if(0===t.lookahead&&(Ut(t),0===t.lookahead)){if(e===q)return 1;break;}if(t.match_length=0,a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(zt(t,!1),0===t.strm.avail_out))return 1;}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;}(a,e):a.strategy===lt?function(t,e){var a,i,n,s;var r=t.window;for(;;){if(t.lookahead<=ct){if(Ut(t),t.lookahead<=ct&&e===q)return 1;if(0===t.lookahead)break;}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+ct;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&n<s);t.match_length=ct-(s-n),t.match_length>t.lookahead&&(t.match_length=t.lookahead);}if(t.match_length>=3?(a=X(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=X(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(zt(t,!1),0===t.strm.avail_out))return 1;}return t.insert=0,e===V?(zt(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(zt(t,!1),0===t.strm.avail_out)?1:2;}(a,e):It[a.level].func(a,e);if(3!==_i622&&4!==_i622||(a.status=bt),1===_i622||3===_i622)return 0===t.avail_out&&(a.last_flush=-1),tt;if(2===_i622&&(e===J?W(a):e!==$&&(Y(a,0,0,!1),e===Q&&(kt(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),xt(t),0===t.avail_out))return a.last_flush=-1,tt;}return e!==V?tt:a.wrap<=0?et:(2===a.wrap?(At(a,255&t.adler),At(a,t.adler>>8&255),At(a,t.adler>>16&255),At(a,t.adler>>24&255),At(a,255&t.total_in),At(a,t.total_in>>8&255),At(a,t.total_in>>16&255),At(a,t.total_in>>24&255)):(Et(a,t.adler>>>16),Et(a,65535&t.adler)),xt(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?tt:et);},deflateEnd:function deflateEnd(t){if(Lt(t))return at;var e=t.state.status;return t.state=null,e===mt?gt(t,it):tt;},deflateSetDictionary:function deflateSetDictionary(t,e){var a=e.length;if(Lt(t))return at;var i=t.state,n=i.wrap;if(2===n||1===n&&i.status!==wt||i.lookahead)return at;if(1===n&&(t.adler=C(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(kt(i.head),i.strstart=0,i.block_start=0,i.insert=0);var _t2=new Uint8Array(i.w_size);_t2.set(e.subarray(a-i.w_size,a),0),e=_t2,a=i.w_size;}var s=t.avail_in,r=t.next_in,o=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Ut(i);i.lookahead>=3;){var _t3=i.strstart,_e8=i.lookahead-2;do{i.ins_h=yt(i,i.ins_h,i.window[_t3+3-1]),i.prev[_t3&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=_t3,_t3++;}while(--_e8);i.strstart=_t3,i.lookahead=2,Ut(i);}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=o,t.avail_in=s,i.wrap=n,tt;},deflateInfo:"pako deflate (from Nodeca project)"};var Ht=function Ht(t,e){return Object.prototype.hasOwnProperty.call(t,e);};var jt=function jt(t){var e=Array.prototype.slice.call(arguments,1);for(;e.length;){var _a10=e.shift();if(_a10){if("object"!=_typeof(_a10))throw new TypeError(_a10+"must be non-object");for(var _e9 in _a10){Ht(_a10,_e9)&&(t[_e9]=_a10[_e9]);}}}return t;},Kt=function Kt(t){var e=0;for(var _a11=0,_i623=t.length;_a11<_i623;_a11++){e+=t[_a11].length;}var a=new Uint8Array(e);for(var _e10=0,_i624=0,_n4=t.length;_e10<_n4;_e10++){var _n5=t[_e10];a.set(_n5,_i624),_i624+=_n5.length;}return a;};var Pt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1));}catch(t){Pt=!1;}var Yt=new Uint8Array(256);for(var _t4=0;_t4<256;_t4++){Yt[_t4]=_t4>=252?6:_t4>=248?5:_t4>=240?4:_t4>=224?3:_t4>=192?2:1;}Yt[254]=Yt[254]=1;var Gt=function Gt(t){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);var e,a,i,n,s,r=t.length,o=0;for(n=0;n<r;n++){a=t.charCodeAt(n),55296==(64512&a)&&n+1<r&&(i=t.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),o+=a<128?1:a<2048?2:a<65536?3:4;}for(e=new Uint8Array(o),s=0,n=0;s<o;n++){a=t.charCodeAt(n),55296==(64512&a)&&n+1<r&&(i=t.charCodeAt(n+1),56320==(64512&i)&&(a=65536+(a-55296<<10)+(i-56320),n++)),a<128?e[s++]=a:a<2048?(e[s++]=192|a>>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);}return e;},Xt=function Xt(t,e){var a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));var i,n;var s=new Array(2*a);for(n=0,i=0;i<a;){var _e11=t[i++];if(_e11<128){s[n++]=_e11;continue;}var _r2=Yt[_e11];if(_r2>4)s[n++]=65533,i+=_r2-1;else{for(_e11&=2===_r2?31:3===_r2?15:7;_r2>1&&i<a;){_e11=_e11<<6|63&t[i++],_r2--;}_r2>1?s[n++]=65533:_e11<65536?s[n++]=_e11:(_e11-=65536,s[n++]=55296|_e11>>10&1023,s[n++]=56320|1023&_e11);}}return function(t,e){if(e<65534&&t.subarray&&Pt)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));var a="";for(var _i625=0;_i625<e;_i625++){a+=String.fromCharCode(t[_i625]);}return a;}(s,n);},Wt=function Wt(t,e){(e=e||t.length)>t.length&&(e=t.length);var a=e-1;for(;a>=0&&128==(192&t[a]);){a--;}return a<0||0===a?e:a+Yt[t[a]]>e?a:e;};var qt=function qt(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};var Jt=Object.prototype.toString,Qt=K.Z_NO_FLUSH,Vt=K.Z_SYNC_FLUSH,$t=K.Z_FULL_FLUSH,te=K.Z_FINISH,ee=K.Z_OK,ae=K.Z_STREAM_END,ie=K.Z_DEFAULT_COMPRESSION,ne=K.Z_DEFAULT_STRATEGY,se=K.Z_DEFLATED;function re(t){this.options=jt({level:ie,method:se,chunkSize:16384,windowBits:15,memLevel:8,strategy:ne},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qt(),this.strm.avail_out=0;var a=Mt.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==ee)throw new Error(j[a]);if(e.header&&Mt.deflateSetHeader(this.strm,e.header),e.dictionary){var _t5;if(_t5="string"==typeof e.dictionary?Gt(e.dictionary):"[object ArrayBuffer]"===Jt.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=Mt.deflateSetDictionary(this.strm,_t5),a!==ee)throw new Error(j[a]);this._dict_set=!0;}}function oe(t,e){var a=new re(e);if(a.push(t,!0),a.err)throw a.msg||j[a.err];return a.result;}re.prototype.push=function(t,e){var a=this.strm,i=this.options.chunkSize;var n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?te:Qt,"string"==typeof t?a.input=Gt(t):"[object ArrayBuffer]"===Jt.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Vt||s===$t)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=Mt.deflate(a,s),n===ae)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=Mt.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===ee;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break;}else this.onData(a.output);}}return!0;},re.prototype.onData=function(t){this.chunks.push(t);},re.prototype.onEnd=function(t){t===ee&&(this.result=Kt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg;};var le={Deflate:re,deflate:oe,deflateRaw:function deflateRaw(t,e){return(e=e||{}).raw=!0,oe(t,e);},gzip:function gzip(t,e){return(e=e||{}).gzip=!0,oe(t,e);},constants:K};var he=16209;var de=function de(t,e){var a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z,A;var E=t.state;a=t.next_in,z=t.input,i=a+(t.avail_in-5),n=t.next_out,A=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),o=E.dmax,l=E.wsize,h=E.whave,d=E.wnext,_=E.window,f=E.hold,c=E.bits,u=E.lencode,w=E.distcode,m=(1<<E.lenbits)-1,b=(1<<E.distbits)-1;t:do{c<15&&(f+=z[a++]<<c,c+=8,f+=z[a++]<<c,c+=8),g=u[f&m];e:for(;;){if(p=g>>>24,f>>>=p,c-=p,p=g>>>16&255,0===p)A[n++]=65535&g;else{if(!(16&p)){if(0==(64&p)){g=u[(65535&g)+(f&(1<<p)-1)];continue e;}if(32&p){E.mode=16191;break t;}t.msg="invalid literal/length code",E.mode=he;break t;}k=65535&g,p&=15,p&&(c<p&&(f+=z[a++]<<c,c+=8),k+=f&(1<<p)-1,f>>>=p,c-=p),c<15&&(f+=z[a++]<<c,c+=8,f+=z[a++]<<c,c+=8),g=w[f&b];a:for(;;){if(p=g>>>24,f>>>=p,c-=p,p=g>>>16&255,!(16&p)){if(0==(64&p)){g=w[(65535&g)+(f&(1<<p)-1)];continue a;}t.msg="invalid distance code",E.mode=he;break t;}if(v=65535&g,p&=15,c<p&&(f+=z[a++]<<c,c+=8,c<p&&(f+=z[a++]<<c,c+=8)),v+=f&(1<<p)-1,v>o){t.msg="invalid distance too far back",E.mode=he;break t;}if(f>>>=p,c-=p,p=n-s,v>p){if(p=v-p,p>h&&E.sane){t.msg="invalid distance too far back",E.mode=he;break t;}if(y=0,x=_,0===d){if(y+=l-p,p<k){k-=p;do{A[n++]=_[y++];}while(--p);y=n-v,x=A;}}else if(d<p){if(y+=l+d-p,p-=d,p<k){k-=p;do{A[n++]=_[y++];}while(--p);if(y=0,d<k){p=d,k-=p;do{A[n++]=_[y++];}while(--p);y=n-v,x=A;}}}else if(y+=d-p,p<k){k-=p;do{A[n++]=_[y++];}while(--p);y=n-v,x=A;}for(;k>2;){A[n++]=x[y++],A[n++]=x[y++],A[n++]=x[y++],k-=3;}k&&(A[n++]=x[y++],k>1&&(A[n++]=x[y++]));}else{y=n-v;do{A[n++]=A[y++],A[n++]=A[y++],A[n++]=A[y++],k-=3;}while(k>2);k&&(A[n++]=A[y++],k>1&&(A[n++]=A[y++]));}break;}}break;}}while(a<i&&n<r);k=c>>3,a-=k,c-=k<<3,f&=(1<<c)-1,t.next_in=a,t.next_out=n,t.avail_in=a<i?i-a+5:5-(a-i),t.avail_out=n<r?r-n+257:257-(n-r),E.hold=f,E.bits=c;};var _e=15,fe=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),ce=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),ue=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),we=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var me=function me(t,e,a,i,n,s,r,o){var l=o.bits;var h,d,_,f,c,u,w=0,m=0,b=0,g=0,p=0,k=0,v=0,y=0,x=0,z=0,A=null;var E=new Uint16Array(16),R=new Uint16Array(16);var Z,U,S,D=null;for(w=0;w<=_e;w++){E[w]=0;}for(m=0;m<i;m++){E[e[a+m]]++;}for(p=l,g=_e;g>=1&&0===E[g];g--){;}if(p>g&&(p=g),0===g)return n[s++]=20971520,n[s++]=20971520,o.bits=1,0;for(b=1;b<g&&0===E[b];b++){;}for(p<b&&(p=b),y=1,w=1;w<=_e;w++){if(y<<=1,y-=E[w],y<0)return-1;}if(y>0&&(0===t||1!==g))return-1;for(R[1]=0,w=1;w<_e;w++){R[w+1]=R[w]+E[w];}for(m=0;m<i;m++){0!==e[a+m]&&(r[R[e[a+m]]++]=m);}if(0===t?(A=D=r,u=20):1===t?(A=fe,D=ce,u=257):(A=ue,D=we,u=0),z=0,m=0,w=b,c=s,k=p,v=0,_=-1,x=1<<p,f=x-1,1===t&&x>852||2===t&&x>592)return 1;for(;;){Z=w-v,r[m]+1<u?(U=0,S=r[m]):r[m]>=u?(U=D[r[m]-u],S=A[r[m]-u]):(U=96,S=0),h=1<<w-v,d=1<<k,b=d;do{d-=h,n[c+(z>>v)+d]=Z<<24|U<<16|S|0;}while(0!==d);for(h=1<<w-1;z&h;){h>>=1;}if(0!==h?(z&=h-1,z+=h):z=0,m++,0==--E[w]){if(w===g)break;w=e[a+r[m]];}if(w>p&&(z&f)!==_){for(0===v&&(v=p),c+=b,k=w-v,y=1<<k;k+v<g&&(y-=E[k+v],!(y<=0));){k++,y<<=1;}if(x+=1<<k,1===t&&x>852||2===t&&x>592)return 1;_=z&f,n[_]=p<<24|k<<16|c-s|0;}}return 0!==z&&(n[c+z]=w-v<<24|64<<16|0),o.bits=p,0;};var be=K.Z_FINISH,ge=K.Z_BLOCK,pe=K.Z_TREES,ke=K.Z_OK,ve=K.Z_STREAM_END,ye=K.Z_NEED_DICT,xe=K.Z_STREAM_ERROR,ze=K.Z_DATA_ERROR,Ae=K.Z_MEM_ERROR,Ee=K.Z_BUF_ERROR,Re=K.Z_DEFLATED,Ze=16180,Ue=16190,Se=16191,De=16192,Te=16194,Oe=16199,Ie=16200,Fe=16206,Le=16209,Ne=function Ne(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);};function Be(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}var Ce=function Ce(t){if(!t)return 1;var e=t.state;return!e||e.strm!==t||e.mode<Ze||e.mode>16211?1:0;},Me=function Me(t){if(Ce(t))return xe;var e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=Ze,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,ke;},He=function He(t){if(Ce(t))return xe;var e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Me(t);},je=function je(t,e){var a;if(Ce(t))return xe;var i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?xe:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,He(t));},Ke=function Ke(t,e){if(!t)return xe;var a=new Be();t.state=a,a.strm=t,a.window=null,a.mode=Ze;var i=je(t,e);return i!==ke&&(t.state=null),i;};var Pe,Ye,Ge=!0;var Xe=function Xe(t){if(Ge){Pe=new Int32Array(512),Ye=new Int32Array(32);var _e12=0;for(;_e12<144;){t.lens[_e12++]=8;}for(;_e12<256;){t.lens[_e12++]=9;}for(;_e12<280;){t.lens[_e12++]=7;}for(;_e12<288;){t.lens[_e12++]=8;}for(me(1,t.lens,0,288,Pe,0,t.work,{bits:9}),_e12=0;_e12<32;){t.lens[_e12++]=5;}me(2,t.lens,0,32,Ye,0,t.work,{bits:5}),Ge=!1;}t.lencode=Pe,t.lenbits=9,t.distcode=Ye,t.distbits=5;},We=function We(t,e,a,i){var n;var s=t.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),i>=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=n))),0;};var qe={inflateReset:He,inflateReset2:je,inflateResetKeep:Me,inflateInit:function inflateInit(t){return Ke(t,15);},inflateInit2:Ke,inflate:function inflate(t,e){var a,i,n,s,r,o,l,h,d,_,f,c,u,w,m,b,g,p,k,v,y,x,z=0;var A=new Uint8Array(4);var E,R;var Z=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ce(t)||!t.output||!t.input&&0!==t.avail_in)return xe;a=t.state,a.mode===Se&&(a.mode=De),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,_=o,f=l,x=ke;t:for(;;){switch(a.mode){case Ze:if(0===a.wrap){a.mode=De;break;}for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(2&a.wrap&&35615===h){0===a.wbits&&(a.wbits=15),a.check=0,A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0),h=0,d=0,a.mode=16181;break;}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",a.mode=Le;break;}if((15&h)!==Re){t.msg="unknown compression method",a.mode=Le;break;}if(h>>>=4,d-=4,y=8+(15&h),0===a.wbits&&(a.wbits=y),y>15||y>a.wbits){t.msg="invalid window size",a.mode=Le;break;}a.dmax=1<<a.wbits,a.flags=0,t.adler=a.check=1,a.mode=512&h?16189:Se,h=0,d=0;break;case 16181:for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(a.flags=h,(255&a.flags)!==Re){t.msg="unknown compression method",a.mode=Le;break;}if(57344&a.flags){t.msg="unknown header flags set",a.mode=Le;break;}a.head&&(a.head.text=h>>8&1),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16182;case 16182:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.head&&(a.head.time=h),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,A[2]=h>>>16&255,A[3]=h>>>24&255,a.check=H(a.check,A,4,0)),h=0,d=0,a.mode=16183;case 16183:for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.head&&(a.head.xflags=255&h,a.head.os=h>>8),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0,a.mode=16184;case 16184:if(1024&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.length=h,a.head&&(a.head.extra_len=h),512&a.flags&&4&a.wrap&&(A[0]=255&h,A[1]=h>>>8&255,a.check=H(a.check,A,2,0)),h=0,d=0;}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(c=a.length,c>o&&(c=o),c&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+c),y)),512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,a.length-=c),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===o)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y));}while(y&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,y)break t;}else a.head&&(a.head.name=null);a.length=0,a.mode=16187;case 16187:if(4096&a.flags){if(0===o)break t;c=0;do{y=i[s+c++],a.head&&y&&a.length<65536&&(a.head.comment+=String.fromCharCode(y));}while(y&&c<o);if(512&a.flags&&4&a.wrap&&(a.check=H(a.check,i,c,s)),o-=c,s+=c,y)break t;}else a.head&&(a.head.comment=null);a.mode=16188;case 16188:if(512&a.flags){for(;d<16;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(4&a.wrap&&h!==(65535&a.check)){t.msg="header crc mismatch",a.mode=Le;break;}h=0,d=0;}a.head&&(a.head.hcrc=a.flags>>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=Se;break;case 16189:for(;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}t.adler=a.check=Ne(h),h=0,d=0,a.mode=Ue;case Ue:if(0===a.havedict)return t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,ye;t.adler=a.check=1,a.mode=Se;case Se:if(e===ge||e===pe)break t;case De:if(a.last){h>>>=7&d,d-=7&d,a.mode=Fe;break;}for(;d<3;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}switch(a.last=1&h,h>>>=1,d-=1,3&h){case 0:a.mode=16193;break;case 1:if(Xe(a),a.mode=Oe,e===pe){h>>>=2,d-=2;break t;}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=Le;}h>>>=2,d-=2;break;case 16193:for(h>>>=7&d,d-=7&d;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if((65535&h)!=(h>>>16^65535)){t.msg="invalid stored block lengths",a.mode=Le;break;}if(a.length=65535&h,h=0,d=0,a.mode=Te,e===pe)break t;case Te:a.mode=16195;case 16195:if(c=a.length,c){if(c>o&&(c=o),c>l&&(c=l),0===c)break t;n.set(i.subarray(s,s+c),r),o-=c,s+=c,l-=c,r+=c,a.length-=c;break;}a.mode=Se;break;case 16196:for(;d<14;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(a.nlen=257+(31&h),h>>>=5,d-=5,a.ndist=1+(31&h),h>>>=5,d-=5,a.ncode=4+(15&h),h>>>=4,d-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=Le;break;}a.have=0,a.mode=16197;case 16197:for(;a.have<a.ncode;){for(;d<3;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.lens[Z[a.have++]]=7&h,h>>>=3,d-=3;}for(;a.have<19;){a.lens[Z[a.have++]]=0;}if(a.lencode=a.lendyn,a.lenbits=7,E={bits:a.lenbits},x=me(0,a.lens,0,19,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid code lengths set",a.mode=Le;break;}a.have=0,a.mode=16198;case 16198:for(;a.have<a.nlen+a.ndist;){for(;z=a.lencode[h&(1<<a.lenbits)-1],m=z>>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(g<16)h>>>=m,d-=m,a.lens[a.have++]=g;else{if(16===g){for(R=m+2;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(h>>>=m,d-=m,0===a.have){t.msg="invalid bit length repeat",a.mode=Le;break;}y=a.lens[a.have-1],c=3+(3&h),h>>>=2,d-=2;}else if(17===g){for(R=m+3;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=m,d-=m,y=0,c=3+(7&h),h>>>=3,d-=3;}else{for(R=m+7;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=m,d-=m,y=0,c=11+(127&h),h>>>=7,d-=7;}if(a.have+c>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=Le;break;}for(;c--;){a.lens[a.have++]=y;}}}if(a.mode===Le)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=Le;break;}if(a.lenbits=9,E={bits:a.lenbits},x=me(1,a.lens,0,a.nlen,a.lencode,0,a.work,E),a.lenbits=E.bits,x){t.msg="invalid literal/lengths set",a.mode=Le;break;}if(a.distbits=6,a.distcode=a.distdyn,E={bits:a.distbits},x=me(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,E),a.distbits=E.bits,x){t.msg="invalid distances set",a.mode=Le;break;}if(a.mode=Oe,e===pe)break t;case Oe:a.mode=Ie;case Ie:if(o>=6&&l>=258){t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,de(t,f),r=t.next_out,n=t.output,l=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,h=a.hold,d=a.bits,a.mode===Se&&(a.back=-1);break;}for(a.back=0;z=a.lencode[h&(1<<a.lenbits)-1],m=z>>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(b&&0==(240&b)){for(p=m,k=b,v=g;z=a.lencode[v+((h&(1<<p+k)-1)>>p)],m=z>>>24,b=z>>>16&255,g=65535&z,!(p+m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=p,d-=p,a.back+=p;}if(h>>>=m,d-=m,a.back+=m,a.length=g,0===b){a.mode=16205;break;}if(32&b){a.back=-1,a.mode=Se;break;}if(64&b){t.msg="invalid literal/length code",a.mode=Le;break;}a.extra=15&b,a.mode=16201;case 16201:if(a.extra){for(R=a.extra;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.length+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra;}a.was=a.length,a.mode=16202;case 16202:for(;z=a.distcode[h&(1<<a.distbits)-1],m=z>>>24,b=z>>>16&255,g=65535&z,!(m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(0==(240&b)){for(p=m,k=b,v=g;z=a.distcode[v+((h&(1<<p+k)-1)>>p)],m=z>>>24,b=z>>>16&255,g=65535&z,!(p+m<=d);){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}h>>>=p,d-=p,a.back+=p;}if(h>>>=m,d-=m,a.back+=m,64&b){t.msg="invalid distance code",a.mode=Le;break;}a.offset=g,a.extra=15&b,a.mode=16203;case 16203:if(a.extra){for(R=a.extra;d<R;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}a.offset+=h&(1<<a.extra)-1,h>>>=a.extra,d-=a.extra,a.back+=a.extra;}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=Le;break;}a.mode=16204;case 16204:if(0===l)break t;if(c=f-l,a.offset>c){if(c=a.offset-c,c>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=Le;break;}c>a.wnext?(c-=a.wnext,u=a.wsize-c):u=a.wnext-c,c>a.length&&(c=a.length),w=a.window;}else w=n,u=r-a.offset,c=a.length;c>l&&(c=l),l-=c,a.length-=c;do{n[r++]=w[u++];}while(--c);0===a.length&&(a.mode=Ie);break;case 16205:if(0===l)break t;n[r++]=a.length,l--,a.mode=Ie;break;case Fe:if(a.wrap){for(;d<32;){if(0===o)break t;o--,h|=i[s++]<<d,d+=8;}if(f-=l,t.total_out+=f,a.total+=f,4&a.wrap&&f&&(t.adler=a.check=a.flags?H(a.check,n,f,r-f):C(a.check,n,f,r-f)),f=l,4&a.wrap&&(a.flags?h:Ne(h))!==a.check){t.msg="incorrect data check",a.mode=Le;break;}h=0,d=0;}a.mode=16207;case 16207:if(a.wrap&&a.flags){for(;d<32;){if(0===o)break t;o--,h+=i[s++]<<d,d+=8;}if(4&a.wrap&&h!==(4294967295&a.total)){t.msg="incorrect length check",a.mode=Le;break;}h=0,d=0;}a.mode=16208;case 16208:x=ve;break t;case Le:x=ze;break t;case 16210:return Ae;default:return xe;}}return t.next_out=r,t.avail_out=l,t.next_in=s,t.avail_in=o,a.hold=h,a.bits=d,(a.wsize||f!==t.avail_out&&a.mode<Le&&(a.mode<Fe||e!==be))&&We(t,t.output,t.next_out,f-t.avail_out),_-=t.avail_in,f-=t.avail_out,t.total_in+=_,t.total_out+=f,a.total+=f,4&a.wrap&&f&&(t.adler=a.check=a.flags?H(a.check,n,f,t.next_out-f):C(a.check,n,f,t.next_out-f)),t.data_type=a.bits+(a.last?64:0)+(a.mode===Se?128:0)+(a.mode===Oe||a.mode===Te?256:0),(0===_&&0===f||e===be)&&x===ke&&(x=Ee),x;},inflateEnd:function inflateEnd(t){if(Ce(t))return xe;var e=t.state;return e.window&&(e.window=null),t.state=null,ke;},inflateGetHeader:function inflateGetHeader(t,e){if(Ce(t))return xe;var a=t.state;return 0==(2&a.wrap)?xe:(a.head=e,e.done=!1,ke);},inflateSetDictionary:function inflateSetDictionary(t,e){var a=e.length;var i,n,s;return Ce(t)?xe:(i=t.state,0!==i.wrap&&i.mode!==Ue?xe:i.mode===Ue&&(n=1,n=C(n,e,a,0),n!==i.check)?ze:(s=We(t,e,a,a),s?(i.mode=16210,Ae):(i.havedict=1,ke)));},inflateInfo:"pako inflate (from Nodeca project)"};var Je=function Je(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1;};var Qe=Object.prototype.toString,Ve=K.Z_NO_FLUSH,$e=K.Z_FINISH,ta=K.Z_OK,ea=K.Z_STREAM_END,aa=K.Z_NEED_DICT,ia=K.Z_STREAM_ERROR,na=K.Z_DATA_ERROR,sa=K.Z_MEM_ERROR;function ra(t){this.options=jt({chunkSize:65536,windowBits:15,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new qt(),this.strm.avail_out=0;var a=qe.inflateInit2(this.strm,e.windowBits);if(a!==ta)throw new Error(j[a]);if(this.header=new Je(),qe.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Gt(e.dictionary):"[object ArrayBuffer]"===Qe.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=qe.inflateSetDictionary(this.strm,e.dictionary),a!==ta)))throw new Error(j[a]);}function oa(t,e){var a=new ra(e);if(a.push(t),a.err)throw a.msg||j[a.err];return a.result;}ra.prototype.push=function(t,e){var a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;var s,r,o;if(this.ended)return!1;for(r=e===~~e?e:!0===e?$e:Ve,"[object ArrayBuffer]"===Qe.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),s=qe.inflate(a,r),s===aa&&n&&(s=qe.inflateSetDictionary(a,n),s===ta?s=qe.inflate(a,r):s===na&&(s=aa));a.avail_in>0&&s===ea&&a.state.wrap>0&&0!==t[a.next_in];){qe.inflateReset(a),s=qe.inflate(a,r);}switch(s){case ia:case na:case aa:case sa:return this.onEnd(s),this.ended=!0,!1;}if(o=a.avail_out,a.next_out&&(0===a.avail_out||s===ea))if("string"===this.options.to){var _t6=Wt(a.output,a.next_out),_e13=a.next_out-_t6,_n6=Xt(a.output,_t6);a.next_out=_e13,a.avail_out=i-_e13,_e13&&a.output.set(a.output.subarray(_t6,_t6+_e13),0),this.onData(_n6);}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(s!==ta||0!==o){if(s===ea)return s=qe.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===a.avail_in)break;}}return!0;},ra.prototype.onData=function(t){this.chunks.push(t);},ra.prototype.onEnd=function(t){t===ta&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Kt(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg;};var la={Inflate:ra,inflate:oa,inflateRaw:function inflateRaw(t,e){return(e=e||{}).raw=!0,oa(t,e);},ungzip:oa,constants:K};var ha=le.Deflate,da=le.deflate,_a=le.deflateRaw,fa=le.gzip,ca=la.Inflate,ua=la.inflate,wa=la.inflateRaw,ma=la.ungzip;var ba=ha,ga=da,pa=_a,ka=fa,va=ca,ya=ua,xa=wa,za=ma,Aa=K,Ea={Deflate:ba,deflate:ga,deflateRaw:pa,gzip:ka,Inflate:va,inflate:ya,inflateRaw:xa,ungzip:za,constants:Aa};t.Deflate=ba,t.Inflate=va,t.constants=Aa,t["default"]=Ea,t.deflate=ga,t.deflateRaw=pa,t.gzip=ka,t.inflate=ya,t.inflateRaw=xa,t.ungzip=za,Object.defineProperty(t,"__esModule",{value:!0});});var p=/*#__PURE__*/Object.freeze({__proto__:null});/*
30862
30872
 
30863
30873
  Parser for .XKT Format V1
30864
30874
 
@@ -30867,7 +30877,7 @@ var isBase64=!!dataUriRegexResult[2];var data=dataUriRegexResult[3];data=window.
30867
30877
  DEPRECATED
30868
30878
 
30869
30879
  */var pako$a=window.pako||p;if(!pako$a.inflate){// See https://github.com/nodeca/pako/issues/97
30870
- pako$a=pako$a["default"];}var decompressColor$b=function(){var color2=new Float32Array(3);return function(color){color2[0]=color[0]/255.0;color2[1]=color[1]/255.0;color2[2]=color[2]/255.0;return color2;};}();function extract$a(elements){return{positions:elements[0],normals:elements[1],indices:elements[2],edgeIndices:elements[3],meshPositions:elements[4],meshIndices:elements[5],meshEdgesIndices:elements[6],meshColors:elements[7],entityIDs:elements[8],entityMeshes:elements[9],entityIsObjects:elements[10],positionsDecodeMatrix:elements[11]};}function inflate$a(deflatedData){return{positions:new Uint16Array(pako$a.inflate(deflatedData.positions).buffer),normals:new Int8Array(pako$a.inflate(deflatedData.normals).buffer),indices:new Uint32Array(pako$a.inflate(deflatedData.indices).buffer),edgeIndices:new Uint32Array(pako$a.inflate(deflatedData.edgeIndices).buffer),meshPositions:new Uint32Array(pako$a.inflate(deflatedData.meshPositions).buffer),meshIndices:new Uint32Array(pako$a.inflate(deflatedData.meshIndices).buffer),meshEdgesIndices:new Uint32Array(pako$a.inflate(deflatedData.meshEdgesIndices).buffer),meshColors:new Uint8Array(pako$a.inflate(deflatedData.meshColors).buffer),entityIDs:pako$a.inflate(deflatedData.entityIDs,{to:'string'}),entityMeshes:new Uint32Array(pako$a.inflate(deflatedData.entityMeshes).buffer),entityIsObjects:new Uint8Array(pako$a.inflate(deflatedData.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(pako$a.inflate(deflatedData.positionsDecodeMatrix).buffer)};}function load$b(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){manifestCtx.getNextId();sceneModel.positionsCompression="precompressed";sceneModel.normalsCompression="precompressed";var positions=inflatedData.positions;var normals=inflatedData.normals;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var meshPositions=inflatedData.meshPositions;var meshIndices=inflatedData.meshIndices;var meshEdgesIndices=inflatedData.meshEdgesIndices;var meshColors=inflatedData.meshColors;var entityIDs=JSON.parse(inflatedData.entityIDs);var entityMeshes=inflatedData.entityMeshes;var entityIsObjects=inflatedData.entityIsObjects;var numMeshes=meshPositions.length;var numEntities=entityMeshes.length;for(var _i627=0;_i627<numEntities;_i627++){var xktEntityId=entityIDs[_i627];var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};if(metaObject){if(options.excludeTypesMap&&metaObject.type&&options.excludeTypesMap[metaObject.type]){continue;}if(options.includeTypesMap&&metaObject.type&&!options.includeTypesMap[metaObject.type]){continue;}var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}}}else{if(options.excludeUnclassifiedObjects){continue;}}var lastEntity=_i627===numEntities-1;var meshIds=[];for(var j=entityMeshes[_i627],jlen=lastEntity?entityMeshes.length:entityMeshes[_i627+1];j<jlen;j++){var lastMesh=j===numMeshes-1;var meshId=entityId+".mesh."+j;var _color6=decompressColor$b(meshColors.subarray(j*4,j*4+3));var _opacity=meshColors[j*4+3]/255.0;sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,primitive:"triangles",positionsCompressed:positions.subarray(meshPositions[j],lastMesh?positions.length:meshPositions[j+1]),normalsCompressed:normals.subarray(meshPositions[j],lastMesh?positions.length:meshPositions[j+1]),indices:indices.subarray(meshIndices[j],lastMesh?indices.length:meshIndices[j+1]),edgeIndices:edgeIndices.subarray(meshEdgesIndices[j],lastMesh?edgeIndices.length:meshEdgesIndices[j+1]),positionsDecodeMatrix:inflatedData.positionsDecodeMatrix,color:_color6,opacity:_opacity}));meshIds.push(meshId);}sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:entityIsObjects[_i627]===1,meshIds:meshIds}));}}/** @private */var ParserV1={version:1,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$a(elements);var inflatedData=inflate$a(deflatedData);load$b(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30880
+ pako$a=pako$a["default"];}var decompressColor$b=function(){var color2=new Float32Array(3);return function(color){color2[0]=color[0]/255.0;color2[1]=color[1]/255.0;color2[2]=color[2]/255.0;return color2;};}();function extract$a(elements){return{positions:elements[0],normals:elements[1],indices:elements[2],edgeIndices:elements[3],meshPositions:elements[4],meshIndices:elements[5],meshEdgesIndices:elements[6],meshColors:elements[7],entityIDs:elements[8],entityMeshes:elements[9],entityIsObjects:elements[10],positionsDecodeMatrix:elements[11]};}function inflate$a(deflatedData){return{positions:new Uint16Array(pako$a.inflate(deflatedData.positions).buffer),normals:new Int8Array(pako$a.inflate(deflatedData.normals).buffer),indices:new Uint32Array(pako$a.inflate(deflatedData.indices).buffer),edgeIndices:new Uint32Array(pako$a.inflate(deflatedData.edgeIndices).buffer),meshPositions:new Uint32Array(pako$a.inflate(deflatedData.meshPositions).buffer),meshIndices:new Uint32Array(pako$a.inflate(deflatedData.meshIndices).buffer),meshEdgesIndices:new Uint32Array(pako$a.inflate(deflatedData.meshEdgesIndices).buffer),meshColors:new Uint8Array(pako$a.inflate(deflatedData.meshColors).buffer),entityIDs:pako$a.inflate(deflatedData.entityIDs,{to:'string'}),entityMeshes:new Uint32Array(pako$a.inflate(deflatedData.entityMeshes).buffer),entityIsObjects:new Uint8Array(pako$a.inflate(deflatedData.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(pako$a.inflate(deflatedData.positionsDecodeMatrix).buffer)};}function load$b(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){manifestCtx.getNextId();sceneModel.positionsCompression="precompressed";sceneModel.normalsCompression="precompressed";var positions=inflatedData.positions;var normals=inflatedData.normals;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var meshPositions=inflatedData.meshPositions;var meshIndices=inflatedData.meshIndices;var meshEdgesIndices=inflatedData.meshEdgesIndices;var meshColors=inflatedData.meshColors;var entityIDs=JSON.parse(inflatedData.entityIDs);var entityMeshes=inflatedData.entityMeshes;var entityIsObjects=inflatedData.entityIsObjects;var numMeshes=meshPositions.length;var numEntities=entityMeshes.length;for(var _i626=0;_i626<numEntities;_i626++){var xktEntityId=entityIDs[_i626];var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};if(metaObject){if(options.excludeTypesMap&&metaObject.type&&options.excludeTypesMap[metaObject.type]){continue;}if(options.includeTypesMap&&metaObject.type&&!options.includeTypesMap[metaObject.type]){continue;}var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}}}else{if(options.excludeUnclassifiedObjects){continue;}}var lastEntity=_i626===numEntities-1;var meshIds=[];for(var j=entityMeshes[_i626],jlen=lastEntity?entityMeshes.length:entityMeshes[_i626+1];j<jlen;j++){var lastMesh=j===numMeshes-1;var meshId=entityId+".mesh."+j;var _color6=decompressColor$b(meshColors.subarray(j*4,j*4+3));var _opacity=meshColors[j*4+3]/255.0;sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,primitive:"triangles",positionsCompressed:positions.subarray(meshPositions[j],lastMesh?positions.length:meshPositions[j+1]),normalsCompressed:normals.subarray(meshPositions[j],lastMesh?positions.length:meshPositions[j+1]),indices:indices.subarray(meshIndices[j],lastMesh?indices.length:meshIndices[j+1]),edgeIndices:edgeIndices.subarray(meshEdgesIndices[j],lastMesh?edgeIndices.length:meshEdgesIndices[j+1]),positionsDecodeMatrix:inflatedData.positionsDecodeMatrix,color:_color6,opacity:_opacity}));meshIds.push(meshId);}sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:entityIsObjects[_i626]===1,meshIds:meshIds}));}}/** @private */var ParserV1={version:1,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$a(elements);var inflatedData=inflate$a(deflatedData);load$b(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30871
30881
 
30872
30882
  Parser for .XKT Format V2
30873
30883
 
@@ -30876,14 +30886,14 @@ DEPRECATED
30876
30886
  .XKT specifications: https://github.com/xeokit/xeokit-sdk/wiki/XKT-Format
30877
30887
 
30878
30888
  */var pako$9=window.pako||p;if(!pako$9.inflate){// See https://github.com/nodeca/pako/issues/97
30879
- pako$9=pako$9["default"];}function extract$9(elements){return{positions:elements[0],normals:elements[1],indices:elements[2],edgeIndices:elements[3],meshPositions:elements[4],meshIndices:elements[5],meshEdgesIndices:elements[6],meshColors:elements[7],entityIDs:elements[8],entityMeshes:elements[9],entityIsObjects:elements[10],positionsDecodeMatrix:elements[11],entityMeshIds:elements[12],entityMatrices:elements[13],entityUsesInstancing:elements[14]};}function inflate$9(deflatedData){return{positions:new Uint16Array(pako$9.inflate(deflatedData.positions).buffer),normals:new Int8Array(pako$9.inflate(deflatedData.normals).buffer),indices:new Uint32Array(pako$9.inflate(deflatedData.indices).buffer),edgeIndices:new Uint32Array(pako$9.inflate(deflatedData.edgeIndices).buffer),meshPositions:new Uint32Array(pako$9.inflate(deflatedData.meshPositions).buffer),meshIndices:new Uint32Array(pako$9.inflate(deflatedData.meshIndices).buffer),meshEdgesIndices:new Uint32Array(pako$9.inflate(deflatedData.meshEdgesIndices).buffer),meshColors:new Uint8Array(pako$9.inflate(deflatedData.meshColors).buffer),entityIDs:pako$9.inflate(deflatedData.entityIDs,{to:'string'}),entityMeshes:new Uint32Array(pako$9.inflate(deflatedData.entityMeshes).buffer),entityIsObjects:new Uint8Array(pako$9.inflate(deflatedData.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(pako$9.inflate(deflatedData.positionsDecodeMatrix).buffer),entityMeshIds:new Uint32Array(pako$9.inflate(deflatedData.entityMeshIds).buffer),entityMatrices:new Float32Array(pako$9.inflate(deflatedData.entityMatrices).buffer),entityUsesInstancing:new Uint8Array(pako$9.inflate(deflatedData.entityUsesInstancing).buffer)};}var decompressColor$a=function(){var color2=new Float32Array(3);return function(color){color2[0]=color[0]/255.0;color2[1]=color[1]/255.0;color2[2]=color[2]/255.0;return color2;};}();function load$a(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();sceneModel.positionsCompression="precompressed";sceneModel.normalsCompression="precompressed";var positions=inflatedData.positions;var normals=inflatedData.normals;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var meshPositions=inflatedData.meshPositions;var meshIndices=inflatedData.meshIndices;var meshEdgesIndices=inflatedData.meshEdgesIndices;var meshColors=inflatedData.meshColors;var entityIDs=JSON.parse(inflatedData.entityIDs);var entityMeshes=inflatedData.entityMeshes;var entityIsObjects=inflatedData.entityIsObjects;var entityMeshIds=inflatedData.entityMeshIds;var entityMatrices=inflatedData.entityMatrices;var entityUsesInstancing=inflatedData.entityUsesInstancing;var numMeshes=meshPositions.length;var numEntities=entityMeshes.length;var alreadyCreatedGeometries={};for(var _i628=0;_i628<numEntities;_i628++){var xktEntityId=entityIDs[_i628];var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};var entityMatrix=entityMatrices.subarray(_i628*16,_i628*16+16);if(metaObject){if(options.excludeTypesMap&&metaObject.type&&options.excludeTypesMap[metaObject.type]){continue;}if(options.includeTypesMap&&metaObject.type&&!options.includeTypesMap[metaObject.type]){continue;}var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}}}else{if(options.excludeUnclassifiedObjects){continue;}}var lastEntity=_i628===numEntities-1;var meshIds=[];for(var j=entityMeshes[_i628],jlen=lastEntity?entityMeshIds.length:entityMeshes[_i628+1];j<jlen;j++){var jj=entityMeshIds[j];var lastMesh=jj===numMeshes-1;var meshId=manifestCtx.getNextId();var _color7=decompressColor$a(meshColors.subarray(jj*4,jj*4+3));var _opacity2=meshColors[jj*4+3]/255.0;var tmpPositions=positions.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpNormals=normals.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpIndices=indices.subarray(meshIndices[jj],lastMesh?indices.length:meshIndices[jj+1]);var tmpEdgeIndices=edgeIndices.subarray(meshEdgesIndices[jj],lastMesh?edgeIndices.length:meshEdgesIndices[jj+1]);if(entityUsesInstancing[_i628]===1){var geometryId="".concat(modelPartId,".geometry.").concat(meshId,".").concat(jj);if(!(geometryId in alreadyCreatedGeometries)){sceneModel.createGeometry({id:geometryId,positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,primitive:"triangles",positionsDecodeMatrix:inflatedData.positionsDecodeMatrix});alreadyCreatedGeometries[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,color:_color7,opacity:_opacity2,matrix:entityMatrix,geometryId:geometryId}));meshIds.push(meshId);}else{sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,primitive:"triangles",positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,positionsDecodeMatrix:inflatedData.positionsDecodeMatrix,color:_color7,opacity:_opacity2}));meshIds.push(meshId);}}if(meshIds.length){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:entityIsObjects[_i628]===1,meshIds:meshIds}));}}}/** @private */var ParserV2={version:2,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$9(elements);var inflatedData=inflate$9(deflatedData);load$a(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30889
+ pako$9=pako$9["default"];}function extract$9(elements){return{positions:elements[0],normals:elements[1],indices:elements[2],edgeIndices:elements[3],meshPositions:elements[4],meshIndices:elements[5],meshEdgesIndices:elements[6],meshColors:elements[7],entityIDs:elements[8],entityMeshes:elements[9],entityIsObjects:elements[10],positionsDecodeMatrix:elements[11],entityMeshIds:elements[12],entityMatrices:elements[13],entityUsesInstancing:elements[14]};}function inflate$9(deflatedData){return{positions:new Uint16Array(pako$9.inflate(deflatedData.positions).buffer),normals:new Int8Array(pako$9.inflate(deflatedData.normals).buffer),indices:new Uint32Array(pako$9.inflate(deflatedData.indices).buffer),edgeIndices:new Uint32Array(pako$9.inflate(deflatedData.edgeIndices).buffer),meshPositions:new Uint32Array(pako$9.inflate(deflatedData.meshPositions).buffer),meshIndices:new Uint32Array(pako$9.inflate(deflatedData.meshIndices).buffer),meshEdgesIndices:new Uint32Array(pako$9.inflate(deflatedData.meshEdgesIndices).buffer),meshColors:new Uint8Array(pako$9.inflate(deflatedData.meshColors).buffer),entityIDs:pako$9.inflate(deflatedData.entityIDs,{to:'string'}),entityMeshes:new Uint32Array(pako$9.inflate(deflatedData.entityMeshes).buffer),entityIsObjects:new Uint8Array(pako$9.inflate(deflatedData.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(pako$9.inflate(deflatedData.positionsDecodeMatrix).buffer),entityMeshIds:new Uint32Array(pako$9.inflate(deflatedData.entityMeshIds).buffer),entityMatrices:new Float32Array(pako$9.inflate(deflatedData.entityMatrices).buffer),entityUsesInstancing:new Uint8Array(pako$9.inflate(deflatedData.entityUsesInstancing).buffer)};}var decompressColor$a=function(){var color2=new Float32Array(3);return function(color){color2[0]=color[0]/255.0;color2[1]=color[1]/255.0;color2[2]=color[2]/255.0;return color2;};}();function load$a(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();sceneModel.positionsCompression="precompressed";sceneModel.normalsCompression="precompressed";var positions=inflatedData.positions;var normals=inflatedData.normals;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var meshPositions=inflatedData.meshPositions;var meshIndices=inflatedData.meshIndices;var meshEdgesIndices=inflatedData.meshEdgesIndices;var meshColors=inflatedData.meshColors;var entityIDs=JSON.parse(inflatedData.entityIDs);var entityMeshes=inflatedData.entityMeshes;var entityIsObjects=inflatedData.entityIsObjects;var entityMeshIds=inflatedData.entityMeshIds;var entityMatrices=inflatedData.entityMatrices;var entityUsesInstancing=inflatedData.entityUsesInstancing;var numMeshes=meshPositions.length;var numEntities=entityMeshes.length;var alreadyCreatedGeometries={};for(var _i627=0;_i627<numEntities;_i627++){var xktEntityId=entityIDs[_i627];var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};var entityMatrix=entityMatrices.subarray(_i627*16,_i627*16+16);if(metaObject){if(options.excludeTypesMap&&metaObject.type&&options.excludeTypesMap[metaObject.type]){continue;}if(options.includeTypesMap&&metaObject.type&&!options.includeTypesMap[metaObject.type]){continue;}var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}}}else{if(options.excludeUnclassifiedObjects){continue;}}var lastEntity=_i627===numEntities-1;var meshIds=[];for(var j=entityMeshes[_i627],jlen=lastEntity?entityMeshIds.length:entityMeshes[_i627+1];j<jlen;j++){var jj=entityMeshIds[j];var lastMesh=jj===numMeshes-1;var meshId=manifestCtx.getNextId();var _color7=decompressColor$a(meshColors.subarray(jj*4,jj*4+3));var _opacity2=meshColors[jj*4+3]/255.0;var tmpPositions=positions.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpNormals=normals.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpIndices=indices.subarray(meshIndices[jj],lastMesh?indices.length:meshIndices[jj+1]);var tmpEdgeIndices=edgeIndices.subarray(meshEdgesIndices[jj],lastMesh?edgeIndices.length:meshEdgesIndices[jj+1]);if(entityUsesInstancing[_i627]===1){var geometryId="".concat(modelPartId,".geometry.").concat(meshId,".").concat(jj);if(!(geometryId in alreadyCreatedGeometries)){sceneModel.createGeometry({id:geometryId,positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,primitive:"triangles",positionsDecodeMatrix:inflatedData.positionsDecodeMatrix});alreadyCreatedGeometries[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,color:_color7,opacity:_opacity2,matrix:entityMatrix,geometryId:geometryId}));meshIds.push(meshId);}else{sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,primitive:"triangles",positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,positionsDecodeMatrix:inflatedData.positionsDecodeMatrix,color:_color7,opacity:_opacity2}));meshIds.push(meshId);}}if(meshIds.length){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:entityIsObjects[_i627]===1,meshIds:meshIds}));}}}/** @private */var ParserV2={version:2,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$9(elements);var inflatedData=inflate$9(deflatedData);load$a(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30880
30890
 
30881
30891
  Parser for .XKT Format V3
30882
30892
 
30883
30893
  .XKT specifications: https://github.com/xeokit/xeokit-sdk/wiki/XKT-Format
30884
30894
 
30885
30895
  */var pako$8=window.pako||p;if(!pako$8.inflate){// See https://github.com/nodeca/pako/issues/97
30886
- pako$8=pako$8["default"];}function extract$8(elements){return{positions:elements[0],normals:elements[1],indices:elements[2],edgeIndices:elements[3],meshPositions:elements[4],meshIndices:elements[5],meshEdgesIndices:elements[6],meshColors:elements[7],entityIDs:elements[8],entityMeshes:elements[9],entityIsObjects:elements[10],instancedPositionsDecodeMatrix:elements[11],batchedPositionsDecodeMatrix:elements[12],entityMeshIds:elements[13],entityMatrices:elements[14],entityUsesInstancing:elements[15]};}function inflate$8(deflatedData){return{positions:new Uint16Array(pako$8.inflate(deflatedData.positions).buffer),normals:new Int8Array(pako$8.inflate(deflatedData.normals).buffer),indices:new Uint32Array(pako$8.inflate(deflatedData.indices).buffer),edgeIndices:new Uint32Array(pako$8.inflate(deflatedData.edgeIndices).buffer),meshPositions:new Uint32Array(pako$8.inflate(deflatedData.meshPositions).buffer),meshIndices:new Uint32Array(pako$8.inflate(deflatedData.meshIndices).buffer),meshEdgesIndices:new Uint32Array(pako$8.inflate(deflatedData.meshEdgesIndices).buffer),meshColors:new Uint8Array(pako$8.inflate(deflatedData.meshColors).buffer),entityIDs:pako$8.inflate(deflatedData.entityIDs,{to:'string'}),entityMeshes:new Uint32Array(pako$8.inflate(deflatedData.entityMeshes).buffer),entityIsObjects:new Uint8Array(pako$8.inflate(deflatedData.entityIsObjects).buffer),instancedPositionsDecodeMatrix:new Float32Array(pako$8.inflate(deflatedData.instancedPositionsDecodeMatrix).buffer),batchedPositionsDecodeMatrix:new Float32Array(pako$8.inflate(deflatedData.batchedPositionsDecodeMatrix).buffer),entityMeshIds:new Uint32Array(pako$8.inflate(deflatedData.entityMeshIds).buffer),entityMatrices:new Float32Array(pako$8.inflate(deflatedData.entityMatrices).buffer),entityUsesInstancing:new Uint8Array(pako$8.inflate(deflatedData.entityUsesInstancing).buffer)};}var decompressColor$9=function(){var color2=new Float32Array(3);return function(color){color2[0]=color[0]/255.0;color2[1]=color[1]/255.0;color2[2]=color[2]/255.0;return color2;};}();function load$9(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();sceneModel.positionsCompression="precompressed";sceneModel.normalsCompression="precompressed";var positions=inflatedData.positions;var normals=inflatedData.normals;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var meshPositions=inflatedData.meshPositions;var meshIndices=inflatedData.meshIndices;var meshEdgesIndices=inflatedData.meshEdgesIndices;var meshColors=inflatedData.meshColors;var entityIDs=JSON.parse(inflatedData.entityIDs);var entityMeshes=inflatedData.entityMeshes;var entityIsObjects=inflatedData.entityIsObjects;var entityMeshIds=inflatedData.entityMeshIds;var entityMatrices=inflatedData.entityMatrices;var entityUsesInstancing=inflatedData.entityUsesInstancing;var numMeshes=meshPositions.length;var numEntities=entityMeshes.length;var _alreadyCreatedGeometries={};for(var _i629=0;_i629<numEntities;_i629++){var xktEntityId=entityIDs[_i629];var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};var entityMatrix=entityMatrices.subarray(_i629*16,_i629*16+16);if(metaObject){if(options.excludeTypesMap&&metaObject.type&&options.excludeTypesMap[metaObject.type]){continue;}if(options.includeTypesMap&&metaObject.type&&!options.includeTypesMap[metaObject.type]){continue;}var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}}}else{if(options.excludeUnclassifiedObjects){continue;}}var lastEntity=_i629===numEntities-1;var meshIds=[];for(var j=entityMeshes[_i629],jlen=lastEntity?entityMeshIds.length:entityMeshes[_i629+1];j<jlen;j++){var jj=entityMeshIds[j];var lastMesh=jj===numMeshes-1;var meshId="".concat(modelPartId,".").concat(entityId,".mesh.").concat(jj);var _color8=decompressColor$9(meshColors.subarray(jj*4,jj*4+3));var _opacity3=meshColors[jj*4+3]/255.0;var tmpPositions=positions.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpNormals=normals.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpIndices=indices.subarray(meshIndices[jj],lastMesh?indices.length:meshIndices[jj+1]);var tmpEdgeIndices=edgeIndices.subarray(meshEdgesIndices[jj],lastMesh?edgeIndices.length:meshEdgesIndices[jj+1]);if(entityUsesInstancing[_i629]===1){var geometryId="".concat(modelPartId,".geometry.").concat(meshId,".").concat(jj);if(!(geometryId in _alreadyCreatedGeometries)){sceneModel.createGeometry({id:geometryId,positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,primitive:"triangles",positionsDecodeMatrix:inflatedData.instancedPositionsDecodeMatrix});_alreadyCreatedGeometries[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,color:_color8,opacity:_opacity3,matrix:entityMatrix,geometryId:geometryId}));meshIds.push(meshId);}else{sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,primitive:"triangles",positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,positionsDecodeMatrix:inflatedData.batchedPositionsDecodeMatrix,color:_color8,opacity:_opacity3}));meshIds.push(meshId);}}if(meshIds.length){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:entityIsObjects[_i629]===1,meshIds:meshIds}));}}}/** @private */var ParserV3={version:3,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$8(elements);var inflatedData=inflate$8(deflatedData);load$9(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30896
+ pako$8=pako$8["default"];}function extract$8(elements){return{positions:elements[0],normals:elements[1],indices:elements[2],edgeIndices:elements[3],meshPositions:elements[4],meshIndices:elements[5],meshEdgesIndices:elements[6],meshColors:elements[7],entityIDs:elements[8],entityMeshes:elements[9],entityIsObjects:elements[10],instancedPositionsDecodeMatrix:elements[11],batchedPositionsDecodeMatrix:elements[12],entityMeshIds:elements[13],entityMatrices:elements[14],entityUsesInstancing:elements[15]};}function inflate$8(deflatedData){return{positions:new Uint16Array(pako$8.inflate(deflatedData.positions).buffer),normals:new Int8Array(pako$8.inflate(deflatedData.normals).buffer),indices:new Uint32Array(pako$8.inflate(deflatedData.indices).buffer),edgeIndices:new Uint32Array(pako$8.inflate(deflatedData.edgeIndices).buffer),meshPositions:new Uint32Array(pako$8.inflate(deflatedData.meshPositions).buffer),meshIndices:new Uint32Array(pako$8.inflate(deflatedData.meshIndices).buffer),meshEdgesIndices:new Uint32Array(pako$8.inflate(deflatedData.meshEdgesIndices).buffer),meshColors:new Uint8Array(pako$8.inflate(deflatedData.meshColors).buffer),entityIDs:pako$8.inflate(deflatedData.entityIDs,{to:'string'}),entityMeshes:new Uint32Array(pako$8.inflate(deflatedData.entityMeshes).buffer),entityIsObjects:new Uint8Array(pako$8.inflate(deflatedData.entityIsObjects).buffer),instancedPositionsDecodeMatrix:new Float32Array(pako$8.inflate(deflatedData.instancedPositionsDecodeMatrix).buffer),batchedPositionsDecodeMatrix:new Float32Array(pako$8.inflate(deflatedData.batchedPositionsDecodeMatrix).buffer),entityMeshIds:new Uint32Array(pako$8.inflate(deflatedData.entityMeshIds).buffer),entityMatrices:new Float32Array(pako$8.inflate(deflatedData.entityMatrices).buffer),entityUsesInstancing:new Uint8Array(pako$8.inflate(deflatedData.entityUsesInstancing).buffer)};}var decompressColor$9=function(){var color2=new Float32Array(3);return function(color){color2[0]=color[0]/255.0;color2[1]=color[1]/255.0;color2[2]=color[2]/255.0;return color2;};}();function load$9(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();sceneModel.positionsCompression="precompressed";sceneModel.normalsCompression="precompressed";var positions=inflatedData.positions;var normals=inflatedData.normals;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var meshPositions=inflatedData.meshPositions;var meshIndices=inflatedData.meshIndices;var meshEdgesIndices=inflatedData.meshEdgesIndices;var meshColors=inflatedData.meshColors;var entityIDs=JSON.parse(inflatedData.entityIDs);var entityMeshes=inflatedData.entityMeshes;var entityIsObjects=inflatedData.entityIsObjects;var entityMeshIds=inflatedData.entityMeshIds;var entityMatrices=inflatedData.entityMatrices;var entityUsesInstancing=inflatedData.entityUsesInstancing;var numMeshes=meshPositions.length;var numEntities=entityMeshes.length;var _alreadyCreatedGeometries={};for(var _i628=0;_i628<numEntities;_i628++){var xktEntityId=entityIDs[_i628];var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};var entityMatrix=entityMatrices.subarray(_i628*16,_i628*16+16);if(metaObject){if(options.excludeTypesMap&&metaObject.type&&options.excludeTypesMap[metaObject.type]){continue;}if(options.includeTypesMap&&metaObject.type&&!options.includeTypesMap[metaObject.type]){continue;}var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}}}else{if(options.excludeUnclassifiedObjects){continue;}}var lastEntity=_i628===numEntities-1;var meshIds=[];for(var j=entityMeshes[_i628],jlen=lastEntity?entityMeshIds.length:entityMeshes[_i628+1];j<jlen;j++){var jj=entityMeshIds[j];var lastMesh=jj===numMeshes-1;var meshId="".concat(modelPartId,".").concat(entityId,".mesh.").concat(jj);var _color8=decompressColor$9(meshColors.subarray(jj*4,jj*4+3));var _opacity3=meshColors[jj*4+3]/255.0;var tmpPositions=positions.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpNormals=normals.subarray(meshPositions[jj],lastMesh?positions.length:meshPositions[jj+1]);var tmpIndices=indices.subarray(meshIndices[jj],lastMesh?indices.length:meshIndices[jj+1]);var tmpEdgeIndices=edgeIndices.subarray(meshEdgesIndices[jj],lastMesh?edgeIndices.length:meshEdgesIndices[jj+1]);if(entityUsesInstancing[_i628]===1){var geometryId="".concat(modelPartId,".geometry.").concat(meshId,".").concat(jj);if(!(geometryId in _alreadyCreatedGeometries)){sceneModel.createGeometry({id:geometryId,positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,primitive:"triangles",positionsDecodeMatrix:inflatedData.instancedPositionsDecodeMatrix});_alreadyCreatedGeometries[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,color:_color8,opacity:_opacity3,matrix:entityMatrix,geometryId:geometryId}));meshIds.push(meshId);}else{sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,primitive:"triangles",positionsCompressed:tmpPositions,normalsCompressed:tmpNormals,indices:tmpIndices,edgeIndices:tmpEdgeIndices,positionsDecodeMatrix:inflatedData.batchedPositionsDecodeMatrix,color:_color8,opacity:_opacity3}));meshIds.push(meshId);}}if(meshIds.length){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:entityIsObjects[_i628]===1,meshIds:meshIds}));}}}/** @private */var ParserV3={version:3,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$8(elements);var inflatedData=inflate$8(deflatedData);load$9(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30887
30897
 
30888
30898
  Parser for .XKT Format V4
30889
30899
 
@@ -30957,7 +30967,7 @@ indices:elements[3],edgeIndices:elements[4],// Transform matrices
30957
30967
  matrices:elements[5],reusedGeometriesDecodeMatrix:elements[6],// Geometries
30958
30968
  eachGeometryPrimitiveType:elements[7],eachGeometryPositionsPortion:elements[8],eachGeometryNormalsPortion:elements[9],eachGeometryColorsPortion:elements[10],eachGeometryIndicesPortion:elements[11],eachGeometryEdgeIndicesPortion:elements[12],// Meshes are grouped in runs that are shared by the same entities
30959
30969
  eachMeshGeometriesPortion:elements[13],eachMeshMatricesPortion:elements[14],eachMeshMaterial:elements[15],// Entity elements in the following arrays are grouped in runs that are shared by the same tiles
30960
- eachEntityId:elements[16],eachEntityMeshesPortion:elements[17],eachTileAABB:elements[18],eachTileEntitiesPortion:elements[19]};}function inflate$4(deflatedData){function inflate(array,options){return array.length===0?[]:pako$4.inflate(array,options).buffer;}return{positions:new Uint16Array(inflate(deflatedData.positions)),normals:new Int8Array(inflate(deflatedData.normals)),colors:new Uint8Array(inflate(deflatedData.colors)),indices:new Uint32Array(inflate(deflatedData.indices)),edgeIndices:new Uint32Array(inflate(deflatedData.edgeIndices)),matrices:new Float32Array(inflate(deflatedData.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(inflate(deflatedData.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(inflate(deflatedData.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(inflate(deflatedData.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(inflate(deflatedData.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(inflate(deflatedData.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(inflate(deflatedData.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(inflate(deflatedData.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(inflate(deflatedData.eachMeshMaterial)),eachEntityId:pako$4.inflate(deflatedData.eachEntityId,{to:'string'}),eachEntityMeshesPortion:new Uint32Array(inflate(deflatedData.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(inflate(deflatedData.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(inflate(deflatedData.eachTileEntitiesPortion))};}var decompressColor$5=function(){var floatColor=new Float32Array(3);return function(intColor){floatColor[0]=intColor[0]/255.0;floatColor[1]=intColor[1]/255.0;floatColor[2]=intColor[2]/255.0;return floatColor;};}();function convertColorsRGBToRGBA$1(colorsRGB){var colorsRGBA=[];for(var _i630=0,len=colorsRGB.length;_i630<len;_i630+=3){colorsRGBA.push(colorsRGB[_i630]);colorsRGBA.push(colorsRGB[_i630+1]);colorsRGBA.push(colorsRGB[_i630+2]);colorsRGBA.push(1.0);}return colorsRGBA;}function load$5(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();var positions=inflatedData.positions;var normals=inflatedData.normals;var colors=inflatedData.colors;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var matrices=inflatedData.matrices;var reusedGeometriesDecodeMatrix=inflatedData.reusedGeometriesDecodeMatrix;var eachGeometryPrimitiveType=inflatedData.eachGeometryPrimitiveType;var eachGeometryPositionsPortion=inflatedData.eachGeometryPositionsPortion;var eachGeometryNormalsPortion=inflatedData.eachGeometryNormalsPortion;var eachGeometryColorsPortion=inflatedData.eachGeometryColorsPortion;var eachGeometryIndicesPortion=inflatedData.eachGeometryIndicesPortion;var eachGeometryEdgeIndicesPortion=inflatedData.eachGeometryEdgeIndicesPortion;var eachMeshGeometriesPortion=inflatedData.eachMeshGeometriesPortion;var eachMeshMatricesPortion=inflatedData.eachMeshMatricesPortion;var eachMeshMaterial=inflatedData.eachMeshMaterial;var eachEntityId=JSON.parse(inflatedData.eachEntityId);var eachEntityMeshesPortion=inflatedData.eachEntityMeshesPortion;var eachTileAABB=inflatedData.eachTileAABB;var eachTileEntitiesPortion=inflatedData.eachTileEntitiesPortion;var numGeometries=eachGeometryPositionsPortion.length;var numMeshes=eachMeshGeometriesPortion.length;var numEntities=eachEntityId.length;var numTiles=eachTileEntitiesPortion.length;// Count instances of each geometry
30970
+ eachEntityId:elements[16],eachEntityMeshesPortion:elements[17],eachTileAABB:elements[18],eachTileEntitiesPortion:elements[19]};}function inflate$4(deflatedData){function inflate(array,options){return array.length===0?[]:pako$4.inflate(array,options).buffer;}return{positions:new Uint16Array(inflate(deflatedData.positions)),normals:new Int8Array(inflate(deflatedData.normals)),colors:new Uint8Array(inflate(deflatedData.colors)),indices:new Uint32Array(inflate(deflatedData.indices)),edgeIndices:new Uint32Array(inflate(deflatedData.edgeIndices)),matrices:new Float32Array(inflate(deflatedData.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(inflate(deflatedData.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(inflate(deflatedData.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(inflate(deflatedData.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(inflate(deflatedData.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(inflate(deflatedData.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(inflate(deflatedData.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(inflate(deflatedData.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(inflate(deflatedData.eachMeshMaterial)),eachEntityId:pako$4.inflate(deflatedData.eachEntityId,{to:'string'}),eachEntityMeshesPortion:new Uint32Array(inflate(deflatedData.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(inflate(deflatedData.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(inflate(deflatedData.eachTileEntitiesPortion))};}var decompressColor$5=function(){var floatColor=new Float32Array(3);return function(intColor){floatColor[0]=intColor[0]/255.0;floatColor[1]=intColor[1]/255.0;floatColor[2]=intColor[2]/255.0;return floatColor;};}();function convertColorsRGBToRGBA$1(colorsRGB){var colorsRGBA=[];for(var _i629=0,len=colorsRGB.length;_i629<len;_i629+=3){colorsRGBA.push(colorsRGB[_i629]);colorsRGBA.push(colorsRGB[_i629+1]);colorsRGBA.push(colorsRGB[_i629+2]);colorsRGBA.push(1.0);}return colorsRGBA;}function load$5(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();var positions=inflatedData.positions;var normals=inflatedData.normals;var colors=inflatedData.colors;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var matrices=inflatedData.matrices;var reusedGeometriesDecodeMatrix=inflatedData.reusedGeometriesDecodeMatrix;var eachGeometryPrimitiveType=inflatedData.eachGeometryPrimitiveType;var eachGeometryPositionsPortion=inflatedData.eachGeometryPositionsPortion;var eachGeometryNormalsPortion=inflatedData.eachGeometryNormalsPortion;var eachGeometryColorsPortion=inflatedData.eachGeometryColorsPortion;var eachGeometryIndicesPortion=inflatedData.eachGeometryIndicesPortion;var eachGeometryEdgeIndicesPortion=inflatedData.eachGeometryEdgeIndicesPortion;var eachMeshGeometriesPortion=inflatedData.eachMeshGeometriesPortion;var eachMeshMatricesPortion=inflatedData.eachMeshMatricesPortion;var eachMeshMaterial=inflatedData.eachMeshMaterial;var eachEntityId=JSON.parse(inflatedData.eachEntityId);var eachEntityMeshesPortion=inflatedData.eachEntityMeshesPortion;var eachTileAABB=inflatedData.eachTileAABB;var eachTileEntitiesPortion=inflatedData.eachTileEntitiesPortion;var numGeometries=eachGeometryPositionsPortion.length;var numMeshes=eachMeshGeometriesPortion.length;var numEntities=eachEntityId.length;var numTiles=eachTileEntitiesPortion.length;// Count instances of each geometry
30961
30971
  var geometryReuseCounts=new Uint32Array(numGeometries);for(var meshIndex=0;meshIndex<numMeshes;meshIndex++){var geometryIndex=eachMeshGeometriesPortion[meshIndex];if(geometryReuseCounts[geometryIndex]!==undefined){geometryReuseCounts[geometryIndex]++;}else{geometryReuseCounts[geometryIndex]=1;}}// Iterate over tiles
30962
30972
  var tileCenter=math.vec3();var rtcAABB=math.AABB3();for(var tileIndex=0;tileIndex<numTiles;tileIndex++){var lastTileIndex=numTiles-1;var atLastTile=tileIndex===lastTileIndex;var firstTileEntityIndex=eachTileEntitiesPortion[tileIndex];var lastTileEntityIndex=atLastTile?numEntities:eachTileEntitiesPortion[tileIndex+1];var tileAABBIndex=tileIndex*6;var tileAABB=eachTileAABB.subarray(tileAABBIndex,tileAABBIndex+6);math.getAABB3Center(tileAABB,tileCenter);rtcAABB[0]=tileAABB[0]-tileCenter[0];rtcAABB[1]=tileAABB[1]-tileCenter[1];rtcAABB[2]=tileAABB[2]-tileCenter[2];rtcAABB[3]=tileAABB[3]-tileCenter[0];rtcAABB[4]=tileAABB[4]-tileCenter[1];rtcAABB[5]=tileAABB[5]-tileCenter[2];var tileDecodeMatrix=geometryCompressionUtils.createPositionsDecodeMatrix(rtcAABB);var geometryCreated={};// Iterate over each tile's entities
30963
30973
  for(var tileEntityIndex=firstTileEntityIndex;tileEntityIndex<lastTileEntityIndex;tileEntityIndex++){var xktEntityId=eachEntityId[tileEntityIndex];var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var _lastTileEntityIndex2=numEntities-1;var atLastTileEntity=tileEntityIndex===_lastTileEntityIndex2;var firstMeshIndex=eachEntityMeshesPortion[tileEntityIndex];var lastMeshIndex=atLastTileEntity?eachMeshGeometriesPortion.length:eachEntityMeshesPortion[tileEntityIndex+1];var meshIds=[];var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};if(metaObject){// Mask loading of object types
@@ -30976,7 +30986,7 @@ types:elements[0],eachMetaObjectId:elements[1],eachMetaObjectType:elements[2],ea
30976
30986
  matrices:elements[10],reusedGeometriesDecodeMatrix:elements[11],// Geometries
30977
30987
  eachGeometryPrimitiveType:elements[12],eachGeometryPositionsPortion:elements[13],eachGeometryNormalsPortion:elements[14],eachGeometryColorsPortion:elements[15],eachGeometryIndicesPortion:elements[16],eachGeometryEdgeIndicesPortion:elements[17],// Meshes are grouped in runs that are shared by the same entities
30978
30988
  eachMeshGeometriesPortion:elements[18],eachMeshMatricesPortion:elements[19],eachMeshMaterial:elements[20],// Entity elements in the following arrays are grouped in runs that are shared by the same tiles
30979
- eachEntityMetaObject:elements[21],eachEntityMeshesPortion:elements[22],eachTileAABB:elements[23],eachTileEntitiesPortion:elements[24]};}function inflate$3(deflatedData){function inflate(array,options){return array.length===0?[]:pako$3.inflate(array,options).buffer;}return{types:pako$3.inflate(deflatedData.types,{to:'string'}),eachMetaObjectId:pako$3.inflate(deflatedData.eachMetaObjectId,{to:'string'}),eachMetaObjectType:new Uint32Array(inflate(deflatedData.eachMetaObjectType)),eachMetaObjectName:pako$3.inflate(deflatedData.eachMetaObjectName,{to:'string'}),eachMetaObjectParent:new Uint32Array(inflate(deflatedData.eachMetaObjectParent)),positions:new Uint16Array(inflate(deflatedData.positions)),normals:new Int8Array(inflate(deflatedData.normals)),colors:new Uint8Array(inflate(deflatedData.colors)),indices:new Uint32Array(inflate(deflatedData.indices)),edgeIndices:new Uint32Array(inflate(deflatedData.edgeIndices)),matrices:new Float32Array(inflate(deflatedData.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(inflate(deflatedData.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(inflate(deflatedData.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(inflate(deflatedData.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(inflate(deflatedData.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(inflate(deflatedData.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(inflate(deflatedData.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(inflate(deflatedData.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(inflate(deflatedData.eachMeshMaterial)),eachEntityMetaObject:new Uint32Array(inflate(deflatedData.eachEntityMetaObject)),eachEntityMeshesPortion:new Uint32Array(inflate(deflatedData.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(inflate(deflatedData.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(inflate(deflatedData.eachTileEntitiesPortion))};}var decompressColor$4=function(){var floatColor=new Float32Array(3);return function(intColor){floatColor[0]=intColor[0]/255.0;floatColor[1]=intColor[1]/255.0;floatColor[2]=intColor[2]/255.0;return floatColor;};}();function convertColorsRGBToRGBA(colorsRGB){var colorsRGBA=[];for(var _i631=0,len=colorsRGB.length;_i631<len;_i631+=3){colorsRGBA.push(colorsRGB[_i631]);colorsRGBA.push(colorsRGB[_i631+1]);colorsRGBA.push(colorsRGB[_i631+2]);colorsRGBA.push(1.0);}return colorsRGBA;}function load$4(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();var types=JSON.parse(inflatedData.types);var eachMetaObjectId=JSON.parse(inflatedData.eachMetaObjectId);var eachMetaObjectType=inflatedData.eachMetaObjectType;var eachMetaObjectName=JSON.parse(inflatedData.eachMetaObjectName);var eachMetaObjectParent=inflatedData.eachMetaObjectParent;var positions=inflatedData.positions;var normals=inflatedData.normals;var colors=inflatedData.colors;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var matrices=inflatedData.matrices;var reusedGeometriesDecodeMatrix=inflatedData.reusedGeometriesDecodeMatrix;var eachGeometryPrimitiveType=inflatedData.eachGeometryPrimitiveType;var eachGeometryPositionsPortion=inflatedData.eachGeometryPositionsPortion;var eachGeometryNormalsPortion=inflatedData.eachGeometryNormalsPortion;var eachGeometryColorsPortion=inflatedData.eachGeometryColorsPortion;var eachGeometryIndicesPortion=inflatedData.eachGeometryIndicesPortion;var eachGeometryEdgeIndicesPortion=inflatedData.eachGeometryEdgeIndicesPortion;var eachMeshGeometriesPortion=inflatedData.eachMeshGeometriesPortion;var eachMeshMatricesPortion=inflatedData.eachMeshMatricesPortion;var eachMeshMaterial=inflatedData.eachMeshMaterial;var eachEntityMetaObject=inflatedData.eachEntityMetaObject;var eachEntityMeshesPortion=inflatedData.eachEntityMeshesPortion;var eachTileAABB=inflatedData.eachTileAABB;var eachTileEntitiesPortion=inflatedData.eachTileEntitiesPortion;var numMetaObjects=eachMetaObjectId.length;var numGeometries=eachGeometryPositionsPortion.length;var numMeshes=eachMeshGeometriesPortion.length;var numEntities=eachEntityMetaObject.length;var numTiles=eachTileEntitiesPortion.length;if(metaModel){var metaModelData={metaObjects:[]};for(var metaObjectIndex=0;metaObjectIndex<numMetaObjects;metaObjectIndex++){var metaObjectId=eachMetaObjectId[metaObjectIndex];var typeIndex=eachMetaObjectType[metaObjectIndex];var metaObjectType=types[typeIndex]||"default";var metaObjectName=eachMetaObjectName[metaObjectIndex];var metaObjectParentIndex=eachMetaObjectParent[metaObjectIndex];var metaObjectParentId=metaObjectParentIndex!==metaObjectIndex?eachMetaObjectId[metaObjectParentIndex]:null;metaModelData.metaObjects.push({id:metaObjectId,type:metaObjectType,name:metaObjectName,parent:metaObjectParentId});}metaModel.loadData(metaModelData,{includeTypes:options.includeTypes,excludeTypes:options.excludeTypes,globalizeObjectIds:options.globalizeObjectIds});}// Count instances of each geometry
30989
+ eachEntityMetaObject:elements[21],eachEntityMeshesPortion:elements[22],eachTileAABB:elements[23],eachTileEntitiesPortion:elements[24]};}function inflate$3(deflatedData){function inflate(array,options){return array.length===0?[]:pako$3.inflate(array,options).buffer;}return{types:pako$3.inflate(deflatedData.types,{to:'string'}),eachMetaObjectId:pako$3.inflate(deflatedData.eachMetaObjectId,{to:'string'}),eachMetaObjectType:new Uint32Array(inflate(deflatedData.eachMetaObjectType)),eachMetaObjectName:pako$3.inflate(deflatedData.eachMetaObjectName,{to:'string'}),eachMetaObjectParent:new Uint32Array(inflate(deflatedData.eachMetaObjectParent)),positions:new Uint16Array(inflate(deflatedData.positions)),normals:new Int8Array(inflate(deflatedData.normals)),colors:new Uint8Array(inflate(deflatedData.colors)),indices:new Uint32Array(inflate(deflatedData.indices)),edgeIndices:new Uint32Array(inflate(deflatedData.edgeIndices)),matrices:new Float32Array(inflate(deflatedData.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(inflate(deflatedData.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(inflate(deflatedData.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(inflate(deflatedData.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(inflate(deflatedData.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(inflate(deflatedData.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(inflate(deflatedData.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(inflate(deflatedData.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(inflate(deflatedData.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(inflate(deflatedData.eachMeshMaterial)),eachEntityMetaObject:new Uint32Array(inflate(deflatedData.eachEntityMetaObject)),eachEntityMeshesPortion:new Uint32Array(inflate(deflatedData.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(inflate(deflatedData.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(inflate(deflatedData.eachTileEntitiesPortion))};}var decompressColor$4=function(){var floatColor=new Float32Array(3);return function(intColor){floatColor[0]=intColor[0]/255.0;floatColor[1]=intColor[1]/255.0;floatColor[2]=intColor[2]/255.0;return floatColor;};}();function convertColorsRGBToRGBA(colorsRGB){var colorsRGBA=[];for(var _i630=0,len=colorsRGB.length;_i630<len;_i630+=3){colorsRGBA.push(colorsRGB[_i630]);colorsRGBA.push(colorsRGB[_i630+1]);colorsRGBA.push(colorsRGB[_i630+2]);colorsRGBA.push(1.0);}return colorsRGBA;}function load$4(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx){var modelPartId=manifestCtx.getNextId();var types=JSON.parse(inflatedData.types);var eachMetaObjectId=JSON.parse(inflatedData.eachMetaObjectId);var eachMetaObjectType=inflatedData.eachMetaObjectType;var eachMetaObjectName=JSON.parse(inflatedData.eachMetaObjectName);var eachMetaObjectParent=inflatedData.eachMetaObjectParent;var positions=inflatedData.positions;var normals=inflatedData.normals;var colors=inflatedData.colors;var indices=inflatedData.indices;var edgeIndices=inflatedData.edgeIndices;var matrices=inflatedData.matrices;var reusedGeometriesDecodeMatrix=inflatedData.reusedGeometriesDecodeMatrix;var eachGeometryPrimitiveType=inflatedData.eachGeometryPrimitiveType;var eachGeometryPositionsPortion=inflatedData.eachGeometryPositionsPortion;var eachGeometryNormalsPortion=inflatedData.eachGeometryNormalsPortion;var eachGeometryColorsPortion=inflatedData.eachGeometryColorsPortion;var eachGeometryIndicesPortion=inflatedData.eachGeometryIndicesPortion;var eachGeometryEdgeIndicesPortion=inflatedData.eachGeometryEdgeIndicesPortion;var eachMeshGeometriesPortion=inflatedData.eachMeshGeometriesPortion;var eachMeshMatricesPortion=inflatedData.eachMeshMatricesPortion;var eachMeshMaterial=inflatedData.eachMeshMaterial;var eachEntityMetaObject=inflatedData.eachEntityMetaObject;var eachEntityMeshesPortion=inflatedData.eachEntityMeshesPortion;var eachTileAABB=inflatedData.eachTileAABB;var eachTileEntitiesPortion=inflatedData.eachTileEntitiesPortion;var numMetaObjects=eachMetaObjectId.length;var numGeometries=eachGeometryPositionsPortion.length;var numMeshes=eachMeshGeometriesPortion.length;var numEntities=eachEntityMetaObject.length;var numTiles=eachTileEntitiesPortion.length;if(metaModel){var metaModelData={metaObjects:[]};for(var metaObjectIndex=0;metaObjectIndex<numMetaObjects;metaObjectIndex++){var metaObjectId=eachMetaObjectId[metaObjectIndex];var typeIndex=eachMetaObjectType[metaObjectIndex];var metaObjectType=types[typeIndex]||"default";var metaObjectName=eachMetaObjectName[metaObjectIndex];var metaObjectParentIndex=eachMetaObjectParent[metaObjectIndex];var metaObjectParentId=metaObjectParentIndex!==metaObjectIndex?eachMetaObjectId[metaObjectParentIndex]:null;metaModelData.metaObjects.push({id:metaObjectId,type:metaObjectType,name:metaObjectName,parent:metaObjectParentId});}metaModel.loadData(metaModelData,{includeTypes:options.includeTypes,excludeTypes:options.excludeTypes,globalizeObjectIds:options.globalizeObjectIds});}// Count instances of each geometry
30980
30990
  var geometryReuseCounts=new Uint32Array(numGeometries);for(var meshIndex=0;meshIndex<numMeshes;meshIndex++){var geometryIndex=eachMeshGeometriesPortion[meshIndex];if(geometryReuseCounts[geometryIndex]!==undefined){geometryReuseCounts[geometryIndex]++;}else{geometryReuseCounts[geometryIndex]=1;}}// Iterate over tiles
30981
30991
  var tileCenter=math.vec3();var rtcAABB=math.AABB3();var geometryArraysCache={};for(var tileIndex=0;tileIndex<numTiles;tileIndex++){var lastTileIndex=numTiles-1;var atLastTile=tileIndex===lastTileIndex;var firstTileEntityIndex=eachTileEntitiesPortion[tileIndex];var lastTileEntityIndex=atLastTile?numEntities:eachTileEntitiesPortion[tileIndex+1];var tileAABBIndex=tileIndex*6;var tileAABB=eachTileAABB.subarray(tileAABBIndex,tileAABBIndex+6);math.getAABB3Center(tileAABB,tileCenter);rtcAABB[0]=tileAABB[0]-tileCenter[0];rtcAABB[1]=tileAABB[1]-tileCenter[1];rtcAABB[2]=tileAABB[2]-tileCenter[2];rtcAABB[3]=tileAABB[3]-tileCenter[0];rtcAABB[4]=tileAABB[4]-tileCenter[1];rtcAABB[5]=tileAABB[5]-tileCenter[2];var tileDecodeMatrix=geometryCompressionUtils.createPositionsDecodeMatrix(rtcAABB);var geometryCreatedInTile={};// Iterate over each tile's entities
30982
30992
  for(var tileEntityIndex=firstTileEntityIndex;tileEntityIndex<lastTileEntityIndex;tileEntityIndex++){var xktMetaObjectIndex=eachEntityMetaObject[tileEntityIndex];var xktMetaObjectId=eachMetaObjectId[xktMetaObjectIndex];var xktEntityId=xktMetaObjectId;var entityId=options.globalizeObjectIds?math.globalizeObjectId(sceneModel.id,xktEntityId):xktEntityId;var _lastTileEntityIndex3=numEntities-1;var atLastTileEntity=tileEntityIndex===_lastTileEntityIndex3;var firstMeshIndex=eachEntityMeshesPortion[tileEntityIndex];var lastMeshIndex=atLastTileEntity?eachMeshGeometriesPortion.length:eachEntityMeshesPortion[tileEntityIndex+1];var meshIds=[];var metaObject=viewer.metaScene.metaObjects[entityId];var entityDefaults={};var meshDefaults={};if(metaObject){// Mask loading of object types
@@ -30985,7 +30995,7 @@ if(options.includeIdsMap&&metaObject.id&&!options.includeIdsMap[metaObject.id]){
30985
30995
  var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}if(props.metallic!==undefined&&props.metallic!==null){meshDefaults.metallic=props.metallic;}if(props.roughness!==undefined&&props.roughness!==null){meshDefaults.roughness=props.roughness;}}}else{if(options.excludeUnclassifiedObjects){continue;}}// Iterate each entity's meshes
30986
30996
  for(var _meshIndex2=firstMeshIndex;_meshIndex2<lastMeshIndex;_meshIndex2++){var _geometryIndex2=eachMeshGeometriesPortion[_meshIndex2];var geometryReuseCount=geometryReuseCounts[_geometryIndex2];var isReusedGeometry=geometryReuseCount>1;var atLastGeometry=_geometryIndex2===numGeometries-1;var meshColor=decompressColor$4(eachMeshMaterial.subarray(_meshIndex2*6,_meshIndex2*6+3));var meshOpacity=eachMeshMaterial[_meshIndex2*6+3]/255.0;var meshMetallic=eachMeshMaterial[_meshIndex2*6+4]/255.0;var meshRoughness=eachMeshMaterial[_meshIndex2*6+5]/255.0;var meshId=manifestCtx.getNextId();if(isReusedGeometry){// Create mesh for multi-use geometry - create (or reuse) geometry, create mesh using that geometry
30987
30997
  var meshMatrixIndex=eachMeshMatricesPortion[_meshIndex2];var meshMatrix=matrices.slice(meshMatrixIndex,meshMatrixIndex+16);var geometryId="".concat(modelPartId,"-geometry.").concat(tileIndex,".").concat(_geometryIndex2);// These IDs are local to the SceneModel
30988
- var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex2];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryColors=convertColorsRGBToRGBA(colors.subarray(eachGeometryColorsPortion[_geometryIndex2],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex2+1]));geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i632=0,len=geometryPositions.length;_i632<len;_i632+=3){decompressedPositions[_i632+0]=geometryPositions[_i632+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i632+1]=geometryPositions[_i632+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i632+2]=geometryPositions[_i632+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions=geometryArrays.decompressedPositions;var _positions3=new Uint16Array(_decompressedPositions.length);for(var _i633=0,_len113=_decompressedPositions.length;_i633<_len113;_i633+=3){tempVec4a$4[0]=_decompressedPositions[_i633+0];tempVec4a$4[1]=_decompressedPositions[_i633+1];tempVec4a$4[2]=_decompressedPositions[_i633+2];tempVec4a$4[3]=1;math.transformVec4(meshMatrix,tempVec4a$4,tempVec4b$4);geometryCompressionUtils.compressPosition(tempVec4b$4,rtcAABB,tempVec4a$4);_positions3[_i633+0]=tempVec4a$4[0];_positions3[_i633+1]=tempVec4a$4[1];_positions3[_i633+2]=tempVec4a$4[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:_positions3,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,origin:tileCenter,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}else{var _primitiveType2=eachGeometryPrimitiveType[_geometryIndex2];var primitiveName=void 0;var _geometryPositions2=void 0;var geometryNormals=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid=false;switch(_primitiveType2){case 0:primitiveName="solid";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);_geometryValid=_geometryPositions2.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);_geometryValid=_geometryPositions2.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryColors=convertColorsRGBToRGBA(colors.subarray(eachGeometryColorsPortion[_geometryIndex2],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex2+1]));_geometryValid=_geometryPositions2.length>0;break;case 3:primitiveName="lines";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);_geometryValid=_geometryPositions2.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions2,normalsCompressed:geometryNormals,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}/** @private */var ParserV8={version:8,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$3(elements);var inflatedData=inflate$3(deflatedData);load$4(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30998
+ var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex2];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryColors=convertColorsRGBToRGBA(colors.subarray(eachGeometryColorsPortion[_geometryIndex2],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex2+1]));geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i631=0,len=geometryPositions.length;_i631<len;_i631+=3){decompressedPositions[_i631+0]=geometryPositions[_i631+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i631+1]=geometryPositions[_i631+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i631+2]=geometryPositions[_i631+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions=geometryArrays.decompressedPositions;var _positions3=new Uint16Array(_decompressedPositions.length);for(var _i632=0,_len113=_decompressedPositions.length;_i632<_len113;_i632+=3){tempVec4a$4[0]=_decompressedPositions[_i632+0];tempVec4a$4[1]=_decompressedPositions[_i632+1];tempVec4a$4[2]=_decompressedPositions[_i632+2];tempVec4a$4[3]=1;math.transformVec4(meshMatrix,tempVec4a$4,tempVec4b$4);geometryCompressionUtils.compressPosition(tempVec4b$4,rtcAABB,tempVec4a$4);_positions3[_i632+0]=tempVec4a$4[0];_positions3[_i632+1]=tempVec4a$4[1];_positions3[_i632+2]=tempVec4a$4[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:_positions3,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,origin:tileCenter,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}else{var _primitiveType2=eachGeometryPrimitiveType[_geometryIndex2];var primitiveName=void 0;var _geometryPositions2=void 0;var geometryNormals=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid=false;switch(_primitiveType2){case 0:primitiveName="solid";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);_geometryValid=_geometryPositions2.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex2],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex2+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex2],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex2+1]);_geometryValid=_geometryPositions2.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryColors=convertColorsRGBToRGBA(colors.subarray(eachGeometryColorsPortion[_geometryIndex2],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex2+1]));_geometryValid=_geometryPositions2.length>0;break;case 3:primitiveName="lines";_geometryPositions2=positions.subarray(eachGeometryPositionsPortion[_geometryIndex2],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex2+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex2],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex2+1]);_geometryValid=_geometryPositions2.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions2,normalsCompressed:geometryNormals,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}/** @private */var ParserV8={version:8,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$3(elements);var inflatedData=inflate$3(deflatedData);load$4(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
30989
30999
 
30990
31000
  Parser for .XKT Format V9
30991
31001
 
@@ -31005,7 +31015,7 @@ if(options.includeIdsMap&&metaObject.id&&!options.includeIdsMap[metaObject.id]){
31005
31015
  var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}if(props.metallic!==undefined&&props.metallic!==null){meshDefaults.metallic=props.metallic;}if(props.roughness!==undefined&&props.roughness!==null){meshDefaults.roughness=props.roughness;}}}else{if(options.excludeUnclassifiedObjects){continue;}}// Iterate each entity's meshes
31006
31016
  for(var _meshIndex3=firstMeshIndex;_meshIndex3<=lastMeshIndex;_meshIndex3++){var _geometryIndex3=eachMeshGeometriesPortion[_meshIndex3];var geometryReuseCount=geometryReuseCounts[_geometryIndex3];var isReusedGeometry=geometryReuseCount>1;var atLastGeometry=_geometryIndex3===numGeometries-1;var meshColor=decompressColor$3(eachMeshMaterial.subarray(_meshIndex3*6,_meshIndex3*6+3));var meshOpacity=eachMeshMaterial[_meshIndex3*6+3]/255.0;var meshMetallic=eachMeshMaterial[_meshIndex3*6+4]/255.0;var meshRoughness=eachMeshMaterial[_meshIndex3*6+5]/255.0;var meshId=manifestCtx.getNextId();if(isReusedGeometry){// Create mesh for multi-use geometry - create (or reuse) geometry, create mesh using that geometry
31007
31017
  var meshMatrixIndex=eachMeshMatricesPortion[_meshIndex3];var meshMatrix=matrices.slice(meshMatrixIndex,meshMatrixIndex+16);var geometryId="".concat(modelPartId,"-geometry.").concat(tileIndex,".").concat(_geometryIndex3);// These IDs are local to the SceneModel
31008
- var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex3];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex3],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i634=0,len=geometryPositions.length;_i634<len;_i634+=3){decompressedPositions[_i634+0]=geometryPositions[_i634+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i634+1]=geometryPositions[_i634+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i634+2]=geometryPositions[_i634+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions2=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i635=0,_len114=_decompressedPositions2.length;_i635<_len114;_i635+=3){tempVec4a$3[0]=_decompressedPositions2[_i635+0];tempVec4a$3[1]=_decompressedPositions2[_i635+1];tempVec4a$3[2]=_decompressedPositions2[_i635+2];tempVec4a$3[3]=1;math.transformVec4(meshMatrix,tempVec4a$3,tempVec4b$3);geometryCompressionUtils.compressPosition(tempVec4b$3,rtcAABB,tempVec4a$3);transformedAndRecompressedPositions[_i635+0]=tempVec4a$3[0];transformedAndRecompressedPositions[_i635+1]=tempVec4a$3[1];transformedAndRecompressedPositions[_i635+2]=tempVec4a$3[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,origin:tileCenter,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}else{var _primitiveType3=eachGeometryPrimitiveType[_geometryIndex3];var primitiveName=void 0;var _geometryPositions3=void 0;var geometryNormals=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid2=false;switch(_primitiveType3){case 0:primitiveName="solid";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex3],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0;break;case 3:primitiveName="lines";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid2){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions3,normalsCompressed:geometryNormals,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}/** @private */var ParserV9={version:9,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$2(elements);var inflatedData=inflate$2(deflatedData);load$3(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
31018
+ var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex3];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex3],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i633=0,len=geometryPositions.length;_i633<len;_i633+=3){decompressedPositions[_i633+0]=geometryPositions[_i633+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i633+1]=geometryPositions[_i633+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i633+2]=geometryPositions[_i633+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions2=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i634=0,_len114=_decompressedPositions2.length;_i634<_len114;_i634+=3){tempVec4a$3[0]=_decompressedPositions2[_i634+0];tempVec4a$3[1]=_decompressedPositions2[_i634+1];tempVec4a$3[2]=_decompressedPositions2[_i634+2];tempVec4a$3[3]=1;math.transformVec4(meshMatrix,tempVec4a$3,tempVec4b$3);geometryCompressionUtils.compressPosition(tempVec4b$3,rtcAABB,tempVec4a$3);transformedAndRecompressedPositions[_i634+0]=tempVec4a$3[0];transformedAndRecompressedPositions[_i634+1]=tempVec4a$3[1];transformedAndRecompressedPositions[_i634+2]=tempVec4a$3[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,origin:tileCenter,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}else{var _primitiveType3=eachGeometryPrimitiveType[_geometryIndex3];var primitiveName=void 0;var _geometryPositions3=void 0;var geometryNormals=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid2=false;switch(_primitiveType3){case 0:primitiveName="solid";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex3],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex3+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex3],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex3],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0;break;case 3:primitiveName="lines";_geometryPositions3=positions.subarray(eachGeometryPositionsPortion[_geometryIndex3],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex3+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex3],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex3+1]);_geometryValid2=_geometryPositions3.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid2){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions3,normalsCompressed:geometryNormals,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}/** @private */var ParserV9={version:9,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$2(elements);var inflatedData=inflate$2(deflatedData);load$3(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
31009
31019
  Parser for .XKT Format V10
31010
31020
  */var pako$1=window.pako||p;if(!pako$1.inflate){// See https://github.com/nodeca/pako/issues/97
31011
31021
  pako$1=pako$1["default"];}var tempVec4a$2=math.vec4();var tempVec4b$2=math.vec4();var NUM_TEXTURE_ATTRIBUTES$2=9;function extract$1(elements){var i=0;return{metadata:elements[i++],textureData:elements[i++],eachTextureDataPortion:elements[i++],eachTextureAttributes:elements[i++],positions:elements[i++],normals:elements[i++],colors:elements[i++],uvs:elements[i++],indices:elements[i++],edgeIndices:elements[i++],eachTextureSetTextures:elements[i++],matrices:elements[i++],reusedGeometriesDecodeMatrix:elements[i++],eachGeometryPrimitiveType:elements[i++],eachGeometryPositionsPortion:elements[i++],eachGeometryNormalsPortion:elements[i++],eachGeometryColorsPortion:elements[i++],eachGeometryUVsPortion:elements[i++],eachGeometryIndicesPortion:elements[i++],eachGeometryEdgeIndicesPortion:elements[i++],eachMeshGeometriesPortion:elements[i++],eachMeshMatricesPortion:elements[i++],eachMeshTextureSet:elements[i++],eachMeshMaterialAttributes:elements[i++],eachEntityId:elements[i++],eachEntityMeshesPortion:elements[i++],eachTileAABB:elements[i++],eachTileEntitiesPortion:elements[i++]};}function inflate$1(deflatedData){function inflate(array,options){return array.length===0?[]:pako$1.inflate(array,options).buffer;}return{metadata:JSON.parse(pako$1.inflate(deflatedData.metadata,{to:'string'})),textureData:new Uint8Array(inflate(deflatedData.textureData)),// <<----------------------------- ??? ZIPPing to blame?
@@ -31027,8 +31037,8 @@ if(options.includeIdsMap&&metaObject.id&&!options.includeIdsMap[metaObject.id]){
31027
31037
  var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}if(props.metallic!==undefined&&props.metallic!==null){meshDefaults.metallic=props.metallic;}if(props.roughness!==undefined&&props.roughness!==null){meshDefaults.roughness=props.roughness;}}}else{if(options.excludeUnclassifiedObjects){continue;}}// Iterate each entity's meshes
31028
31038
  for(var _meshIndex4=firstMeshIndex;_meshIndex4<=lastMeshIndex;_meshIndex4++){var _geometryIndex4=eachMeshGeometriesPortion[_meshIndex4];var geometryReuseCount=geometryReuseCounts[_geometryIndex4];var isReusedGeometry=geometryReuseCount>1;var atLastGeometry=_geometryIndex4===numGeometries-1;var _textureSetIndex=eachMeshTextureSet[_meshIndex4];var _textureSetId=_textureSetIndex>=0?"".concat(modelPartId,"-textureSet-").concat(_textureSetIndex):null;var meshColor=decompressColor$2(eachMeshMaterialAttributes.subarray(_meshIndex4*6,_meshIndex4*6+3));var meshOpacity=eachMeshMaterialAttributes[_meshIndex4*6+3]/255.0;var meshMetallic=eachMeshMaterialAttributes[_meshIndex4*6+4]/255.0;var meshRoughness=eachMeshMaterialAttributes[_meshIndex4*6+5]/255.0;var meshId=manifestCtx.getNextId();if(isReusedGeometry){// Create mesh for multi-use geometry - create (or reuse) geometry, create mesh using that geometry
31029
31039
  var meshMatrixIndex=eachMeshMatricesPortion[_meshIndex4];var meshMatrix=matrices.slice(meshMatrixIndex,meshMatrixIndex+16);var geometryId="".concat(modelPartId,"-geometry.").concat(tileIndex,".").concat(_geometryIndex4);// These IDs are local to the SceneModel
31030
- var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex4];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex4],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 4:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=lineStripToLines$2(geometryArrays.geometryPositions,indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]));geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i636=0,len=geometryPositions.length;_i636<len;_i636+=3){decompressedPositions[_i636+0]=geometryPositions[_i636+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i636+1]=geometryPositions[_i636+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i636+2]=geometryPositions[_i636+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions3=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i637=0,_len115=_decompressedPositions3.length;_i637<_len115;_i637+=3){tempVec4a$2[0]=_decompressedPositions3[_i637+0];tempVec4a$2[1]=_decompressedPositions3[_i637+1];tempVec4a$2[2]=_decompressedPositions3[_i637+2];tempVec4a$2[3]=1;math.transformVec4(meshMatrix,tempVec4a$2,tempVec4b$2);geometryCompressionUtils.compressPosition(tempVec4b$2,rtcAABB,tempVec4a$2);transformedAndRecompressedPositions[_i637+0]=tempVec4a$2[0];transformedAndRecompressedPositions[_i637+1]=tempVec4a$2[1];transformedAndRecompressedPositions[_i637+2]=tempVec4a$2[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,textureSetId:_textureSetId,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity,origin:tileCenter}));meshIds.push(meshId);}}}else{// Do not reuse geometry
31031
- var _primitiveType4=eachGeometryPrimitiveType[_geometryIndex4];var primitiveName=void 0;var _geometryPositions4=void 0;var geometryNormals=void 0;var geometryUVs=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid3=false;switch(_primitiveType4){case 0:primitiveName="solid";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex4],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0;break;case 3:primitiveName="lines";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;case 4:primitiveName="lines";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryIndices=lineStripToLines$2(_geometryPositions4,indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]));_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid3){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions4,normalsCompressed:geometryNormals,uv:geometryUVs&&geometryUVs.length>0?geometryUVs:null,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}function lineStripToLines$2(positions,indices){var linesIndices=[];if(indices.length>1){for(var _i638=0,len=indices.length-1;_i638<len;_i638++){linesIndices.push(indices[_i638]);linesIndices.push(indices[_i638+1]);}}else if(positions.length>1){for(var _i639=0,_len116=positions.length/3-1;_i639<_len116;_i639++){linesIndices.push(_i639);linesIndices.push(_i639+1);}}return linesIndices;}/** @private */var ParserV10={version:10,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$1(elements);var inflatedData=inflate$1(deflatedData);load$2(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
31040
+ var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex4];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex4],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 4:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryArrays.geometryIndices=lineStripToLines$2(geometryArrays.geometryPositions,indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]));geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i635=0,len=geometryPositions.length;_i635<len;_i635+=3){decompressedPositions[_i635+0]=geometryPositions[_i635+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i635+1]=geometryPositions[_i635+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i635+2]=geometryPositions[_i635+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions3=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i636=0,_len115=_decompressedPositions3.length;_i636<_len115;_i636+=3){tempVec4a$2[0]=_decompressedPositions3[_i636+0];tempVec4a$2[1]=_decompressedPositions3[_i636+1];tempVec4a$2[2]=_decompressedPositions3[_i636+2];tempVec4a$2[3]=1;math.transformVec4(meshMatrix,tempVec4a$2,tempVec4b$2);geometryCompressionUtils.compressPosition(tempVec4b$2,rtcAABB,tempVec4a$2);transformedAndRecompressedPositions[_i636+0]=tempVec4a$2[0];transformedAndRecompressedPositions[_i636+1]=tempVec4a$2[1];transformedAndRecompressedPositions[_i636+2]=tempVec4a$2[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,textureSetId:_textureSetId,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity,origin:tileCenter}));meshIds.push(meshId);}}}else{// Do not reuse geometry
31041
+ var _primitiveType4=eachGeometryPrimitiveType[_geometryIndex4];var primitiveName=void 0;var _geometryPositions4=void 0;var geometryNormals=void 0;var geometryUVs=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid3=false;switch(_primitiveType4){case 0:primitiveName="solid";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex4],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex4+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex4],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex4+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex4],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex4],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0;break;case 3:primitiveName="lines";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]);_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;case 4:primitiveName="lines";_geometryPositions4=positions.subarray(eachGeometryPositionsPortion[_geometryIndex4],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex4+1]);geometryIndices=lineStripToLines$2(_geometryPositions4,indices.subarray(eachGeometryIndicesPortion[_geometryIndex4],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex4+1]));_geometryValid3=_geometryPositions4.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid3){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions4,normalsCompressed:geometryNormals,uv:geometryUVs&&geometryUVs.length>0?geometryUVs:null,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}function lineStripToLines$2(positions,indices){var linesIndices=[];if(indices.length>1){for(var _i637=0,len=indices.length-1;_i637<len;_i637++){linesIndices.push(indices[_i637]);linesIndices.push(indices[_i637+1]);}}else if(positions.length>1){for(var _i638=0,_len116=positions.length/3-1;_i638<_len116;_i638++){linesIndices.push(_i638);linesIndices.push(_i638+1);}}return linesIndices;}/** @private */var ParserV10={version:10,parse:function parse(viewer,options,elements,sceneModel,metaModel,manifestCtx){var deflatedData=extract$1(elements);var inflatedData=inflate$1(deflatedData);load$2(viewer,options,inflatedData,sceneModel,metaModel,manifestCtx);}};/*
31032
31042
  Parser for .XKT Format V11
31033
31043
  */var tempVec4a$1=math.vec4();var tempVec4b$1=math.vec4();var NUM_TEXTURE_ATTRIBUTES$1=9;function decodeData$1(arrayBuffer){var requiresSwapFromLittleEndian=function(){var buffer=new ArrayBuffer(2);new Uint16Array(buffer)[0]=1;return new Uint8Array(buffer)[0]!==1;}();var nextArray=function(){var i=0;var dataView=new DataView(arrayBuffer);return function(type){var idx=1+2*i++;// `1' for the version nr
31034
31044
  var byteOffset=dataView.getUint32(idx*4,true);var byteLength=dataView.getUint32((idx+1)*4,true);var BPE=type.BYTES_PER_ELEMENT;if(requiresSwapFromLittleEndian&&BPE>1){var subarray=new Uint8Array(arrayBuffer,byteOffset,byteLength);var swaps=BPE/2;var cnt=subarray.length/BPE;for(var b=0;b<cnt;b++){var offset=b*BPE;for(var j=0;j<swaps;j++){var i1=offset+j;var i2=offset-j+BPE-1;var tmp=subarray[i1];subarray[i1]=subarray[i2];subarray[i2]=tmp;}}}return new type(arrayBuffer,byteOffset,byteLength/BPE);};}();var nextObject=function(){var decoder=new TextDecoder();return function(){return JSON.parse(decoder.decode(nextArray(Uint8Array)));};}();return{metadata:nextObject(),textureData:nextArray(Uint8Array),// <<----------------------------- ??? ZIPPing to blame?
@@ -31050,8 +31060,8 @@ if(options.includeIdsMap&&metaObject.id&&!options.includeIdsMap[metaObject.id]){
31050
31060
  var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}if(props.metallic!==undefined&&props.metallic!==null){meshDefaults.metallic=props.metallic;}if(props.roughness!==undefined&&props.roughness!==null){meshDefaults.roughness=props.roughness;}}}else{if(options.excludeUnclassifiedObjects){continue;}}// Iterate each entity's meshes
31051
31061
  for(var _meshIndex5=firstMeshIndex;_meshIndex5<=lastMeshIndex;_meshIndex5++){var _geometryIndex5=eachMeshGeometriesPortion[_meshIndex5];var geometryReuseCount=geometryReuseCounts[_geometryIndex5];var isReusedGeometry=geometryReuseCount>1;var atLastGeometry=_geometryIndex5===numGeometries-1;var _textureSetIndex2=eachMeshTextureSet[_meshIndex5];var _textureSetId2=_textureSetIndex2>=0?"".concat(modelPartId,"-textureSet-").concat(_textureSetIndex2):null;var meshColor=decompressColor$1(eachMeshMaterialAttributes.subarray(_meshIndex5*6,_meshIndex5*6+3));var meshOpacity=eachMeshMaterialAttributes[_meshIndex5*6+3]/255.0;var meshMetallic=eachMeshMaterialAttributes[_meshIndex5*6+4]/255.0;var meshRoughness=eachMeshMaterialAttributes[_meshIndex5*6+5]/255.0;var meshId=manifestCtx.getNextId();if(isReusedGeometry){// Create mesh for multi-use geometry - create (or reuse) geometry, create mesh using that geometry
31052
31062
  var meshMatrixIndex=eachMeshMatricesPortion[_meshIndex5];var meshMatrix=matrices.slice(meshMatrixIndex,meshMatrixIndex+16);var geometryId="".concat(modelPartId,"-geometry.").concat(tileIndex,".").concat(_geometryIndex5);// These IDs are local to the SceneModel
31053
- var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex5];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex5],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 4:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=lineStripToLines$1(geometryArrays.geometryPositions,indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]));geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i640=0,len=geometryPositions.length;_i640<len;_i640+=3){decompressedPositions[_i640+0]=geometryPositions[_i640+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i640+1]=geometryPositions[_i640+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i640+2]=geometryPositions[_i640+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions4=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i641=0,_len117=_decompressedPositions4.length;_i641<_len117;_i641+=3){tempVec4a$1[0]=_decompressedPositions4[_i641+0];tempVec4a$1[1]=_decompressedPositions4[_i641+1];tempVec4a$1[2]=_decompressedPositions4[_i641+2];tempVec4a$1[3]=1;math.transformVec4(meshMatrix,tempVec4a$1,tempVec4b$1);geometryCompressionUtils.compressPosition(tempVec4b$1,rtcAABB,tempVec4a$1);transformedAndRecompressedPositions[_i641+0]=tempVec4a$1[0];transformedAndRecompressedPositions[_i641+1]=tempVec4a$1[1];transformedAndRecompressedPositions[_i641+2]=tempVec4a$1[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId2,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,textureSetId:_textureSetId2,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity,origin:tileCenter}));meshIds.push(meshId);}}}else{// Do not reuse geometry
31054
- var _primitiveType5=eachGeometryPrimitiveType[_geometryIndex5];var primitiveName=void 0;var _geometryPositions5=void 0;var geometryNormals=void 0;var geometryUVs=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid4=false;switch(_primitiveType5){case 0:primitiveName="solid";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex5],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0;break;case 3:primitiveName="lines";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;case 4:primitiveName="lines";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryIndices=lineStripToLines$1(_geometryPositions5,indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]));_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid4){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId2,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions5,normalsCompressed:geometryNormals,uv:geometryUVs&&geometryUVs.length>0?geometryUVs:null,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}function lineStripToLines$1(positions,indices){var linesIndices=[];if(indices.length>1){for(var _i642=0,len=indices.length-1;_i642<len;_i642++){linesIndices.push(indices[_i642]);linesIndices.push(indices[_i642+1]);}}else if(positions.length>1){for(var _i643=0,_len118=positions.length/3-1;_i643<_len118;_i643++){linesIndices.push(_i643);linesIndices.push(_i643+1);}}return linesIndices;}/** @private */ // V11 uses a single uncompressed Uint8Array buffer to store arrays of different types.
31063
+ var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex5];var geometryValid=false;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex5],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 4:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryArrays.geometryIndices=lineStripToLines$1(geometryArrays.geometryPositions,indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]));geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i639=0,len=geometryPositions.length;_i639<len;_i639+=3){decompressedPositions[_i639+0]=geometryPositions[_i639+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i639+1]=geometryPositions[_i639+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i639+2]=geometryPositions[_i639+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions4=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i640=0,_len117=_decompressedPositions4.length;_i640<_len117;_i640+=3){tempVec4a$1[0]=_decompressedPositions4[_i640+0];tempVec4a$1[1]=_decompressedPositions4[_i640+1];tempVec4a$1[2]=_decompressedPositions4[_i640+2];tempVec4a$1[3]=1;math.transformVec4(meshMatrix,tempVec4a$1,tempVec4b$1);geometryCompressionUtils.compressPosition(tempVec4b$1,rtcAABB,tempVec4a$1);transformedAndRecompressedPositions[_i640+0]=tempVec4a$1[0];transformedAndRecompressedPositions[_i640+1]=tempVec4a$1[1];transformedAndRecompressedPositions[_i640+2]=tempVec4a$1[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId2,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){sceneModel.createGeometry({id:geometryId,primitive:geometryArrays.primitiveName,positionsCompressed:geometryArrays.geometryPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,textureSetId:_textureSetId2,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity,origin:tileCenter}));meshIds.push(meshId);}}}else{// Do not reuse geometry
31064
+ var _primitiveType5=eachGeometryPrimitiveType[_geometryIndex5];var primitiveName=void 0;var _geometryPositions5=void 0;var geometryNormals=void 0;var geometryUVs=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid4=false;switch(_primitiveType5){case 0:primitiveName="solid";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex5],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex5+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex5],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex5+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex5],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex5],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0;break;case 3:primitiveName="lines";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]);_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;case 4:primitiveName="lines";_geometryPositions5=positions.subarray(eachGeometryPositionsPortion[_geometryIndex5],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex5+1]);geometryIndices=lineStripToLines$1(_geometryPositions5,indices.subarray(eachGeometryIndicesPortion[_geometryIndex5],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex5+1]));_geometryValid4=_geometryPositions5.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid4){sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId2,origin:tileCenter,primitive:primitiveName,positionsCompressed:_geometryPositions5,normalsCompressed:geometryNormals,uv:geometryUVs&&geometryUVs.length>0?geometryUVs:null,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}function lineStripToLines$1(positions,indices){var linesIndices=[];if(indices.length>1){for(var _i641=0,len=indices.length-1;_i641<len;_i641++){linesIndices.push(indices[_i641]);linesIndices.push(indices[_i641+1]);}}else if(positions.length>1){for(var _i642=0,_len118=positions.length/3-1;_i642<_len118;_i642++){linesIndices.push(_i642);linesIndices.push(_i642+1);}}return linesIndices;}/** @private */ // V11 uses a single uncompressed Uint8Array buffer to store arrays of different types.
31055
31065
  // To efficiently create typed arrays from this buffer,
31056
31066
  // each typed array's source data needs to be aligned with its element byte size.
31057
31067
  // This sometimes requires padding subarrays inside the single Uint8Array, so the byteOffset needs to be stored alongside element count.
@@ -31081,9 +31091,9 @@ if(options.includeIdsMap&&metaObject.id&&!options.includeIdsMap[metaObject.id]){
31081
31091
  var props=options.objectDefaults?options.objectDefaults[metaObject.type]||options.objectDefaults["DEFAULT"]:null;if(props){if(props.visible===false){entityDefaults.visible=false;}if(props.pickable===false){entityDefaults.pickable=false;}if(props.colorize){meshDefaults.color=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){meshDefaults.opacity=props.opacity;}if(props.metallic!==undefined&&props.metallic!==null){meshDefaults.metallic=props.metallic;}if(props.roughness!==undefined&&props.roughness!==null){meshDefaults.roughness=props.roughness;}}}else{if(options.excludeUnclassifiedObjects){continue;}}// Iterate each entity's meshes
31082
31092
  for(var _meshIndex6=firstMeshIndex;_meshIndex6<=lastMeshIndex;_meshIndex6++){var _geometryIndex6=eachMeshGeometriesPortion[_meshIndex6];var geometryReuseCount=geometryReuseCounts[_geometryIndex6];var isReusedGeometry=geometryReuseCount>1;var atLastGeometry=_geometryIndex6===numGeometries-1;var _textureSetIndex3=eachMeshTextureSet[_meshIndex6];var _textureSetId3=_textureSetIndex3>=0?"".concat(modelPartId,"-textureSet-").concat(_textureSetIndex3):null;var meshColor=decompressColor(eachMeshMaterialAttributes.subarray(_meshIndex6*6,_meshIndex6*6+3));var meshOpacity=eachMeshMaterialAttributes[_meshIndex6*6+3]/255.0;var meshMetallic=eachMeshMaterialAttributes[_meshIndex6*6+4]/255.0;var meshRoughness=eachMeshMaterialAttributes[_meshIndex6*6+5]/255.0;var meshId=manifestCtx.getNextId();if(isReusedGeometry){// Create mesh for multi-use geometry - create (or reuse) geometry, create mesh using that geometry
31083
31093
  var meshMatrixIndex=eachMeshMatricesPortion[_meshIndex6];var meshMatrix=matrices.slice(meshMatrixIndex,meshMatrixIndex+16);var geometryId="".concat(modelPartId,"-geometry.").concat(tileIndex,".").concat(_geometryIndex6);// These IDs are local to the SceneModel
31084
- var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex6];var axisLabel=eachGeometryAxisLabel[_geometryIndex6];var geometryValid=false;var ifcLabel=void 0;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex6],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex6+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex6],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex6],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex6],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex6+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex6],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex6],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex6],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 4:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=lineStripToLines(geometryArrays.geometryPositions,indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]));geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 7:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.decompressedPositions=geometryCompressionUtils.decompressPositions(geometryArrays.geometryPositions,reusedGeometriesDecodeMatrix);ifcLabel=buildVectorTextGeometry({origin:geometryArrays.decompressedPositions,text:axisLabel,size:2});geometryArrays.decompressedPositions=ifcLabel.positions;geometryArrays.geometryIndices=ifcLabel.indices;geometryArrays.geometryPositions=null;geometryValid=geometryArrays.decompressedPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions&&geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){if(primitiveType===7){geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.decompressedPositions.length);}else{geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i644=0,len=geometryPositions.length;_i644<len;_i644+=3){decompressedPositions[_i644+0]=geometryPositions[_i644+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i644+1]=geometryPositions[_i644+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i644+2]=geometryPositions[_i644+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;}geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions5=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i645=0,_len119=_decompressedPositions5.length;_i645<_len119;_i645+=3){tempVec4a[0]=_decompressedPositions5[_i645+0];tempVec4a[1]=_decompressedPositions5[_i645+1];tempVec4a[2]=_decompressedPositions5[_i645+2];tempVec4a[3]=1;math.transformVec4(meshMatrix,tempVec4a,tempVec4b);geometryCompressionUtils.compressPosition(tempVec4b,rtcAABB,tempVec4a);transformedAndRecompressedPositions[_i645+0]=tempVec4a[0];transformedAndRecompressedPositions[_i645+1]=tempVec4a[1];transformedAndRecompressedPositions[_i645+2]=tempVec4a[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId3,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){var geometryCfg={id:geometryId,primitive:geometryArrays.primitiveName,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices};if(geometryArrays.geometryPositions){geometryCfg=_objectSpread(_objectSpread({},geometryCfg),{},{positionsCompressed:geometryArrays.geometryPositions,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});}else{geometryCfg=_objectSpread(_objectSpread({},geometryCfg),{},{positions:geometryArrays.decompressedPositions});}sceneModel.createGeometry(geometryCfg);geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,textureSetId:_textureSetId3,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity,origin:tileCenter}));meshIds.push(meshId);}}}else{// Do not reuse geometry
31094
+ var geometryArrays=geometryArraysCache[geometryId];if(!geometryArrays){geometryArrays={batchThisMesh:!options.reuseGeometries};var primitiveType=eachGeometryPrimitiveType[_geometryIndex6];var axisLabel=eachGeometryAxisLabel[_geometryIndex6];var geometryValid=false;var ifcLabel=void 0;switch(primitiveType){case 0:geometryArrays.primitiveName="solid";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex6],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex6+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex6],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex6],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 1:geometryArrays.primitiveName="surface";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex6],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex6+1]);geometryArrays.geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex6],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryArrays.geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex6],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 2:geometryArrays.primitiveName="points";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex6],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0;break;case 3:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 4:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.geometryIndices=lineStripToLines(geometryArrays.geometryPositions,indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]));geometryValid=geometryArrays.geometryPositions.length>0&&geometryArrays.geometryIndices.length>0;break;case 7:geometryArrays.primitiveName="lines";geometryArrays.geometryPositions=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryArrays.decompressedPositions=geometryCompressionUtils.decompressPositions(geometryArrays.geometryPositions,reusedGeometriesDecodeMatrix);ifcLabel=buildVectorTextGeometry({origin:geometryArrays.decompressedPositions,text:axisLabel,size:2});geometryArrays.decompressedPositions=ifcLabel.positions;geometryArrays.geometryIndices=ifcLabel.indices;geometryArrays.geometryPositions=null;geometryValid=geometryArrays.decompressedPositions.length>0&&geometryArrays.geometryIndices.length>0;break;default:continue;}if(!geometryValid){geometryArrays=null;}if(geometryArrays){if(geometryArrays.geometryPositions&&geometryArrays.geometryPositions.length>1000);if(geometryArrays.batchThisMesh){if(primitiveType===7){geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.decompressedPositions.length);}else{geometryArrays.decompressedPositions=new Float32Array(geometryArrays.geometryPositions.length);geometryArrays.transformedAndRecompressedPositions=new Uint16Array(geometryArrays.geometryPositions.length);var geometryPositions=geometryArrays.geometryPositions;var decompressedPositions=geometryArrays.decompressedPositions;for(var _i643=0,len=geometryPositions.length;_i643<len;_i643+=3){decompressedPositions[_i643+0]=geometryPositions[_i643+0]*reusedGeometriesDecodeMatrix[0]+reusedGeometriesDecodeMatrix[12];decompressedPositions[_i643+1]=geometryPositions[_i643+1]*reusedGeometriesDecodeMatrix[5]+reusedGeometriesDecodeMatrix[13];decompressedPositions[_i643+2]=geometryPositions[_i643+2]*reusedGeometriesDecodeMatrix[10]+reusedGeometriesDecodeMatrix[14];}geometryArrays.geometryPositions=null;}geometryArraysCache[geometryId]=geometryArrays;}}}if(geometryArrays){if(geometryArrays.batchThisMesh){var _decompressedPositions5=geometryArrays.decompressedPositions;var transformedAndRecompressedPositions=geometryArrays.transformedAndRecompressedPositions;for(var _i644=0,_len119=_decompressedPositions5.length;_i644<_len119;_i644+=3){tempVec4a[0]=_decompressedPositions5[_i644+0];tempVec4a[1]=_decompressedPositions5[_i644+1];tempVec4a[2]=_decompressedPositions5[_i644+2];tempVec4a[3]=1;math.transformVec4(meshMatrix,tempVec4a,tempVec4b);geometryCompressionUtils.compressPosition(tempVec4b,rtcAABB,tempVec4a);transformedAndRecompressedPositions[_i644+0]=tempVec4a[0];transformedAndRecompressedPositions[_i644+1]=tempVec4a[1];transformedAndRecompressedPositions[_i644+2]=tempVec4a[2];}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId3,origin:tileCenter,primitive:geometryArrays.primitiveName,positionsCompressed:transformedAndRecompressedPositions,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices,positionsDecodeMatrix:tileDecodeMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity}));meshIds.push(meshId);}else{if(!geometryCreatedInTile[geometryId]){var geometryCfg={id:geometryId,primitive:geometryArrays.primitiveName,normalsCompressed:geometryArrays.geometryNormals,uv:geometryArrays.geometryUVs,colorsCompressed:geometryArrays.geometryColors,indices:geometryArrays.geometryIndices,edgeIndices:geometryArrays.geometryEdgeIndices};if(geometryArrays.geometryPositions){geometryCfg=_objectSpread(_objectSpread({},geometryCfg),{},{positionsCompressed:geometryArrays.geometryPositions,positionsDecodeMatrix:reusedGeometriesDecodeMatrix});}else{geometryCfg=_objectSpread(_objectSpread({},geometryCfg),{},{positions:geometryArrays.decompressedPositions});}sceneModel.createGeometry(geometryCfg);geometryCreatedInTile[geometryId]=true;}sceneModel.createMesh(utils.apply(meshDefaults,{id:meshId,geometryId:geometryId,textureSetId:_textureSetId3,matrix:meshMatrix,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity,origin:tileCenter}));meshIds.push(meshId);}}}else{// Do not reuse geometry
31085
31095
  var _primitiveType6=eachGeometryPrimitiveType[_geometryIndex6];var _axisLabel=eachGeometryAxisLabel[_geometryIndex6];var primitiveName=void 0;var _geometryPositions6=void 0;var geometryNormals=void 0;var geometryUVs=void 0;var geometryColors=void 0;var geometryIndices=void 0;var geometryEdgeIndices=void 0;var _geometryValid5=false;var _ifcLabel=void 0;switch(_primitiveType6){case 0:primitiveName="solid";_geometryPositions6=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex6],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex6+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex6],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex6+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex6],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex6+1]);_geometryValid5=_geometryPositions6.length>0&&geometryIndices.length>0;break;case 1:primitiveName="surface";_geometryPositions6=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryNormals=normals.subarray(eachGeometryNormalsPortion[_geometryIndex6],atLastGeometry?normals.length:eachGeometryNormalsPortion[_geometryIndex6+1]);geometryUVs=uvs.subarray(eachGeometryUVsPortion[_geometryIndex6],atLastGeometry?uvs.length:eachGeometryUVsPortion[_geometryIndex6+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);geometryEdgeIndices=edgeIndices.subarray(eachGeometryEdgeIndicesPortion[_geometryIndex6],atLastGeometry?edgeIndices.length:eachGeometryEdgeIndicesPortion[_geometryIndex6+1]);_geometryValid5=_geometryPositions6.length>0&&geometryIndices.length>0;break;case 2:primitiveName="points";_geometryPositions6=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryColors=colors.subarray(eachGeometryColorsPortion[_geometryIndex6],atLastGeometry?colors.length:eachGeometryColorsPortion[_geometryIndex6+1]);_geometryValid5=_geometryPositions6.length>0;break;case 3:primitiveName="lines";_geometryPositions6=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryIndices=indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]);_geometryValid5=_geometryPositions6.length>0&&geometryIndices.length>0;break;case 4:primitiveName="lines";_geometryPositions6=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);geometryIndices=lineStripToLines(_geometryPositions6,indices.subarray(eachGeometryIndicesPortion[_geometryIndex6],atLastGeometry?indices.length:eachGeometryIndicesPortion[_geometryIndex6+1]));_geometryValid5=_geometryPositions6.length>0&&geometryIndices.length>0;break;//Ifc Labels
31086
- case 7:primitiveName="lines";_geometryPositions6=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);_geometryPositions6=geometryCompressionUtils.decompressPositions(_geometryPositions6,tileDecodeMatrix);_ifcLabel=buildVectorTextGeometry({origin:_geometryPositions6,text:_axisLabel,size:2});_geometryPositions6=_ifcLabel.positions;geometryIndices=_ifcLabel.indices;_geometryValid5=_geometryPositions6.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid5){var meshCfg=utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId3,origin:tileCenter,primitive:primitiveName,normalsCompressed:geometryNormals,uv:geometryUVs&&geometryUVs.length>0?geometryUVs:null,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity});if(_primitiveType6!==7){meshCfg=_objectSpread(_objectSpread({},meshCfg),{},{positionsCompressed:_geometryPositions6,positionsDecodeMatrix:tileDecodeMatrix});}else{meshCfg=_objectSpread(_objectSpread({},meshCfg),{},{positions:_geometryPositions6});}sceneModel.createMesh(meshCfg);meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}function lineStripToLines(positions,indices){var linesIndices=[];if(indices.length>1){for(var _i646=0,len=indices.length-1;_i646<len;_i646++){linesIndices.push(indices[_i646]);linesIndices.push(indices[_i646+1]);}}else if(positions.length>1){for(var _i647=0,_len120=positions.length/3-1;_i647<_len120;_i647++){linesIndices.push(_i647);linesIndices.push(_i647+1);}}return linesIndices;}/** @private */ // V11 uses a single uncompressed Uint8Array buffer to store arrays of different types.
31096
+ case 7:primitiveName="lines";_geometryPositions6=positions.subarray(eachGeometryPositionsPortion[_geometryIndex6],atLastGeometry?positions.length:eachGeometryPositionsPortion[_geometryIndex6+1]);_geometryPositions6=geometryCompressionUtils.decompressPositions(_geometryPositions6,tileDecodeMatrix);_ifcLabel=buildVectorTextGeometry({origin:_geometryPositions6,text:_axisLabel,size:2});_geometryPositions6=_ifcLabel.positions;geometryIndices=_ifcLabel.indices;_geometryValid5=_geometryPositions6.length>0&&geometryIndices.length>0;break;default:continue;}if(_geometryValid5){var meshCfg=utils.apply(meshDefaults,{id:meshId,textureSetId:_textureSetId3,origin:tileCenter,primitive:primitiveName,normalsCompressed:geometryNormals,uv:geometryUVs&&geometryUVs.length>0?geometryUVs:null,colorsCompressed:geometryColors,indices:geometryIndices,edgeIndices:geometryEdgeIndices,color:meshColor,metallic:meshMetallic,roughness:meshRoughness,opacity:meshOpacity});if(_primitiveType6!==7){meshCfg=_objectSpread(_objectSpread({},meshCfg),{},{positionsCompressed:_geometryPositions6,positionsDecodeMatrix:tileDecodeMatrix});}else{meshCfg=_objectSpread(_objectSpread({},meshCfg),{},{positions:_geometryPositions6});}sceneModel.createMesh(meshCfg);meshIds.push(meshId);}}}if(meshIds.length>0){sceneModel.createEntity(utils.apply(entityDefaults,{id:entityId,isObject:true,meshIds:meshIds}));}}}}function lineStripToLines(positions,indices){var linesIndices=[];if(indices.length>1){for(var _i645=0,len=indices.length-1;_i645<len;_i645++){linesIndices.push(indices[_i645]);linesIndices.push(indices[_i645+1]);}}else if(positions.length>1){for(var _i646=0,_len120=positions.length/3-1;_i646<_len120;_i646++){linesIndices.push(_i646);linesIndices.push(_i646+1);}}return linesIndices;}/** @private */ // V11 uses a single uncompressed Uint8Array buffer to store arrays of different types.
31087
31097
  // To efficiently create typed arrays from this buffer,
31088
31098
  // each typed array's source data needs to be aligned with its element byte size.
31089
31099
  // This sometimes requires padding subarrays inside the single Uint8Array, so the byteOffset needs to be stored alongside element count.
@@ -31871,13 +31881,13 @@ var ParserV12={version:12,parseArrayBuffer:function parseArrayBuffer(viewer,opti
31871
31881
  * SceneModels are drawn when they have transparent objects, to give control over the order in which those objects are blended within the transparent
31872
31882
  * render pass.
31873
31883
  * @returns {Entity} Entity representing the model, which will have {@link Entity#isModel} set ````true```` and will be registered by {@link Entity#id} in {@link Scene#models}.
31874
- */},{key:"load",value:function load(){var _this176=this;var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(params.id&&this.viewer.scene.components[params.id]){this.error("Component with this ID already exists in viewer: "+params.id+" - will autogenerate this ID");delete params.id;}if(!params.src&&!params.xkt&&!params.manifestSrc&&!params.manifest)throw new Error("XKTLoaderPlugin: load() param expected: src, xkt, manifestSrc or manifestData");var options={};var includeTypes=params.includeTypes||this._includeTypes;var excludeTypes=params.excludeTypes||this._excludeTypes;var includeIds=params.includeIds||this._includeIds;var objectDefaults=params.objectDefaults||this._objectDefaults;options.reuseGeometries=params.reuseGeometries!==null&&params.reuseGeometries!==undefined?params.reuseGeometries:this._reuseGeometries!==false;if(includeTypes){options.includeTypesMap={};for(var _i648=0,len=includeTypes.length;_i648<len;_i648++){options.includeTypesMap[includeTypes[_i648]]=true;}}if(excludeTypes){options.excludeTypesMap={};for(var _i649=0,_len121=excludeTypes.length;_i649<_len121;_i649++){options.excludeTypesMap[excludeTypes[_i649]]=true;}}if(includeIds){options.includeIdsMap={};for(var _i650=0,_len122=includeIds.length;_i650<_len122;_i650++){options.includeIdsMap[includeIds[_i650]]=true;}}if(objectDefaults){options.objectDefaults=objectDefaults;}options.excludeUnclassifiedObjects=params.excludeUnclassifiedObjects!==undefined?!!params.excludeUnclassifiedObjects:this._excludeUnclassifiedObjects;options.globalizeObjectIds=params.globalizeObjectIds!==undefined&&params.globalizeObjectIds!==null?!!params.globalizeObjectIds:this._globalizeObjectIds;var sceneModel=new SceneModel(this.viewer.scene,utils.apply(params,{isModel:true,textureTranscoder:this._textureTranscoder,maxGeometryBatchSize:this._maxGeometryBatchSize,origin:params.origin,disableVertexWelding:params.disableVertexWelding||false,disableIndexRebucketing:params.disableIndexRebucketing||false,dtxEnabled:params.dtxEnabled,renderOrder:params.renderOrder}));var modelId=sceneModel.id;// In case ID was auto-generated
31884
+ */},{key:"load",value:function load(){var _this176=this;var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(params.id&&this.viewer.scene.components[params.id]){this.error("Component with this ID already exists in viewer: "+params.id+" - will autogenerate this ID");delete params.id;}if(!params.src&&!params.xkt&&!params.manifestSrc&&!params.manifest)throw new Error("XKTLoaderPlugin: load() param expected: src, xkt, manifestSrc or manifestData");var options={};var includeTypes=params.includeTypes||this._includeTypes;var excludeTypes=params.excludeTypes||this._excludeTypes;var includeIds=params.includeIds||this._includeIds;var objectDefaults=params.objectDefaults||this._objectDefaults;options.reuseGeometries=params.reuseGeometries!==null&&params.reuseGeometries!==undefined?params.reuseGeometries:this._reuseGeometries!==false;if(includeTypes){options.includeTypesMap={};for(var _i647=0,len=includeTypes.length;_i647<len;_i647++){options.includeTypesMap[includeTypes[_i647]]=true;}}if(excludeTypes){options.excludeTypesMap={};for(var _i648=0,_len121=excludeTypes.length;_i648<_len121;_i648++){options.excludeTypesMap[excludeTypes[_i648]]=true;}}if(includeIds){options.includeIdsMap={};for(var _i649=0,_len122=includeIds.length;_i649<_len122;_i649++){options.includeIdsMap[includeIds[_i649]]=true;}}if(objectDefaults){options.objectDefaults=objectDefaults;}options.excludeUnclassifiedObjects=params.excludeUnclassifiedObjects!==undefined?!!params.excludeUnclassifiedObjects:this._excludeUnclassifiedObjects;options.globalizeObjectIds=params.globalizeObjectIds!==undefined&&params.globalizeObjectIds!==null?!!params.globalizeObjectIds:this._globalizeObjectIds;var sceneModel=new SceneModel(this.viewer.scene,utils.apply(params,{isModel:true,textureTranscoder:this._textureTranscoder,maxGeometryBatchSize:this._maxGeometryBatchSize,origin:params.origin,disableVertexWelding:params.disableVertexWelding||false,disableIndexRebucketing:params.disableIndexRebucketing||false,dtxEnabled:params.dtxEnabled,renderOrder:params.renderOrder}));var modelId=sceneModel.id;// In case ID was auto-generated
31875
31885
  var metaModel=new MetaModel({metaScene:this.viewer.metaScene,id:modelId});this.viewer.scene.canvas.spinner.processes++;var finish=function finish(){if(sceneModel.destroyed){return;}// this._createDefaultMetaModelIfNeeded(sceneModel, params, options);
31876
31886
  sceneModel.finalize();metaModel.finalize();_this176.viewer.scene.canvas.spinner.processes--;sceneModel.once("destroyed",function(){_this176.viewer.metaScene.destroyMetaModel(metaModel.id);});_this176.scheduleTask(function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
31877
31887
  sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
31878
31888
  });};var error=function error(errMsg){_this176.viewer.scene.canvas.spinner.processes--;_this176.error(errMsg);sceneModel.fire("error",errMsg);};var nextId=0;var manifestCtx={getNextId:function getNextId(){return"".concat(modelId,".").concat(nextId++);}};if(params.metaModelSrc||params.metaModelData){if(params.metaModelSrc){var metaModelSrc=params.metaModelSrc;this._dataSource.getMetaModel(metaModelSrc,function(metaModelData){if(sceneModel.destroyed){return;}metaModel.loadData(metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});if(params.src){_this176._loadModel(params.src,options,sceneModel,null,manifestCtx,finish,error);}else{_this176._parseModel(params.xkt,options,sceneModel,null,manifestCtx);finish();}},function(errMsg){error("load(): Failed to load model metadata for model '".concat(modelId," from '").concat(metaModelSrc,"' - ").concat(errMsg));});}else if(params.metaModelData){metaModel.loadData(params.metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});if(params.src){this._loadModel(params.src,options,sceneModel,null,manifestCtx,finish,error);}else{this._parseModel(params.xkt,options,sceneModel,null,manifestCtx);finish();}}}else{if(params.src){this._loadModel(params.src,options,sceneModel,metaModel,manifestCtx,finish,error);}else if(params.xkt){this._parseModel(params.xkt,options,sceneModel,metaModel,manifestCtx);finish();}else if(params.manifestSrc||params.manifest){var baseDir=params.manifestSrc?getBaseDirectory$1(params.manifestSrc):"";var loadJSONs=function loadJSONs(metaDataFiles,done,error){var i=0;var loadNext=function loadNext(){if(sceneModel.destroyed){done();}else if(i>=metaDataFiles.length){done();}else{_this176._dataSource.getMetaModel("".concat(baseDir).concat(metaDataFiles[i]),function(metaModelData){metaModel.loadData(metaModelData,{includeTypes:includeTypes,excludeTypes:excludeTypes,globalizeObjectIds:options.globalizeObjectIds});i++;_this176.scheduleTask(loadNext,200);},error);}};loadNext();};var loadXKTs_excludeTheirMetaModels=function loadXKTs_excludeTheirMetaModels(xktFiles,done,error){// Load XKTs, ignore metamodels in the XKT
31879
31889
  var i=0;var loadNext=function loadNext(){if(sceneModel.destroyed){done();}else if(i>=xktFiles.length){done();}else{_this176._dataSource.getXKT("".concat(baseDir).concat(xktFiles[i]),function(arrayBuffer){_this176._parseModel(arrayBuffer,options,sceneModel,null/* Ignore metamodel in XKT */,manifestCtx);sceneModel.preFinalize();i++;_this176.scheduleTask(loadNext,200);},error);}};loadNext();};var loadXKTs_includeTheirMetaModels=function loadXKTs_includeTheirMetaModels(xktFiles,done,error){// Load XKTs, parse metamodels from the XKT
31880
- var i=0;var loadNext=function loadNext(){if(sceneModel.destroyed){done();}else if(i>=xktFiles.length){done();}else{_this176._dataSource.getXKT("".concat(baseDir).concat(xktFiles[i]),function(arrayBuffer){_this176._parseModel(arrayBuffer,options,sceneModel,metaModel,manifestCtx);sceneModel.preFinalize();i++;_this176.scheduleTask(loadNext,200);},error);}};loadNext();};if(params.manifest){var manifestData=params.manifest;var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs_excludeTheirMetaModels(xktFiles,finish,error);},error);}else{loadXKTs_includeTheirMetaModels(xktFiles,finish,error);}}else{this._dataSource.getManifest(params.manifestSrc,function(manifestData){if(sceneModel.destroyed){return;}var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs_excludeTheirMetaModels(xktFiles,finish,error);},error);}else{loadXKTs_includeTheirMetaModels(xktFiles,finish,error);}},error);}}}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,options,sceneModel,metaModel,manifestCtx,done,error){var _this177=this;this._dataSource.getXKT(src,function(arrayBuffer){_this177._parseModel(arrayBuffer,options,sceneModel,metaModel,manifestCtx);sceneModel.preFinalize();done();},error);}},{key:"_parseModel",value:function(){var _parseModel2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(arrayBuffer,options,sceneModel,metaModel,manifestCtx){var dataView,dataArray,firstUint,xktVersion,zipped,parser,numElements,elements,byteOffset,_i651,elementSize;return _regeneratorRuntime().wrap(function _callee7$(_context11){while(1){switch(_context11.prev=_context11.next){case 0:if(!sceneModel.destroyed){_context11.next=2;break;}return _context11.abrupt("return");case 2:dataView=new DataView(arrayBuffer);dataArray=new Uint8Array(arrayBuffer);firstUint=dataView.getUint32(0,true);xktVersion=firstUint&0x7fffffff;zipped=xktVersion<11||xktVersion>=12&&firstUint>>>31;parser=parsers[xktVersion];if(parser){_context11.next=11;break;}this.error("Unsupported .XKT file version: "+xktVersion+" - this XKTLoaderPlugin supports versions "+Object.keys(parsers));return _context11.abrupt("return");case 11:if(zipped){_context11.next=14;break;}parser.parseArrayBuffer(this.viewer,options,arrayBuffer,sceneModel,metaModel,manifestCtx);return _context11.abrupt("return");case 14:numElements=dataView.getUint32(4,true);elements=[];byteOffset=(numElements+2)*4;for(_i651=0;_i651<numElements;_i651++){elementSize=dataView.getUint32((_i651+2)*4,true);elements.push(dataArray.subarray(byteOffset,byteOffset+elementSize));byteOffset+=elementSize;}parser.parse(this.viewer,options,elements,sceneModel,metaModel,manifestCtx);case 19:case"end":return _context11.stop();}}},_callee7,this);}));function _parseModel(_x113,_x114,_x115,_x116,_x117){return _parseModel2.apply(this,arguments);}return _parseModel;}()}]);return XKTLoaderPlugin;}(Plugin);function getBaseDirectory$1(filePath){if(filePath.indexOf('?')>-1){filePath=filePath.split('?')[0];}var pathArray=filePath.split('/');pathArray.pop();// Remove the file name or the last segment of the path
31890
+ var i=0;var loadNext=function loadNext(){if(sceneModel.destroyed){done();}else if(i>=xktFiles.length){done();}else{_this176._dataSource.getXKT("".concat(baseDir).concat(xktFiles[i]),function(arrayBuffer){_this176._parseModel(arrayBuffer,options,sceneModel,metaModel,manifestCtx);sceneModel.preFinalize();i++;_this176.scheduleTask(loadNext,200);},error);}};loadNext();};if(params.manifest){var manifestData=params.manifest;var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs_excludeTheirMetaModels(xktFiles,finish,error);},error);}else{loadXKTs_includeTheirMetaModels(xktFiles,finish,error);}}else{this._dataSource.getManifest(params.manifestSrc,function(manifestData){if(sceneModel.destroyed){return;}var xktFiles=manifestData.xktFiles;if(!xktFiles||xktFiles.length===0){error("load(): Failed to load model manifest - manifest not valid");return;}var metaModelFiles=manifestData.metaModelFiles;if(metaModelFiles){loadJSONs(metaModelFiles,function(){loadXKTs_excludeTheirMetaModels(xktFiles,finish,error);},error);}else{loadXKTs_includeTheirMetaModels(xktFiles,finish,error);}},error);}}}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,options,sceneModel,metaModel,manifestCtx,done,error){var _this177=this;this._dataSource.getXKT(src,function(arrayBuffer){_this177._parseModel(arrayBuffer,options,sceneModel,metaModel,manifestCtx);sceneModel.preFinalize();done();},error);}},{key:"_parseModel",value:function(){var _parseModel2=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(arrayBuffer,options,sceneModel,metaModel,manifestCtx){var dataView,dataArray,firstUint,xktVersion,zipped,parser,numElements,elements,byteOffset,_i650,elementSize;return _regeneratorRuntime().wrap(function _callee8$(_context12){while(1){switch(_context12.prev=_context12.next){case 0:if(!sceneModel.destroyed){_context12.next=2;break;}return _context12.abrupt("return");case 2:dataView=new DataView(arrayBuffer);dataArray=new Uint8Array(arrayBuffer);firstUint=dataView.getUint32(0,true);xktVersion=firstUint&0x7fffffff;zipped=xktVersion<11||xktVersion>=12&&firstUint>>>31;parser=parsers[xktVersion];if(parser){_context12.next=11;break;}this.error("Unsupported .XKT file version: "+xktVersion+" - this XKTLoaderPlugin supports versions "+Object.keys(parsers));return _context12.abrupt("return");case 11:if(zipped){_context12.next=14;break;}parser.parseArrayBuffer(this.viewer,options,arrayBuffer,sceneModel,metaModel,manifestCtx);return _context12.abrupt("return");case 14:numElements=dataView.getUint32(4,true);elements=[];byteOffset=(numElements+2)*4;for(_i650=0;_i650<numElements;_i650++){elementSize=dataView.getUint32((_i650+2)*4,true);elements.push(dataArray.subarray(byteOffset,byteOffset+elementSize));byteOffset+=elementSize;}parser.parse(this.viewer,options,elements,sceneModel,metaModel,manifestCtx);case 19:case"end":return _context12.stop();}}},_callee8,this);}));function _parseModel(_x114,_x115,_x116,_x117,_x118){return _parseModel2.apply(this,arguments);}return _parseModel;}()}]);return XKTLoaderPlugin;}(Plugin);function getBaseDirectory$1(filePath){if(filePath.indexOf('?')>-1){filePath=filePath.split('?')[0];}var pathArray=filePath.split('/');pathArray.pop();// Remove the file name or the last segment of the path
31881
31891
  return pathArray.join('/')+'/';}/*
31882
31892
  Copyright (c) 2013 Gildas Lormeau. All rights reserved.
31883
31893
 
@@ -32745,12 +32755,12 @@ var isBase64=!!dataUriRegexResult[2];var data=dataUriRegexResult[3];data=window.
32745
32755
  * primitives. Only works while {@link DTX#enabled} is also ````true````.
32746
32756
  * @returns {Entity} Entity representing the model, which will have {@link Entity#isModel} set ````true```` and will be registered by {@link Entity#id} in {@link Scene#models}.
32747
32757
  */},{key:"load",value:function load(){var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(params.id&&this.viewer.scene.components[params.id]){this.error("Component with this ID already exists in viewer: "+params.id+" - will autogenerate this ID");delete params.id;}var sceneModel=new SceneModel(this.viewer.scene,utils.apply(params,{isModel:true}));if(!params.src&&!params.ifc){this.error("load() param expected: src or IFC");return sceneModel;// Return new empty model
32748
- }var options={autoNormals:true};if(params.loadMetadata!==false){var includeTypes=params.includeTypes||this._includeTypes;var excludeTypes=params.excludeTypes||this._excludeTypes;var objectDefaults=params.objectDefaults||this._objectDefaults;if(includeTypes){options.includeTypesMap={};for(var _i652=0,len=includeTypes.length;_i652<len;_i652++){options.includeTypesMap[includeTypes[_i652]]=true;}}if(excludeTypes){options.excludeTypesMap={};for(var _i653=0,_len123=excludeTypes.length;_i653<_len123;_i653++){options.excludeTypesMap[excludeTypes[_i653]]=true;}}if(objectDefaults){options.objectDefaults=objectDefaults;}options.excludeUnclassifiedObjects=params.excludeUnclassifiedObjects!==undefined?!!params.excludeUnclassifiedObjects:this._excludeUnclassifiedObjects;options.globalizeObjectIds=params.globalizeObjectIds!==undefined?!!params.globalizeObjectIds:this._globalizeObjectIds;}try{if(params.src){this._loadModel(params.src,params,options,sceneModel);}else{this._parseModel(params.ifc,params,options,sceneModel);}}catch(e){this.error(e);sceneModel.fire("error",e);}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,params,options,sceneModel){var _this180=this;var spinner=this.viewer.scene.canvas.spinner;spinner.processes++;this._dataSource.getIFC(params.src,function(arrayBuffer){_this180._parseModel(arrayBuffer,params,options,sceneModel);spinner.processes--;},function(errMsg){spinner.processes--;_this180.error(errMsg);sceneModel.fire("error",errMsg);});}},{key:"_parseModel",value:function _parseModel(arrayBuffer,params,options,sceneModel){if(sceneModel.destroyed){return;}var stats=params.stats||{};stats.sourceFormat="IFC";stats.schemaVersion="";stats.title="";stats.author="";stats.created="";stats.numMetaObjects=0;stats.numPropertySets=0;stats.numObjects=0;stats.numGeometries=0;stats.numTriangles=0;stats.numVertices=0;if(!this._ifcAPI){throw"WebIFCLoaderPlugin has no WebIFC instance configured - please inject via WebIFCLoaderPlugin constructor";}var dataArray=new Uint8Array(arrayBuffer);var modelID=this._ifcAPI.OpenModel(dataArray);var modelSchema=this._ifcAPI.GetModelSchema(modelID);var lines=this._ifcAPI.GetLineIDsWithType(modelID,this._webIFC.IFCPROJECT);var ifcProjectId=lines.get(0);var loadMetadata=params.loadMetadata!==false;var metadata=loadMetadata?{id:"",projectId:""+ifcProjectId,author:"",createdAt:"",schema:"",creatingApplication:"",metaObjects:[],propertySets:[]}:null;var ctx={modelID:modelID,modelSchema:modelSchema,sceneModel:sceneModel,loadMetadata:loadMetadata,metadata:metadata,metaObjects:{},options:options,log:function log(msg){},nextId:0,stats:stats};if(loadMetadata){if(options.includeTypes){ctx.includeTypes={};for(var _i654=0,len=options.includeTypes.length;_i654<len;_i654++){ctx.includeTypes[options.includeTypes[_i654]]=true;}}if(options.excludeTypes){ctx.excludeTypes={};for(var _i655=0,_len124=options.excludeTypes.length;_i655<_len124;_i655++){ctx.excludeTypes[options.excludeTypes[_i655]]=true;}}this._parseMetaObjects(ctx);this._parsePropertySets(ctx);}this._parseGeometry(ctx);sceneModel.finalize();if(loadMetadata){var metaModelId=sceneModel.id;this.viewer.metaScene.createMetaModel(metaModelId,ctx.metadata,options);}sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
32758
+ }var options={autoNormals:true};if(params.loadMetadata!==false){var includeTypes=params.includeTypes||this._includeTypes;var excludeTypes=params.excludeTypes||this._excludeTypes;var objectDefaults=params.objectDefaults||this._objectDefaults;if(includeTypes){options.includeTypesMap={};for(var _i651=0,len=includeTypes.length;_i651<len;_i651++){options.includeTypesMap[includeTypes[_i651]]=true;}}if(excludeTypes){options.excludeTypesMap={};for(var _i652=0,_len123=excludeTypes.length;_i652<_len123;_i652++){options.excludeTypesMap[excludeTypes[_i652]]=true;}}if(objectDefaults){options.objectDefaults=objectDefaults;}options.excludeUnclassifiedObjects=params.excludeUnclassifiedObjects!==undefined?!!params.excludeUnclassifiedObjects:this._excludeUnclassifiedObjects;options.globalizeObjectIds=params.globalizeObjectIds!==undefined?!!params.globalizeObjectIds:this._globalizeObjectIds;}try{if(params.src){this._loadModel(params.src,params,options,sceneModel);}else{this._parseModel(params.ifc,params,options,sceneModel);}}catch(e){this.error(e);sceneModel.fire("error",e);}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,params,options,sceneModel){var _this180=this;var spinner=this.viewer.scene.canvas.spinner;spinner.processes++;this._dataSource.getIFC(params.src,function(arrayBuffer){_this180._parseModel(arrayBuffer,params,options,sceneModel);spinner.processes--;},function(errMsg){spinner.processes--;_this180.error(errMsg);sceneModel.fire("error",errMsg);});}},{key:"_parseModel",value:function _parseModel(arrayBuffer,params,options,sceneModel){if(sceneModel.destroyed){return;}var stats=params.stats||{};stats.sourceFormat="IFC";stats.schemaVersion="";stats.title="";stats.author="";stats.created="";stats.numMetaObjects=0;stats.numPropertySets=0;stats.numObjects=0;stats.numGeometries=0;stats.numTriangles=0;stats.numVertices=0;if(!this._ifcAPI){throw"WebIFCLoaderPlugin has no WebIFC instance configured - please inject via WebIFCLoaderPlugin constructor";}var dataArray=new Uint8Array(arrayBuffer);var modelID=this._ifcAPI.OpenModel(dataArray);var modelSchema=this._ifcAPI.GetModelSchema(modelID);var lines=this._ifcAPI.GetLineIDsWithType(modelID,this._webIFC.IFCPROJECT);var ifcProjectId=lines.get(0);var loadMetadata=params.loadMetadata!==false;var metadata=loadMetadata?{id:"",projectId:""+ifcProjectId,author:"",createdAt:"",schema:"",creatingApplication:"",metaObjects:[],propertySets:[]}:null;var ctx={modelID:modelID,modelSchema:modelSchema,sceneModel:sceneModel,loadMetadata:loadMetadata,metadata:metadata,metaObjects:{},options:options,log:function log(msg){},nextId:0,stats:stats};if(loadMetadata){if(options.includeTypes){ctx.includeTypes={};for(var _i653=0,len=options.includeTypes.length;_i653<len;_i653++){ctx.includeTypes[options.includeTypes[_i653]]=true;}}if(options.excludeTypes){ctx.excludeTypes={};for(var _i654=0,_len124=options.excludeTypes.length;_i654<_len124;_i654++){ctx.excludeTypes[options.excludeTypes[_i654]]=true;}}this._parseMetaObjects(ctx);this._parsePropertySets(ctx);}this._parseGeometry(ctx);sceneModel.finalize();if(loadMetadata){var metaModelId=sceneModel.id;this.viewer.metaScene.createMetaModel(metaModelId,ctx.metadata,options);}sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
32749
32759
  sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
32750
- });}},{key:"_parseMetaObjects",value:function _parseMetaObjects(ctx){var lines=this._ifcAPI.GetLineIDsWithType(ctx.modelID,this._webIFC.IFCPROJECT);var ifcProjectId=lines.get(0);var ifcProject=this._ifcAPI.GetLine(ctx.modelID,ifcProjectId);this._parseSpatialChildren(ctx,ifcProject);}},{key:"_parseSpatialChildren",value:function _parseSpatialChildren(ctx,ifcElement,parentMetaObjectId){var metaObjectType=this._ifcAPI.GetNameFromTypeCode(ifcElement.type);if(ctx.includeTypes&&!ctx.includeTypes[metaObjectType]){return;}if(ctx.excludeTypes&&ctx.excludeTypes[metaObjectType]){return;}this._createMetaObject(ctx,ifcElement,parentMetaObjectId);var metaObjectId=ifcElement.GlobalId.value;this._parseRelatedItemsOfType(ctx,ifcElement.expressID,'RelatingObject','RelatedObjects',this._webIFC.IFCRELAGGREGATES,metaObjectId);this._parseRelatedItemsOfType(ctx,ifcElement.expressID,'RelatingStructure','RelatedElements',this._webIFC.IFCRELCONTAINEDINSPATIALSTRUCTURE,metaObjectId);}},{key:"_createMetaObject",value:function _createMetaObject(ctx,ifcElement,parentMetaObjectId){var id=ifcElement.GlobalId.value;var metaObjectType=this._ifcAPI.GetNameFromTypeCode(ifcElement.type);var metaObjectName=ifcElement.Name&&ifcElement.Name.value!==""?ifcElement.Name.value:metaObjectType;var metaObject={id:id,name:metaObjectName,type:metaObjectType,parent:parentMetaObjectId};ctx.metadata.metaObjects.push(metaObject);ctx.metaObjects[id]=metaObject;ctx.stats.numMetaObjects++;}},{key:"_parseRelatedItemsOfType",value:function _parseRelatedItemsOfType(ctx,id,relation,related,type,parentMetaObjectId){var _this181=this;var lines=this._ifcAPI.GetLineIDsWithType(ctx.modelID,type);for(var _i656=0;_i656<lines.size();_i656++){var relID=lines.get(_i656);var rel=this._ifcAPI.GetLine(ctx.modelID,relID);var relatedItems=rel[relation];var foundElement=false;if(Array.isArray(relatedItems)){var values=relatedItems.map(function(item){return item.value;});foundElement=values.includes(id);}else{foundElement=relatedItems.value===id;}if(foundElement){var element=rel[related];if(!Array.isArray(element)){var ifcElement=this._ifcAPI.GetLine(ctx.modelID,element.value);this._parseSpatialChildren(ctx,ifcElement,parentMetaObjectId);}else{element.forEach(function(element2){var ifcElement=_this181._ifcAPI.GetLine(ctx.modelID,element2.value);_this181._parseSpatialChildren(ctx,ifcElement,parentMetaObjectId);});}}}}},{key:"_parsePropertySets",value:function _parsePropertySets(ctx){var lines=this._ifcAPI.GetLineIDsWithType(ctx.modelID,this._webIFC.IFCRELDEFINESBYPROPERTIES);for(var _i657=0;_i657<lines.size();_i657++){var relID=lines.get(_i657);var rel=this._ifcAPI.GetLine(ctx.modelID,relID,true);if(rel){var relatingPropertyDefinition=rel.RelatingPropertyDefinition;if(!relatingPropertyDefinition){continue;}var propertySetId=relatingPropertyDefinition.GlobalId.value;var props=relatingPropertyDefinition.HasProperties;if(props&&props.length>0){var propertySetType="Default";var propertySetName=relatingPropertyDefinition.Name.value;var properties=[];for(var _i658=0,len=props.length;_i658<len;_i658++){var prop=props[_i658];var _name7=prop.Name;var nominalValue=prop.NominalValue;if(_name7&&nominalValue){var property={name:_name7.value,type:nominalValue.type,value:nominalValue.value,valueType:nominalValue.valueType};if(prop.Description){property.description=prop.Description.value;}else if(nominalValue.description){property.description=nominalValue.description;}properties.push(property);}}var propertySet={id:propertySetId,type:propertySetType,name:propertySetName,properties:properties};ctx.metadata.propertySets.push(propertySet);ctx.stats.numPropertySets++;var relatedObjects=rel.RelatedObjects;if(!relatedObjects||relatedObjects.length===0){return;}for(var _i659=0,_len125=relatedObjects.length;_i659<_len125;_i659++){var relatedObject=relatedObjects[_i659];var metaObjectId=relatedObject.GlobalId.value;var metaObject=ctx.metaObjects[metaObjectId];if(metaObject){if(!metaObject.propertySetIds){metaObject.propertySetIds=[];}metaObject.propertySetIds.push(propertySetId);}}}}}}},{key:"_parseGeometry",value:function _parseGeometry(ctx){var _this182=this;this._ifcAPI.StreamAllMeshes(ctx.modelID,function(flatMesh){// TODO: Can we do geometry reuse with web-ifc?
32760
+ });}},{key:"_parseMetaObjects",value:function _parseMetaObjects(ctx){var lines=this._ifcAPI.GetLineIDsWithType(ctx.modelID,this._webIFC.IFCPROJECT);var ifcProjectId=lines.get(0);var ifcProject=this._ifcAPI.GetLine(ctx.modelID,ifcProjectId);this._parseSpatialChildren(ctx,ifcProject);}},{key:"_parseSpatialChildren",value:function _parseSpatialChildren(ctx,ifcElement,parentMetaObjectId){var metaObjectType=this._ifcAPI.GetNameFromTypeCode(ifcElement.type);if(ctx.includeTypes&&!ctx.includeTypes[metaObjectType]){return;}if(ctx.excludeTypes&&ctx.excludeTypes[metaObjectType]){return;}this._createMetaObject(ctx,ifcElement,parentMetaObjectId);var metaObjectId=ifcElement.GlobalId.value;this._parseRelatedItemsOfType(ctx,ifcElement.expressID,'RelatingObject','RelatedObjects',this._webIFC.IFCRELAGGREGATES,metaObjectId);this._parseRelatedItemsOfType(ctx,ifcElement.expressID,'RelatingStructure','RelatedElements',this._webIFC.IFCRELCONTAINEDINSPATIALSTRUCTURE,metaObjectId);}},{key:"_createMetaObject",value:function _createMetaObject(ctx,ifcElement,parentMetaObjectId){var id=ifcElement.GlobalId.value;var metaObjectType=this._ifcAPI.GetNameFromTypeCode(ifcElement.type);var metaObjectName=ifcElement.Name&&ifcElement.Name.value!==""?ifcElement.Name.value:metaObjectType;var metaObject={id:id,name:metaObjectName,type:metaObjectType,parent:parentMetaObjectId};ctx.metadata.metaObjects.push(metaObject);ctx.metaObjects[id]=metaObject;ctx.stats.numMetaObjects++;}},{key:"_parseRelatedItemsOfType",value:function _parseRelatedItemsOfType(ctx,id,relation,related,type,parentMetaObjectId){var _this181=this;var lines=this._ifcAPI.GetLineIDsWithType(ctx.modelID,type);for(var _i655=0;_i655<lines.size();_i655++){var relID=lines.get(_i655);var rel=this._ifcAPI.GetLine(ctx.modelID,relID);var relatedItems=rel[relation];var foundElement=false;if(Array.isArray(relatedItems)){var values=relatedItems.map(function(item){return item.value;});foundElement=values.includes(id);}else{foundElement=relatedItems.value===id;}if(foundElement){var element=rel[related];if(!Array.isArray(element)){var ifcElement=this._ifcAPI.GetLine(ctx.modelID,element.value);this._parseSpatialChildren(ctx,ifcElement,parentMetaObjectId);}else{element.forEach(function(element2){var ifcElement=_this181._ifcAPI.GetLine(ctx.modelID,element2.value);_this181._parseSpatialChildren(ctx,ifcElement,parentMetaObjectId);});}}}}},{key:"_parsePropertySets",value:function _parsePropertySets(ctx){var lines=this._ifcAPI.GetLineIDsWithType(ctx.modelID,this._webIFC.IFCRELDEFINESBYPROPERTIES);for(var _i656=0;_i656<lines.size();_i656++){var relID=lines.get(_i656);var rel=this._ifcAPI.GetLine(ctx.modelID,relID,true);if(rel){var relatingPropertyDefinition=rel.RelatingPropertyDefinition;if(!relatingPropertyDefinition){continue;}var propertySetId=relatingPropertyDefinition.GlobalId.value;var props=relatingPropertyDefinition.HasProperties;if(props&&props.length>0){var propertySetType="Default";var propertySetName=relatingPropertyDefinition.Name.value;var properties=[];for(var _i657=0,len=props.length;_i657<len;_i657++){var prop=props[_i657];var _name7=prop.Name;var nominalValue=prop.NominalValue;if(_name7&&nominalValue){var property={name:_name7.value,type:nominalValue.type,value:nominalValue.value,valueType:nominalValue.valueType};if(prop.Description){property.description=prop.Description.value;}else if(nominalValue.description){property.description=nominalValue.description;}properties.push(property);}}var propertySet={id:propertySetId,type:propertySetType,name:propertySetName,properties:properties};ctx.metadata.propertySets.push(propertySet);ctx.stats.numPropertySets++;var relatedObjects=rel.RelatedObjects;if(!relatedObjects||relatedObjects.length===0){return;}for(var _i658=0,_len125=relatedObjects.length;_i658<_len125;_i658++){var relatedObject=relatedObjects[_i658];var metaObjectId=relatedObject.GlobalId.value;var metaObject=ctx.metaObjects[metaObjectId];if(metaObject){if(!metaObject.propertySetIds){metaObject.propertySetIds=[];}metaObject.propertySetIds.push(propertySetId);}}}}}}},{key:"_parseGeometry",value:function _parseGeometry(ctx){var _this182=this;this._ifcAPI.StreamAllMeshes(ctx.modelID,function(flatMesh){// TODO: Can we do geometry reuse with web-ifc?
32751
32761
  var flatMeshExpressID=flatMesh.expressID;var placedGeometries=flatMesh.geometries;var meshIds=[];var properties=_this182._ifcAPI.GetLine(ctx.modelID,flatMeshExpressID);var globalId=properties.GlobalId.value;if(ctx.loadMetadata){var metaObjectId=globalId;var metaObject=ctx.metaObjects[metaObjectId];if(ctx.includeTypes&&(!metaObject||!ctx.includeTypes[metaObject.type])){return;}if(ctx.excludeTypes&&(!metaObject||ctx.excludeTypes[metaObject.type])){return;}}var matrix=math.mat4();var origin=math.vec3();for(var j=0,lenj=placedGeometries.size();j<lenj;j++){var placedGeometry=placedGeometries.get(j);var geometry=_this182._ifcAPI.GetGeometry(ctx.modelID,placedGeometry.geometryExpressID);var vertexData=_this182._ifcAPI.GetVertexArray(geometry.GetVertexData(),geometry.GetVertexDataSize());var indices=_this182._ifcAPI.GetIndexArray(geometry.GetIndexData(),geometry.GetIndexDataSize());// De-interleave vertex arrays
32752
32762
  var positions=new Float64Array(vertexData.length/2);var normals=new Float32Array(vertexData.length/2);for(var k=0,l=0,lenk=vertexData.length/6;k<lenk;k++,l+=3){positions[l+0]=vertexData[k*6+0];positions[l+1]=vertexData[k*6+1];positions[l+2]=vertexData[k*6+2];}matrix.set(placedGeometry.flatTransformation);math.transformPositions3(matrix,positions);var rtcNeeded=worldToRTCPositions(positions,positions,origin);if(!ctx.options.autoNormals){for(var _k2=0,_l2=0,_lenk=vertexData.length/6;_k2<_lenk;_k2++,_l2+=3){normals[_l2+0]=vertexData[_k2*6+3];normals[_l2+1]=vertexData[_k2*6+4];normals[_l2+2]=vertexData[_k2*6+5];}}ctx.stats.numGeometries++;ctx.stats.numVertices+=positions.length/3;ctx.stats.numTriangles+=indices.length/3;var meshId="mesh"+ctx.nextId++;ctx.sceneModel.createMesh({id:meshId,primitive:"triangles",// TODO
32753
- origin:rtcNeeded?origin:null,positions:positions,normals:ctx.options.autoNormals?null:normals,indices:indices,color:[placedGeometry.color.x,placedGeometry.color.y,placedGeometry.color.z],opacity:placedGeometry.color.w});meshIds.push(meshId);}var entityId=ctx.options.globalizeObjectIds?math.globalizeObjectId(ctx.sceneModel.id,globalId):globalId;ctx.sceneModel.createEntity({id:entityId,meshIds:meshIds,isObject:true});ctx.stats.numObjects++;});}}]);return WebIFCLoaderPlugin;}(Plugin);var name="@creooxag/cx-converter";var version="0.0.12-alpha";var description="";var exports$1={".":{types:"./dist/index.d.ts","import":"./dist/index.mjs",require:"./dist/index.cjs"}};var main="./dist/index.mjs";var module$1="./dist/index.mjs";var types="./dist/index.d.ts";var typesVersions={"*":{"*":["./dist/*","./dist/index.d.ts"]}};var files=["dist/"];var scripts={"clean-dist":"rm -rf ./dist","clean-cmake":"rm -rf ./cmake-build","build-wasm-release":"emcmake cmake -S . -B ../cmake-build -DCMAKE_BUILD_TYPE=Release && cmake --build ../cmake-build","publish-npm":"npm publish --access public",build:"unbuild",dev:"unbuild --stub",lint:"eslint .",start:"esno examples/node/nodeExport.ts","example-html":"http-server -c-1 -p8237 --cors"};var keywords=[];var devDependencies={"@types/node":"^22.10.2",esno:"^4.8.0","fast-glob":"^3.3.2",globals:"^15.8.0","http-server":"^14.1.1",prettier:"^3.3.3","prettier-eslint":"^16.3.0",typescript:"^5.7.2",unbuild:"^2.0.0","@eslint/eslintrc":"^3.2.0","@eslint/js":"^9.20.0","@typescript-eslint/eslint-plugin":"^8.24.0","@typescript-eslint/parser":"^8.24.0",eslint:"^9.20.1","eslint-config-prettier":"^10.0.1","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.3"};var packageJSON={name:name,version:version,description:description,exports:exports$1,main:main,module:module$1,types:types,typesVersions:typesVersions,files:files,scripts:scripts,keywords:keywords,devDependencies:devDependencies};var __defProp$2=Object.defineProperty;var __defNormalProp$2=function __defNormalProp$2(obj,key,value){return key in obj?__defProp$2(obj,key,{enumerable:true,configurable:true,writable:true,value:value}):obj[key]=value;};var __publicField$2=function __publicField$2(obj,key,value){__defNormalProp$2(obj,_typeof(key)!=="symbol"?key+"":key,value);return value;};var IfcDbWasm=function(){var _scriptName=import.meta.url;return/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee14(){var moduleArg,moduleRtn,Module,readyPromiseResolve,readyPromiseReject,readyPromise,moduleOverrides,arguments_,thisProgram,quit_,scriptDirectory,locateFile,readAsync,readBinary,out,err,wasmBinary,wasmMemory,ABORT,EXITSTATUS,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64,updateMemoryViews,preRun,initRuntime,postRun,runDependencies,dependenciesFulfilled,addRunDependency,removeRunDependency,abort,wasmBinaryFile,findWasmBinary,getBinarySync,getWasmBinary,_getWasmBinary,instantiateArrayBuffer,_instantiateArrayBuffer,instantiateAsync,_instantiateAsync,getWasmImports,createWasm,_createWasm,ASM_CONSTS,ExitStatus,callRuntimeCallbacks,onPostRuns,addOnPostRun,onPreRuns,addOnPreRun,noExitRuntime,ExceptionInfo,exceptionLast,___cxa_throw,syscallGetVarargI,syscallGetVarargP,PATH,initRandomFill,_randomFill,PATH_FS,UTF8Decoder,UTF8ArrayToString,FS_stdin_getChar_buffer,lengthBytesUTF8,stringToUTF8Array,intArrayFromString,FS_stdin_getChar,TTY,alignMemory,mmapAlloc,MEMFS,asyncLoad,FS_createDataFile,preloadPlugins,FS_handledByPreloadPlugin,FS_createPreloadedFile,FS_modeStringToFlags,FS_getMode,FS,UTF8ToString,SYSCALLS,___syscall_fcntl64,___syscall_ioctl,___syscall_openat,___syscall_renameat,___syscall_rmdir,___syscall_stat64,___syscall_unlinkat,__abort_js,structRegistrations,runDestructors,readPointer,awaitingDependencies,registeredTypes,typeDependencies,InternalError,throwInternalError,whenDependentTypesAreResolved,__embind_finalize_value_object,embindRepr,embind_init_charCodes,embind_charCodes,readLatin1String,BindingError,throwBindingError,sharedRegisterType,registerType,integerReadValueFromPointer,__embind_register_bigint,GenericWireTypeSize,__embind_register_bool,emval_freelist,emval_handles,__emval_decref,count_emval_handles,init_emval,Emval,EmValType,__embind_register_emval,floatReadValueFromPointer,__embind_register_float,createNamedFunction,usesDestructorStack,newFunc,createJsInvoker,runAndAbortIfError,handleException,runtimeKeepaliveCounter,keepRuntimeAlive,_proc_exit,exitJS,_exit,maybeExit,callUserCallback,Asyncify,craftInvokerFunction,ensureOverloadTable,exposePublicSymbol,heap32VectorToArray,replacePublicSymbol,dynCallLegacy,dynCall,getDynCaller,embind__requireFunction,extendError,UnboundTypeError,getTypeName,throwUnboundTypeError,getFunctionName,__embind_register_function,__embind_register_integer,__embind_register_memory_view,stringToUTF8,__embind_register_std_string,UTF16Decoder,UTF16ToString,stringToUTF16,lengthBytesUTF16,UTF32ToString,stringToUTF32,lengthBytesUTF32,__embind_register_std_wstring,__embind_register_value_object,__embind_register_value_object_field,__embind_register_void,requireRegisteredType,emval_returnValue,__emval_as,emval_methodCallers,__emval_call,emval_symbols,getStringOrSymbol,emval_get_global,__emval_get_global,emval_addMethodCaller,emval_lookupTypes,__emval_get_method_caller,__emval_incref,__emval_is_string,__emval_run_destructors,__emval_take_value,isLeapYear,MONTH_DAYS_LEAP_CUMULATIVE,MONTH_DAYS_REGULAR_CUMULATIVE,ydayFromDate,INT53_MAX,INT53_MIN,bigintToI53Checked,__localtime_js,__mktime_js,__tzset_js,_emscripten_get_now,_emscripten_date_now,checkWasiClock,_clock_time_get,readEmAsmArgsArray,readEmAsmArgs,runEmAsmFunction,_emscripten_asm_const_int,getHeapMax,_emscripten_get_heap_max,growMemory,_emscripten_resize_heap,safeSetTimeout,_emscripten_sleep,ENV,getExecutableName,getEnvStrings,stringToAscii,_environ_get,_environ_sizes_get,_fd_close,doReadv,_fd_read,_fd_seek,doWritev,_fd_write,stackAlloc,stringToUTF8OnStack,wasmImports,wasmExports,___getTypeName,_malloc,_free,_main,__emscripten_stack_alloc,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,callMain,run,_args17=arguments;return _regeneratorRuntime().wrap(function _callee14$(_context18){while(1){switch(_context18.prev=_context18.next){case 0:run=function _run(){var args=arguments.length>0&&arguments[0]!==undefined?arguments[0]:arguments_;if(runDependencies>0){dependenciesFulfilled=run;return;}preRun();if(runDependencies>0){dependenciesFulfilled=run;return;}function doRun(){var _Module$onRuntimeInit;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);(_Module$onRuntimeInit=Module["onRuntimeInitialized"])===null||_Module$onRuntimeInit===void 0?void 0:_Module$onRuntimeInit.call(Module);var noInitialRun=Module["noInitialRun"]||true;if(!noInitialRun)callMain(args);postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){return Module["setStatus"]("");},1);doRun();},1);}else{doRun();}};callMain=function _callMain(){var args=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(function(arg){HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4;});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret;}catch(e){return handleException(e);}};_fd_write=function _fd_write2(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_fd_seek=function _fd_seek2(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_fd_read=function _fd_read2(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_fd_close=function _fd_close2(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_clock_time_get=function _clock_time_get2(clk_id,ignored_precision,ptime){if(!checkWasiClock(clk_id)){return 28;}var now;if(clk_id===0){now=_emscripten_date_now();}else{now=_emscripten_get_now();}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0;};__localtime_js=function _localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;};craftInvokerFunction=function _craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=argTypes[0].name!=="void";var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];for(var i=0;i<argCount-2;++i){closureArgs.push(argTypes[i+2]);}closureArgs.push(Asyncify);if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction);}}}var _createJsInvoker=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync),_createJsInvoker2=_slicedToArray(_createJsInvoker,2),args=_createJsInvoker2[0],invokerFnBody=_createJsInvoker2[1];args.push(invokerFnBody);var invokerFn=newFunc(Function,args).apply(void 0,closureArgs);return createNamedFunction(humanName,invokerFn);};createJsInvoker=function _createJsInvoker3(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=["fn"];if(isClassMethodFunc){argsListWired.push("thisWired");}for(var i=0;i<argCount;++i){argsList.push("arg".concat(i));argsListWired.push("arg".concat(i,"Wired"));}argsList=argsList.join(",");argsListWired=argsListWired.join(",");var invokerFnBody="return function (".concat(argsList,") {\n");if(needsDestructorStack){invokerFnBody+="var destructors = [];\n";}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["humanName","throwBindingError","invoker","fn","runDestructors","retType","classParam"];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam['toWireType'](".concat(dtorStack,", this);\n");}for(var i=0;i<argCount;++i){invokerFnBody+="var arg".concat(i,"Wired = argType").concat(i,"['toWireType'](").concat(dtorStack,", arg").concat(i,");\n");args1.push("argType".concat(i));}invokerFnBody+=(returns||isAsync?"var rv = ":"")+"invoker(".concat(argsListWired,");\n");var returnVal=returns?"rv":"";args1.push("Asyncify");invokerFnBody+="function onDone(".concat(returnVal,") {\n");if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+="".concat(paramName,"_dtor(").concat(paramName,");\n");args1.push("".concat(paramName,"_dtor"));}}}if(returns){invokerFnBody+="var ret = retType['fromWireType'](rv);\nreturn ret;\n";}invokerFnBody+="}\n";invokerFnBody+="return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(".concat(returnVal,");\n");invokerFnBody+="}\n";return[args1,invokerFnBody];};newFunc=function _newFunc(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type ".concat(_typeof(constructor)," which is not a function"));}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy();var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj;};usesDestructorStack=function _usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===void 0){return true;}}return false;};registerType=function _registerType(rawType,registeredInstance){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return sharedRegisterType(rawType,registeredInstance,options);};sharedRegisterType=function _sharedRegisterType(rawType,registeredInstance){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var name=registeredInstance.name;if(!rawType){throwBindingError("type \"".concat(name,"\" must have a positive integer typeid pointer"));}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return;}else{throwBindingError("Cannot register type '".concat(name,"' twice"));}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){return cb();});}};readPointer=function _readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2]);};___syscall_unlinkat=function _syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path);}else if(flags===512){FS.rmdir(path);}else{abort("Invalid flags passed to unlinkat");}return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_stat64=function _syscall_stat(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path));}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_rmdir=function _syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_renameat=function _syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_openat=function _syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_ioctl=function _syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0;}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0;}return 0;}return 0;}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0;}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17]);}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc});}return 0;}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0;}case 21520:{if(!stream.tty)return-59;return-28;}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp);}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1];}return 0;}case 21524:{if(!stream.tty)return-59;return 0;}case 21515:{if(!stream.tty)return-59;return 0;}default:return-28;}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_fcntl64=function _syscall_fcntl(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28;}while(FS.streams[arg]){arg++;}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd;}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0;}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0;}case 13:case 14:return 0;}return-28;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};_createWasm=function _createWasm3(){_createWasm=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(){var _wasmBinaryFile;var receiveInstance,receiveInstantiationResult,info,result,exports;return _regeneratorRuntime().wrap(function _callee13$(_context17){while(1){switch(_context17.prev=_context17.next){case 0:receiveInstantiationResult=function _receiveInstantiation(result2){return receiveInstance(result2["instance"]);};receiveInstance=function _receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports["U"];updateMemoryViews();wasmExports["X"];removeRunDependency();return wasmExports;};addRunDependency();info=getWasmImports();if(!Module["instantiateWasm"]){_context17.next=6;break;}return _context17.abrupt("return",new Promise(function(resolve,reject){Module["instantiateWasm"](info,function(mod,inst){receiveInstance(mod);resolve(mod.exports);});}));case 6:(_wasmBinaryFile=wasmBinaryFile)!==null&&_wasmBinaryFile!==void 0?_wasmBinaryFile:wasmBinaryFile=findWasmBinary();_context17.prev=7;_context17.next=10;return instantiateAsync(wasmBinary,wasmBinaryFile,info);case 10:result=_context17.sent;exports=receiveInstantiationResult(result);return _context17.abrupt("return",exports);case 15:_context17.prev=15;_context17.t0=_context17["catch"](7);readyPromiseReject(_context17.t0);return _context17.abrupt("return",Promise.reject(_context17.t0));case 19:case"end":return _context17.stop();}}},_callee13,null,[[7,15]]);}));return _createWasm.apply(this,arguments);};createWasm=function _createWasm2(){return _createWasm.apply(this,arguments);};getWasmImports=function _getWasmImports(){return{a:wasmImports};};_instantiateAsync=function _instantiateAsync3(){_instantiateAsync=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(binary,binaryFile,imports){var response,instantiationResult;return _regeneratorRuntime().wrap(function _callee12$(_context16){while(1){switch(_context16.prev=_context16.next){case 0:if(!(!binary&&typeof WebAssembly.instantiateStreaming=="function")){_context16.next=13;break;}_context16.prev=1;response=fetch(binaryFile,{credentials:"same-origin"});_context16.next=5;return WebAssembly.instantiateStreaming(response,imports);case 5:instantiationResult=_context16.sent;return _context16.abrupt("return",instantiationResult);case 9:_context16.prev=9;_context16.t0=_context16["catch"](1);err("wasm streaming compile failed: ".concat(_context16.t0));err("falling back to ArrayBuffer instantiation");case 13:return _context16.abrupt("return",instantiateArrayBuffer(binaryFile,imports));case 14:case"end":return _context16.stop();}}},_callee12,null,[[1,9]]);}));return _instantiateAsync.apply(this,arguments);};instantiateAsync=function _instantiateAsync2(_x122,_x123,_x124){return _instantiateAsync.apply(this,arguments);};_instantiateArrayBuffer=function _instantiateArrayBuff2(){_instantiateArrayBuffer=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(binaryFile,imports){var binary,instance;return _regeneratorRuntime().wrap(function _callee11$(_context15){while(1){switch(_context15.prev=_context15.next){case 0:_context15.prev=0;_context15.next=3;return getWasmBinary(binaryFile);case 3:binary=_context15.sent;_context15.next=6;return WebAssembly.instantiate(binary,imports);case 6:instance=_context15.sent;return _context15.abrupt("return",instance);case 10:_context15.prev=10;_context15.t0=_context15["catch"](0);err("failed to asynchronously prepare wasm: ".concat(_context15.t0));abort(_context15.t0);case 14:case"end":return _context15.stop();}}},_callee11,null,[[0,10]]);}));return _instantiateArrayBuffer.apply(this,arguments);};instantiateArrayBuffer=function _instantiateArrayBuff(_x120,_x121){return _instantiateArrayBuffer.apply(this,arguments);};_getWasmBinary=function _getWasmBinary3(){_getWasmBinary=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(binaryFile){var response;return _regeneratorRuntime().wrap(function _callee10$(_context14){while(1){switch(_context14.prev=_context14.next){case 0:if(wasmBinary){_context14.next=10;break;}_context14.prev=1;_context14.next=4;return readAsync(binaryFile);case 4:response=_context14.sent;return _context14.abrupt("return",new Uint8Array(response));case 8:_context14.prev=8;_context14.t0=_context14["catch"](1);case 10:return _context14.abrupt("return",getBinarySync(binaryFile));case 11:case"end":return _context14.stop();}}},_callee10,null,[[1,8]]);}));return _getWasmBinary.apply(this,arguments);};getWasmBinary=function _getWasmBinary2(_x119){return _getWasmBinary.apply(this,arguments);};getBinarySync=function _getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary);}throw"both async and sync fetching of the wasm failed";};findWasmBinary=function _findWasmBinary(){if(Module["locateFile"]){return locateFile("ifcdb.wasm");}return new URL("ifcdb.wasm",import.meta.url).href;};abort=function _abort2(what){var _Module$onAbort;(_Module$onAbort=Module["onAbort"])===null||_Module$onAbort===void 0?void 0:_Module$onAbort.call(Module,what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e;};removeRunDependency=function _removeRunDependency(id){var _Module$monitorRunDep2;runDependencies--;(_Module$monitorRunDep2=Module["monitorRunDependencies"])===null||_Module$monitorRunDep2===void 0?void 0:_Module$monitorRunDep2.call(Module,runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}};addRunDependency=function _addRunDependency(id){var _Module$monitorRunDep;runDependencies++;(_Module$monitorRunDep=Module["monitorRunDependencies"])===null||_Module$monitorRunDep===void 0?void 0:_Module$monitorRunDep.call(Module,runDependencies);};postRun=function _postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(onPostRuns);};initRuntime=function _initRuntime(){if(!Module["noFSInit"]&&!FS.initialized)FS.init();wasmExports["V"]();FS.ignorePermissions=false;};preRun=function _preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(onPreRuns);};updateMemoryViews=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);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b);};locateFile=function _locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory);}return scriptDirectory+path;};moduleArg=_args17.length>0&&_args17[0]!==undefined?_args17[0]:{};Module=moduleArg;readyPromise=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject;});moduleOverrides=Object.assign({},Module);arguments_=[];thisProgram="./this.program";quit_=function quit_(status,toThrow){throw toThrow;};scriptDirectory="";if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src;}if(_scriptName){scriptDirectory=_scriptName;}if(scriptDirectory.startsWith("blob:")){scriptDirectory="";}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1);}readAsync=/*#__PURE__*/function(){var _ref26=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(url){var response;return _regeneratorRuntime().wrap(function _callee8$(_context12){while(1){switch(_context12.prev=_context12.next){case 0:_context12.next=2;return fetch(url,{credentials:"same-origin"});case 2:response=_context12.sent;if(!response.ok){_context12.next=5;break;}return _context12.abrupt("return",response.arrayBuffer());case 5:throw new Error(response.status+" : "+response.url);case 6:case"end":return _context12.stop();}}},_callee8);}));return function readAsync(_x118){return _ref26.apply(this,arguments);};}();out=Module["print"]||console.log.bind(console);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"];wasmBinary=Module["wasmBinary"];ABORT=false;runDependencies=0;dependenciesFulfilled=null;ASM_CONSTS={191520:function _(){console.error("progress callback is not set.");}};ExitStatus=/*#__PURE__*/_createClass(function ExitStatus(status){_classCallCheck(this,ExitStatus);__publicField$2(this,"name","ExitStatus");this.message="Program terminated with exit(".concat(status,")");this.status=status;});callRuntimeCallbacks=function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module);}};onPostRuns=[];addOnPostRun=function addOnPostRun(cb){return onPostRuns.unshift(cb);};onPreRuns=[];addOnPreRun=function addOnPreRun(cb){return onPreRuns.unshift(cb);};noExitRuntime=Module["noExitRuntime"]||true;ExceptionInfo=/*#__PURE__*/function(){function ExceptionInfo(excPtr){_classCallCheck(this,ExceptionInfo);this.excPtr=excPtr;this.ptr=excPtr-24;}_createClass(ExceptionInfo,[{key:"set_type",value:function set_type(type){HEAPU32[this.ptr+4>>2]=type;}},{key:"get_type",value:function get_type(){return HEAPU32[this.ptr+4>>2];}},{key:"set_destructor",value:function set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor;}},{key:"get_destructor",value:function get_destructor(){return HEAPU32[this.ptr+8>>2];}},{key:"set_caught",value:function set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught;}},{key:"get_caught",value:function get_caught(){return HEAP8[this.ptr+12]!=0;}},{key:"set_rethrown",value:function set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown;}},{key:"get_rethrown",value:function get_rethrown(){return HEAP8[this.ptr+13]!=0;}},{key:"init",value:function init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);}},{key:"set_adjusted_ptr",value:function set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr;}},{key:"get_adjusted_ptr",value:function get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2];}}]);return ExceptionInfo;}();exceptionLast=0;___cxa_throw=function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;throw exceptionLast;};syscallGetVarargI=function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret;};syscallGetVarargP=syscallGetVarargI;PATH={isAbs:function isAbs(path){return path.charAt(0)==="/";},splitPath:function splitPath(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1);},normalizeArray:function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1);}else if(last===".."){parts.splice(i,1);up++;}else if(up){parts.splice(i,1);up--;}}if(allowAboveRoot){for(;up;up--){parts.unshift("..");}}return parts;},normalize:function normalize(path){var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p;}),!isAbsolute).join("/");if(!path&&!isAbsolute){path=".";}if(path&&trailingSlash){path+="/";}return(isAbsolute?"/":"")+path;},dirname:function dirname(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return".";}if(dir){dir=dir.slice(0,-1);}return root+dir;},basename:function basename(path){return path&&path.match(/([^\/]+|\/)\/*$/)[1];},join:function join(){for(var _len126=arguments.length,paths=new Array(_len126),_key15=0;_key15<_len126;_key15++){paths[_key15]=arguments[_key15];}return PATH.normalize(paths.join("/"));},join2:function join2(l,r){return PATH.normalize(l+"/"+r);}};initRandomFill=function initRandomFill(){return function(view){return crypto.getRandomValues(view);};};_randomFill=function randomFill(view){(_randomFill=initRandomFill())(view);};PATH_FS={resolve:function resolve(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?i<0||arguments.length<=i?undefined:arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings");}else if(!path){return"";}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path);}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p;}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||".";},relative:function relative(from,to){from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break;}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break;}if(start>end)return[];return arr.slice(start,end-start+1);}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break;}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..");}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/");}};UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder():void 0;UTF8ArrayToString=function UTF8ArrayToString(heapOrArray){var idx=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var maxBytesToRead=arguments.length>2&&arguments[2]!==undefined?arguments[2]:NaN;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;};FS_stdin_getChar_buffer=[];lengthBytesUTF8=function 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;};stringToUTF8Array=function 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;};intArrayFromString=function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array;};FS_stdin_getChar=function FS_stdin_getChar(){if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n";}}if(!result){return null;}FS_stdin_getChar_buffer=intArrayFromString(result,true);}return FS_stdin_getChar_buffer.shift();};TTY={ttys:[],init:function init(){},shutdown:function shutdown(){},register:function register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops);},stream_ops:{open:function open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43);}stream.tty=tty;stream.seekable=false;},close:function close(stream){stream.tty.ops.fsync(stream.tty);},fsync:function fsync(stream){stream.tty.ops.fsync(stream.tty);},read:function read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60);}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty);}catch(e){throw new FS.ErrnoError(29);}if(result===void 0&&bytesRead===0){throw new FS.ErrnoError(6);}if(result===null||result===void 0)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.atime=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60);}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i]);}}catch(e){throw new FS.ErrnoError(29);}if(length){stream.node.mtime=stream.node.ctime=Date.now();}return i;}},default_tty_ops:{get_char:function get_char(tty){return FS_stdin_getChar();},put_char:function put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[];}else{if(val!=0)tty.output.push(val);}},fsync:function fsync(tty){var _tty$output;if(((_tty$output=tty.output)===null||_tty$output===void 0?void 0:_tty$output.length)>0){out(UTF8ArrayToString(tty.output));tty.output=[];}},ioctl_tcgets:function ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]};},ioctl_tcsets:function ioctl_tcsets(tty,optional_actions,data){return 0;},ioctl_tiocgwinsz:function ioctl_tiocgwinsz(tty){return[24,80];}},default_tty1_ops:{put_char:function put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[];}else{if(val!=0)tty.output.push(val);}},fsync:function fsync(tty){var _tty$output2;if(((_tty$output2=tty.output)===null||_tty$output2===void 0?void 0:_tty$output2.length)>0){err(UTF8ArrayToString(tty.output));tty.output=[];}}}};alignMemory=function alignMemory(size,alignment){return Math.ceil(size/alignment)*alignment;};mmapAlloc=function mmapAlloc(size){abort();};MEMFS={ops_table:null,mount:function mount(_mount){return MEMFS.createNode(null,"/",16895,0);},createNode:function createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63);}MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={};}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null;}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream;}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream;}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime;}return node;},getFileDataAsTypedArray:function getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents);},expandFileStorage:function expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);},resizeFileStorage:function resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));}node.usedBytes=newSize;}},node_ops:{getattr:function getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096;}else if(FS.isFile(node.mode)){attr.size=node.usedBytes;}else if(FS.isLink(node.mode)){attr.size=node.link.length;}else{attr.size=0;}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr;},setattr:function setattr(node,attr){for(var _i660=0,_arr3=["mode","atime","mtime","ctime"];_i660<_arr3.length;_i660++){var key=_arr3[_i660];if(attr[key]!=null){node[key]=attr[key];}}if(attr.size!==void 0){MEMFS.resizeFileStorage(node,attr.size);}},lookup:function lookup(parent,name){throw MEMFS.doesNotExistError;},mknod:function mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev);},rename:function rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55);}}FS.hashRemoveNode(new_node);}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now();},unlink:function unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now();},rmdir:function rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55);}delete parent.contents[name];parent.ctime=parent.mtime=Date.now();},readdir:function readdir(node){return[".",".."].concat(_toConsumableArray(Object.keys(node.contents)));},symlink:function symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node;},readlink:function readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28);}return node.link;}},stream_ops:{read:function read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset);}else{for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}return size;},write:function write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false;}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length;}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length;}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length;}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position);}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i];}}node.usedBytes=Math.max(node.usedBytes,position+length);return length;},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes;}}if(position<0){throw new FS.ErrnoError(28);}return position;},allocate:function allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length);},mmap:function mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43);}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset;}else{allocated=true;ptr=mmapAlloc();if(!ptr){throw new FS.ErrnoError(48);}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length);}else{contents=Array.prototype.slice.call(contents,position,position+length);}}HEAP8.set(contents,ptr);}}return{ptr:ptr,allocated:allocated};},msync:function msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0;}}};asyncLoad=/*#__PURE__*/function(){var _ref27=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(url){var arrayBuffer;return _regeneratorRuntime().wrap(function _callee9$(_context13){while(1){switch(_context13.prev=_context13.next){case 0:_context13.next=2;return readAsync(url);case 2:arrayBuffer=_context13.sent;return _context13.abrupt("return",new Uint8Array(arrayBuffer));case 4:case"end":return _context13.stop();}}},_callee9);}));return function asyncLoad(_x125){return _ref27.apply(this,arguments);};}();asyncLoad.isAsync=true;FS_createDataFile=function FS_createDataFile(parent,name,fileData,canRead,canWrite,canOwn){FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn);};preloadPlugins=Module["preloadPlugins"]||[];FS_handledByPreloadPlugin=function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true;}});return handled;};FS_createPreloadedFile=function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;function processData(byteArray){function finish(byteArray2){preFinish===null||preFinish===void 0?void 0:preFinish();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray2,canRead,canWrite,canOwn);}onload===null||onload===void 0?void 0:onload();removeRunDependency();}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,function(){onerror===null||onerror===void 0?void 0:onerror();removeRunDependency();})){return;}finish(byteArray);}addRunDependency();if(typeof url=="string"){asyncLoad(url).then(processData,onerror);}else{processData(url);}};FS_modeStringToFlags=function FS_modeStringToFlags(str){var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: ".concat(str));}return flags;};FS_getMode=function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode;};FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:/*#__PURE__*/_createClass(function ErrnoError(errno){_classCallCheck(this,ErrnoError);__publicField$2(this,"name","ErrnoError");this.errno=errno;}),filesystems:null,syncFSRequests:0,readFiles:{},FSStream:/*#__PURE__*/function(){function FSStream(){_classCallCheck(this,FSStream);__publicField$2(this,"shared",{});}_createClass(FSStream,[{key:"object",get:function get(){return this.node;},set:function set(val){this.node=val;}},{key:"isRead",get:function get(){return(this.flags&2097155)!==1;}},{key:"isWrite",get:function get(){return(this.flags&2097155)!==0;}},{key:"isAppend",get:function get(){return this.flags&1024;}},{key:"flags",get:function get(){return this.shared.flags;},set:function set(val){this.shared.flags=val;}},{key:"position",get:function get(){return this.shared.position;},set:function set(val){this.shared.position=val;}}]);return FSStream;}(),FSNode:/*#__PURE__*/function(){function FSNode(parent,name,mode,rdev){_classCallCheck(this,FSNode);__publicField$2(this,"node_ops",{});__publicField$2(this,"stream_ops",{});__publicField$2(this,"readMode",292|73);__publicField$2(this,"writeMode",146);__publicField$2(this,"mounted",null);if(!parent){parent=this;}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now();}_createClass(FSNode,[{key:"read",get:function get(){return(this.mode&this.readMode)===this.readMode;},set:function set(val){val?this.mode|=this.readMode:this.mode&=~this.readMode;}},{key:"write",get:function get(){return(this.mode&this.writeMode)===this.writeMode;},set:function set(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode;}},{key:"isFolder",get:function get(){return FS.isDir(this.mode);}},{key:"isDevice",get:function get(){return FS.isChrdev(this.mode);}}]);return FSNode;}(),lookupPath:function lookupPath(path){var _opts$follow_mount;var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!path){throw new FS.ErrnoError(44);}(_opts$follow_mount=opts.follow_mount)!==null&&_opts$follow_mount!==void 0?_opts$follow_mount:opts.follow_mount=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path;}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(function(p){return!!p;});var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break;}if(parts[i]==="."){continue;}if(parts[i]===".."){current_path=PATH.dirname(current_path);current=current.parent;continue;}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i]);}catch(e){if((e===null||e===void 0?void 0:e.errno)===44&&islast&&opts.noent_okay){return{path:current_path};}throw e;}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root;}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52);}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link;}path=link+"/"+parts.slice(i+1).join("/");continue linkloop;}}return{path:current_path,node:current};}throw new FS.ErrnoError(32);},getPath:function getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?"".concat(mount,"/").concat(path):mount+path;}path=path?"".concat(node.name,"/").concat(path):node.name;node=node.parent;}},hashName:function hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0;}return(parentid+hash>>>0)%FS.nameTable.length;},hashAddNode:function hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node;},hashRemoveNode:function hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next;}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break;}current=current.name_next;}}},lookupNode:function lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode);}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node;}}return FS.lookup(parent,name);},createNode:function createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node;},destroyNode:function destroyNode(node){FS.hashRemoveNode(node);},isRoot:function isRoot(node){return node===node.parent;},isMountpoint:function isMountpoint(node){return!!node.mounted;},isFile:function isFile(mode){return(mode&61440)===32768;},isDir:function isDir(mode){return(mode&61440)===16384;},isLink:function isLink(mode){return(mode&61440)===40960;},isChrdev:function isChrdev(mode){return(mode&61440)===8192;},isBlkdev:function isBlkdev(mode){return(mode&61440)===24576;},isFIFO:function isFIFO(mode){return(mode&61440)===4096;},isSocket:function isSocket(mode){return(mode&49152)===49152;},flagsToPermissionString:function flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w";}return perms;},nodePermissions:function nodePermissions(node,perms){if(FS.ignorePermissions){return 0;}if(perms.includes("r")&&!(node.mode&292)){return 2;}else if(perms.includes("w")&&!(node.mode&146)){return 2;}else if(perms.includes("x")&&!(node.mode&73)){return 2;}return 0;},mayLookup:function mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0;},mayCreate:function mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54;}try{var node=FS.lookupNode(dir,name);return 20;}catch(e){}return FS.nodePermissions(dir,"wx");},mayDelete:function mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name);}catch(e){return e.errno;}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode;}if(isdir){if(!FS.isDir(node.mode)){return 54;}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10;}}else{if(FS.isDir(node.mode)){return 31;}}return 0;},mayOpen:function mayOpen(node,flags){if(!node){return 44;}if(FS.isLink(node.mode)){return 32;}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31;}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags));},checkOpExists:function checkOpExists(op,err2){if(!op){throw new FS.ErrnoError(err2);}return op;},MAX_OPEN_FDS:4096,nextfd:function nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd;}}throw new FS.ErrnoError(33);},getStreamChecked:function getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8);}return stream;},getStream:function getStream(fd){return FS.streams[fd];},createStream:function createStream(stream){var fd=arguments.length>1&&arguments[1]!==undefined?arguments[1]:-1;stream=Object.assign(new FS.FSStream(),stream);if(fd==-1){fd=FS.nextfd();}stream.fd=fd;FS.streams[fd]=stream;return stream;},closeStream:function closeStream(fd){FS.streams[fd]=null;},dupStream:function dupStream(origStream){var _stream$stream_ops,_stream$stream_ops$du;var fd=arguments.length>1&&arguments[1]!==undefined?arguments[1]:-1;var stream=FS.createStream(origStream,fd);(_stream$stream_ops=stream.stream_ops)===null||_stream$stream_ops===void 0?void 0:(_stream$stream_ops$du=_stream$stream_ops.dup)===null||_stream$stream_ops$du===void 0?void 0:_stream$stream_ops$du.call(_stream$stream_ops,stream);return stream;},doSetAttr:function doSetAttr(stream,node,attr){var _setattr;var setattr=stream===null||stream===void 0?void 0:stream.stream_ops.setattr;var arg=setattr?stream:node;(_setattr=setattr)!==null&&_setattr!==void 0?_setattr:setattr=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr);},chrdev_stream_ops:{open:function open(stream){var _stream$stream_ops$op,_stream$stream_ops2;var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;(_stream$stream_ops$op=(_stream$stream_ops2=stream.stream_ops).open)===null||_stream$stream_ops$op===void 0?void 0:_stream$stream_ops$op.call(_stream$stream_ops2,stream);},llseek:function llseek(){throw new FS.ErrnoError(70);}},major:function major(dev){return dev>>8;},minor:function minor(dev){return dev&255;},makedev:function makedev(ma,mi){return ma<<8|mi;},registerDevice:function registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops};},getDevice:function getDevice(dev){return FS.devices[dev];},getMounts:function getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,_toConsumableArray(m.mounts));}return mounts;},syncfs:function syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false;}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: ".concat(FS.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode);}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode);}return;}if(++completed>=mounts.length){doCallback(null);}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null);}mount.type.syncfs(mount,populate,done);});},mount:function mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10);}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10);}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54);}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot;}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount);}}return mountRoot;},unmount:function unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28);}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current);}current=next;}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1);},lookup:function lookup(parent,name){return parent.node_ops.lookup(parent,name);},mknod:function mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28);}if(name==="."||name===".."){throw new FS.ErrnoError(20);}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63);}return parent.node_ops.mknod(parent,name,mode,dev);},statfs:function statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node);},statfsStream:function statfsStream(stream){return FS.statfsNode(stream.node);},statfsNode:function statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root));}return rtn;},create:function create(path){var mode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0);},mkdir:function mkdir(path){var mode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0);},mkdirTree:function mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode);}catch(e){if(e.errno!=20)throw e;}}},mkdev:function mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438;}mode|=8192;return FS.mknod(path,mode,dev);},symlink:function symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44);}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44);}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63);}return parent.node_ops.symlink(parent,newname,oldpath);},rename:function rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75);}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28);}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55);}var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(old_node===new_node){return;}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode);}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode);}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63);}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10);}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode);}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir;}catch(e){throw e;}finally{FS.hashAddNode(old_node);}},rmdir:function rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10);}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);},readdir:function readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node);},unlink:function unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44);}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10);}parent.node_ops.unlink(parent,name);FS.destroyNode(node);},readlink:function readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44);}if(!link.node_ops.readlink){throw new FS.ErrnoError(28);}return link.node_ops.readlink(link);},stat:function stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node);},fstat:function fstat(fd){var _getattr;var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;(_getattr=getattr)!==null&&_getattr!==void 0?_getattr:getattr=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg);},lstat:function lstat(path){return FS.stat(path,true);},doChmod:function doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow:dontFollow});},chmod:function chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}FS.doChmod(null,node,mode,dontFollow);},lchmod:function lchmod(path,mode){FS.chmod(path,mode,true);},fchmod:function fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false);},doChown:function doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow:dontFollow});},chown:function chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}FS.doChown(null,node,dontFollow);},lchown:function lchown(path,uid,gid){FS.chown(path,uid,gid,true);},fchown:function fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false);},doTruncate:function doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31);}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28);}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode);}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()});},truncate:function truncate(path,len){if(len<0){throw new FS.ErrnoError(28);}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;}else{node=path;}FS.doTruncate(null,node,len);},ftruncate:function ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28);}FS.doTruncate(stream,stream.node,len);},utime:function utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime:atime,mtime:mtime});},open:function open(path,flags){var mode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:438;if(path===""){throw new FS.ErrnoError(44);}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768;}else{mode=0;}var node;var isDirPath;if(_typeof(path)=="object"){node=path;}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path;}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20);}}else if(isDirPath){throw new FS.ErrnoError(31);}else{node=FS.mknod(path,mode|511,0);created=true;}}if(!node){throw new FS.ErrnoError(44);}if(FS.isChrdev(node.mode)){flags&=~512;}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54);}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode);}}if(flags&512&&!created){FS.truncate(node,0);}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream);}if(created){FS.chmod(node,mode&511);}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1;}}return stream;},close:function close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream);}}catch(e){throw e;}finally{FS.closeStream(stream.fd);}stream.fd=null;},isClosed:function isClosed(stream){return stream.fd===null;},llseek:function llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70);}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28);}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position;},read:function read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28);}if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31);}if(!stream.stream_ops.read){throw new FS.ErrnoError(28);}var seeking=typeof position!="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(70);}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead;},write:function write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28);}if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31);}if(!stream.stream_ops.write){throw new FS.ErrnoError(28);}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2);}var seeking=typeof position!="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(70);}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten;},allocate:function allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if(offset<0||length<=0){throw new FS.ErrnoError(28);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8);}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43);}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138);}stream.stream_ops.allocate(stream,offset,length);},mmap:function mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2);}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2);}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43);}if(!length){throw new FS.ErrnoError(28);}return stream.stream_ops.mmap(stream,length,position,prot,flags);},msync:function msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0;}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags);},ioctl:function ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59);}return stream.stream_ops.ioctl(stream,cmd,arg);},readFile:function readFile(path){var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error("Invalid encoding type \"".concat(opts.encoding,"\""));}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf);}else if(opts.encoding==="binary"){ret=buf;}FS.close(stream);return ret;},writeFile:function writeFile(path,data){var opts=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,void 0,opts.canOwn);}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,void 0,opts.canOwn);}else{throw new Error("Unsupported data type");}FS.close(stream);},cwd:function cwd(){return FS.currentPath;},chdir:function chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44);}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54);}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode);}FS.currentPath=lookup.path;},createDefaultDirectories:function createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user");},createDefaultDevices:function createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function read(){return 0;},write:function write(stream,buffer,offset,length,pos){return length;},llseek:function llseek(){return 0;}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=function randomByte(){if(randomLeft===0){_randomFill(randomBuffer);randomLeft=randomBuffer.byteLength;}return randomBuffer[--randomLeft];};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp");},createSpecialDirectories:function createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup:function lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function readlink(){return stream.path;}},id:fd+1};ret.parent=ret;return ret;},readdir:function readdir(){return Array.from(FS.streams.entries()).filter(function(_ref28){var _ref29=_slicedToArray(_ref28,2),k=_ref29[0],v=_ref29[1];return v;}).map(function(_ref30){var _ref31=_slicedToArray(_ref30,2),k=_ref31[0],v=_ref31[1];return k.toString();});}};return node;}},{},"/proc/self/fd");},createStandardStreams:function createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input);}else{FS.symlink("/dev/tty","/dev/stdin");}if(output){FS.createDevice("/dev","stdout",null,output);}else{FS.symlink("/dev/tty","/dev/stdout");}if(error){FS.createDevice("/dev","stderr",null,error);}else{FS.symlink("/dev/tty1","/dev/stderr");}FS.open("/dev/stdin",0);FS.open("/dev/stdout",1);FS.open("/dev/stderr",1);},staticInit:function staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS};},init:function init(input,output,error){var _input,_output,_error2;FS.initialized=true;(_input=input)!==null&&_input!==void 0?_input:input=Module["stdin"];(_output=output)!==null&&_output!==void 0?_output:output=Module["stdout"];(_error2=error)!==null&&_error2!==void 0?_error2:error=Module["stderr"];FS.createStandardStreams(input,output,error);},quit:function quit(){FS.initialized=false;for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue;}FS.close(stream);}},findObject:function findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null;}return ret.object;},analyzePath:function analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path;}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/";}catch(e){ret.error=e.errno;}return ret;},createPath:function createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current);}catch(e){}parent=current;}return current;},createFile:function createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode);},createDataFile:function createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent;}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i){arr[i]=data.charCodeAt(i);}data=arr;}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode);}},createDevice:function createDevice(parent,name,input,output){var _a$major;var _a;var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);(_a$major=(_a=FS.createDevice).major)!==null&&_a$major!==void 0?_a$major:_a.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function open(stream){stream.seekable=false;},close:function close(stream){var _output$buffer;if(output!==null&&output!==void 0&&(_output$buffer=output.buffer)!==null&&_output$buffer!==void 0&&_output$buffer.length){output(10);}},read:function read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input();}catch(e){throw new FS.ErrnoError(29);}if(result===void 0&&bytesRead===0){throw new FS.ErrnoError(6);}if(result===null||result===void 0)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.atime=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i]);}catch(e){throw new FS.ErrnoError(29);}}if(length){stream.node.mtime=stream.node.ctime=Date.now();}return i;}});return FS.mkdev(path,mode,dev);},forceLoadFile:function forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length;}catch(e){throw new FS.ErrnoError(29);}}},createLazyFile:function createLazyFile(parent,name,url,canRead,canWrite){var LazyUint8Array=/*#__PURE__*/function(){function LazyUint8Array(){_classCallCheck(this,LazyUint8Array);__publicField$2(this,"lengthKnown",false);__publicField$2(this,"chunks",[]);}_createClass(LazyUint8Array,[{key:"get",value:function get(idx){if(idx>this.length-1||idx<0){return void 0;}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset];}},{key:"setDataGetter",value:function setDataGetter(getter){this.getter=getter;}},{key:"cacheLength",value:function cacheLength(){var xhr=new XMLHttpRequest();xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function doXHR(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr2=new XMLHttpRequest();xhr2.open("GET",url,false);if(datalength!==chunkSize)xhr2.setRequestHeader("Range","bytes="+from+"-"+to);xhr2.responseType="arraybuffer";if(xhr2.overrideMimeType){xhr2.overrideMimeType("text/plain; charset=x-user-defined");}xhr2.send(null);if(!(xhr2.status>=200&&xhr2.status<300||xhr2.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr2.status);if(xhr2.response!==void 0){return new Uint8Array(xhr2.response||[]);}return intArrayFromString(xhr2.responseText||"",true);};var lazyArray2=this;lazyArray2.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray2.chunks[chunkNum]=="undefined"){lazyArray2.chunks[chunkNum]=doXHR(start,end);}if(typeof lazyArray2.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray2.chunks[chunkNum];});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed");}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true;}},{key:"length",get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._length;}},{key:"chunkSize",get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._chunkSize;}}]);return LazyUint8Array;}();if(typeof XMLHttpRequest!="undefined"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array();var properties={isDevice:false,contents:lazyArray};}else{var properties={isDevice:false,url:url};}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents;}else if(properties.url){node.contents=null;node.url=properties.url;}Object.defineProperties(node,{usedBytes:{get:function get(){return this.contents.length;}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function(){FS.forceLoadFile(node);return fn.apply(void 0,arguments);};});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i);}}return size;}stream_ops.read=function(stream,buffer,offset,length,position){FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position);};stream_ops.mmap=function(stream,length,position,prot,flags){FS.forceLoadFile(node);var ptr=mmapAlloc();if(!ptr){throw new FS.ErrnoError(48);}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true};};node.stream_ops=stream_ops;return node;}};UTF8ToString=function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";};SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path;}var dir;if(dirfd===-100){dir=FS.cwd();}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path;}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44);}return dir;}return dir+"/"+path;},writeStat:function writeStat(buf,stat){HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0;},writeStatFs:function writeStatFs(buf,stats){HEAP32[buf+4>>2]=stats.bsize;HEAP32[buf+40>>2]=stats.bsize;HEAP32[buf+8>>2]=stats.blocks;HEAP32[buf+12>>2]=stats.bfree;HEAP32[buf+16>>2]=stats.bavail;HEAP32[buf+20>>2]=stats.files;HEAP32[buf+24>>2]=stats.ffree;HEAP32[buf+28>>2]=stats.fsid;HEAP32[buf+44>>2]=stats.flags;HEAP32[buf+36>>2]=stats.namelen;},doMsync:function doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43);}if(flags&2){return 0;}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags);},getStreamFromFD:function getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream;},varargs:void 0,getStr:function getStr(ptr){var ret=UTF8ToString(ptr);return ret;}};__abort_js=function __abort_js(){return abort("");};structRegistrations={};runDestructors=function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}};awaitingDependencies={};registeredTypes={};typeDependencies={};throwInternalError=function throwInternalError(message){throw new InternalError(message);};whenDependentTypesAreResolved=function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){return typeDependencies[type]=dependentTypes;});function onComplete(typeConverters2){var myTypeConverters=getTypeConverters(typeConverters2);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i]);}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt];}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[];}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters);}});}});if(0===unregisteredTypes.length){onComplete(typeConverters);}};__embind_finalize_value_object=function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(function(field){return field.getterReturnType;}).concat(fieldRecords.map(function(field){return field.setterArgumentType;}));whenDependentTypesAreResolved([structType],fieldTypes,function(fieldTypes2){var fields={};fieldRecords.forEach(function(field,i){var fieldName=field.fieldName;var getterReturnType=fieldTypes2[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes2[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:function read(ptr){return getterReturnType["fromWireType"](getter(getterContext,ptr));},write:function write(ptr,o){var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors);}};});return[{name:reg.name,fromWireType:function fromWireType(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr);}rawDestructor(ptr);return rv;},toWireType:function toWireType(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError("Missing field: \"".concat(fieldName,"\""));}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName]);}if(destructors!==null){destructors.push(rawDestructor,ptr);}return ptr;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:rawDestructor}];});};embindRepr=function embindRepr(v){if(v===null){return"null";}var t=_typeof(v);if(t==="object"||t==="array"||t==="function"){return v.toString();}else{return""+v;}};embind_init_charCodes=function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i);}embind_charCodes=codes;};readLatin1String=function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]];}return ret;};throwBindingError=function throwBindingError(message){throw new BindingError(message);};integerReadValueFromPointer=function integerReadValueFromPointer(name,width,signed){switch(width){case 1:return signed?function(pointer){return HEAP8[pointer];}:function(pointer){return HEAPU8[pointer];};case 2:return signed?function(pointer){return HEAP16[pointer>>1];}:function(pointer){return HEAPU16[pointer>>1];};case 4:return signed?function(pointer){return HEAP32[pointer>>2];}:function(pointer){return HEAPU32[pointer>>2];};case 8:return signed?function(pointer){return HEAP64[pointer>>3];}:function(pointer){return HEAPU64[pointer>>3];};default:throw new TypeError("invalid integer width (".concat(width,"): ").concat(name));}};__embind_register_bigint=function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;registerType(primitiveType,{name:name,fromWireType:function fromWireType(value){return value;},toWireType:function toWireType(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError("Cannot convert \"".concat(embindRepr(value),"\" to ").concat(this.name));}if(typeof value=="number"){value=BigInt(value);}return value;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null});};GenericWireTypeSize=8;__embind_register_bool=function __embind_register_bool(rawType,name,trueValue,falseValue){name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function fromWireType(wt){return!!wt;},toWireType:function toWireType(destructors,o){return o?trueValue:falseValue;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function readValueFromPointer(pointer){return this["fromWireType"](HEAPU8[pointer]);},destructorFunction:null});};emval_freelist=[];emval_handles=[];__emval_decref=function __emval_decref(handle){if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=void 0;emval_freelist.push(handle);}};count_emval_handles=function count_emval_handles(){return emval_handles.length/2-5-emval_freelist.length;};init_emval=function init_emval(){emval_handles.push(0,1,void 0,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles;};Emval={toValue:function toValue(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle);}return emval_handles[handle];},toHandle:function toHandle(value){switch(value){case void 0:return 2;case null:return 4;case true:return 6;case false:return 8;default:{var handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle;}}}};EmValType={name:"emscripten::val",fromWireType:function fromWireType(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv;},toWireType:function toWireType(destructors,value){return Emval.toHandle(value);},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};__embind_register_emval=function __embind_register_emval(rawType){return registerType(rawType,EmValType);};floatReadValueFromPointer=function floatReadValueFromPointer(name,width){switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2]);};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3]);};default:throw new TypeError("invalid float width (".concat(width,"): ").concat(name));}};__embind_register_float=function __embind_register_float(rawType,name,size){name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function fromWireType(value){return value;},toWireType:function toWireType(destructors,value){return value;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null});};createNamedFunction=function createNamedFunction(name,body){return Object.defineProperty(body,"name",{value:name});};runAndAbortIfError=function runAndAbortIfError(func){try{return func();}catch(e){abort(e);}};handleException=function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS;}quit_(1,e);};runtimeKeepaliveCounter=0;keepRuntimeAlive=function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0;};_proc_exit=function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){var _Module$onExit;(_Module$onExit=Module["onExit"])===null||_Module$onExit===void 0?void 0:_Module$onExit.call(Module,code);ABORT=true;}quit_(code,new ExitStatus(code));};exitJS=function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status);};_exit=exitJS;maybeExit=function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS);}catch(e){handleException(e);}}};callUserCallback=function callUserCallback(func){if(ABORT){return;}try{func();maybeExit();}catch(e){handleException(e);}};Asyncify={instrumentWasmImports:function instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(var _i661=0,_Object$entries6=Object.entries(imports);_i661<_Object$entries6.length;_i661++){var _Object$entries6$_i=_slicedToArray(_Object$entries6[_i661],2),x=_Object$entries6$_i[0],original=_Object$entries6$_i[1];if(typeof original=="function"){original.isAsync||importPattern.test(x);}}},instrumentWasmExports:function instrumentWasmExports(exports){var ret={};var _loop11=function _loop11(){var _Object$entries7$_i=_slicedToArray(_Object$entries7[_i662],2),x=_Object$entries7$_i[0],original=_Object$entries7$_i[1];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(void 0,arguments);}finally{if(!ABORT){Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind();}}};}else{ret[x]=original;}};for(var _i662=0,_Object$entries7=Object.entries(exports);_i662<_Object$entries7.length;_i662++){_loop11();}return ret;},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===void 0){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName;}return id;},maybeStopUnwind:function maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline();}}},whenDone:function whenDone(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject};});},allocateData:function allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr;},setDataHeader:function setDataHeader(ptr,stack,stackSize){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize;},setDataRewindFunc:function setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId;},getDataRewindFuncName:function getDataRewindFuncName(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];return name;},getDataRewindFunc:function getDataRewindFunc(name){var func=wasmExports[name];return func;},doRewind:function doRewind(ptr){var name=Asyncify.getDataRewindFuncName(ptr);var func=Asyncify.getDataRewindFunc(name);return func();},handleSleep:function handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(){var handleSleepReturnValue=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return;}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){return _asyncify_start_rewind(Asyncify.currData);});if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume();}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData);}catch(err2){asyncWasmReturnValue=err2;isError=true;}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true;}}if(isError&&!handled){throw asyncWasmReturnValue;}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause();}runAndAbortIfError(function(){return _asyncify_start_unwind(Asyncify.currData);});}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback);}else{abort("invalid state: ".concat(Asyncify.state));}return Asyncify.handleSleepReturnValue;},handleAsync:function handleAsync(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp);});}};ensureOverloadTable=function ensureOverloadTable(proto,methodName,humanName){if(void 0===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){for(var _len127=arguments.length,args=new Array(_len127),_key16=0;_key16<_len127;_key16++){args[_key16]=arguments[_key16];}if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError("Function '".concat(humanName,"' called with an invalid number of arguments (").concat(args.length,") - expects one of (").concat(proto[methodName].overloadTable,")!"));}return proto[methodName].overloadTable[args.length].apply(this,args);};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}};exposePublicSymbol=function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(void 0===numArguments||void 0!==Module[name].overloadTable&&void 0!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '".concat(name,"' twice"));}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (".concat(numArguments,")!"));}Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}};heap32VectorToArray=function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2]);}return array;};replacePublicSymbol=function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol");}if(void 0!==Module[name].overloadTable&&void 0!==numArguments){Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}};dynCallLegacy=function dynCallLegacy(sig,ptr,args){sig=sig.replace(/p/g,"i");var f=Module["dynCall_"+sig];return f.apply(void 0,[ptr].concat(_toConsumableArray(args)));};dynCall=function dynCall(sig,ptr){var args=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];var rtn=dynCallLegacy(sig,ptr,args);return rtn;};getDynCaller=function getDynCaller(sig,ptr){return function(){for(var _len128=arguments.length,args=new Array(_len128),_key17=0;_key17<_len128;_key17++){args[_key17]=arguments[_key17];}return dynCall(sig,ptr,args);};};embind__requireFunction=function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction);}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature ".concat(signature,": ").concat(rawFunction));}return fp;};extendError=function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==void 0){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"");}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===void 0){return this.name;}else{return"".concat(this.name,": ").concat(this.message);}};return errorClass;};getTypeName=function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv;};throwUnboundTypeError=function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return;}if(registeredTypes[type]){return;}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return;}unboundTypes.push(type);seen[type]=true;}types.forEach(visit);throw new UnboundTypeError("".concat(message,": ")+unboundTypes.map(getTypeName).join([", "]));};getFunctionName=function getFunctionName(signature){signature=signature.trim();var argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex);};__embind_register_function=function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call ".concat(name," due to unbound types"),argTypes);},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes2){var invokerArgsArray=[argTypes2[0],null].concat(argTypes2.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[];});};__embind_register_integer=function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);var fromWireType=function fromWireType(value){return value;};if(minRange===0){var bitshift=32-8*size;fromWireType=function fromWireType(value){return value<<bitshift>>>bitshift;};}var isUnsignedType=name.includes("unsigned");var checkAssertions=function checkAssertions(value,toTypeName){};var toWireType;if(isUnsignedType){toWireType=function toWireType(destructors,value){checkAssertions(value,this.name);return value>>>0;};}else{toWireType=function toWireType(destructors,value){checkAssertions(value,this.name);return value;};}registerType(primitiveType,{name:name,fromWireType:fromWireType,toWireType:toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null});};__embind_register_memory_view=function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size);}name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true});};stringToUTF8=function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);};__embind_register_std_string=function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;var i;{var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===void 0){str=stringSegment;}else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}}_free(value);return str;},toWireType:function toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value);}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string");}if(valueIsOfTypeString){length=lengthBytesUTF8(value);}else{length=value.length;}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){stringToUTF8(value,ptr,length+1);}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits");}HEAPU8[ptr+i]=charCode;}}else{for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i];}}}if(destructors!==null){destructors.push(_free,base);}return base;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});};UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;UTF16ToString=function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx]){++idx;}endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit);}return str;};stringToUTF16=function stringToUTF16(str,outPtr,maxBytesToWrite){var _maxBytesToWrite;(_maxBytesToWrite=maxBytesToWrite)!==null&&_maxBytesToWrite!==void 0?_maxBytesToWrite:maxBytesToWrite=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2;}HEAP16[outPtr>>1]=0;return outPtr-startPtr;};lengthBytesUTF16=function lengthBytesUTF16(str){return str.length*2;};UTF32ToString=function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023);}else{str+=String.fromCharCode(utf32);}}return str;};stringToUTF32=function stringToUTF32(str,outPtr,maxBytesToWrite){var _maxBytesToWrite2;(_maxBytesToWrite2=maxBytesToWrite)!==null&&_maxBytesToWrite2!==void 0?_maxBytesToWrite2:maxBytesToWrite=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023;}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break;}HEAP32[outPtr>>2]=0;return outPtr-startPtr;};lengthBytesUTF32=function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4;}return len;};__embind_register_std_wstring=function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=function readCharAt(pointer){return HEAPU16[pointer>>1];};}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=function readCharAt(pointer){return HEAPU32[pointer>>2];};}registerType(rawType,{name:name,fromWireType:function fromWireType(value){var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===void 0){str=stringSegment;}else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+charSize;}}_free(value);return str;},toWireType:function toWireType(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type ".concat(name));}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr);}return ptr;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});};__embind_register_value_object=function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]};};__embind_register_value_object_field=function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext});};__embind_register_void=function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,argPackAdvance:0,fromWireType:function fromWireType(){return void 0;},toWireType:function toWireType(destructors,o){return void 0;}});};requireRegisteredType=function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(void 0===impl){throwBindingError("".concat(humanName," has unknown type ").concat(getTypeName(rawType)));}return impl;};emval_returnValue=function emval_returnValue(returnType,destructorsRef,handle){var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors);}return result;};__emval_as=function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle);};emval_methodCallers=[];__emval_call=function __emval_call(caller,handle,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);return caller(null,handle,destructorsRef,args);};emval_symbols={};getStringOrSymbol=function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===void 0){return readLatin1String(address);}return symbol;};emval_get_global=function emval_get_global(){if((typeof globalThis==="undefined"?"undefined":_typeof(globalThis))=="object"){return globalThis;}return/* @__PURE__ */function(){return Function;}()("return this")();};__emval_get_global=function __emval_get_global(name){if(name===0){return Emval.toHandle(emval_get_global());}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name]);}};emval_addMethodCaller=function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id;};emval_lookupTypes=function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],"parameter "+i);}return a;};__emval_get_method_caller=function __emval_get_method_caller(argCount,argTypes,kind){var types=emval_lookupTypes(argCount,argTypes);var retType=types.shift();argCount--;var functionBody="return function (obj, func, destructorsRef, args) {\n";var offset=0;var argsList=[];if(kind===0){argsList.push("obj");}var params=["retType"];var args=[retType];for(var i=0;i<argCount;++i){argsList.push("arg"+i);params.push("argType"+i);args.push(types[i]);functionBody+=" var arg".concat(i," = argType").concat(i,".readValueFromPointer(args").concat(offset?"+"+offset:"",");\n");offset+=types[i].argPackAdvance;}var invoker=kind===1?"new func":"func.call";functionBody+=" var rv = ".concat(invoker,"(").concat(argsList.join(", "),");\n");if(!retType.isVoid){params.push("emval_returnValue");args.push(emval_returnValue);functionBody+=" return emval_returnValue(retType, destructorsRef, rv);\n";}functionBody+="};\n";params.push(functionBody);var invokerFunction=newFunc(Function,params).apply(void 0,args);var functionName="methodCaller<(".concat(types.map(function(t){return t.name;}).join(", "),") => ").concat(retType.name,">");return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction));};__emval_incref=function __emval_incref(handle){if(handle>9){emval_handles[handle+1]+=1;}};__emval_is_string=function __emval_is_string(handle){handle=Emval.toValue(handle);return typeof handle=="string";};__emval_run_destructors=function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle);};__emval_take_value=function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v);};isLeapYear=function isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0);};MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];ydayFromDate=function ydayFromDate(date){var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday;};INT53_MAX=9007199254740992;INT53_MIN=-9007199254740992;bigintToI53Checked=function bigintToI53Checked(num){return num<INT53_MIN||num>INT53_MAX?NaN:Number(num);};__mktime_js=function __mktime_js(tmPtr){var ret=function(){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset);}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4);}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1;}return timeMs/1e3;}();return BigInt(ret);};__tzset_js=function __tzset_js(timezone,daylight,std_name,dst_name){var currentYear=/* @__PURE__ */new Date().getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=function extractZone(timezoneOffset){var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return"UTC".concat(sign).concat(hours).concat(minutes);};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17);}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17);}};_emscripten_get_now=function _emscripten_get_now(){return performance.now();};_emscripten_date_now=function _emscripten_date_now(){return Date.now();};checkWasiClock=function checkWasiClock(clock_id){return clock_id>=0&&clock_id<=3;};readEmAsmArgsArray=[];readEmAsmArgs=function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4;}return readEmAsmArgsArray;};runEmAsmFunction=function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(ASM_CONSTS,_toConsumableArray(args));};_emscripten_asm_const_int=function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf);};getHeapMax=function getHeapMax(){return 2147483648;};_emscripten_get_heap_max=function _emscripten_get_heap_max(){return getHeapMax();};growMemory=function growMemory(size){var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1;}catch(e){}};_emscripten_resize_heap=function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false;}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+0.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true;}}return false;};safeSetTimeout=function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func);},timeout);};_emscripten_sleep=function _emscripten_sleep(ms){return Asyncify.handleSleep(function(wakeUp){return safeSetTimeout(wakeUp,ms);});};_emscripten_sleep.isAsync=true;ENV={};getExecutableName=function getExecutableName(){return thisProgram||"./this.program";};getEnvStrings=function getEnvStrings(){if(!getEnvStrings.strings){var lang=((typeof navigator==="undefined"?"undefined":_typeof(navigator))=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===void 0)delete env[x];else env[x]=ENV[x];}var strings=[];for(var x in env){strings.push("".concat(x,"=").concat(env[x]));}getEnvStrings.strings=strings;}return getEnvStrings.strings;};stringToAscii=function stringToAscii(str,buffer){for(var i=0;i<str.length;++i){HEAP8[buffer++]=str.charCodeAt(i);}HEAP8[buffer]=0;};_environ_get=function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1;});return 0;};_environ_sizes_get=function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){return bufSize+=string.length+1;});HEAPU32[penviron_buf_size>>2]=bufSize;return 0;};doReadv=function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!="undefined"){offset+=curr;}}return ret;};doWritev=function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break;}if(typeof offset!="undefined"){offset+=curr;}}return ret;};stackAlloc=function stackAlloc(sz){return __emscripten_stack_alloc(sz);};stringToUTF8OnStack=function stringToUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret;};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>";InternalError=Module["InternalError"]=/*#__PURE__*/function(_Error2){_inherits(InternalError,_Error2);var _super166=_createSuper(InternalError);function InternalError(message){var _this183;_classCallCheck(this,InternalError);_this183=_super166.call(this,message);_this183.name="InternalError";return _this183;}return _createClass(InternalError);}(/*#__PURE__*/_wrapNativeSuper(Error));embind_init_charCodes();BindingError=Module["BindingError"]=/*#__PURE__*/function(_Error3){_inherits(BindingError,_Error3);var _super167=_createSuper(BindingError);function BindingError(message){var _this184;_classCallCheck(this,BindingError);_this184=_super167.call(this,message);_this184.name="BindingError";return _this184;}return _createClass(BindingError);}(/*#__PURE__*/_wrapNativeSuper(Error));init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");wasmImports={a:___cxa_throw,j:___syscall_fcntl64,G:___syscall_ioctl,H:___syscall_openat,s:___syscall_renameat,y:___syscall_rmdir,v:___syscall_stat64,z:___syscall_unlinkat,t:__abort_js,L:__embind_finalize_value_object,m:__embind_register_bigint,R:__embind_register_bool,P:__embind_register_emval,l:__embind_register_float,f:__embind_register_function,c:__embind_register_integer,b:__embind_register_memory_view,Q:__embind_register_std_string,g:__embind_register_std_wstring,O:__embind_register_value_object,M:__embind_register_value_object_field,S:__embind_register_void,N:__emval_as,d:__emval_call,q:__emval_decref,F:__emval_get_global,e:__emval_get_method_caller,o:__emval_incref,T:__emval_is_string,n:__emval_run_destructors,p:__emval_take_value,A:__localtime_js,B:__mktime_js,C:__tzset_js,J:_clock_time_get,K:_emscripten_asm_const_int,I:_emscripten_date_now,r:_emscripten_get_heap_max,u:_emscripten_resize_heap,k:_emscripten_sleep,w:_environ_get,x:_environ_sizes_get,h:_fd_close,E:_fd_read,D:_fd_seek,i:_fd_write};_context18.next=229;return createWasm();case 229:wasmExports=_context18.sent;wasmExports["V"];___getTypeName=wasmExports["W"];_malloc=wasmExports["Y"];_free=wasmExports["Z"];_main=Module["_main"]=wasmExports["_"];__emscripten_stack_alloc=wasmExports["$"];Module["dynCall_vi"]=wasmExports["aa"];Module["dynCall_ii"]=wasmExports["ba"];Module["dynCall_viiii"]=wasmExports["ca"];Module["dynCall_vii"]=wasmExports["da"];Module["dynCall_iii"]=wasmExports["ea"];Module["dynCall_iijii"]=wasmExports["fa"];Module["dynCall_iiii"]=wasmExports["ga"];Module["dynCall_iiiii"]=wasmExports["ha"];Module["dynCall_iiiiiiiii"]=wasmExports["ia"];Module["dynCall_iiiiii"]=wasmExports["ja"];Module["dynCall_v"]=wasmExports["ka"];Module["dynCall_viii"]=wasmExports["la"];Module["dynCall_viiiiiii"]=wasmExports["ma"];Module["dynCall_diiii"]=wasmExports["na"];Module["dynCall_viif"]=wasmExports["oa"];Module["dynCall_i"]=wasmExports["pa"];Module["dynCall_fii"]=wasmExports["qa"];Module["dynCall_jiji"]=wasmExports["ra"];Module["dynCall_iidiiii"]=wasmExports["sa"];Module["dynCall_viijii"]=wasmExports["ta"];Module["dynCall_iiiiiii"]=wasmExports["ua"];Module["dynCall_iiiiij"]=wasmExports["va"];Module["dynCall_iiiiid"]=wasmExports["wa"];Module["dynCall_iiiiijj"]=wasmExports["xa"];Module["dynCall_iiiiiiii"]=wasmExports["ya"];Module["dynCall_iiiiiijj"]=wasmExports["za"];Module["dynCall_viiiiii"]=wasmExports["Aa"];Module["dynCall_viiiii"]=wasmExports["Ba"];_asyncify_start_unwind=wasmExports["Ca"];_asyncify_stop_unwind=wasmExports["Da"];_asyncify_start_rewind=wasmExports["Ea"];_asyncify_stop_rewind=wasmExports["Fa"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()();}}run();moduleRtn=readyPromise;return _context18.abrupt("return",moduleRtn);case 272:case"end":return _context18.stop();}}},_callee14);}));}();var __defProp$1=Object.defineProperty;var __defNormalProp$1=function __defNormalProp$1(obj,key,value){return key in obj?__defProp$1(obj,key,{enumerable:true,configurable:true,writable:true,value:value}):obj[key]=value;};var __publicField$1=function __publicField$1(obj,key,value){__defNormalProp$1(obj,_typeof(key)!=="symbol"?key+"":key,value);return value;};var cdnUrl="https://cdn.jsdelivr.net/npm/@creooxag/cx-converter@".concat(packageJSON.version,"/dist/");var defaultUrlPrefix="./";var _IfcWasmConverterLoader=/*#__PURE__*/function(){function _IfcWasmConverterLoader(){_classCallCheck(this,_IfcWasmConverterLoader);__publicField$1(this,"module");}_createClass(_IfcWasmConverterLoader,null,[{key:"getInstance",value:function(){var _getInstance=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee15(userUrlPrefix){var urlPrefix,Module;return _regeneratorRuntime().wrap(function _callee15$(_context19){while(1){switch(_context19.prev=_context19.next){case 0:urlPrefix=defaultUrlPrefix;if(userUrlPrefix){urlPrefix=userUrlPrefix=="remote"?cdnUrl:userUrlPrefix;}if(_IfcWasmConverterLoader.instance){_context19.next=14;break;}_IfcWasmConverterLoader.instance=new _IfcWasmConverterLoader();Module={locateFile:function locateFile(path){var fullPath=urlPrefix+path;if(path.endsWith(".wasm")){console.log("Loading wasm file from ".concat(fullPath));return fullPath;}return path;}};_context19.prev=5;_context19.next=8;return IfcDbWasm(Module);case 8:_IfcWasmConverterLoader.instance.module=_context19.sent;_context19.next=14;break;case 11:_context19.prev=11;_context19.t0=_context19["catch"](5);console.error("Error on wasm import:",_context19.t0);case 14:return _context19.abrupt("return",_IfcWasmConverterLoader.instance);case 15:case"end":return _context19.stop();}}},_callee15,null,[[5,11]]);}));function getInstance(_x126){return _getInstance.apply(this,arguments);}return getInstance;}()},{key:"getModule",value:function(){var _getModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee16(userUrlPrefix){return _regeneratorRuntime().wrap(function _callee16$(_context20){while(1){switch(_context20.prev=_context20.next){case 0:_context20.next=2;return _IfcWasmConverterLoader.getInstance(userUrlPrefix);case 2:return _context20.abrupt("return",_context20.sent.module);case 3:case"end":return _context20.stop();}}},_callee16);}));function getModule(_x127){return _getModule.apply(this,arguments);}return getModule;}()}]);return _IfcWasmConverterLoader;}();__publicField$1(_IfcWasmConverterLoader,"instance");var IfcWasmConverterLoader=_IfcWasmConverterLoader;function ifc2gltf(_x128,_x129){return _ifc2gltf.apply(this,arguments);}function _ifc2gltf(){_ifc2gltf=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee72(ifcData,params){var inputOptionsString,loadOptions,resolveCallbackGltf,resolveCallbackMetadata,url,module,promiseGltf,promiseMetadata,gltf,uint8Array,decoder,metaStr,metaData;return _regeneratorRuntime().wrap(function _callee72$(_context76){while(1){switch(_context76.prev=_context76.next){case 0:inputOptionsString=params.inputOptions?params.inputOptions:JSON.stringify(inputOptionsDefault);loadOptions={"maxFileSizeInMegaBytes":1e3};resolveCallbackGltf=void 0;resolveCallbackMetadata=void 0;url=params.remote?"remote":params.urlPath;_context76.next=7;return IfcWasmConverterLoader.getModule(url);case 7:module=_context76.sent;if(params.progressCallback)module.setProgressCallback(params.progressCallback);else module.setProgressCallback(function(progress){console.log("Progress: ".concat(progress));});if(params.progressTextCallback)module.setProgressTextCallback(params.progressTextCallback);else module.setProgressTextCallback(function(progressText){console.log("Progress text: ".concat(progressText));});module.setInputOptions(inputOptionsString);promiseGltf=new Promise(function(resolve){resolveCallbackGltf=resolve;});promiseMetadata=new Promise(function(resolve){resolveCallbackMetadata=resolve;});if(resolveCallbackGltf)module.setGltfCompleteCallback(resolveCallbackGltf);if(resolveCallbackMetadata)module.setMetaDataCompleteCallback(resolveCallbackMetadata);module.loadModel(ifcData,loadOptions);_context76.next=18;return Promise.all([promiseGltf,promiseMetadata]);case 18:_context76.next=20;return module.getGeometry();case 20:gltf=_context76.sent;_context76.next=23;return module.getMetaData();case 23:uint8Array=_context76.sent;decoder=new TextDecoder();metaStr=decoder.decode(uint8Array);_context76.next=28;return JSON.parse(metaStr);case 28:metaData=_context76.sent;return _context76.abrupt("return",{gltf:gltf,metaData:metaData});case 30:case"end":return _context76.stop();}}},_callee72);}));return _ifc2gltf.apply(this,arguments);}var inputOptionsDefault={"inputParameters":{"exportPropertySets":"yes","exportIfcPropertyTypes":"yes","exportIfcValueTypes":"yes","exportPolylines":"yes","excludeGeometryForIfcTypes":["IfcOpeningElement"],"excludeGUIDs":[""],"exportOnlyGUIDs":[""],"centerModelAtOrigin":"yes","ignoreProfileRadius":"yes","enableGltfCompression":"yes","enableGltfQuantization":"no","exportNormals":"no","numPointsPerCircle":18,"licenceKey":"",// JSON above is copied from default input config file. Changes applied here:
32763
+ origin:rtcNeeded?origin:null,positions:positions,normals:ctx.options.autoNormals?null:normals,indices:indices,color:[placedGeometry.color.x,placedGeometry.color.y,placedGeometry.color.z],opacity:placedGeometry.color.w});meshIds.push(meshId);}var entityId=ctx.options.globalizeObjectIds?math.globalizeObjectId(ctx.sceneModel.id,globalId):globalId;ctx.sceneModel.createEntity({id:entityId,meshIds:meshIds,isObject:true});ctx.stats.numObjects++;});}}]);return WebIFCLoaderPlugin;}(Plugin);var name="@creooxag/cx-converter";var version="0.0.12-alpha";var description="";var exports$1={".":{types:"./dist/index.d.ts","import":"./dist/index.mjs",require:"./dist/index.cjs"}};var main="./dist/index.mjs";var module$1="./dist/index.mjs";var types="./dist/index.d.ts";var typesVersions={"*":{"*":["./dist/*","./dist/index.d.ts"]}};var files=["dist/"];var scripts={"clean-dist":"rm -rf ./dist","clean-cmake":"rm -rf ./cmake-build","build-wasm-release":"emcmake cmake -S . -B ../cmake-build -DCMAKE_BUILD_TYPE=Release && cmake --build ../cmake-build","publish-npm":"npm publish --access public",build:"unbuild",dev:"unbuild --stub",lint:"eslint .",start:"esno examples/node/nodeExport.ts","example-html":"http-server -c-1 -p8237 --cors"};var keywords=[];var devDependencies={"@types/node":"^22.10.2",esno:"^4.8.0","fast-glob":"^3.3.2",globals:"^15.8.0","http-server":"^14.1.1",prettier:"^3.3.3","prettier-eslint":"^16.3.0",typescript:"^5.7.2",unbuild:"^2.0.0","@eslint/eslintrc":"^3.2.0","@eslint/js":"^9.20.0","@typescript-eslint/eslint-plugin":"^8.24.0","@typescript-eslint/parser":"^8.24.0",eslint:"^9.20.1","eslint-config-prettier":"^10.0.1","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.3"};var packageJSON={name:name,version:version,description:description,exports:exports$1,main:main,module:module$1,types:types,typesVersions:typesVersions,files:files,scripts:scripts,keywords:keywords,devDependencies:devDependencies};var __defProp$2=Object.defineProperty;var __defNormalProp$2=function __defNormalProp$2(obj,key,value){return key in obj?__defProp$2(obj,key,{enumerable:true,configurable:true,writable:true,value:value}):obj[key]=value;};var __publicField$2=function __publicField$2(obj,key,value){__defNormalProp$2(obj,_typeof(key)!=="symbol"?key+"":key,value);return value;};var IfcDbWasm=function(){var _scriptName=import.meta.url;return/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee15(){var moduleArg,moduleRtn,Module,readyPromiseResolve,readyPromiseReject,readyPromise,moduleOverrides,arguments_,thisProgram,quit_,scriptDirectory,locateFile,readAsync,readBinary,out,err,wasmBinary,wasmMemory,ABORT,EXITSTATUS,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAP64,HEAPU64,HEAPF64,updateMemoryViews,preRun,initRuntime,postRun,runDependencies,dependenciesFulfilled,addRunDependency,removeRunDependency,abort,wasmBinaryFile,findWasmBinary,getBinarySync,getWasmBinary,_getWasmBinary,instantiateArrayBuffer,_instantiateArrayBuffer,instantiateAsync,_instantiateAsync,getWasmImports,createWasm,_createWasm,ASM_CONSTS,ExitStatus,callRuntimeCallbacks,onPostRuns,addOnPostRun,onPreRuns,addOnPreRun,noExitRuntime,ExceptionInfo,exceptionLast,___cxa_throw,syscallGetVarargI,syscallGetVarargP,PATH,initRandomFill,_randomFill,PATH_FS,UTF8Decoder,UTF8ArrayToString,FS_stdin_getChar_buffer,lengthBytesUTF8,stringToUTF8Array,intArrayFromString,FS_stdin_getChar,TTY,alignMemory,mmapAlloc,MEMFS,asyncLoad,FS_createDataFile,preloadPlugins,FS_handledByPreloadPlugin,FS_createPreloadedFile,FS_modeStringToFlags,FS_getMode,FS,UTF8ToString,SYSCALLS,___syscall_fcntl64,___syscall_ioctl,___syscall_openat,___syscall_renameat,___syscall_rmdir,___syscall_stat64,___syscall_unlinkat,__abort_js,structRegistrations,runDestructors,readPointer,awaitingDependencies,registeredTypes,typeDependencies,InternalError,throwInternalError,whenDependentTypesAreResolved,__embind_finalize_value_object,embindRepr,embind_init_charCodes,embind_charCodes,readLatin1String,BindingError,throwBindingError,sharedRegisterType,registerType,integerReadValueFromPointer,__embind_register_bigint,GenericWireTypeSize,__embind_register_bool,emval_freelist,emval_handles,__emval_decref,count_emval_handles,init_emval,Emval,EmValType,__embind_register_emval,floatReadValueFromPointer,__embind_register_float,createNamedFunction,usesDestructorStack,newFunc,createJsInvoker,runAndAbortIfError,handleException,runtimeKeepaliveCounter,keepRuntimeAlive,_proc_exit,exitJS,_exit,maybeExit,callUserCallback,Asyncify,craftInvokerFunction,ensureOverloadTable,exposePublicSymbol,heap32VectorToArray,replacePublicSymbol,dynCallLegacy,dynCall,getDynCaller,embind__requireFunction,extendError,UnboundTypeError,getTypeName,throwUnboundTypeError,getFunctionName,__embind_register_function,__embind_register_integer,__embind_register_memory_view,stringToUTF8,__embind_register_std_string,UTF16Decoder,UTF16ToString,stringToUTF16,lengthBytesUTF16,UTF32ToString,stringToUTF32,lengthBytesUTF32,__embind_register_std_wstring,__embind_register_value_object,__embind_register_value_object_field,__embind_register_void,requireRegisteredType,emval_returnValue,__emval_as,emval_methodCallers,__emval_call,emval_symbols,getStringOrSymbol,emval_get_global,__emval_get_global,emval_addMethodCaller,emval_lookupTypes,__emval_get_method_caller,__emval_incref,__emval_is_string,__emval_run_destructors,__emval_take_value,isLeapYear,MONTH_DAYS_LEAP_CUMULATIVE,MONTH_DAYS_REGULAR_CUMULATIVE,ydayFromDate,INT53_MAX,INT53_MIN,bigintToI53Checked,__localtime_js,__mktime_js,__tzset_js,_emscripten_get_now,_emscripten_date_now,checkWasiClock,_clock_time_get,readEmAsmArgsArray,readEmAsmArgs,runEmAsmFunction,_emscripten_asm_const_int,getHeapMax,_emscripten_get_heap_max,growMemory,_emscripten_resize_heap,safeSetTimeout,_emscripten_sleep,ENV,getExecutableName,getEnvStrings,stringToAscii,_environ_get,_environ_sizes_get,_fd_close,doReadv,_fd_read,_fd_seek,doWritev,_fd_write,stackAlloc,stringToUTF8OnStack,wasmImports,wasmExports,___getTypeName,_malloc,_free,_main,__emscripten_stack_alloc,_asyncify_start_unwind,_asyncify_stop_unwind,_asyncify_start_rewind,_asyncify_stop_rewind,callMain,run,_args18=arguments;return _regeneratorRuntime().wrap(function _callee15$(_context19){while(1){switch(_context19.prev=_context19.next){case 0:run=function _run(){var args=arguments.length>0&&arguments[0]!==undefined?arguments[0]:arguments_;if(runDependencies>0){dependenciesFulfilled=run;return;}preRun();if(runDependencies>0){dependenciesFulfilled=run;return;}function doRun(){var _Module$onRuntimeInit;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);(_Module$onRuntimeInit=Module["onRuntimeInitialized"])===null||_Module$onRuntimeInit===void 0?void 0:_Module$onRuntimeInit.call(Module);var noInitialRun=Module["noInitialRun"]||true;if(!noInitialRun)callMain(args);postRun();}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){return Module["setStatus"]("");},1);doRun();},1);}else{doRun();}};callMain=function _callMain(){var args=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var entryFunction=_main;args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv;args.forEach(function(arg){HEAPU32[argv_ptr>>2]=stringToUTF8OnStack(arg);argv_ptr+=4;});HEAPU32[argv_ptr>>2]=0;try{var ret=entryFunction(argc,argv);exitJS(ret,true);return ret;}catch(e){return handleException(e);}};_fd_write=function _fd_write2(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_fd_seek=function _fd_seek2(fd,offset,whence,newOffset){offset=bigintToI53Checked(offset);try{if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);HEAP64[newOffset>>3]=BigInt(stream.position);if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_fd_read=function _fd_read2(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_fd_close=function _fd_close2(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno;}};_clock_time_get=function _clock_time_get2(clk_id,ignored_precision,ptime){if(!checkWasiClock(clk_id)){return 28;}var now;if(clk_id===0){now=_emscripten_date_now();}else{now=_emscripten_get_now();}var nsec=Math.round(now*1e3*1e3);HEAP64[ptime>>3]=BigInt(nsec);return 0;};__localtime_js=function _localtime_js(time,tmPtr){time=bigintToI53Checked(time);var date=new Date(time*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;};craftInvokerFunction=function _craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=usesDestructorStack(argTypes);var returns=argTypes[0].name!=="void";var closureArgs=[humanName,throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];for(var i=0;i<argCount-2;++i){closureArgs.push(argTypes[i+2]);}closureArgs.push(Asyncify);if(!needsDestructorStack){for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){if(argTypes[i].destructorFunction!==null){closureArgs.push(argTypes[i].destructorFunction);}}}var _createJsInvoker=createJsInvoker(argTypes,isClassMethodFunc,returns,isAsync),_createJsInvoker2=_slicedToArray(_createJsInvoker,2),args=_createJsInvoker2[0],invokerFnBody=_createJsInvoker2[1];args.push(invokerFnBody);var invokerFn=newFunc(Function,args).apply(void 0,closureArgs);return createNamedFunction(humanName,invokerFn);};createJsInvoker=function _createJsInvoker3(argTypes,isClassMethodFunc,returns,isAsync){var needsDestructorStack=usesDestructorStack(argTypes);var argCount=argTypes.length-2;var argsList=[];var argsListWired=["fn"];if(isClassMethodFunc){argsListWired.push("thisWired");}for(var i=0;i<argCount;++i){argsList.push("arg".concat(i));argsListWired.push("arg".concat(i,"Wired"));}argsList=argsList.join(",");argsListWired=argsListWired.join(",");var invokerFnBody="return function (".concat(argsList,") {\n");if(needsDestructorStack){invokerFnBody+="var destructors = [];\n";}var dtorStack=needsDestructorStack?"destructors":"null";var args1=["humanName","throwBindingError","invoker","fn","runDestructors","retType","classParam"];if(isClassMethodFunc){invokerFnBody+="var thisWired = classParam['toWireType'](".concat(dtorStack,", this);\n");}for(var i=0;i<argCount;++i){invokerFnBody+="var arg".concat(i,"Wired = argType").concat(i,"['toWireType'](").concat(dtorStack,", arg").concat(i,");\n");args1.push("argType".concat(i));}invokerFnBody+=(returns||isAsync?"var rv = ":"")+"invoker(".concat(argsListWired,");\n");var returnVal=returns?"rv":"";args1.push("Asyncify");invokerFnBody+="function onDone(".concat(returnVal,") {\n");if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n";}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?"thisWired":"arg"+(i-2)+"Wired";if(argTypes[i].destructorFunction!==null){invokerFnBody+="".concat(paramName,"_dtor(").concat(paramName,");\n");args1.push("".concat(paramName,"_dtor"));}}}if(returns){invokerFnBody+="var ret = retType['fromWireType'](rv);\nreturn ret;\n";}invokerFnBody+="}\n";invokerFnBody+="return Asyncify.currData ? Asyncify.whenDone().then(onDone) : onDone(".concat(returnVal,");\n");invokerFnBody+="}\n";return[args1,invokerFnBody];};newFunc=function _newFunc(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type ".concat(_typeof(constructor)," which is not a function"));}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy();var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj;};usesDestructorStack=function _usesDestructorStack(argTypes){for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===void 0){return true;}}return false;};registerType=function _registerType(rawType,registeredInstance){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};return sharedRegisterType(rawType,registeredInstance,options);};sharedRegisterType=function _sharedRegisterType(rawType,registeredInstance){var options=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var name=registeredInstance.name;if(!rawType){throwBindingError("type \"".concat(name,"\" must have a positive integer typeid pointer"));}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return;}else{throwBindingError("Cannot register type '".concat(name,"' twice"));}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(function(cb){return cb();});}};readPointer=function _readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2]);};___syscall_unlinkat=function _syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path);}else if(flags===512){FS.rmdir(path);}else{abort("Invalid flags passed to unlinkat");}return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_stat64=function _syscall_stat(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.writeStat(buf,FS.stat(path));}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_rmdir=function _syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_renameat=function _syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_openat=function _syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?syscallGetVarargI():0;return FS.open(path,flags,mode).fd;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_ioctl=function _syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:{if(!stream.tty)return-59;return 0;}case 21505:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcgets){var termios=stream.tty.ops.ioctl_tcgets(stream);var argp=syscallGetVarargP();HEAP32[argp>>2]=termios.c_iflag||0;HEAP32[argp+4>>2]=termios.c_oflag||0;HEAP32[argp+8>>2]=termios.c_cflag||0;HEAP32[argp+12>>2]=termios.c_lflag||0;for(var i=0;i<32;i++){HEAP8[argp+i+17]=termios.c_cc[i]||0;}return 0;}return 0;}case 21510:case 21511:case 21512:{if(!stream.tty)return-59;return 0;}case 21506:case 21507:case 21508:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tcsets){var argp=syscallGetVarargP();var c_iflag=HEAP32[argp>>2];var c_oflag=HEAP32[argp+4>>2];var c_cflag=HEAP32[argp+8>>2];var c_lflag=HEAP32[argp+12>>2];var c_cc=[];for(var i=0;i<32;i++){c_cc.push(HEAP8[argp+i+17]);}return stream.tty.ops.ioctl_tcsets(stream.tty,op,{c_iflag:c_iflag,c_oflag:c_oflag,c_cflag:c_cflag,c_lflag:c_lflag,c_cc:c_cc});}return 0;}case 21519:{if(!stream.tty)return-59;var argp=syscallGetVarargP();HEAP32[argp>>2]=0;return 0;}case 21520:{if(!stream.tty)return-59;return-28;}case 21531:{var argp=syscallGetVarargP();return FS.ioctl(stream,op,argp);}case 21523:{if(!stream.tty)return-59;if(stream.tty.ops.ioctl_tiocgwinsz){var winsize=stream.tty.ops.ioctl_tiocgwinsz(stream.tty);var argp=syscallGetVarargP();HEAP16[argp>>1]=winsize[0];HEAP16[argp+2>>1]=winsize[1];}return 0;}case 21524:{if(!stream.tty)return-59;return 0;}case 21515:{if(!stream.tty)return-59;return 0;}default:return-28;}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};___syscall_fcntl64=function _syscall_fcntl(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=syscallGetVarargI();if(arg<0){return-28;}while(FS.streams[arg]){arg++;}var newStream;newStream=FS.dupStream(stream,arg);return newStream.fd;}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=syscallGetVarargI();stream.flags|=arg;return 0;}case 12:{var arg=syscallGetVarargP();var offset=0;HEAP16[arg+offset>>1]=2;return 0;}case 13:case 14:return 0;}return-28;}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno;}};_createWasm=function _createWasm3(){_createWasm=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee14(){var _wasmBinaryFile;var receiveInstance,receiveInstantiationResult,info,result,exports;return _regeneratorRuntime().wrap(function _callee14$(_context18){while(1){switch(_context18.prev=_context18.next){case 0:receiveInstantiationResult=function _receiveInstantiation(result2){return receiveInstance(result2["instance"]);};receiveInstance=function _receiveInstance(instance,module){wasmExports=instance.exports;wasmExports=Asyncify.instrumentWasmExports(wasmExports);wasmMemory=wasmExports["U"];updateMemoryViews();wasmExports["X"];removeRunDependency();return wasmExports;};addRunDependency();info=getWasmImports();if(!Module["instantiateWasm"]){_context18.next=6;break;}return _context18.abrupt("return",new Promise(function(resolve,reject){Module["instantiateWasm"](info,function(mod,inst){receiveInstance(mod);resolve(mod.exports);});}));case 6:(_wasmBinaryFile=wasmBinaryFile)!==null&&_wasmBinaryFile!==void 0?_wasmBinaryFile:wasmBinaryFile=findWasmBinary();_context18.prev=7;_context18.next=10;return instantiateAsync(wasmBinary,wasmBinaryFile,info);case 10:result=_context18.sent;exports=receiveInstantiationResult(result);return _context18.abrupt("return",exports);case 15:_context18.prev=15;_context18.t0=_context18["catch"](7);readyPromiseReject(_context18.t0);return _context18.abrupt("return",Promise.reject(_context18.t0));case 19:case"end":return _context18.stop();}}},_callee14,null,[[7,15]]);}));return _createWasm.apply(this,arguments);};createWasm=function _createWasm2(){return _createWasm.apply(this,arguments);};getWasmImports=function _getWasmImports(){return{a:wasmImports};};_instantiateAsync=function _instantiateAsync3(){_instantiateAsync=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee13(binary,binaryFile,imports){var response,instantiationResult;return _regeneratorRuntime().wrap(function _callee13$(_context17){while(1){switch(_context17.prev=_context17.next){case 0:if(!(!binary&&typeof WebAssembly.instantiateStreaming=="function")){_context17.next=13;break;}_context17.prev=1;response=fetch(binaryFile,{credentials:"same-origin"});_context17.next=5;return WebAssembly.instantiateStreaming(response,imports);case 5:instantiationResult=_context17.sent;return _context17.abrupt("return",instantiationResult);case 9:_context17.prev=9;_context17.t0=_context17["catch"](1);err("wasm streaming compile failed: ".concat(_context17.t0));err("falling back to ArrayBuffer instantiation");case 13:return _context17.abrupt("return",instantiateArrayBuffer(binaryFile,imports));case 14:case"end":return _context17.stop();}}},_callee13,null,[[1,9]]);}));return _instantiateAsync.apply(this,arguments);};instantiateAsync=function _instantiateAsync2(_x123,_x124,_x125){return _instantiateAsync.apply(this,arguments);};_instantiateArrayBuffer=function _instantiateArrayBuff2(){_instantiateArrayBuffer=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(binaryFile,imports){var binary,instance;return _regeneratorRuntime().wrap(function _callee12$(_context16){while(1){switch(_context16.prev=_context16.next){case 0:_context16.prev=0;_context16.next=3;return getWasmBinary(binaryFile);case 3:binary=_context16.sent;_context16.next=6;return WebAssembly.instantiate(binary,imports);case 6:instance=_context16.sent;return _context16.abrupt("return",instance);case 10:_context16.prev=10;_context16.t0=_context16["catch"](0);err("failed to asynchronously prepare wasm: ".concat(_context16.t0));abort(_context16.t0);case 14:case"end":return _context16.stop();}}},_callee12,null,[[0,10]]);}));return _instantiateArrayBuffer.apply(this,arguments);};instantiateArrayBuffer=function _instantiateArrayBuff(_x121,_x122){return _instantiateArrayBuffer.apply(this,arguments);};_getWasmBinary=function _getWasmBinary3(){_getWasmBinary=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(binaryFile){var response;return _regeneratorRuntime().wrap(function _callee11$(_context15){while(1){switch(_context15.prev=_context15.next){case 0:if(wasmBinary){_context15.next=10;break;}_context15.prev=1;_context15.next=4;return readAsync(binaryFile);case 4:response=_context15.sent;return _context15.abrupt("return",new Uint8Array(response));case 8:_context15.prev=8;_context15.t0=_context15["catch"](1);case 10:return _context15.abrupt("return",getBinarySync(binaryFile));case 11:case"end":return _context15.stop();}}},_callee11,null,[[1,8]]);}));return _getWasmBinary.apply(this,arguments);};getWasmBinary=function _getWasmBinary2(_x120){return _getWasmBinary.apply(this,arguments);};getBinarySync=function _getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary);}throw"both async and sync fetching of the wasm failed";};findWasmBinary=function _findWasmBinary(){if(Module["locateFile"]){return locateFile("ifcdb.wasm");}return new URL("ifcdb.wasm",import.meta.url).href;};abort=function _abort2(what){var _Module$onAbort;(_Module$onAbort=Module["onAbort"])===null||_Module$onAbort===void 0?void 0:_Module$onAbort.call(Module,what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e;};removeRunDependency=function _removeRunDependency(id){var _Module$monitorRunDep2;runDependencies--;(_Module$monitorRunDep2=Module["monitorRunDependencies"])===null||_Module$monitorRunDep2===void 0?void 0:_Module$monitorRunDep2.call(Module,runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback();}}};addRunDependency=function _addRunDependency(id){var _Module$monitorRunDep;runDependencies++;(_Module$monitorRunDep=Module["monitorRunDependencies"])===null||_Module$monitorRunDep===void 0?void 0:_Module$monitorRunDep.call(Module,runDependencies);};postRun=function _postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift());}}callRuntimeCallbacks(onPostRuns);};initRuntime=function _initRuntime(){if(!Module["noFSInit"]&&!FS.initialized)FS.init();wasmExports["V"]();FS.ignorePermissions=false;};preRun=function _preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift());}}callRuntimeCallbacks(onPreRuns);};updateMemoryViews=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);Module["HEAP64"]=HEAP64=new BigInt64Array(b);Module["HEAPU64"]=HEAPU64=new BigUint64Array(b);};locateFile=function _locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory);}return scriptDirectory+path;};moduleArg=_args18.length>0&&_args18[0]!==undefined?_args18[0]:{};Module=moduleArg;readyPromise=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject;});moduleOverrides=Object.assign({},Module);arguments_=[];thisProgram="./this.program";quit_=function quit_(status,toThrow){throw toThrow;};scriptDirectory="";if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src;}if(_scriptName){scriptDirectory=_scriptName;}if(scriptDirectory.startsWith("blob:")){scriptDirectory="";}else{scriptDirectory=scriptDirectory.slice(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1);}readAsync=/*#__PURE__*/function(){var _ref26=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(url){var response;return _regeneratorRuntime().wrap(function _callee9$(_context13){while(1){switch(_context13.prev=_context13.next){case 0:_context13.next=2;return fetch(url,{credentials:"same-origin"});case 2:response=_context13.sent;if(!response.ok){_context13.next=5;break;}return _context13.abrupt("return",response.arrayBuffer());case 5:throw new Error(response.status+" : "+response.url);case 6:case"end":return _context13.stop();}}},_callee9);}));return function readAsync(_x119){return _ref26.apply(this,arguments);};}();out=Module["print"]||console.log.bind(console);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"];wasmBinary=Module["wasmBinary"];ABORT=false;runDependencies=0;dependenciesFulfilled=null;ASM_CONSTS={191520:function _(){console.error("progress callback is not set.");}};ExitStatus=/*#__PURE__*/_createClass(function ExitStatus(status){_classCallCheck(this,ExitStatus);__publicField$2(this,"name","ExitStatus");this.message="Program terminated with exit(".concat(status,")");this.status=status;});callRuntimeCallbacks=function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module);}};onPostRuns=[];addOnPostRun=function addOnPostRun(cb){return onPostRuns.unshift(cb);};onPreRuns=[];addOnPreRun=function addOnPreRun(cb){return onPreRuns.unshift(cb);};noExitRuntime=Module["noExitRuntime"]||true;ExceptionInfo=/*#__PURE__*/function(){function ExceptionInfo(excPtr){_classCallCheck(this,ExceptionInfo);this.excPtr=excPtr;this.ptr=excPtr-24;}_createClass(ExceptionInfo,[{key:"set_type",value:function set_type(type){HEAPU32[this.ptr+4>>2]=type;}},{key:"get_type",value:function get_type(){return HEAPU32[this.ptr+4>>2];}},{key:"set_destructor",value:function set_destructor(destructor){HEAPU32[this.ptr+8>>2]=destructor;}},{key:"get_destructor",value:function get_destructor(){return HEAPU32[this.ptr+8>>2];}},{key:"set_caught",value:function set_caught(caught){caught=caught?1:0;HEAP8[this.ptr+12]=caught;}},{key:"get_caught",value:function get_caught(){return HEAP8[this.ptr+12]!=0;}},{key:"set_rethrown",value:function set_rethrown(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13]=rethrown;}},{key:"get_rethrown",value:function get_rethrown(){return HEAP8[this.ptr+13]!=0;}},{key:"init",value:function init(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);}},{key:"set_adjusted_ptr",value:function set_adjusted_ptr(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr;}},{key:"get_adjusted_ptr",value:function get_adjusted_ptr(){return HEAPU32[this.ptr+16>>2];}}]);return ExceptionInfo;}();exceptionLast=0;___cxa_throw=function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;throw exceptionLast;};syscallGetVarargI=function syscallGetVarargI(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret;};syscallGetVarargP=syscallGetVarargI;PATH={isAbs:function isAbs(path){return path.charAt(0)==="/";},splitPath:function splitPath(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1);},normalizeArray:function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1);}else if(last===".."){parts.splice(i,1);up++;}else if(up){parts.splice(i,1);up--;}}if(allowAboveRoot){for(;up;up--){parts.unshift("..");}}return parts;},normalize:function normalize(path){var isAbsolute=PATH.isAbs(path),trailingSlash=path.slice(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p;}),!isAbsolute).join("/");if(!path&&!isAbsolute){path=".";}if(path&&trailingSlash){path+="/";}return(isAbsolute?"/":"")+path;},dirname:function dirname(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return".";}if(dir){dir=dir.slice(0,-1);}return root+dir;},basename:function basename(path){return path&&path.match(/([^\/]+|\/)\/*$/)[1];},join:function join(){for(var _len126=arguments.length,paths=new Array(_len126),_key15=0;_key15<_len126;_key15++){paths[_key15]=arguments[_key15];}return PATH.normalize(paths.join("/"));},join2:function join2(l,r){return PATH.normalize(l+"/"+r);}};initRandomFill=function initRandomFill(){return function(view){return crypto.getRandomValues(view);};};_randomFill=function randomFill(view){(_randomFill=initRandomFill())(view);};PATH_FS={resolve:function resolve(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?i<0||arguments.length<=i?undefined:arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings");}else if(!path){return"";}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path);}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p;}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||".";},relative:function relative(from,to){from=PATH_FS.resolve(from).slice(1);to=PATH_FS.resolve(to).slice(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break;}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break;}if(start>end)return[];return arr.slice(start,end-start+1);}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break;}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..");}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/");}};UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder():void 0;UTF8ArrayToString=function UTF8ArrayToString(heapOrArray){var idx=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var maxBytesToRead=arguments.length>2&&arguments[2]!==undefined?arguments[2]:NaN;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;};FS_stdin_getChar_buffer=[];lengthBytesUTF8=function 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;};stringToUTF8Array=function 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;};intArrayFromString=function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array;};FS_stdin_getChar=function FS_stdin_getChar(){if(!FS_stdin_getChar_buffer.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n";}}if(!result){return null;}FS_stdin_getChar_buffer=intArrayFromString(result,true);}return FS_stdin_getChar_buffer.shift();};TTY={ttys:[],init:function init(){},shutdown:function shutdown(){},register:function register(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops);},stream_ops:{open:function open(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43);}stream.tty=tty;stream.seekable=false;},close:function close(stream){stream.tty.ops.fsync(stream.tty);},fsync:function fsync(stream){stream.tty.ops.fsync(stream.tty);},read:function read(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60);}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty);}catch(e){throw new FS.ErrnoError(29);}if(result===void 0&&bytesRead===0){throw new FS.ErrnoError(6);}if(result===null||result===void 0)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.atime=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60);}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i]);}}catch(e){throw new FS.ErrnoError(29);}if(length){stream.node.mtime=stream.node.ctime=Date.now();}return i;}},default_tty_ops:{get_char:function get_char(tty){return FS_stdin_getChar();},put_char:function put_char(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output));tty.output=[];}else{if(val!=0)tty.output.push(val);}},fsync:function fsync(tty){var _tty$output;if(((_tty$output=tty.output)===null||_tty$output===void 0?void 0:_tty$output.length)>0){out(UTF8ArrayToString(tty.output));tty.output=[];}},ioctl_tcgets:function ioctl_tcgets(tty){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]};},ioctl_tcsets:function ioctl_tcsets(tty,optional_actions,data){return 0;},ioctl_tiocgwinsz:function ioctl_tiocgwinsz(tty){return[24,80];}},default_tty1_ops:{put_char:function put_char(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output));tty.output=[];}else{if(val!=0)tty.output.push(val);}},fsync:function fsync(tty){var _tty$output2;if(((_tty$output2=tty.output)===null||_tty$output2===void 0?void 0:_tty$output2.length)>0){err(UTF8ArrayToString(tty.output));tty.output=[];}}}};alignMemory=function alignMemory(size,alignment){return Math.ceil(size/alignment)*alignment;};mmapAlloc=function mmapAlloc(size){abort();};MEMFS={ops_table:null,mount:function mount(_mount){return MEMFS.createNode(null,"/",16895,0);},createNode:function createNode(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63);}MEMFS.ops_table||(MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}});var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={};}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null;}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream;}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream;}node.atime=node.mtime=node.ctime=Date.now();if(parent){parent.contents[name]=node;parent.atime=parent.mtime=parent.ctime=node.atime;}return node;},getFileDataAsTypedArray:function getFileDataAsTypedArray(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents);},expandFileStorage:function expandFileStorage(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);},resizeFileStorage:function resizeFileStorage(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)));}node.usedBytes=newSize;}},node_ops:{getattr:function getattr(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096;}else if(FS.isFile(node.mode)){attr.size=node.usedBytes;}else if(FS.isLink(node.mode)){attr.size=node.link.length;}else{attr.size=0;}attr.atime=new Date(node.atime);attr.mtime=new Date(node.mtime);attr.ctime=new Date(node.ctime);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr;},setattr:function setattr(node,attr){for(var _i659=0,_arr3=["mode","atime","mtime","ctime"];_i659<_arr3.length;_i659++){var key=_arr3[_i659];if(attr[key]!=null){node[key]=attr[key];}}if(attr.size!==void 0){MEMFS.resizeFileStorage(node,attr.size);}},lookup:function lookup(parent,name){throw MEMFS.doesNotExistError;},mknod:function mknod(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev);},rename:function rename(old_node,new_dir,new_name){var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(new_node){if(FS.isDir(old_node.mode)){for(var i in new_node.contents){throw new FS.ErrnoError(55);}}FS.hashRemoveNode(new_node);}delete old_node.parent.contents[old_node.name];new_dir.contents[new_name]=old_node;old_node.name=new_name;new_dir.ctime=new_dir.mtime=old_node.parent.ctime=old_node.parent.mtime=Date.now();},unlink:function unlink(parent,name){delete parent.contents[name];parent.ctime=parent.mtime=Date.now();},rmdir:function rmdir(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55);}delete parent.contents[name];parent.ctime=parent.mtime=Date.now();},readdir:function readdir(node){return[".",".."].concat(_toConsumableArray(Object.keys(node.contents)));},symlink:function symlink(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node;},readlink:function readlink(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28);}return node.link;}},stream_ops:{read:function read(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset);}else{for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}return size;},write:function write(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false;}if(!length)return 0;var node=stream.node;node.mtime=node.ctime=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length;}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length;}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length;}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position);}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i];}}node.usedBytes=Math.max(node.usedBytes,position+length);return length;},llseek:function llseek(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position;}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes;}}if(position<0){throw new FS.ErrnoError(28);}return position;},allocate:function allocate(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length);},mmap:function mmap(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43);}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset;}else{allocated=true;ptr=mmapAlloc();if(!ptr){throw new FS.ErrnoError(48);}if(contents){if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length);}else{contents=Array.prototype.slice.call(contents,position,position+length);}}HEAP8.set(contents,ptr);}}return{ptr:ptr,allocated:allocated};},msync:function msync(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0;}}};asyncLoad=/*#__PURE__*/function(){var _ref27=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(url){var arrayBuffer;return _regeneratorRuntime().wrap(function _callee10$(_context14){while(1){switch(_context14.prev=_context14.next){case 0:_context14.next=2;return readAsync(url);case 2:arrayBuffer=_context14.sent;return _context14.abrupt("return",new Uint8Array(arrayBuffer));case 4:case"end":return _context14.stop();}}},_callee10);}));return function asyncLoad(_x126){return _ref27.apply(this,arguments);};}();asyncLoad.isAsync=true;FS_createDataFile=function FS_createDataFile(parent,name,fileData,canRead,canWrite,canOwn){FS.createDataFile(parent,name,fileData,canRead,canWrite,canOwn);};preloadPlugins=Module["preloadPlugins"]||[];FS_handledByPreloadPlugin=function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true;}});return handled;};FS_createPreloadedFile=function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;function processData(byteArray){function finish(byteArray2){preFinish===null||preFinish===void 0?void 0:preFinish();if(!dontCreateFile){FS_createDataFile(parent,name,byteArray2,canRead,canWrite,canOwn);}onload===null||onload===void 0?void 0:onload();removeRunDependency();}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,function(){onerror===null||onerror===void 0?void 0:onerror();removeRunDependency();})){return;}finish(byteArray);}addRunDependency();if(typeof url=="string"){asyncLoad(url).then(processData,onerror);}else{processData(url);}};FS_modeStringToFlags=function FS_modeStringToFlags(str){var flagModes={r:0,"r+":2,w:512|64|1,"w+":512|64|2,a:1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: ".concat(str));}return flags;};FS_getMode=function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode;};FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:/*#__PURE__*/_createClass(function ErrnoError(errno){_classCallCheck(this,ErrnoError);__publicField$2(this,"name","ErrnoError");this.errno=errno;}),filesystems:null,syncFSRequests:0,readFiles:{},FSStream:/*#__PURE__*/function(){function FSStream(){_classCallCheck(this,FSStream);__publicField$2(this,"shared",{});}_createClass(FSStream,[{key:"object",get:function get(){return this.node;},set:function set(val){this.node=val;}},{key:"isRead",get:function get(){return(this.flags&2097155)!==1;}},{key:"isWrite",get:function get(){return(this.flags&2097155)!==0;}},{key:"isAppend",get:function get(){return this.flags&1024;}},{key:"flags",get:function get(){return this.shared.flags;},set:function set(val){this.shared.flags=val;}},{key:"position",get:function get(){return this.shared.position;},set:function set(val){this.shared.position=val;}}]);return FSStream;}(),FSNode:/*#__PURE__*/function(){function FSNode(parent,name,mode,rdev){_classCallCheck(this,FSNode);__publicField$2(this,"node_ops",{});__publicField$2(this,"stream_ops",{});__publicField$2(this,"readMode",292|73);__publicField$2(this,"writeMode",146);__publicField$2(this,"mounted",null);if(!parent){parent=this;}this.parent=parent;this.mount=parent.mount;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.rdev=rdev;this.atime=this.mtime=this.ctime=Date.now();}_createClass(FSNode,[{key:"read",get:function get(){return(this.mode&this.readMode)===this.readMode;},set:function set(val){val?this.mode|=this.readMode:this.mode&=~this.readMode;}},{key:"write",get:function get(){return(this.mode&this.writeMode)===this.writeMode;},set:function set(val){val?this.mode|=this.writeMode:this.mode&=~this.writeMode;}},{key:"isFolder",get:function get(){return FS.isDir(this.mode);}},{key:"isDevice",get:function get(){return FS.isChrdev(this.mode);}}]);return FSNode;}(),lookupPath:function lookupPath(path){var _opts$follow_mount;var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};if(!path){throw new FS.ErrnoError(44);}(_opts$follow_mount=opts.follow_mount)!==null&&_opts$follow_mount!==void 0?_opts$follow_mount:opts.follow_mount=true;if(!PATH.isAbs(path)){path=FS.cwd()+"/"+path;}linkloop:for(var nlinks=0;nlinks<40;nlinks++){var parts=path.split("/").filter(function(p){return!!p;});var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break;}if(parts[i]==="."){continue;}if(parts[i]===".."){current_path=PATH.dirname(current_path);current=current.parent;continue;}current_path=PATH.join2(current_path,parts[i]);try{current=FS.lookupNode(current,parts[i]);}catch(e){if((e===null||e===void 0?void 0:e.errno)===44&&islast&&opts.noent_okay){return{path:current_path};}throw e;}if(FS.isMountpoint(current)&&(!islast||opts.follow_mount)){current=current.mounted.root;}if(FS.isLink(current.mode)&&(!islast||opts.follow)){if(!current.node_ops.readlink){throw new FS.ErrnoError(52);}var link=current.node_ops.readlink(current);if(!PATH.isAbs(link)){link=PATH.dirname(current_path)+"/"+link;}path=link+"/"+parts.slice(i+1).join("/");continue linkloop;}}return{path:current_path,node:current};}throw new FS.ErrnoError(32);},getPath:function getPath(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?"".concat(mount,"/").concat(path):mount+path;}path=path?"".concat(node.name,"/").concat(path):node.name;node=node.parent;}},hashName:function hashName(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0;}return(parentid+hash>>>0)%FS.nameTable.length;},hashAddNode:function hashAddNode(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node;},hashRemoveNode:function hashRemoveNode(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next;}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break;}current=current.name_next;}}},lookupNode:function lookupNode(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode);}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node;}}return FS.lookup(parent,name);},createNode:function createNode(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node;},destroyNode:function destroyNode(node){FS.hashRemoveNode(node);},isRoot:function isRoot(node){return node===node.parent;},isMountpoint:function isMountpoint(node){return!!node.mounted;},isFile:function isFile(mode){return(mode&61440)===32768;},isDir:function isDir(mode){return(mode&61440)===16384;},isLink:function isLink(mode){return(mode&61440)===40960;},isChrdev:function isChrdev(mode){return(mode&61440)===8192;},isBlkdev:function isBlkdev(mode){return(mode&61440)===24576;},isFIFO:function isFIFO(mode){return(mode&61440)===4096;},isSocket:function isSocket(mode){return(mode&49152)===49152;},flagsToPermissionString:function flagsToPermissionString(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w";}return perms;},nodePermissions:function nodePermissions(node,perms){if(FS.ignorePermissions){return 0;}if(perms.includes("r")&&!(node.mode&292)){return 2;}else if(perms.includes("w")&&!(node.mode&146)){return 2;}else if(perms.includes("x")&&!(node.mode&73)){return 2;}return 0;},mayLookup:function mayLookup(dir){if(!FS.isDir(dir.mode))return 54;var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0;},mayCreate:function mayCreate(dir,name){if(!FS.isDir(dir.mode)){return 54;}try{var node=FS.lookupNode(dir,name);return 20;}catch(e){}return FS.nodePermissions(dir,"wx");},mayDelete:function mayDelete(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name);}catch(e){return e.errno;}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode;}if(isdir){if(!FS.isDir(node.mode)){return 54;}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10;}}else{if(FS.isDir(node.mode)){return 31;}}return 0;},mayOpen:function mayOpen(node,flags){if(!node){return 44;}if(FS.isLink(node.mode)){return 32;}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&(512|64)){return 31;}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags));},checkOpExists:function checkOpExists(op,err2){if(!op){throw new FS.ErrnoError(err2);}return op;},MAX_OPEN_FDS:4096,nextfd:function nextfd(){for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd;}}throw new FS.ErrnoError(33);},getStreamChecked:function getStreamChecked(fd){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8);}return stream;},getStream:function getStream(fd){return FS.streams[fd];},createStream:function createStream(stream){var fd=arguments.length>1&&arguments[1]!==undefined?arguments[1]:-1;stream=Object.assign(new FS.FSStream(),stream);if(fd==-1){fd=FS.nextfd();}stream.fd=fd;FS.streams[fd]=stream;return stream;},closeStream:function closeStream(fd){FS.streams[fd]=null;},dupStream:function dupStream(origStream){var _stream$stream_ops,_stream$stream_ops$du;var fd=arguments.length>1&&arguments[1]!==undefined?arguments[1]:-1;var stream=FS.createStream(origStream,fd);(_stream$stream_ops=stream.stream_ops)===null||_stream$stream_ops===void 0?void 0:(_stream$stream_ops$du=_stream$stream_ops.dup)===null||_stream$stream_ops$du===void 0?void 0:_stream$stream_ops$du.call(_stream$stream_ops,stream);return stream;},doSetAttr:function doSetAttr(stream,node,attr){var _setattr;var setattr=stream===null||stream===void 0?void 0:stream.stream_ops.setattr;var arg=setattr?stream:node;(_setattr=setattr)!==null&&_setattr!==void 0?_setattr:setattr=node.node_ops.setattr;FS.checkOpExists(setattr,63);setattr(arg,attr);},chrdev_stream_ops:{open:function open(stream){var _stream$stream_ops$op,_stream$stream_ops2;var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;(_stream$stream_ops$op=(_stream$stream_ops2=stream.stream_ops).open)===null||_stream$stream_ops$op===void 0?void 0:_stream$stream_ops$op.call(_stream$stream_ops2,stream);},llseek:function llseek(){throw new FS.ErrnoError(70);}},major:function major(dev){return dev>>8;},minor:function minor(dev){return dev&255;},makedev:function makedev(ma,mi){return ma<<8|mi;},registerDevice:function registerDevice(dev,ops){FS.devices[dev]={stream_ops:ops};},getDevice:function getDevice(dev){return FS.devices[dev];},getMounts:function getMounts(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,_toConsumableArray(m.mounts));}return mounts;},syncfs:function syncfs(populate,callback){if(typeof populate=="function"){callback=populate;populate=false;}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: ".concat(FS.syncFSRequests," FS.syncfs operations in flight at once, probably just doing extra work"));}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode);}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode);}return;}if(++completed>=mounts.length){doCallback(null);}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null);}mount.type.syncfs(mount,populate,done);});},mount:function mount(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10);}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10);}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54);}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot;}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount);}}return mountRoot;},unmount:function unmount(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28);}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current);}current=next;}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1);},lookup:function lookup(parent,name){return parent.node_ops.lookup(parent,name);},mknod:function mknod(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name){throw new FS.ErrnoError(28);}if(name==="."||name===".."){throw new FS.ErrnoError(20);}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63);}return parent.node_ops.mknod(parent,name,mode,dev);},statfs:function statfs(path){return FS.statfsNode(FS.lookupPath(path,{follow:true}).node);},statfsStream:function statfsStream(stream){return FS.statfsNode(stream.node);},statfsNode:function statfsNode(node){var rtn={bsize:4096,frsize:4096,blocks:1e6,bfree:5e5,bavail:5e5,files:FS.nextInode,ffree:FS.nextInode-1,fsid:42,flags:2,namelen:255};if(node.node_ops.statfs){Object.assign(rtn,node.node_ops.statfs(node.mount.opts.root));}return rtn;},create:function create(path){var mode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0);},mkdir:function mkdir(path){var mode=arguments.length>1&&arguments[1]!==undefined?arguments[1]:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0);},mkdirTree:function mkdirTree(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode);}catch(e){if(e.errno!=20)throw e;}}},mkdev:function mkdev(path,mode,dev){if(typeof dev=="undefined"){dev=mode;mode=438;}mode|=8192;return FS.mknod(path,mode,dev);},symlink:function symlink(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44);}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44);}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63);}return parent.node_ops.symlink(parent,newname,oldpath);},rename:function rename(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75);}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28);}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55);}var new_node;try{new_node=FS.lookupNode(new_dir,new_name);}catch(e){}if(old_node===new_node){return;}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode);}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode);}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63);}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10);}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode);}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name);old_node.parent=new_dir;}catch(e){throw e;}finally{FS.hashAddNode(old_node);}},rmdir:function rmdir(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10);}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);},readdir:function readdir(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var readdir=FS.checkOpExists(node.node_ops.readdir,54);return readdir(node);},unlink:function unlink(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44);}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode);}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63);}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10);}parent.node_ops.unlink(parent,name);FS.destroyNode(node);},readlink:function readlink(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44);}if(!link.node_ops.readlink){throw new FS.ErrnoError(28);}return link.node_ops.readlink(link);},stat:function stat(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;var getattr=FS.checkOpExists(node.node_ops.getattr,63);return getattr(node);},fstat:function fstat(fd){var _getattr;var stream=FS.getStreamChecked(fd);var node=stream.node;var getattr=stream.stream_ops.getattr;var arg=getattr?stream:node;(_getattr=getattr)!==null&&_getattr!==void 0?_getattr:getattr=node.node_ops.getattr;FS.checkOpExists(getattr,63);return getattr(arg);},lstat:function lstat(path){return FS.stat(path,true);},doChmod:function doChmod(stream,node,mode,dontFollow){FS.doSetAttr(stream,node,{mode:mode&4095|node.mode&~4095,ctime:Date.now(),dontFollow:dontFollow});},chmod:function chmod(path,mode,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}FS.doChmod(null,node,mode,dontFollow);},lchmod:function lchmod(path,mode){FS.chmod(path,mode,true);},fchmod:function fchmod(fd,mode){var stream=FS.getStreamChecked(fd);FS.doChmod(stream,stream.node,mode,false);},doChown:function doChown(stream,node,dontFollow){FS.doSetAttr(stream,node,{timestamp:Date.now(),dontFollow:dontFollow});},chown:function chown(path,uid,gid,dontFollow){var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node;}else{node=path;}FS.doChown(null,node,dontFollow);},lchown:function lchown(path,uid,gid){FS.chown(path,uid,gid,true);},fchown:function fchown(fd,uid,gid){var stream=FS.getStreamChecked(fd);FS.doChown(stream,stream.node,false);},doTruncate:function doTruncate(stream,node,len){if(FS.isDir(node.mode)){throw new FS.ErrnoError(31);}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28);}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode);}FS.doSetAttr(stream,node,{size:len,timestamp:Date.now()});},truncate:function truncate(path,len){if(len<0){throw new FS.ErrnoError(28);}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;}else{node=path;}FS.doTruncate(null,node,len);},ftruncate:function ftruncate(fd,len){var stream=FS.getStreamChecked(fd);if(len<0||(stream.flags&2097155)===0){throw new FS.ErrnoError(28);}FS.doTruncate(stream,stream.node,len);},utime:function utime(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;var setattr=FS.checkOpExists(node.node_ops.setattr,63);setattr(node,{atime:atime,mtime:mtime});},open:function open(path,flags){var mode=arguments.length>2&&arguments[2]!==undefined?arguments[2]:438;if(path===""){throw new FS.ErrnoError(44);}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;if(flags&64){mode=mode&4095|32768;}else{mode=0;}var node;var isDirPath;if(_typeof(path)=="object"){node=path;}else{isDirPath=path.endsWith("/");var lookup=FS.lookupPath(path,{follow:!(flags&131072),noent_okay:true});node=lookup.node;path=lookup.path;}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20);}}else if(isDirPath){throw new FS.ErrnoError(31);}else{node=FS.mknod(path,mode|511,0);created=true;}}if(!node){throw new FS.ErrnoError(44);}if(FS.isChrdev(node.mode)){flags&=~512;}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54);}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode);}}if(flags&512&&!created){FS.truncate(node,0);}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream);}if(created){FS.chmod(node,mode&511);}if(Module["logReadFiles"]&&!(flags&1)){if(!(path in FS.readFiles)){FS.readFiles[path]=1;}}return stream;},close:function close(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream);}}catch(e){throw e;}finally{FS.closeStream(stream.fd);}stream.fd=null;},isClosed:function isClosed(stream){return stream.fd===null;},llseek:function llseek(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70);}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28);}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position;},read:function read(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28);}if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31);}if(!stream.stream_ops.read){throw new FS.ErrnoError(28);}var seeking=typeof position!="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(70);}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead;},write:function write(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28);}if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8);}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31);}if(!stream.stream_ops.write){throw new FS.ErrnoError(28);}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2);}var seeking=typeof position!="undefined";if(!seeking){position=stream.position;}else if(!stream.seekable){throw new FS.ErrnoError(70);}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten;},allocate:function allocate(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8);}if(offset<0||length<=0){throw new FS.ErrnoError(28);}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8);}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43);}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138);}stream.stream_ops.allocate(stream,offset,length);},mmap:function mmap(stream,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2);}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2);}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43);}if(!length){throw new FS.ErrnoError(28);}return stream.stream_ops.mmap(stream,length,position,prot,flags);},msync:function msync(stream,buffer,offset,length,mmapFlags){if(!stream.stream_ops.msync){return 0;}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags);},ioctl:function ioctl(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59);}return stream.stream_ops.ioctl(stream,cmd,arg);},readFile:function readFile(path){var opts=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error("Invalid encoding type \"".concat(opts.encoding,"\""));}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf);}else if(opts.encoding==="binary"){ret=buf;}FS.close(stream);return ret;},writeFile:function writeFile(path,data){var opts=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,void 0,opts.canOwn);}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,void 0,opts.canOwn);}else{throw new Error("Unsupported data type");}FS.close(stream);},cwd:function cwd(){return FS.currentPath;},chdir:function chdir(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44);}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54);}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode);}FS.currentPath=lookup.path;},createDefaultDirectories:function createDefaultDirectories(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user");},createDefaultDevices:function createDefaultDevices(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function read(){return 0;},write:function write(stream,buffer,offset,length,pos){return length;},llseek:function llseek(){return 0;}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=function randomByte(){if(randomLeft===0){_randomFill(randomBuffer);randomLeft=randomBuffer.byteLength;}return randomBuffer[--randomLeft];};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp");},createSpecialDirectories:function createSpecialDirectories(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function mount(){var node=FS.createNode(proc_self,"fd",16895,73);node.stream_ops={llseek:MEMFS.stream_ops.llseek};node.node_ops={lookup:function lookup(parent,name){var fd=+name;var stream=FS.getStreamChecked(fd);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function readlink(){return stream.path;}},id:fd+1};ret.parent=ret;return ret;},readdir:function readdir(){return Array.from(FS.streams.entries()).filter(function(_ref28){var _ref29=_slicedToArray(_ref28,2),k=_ref29[0],v=_ref29[1];return v;}).map(function(_ref30){var _ref31=_slicedToArray(_ref30,2),k=_ref31[0],v=_ref31[1];return k.toString();});}};return node;}},{},"/proc/self/fd");},createStandardStreams:function createStandardStreams(input,output,error){if(input){FS.createDevice("/dev","stdin",input);}else{FS.symlink("/dev/tty","/dev/stdin");}if(output){FS.createDevice("/dev","stdout",null,output);}else{FS.symlink("/dev/tty","/dev/stdout");}if(error){FS.createDevice("/dev","stderr",null,error);}else{FS.symlink("/dev/tty1","/dev/stderr");}FS.open("/dev/stdin",0);FS.open("/dev/stdout",1);FS.open("/dev/stderr",1);},staticInit:function staticInit(){FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={MEMFS:MEMFS};},init:function init(input,output,error){var _input,_output,_error2;FS.initialized=true;(_input=input)!==null&&_input!==void 0?_input:input=Module["stdin"];(_output=output)!==null&&_output!==void 0?_output:output=Module["stdout"];(_error2=error)!==null&&_error2!==void 0?_error2:error=Module["stderr"];FS.createStandardStreams(input,output,error);},quit:function quit(){FS.initialized=false;for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue;}FS.close(stream);}},findObject:function findObject(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null;}return ret.object;},analyzePath:function analyzePath(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path;}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/";}catch(e){ret.error=e.errno;}return ret;},createPath:function createPath(parent,path,canRead,canWrite){parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current);}catch(e){}parent=current;}return current;},createFile:function createFile(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode);},createDataFile:function createDataFile(parent,name,data,canRead,canWrite,canOwn){var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent;}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i){arr[i]=data.charCodeAt(i);}data=arr;}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode);}},createDevice:function createDevice(parent,name,input,output){var _a$major;var _a;var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);(_a$major=(_a=FS.createDevice).major)!==null&&_a$major!==void 0?_a$major:_a.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function open(stream){stream.seekable=false;},close:function close(stream){var _output$buffer;if(output!==null&&output!==void 0&&(_output$buffer=output.buffer)!==null&&_output$buffer!==void 0&&_output$buffer.length){output(10);}},read:function read(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input();}catch(e){throw new FS.ErrnoError(29);}if(result===void 0&&bytesRead===0){throw new FS.ErrnoError(6);}if(result===null||result===void 0)break;bytesRead++;buffer[offset+i]=result;}if(bytesRead){stream.node.atime=Date.now();}return bytesRead;},write:function write(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i]);}catch(e){throw new FS.ErrnoError(29);}}if(length){stream.node.mtime=stream.node.ctime=Date.now();}return i;}});return FS.mkdev(path,mode,dev);},forceLoadFile:function forceLoadFile(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");}else{try{obj.contents=readBinary(obj.url);obj.usedBytes=obj.contents.length;}catch(e){throw new FS.ErrnoError(29);}}},createLazyFile:function createLazyFile(parent,name,url,canRead,canWrite){var LazyUint8Array=/*#__PURE__*/function(){function LazyUint8Array(){_classCallCheck(this,LazyUint8Array);__publicField$2(this,"lengthKnown",false);__publicField$2(this,"chunks",[]);}_createClass(LazyUint8Array,[{key:"get",value:function get(idx){if(idx>this.length-1||idx<0){return void 0;}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset];}},{key:"setDataGetter",value:function setDataGetter(getter){this.getter=getter;}},{key:"cacheLength",value:function cacheLength(){var xhr=new XMLHttpRequest();xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function doXHR(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr2=new XMLHttpRequest();xhr2.open("GET",url,false);if(datalength!==chunkSize)xhr2.setRequestHeader("Range","bytes="+from+"-"+to);xhr2.responseType="arraybuffer";if(xhr2.overrideMimeType){xhr2.overrideMimeType("text/plain; charset=x-user-defined");}xhr2.send(null);if(!(xhr2.status>=200&&xhr2.status<300||xhr2.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr2.status);if(xhr2.response!==void 0){return new Uint8Array(xhr2.response||[]);}return intArrayFromString(xhr2.responseText||"",true);};var lazyArray2=this;lazyArray2.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray2.chunks[chunkNum]=="undefined"){lazyArray2.chunks[chunkNum]=doXHR(start,end);}if(typeof lazyArray2.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray2.chunks[chunkNum];});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed");}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true;}},{key:"length",get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._length;}},{key:"chunkSize",get:function get(){if(!this.lengthKnown){this.cacheLength();}return this._chunkSize;}}]);return LazyUint8Array;}();if(typeof XMLHttpRequest!="undefined"){throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array();var properties={isDevice:false,contents:lazyArray};}else{var properties={isDevice:false,url:url};}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents;}else if(properties.url){node.contents=null;node.url=properties.url;}Object.defineProperties(node,{usedBytes:{get:function get(){return this.contents.length;}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function(){FS.forceLoadFile(node);return fn.apply(void 0,arguments);};});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i];}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i);}}return size;}stream_ops.read=function(stream,buffer,offset,length,position){FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position);};stream_ops.mmap=function(stream,length,position,prot,flags){FS.forceLoadFile(node);var ptr=mmapAlloc();if(!ptr){throw new FS.ErrnoError(48);}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true};};node.stream_ops=stream_ops;return node;}};UTF8ToString=function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";};SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function calculateAt(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path;}var dir;if(dirfd===-100){dir=FS.cwd();}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path;}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44);}return dir;}return dir+"/"+path;},writeStat:function writeStat(buf,stat){HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=stat.mode;HEAPU32[buf+8>>2]=stat.nlink;HEAP32[buf+12>>2]=stat.uid;HEAP32[buf+16>>2]=stat.gid;HEAP32[buf+20>>2]=stat.rdev;HEAP64[buf+24>>3]=BigInt(stat.size);HEAP32[buf+32>>2]=4096;HEAP32[buf+36>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();HEAP64[buf+40>>3]=BigInt(Math.floor(atime/1e3));HEAPU32[buf+48>>2]=atime%1e3*1e3*1e3;HEAP64[buf+56>>3]=BigInt(Math.floor(mtime/1e3));HEAPU32[buf+64>>2]=mtime%1e3*1e3*1e3;HEAP64[buf+72>>3]=BigInt(Math.floor(ctime/1e3));HEAPU32[buf+80>>2]=ctime%1e3*1e3*1e3;HEAP64[buf+88>>3]=BigInt(stat.ino);return 0;},writeStatFs:function writeStatFs(buf,stats){HEAP32[buf+4>>2]=stats.bsize;HEAP32[buf+40>>2]=stats.bsize;HEAP32[buf+8>>2]=stats.blocks;HEAP32[buf+12>>2]=stats.bfree;HEAP32[buf+16>>2]=stats.bavail;HEAP32[buf+20>>2]=stats.files;HEAP32[buf+24>>2]=stats.ffree;HEAP32[buf+28>>2]=stats.fsid;HEAP32[buf+44>>2]=stats.flags;HEAP32[buf+36>>2]=stats.namelen;},doMsync:function doMsync(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43);}if(flags&2){return 0;}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags);},getStreamFromFD:function getStreamFromFD(fd){var stream=FS.getStreamChecked(fd);return stream;},varargs:void 0,getStr:function getStr(ptr){var ret=UTF8ToString(ptr);return ret;}};__abort_js=function __abort_js(){return abort("");};structRegistrations={};runDestructors=function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr);}};awaitingDependencies={};registeredTypes={};typeDependencies={};throwInternalError=function throwInternalError(message){throw new InternalError(message);};whenDependentTypesAreResolved=function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){return typeDependencies[type]=dependentTypes;});function onComplete(typeConverters2){var myTypeConverters=getTypeConverters(typeConverters2);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count");}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i]);}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach(function(dt,i){if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt];}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[];}awaitingDependencies[dt].push(function(){typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters);}});}});if(0===unregisteredTypes.length){onComplete(typeConverters);}};__embind_finalize_value_object=function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(function(field){return field.getterReturnType;}).concat(fieldRecords.map(function(field){return field.setterArgumentType;}));whenDependentTypesAreResolved([structType],fieldTypes,function(fieldTypes2){var fields={};fieldRecords.forEach(function(field,i){var fieldName=field.fieldName;var getterReturnType=fieldTypes2[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes2[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:function read(ptr){return getterReturnType["fromWireType"](getter(getterContext,ptr));},write:function write(ptr,o){var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors);}};});return[{name:reg.name,fromWireType:function fromWireType(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr);}rawDestructor(ptr);return rv;},toWireType:function toWireType(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError("Missing field: \"".concat(fieldName,"\""));}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName]);}if(destructors!==null){destructors.push(rawDestructor,ptr);}return ptr;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:rawDestructor}];});};embindRepr=function embindRepr(v){if(v===null){return"null";}var t=_typeof(v);if(t==="object"||t==="array"||t==="function"){return v.toString();}else{return""+v;}};embind_init_charCodes=function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i);}embind_charCodes=codes;};readLatin1String=function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]];}return ret;};throwBindingError=function throwBindingError(message){throw new BindingError(message);};integerReadValueFromPointer=function integerReadValueFromPointer(name,width,signed){switch(width){case 1:return signed?function(pointer){return HEAP8[pointer];}:function(pointer){return HEAPU8[pointer];};case 2:return signed?function(pointer){return HEAP16[pointer>>1];}:function(pointer){return HEAPU16[pointer>>1];};case 4:return signed?function(pointer){return HEAP32[pointer>>2];}:function(pointer){return HEAPU32[pointer>>2];};case 8:return signed?function(pointer){return HEAP64[pointer>>3];}:function(pointer){return HEAPU64[pointer>>3];};default:throw new TypeError("invalid integer width (".concat(width,"): ").concat(name));}};__embind_register_bigint=function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);var isUnsignedType=name.indexOf("u")!=-1;registerType(primitiveType,{name:name,fromWireType:function fromWireType(value){return value;},toWireType:function toWireType(destructors,value){if(typeof value!="bigint"&&typeof value!="number"){throw new TypeError("Cannot convert \"".concat(embindRepr(value),"\" to ").concat(this.name));}if(typeof value=="number"){value=BigInt(value);}return value;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,!isUnsignedType),destructorFunction:null});};GenericWireTypeSize=8;__embind_register_bool=function __embind_register_bool(rawType,name,trueValue,falseValue){name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function fromWireType(wt){return!!wt;},toWireType:function toWireType(destructors,o){return o?trueValue:falseValue;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function readValueFromPointer(pointer){return this["fromWireType"](HEAPU8[pointer]);},destructorFunction:null});};emval_freelist=[];emval_handles=[];__emval_decref=function __emval_decref(handle){if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=void 0;emval_freelist.push(handle);}};count_emval_handles=function count_emval_handles(){return emval_handles.length/2-5-emval_freelist.length;};init_emval=function init_emval(){emval_handles.push(0,1,void 0,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles;};Emval={toValue:function toValue(handle){if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle);}return emval_handles[handle];},toHandle:function toHandle(value){switch(value){case void 0:return 2;case null:return 4;case true:return 6;case false:return 8;default:{var handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle;}}}};EmValType={name:"emscripten::val",fromWireType:function fromWireType(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv;},toWireType:function toWireType(destructors,value){return Emval.toHandle(value);},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};__embind_register_emval=function __embind_register_emval(rawType){return registerType(rawType,EmValType);};floatReadValueFromPointer=function floatReadValueFromPointer(name,width){switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2]);};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3]);};default:throw new TypeError("invalid float width (".concat(width,"): ").concat(name));}};__embind_register_float=function __embind_register_float(rawType,name,size){name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function fromWireType(value){return value;},toWireType:function toWireType(destructors,value){return value;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null});};createNamedFunction=function createNamedFunction(name,body){return Object.defineProperty(body,"name",{value:name});};runAndAbortIfError=function runAndAbortIfError(func){try{return func();}catch(e){abort(e);}};handleException=function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS;}quit_(1,e);};runtimeKeepaliveCounter=0;keepRuntimeAlive=function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0;};_proc_exit=function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){var _Module$onExit;(_Module$onExit=Module["onExit"])===null||_Module$onExit===void 0?void 0:_Module$onExit.call(Module,code);ABORT=true;}quit_(code,new ExitStatus(code));};exitJS=function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status);};_exit=exitJS;maybeExit=function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS);}catch(e){handleException(e);}}};callUserCallback=function callUserCallback(func){if(ABORT){return;}try{func();maybeExit();}catch(e){handleException(e);}};Asyncify={instrumentWasmImports:function instrumentWasmImports(imports){var importPattern=/^(invoke_.*|__asyncjs__.*)$/;for(var _i660=0,_Object$entries6=Object.entries(imports);_i660<_Object$entries6.length;_i660++){var _Object$entries6$_i=_slicedToArray(_Object$entries6[_i660],2),x=_Object$entries6$_i[0],original=_Object$entries6$_i[1];if(typeof original=="function"){original.isAsync||importPattern.test(x);}}},instrumentWasmExports:function instrumentWasmExports(exports){var ret={};var _loop11=function _loop11(){var _Object$entries7$_i=_slicedToArray(_Object$entries7[_i661],2),x=_Object$entries7$_i[0],original=_Object$entries7$_i[1];if(typeof original=="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(void 0,arguments);}finally{if(!ABORT){Asyncify.exportCallStack.pop();Asyncify.maybeStopUnwind();}}};}else{ret[x]=original;}};for(var _i661=0,_Object$entries7=Object.entries(exports);_i661<_Object$entries7.length;_i661++){_loop11();}return ret;},State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function getCallStackId(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===void 0){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName;}return id;},maybeStopUnwind:function maybeStopUnwind(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_unwind);if(typeof Fibers!="undefined"){Fibers.trampoline();}}},whenDone:function whenDone(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject};});},allocateData:function allocateData(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr;},setDataHeader:function setDataHeader(ptr,stack,stackSize){HEAPU32[ptr>>2]=stack;HEAPU32[ptr+4>>2]=stack+stackSize;},setDataRewindFunc:function setDataRewindFunc(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId;},getDataRewindFuncName:function getDataRewindFuncName(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];return name;},getDataRewindFunc:function getDataRewindFunc(name){var func=wasmExports[name];return func;},doRewind:function doRewind(ptr){var name=Asyncify.getDataRewindFuncName(ptr);var func=Asyncify.getDataRewindFunc(name);return func();},handleSleep:function handleSleep(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(){var handleSleepReturnValue=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue;reachedCallback=true;if(!reachedAfterCallback){return;}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){return _asyncify_start_rewind(Asyncify.currData);});if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.resume();}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData);}catch(err2){asyncWasmReturnValue=err2;isError=true;}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true;}}if(isError&&!handled){throw asyncWasmReturnValue;}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();if(typeof MainLoop!="undefined"&&MainLoop.func){MainLoop.pause();}runAndAbortIfError(function(){return _asyncify_start_unwind(Asyncify.currData);});}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(_asyncify_stop_rewind);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(callUserCallback);}else{abort("invalid state: ".concat(Asyncify.state));}return Asyncify.handleSleepReturnValue;},handleAsync:function handleAsync(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp);});}};ensureOverloadTable=function ensureOverloadTable(proto,methodName,humanName){if(void 0===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){for(var _len127=arguments.length,args=new Array(_len127),_key16=0;_key16<_len127;_key16++){args[_key16]=arguments[_key16];}if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError("Function '".concat(humanName,"' called with an invalid number of arguments (").concat(args.length,") - expects one of (").concat(proto[methodName].overloadTable,")!"));}return proto[methodName].overloadTable[args.length].apply(this,args);};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc;}};exposePublicSymbol=function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(void 0===numArguments||void 0!==Module[name].overloadTable&&void 0!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '".concat(name,"' twice"));}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (".concat(numArguments,")!"));}Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}};heap32VectorToArray=function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2]);}return array;};replacePublicSymbol=function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol");}if(void 0!==Module[name].overloadTable&&void 0!==numArguments){Module[name].overloadTable[numArguments]=value;}else{Module[name]=value;Module[name].argCount=numArguments;}};dynCallLegacy=function dynCallLegacy(sig,ptr,args){sig=sig.replace(/p/g,"i");var f=Module["dynCall_"+sig];return f.apply(void 0,[ptr].concat(_toConsumableArray(args)));};dynCall=function dynCall(sig,ptr){var args=arguments.length>2&&arguments[2]!==undefined?arguments[2]:[];var rtn=dynCallLegacy(sig,ptr,args);return rtn;};getDynCaller=function getDynCaller(sig,ptr){return function(){for(var _len128=arguments.length,args=new Array(_len128),_key17=0;_key17<_len128;_key17++){args[_key17]=arguments[_key17];}return dynCall(sig,ptr,args);};};embind__requireFunction=function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){return getDynCaller(signature,rawFunction);}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError("unknown function pointer with signature ".concat(signature,": ").concat(rawFunction));}return fp;};extendError=function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==void 0){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"");}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===void 0){return this.name;}else{return"".concat(this.name,": ").concat(this.message);}};return errorClass;};getTypeName=function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv;};throwUnboundTypeError=function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return;}if(registeredTypes[type]){return;}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return;}unboundTypes.push(type);seen[type]=true;}types.forEach(visit);throw new UnboundTypeError("".concat(message,": ")+unboundTypes.map(getTypeName).join([", "]));};getFunctionName=function getFunctionName(signature){signature=signature.trim();var argsIndex=signature.indexOf("(");if(argsIndex===-1)return signature;return signature.slice(0,argsIndex);};__embind_register_function=function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call ".concat(name," due to unbound types"),argTypes);},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes2){var invokerArgsArray=[argTypes2[0],null].concat(argTypes2.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[];});};__embind_register_integer=function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);var fromWireType=function fromWireType(value){return value;};if(minRange===0){var bitshift=32-8*size;fromWireType=function fromWireType(value){return value<<bitshift>>>bitshift;};}var isUnsignedType=name.includes("unsigned");var checkAssertions=function checkAssertions(value,toTypeName){};var toWireType;if(isUnsignedType){toWireType=function toWireType(destructors,value){checkAssertions(value,this.name);return value>>>0;};}else{toWireType=function toWireType(destructors,value){checkAssertions(value,this.name);return value;};}registerType(primitiveType,{name:name,fromWireType:fromWireType,toWireType:toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null});};__embind_register_memory_view=function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size);}name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true});};stringToUTF8=function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);};__embind_register_std_string=function __embind_register_std_string(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,fromWireType:function fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;var i;{var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===void 0){str=stringSegment;}else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+1;}}}_free(value);return str;},toWireType:function toWireType(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value);}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string");}if(valueIsOfTypeString){length=lengthBytesUTF8(value);}else{length=value.length;}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(valueIsOfTypeString){stringToUTF8(value,ptr,length+1);}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(base);throwBindingError("String has UTF-16 code units that do not fit in 8 bits");}HEAPU8[ptr+i]=charCode;}}else{for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i];}}}if(destructors!==null){destructors.push(_free,base);}return base;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});};UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0;UTF16ToString=function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx]){++idx;}endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit);}return str;};stringToUTF16=function stringToUTF16(str,outPtr,maxBytesToWrite){var _maxBytesToWrite;(_maxBytesToWrite=maxBytesToWrite)!==null&&_maxBytesToWrite!==void 0?_maxBytesToWrite:maxBytesToWrite=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2;}HEAP16[outPtr>>1]=0;return outPtr-startPtr;};lengthBytesUTF16=function lengthBytesUTF16(str){return str.length*2;};UTF32ToString=function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023);}else{str+=String.fromCharCode(utf32);}}return str;};stringToUTF32=function stringToUTF32(str,outPtr,maxBytesToWrite){var _maxBytesToWrite2;(_maxBytesToWrite2=maxBytesToWrite)!==null&&_maxBytesToWrite2!==void 0?_maxBytesToWrite2:maxBytesToWrite=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023;}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break;}HEAP32[outPtr>>2]=0;return outPtr-startPtr;};lengthBytesUTF32=function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4;}return len;};__embind_register_std_wstring=function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=function readCharAt(pointer){return HEAPU16[pointer>>1];};}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=function readCharAt(pointer){return HEAPU32[pointer>>2];};}registerType(rawType,{name:name,fromWireType:function fromWireType(value){var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===void 0){str=stringSegment;}else{str+=String.fromCharCode(0);str+=stringSegment;}decodeStartPtr=currentBytePtr+charSize;}}_free(value);return str;},toWireType:function toWireType(destructors,value){if(!(typeof value=="string")){throwBindingError("Cannot pass non-string to C++ string type ".concat(name));}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr);}return ptr;},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:function destructorFunction(ptr){_free(ptr);}});};__embind_register_value_object=function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]};};__embind_register_value_object_field=function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext});};__embind_register_void=function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,argPackAdvance:0,fromWireType:function fromWireType(){return void 0;},toWireType:function toWireType(destructors,o){return void 0;}});};requireRegisteredType=function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(void 0===impl){throwBindingError("".concat(humanName," has unknown type ").concat(getTypeName(rawType)));}return impl;};emval_returnValue=function emval_returnValue(returnType,destructorsRef,handle){var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors);}return result;};__emval_as=function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle);};emval_methodCallers=[];__emval_call=function __emval_call(caller,handle,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);return caller(null,handle,destructorsRef,args);};emval_symbols={};getStringOrSymbol=function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===void 0){return readLatin1String(address);}return symbol;};emval_get_global=function emval_get_global(){if((typeof globalThis==="undefined"?"undefined":_typeof(globalThis))=="object"){return globalThis;}return/* @__PURE__ */function(){return Function;}()("return this")();};__emval_get_global=function __emval_get_global(name){if(name===0){return Emval.toHandle(emval_get_global());}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name]);}};emval_addMethodCaller=function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id;};emval_lookupTypes=function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],"parameter "+i);}return a;};__emval_get_method_caller=function __emval_get_method_caller(argCount,argTypes,kind){var types=emval_lookupTypes(argCount,argTypes);var retType=types.shift();argCount--;var functionBody="return function (obj, func, destructorsRef, args) {\n";var offset=0;var argsList=[];if(kind===0){argsList.push("obj");}var params=["retType"];var args=[retType];for(var i=0;i<argCount;++i){argsList.push("arg"+i);params.push("argType"+i);args.push(types[i]);functionBody+=" var arg".concat(i," = argType").concat(i,".readValueFromPointer(args").concat(offset?"+"+offset:"",");\n");offset+=types[i].argPackAdvance;}var invoker=kind===1?"new func":"func.call";functionBody+=" var rv = ".concat(invoker,"(").concat(argsList.join(", "),");\n");if(!retType.isVoid){params.push("emval_returnValue");args.push(emval_returnValue);functionBody+=" return emval_returnValue(retType, destructorsRef, rv);\n";}functionBody+="};\n";params.push(functionBody);var invokerFunction=newFunc(Function,params).apply(void 0,args);var functionName="methodCaller<(".concat(types.map(function(t){return t.name;}).join(", "),") => ").concat(retType.name,">");return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction));};__emval_incref=function __emval_incref(handle){if(handle>9){emval_handles[handle+1]+=1;}};__emval_is_string=function __emval_is_string(handle){handle=Emval.toValue(handle);return typeof handle=="string";};__emval_run_destructors=function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle);};__emval_take_value=function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v);};isLeapYear=function isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0);};MONTH_DAYS_LEAP_CUMULATIVE=[0,31,60,91,121,152,182,213,244,274,305,335];MONTH_DAYS_REGULAR_CUMULATIVE=[0,31,59,90,120,151,181,212,243,273,304,334];ydayFromDate=function ydayFromDate(date){var leap=isLeapYear(date.getFullYear());var monthDaysCumulative=leap?MONTH_DAYS_LEAP_CUMULATIVE:MONTH_DAYS_REGULAR_CUMULATIVE;var yday=monthDaysCumulative[date.getMonth()]+date.getDate()-1;return yday;};INT53_MAX=9007199254740992;INT53_MIN=-9007199254740992;bigintToI53Checked=function bigintToI53Checked(num){return num<INT53_MIN||num>INT53_MAX?NaN:Number(num);};__mktime_js=function __mktime_js(tmPtr){var ret=function(){var date=new Date(HEAP32[tmPtr+20>>2]+1900,HEAP32[tmPtr+16>>2],HEAP32[tmPtr+12>>2],HEAP32[tmPtr+8>>2],HEAP32[tmPtr+4>>2],HEAP32[tmPtr>>2],0);var dst=HEAP32[tmPtr+32>>2];var guessedOffset=date.getTimezoneOffset();var start=new Date(date.getFullYear(),0,1);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dstOffset=Math.min(winterOffset,summerOffset);if(dst<0){HEAP32[tmPtr+32>>2]=Number(summerOffset!=winterOffset&&dstOffset==guessedOffset);}else if(dst>0!=(dstOffset==guessedOffset)){var nonDstOffset=Math.max(winterOffset,summerOffset);var trueOffset=dst>0?dstOffset:nonDstOffset;date.setTime(date.getTime()+(trueOffset-guessedOffset)*6e4);}HEAP32[tmPtr+24>>2]=date.getDay();var yday=ydayFromDate(date)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getYear();var timeMs=date.getTime();if(isNaN(timeMs)){return-1;}return timeMs/1e3;}();return BigInt(ret);};__tzset_js=function __tzset_js(timezone,daylight,std_name,dst_name){var currentYear=/* @__PURE__ */new Date().getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAPU32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);var extractZone=function extractZone(timezoneOffset){var sign=timezoneOffset>=0?"-":"+";var absOffset=Math.abs(timezoneOffset);var hours=String(Math.floor(absOffset/60)).padStart(2,"0");var minutes=String(absOffset%60).padStart(2,"0");return"UTC".concat(sign).concat(hours).concat(minutes);};var winterName=extractZone(winterOffset);var summerName=extractZone(summerOffset);if(summerOffset<winterOffset){stringToUTF8(winterName,std_name,17);stringToUTF8(summerName,dst_name,17);}else{stringToUTF8(winterName,dst_name,17);stringToUTF8(summerName,std_name,17);}};_emscripten_get_now=function _emscripten_get_now(){return performance.now();};_emscripten_date_now=function _emscripten_date_now(){return Date.now();};checkWasiClock=function checkWasiClock(clock_id){return clock_id>=0&&clock_id<=3;};readEmAsmArgsArray=[];readEmAsmArgs=function readEmAsmArgs(sigPtr,buf){readEmAsmArgsArray.length=0;var ch;while(ch=HEAPU8[sigPtr++]){var wide=ch!=105;wide&=ch!=112;buf+=wide&&buf%8?4:0;readEmAsmArgsArray.push(ch==112?HEAPU32[buf>>2]:ch==106?HEAP64[buf>>3]:ch==105?HEAP32[buf>>2]:HEAPF64[buf>>3]);buf+=wide?8:4;}return readEmAsmArgsArray;};runEmAsmFunction=function runEmAsmFunction(code,sigPtr,argbuf){var args=readEmAsmArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(ASM_CONSTS,_toConsumableArray(args));};_emscripten_asm_const_int=function _emscripten_asm_const_int(code,sigPtr,argbuf){return runEmAsmFunction(code,sigPtr,argbuf);};getHeapMax=function getHeapMax(){return 2147483648;};_emscripten_get_heap_max=function _emscripten_get_heap_max(){return getHeapMax();};growMemory=function growMemory(size){var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1;}catch(e){}};_emscripten_resize_heap=function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false;}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+0.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true;}}return false;};safeSetTimeout=function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func);},timeout);};_emscripten_sleep=function _emscripten_sleep(ms){return Asyncify.handleSleep(function(wakeUp){return safeSetTimeout(wakeUp,ms);});};_emscripten_sleep.isAsync=true;ENV={};getExecutableName=function getExecutableName(){return thisProgram||"./this.program";};getEnvStrings=function getEnvStrings(){if(!getEnvStrings.strings){var lang=((typeof navigator==="undefined"?"undefined":_typeof(navigator))=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:lang,_:getExecutableName()};for(var x in ENV){if(ENV[x]===void 0)delete env[x];else env[x]=ENV[x];}var strings=[];for(var x in env){strings.push("".concat(x,"=").concat(env[x]));}getEnvStrings.strings=strings;}return getEnvStrings.strings;};stringToAscii=function stringToAscii(str,buffer){for(var i=0;i<str.length;++i){HEAP8[buffer++]=str.charCodeAt(i);}HEAP8[buffer]=0;};_environ_get=function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;stringToAscii(string,ptr);bufSize+=string.length+1;});return 0;};_environ_sizes_get=function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){return bufSize+=string.length+1;});HEAPU32[penviron_buf_size>>2]=bufSize;return 0;};doReadv=function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!="undefined"){offset+=curr;}}return ret;};doWritev=function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len){break;}if(typeof offset!="undefined"){offset+=curr;}}return ret;};stackAlloc=function stackAlloc(sz){return __emscripten_stack_alloc(sz);};stringToUTF8OnStack=function stringToUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8(str,ret,size);return ret;};FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();MEMFS.doesNotExistError=new FS.ErrnoError(44);MEMFS.doesNotExistError.stack="<generic error, no stack>";InternalError=Module["InternalError"]=/*#__PURE__*/function(_Error2){_inherits(InternalError,_Error2);var _super166=_createSuper(InternalError);function InternalError(message){var _this183;_classCallCheck(this,InternalError);_this183=_super166.call(this,message);_this183.name="InternalError";return _this183;}return _createClass(InternalError);}(/*#__PURE__*/_wrapNativeSuper(Error));embind_init_charCodes();BindingError=Module["BindingError"]=/*#__PURE__*/function(_Error3){_inherits(BindingError,_Error3);var _super167=_createSuper(BindingError);function BindingError(message){var _this184;_classCallCheck(this,BindingError);_this184=_super167.call(this,message);_this184.name="BindingError";return _this184;}return _createClass(BindingError);}(/*#__PURE__*/_wrapNativeSuper(Error));init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");wasmImports={a:___cxa_throw,j:___syscall_fcntl64,G:___syscall_ioctl,H:___syscall_openat,s:___syscall_renameat,y:___syscall_rmdir,v:___syscall_stat64,z:___syscall_unlinkat,t:__abort_js,L:__embind_finalize_value_object,m:__embind_register_bigint,R:__embind_register_bool,P:__embind_register_emval,l:__embind_register_float,f:__embind_register_function,c:__embind_register_integer,b:__embind_register_memory_view,Q:__embind_register_std_string,g:__embind_register_std_wstring,O:__embind_register_value_object,M:__embind_register_value_object_field,S:__embind_register_void,N:__emval_as,d:__emval_call,q:__emval_decref,F:__emval_get_global,e:__emval_get_method_caller,o:__emval_incref,T:__emval_is_string,n:__emval_run_destructors,p:__emval_take_value,A:__localtime_js,B:__mktime_js,C:__tzset_js,J:_clock_time_get,K:_emscripten_asm_const_int,I:_emscripten_date_now,r:_emscripten_get_heap_max,u:_emscripten_resize_heap,k:_emscripten_sleep,w:_environ_get,x:_environ_sizes_get,h:_fd_close,E:_fd_read,D:_fd_seek,i:_fd_write};_context19.next=229;return createWasm();case 229:wasmExports=_context19.sent;wasmExports["V"];___getTypeName=wasmExports["W"];_malloc=wasmExports["Y"];_free=wasmExports["Z"];_main=Module["_main"]=wasmExports["_"];__emscripten_stack_alloc=wasmExports["$"];Module["dynCall_vi"]=wasmExports["aa"];Module["dynCall_ii"]=wasmExports["ba"];Module["dynCall_viiii"]=wasmExports["ca"];Module["dynCall_vii"]=wasmExports["da"];Module["dynCall_iii"]=wasmExports["ea"];Module["dynCall_iijii"]=wasmExports["fa"];Module["dynCall_iiii"]=wasmExports["ga"];Module["dynCall_iiiii"]=wasmExports["ha"];Module["dynCall_iiiiiiiii"]=wasmExports["ia"];Module["dynCall_iiiiii"]=wasmExports["ja"];Module["dynCall_v"]=wasmExports["ka"];Module["dynCall_viii"]=wasmExports["la"];Module["dynCall_viiiiiii"]=wasmExports["ma"];Module["dynCall_diiii"]=wasmExports["na"];Module["dynCall_viif"]=wasmExports["oa"];Module["dynCall_i"]=wasmExports["pa"];Module["dynCall_fii"]=wasmExports["qa"];Module["dynCall_jiji"]=wasmExports["ra"];Module["dynCall_iidiiii"]=wasmExports["sa"];Module["dynCall_viijii"]=wasmExports["ta"];Module["dynCall_iiiiiii"]=wasmExports["ua"];Module["dynCall_iiiiij"]=wasmExports["va"];Module["dynCall_iiiiid"]=wasmExports["wa"];Module["dynCall_iiiiijj"]=wasmExports["xa"];Module["dynCall_iiiiiiii"]=wasmExports["ya"];Module["dynCall_iiiiiijj"]=wasmExports["za"];Module["dynCall_viiiiii"]=wasmExports["Aa"];Module["dynCall_viiiii"]=wasmExports["Ba"];_asyncify_start_unwind=wasmExports["Ca"];_asyncify_stop_unwind=wasmExports["Da"];_asyncify_start_rewind=wasmExports["Ea"];_asyncify_stop_rewind=wasmExports["Fa"];if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()();}}run();moduleRtn=readyPromise;return _context19.abrupt("return",moduleRtn);case 272:case"end":return _context19.stop();}}},_callee15);}));}();var __defProp$1=Object.defineProperty;var __defNormalProp$1=function __defNormalProp$1(obj,key,value){return key in obj?__defProp$1(obj,key,{enumerable:true,configurable:true,writable:true,value:value}):obj[key]=value;};var __publicField$1=function __publicField$1(obj,key,value){__defNormalProp$1(obj,_typeof(key)!=="symbol"?key+"":key,value);return value;};var cdnUrl="https://cdn.jsdelivr.net/npm/@creooxag/cx-converter@".concat(packageJSON.version,"/dist/");var defaultUrlPrefix="./";var _IfcWasmConverterLoader=/*#__PURE__*/function(){function _IfcWasmConverterLoader(){_classCallCheck(this,_IfcWasmConverterLoader);__publicField$1(this,"module");}_createClass(_IfcWasmConverterLoader,null,[{key:"getInstance",value:function(){var _getInstance=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee16(userUrlPrefix){var urlPrefix,Module;return _regeneratorRuntime().wrap(function _callee16$(_context20){while(1){switch(_context20.prev=_context20.next){case 0:urlPrefix=defaultUrlPrefix;if(userUrlPrefix){urlPrefix=userUrlPrefix=="remote"?cdnUrl:userUrlPrefix;}if(_IfcWasmConverterLoader.instance){_context20.next=14;break;}_IfcWasmConverterLoader.instance=new _IfcWasmConverterLoader();Module={locateFile:function locateFile(path){var fullPath=urlPrefix+path;if(path.endsWith(".wasm")){console.log("Loading wasm file from ".concat(fullPath));return fullPath;}return path;}};_context20.prev=5;_context20.next=8;return IfcDbWasm(Module);case 8:_IfcWasmConverterLoader.instance.module=_context20.sent;_context20.next=14;break;case 11:_context20.prev=11;_context20.t0=_context20["catch"](5);console.error("Error on wasm import:",_context20.t0);case 14:return _context20.abrupt("return",_IfcWasmConverterLoader.instance);case 15:case"end":return _context20.stop();}}},_callee16,null,[[5,11]]);}));function getInstance(_x127){return _getInstance.apply(this,arguments);}return getInstance;}()},{key:"getModule",value:function(){var _getModule=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee17(userUrlPrefix){return _regeneratorRuntime().wrap(function _callee17$(_context21){while(1){switch(_context21.prev=_context21.next){case 0:_context21.next=2;return _IfcWasmConverterLoader.getInstance(userUrlPrefix);case 2:return _context21.abrupt("return",_context21.sent.module);case 3:case"end":return _context21.stop();}}},_callee17);}));function getModule(_x128){return _getModule.apply(this,arguments);}return getModule;}()}]);return _IfcWasmConverterLoader;}();__publicField$1(_IfcWasmConverterLoader,"instance");var IfcWasmConverterLoader=_IfcWasmConverterLoader;function ifc2gltf(_x129,_x130){return _ifc2gltf.apply(this,arguments);}function _ifc2gltf(){_ifc2gltf=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee73(ifcData,params){var inputOptionsString,loadOptions,resolveCallbackGltf,resolveCallbackMetadata,url,module,promiseGltf,promiseMetadata,gltf,uint8Array,decoder,metaStr,metaData;return _regeneratorRuntime().wrap(function _callee73$(_context77){while(1){switch(_context77.prev=_context77.next){case 0:inputOptionsString=params.inputOptions?params.inputOptions:JSON.stringify(inputOptionsDefault);loadOptions={"maxFileSizeInMegaBytes":1e3};resolveCallbackGltf=void 0;resolveCallbackMetadata=void 0;url=params.remote?"remote":params.urlPath;_context77.next=7;return IfcWasmConverterLoader.getModule(url);case 7:module=_context77.sent;if(params.progressCallback)module.setProgressCallback(params.progressCallback);else module.setProgressCallback(function(progress){console.log("Progress: ".concat(progress));});if(params.progressTextCallback)module.setProgressTextCallback(params.progressTextCallback);else module.setProgressTextCallback(function(progressText){console.log("Progress text: ".concat(progressText));});module.setInputOptions(inputOptionsString);promiseGltf=new Promise(function(resolve){resolveCallbackGltf=resolve;});promiseMetadata=new Promise(function(resolve){resolveCallbackMetadata=resolve;});if(resolveCallbackGltf)module.setGltfCompleteCallback(resolveCallbackGltf);if(resolveCallbackMetadata)module.setMetaDataCompleteCallback(resolveCallbackMetadata);module.loadModel(ifcData,loadOptions);_context77.next=18;return Promise.all([promiseGltf,promiseMetadata]);case 18:_context77.next=20;return module.getGeometry();case 20:gltf=_context77.sent;_context77.next=23;return module.getMetaData();case 23:uint8Array=_context77.sent;decoder=new TextDecoder();metaStr=decoder.decode(uint8Array);_context77.next=28;return JSON.parse(metaStr);case 28:metaData=_context77.sent;return _context77.abrupt("return",{gltf:gltf,metaData:metaData});case 30:case"end":return _context77.stop();}}},_callee73);}));return _ifc2gltf.apply(this,arguments);}var inputOptionsDefault={"inputParameters":{"exportPropertySets":"yes","exportIfcPropertyTypes":"yes","exportIfcValueTypes":"yes","exportPolylines":"yes","excludeGeometryForIfcTypes":["IfcOpeningElement"],"excludeGUIDs":[""],"exportOnlyGUIDs":[""],"centerModelAtOrigin":"yes","ignoreProfileRadius":"yes","enableGltfCompression":"yes","enableGltfQuantization":"no","exportNormals":"no","numPointsPerCircle":18,"licenceKey":"",// JSON above is copied from default input config file. Changes applied here:
32754
32764
  "loadingPriorityTypes":["IFCWALL","IFCSLAB","IFCWINDOW","IFCROOF","IFCFURNISHINGELEMENT","IFCAIRTERMINAL"]//[ "IfcOpeningElement" ],
32755
32765
  }};/**
32756
32766
  * Fetches a file from the given URL and returns its contents as text.
@@ -32758,7 +32768,7 @@ origin:rtcNeeded?origin:null,positions:positions,normals:ctx.options.autoNormals
32758
32768
  * @param {string} url - The URL to fetch the file from.
32759
32769
  * @returns {Promise<string>} A promise that resolves to the file contents.
32760
32770
  * @private
32761
- */function fetchFile(_x130){return _fetchFile.apply(this,arguments);}/**
32771
+ */function fetchFile(_x131){return _fetchFile.apply(this,arguments);}/**
32762
32772
  * {@link Viewer} plugin that uses [CxConverter](https://github.com/Creoox/cxconverter) to load BIM models directly from IFC files, using its WebAssembly buid from [npm package](https://www.npmjs.com/package/@creooxag/cx-converter).
32763
32773
  *
32764
32774
  * ## Overview
@@ -32772,7 +32782,7 @@ origin:rtcNeeded?origin:null,positions:positions,normals:ctx.options.autoNormals
32772
32782
  * });
32773
32783
  * ````
32774
32784
  See the code in action [here](https://xeokit.github.io/xeokit-sdk/examples/buildings/#cxConverterIFC_vbo_Duplex).
32775
- */function _fetchFile(){_fetchFile=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee73(url){var response;return _regeneratorRuntime().wrap(function _callee73$(_context77){while(1){switch(_context77.prev=_context77.next){case 0:_context77.prev=0;_context77.next=3;return fetch(url);case 3:response=_context77.sent;if(response.ok){_context77.next=6;break;}throw new Error("HTTP error! Status: ".concat(response.status));case 6:return _context77.abrupt("return",response.text());case 9:_context77.prev=9;_context77.t0=_context77["catch"](0);console.error('Error fetching file:',_context77.t0);case 12:case"end":return _context77.stop();}}},_callee73,null,[[0,9]]);}));return _fetchFile.apply(this,arguments);}var CxConverterIFCLoaderPlugin=/*#__PURE__*/function(_Plugin20){_inherits(CxConverterIFCLoaderPlugin,_Plugin20);var _super168=_createSuper(CxConverterIFCLoaderPlugin);/**
32785
+ */function _fetchFile(){_fetchFile=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee74(url){var response;return _regeneratorRuntime().wrap(function _callee74$(_context78){while(1){switch(_context78.prev=_context78.next){case 0:_context78.prev=0;_context78.next=3;return fetch(url);case 3:response=_context78.sent;if(response.ok){_context78.next=6;break;}throw new Error("HTTP error! Status: ".concat(response.status));case 6:return _context78.abrupt("return",response.text());case 9:_context78.prev=9;_context78.t0=_context78["catch"](0);console.error('Error fetching file:',_context78.t0);case 12:case"end":return _context78.stop();}}},_callee74,null,[[0,9]]);}));return _fetchFile.apply(this,arguments);}var CxConverterIFCLoaderPlugin=/*#__PURE__*/function(_Plugin20){_inherits(CxConverterIFCLoaderPlugin,_Plugin20);var _super168=_createSuper(CxConverterIFCLoaderPlugin);/**
32776
32786
  * @constructor
32777
32787
  * @param {Viewer} viewer The Viewer.
32778
32788
  * @param {Object} [cfg={}] Plugin configuration.
@@ -32787,7 +32797,7 @@ origin:rtcNeeded?origin:null,positions:positions,normals:ctx.options.autoNormals
32787
32797
  * @param {Function} [params.progressCallback] Callback to track loading progress.
32788
32798
  * @param {Function} [params.progressTextCallback] Callback to track loading progress with text updates.
32789
32799
  * @returns {Promise<SceneModel>} A promise that resolves to the loaded SceneModel.
32790
- */_createClass(CxConverterIFCLoaderPlugin,[{key:"load",value:function(){var _load=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee17(){var params,data,_yield$ifc2gltf,gltf,metaData,sceneModel,_args20=arguments;return _regeneratorRuntime().wrap(function _callee17$(_context21){while(1){switch(_context21.prev=_context21.next){case 0:params=_args20.length>0&&_args20[0]!==undefined?_args20[0]:{};if(!params.src){this.error("load() param expected: src");}_context21.next=4;return fetchFile(params.src);case 4:data=_context21.sent;_context21.next=7;return ifc2gltf(data,{remote:true,progressCallback:params.progressCallback,progressTextCallback:params.progressTextCallback});case 7:_yield$ifc2gltf=_context21.sent;gltf=_yield$ifc2gltf.gltf;metaData=_yield$ifc2gltf.metaData;sceneModel=this.gltfLoader.load({id:"myModel",gltf:gltf,metaModelJSON:metaData});return _context21.abrupt("return",sceneModel);case 12:case"end":return _context21.stop();}}},_callee17,this);}));function load(){return _load.apply(this,arguments);}return load;}()}]);return CxConverterIFCLoaderPlugin;}(Plugin);/**
32800
+ */_createClass(CxConverterIFCLoaderPlugin,[{key:"load",value:function(){var _load=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee18(){var params,data,_yield$ifc2gltf,gltf,metaData,sceneModel,_args21=arguments;return _regeneratorRuntime().wrap(function _callee18$(_context22){while(1){switch(_context22.prev=_context22.next){case 0:params=_args21.length>0&&_args21[0]!==undefined?_args21[0]:{};if(!params.src){this.error("load() param expected: src");}_context22.next=4;return fetchFile(params.src);case 4:data=_context22.sent;_context22.next=7;return ifc2gltf(data,{remote:true,progressCallback:params.progressCallback,progressTextCallback:params.progressTextCallback});case 7:_yield$ifc2gltf=_context22.sent;gltf=_yield$ifc2gltf.gltf;metaData=_yield$ifc2gltf.metaData;sceneModel=this.gltfLoader.load({id:"myModel",gltf:gltf,metaModelJSON:metaData});return _context22.abrupt("return",sceneModel);case 12:case"end":return _context22.stop();}}},_callee18,this);}));function load(){return _load.apply(this,arguments);}return load;}()}]);return CxConverterIFCLoaderPlugin;}(Plugin);/**
32791
32801
  * Default data access strategy for {@link LASLoaderPlugin}.
32792
32802
  */var LASDefaultDataSource=/*#__PURE__*/function(){function LASDefaultDataSource(){var cfg=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};_classCallCheck(this,LASDefaultDataSource);this.cacheBuster=cfg.cacheBuster!==false;}_createClass(LASDefaultDataSource,[{key:"_cacheBusterURL",value:function _cacheBusterURL(url){if(!this.cacheBuster){return url;}var timestamp=new Date().getTime();if(url.indexOf('?')>-1){return url+'&_='+timestamp;}else{return url+'?_='+timestamp;}}/**
32793
32803
  * Gets the contents of the given LAS file in an arraybuffer.
@@ -32835,7 +32845,7 @@ asmGlobalArg,asmLibraryArg,buffer);var __ZSt18uncaught_exceptionv=Module['__ZSt1
32835
32845
  * @param offset
32836
32846
  * @param count
32837
32847
  * @returns number | number[] from incoming binary data
32838
- */function readAs(buf){var Type=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var offset=arguments.length>2?arguments[2]:undefined;var count=arguments.length>3?arguments[3]:undefined;count=count===undefined||count===0?1:count;var sub=buf.slice(offset,offset+Type.BYTES_PER_ELEMENT*count);var r=new Type(sub);if(count===1){return r[0];}var ret=[];for(var _i663=0;_i663<count;_i663++){ret.push(r[_i663]);}return ret;}/**
32848
+ */function readAs(buf){var Type=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var offset=arguments.length>2?arguments[2]:undefined;var count=arguments.length>3?arguments[3]:undefined;count=count===undefined||count===0?1:count;var sub=buf.slice(offset,offset+Type.BYTES_PER_ELEMENT*count);var r=new Type(sub);if(count===1){return r[0];}var ret=[];for(var _i662=0;_i662<count;_i662++){ret.push(r[_i662]);}return ret;}/**
32839
32849
  * Parsing of header's attributes
32840
32850
  * @param arraybuffer
32841
32851
  * @returns header as LASHeader
@@ -32855,7 +32865,7 @@ return true;}/**
32855
32865
  * @param count
32856
32866
  * @param skip
32857
32867
  * @returns new ArrayBuffer, count, hasMoreData
32858
- */},{key:"readData",value:function readData(count,skip){var header=this.header,arraybuffer=this.arraybuffer;if(!header){throw new Error('Cannot start reading data till a header request is issued');}var readOffset=this.readOffset;var start;if(skip<=1){count=Math.min(count,header.pointsCount-readOffset);start=header.pointsOffset+readOffset*header.pointsStructSize;var end=start+count*header.pointsStructSize;readOffset+=count;this.readOffset=readOffset;return{buffer:arraybuffer.slice(start,end),count:count,hasMoreData:readOffset<header.pointsCount};}var pointsToRead=Math.min(count*skip,header.pointsCount-readOffset);var bufferSize=Math.ceil(pointsToRead/skip);var pointsRead=0;var buf=new Uint8Array(bufferSize*header.pointsStructSize);for(var _i664=0;_i664<pointsToRead;_i664++){if(_i664%skip===0){start=header.pointsOffset+readOffset*header.pointsStructSize;var src=new Uint8Array(arraybuffer,start,header.pointsStructSize);buf.set(src,pointsRead*header.pointsStructSize);pointsRead++;}readOffset++;}this.readOffset=readOffset;return{buffer:buf.buffer,count:pointsRead,hasMoreData:readOffset<header.pointsCount};}/**
32868
+ */},{key:"readData",value:function readData(count,skip){var header=this.header,arraybuffer=this.arraybuffer;if(!header){throw new Error('Cannot start reading data till a header request is issued');}var readOffset=this.readOffset;var start;if(skip<=1){count=Math.min(count,header.pointsCount-readOffset);start=header.pointsOffset+readOffset*header.pointsStructSize;var end=start+count*header.pointsStructSize;readOffset+=count;this.readOffset=readOffset;return{buffer:arraybuffer.slice(start,end),count:count,hasMoreData:readOffset<header.pointsCount};}var pointsToRead=Math.min(count*skip,header.pointsCount-readOffset);var bufferSize=Math.ceil(pointsToRead/skip);var pointsRead=0;var buf=new Uint8Array(bufferSize*header.pointsStructSize);for(var _i663=0;_i663<pointsToRead;_i663++){if(_i663%skip===0){start=header.pointsOffset+readOffset*header.pointsStructSize;var src=new Uint8Array(arraybuffer,start,header.pointsStructSize);buf.set(src,pointsRead*header.pointsStructSize);pointsRead++;}readOffset++;}this.readOffset=readOffset;return{buffer:buf.buffer,count:pointsRead,hasMoreData:readOffset<header.pointsCount};}/**
32859
32869
  * Method which brings data to null to close the file
32860
32870
  * @returns
32861
32871
  */},{key:"close",value:function close(){// @ts-ignore Possibly null
@@ -32872,7 +32882,7 @@ Module=getModule();}}/**
32872
32882
  * @param offset
32873
32883
  * @param skip
32874
32884
  * @returns Data
32875
- */},{key:"readData",value:function readData(count,offset,skip){if(!this.instance){throw new Error('You need to open the file before trying to read stuff');}var header=this.header,instance=this.instance;if(!header){throw new Error('You need to query header before reading, I maintain state that way, sorry :(');}try{var pointsToRead=Math.min(count*skip,header.pointsCount-instance.readOffset);var bufferSize=Math.ceil(pointsToRead/skip);var pointsRead=0;var thisBuf=new Uint8Array(bufferSize*header.pointsStructSize);var bufRead=Module._malloc(header.pointsStructSize);for(var _i665=0;_i665<pointsToRead;_i665++){instance.getPoint(bufRead);if(_i665%skip===0){var _a12=new Uint8Array(Module.HEAPU8.buffer,bufRead,header.pointsStructSize);thisBuf.set(_a12,pointsRead*header.pointsStructSize);pointsRead++;}instance.readOffset++;}Module._free(bufRead);return{buffer:thisBuf.buffer,count:pointsRead,hasMoreData:instance.readOffset<header.pointsCount};}catch(error){throw new Error("Failed to read data: ".concat(error.message));}}/**
32885
+ */},{key:"readData",value:function readData(count,offset,skip){if(!this.instance){throw new Error('You need to open the file before trying to read stuff');}var header=this.header,instance=this.instance;if(!header){throw new Error('You need to query header before reading, I maintain state that way, sorry :(');}try{var pointsToRead=Math.min(count*skip,header.pointsCount-instance.readOffset);var bufferSize=Math.ceil(pointsToRead/skip);var pointsRead=0;var thisBuf=new Uint8Array(bufferSize*header.pointsStructSize);var bufRead=Module._malloc(header.pointsStructSize);for(var _i664=0;_i664<pointsToRead;_i664++){instance.getPoint(bufRead);if(_i664%skip===0){var _a12=new Uint8Array(Module.HEAPU8.buffer,bufRead,header.pointsStructSize);thisBuf.set(_a12,pointsRead*header.pointsStructSize);pointsRead++;}instance.readOffset++;}Module._free(bufRead);return{buffer:thisBuf.buffer,count:pointsRead,hasMoreData:instance.readOffset<header.pointsCount};}catch(error){throw new Error("Failed to read data: ".concat(error.message));}}/**
32876
32886
  * Deletes the instance
32877
32887
  * @returns boolean
32878
32888
  */},{key:"close",value:function close(){try{if(this.instance!==null){Module._free(this.instance.buf);this.instance["delete"]();this.instance=null;}return true;}catch(error){throw new Error("Failed to close file: ".concat(error.message));}}}]);return LAZLoader;}();/**
@@ -32929,7 +32939,7 @@ schema:{fields:[],metadata:{}},header:{vertexCount:0,boundingBox:[[0,0,0],[0,0,0
32929
32939
  };/* eslint-disable max-statements */ // @ts-ignore Possibly undefined
32930
32940
  parseLASChunked(arrayBuffer,(_options$las=options.las)===null||_options$las===void 0?void 0:_options$las.skip,function(){var _options$las3,_options$onProgress;var decoder=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var lasHeader=arguments.length>1?arguments[1]:undefined;if(!originalHeader){var _options$las2;originalHeader=lasHeader;var total=lasHeader.totalToRead;var PositionsType=(_options$las2=options.las)!==null&&_options$las2!==void 0&&_options$las2.fp64?Float64Array:Float32Array;positions=new PositionsType(total*3);// laslaz-decoder.js `pointFormatReaders`
32931
32941
  colors=lasHeader.pointsFormatId>=2?new Uint8Array(total*4):null;intensities=new Uint16Array(total);classifications=new Uint8Array(total);lasMesh.loaderData=lasHeader;lasMesh.attributes={POSITION:{value:positions,size:3},// non-gltf attributes, use non-capitalized names for now
32932
- intensity:{value:intensities,size:1},classification:{value:classifications,size:1}};if(colors){lasMesh.attributes.COLOR_0={value:colors,size:4};}}var batchSize=decoder.pointsCount;var _lasHeader$scale=_slicedToArray(lasHeader.scale,3),scaleX=_lasHeader$scale[0],scaleY=_lasHeader$scale[1],scaleZ=_lasHeader$scale[2],_lasHeader$offset=_slicedToArray(lasHeader.offset,3),offsetX=_lasHeader$offset[0],offsetY=_lasHeader$offset[1],offsetZ=_lasHeader$offset[2];var twoByteColor=detectTwoByteColors(decoder,batchSize,(_options$las3=options.las)===null||_options$las3===void 0?void 0:_options$las3.colorDepth);for(var _i666=0;_i666<batchSize;_i666++){var _decoder$getPoint=decoder.getPoint(_i666),_position3=_decoder$getPoint.position,_color12=_decoder$getPoint.color,intensity=_decoder$getPoint.intensity,classification=_decoder$getPoint.classification;positions[pointIndex*3]=_position3[0]*scaleX+offsetX;positions[pointIndex*3+1]=_position3[1]*scaleY+offsetY;positions[pointIndex*3+2]=_position3[2]*scaleZ+offsetZ;if(_color12&&colors){if(twoByteColor){colors[pointIndex*4]=_color12[0]/256;colors[pointIndex*4+1]=_color12[1]/256;colors[pointIndex*4+2]=_color12[2]/256;}else{colors[pointIndex*4]=_color12[0];colors[pointIndex*4+1]=_color12[1];colors[pointIndex*4+2]=_color12[2];}colors[pointIndex*4+3]=255;}intensities[pointIndex]=intensity;classifications[pointIndex]=classification;pointIndex++;}var meshBatch=_objectSpread(_objectSpread({},lasMesh),{},{header:{vertexCount:lasHeader.totalRead},progress:lasHeader.totalRead/lasHeader.totalToRead});options===null||options===void 0?void 0:(_options$onProgress=options.onProgress)===null||_options$onProgress===void 0?void 0:_options$onProgress.call(options,meshBatch);});/* eslint-enable max-statements */lasMesh.header={vertexCount:originalHeader.totalToRead,boundingBox:getMeshBoundingBox((lasMesh===null||lasMesh===void 0?void 0:lasMesh.attributes)||{})};if(lasMesh){lasMesh.schema=getLASSchema(lasMesh.loaderData,lasMesh.attributes);}return lasMesh;}/**
32942
+ intensity:{value:intensities,size:1},classification:{value:classifications,size:1}};if(colors){lasMesh.attributes.COLOR_0={value:colors,size:4};}}var batchSize=decoder.pointsCount;var _lasHeader$scale=_slicedToArray(lasHeader.scale,3),scaleX=_lasHeader$scale[0],scaleY=_lasHeader$scale[1],scaleZ=_lasHeader$scale[2],_lasHeader$offset=_slicedToArray(lasHeader.offset,3),offsetX=_lasHeader$offset[0],offsetY=_lasHeader$offset[1],offsetZ=_lasHeader$offset[2];var twoByteColor=detectTwoByteColors(decoder,batchSize,(_options$las3=options.las)===null||_options$las3===void 0?void 0:_options$las3.colorDepth);for(var _i665=0;_i665<batchSize;_i665++){var _decoder$getPoint=decoder.getPoint(_i665),_position3=_decoder$getPoint.position,_color12=_decoder$getPoint.color,intensity=_decoder$getPoint.intensity,classification=_decoder$getPoint.classification;positions[pointIndex*3]=_position3[0]*scaleX+offsetX;positions[pointIndex*3+1]=_position3[1]*scaleY+offsetY;positions[pointIndex*3+2]=_position3[2]*scaleZ+offsetZ;if(_color12&&colors){if(twoByteColor){colors[pointIndex*4]=_color12[0]/256;colors[pointIndex*4+1]=_color12[1]/256;colors[pointIndex*4+2]=_color12[2]/256;}else{colors[pointIndex*4]=_color12[0];colors[pointIndex*4+1]=_color12[1];colors[pointIndex*4+2]=_color12[2];}colors[pointIndex*4+3]=255;}intensities[pointIndex]=intensity;classifications[pointIndex]=classification;pointIndex++;}var meshBatch=_objectSpread(_objectSpread({},lasMesh),{},{header:{vertexCount:lasHeader.totalRead},progress:lasHeader.totalRead/lasHeader.totalToRead});options===null||options===void 0?void 0:(_options$onProgress=options.onProgress)===null||_options$onProgress===void 0?void 0:_options$onProgress.call(options,meshBatch);});/* eslint-enable max-statements */lasMesh.header={vertexCount:originalHeader.totalToRead,boundingBox:getMeshBoundingBox((lasMesh===null||lasMesh===void 0?void 0:lasMesh.attributes)||{})};if(lasMesh){lasMesh.schema=getLASSchema(lasMesh.loaderData,lasMesh.attributes);}return lasMesh;}/**
32933
32943
  * parse laz data
32934
32944
  * @param rawData
32935
32945
  * @param skip
@@ -32944,17 +32954,17 @@ onParseData(unpacker,header);if(!chunk.hasMoreData||totalRead>=totalToRead){brea
32944
32954
  * @param batchSize
32945
32955
  * @param colorDepth
32946
32956
  * @returns boolean
32947
- */function detectTwoByteColors(){var decoder=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var batchSize=arguments.length>1?arguments[1]:undefined;var colorDepth=arguments.length>2?arguments[2]:undefined;var twoByteColor=false;switch(colorDepth){case 8:twoByteColor=false;break;case 16:twoByteColor=true;break;case'auto':if(decoder.getPoint(0).color){for(var _i667=0;_i667<batchSize;_i667++){var _decoder$getPoint2=decoder.getPoint(_i667),_color13=_decoder$getPoint2.color;// eslint-disable-next-line max-depth
32957
+ */function detectTwoByteColors(){var decoder=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var batchSize=arguments.length>1?arguments[1]:undefined;var colorDepth=arguments.length>2?arguments[2]:undefined;var twoByteColor=false;switch(colorDepth){case 8:twoByteColor=false;break;case 16:twoByteColor=true;break;case'auto':if(decoder.getPoint(0).color){for(var _i666=0;_i666<batchSize;_i666++){var _decoder$getPoint2=decoder.getPoint(_i666),_color13=_decoder$getPoint2.color;// eslint-disable-next-line max-depth
32948
32958
  if(_color13[0]>255||_color13[1]>255||_color13[2]>255){twoByteColor=true;}}}break;default:// eslint-disable-next-line
32949
32959
  console.warn('las: illegal value for options.las.colorDepth');break;}return twoByteColor;}/**
32950
32960
  * Loader for the LAS (LASer) point cloud format
32951
32961
  * @note Does not support LAS v1.4
32952
- */var LASLoader=_objectSpread(_objectSpread({},LASLoader$2),{},{parse:function(){var _parse=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee18(arrayBuffer,options){return _regeneratorRuntime().wrap(function _callee18$(_context22){while(1){switch(_context22.prev=_context22.next){case 0:return _context22.abrupt("return",parseLAS(arrayBuffer,options));case 1:case"end":return _context22.stop();}}},_callee18);}));function parse(_x131,_x132){return _parse.apply(this,arguments);}return parse;}(),parseSync:function parseSync(arrayBuffer,options){return parseLAS(arrayBuffer,options);}});//import * as epsgCheck from 'epsg-index/all.json';
32962
+ */var LASLoader=_objectSpread(_objectSpread({},LASLoader$2),{},{parse:function(){var _parse=_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee19(arrayBuffer,options){return _regeneratorRuntime().wrap(function _callee19$(_context23){while(1){switch(_context23.prev=_context23.next){case 0:return _context23.abrupt("return",parseLAS(arrayBuffer,options));case 1:case"end":return _context23.stop();}}},_callee19);}));function parse(_x132,_x133){return _parse.apply(this,arguments);}return parse;}(),parseSync:function parseSync(arrayBuffer,options){return parseLAS(arrayBuffer,options);}});//import * as epsgCheck from 'epsg-index/all.json';
32953
32963
  var headerBlockItems=[{item:'FileSignature',format:'char',size:4},{item:'FileSoureceID',format:'uShort',size:2},{item:'GlobalEncoding',format:'uShort',size:2},{item:'ProjectID1',format:'notUsed',size:4},{item:'ProjectID2',format:'notUsed',size:2},{item:'ProjectID3',format:'notUsed',size:2},{item:'ProjectID4',format:'notUsed',size:8},{item:'VersionMajor',format:'uChar',size:1},{item:'VersionMinor',format:'uChar',size:1},{item:'SystemIdentifier',format:'char',size:32},{item:'GeneratingSoftware',format:'char',size:32},{item:'CreationDay',format:'uShort',size:2},{item:'CreationYear',format:'uShort',size:2},{item:'HeaderSize',format:'uShort',size:2},{item:'OffsetToPointData',format:'uLong',size:4},{item:'NumberOfVariableLengthRecords',format:'uLong',size:4},{item:'PointDataFormatID',format:'uChar',size:1},{item:'PointDataRecordLength',format:'uShort',size:2},{item:'NumberOfPoints',format:'uLong',size:4},{item:'NumberOfPointByReturn',format:'uLong',size:20},{item:'ScaleFactorX',format:'double',size:8},{item:'ScaleFactorY',format:'double',size:8},{item:'ScaleFactorZ',format:'double',size:8},{item:'OffsetX',format:'double',size:8},{item:'OffsetY',format:'double',size:8},{item:'OffsetZ',format:'double',size:8},{item:'MaxX',format:'double',size:8},{item:'MinX',format:'double',size:8},{item:'MaxY',format:'double',size:8},{item:'MinY',format:'double',size:8},{item:'MaxZ',format:'double',size:8},{item:'MinZ',format:'double',size:8}];var variableLengthRecord=[{item:'Reserved',format:'uShort',size:2},{item:'UserId',format:'char',size:16},{item:'RecordId',format:'uShort',size:2},{item:'RecordLengthAfterHeader',format:'uShort',size:2},{item:'Description',format:'char',size:32}];/**
32954
32964
  * @private
32955
32965
  * @param arrayBuffer
32956
32966
  * @returns {{}}
32957
- */var loadLASHeader=function loadLASHeader(arrayBuffer){var currentByte=0;var numOfVarLenRecords=0;var projectionStart=0;var dataView=new DataView(arrayBuffer);var buffer=new Uint8Array(6000);var getGeoKeys=function getGeoKeys(geoRecord){if(geoRecord===undefined){return undefined;}var projectionEnd=projectionStart+geoRecord["RecordLengthAfterHeader"];var geoTag=buffer.slice(projectionStart,projectionEnd);var arrayBuffer=bufferFlipper(geoTag);var dataView=new DataView(arrayBuffer);var byteCount=6;var numberOfKeys=Number(dataView.getUint16(byteCount,true));var geoKeys=[];while(numberOfKeys--){var keyTmp={};keyTmp.key=dataView.getUint16(byteCount+=2,true);keyTmp.tiffTagLocation=dataView.getUint16(byteCount+=2,true);keyTmp.count=dataView.getUint16(byteCount+=2,true);keyTmp.valueOffset=dataView.getUint16(byteCount+=2,true);geoKeys.push(keyTmp);}var projRecord=geoKeys.find(function(x){return x.key===3072;});if(projRecord&&projRecord.hasOwnProperty('valueOffset')){var epsg=projRecord.valueOffset;{return epsg;}}return undefined;};var getValue=function getValue(_ref32){var item=_ref32.item,format=_ref32.format,size=_ref32.size;var str,array;switch(format){case'char':array=new Uint8Array(arrayBuffer,currentByte,size);currentByte+=size;str=uint8arrayToString(array);return[item,str];case'uShort':str=dataView.getUint16(currentByte,true);currentByte+=size;return[item,str];case'uLong':str=dataView.getUint32(currentByte,true);if(item==='NumberOfVariableLengthRecords'){numOfVarLenRecords=str;}currentByte+=size;return[item,str];case'uChar':str=dataView.getUint8(currentByte);currentByte+=size;return[item,str];case'double':str=dataView.getFloat64(currentByte,true);currentByte+=size;return[item,str];default:currentByte+=size;}};var getValues=function getValues(){var publicHeaderBlock={};headerBlockItems.forEach(function(obj){var myObj=getValue(_objectSpread({},obj));if(myObj!==undefined){if(myObj[0]==='FileSignature'&&myObj[1]!=='LASF'){throw new Error('Ivalid FileSignature. Is this a LAS/LAZ file');}publicHeaderBlock[myObj[0]]=myObj[1];}});var variableRecords=[];var variableLengthRecords=numOfVarLenRecords;var _loop12=function _loop12(){var variableObj={};variableLengthRecord.forEach(function(obj){var myObj=getValue(_objectSpread({},obj));variableObj[myObj[0]]=myObj[1];if(myObj[0]==='UserId'&&myObj[1]==='LASF_Projection'){projectionStart=currentByte-18+54;}});variableRecords.push(variableObj);};while(variableLengthRecords--){_loop12();}var geoRecord=variableRecords.find(function(x){return x.UserId==='LASF_Projection';});var epsg=getGeoKeys(geoRecord);if(epsg){publicHeaderBlock['epsg']=epsg;}return publicHeaderBlock;};return getValues();};var bufferFlipper=function bufferFlipper(buf){var ab=new ArrayBuffer(buf.length);var view=new Uint8Array(ab);for(var _i668=0;_i668<buf.length;++_i668){view[_i668]=buf[_i668];}return ab;};var uint8arrayToString=function uint8arrayToString(array){var str='';array.forEach(function(item){var c=String.fromCharCode(item);if(c!=="\0"){str+=c;}});return str.trim();};var MAX_VERTICES=500000;// TODO: Rough estimate
32967
+ */var loadLASHeader=function loadLASHeader(arrayBuffer){var currentByte=0;var numOfVarLenRecords=0;var projectionStart=0;var dataView=new DataView(arrayBuffer);var buffer=new Uint8Array(6000);var getGeoKeys=function getGeoKeys(geoRecord){if(geoRecord===undefined){return undefined;}var projectionEnd=projectionStart+geoRecord["RecordLengthAfterHeader"];var geoTag=buffer.slice(projectionStart,projectionEnd);var arrayBuffer=bufferFlipper(geoTag);var dataView=new DataView(arrayBuffer);var byteCount=6;var numberOfKeys=Number(dataView.getUint16(byteCount,true));var geoKeys=[];while(numberOfKeys--){var keyTmp={};keyTmp.key=dataView.getUint16(byteCount+=2,true);keyTmp.tiffTagLocation=dataView.getUint16(byteCount+=2,true);keyTmp.count=dataView.getUint16(byteCount+=2,true);keyTmp.valueOffset=dataView.getUint16(byteCount+=2,true);geoKeys.push(keyTmp);}var projRecord=geoKeys.find(function(x){return x.key===3072;});if(projRecord&&projRecord.hasOwnProperty('valueOffset')){var epsg=projRecord.valueOffset;{return epsg;}}return undefined;};var getValue=function getValue(_ref32){var item=_ref32.item,format=_ref32.format,size=_ref32.size;var str,array;switch(format){case'char':array=new Uint8Array(arrayBuffer,currentByte,size);currentByte+=size;str=uint8arrayToString(array);return[item,str];case'uShort':str=dataView.getUint16(currentByte,true);currentByte+=size;return[item,str];case'uLong':str=dataView.getUint32(currentByte,true);if(item==='NumberOfVariableLengthRecords'){numOfVarLenRecords=str;}currentByte+=size;return[item,str];case'uChar':str=dataView.getUint8(currentByte);currentByte+=size;return[item,str];case'double':str=dataView.getFloat64(currentByte,true);currentByte+=size;return[item,str];default:currentByte+=size;}};var getValues=function getValues(){var publicHeaderBlock={};headerBlockItems.forEach(function(obj){var myObj=getValue(_objectSpread({},obj));if(myObj!==undefined){if(myObj[0]==='FileSignature'&&myObj[1]!=='LASF'){throw new Error('Ivalid FileSignature. Is this a LAS/LAZ file');}publicHeaderBlock[myObj[0]]=myObj[1];}});var variableRecords=[];var variableLengthRecords=numOfVarLenRecords;var _loop12=function _loop12(){var variableObj={};variableLengthRecord.forEach(function(obj){var myObj=getValue(_objectSpread({},obj));variableObj[myObj[0]]=myObj[1];if(myObj[0]==='UserId'&&myObj[1]==='LASF_Projection'){projectionStart=currentByte-18+54;}});variableRecords.push(variableObj);};while(variableLengthRecords--){_loop12();}var geoRecord=variableRecords.find(function(x){return x.UserId==='LASF_Projection';});var epsg=getGeoKeys(geoRecord);if(epsg){publicHeaderBlock['epsg']=epsg;}return publicHeaderBlock;};return getValues();};var bufferFlipper=function bufferFlipper(buf){var ab=new ArrayBuffer(buf.length);var view=new Uint8Array(ab);for(var _i667=0;_i667<buf.length;++_i667){view[_i667]=buf[_i667];}return ab;};var uint8arrayToString=function uint8arrayToString(array){var str='';array.forEach(function(item){var c=String.fromCharCode(item);if(c!=="\0"){str+=c;}});return str.trim();};var MAX_VERTICES=500000;// TODO: Rough estimate
32958
32968
  /**
32959
32969
  * {@link Viewer} plugin that loads lidar point cloud geometry from LAS files.
32960
32970
  *
@@ -33293,7 +33303,7 @@ var headerBlockItems=[{item:'FileSignature',format:'char',size:4},{item:'FileSou
33293
33303
  sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
33294
33304
  });spinner.processes--;};var error=function error(errMsg){spinner.processes--;_this187.error(errMsg);sceneModel.fire("error",errMsg);};if(params.src){this._loadModel(params.src,params,options,sceneModel);}else if(params.las){spinner.processes++;this._parseModel(params.las,params,options,sceneModel).then(done,error);}else if(params.manifest||params.manifestSrc){var baseDir=params.manifestSrc?getBaseDirectory(params.manifestSrc):"";var loadAllFiles=function loadAllFiles(lasFiles){var i=0;var modelsLoaded=new Array(lasFiles.length);var loadNext=function loadNext(){if(sceneModel.destroyed){done();}else if(i>=lasFiles.length){return;}else{modelsLoaded[i]=false;_this187._dataSource.getLAS("".concat(baseDir).concat(lasFiles[i]),function(arrayBuffer){var modelParams=utils.apply(params,{isManifest:true,index:i});_this187._parseModel(arrayBuffer,modelParams,options,sceneModel).then(function(){modelsLoaded[modelParams.index]=true;var allLoaded=true;modelsLoaded.forEach(function(loaded){if(!loaded)allLoaded=false;});if(allLoaded)done();});i++;_this187.scheduleTask(loadNext,200);},error);}};loadNext();};var loadManifestData=function loadManifestData(manifestData){if(sceneModel.destroyed)return;var files=manifestData.lasFiles||manifestData.lazFiles;if(!files||files.length<=0){_this187.error("load(): Failed to load model manifest - manifest not valid");return;}loadAllFiles(files);};if(params.manifestSrc){this._dataSource.getManifest(params.manifestSrc,function(manifestData){loadManifestData(manifestData);},function(errMsg){_this187.error(errMsg);sceneModel.fire("error",errMsg);});}else{var manifestData=params.manifest;loadManifestData(manifestData);}}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,params,options,sceneModel){var _this188=this;var spinner=this.viewer.scene.canvas.spinner;spinner.processes++;this._dataSource.getLAS(params.src,function(arrayBuffer){_this188._parseModel(arrayBuffer,params,options,sceneModel).then(function(){sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
33295
33305
  sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
33296
- });spinner.processes--;},function(errMsg){spinner.processes--;_this188.error(errMsg);sceneModel.fire("error",errMsg);});},function(errMsg){spinner.processes--;_this188.error(errMsg);sceneModel.fire("error",errMsg);});}},{key:"_parseModel",value:function _parseModel(arrayBuffer,params,options,sceneModel){var _this189=this;var readPositions=function readPositions(attributesPosition){var positionsValue=attributesPosition.value;if(_this189._center){var centerPos=math.vec3();var numPoints=positionsValue.length;for(var _i669=0,len=positionsValue.length;_i669<len;_i669+=3){centerPos[0]+=positionsValue[_i669+0];centerPos[1]+=positionsValue[_i669+1];centerPos[2]+=positionsValue[_i669+2];}centerPos[0]/=numPoints;centerPos[1]/=numPoints;centerPos[2]/=numPoints;for(var _i670=0,_len129=positionsValue.length;_i670<_len129;_i670+=3){positionsValue[_i670+0]-=centerPos[0];positionsValue[_i670+1]-=centerPos[1];positionsValue[_i670+2]-=centerPos[2];}}if(_this189._rotateX){if(positionsValue){for(var _i671=0,_len130=positionsValue.length;_i671<_len130;_i671+=3){var temp=positionsValue[_i671+1];positionsValue[_i671+1]=positionsValue[_i671+2];positionsValue[_i671+2]=temp;}}}if(_this189._rotate){var quaternion=math.identityQuaternion();var mat=math.mat4();math.eulerToQuaternion(_this189._rotate,"XYZ",quaternion);math.quaternionToRotationMat4(quaternion,mat);var pos=math.vec3();for(var _i672=0,_len131=positionsValue.length;_i672<_len131;_i672+=3){pos[0]=positionsValue[_i672+0];pos[1]=positionsValue[_i672+1];pos[2]=positionsValue[_i672+2];math.transformPoint3(mat,pos,pos);positionsValue[_i672+0]=pos[0];positionsValue[_i672+1]=pos[1];positionsValue[_i672+2]=pos[2];}}if(_this189._transform){var _mat=math.mat4(_this189._transform);var _pos=math.vec3();for(var _i673=0,_len132=positionsValue.length;_i673<_len132;_i673+=3){_pos[0]=positionsValue[_i673+0];_pos[1]=positionsValue[_i673+1];_pos[2]=positionsValue[_i673+2];math.transformPoint3(_mat,_pos,_pos);positionsValue[_i673+0]=_pos[0];positionsValue[_i673+1]=_pos[1];positionsValue[_i673+2]=_pos[2];}}return positionsValue;};function readColorsAndIntensities(attributesColor,attributesIntensity){var colors=attributesColor.value;var colorSize=attributesColor.size;var intensities=attributesIntensity.value;var colorsCompressedSize=intensities.length*4;var colorsCompressed=new Uint8Array(colorsCompressedSize);for(var _i674=0,j=0,k=0,len=intensities.length;_i674<len;_i674++,k+=colorSize,j+=4){colorsCompressed[j+0]=colors[k+0];colorsCompressed[j+1]=colors[k+1];colorsCompressed[j+2]=colors[k+2];colorsCompressed[j+3]=Math.round(intensities[_i674]/65536*255);}return colorsCompressed;}function readIntensities(attributesIntensity){var intensities=attributesIntensity.value;var colorsCompressedSize=intensities.length*4;var colorsCompressed=new Uint8Array(colorsCompressedSize);for(var _i675=0,j=0,len=intensities.length;_i675<len;_i675++,j+=4){colorsCompressed[j+0]=0;colorsCompressed[j+1]=0;colorsCompressed[j+2]=0;colorsCompressed[j+3]=Math.round(intensities[_i675]/65536*255);}return colorsCompressed;}return new Promise(function(resolve,reject){if(sceneModel.destroyed){reject();return;}var stats=params.stats||{};stats.sourceFormat="LAS";stats.schemaVersion="";stats.title="";stats.author="";stats.created="";stats.numMetaObjects=0;stats.numPropertySets=0;stats.numObjects=0;stats.numGeometries=0;stats.numTriangles=0;stats.numVertices=0;try{var lasHeader=loadLASHeader(arrayBuffer);parse$3(arrayBuffer,LASLoader,options).then(function(parsedData){var attributes=parsedData.attributes;var loaderData=parsedData.loaderData;var pointsFormatId=loaderData.pointsFormatId!==undefined?loaderData.pointsFormatId:-1;if(!attributes.POSITION){sceneModel.finalize();reject("No positions found in file");return;}var positionsValue;var colorsCompressed;switch(pointsFormatId){case 0:positionsValue=readPositions(attributes.POSITION);colorsCompressed=readIntensities(attributes.intensity);break;case 1:if(!attributes.intensity){sceneModel.finalize();reject("No positions found in file");return;}positionsValue=readPositions(attributes.POSITION);colorsCompressed=readIntensities(attributes.intensity);break;case 2:if(!attributes.intensity){sceneModel.finalize();reject("No positions found in file");return;}positionsValue=readPositions(attributes.POSITION);colorsCompressed=readColorsAndIntensities(attributes.COLOR_0,attributes.intensity);break;case 3:if(!attributes.intensity){sceneModel.finalize();reject("No positions found in file");return;}positionsValue=readPositions(attributes.POSITION);colorsCompressed=readColorsAndIntensities(attributes.COLOR_0,attributes.intensity);break;}var pointsChunks=chunkArray(positionsValue,MAX_VERTICES*3);var colorsChunks=chunkArray(colorsCompressed,MAX_VERTICES*4);var meshIds=[];for(var _i676=0,len=pointsChunks.length;_i676<len;_i676++){var meshId="".concat(params.isManifest?'model'+params.index:'',"pointsMesh").concat(_i676);meshIds.push(meshId);sceneModel.createMesh({id:meshId,primitive:"points",positions:pointsChunks[_i676],colorsCompressed:_i676<colorsChunks.length?colorsChunks[_i676]:null});}var pointsObjectId=params.entityId||math.createUUID();sceneModel.createEntity({id:pointsObjectId,meshIds:meshIds,isObject:true});sceneModel.finalize();if(params.metaModelJSON){var metaModelId=sceneModel.id;_this189.viewer.metaScene.createMetaModel(metaModelId,params.metaModelJSON,options);}else if(params.loadMetadata!==false){var rootMetaObjectId=math.createUUID();var metadata={projectId:"",author:"",createdAt:"",schema:"",creatingApplication:"",metaObjects:[{id:rootMetaObjectId,name:"Model",type:"Model"},{id:pointsObjectId,name:"PointCloud (LAS)",type:"PointCloud",parent:rootMetaObjectId,attributes:lasHeader||{}}],propertySets:[]};var _metaModelId=sceneModel.id;_this189.viewer.metaScene.createMetaModel(_metaModelId,metadata,options);}resolve();});}catch(e){sceneModel.finalize();reject(e);}});}}]);return LASLoaderPlugin;}(Plugin);function chunkArray(array,chunkSize){if(chunkSize>=array.length){return[array];}var result=[];for(var _i677=0;_i677<array.length;_i677+=chunkSize){result.push(array.slice(_i677,_i677+chunkSize));}return result;}function getBaseDirectory(filePath){if(filePath.indexOf('?')>-1){filePath=filePath.split('?')[0];}var pathArray=filePath.split('/');pathArray.pop();// Remove the file name or the last segment of the path
33306
+ });spinner.processes--;},function(errMsg){spinner.processes--;_this188.error(errMsg);sceneModel.fire("error",errMsg);});},function(errMsg){spinner.processes--;_this188.error(errMsg);sceneModel.fire("error",errMsg);});}},{key:"_parseModel",value:function _parseModel(arrayBuffer,params,options,sceneModel){var _this189=this;var readPositions=function readPositions(attributesPosition){var positionsValue=attributesPosition.value;if(_this189._center){var centerPos=math.vec3();var numPoints=positionsValue.length;for(var _i668=0,len=positionsValue.length;_i668<len;_i668+=3){centerPos[0]+=positionsValue[_i668+0];centerPos[1]+=positionsValue[_i668+1];centerPos[2]+=positionsValue[_i668+2];}centerPos[0]/=numPoints;centerPos[1]/=numPoints;centerPos[2]/=numPoints;for(var _i669=0,_len129=positionsValue.length;_i669<_len129;_i669+=3){positionsValue[_i669+0]-=centerPos[0];positionsValue[_i669+1]-=centerPos[1];positionsValue[_i669+2]-=centerPos[2];}}if(_this189._rotateX){if(positionsValue){for(var _i670=0,_len130=positionsValue.length;_i670<_len130;_i670+=3){var temp=positionsValue[_i670+1];positionsValue[_i670+1]=positionsValue[_i670+2];positionsValue[_i670+2]=temp;}}}if(_this189._rotate){var quaternion=math.identityQuaternion();var mat=math.mat4();math.eulerToQuaternion(_this189._rotate,"XYZ",quaternion);math.quaternionToRotationMat4(quaternion,mat);var pos=math.vec3();for(var _i671=0,_len131=positionsValue.length;_i671<_len131;_i671+=3){pos[0]=positionsValue[_i671+0];pos[1]=positionsValue[_i671+1];pos[2]=positionsValue[_i671+2];math.transformPoint3(mat,pos,pos);positionsValue[_i671+0]=pos[0];positionsValue[_i671+1]=pos[1];positionsValue[_i671+2]=pos[2];}}if(_this189._transform){var _mat=math.mat4(_this189._transform);var _pos=math.vec3();for(var _i672=0,_len132=positionsValue.length;_i672<_len132;_i672+=3){_pos[0]=positionsValue[_i672+0];_pos[1]=positionsValue[_i672+1];_pos[2]=positionsValue[_i672+2];math.transformPoint3(_mat,_pos,_pos);positionsValue[_i672+0]=_pos[0];positionsValue[_i672+1]=_pos[1];positionsValue[_i672+2]=_pos[2];}}return positionsValue;};function readColorsAndIntensities(attributesColor,attributesIntensity){var colors=attributesColor.value;var colorSize=attributesColor.size;var intensities=attributesIntensity.value;var colorsCompressedSize=intensities.length*4;var colorsCompressed=new Uint8Array(colorsCompressedSize);for(var _i673=0,j=0,k=0,len=intensities.length;_i673<len;_i673++,k+=colorSize,j+=4){colorsCompressed[j+0]=colors[k+0];colorsCompressed[j+1]=colors[k+1];colorsCompressed[j+2]=colors[k+2];colorsCompressed[j+3]=Math.round(intensities[_i673]/65536*255);}return colorsCompressed;}function readIntensities(attributesIntensity){var intensities=attributesIntensity.value;var colorsCompressedSize=intensities.length*4;var colorsCompressed=new Uint8Array(colorsCompressedSize);for(var _i674=0,j=0,len=intensities.length;_i674<len;_i674++,j+=4){colorsCompressed[j+0]=0;colorsCompressed[j+1]=0;colorsCompressed[j+2]=0;colorsCompressed[j+3]=Math.round(intensities[_i674]/65536*255);}return colorsCompressed;}return new Promise(function(resolve,reject){if(sceneModel.destroyed){reject();return;}var stats=params.stats||{};stats.sourceFormat="LAS";stats.schemaVersion="";stats.title="";stats.author="";stats.created="";stats.numMetaObjects=0;stats.numPropertySets=0;stats.numObjects=0;stats.numGeometries=0;stats.numTriangles=0;stats.numVertices=0;try{var lasHeader=loadLASHeader(arrayBuffer);parse$3(arrayBuffer,LASLoader,options).then(function(parsedData){var attributes=parsedData.attributes;var loaderData=parsedData.loaderData;var pointsFormatId=loaderData.pointsFormatId!==undefined?loaderData.pointsFormatId:-1;if(!attributes.POSITION){sceneModel.finalize();reject("No positions found in file");return;}var positionsValue;var colorsCompressed;switch(pointsFormatId){case 0:positionsValue=readPositions(attributes.POSITION);colorsCompressed=readIntensities(attributes.intensity);break;case 1:if(!attributes.intensity){sceneModel.finalize();reject("No positions found in file");return;}positionsValue=readPositions(attributes.POSITION);colorsCompressed=readIntensities(attributes.intensity);break;case 2:if(!attributes.intensity){sceneModel.finalize();reject("No positions found in file");return;}positionsValue=readPositions(attributes.POSITION);colorsCompressed=readColorsAndIntensities(attributes.COLOR_0,attributes.intensity);break;case 3:if(!attributes.intensity){sceneModel.finalize();reject("No positions found in file");return;}positionsValue=readPositions(attributes.POSITION);colorsCompressed=readColorsAndIntensities(attributes.COLOR_0,attributes.intensity);break;}var pointsChunks=chunkArray(positionsValue,MAX_VERTICES*3);var colorsChunks=chunkArray(colorsCompressed,MAX_VERTICES*4);var meshIds=[];for(var _i675=0,len=pointsChunks.length;_i675<len;_i675++){var meshId="".concat(params.isManifest?'model'+params.index:'',"pointsMesh").concat(_i675);meshIds.push(meshId);sceneModel.createMesh({id:meshId,primitive:"points",positions:pointsChunks[_i675],colorsCompressed:_i675<colorsChunks.length?colorsChunks[_i675]:null});}var pointsObjectId=params.entityId||math.createUUID();sceneModel.createEntity({id:pointsObjectId,meshIds:meshIds,isObject:true});sceneModel.finalize();if(params.metaModelJSON){var metaModelId=sceneModel.id;_this189.viewer.metaScene.createMetaModel(metaModelId,params.metaModelJSON,options);}else if(params.loadMetadata!==false){var rootMetaObjectId=math.createUUID();var metadata={projectId:"",author:"",createdAt:"",schema:"",creatingApplication:"",metaObjects:[{id:rootMetaObjectId,name:"Model",type:"Model"},{id:pointsObjectId,name:"PointCloud (LAS)",type:"PointCloud",parent:rootMetaObjectId,attributes:lasHeader||{}}],propertySets:[]};var _metaModelId=sceneModel.id;_this189.viewer.metaScene.createMetaModel(_metaModelId,metadata,options);}resolve();});}catch(e){sceneModel.finalize();reject(e);}});}}]);return LASLoaderPlugin;}(Plugin);function chunkArray(array,chunkSize){if(chunkSize>=array.length){return[array];}var result=[];for(var _i676=0;_i676<array.length;_i676+=chunkSize){result.push(array.slice(_i676,_i676+chunkSize));}return result;}function getBaseDirectory(filePath){if(filePath.indexOf('?')>-1){filePath=filePath.split('?')[0];}var pathArray=filePath.split('/');pathArray.pop();// Remove the file name or the last segment of the path
33297
33307
  return pathArray.join('/')+'/';}/**
33298
33308
  * Default data access strategy for {@link CityJSONLoaderPlugin}.
33299
33309
  */var CityJSONDefaultDataSource=/*#__PURE__*/function(){function CityJSONDefaultDataSource(){var cfg=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};_classCallCheck(this,CityJSONDefaultDataSource);this.cacheBuster=cfg.cacheBuster!==false;}_createClass(CityJSONDefaultDataSource,[{key:"_cacheBusterURL",value:function _cacheBusterURL(url){if(!this.cacheBuster){return url;}var timestamp=new Date().getTime();if(url.indexOf('?')>-1){return url+'&_='+timestamp;}else{return url+'?_='+timestamp;}}/**
@@ -33446,16 +33456,16 @@ return pathArray.join('/')+'/';}/**
33446
33456
  */},{key:"load",value:function load(){var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(params.id&&this.viewer.scene.components[params.id]){this.error("Component with this ID already exists in viewer: "+params.id+" - will autogenerate this ID");delete params.id;}var sceneModel=new SceneModel(this.viewer.scene,utils.apply(params,{isModel:true,edges:true}));if(!params.src&&!params.cityJSON){this.error("load() param expected: src or cityJSON");return sceneModel;// Return new empty model
33447
33457
  }var options={};if(params.src){this._loadModel(params.src,params,options,sceneModel);}else{var spinner=this.viewer.scene.canvas.spinner;spinner.processes++;this._parseModel(params.cityJSON,params,options,sceneModel);spinner.processes--;}return sceneModel;}},{key:"_loadModel",value:function _loadModel(src,params,options,sceneModel){var _this191=this;var spinner=this.viewer.scene.canvas.spinner;spinner.processes++;this._dataSource.getCityJSON(params.src,function(data){_this191._parseModel(data,params,options,sceneModel);spinner.processes--;},function(errMsg){spinner.processes--;_this191.error(errMsg);sceneModel.fire("error",errMsg);});}},{key:"_parseModel",value:function _parseModel(data,params,options,sceneModel){if(sceneModel.destroyed){return;}var vertices=data.transform?this._transformVertices(data.vertices,data.transform,options.rotateX):data.vertices;var stats=params.stats||{};stats.sourceFormat=data.type||"CityJSON";stats.schemaVersion=data.version||"";stats.title="";stats.author="";stats.created="";stats.numMetaObjects=0;stats.numPropertySets=0;stats.numObjects=0;stats.numGeometries=0;stats.numTriangles=0;stats.numVertices=0;var loadMetadata=params.loadMetadata!==false;var rootMetaObject=loadMetadata?{id:math.createUUID(),name:"Model",type:"Model"}:null;var metadata=loadMetadata?{id:"",projectId:"",author:"",createdAt:"",schema:data.version||"",creatingApplication:"",metaObjects:[rootMetaObject],propertySets:[]}:null;var ctx={data:data,vertices:vertices,sceneModel:sceneModel,loadMetadata:loadMetadata,metadata:metadata,rootMetaObject:rootMetaObject,nextId:0,stats:stats};this._parseCityJSON(ctx);sceneModel.finalize();if(loadMetadata){var metaModelId=sceneModel.id;this.viewer.metaScene.createMetaModel(metaModelId,ctx.metadata,options);}sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
33448
33458
  sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
33449
- });}},{key:"_transformVertices",value:function _transformVertices(vertices,transform,rotateX){var transformedVertices=[];var scale=transform.scale||math.vec3([1,1,1]);var translate=transform.translate||math.vec3([0,0,0]);for(var _i678=0,j=0;_i678<vertices.length;_i678++,j+=3){var x=vertices[_i678][0]*scale[0]+translate[0];var y=vertices[_i678][1]*scale[1]+translate[1];var _z5=vertices[_i678][2]*scale[2]+translate[2];if(rotateX){transformedVertices.push([x,_z5,y]);}else{transformedVertices.push([x,y,_z5]);}}return transformedVertices;}},{key:"_parseCityJSON",value:function _parseCityJSON(ctx){var data=ctx.data;var cityObjects=data.CityObjects;for(var objectId in cityObjects){if(cityObjects.hasOwnProperty(objectId)){var cityObject=cityObjects[objectId];this._parseCityObject(ctx,cityObject,objectId);}}}},{key:"_parseCityObject",value:function _parseCityObject(ctx,cityObject,objectId){var sceneModel=ctx.sceneModel;var data=ctx.data;if(ctx.loadMetadata){var metaObjectId=objectId;var metaObjectType=cityObject.type;var metaObjectName=metaObjectType+" : "+objectId;var parentMetaObjectId=cityObject.parents?cityObject.parents[0]:ctx.rootMetaObject.id;ctx.metadata.metaObjects.push({id:metaObjectId,name:metaObjectName,type:metaObjectType,parent:parentMetaObjectId});}ctx.stats.numMetaObjects++;if(!(cityObject.geometry&&cityObject.geometry.length>0)){return;}var meshIds=[];for(var _i679=0,len=cityObject.geometry.length;_i679<len;_i679++){var geometry=cityObject.geometry[_i679];var objectMaterial=void 0;var surfaceMaterials=void 0;var appearance=data.appearance;if(appearance){var materials=appearance.materials;if(materials){var geometryMaterial=geometry.material;if(geometryMaterial){var themeIds=Object.keys(geometryMaterial);if(themeIds.length>0){var themeId=themeIds[0];var theme=geometryMaterial[themeId];if(theme.value!==undefined){objectMaterial=materials[theme.value];}else{var values=theme.values;if(values){surfaceMaterials=[];for(var j=0,lenj=values.length;j<lenj;j++){var value=values[_i679];var surfaceMaterial=materials[value];surfaceMaterials.push(surfaceMaterial);}}}}}}}if(surfaceMaterials){this._parseGeometrySurfacesWithOwnMaterials(ctx,geometry,surfaceMaterials,meshIds);}else{this._parseGeometrySurfacesWithSharedMaterial(ctx,geometry,objectMaterial,meshIds);}}if(meshIds.length>0){sceneModel.createEntity({id:objectId,meshIds:meshIds,isObject:true});ctx.stats.numObjects++;}}},{key:"_parseGeometrySurfacesWithOwnMaterials",value:function _parseGeometrySurfacesWithOwnMaterials(ctx,geometry,surfaceMaterials,meshIds){var geomType=geometry.type;switch(geomType){case"MultiPoint":break;case"MultiLineString":break;case"MultiSurface":case"CompositeSurface":var surfaces=geometry.boundaries;this._parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,surfaces,meshIds);break;case"Solid":var shells=geometry.boundaries;for(var j=0;j<shells.length;j++){var _surfaces=shells[j];this._parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,_surfaces,meshIds);}break;case"MultiSolid":case"CompositeSolid":var solids=geometry.boundaries;for(var _j6=0;_j6<solids.length;_j6++){for(var k=0;k<solids[_j6].length;k++){var _surfaces2=solids[_j6][k];this._parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,_surfaces2,meshIds);}}break;}}},{key:"_parseSurfacesWithOwnMaterials",value:function _parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,surfaces,meshIds){var vertices=ctx.vertices;var sceneModel=ctx.sceneModel;for(var _i680=0;_i680<surfaces.length;_i680++){var surface=surfaces[_i680];var surfaceMaterial=surfaceMaterials[_i680]||{diffuseColor:[0.8,0.8,0.8],transparency:1.0};var face=[];var holes=[];var sharedIndices=[];var geometryCfg={positions:[],indices:[]};for(var j=0;j<surface.length;j++){if(face.length>0){holes.push(face.length);}var newFace=this._extractLocalIndices(ctx,surface[j],sharedIndices,geometryCfg);face.push.apply(face,_toConsumableArray(newFace));}if(face.length===3){// Triangle
33459
+ });}},{key:"_transformVertices",value:function _transformVertices(vertices,transform,rotateX){var transformedVertices=[];var scale=transform.scale||math.vec3([1,1,1]);var translate=transform.translate||math.vec3([0,0,0]);for(var _i677=0,j=0;_i677<vertices.length;_i677++,j+=3){var x=vertices[_i677][0]*scale[0]+translate[0];var y=vertices[_i677][1]*scale[1]+translate[1];var _z5=vertices[_i677][2]*scale[2]+translate[2];if(rotateX){transformedVertices.push([x,_z5,y]);}else{transformedVertices.push([x,y,_z5]);}}return transformedVertices;}},{key:"_parseCityJSON",value:function _parseCityJSON(ctx){var data=ctx.data;var cityObjects=data.CityObjects;for(var objectId in cityObjects){if(cityObjects.hasOwnProperty(objectId)){var cityObject=cityObjects[objectId];this._parseCityObject(ctx,cityObject,objectId);}}}},{key:"_parseCityObject",value:function _parseCityObject(ctx,cityObject,objectId){var sceneModel=ctx.sceneModel;var data=ctx.data;if(ctx.loadMetadata){var metaObjectId=objectId;var metaObjectType=cityObject.type;var metaObjectName=metaObjectType+" : "+objectId;var parentMetaObjectId=cityObject.parents?cityObject.parents[0]:ctx.rootMetaObject.id;ctx.metadata.metaObjects.push({id:metaObjectId,name:metaObjectName,type:metaObjectType,parent:parentMetaObjectId});}ctx.stats.numMetaObjects++;if(!(cityObject.geometry&&cityObject.geometry.length>0)){return;}var meshIds=[];for(var _i678=0,len=cityObject.geometry.length;_i678<len;_i678++){var geometry=cityObject.geometry[_i678];var objectMaterial=void 0;var surfaceMaterials=void 0;var appearance=data.appearance;if(appearance){var materials=appearance.materials;if(materials){var geometryMaterial=geometry.material;if(geometryMaterial){var themeIds=Object.keys(geometryMaterial);if(themeIds.length>0){var themeId=themeIds[0];var theme=geometryMaterial[themeId];if(theme.value!==undefined){objectMaterial=materials[theme.value];}else{var values=theme.values;if(values){surfaceMaterials=[];for(var j=0,lenj=values.length;j<lenj;j++){var value=values[_i678];var surfaceMaterial=materials[value];surfaceMaterials.push(surfaceMaterial);}}}}}}}if(surfaceMaterials){this._parseGeometrySurfacesWithOwnMaterials(ctx,geometry,surfaceMaterials,meshIds);}else{this._parseGeometrySurfacesWithSharedMaterial(ctx,geometry,objectMaterial,meshIds);}}if(meshIds.length>0){sceneModel.createEntity({id:objectId,meshIds:meshIds,isObject:true});ctx.stats.numObjects++;}}},{key:"_parseGeometrySurfacesWithOwnMaterials",value:function _parseGeometrySurfacesWithOwnMaterials(ctx,geometry,surfaceMaterials,meshIds){var geomType=geometry.type;switch(geomType){case"MultiPoint":break;case"MultiLineString":break;case"MultiSurface":case"CompositeSurface":var surfaces=geometry.boundaries;this._parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,surfaces,meshIds);break;case"Solid":var shells=geometry.boundaries;for(var j=0;j<shells.length;j++){var _surfaces=shells[j];this._parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,_surfaces,meshIds);}break;case"MultiSolid":case"CompositeSolid":var solids=geometry.boundaries;for(var _j6=0;_j6<solids.length;_j6++){for(var k=0;k<solids[_j6].length;k++){var _surfaces2=solids[_j6][k];this._parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,_surfaces2,meshIds);}}break;}}},{key:"_parseSurfacesWithOwnMaterials",value:function _parseSurfacesWithOwnMaterials(ctx,surfaceMaterials,surfaces,meshIds){var vertices=ctx.vertices;var sceneModel=ctx.sceneModel;for(var _i679=0;_i679<surfaces.length;_i679++){var surface=surfaces[_i679];var surfaceMaterial=surfaceMaterials[_i679]||{diffuseColor:[0.8,0.8,0.8],transparency:1.0};var face=[];var holes=[];var sharedIndices=[];var geometryCfg={positions:[],indices:[]};for(var j=0;j<surface.length;j++){if(face.length>0){holes.push(face.length);}var newFace=this._extractLocalIndices(ctx,surface[j],sharedIndices,geometryCfg);face.push.apply(face,_toConsumableArray(newFace));}if(face.length===3){// Triangle
33450
33460
  geometryCfg.indices.push(face[0]);geometryCfg.indices.push(face[1]);geometryCfg.indices.push(face[2]);}else if(face.length>3){// Polygon
33451
33461
  // Prepare to triangulate
33452
33462
  var pList=[];for(var k=0;k<face.length;k++){pList.push({x:vertices[sharedIndices[face[k]]][0],y:vertices[sharedIndices[face[k]]][1],z:vertices[sharedIndices[face[k]]][2]});}var normal=this._getNormalOfPositions(pList,math.vec3());// Convert to 2D
33453
33463
  var pv=[];for(var _k3=0;_k3<pList.length;_k3++){this._to2D(pList[_k3],normal,tempVec2a);pv.unshift(tempVec2a[0]);pv.unshift(tempVec2a[1]);}// Triangulate
33454
33464
  var tr=earcut(pv,holes,2);// Create triangles
33455
33465
  for(var _k4=0;_k4<tr.length;_k4+=3){geometryCfg.indices.unshift(face[tr[_k4]]);geometryCfg.indices.unshift(face[tr[_k4+1]]);geometryCfg.indices.unshift(face[tr[_k4+2]]);}}var meshId=""+ctx.nextId++;sceneModel.createMesh({id:meshId,primitive:"triangles",positions:geometryCfg.positions,indices:geometryCfg.indices,color:surfaceMaterial&&surfaceMaterial.diffuseColor?surfaceMaterial.diffuseColor:[0.8,0.8,0.8],opacity:surfaceMaterial&&surfaceMaterial.transparency!==undefined?1.0-surfaceMaterial.transparency:1.0});meshIds.push(meshId);ctx.stats.numGeometries++;ctx.stats.numVertices+=geometryCfg.positions.length/3;ctx.stats.numTriangles+=geometryCfg.indices.length/3;}}},{key:"_parseGeometrySurfacesWithSharedMaterial",value:function _parseGeometrySurfacesWithSharedMaterial(ctx,geometry,objectMaterial,meshIds){var sceneModel=ctx.sceneModel;var sharedIndices=[];var geometryCfg={positions:[],indices:[]};var geomType=geometry.type;switch(geomType){case"MultiPoint":break;case"MultiLineString":break;case"MultiSurface":case"CompositeSurface":var surfaces=geometry.boundaries;this._parseSurfacesWithSharedMaterial(ctx,surfaces,sharedIndices,geometryCfg);break;case"Solid":var shells=geometry.boundaries;for(var j=0;j<shells.length;j++){var _surfaces3=shells[j];this._parseSurfacesWithSharedMaterial(ctx,_surfaces3,sharedIndices,geometryCfg);}break;case"MultiSolid":case"CompositeSolid":var solids=geometry.boundaries;for(var _j7=0;_j7<solids.length;_j7++){for(var k=0;k<solids[_j7].length;k++){var _surfaces4=solids[_j7][k];this._parseSurfacesWithSharedMaterial(ctx,_surfaces4,sharedIndices,geometryCfg);}}break;}if(geometryCfg.positions.length>0&&geometryCfg.indices.length>0){var meshId=""+ctx.nextId++;sceneModel.createMesh({id:meshId,primitive:"triangles",positions:geometryCfg.positions,indices:geometryCfg.indices,color:objectMaterial&&objectMaterial.diffuseColor?objectMaterial.diffuseColor:[0.8,0.8,0.8],opacity:1.0//opacity: (objectMaterial && objectMaterial.transparency !== undefined) ? (1.0 - objectMaterial.transparency) : 1.0
33456
- });meshIds.push(meshId);ctx.stats.numGeometries++;ctx.stats.numVertices+=geometryCfg.positions.length/3;ctx.stats.numTriangles+=geometryCfg.indices.length/3;}}},{key:"_parseSurfacesWithSharedMaterial",value:function _parseSurfacesWithSharedMaterial(ctx,surfaces,sharedIndices,primitiveCfg){var vertices=ctx.vertices;for(var _i681=0;_i681<surfaces.length;_i681++){var boundary=[];var holes=[];for(var j=0;j<surfaces[_i681].length;j++){if(boundary.length>0){holes.push(boundary.length);}var newBoundary=this._extractLocalIndices(ctx,surfaces[_i681][j],sharedIndices,primitiveCfg);boundary.push.apply(boundary,_toConsumableArray(newBoundary));}if(boundary.length===3){// Triangle
33466
+ });meshIds.push(meshId);ctx.stats.numGeometries++;ctx.stats.numVertices+=geometryCfg.positions.length/3;ctx.stats.numTriangles+=geometryCfg.indices.length/3;}}},{key:"_parseSurfacesWithSharedMaterial",value:function _parseSurfacesWithSharedMaterial(ctx,surfaces,sharedIndices,primitiveCfg){var vertices=ctx.vertices;for(var _i680=0;_i680<surfaces.length;_i680++){var boundary=[];var holes=[];for(var j=0;j<surfaces[_i680].length;j++){if(boundary.length>0){holes.push(boundary.length);}var newBoundary=this._extractLocalIndices(ctx,surfaces[_i680][j],sharedIndices,primitiveCfg);boundary.push.apply(boundary,_toConsumableArray(newBoundary));}if(boundary.length===3){// Triangle
33457
33467
  primitiveCfg.indices.push(boundary[0]);primitiveCfg.indices.push(boundary[1]);primitiveCfg.indices.push(boundary[2]);}else if(boundary.length>3){// Polygon
33458
- var pList=[];for(var k=0;k<boundary.length;k++){pList.push({x:vertices[sharedIndices[boundary[k]]][0],y:vertices[sharedIndices[boundary[k]]][1],z:vertices[sharedIndices[boundary[k]]][2]});}var normal=this._getNormalOfPositions(pList,math.vec3());var pv=[];for(var _k5=0;_k5<pList.length;_k5++){this._to2D(pList[_k5],normal,tempVec2a);pv.unshift(tempVec2a[0]);pv.unshift(tempVec2a[1]);}var tr=earcut(pv,holes,2);for(var _k6=0;_k6<tr.length;_k6+=3){primitiveCfg.indices.unshift(boundary[tr[_k6]]);primitiveCfg.indices.unshift(boundary[tr[_k6+1]]);primitiveCfg.indices.unshift(boundary[tr[_k6+2]]);}}}}},{key:"_extractLocalIndices",value:function _extractLocalIndices(ctx,boundary,sharedIndices,geometryCfg){var vertices=ctx.vertices;var newBoundary=[];for(var _i682=0,len=boundary.length;_i682<len;_i682++){var index=boundary[_i682];if(sharedIndices.includes(index)){var vertexIndex=sharedIndices.indexOf(index);newBoundary.push(vertexIndex);}else{geometryCfg.positions.push(vertices[index][0]);geometryCfg.positions.push(vertices[index][1]);geometryCfg.positions.push(vertices[index][2]);newBoundary.push(sharedIndices.length);sharedIndices.push(index);}}return newBoundary;}},{key:"_getNormalOfPositions",value:function _getNormalOfPositions(positions,normal){for(var _i683=0;_i683<positions.length;_i683++){var nexti=_i683+1;if(nexti===positions.length){nexti=0;}normal[0]+=(positions[_i683].y-positions[nexti].y)*(positions[_i683].z+positions[nexti].z);normal[1]+=(positions[_i683].z-positions[nexti].z)*(positions[_i683].x+positions[nexti].x);normal[2]+=(positions[_i683].x-positions[nexti].x)*(positions[_i683].y+positions[nexti].y);}return math.normalizeVec3(normal);}},{key:"_to2D",value:function _to2D(_p,_n,re){var p=tempVec3a;var n=tempVec3b;var x3=tempVec3c;p[0]=_p.x;p[1]=_p.y;p[2]=_p.z;n[0]=_n.x;n[1]=_n.y;n[2]=_n.z;x3[0]=1.1;x3[1]=1.1;x3[2]=1.1;var dist=math.lenVec3(math.subVec3(x3,n));if(dist<0.01){x3[0]+=1.0;x3[1]+=2.0;x3[2]+=3.0;}var dot=math.dotVec3(x3,n);var tmp2=math.mulVec3Scalar(n,dot,math.vec3());x3[0]-=tmp2[0];x3[1]-=tmp2[1];x3[2]-=tmp2[2];math.normalizeVec3(x3);var y3=math.cross3Vec3(n,x3,math.vec3());var x=math.dotVec3(p,x3);var y=math.dotVec3(p,y3);re[0]=x;re[1]=y;}}]);return CityJSONLoaderPlugin;}(Plugin);/**
33468
+ var pList=[];for(var k=0;k<boundary.length;k++){pList.push({x:vertices[sharedIndices[boundary[k]]][0],y:vertices[sharedIndices[boundary[k]]][1],z:vertices[sharedIndices[boundary[k]]][2]});}var normal=this._getNormalOfPositions(pList,math.vec3());var pv=[];for(var _k5=0;_k5<pList.length;_k5++){this._to2D(pList[_k5],normal,tempVec2a);pv.unshift(tempVec2a[0]);pv.unshift(tempVec2a[1]);}var tr=earcut(pv,holes,2);for(var _k6=0;_k6<tr.length;_k6+=3){primitiveCfg.indices.unshift(boundary[tr[_k6]]);primitiveCfg.indices.unshift(boundary[tr[_k6+1]]);primitiveCfg.indices.unshift(boundary[tr[_k6+2]]);}}}}},{key:"_extractLocalIndices",value:function _extractLocalIndices(ctx,boundary,sharedIndices,geometryCfg){var vertices=ctx.vertices;var newBoundary=[];for(var _i681=0,len=boundary.length;_i681<len;_i681++){var index=boundary[_i681];if(sharedIndices.includes(index)){var vertexIndex=sharedIndices.indexOf(index);newBoundary.push(vertexIndex);}else{geometryCfg.positions.push(vertices[index][0]);geometryCfg.positions.push(vertices[index][1]);geometryCfg.positions.push(vertices[index][2]);newBoundary.push(sharedIndices.length);sharedIndices.push(index);}}return newBoundary;}},{key:"_getNormalOfPositions",value:function _getNormalOfPositions(positions,normal){for(var _i682=0;_i682<positions.length;_i682++){var nexti=_i682+1;if(nexti===positions.length){nexti=0;}normal[0]+=(positions[_i682].y-positions[nexti].y)*(positions[_i682].z+positions[nexti].z);normal[1]+=(positions[_i682].z-positions[nexti].z)*(positions[_i682].x+positions[nexti].x);normal[2]+=(positions[_i682].x-positions[nexti].x)*(positions[_i682].y+positions[nexti].y);}return math.normalizeVec3(normal);}},{key:"_to2D",value:function _to2D(_p,_n,re){var p=tempVec3a;var n=tempVec3b;var x3=tempVec3c;p[0]=_p.x;p[1]=_p.y;p[2]=_p.z;n[0]=_n.x;n[1]=_n.y;n[2]=_n.z;x3[0]=1.1;x3[1]=1.1;x3[2]=1.1;var dist=math.lenVec3(math.subVec3(x3,n));if(dist<0.01){x3[0]+=1.0;x3[1]+=2.0;x3[2]+=3.0;}var dot=math.dotVec3(x3,n);var tmp2=math.mulVec3Scalar(n,dot,math.vec3());x3[0]-=tmp2[0];x3[1]-=tmp2[1];x3[2]-=tmp2[2];math.normalizeVec3(x3);var y3=math.cross3Vec3(n,x3,math.vec3());var x=math.dotVec3(p,x3);var y=math.dotVec3(p,y3);re[0]=x;re[1]=y;}}]);return CityJSONLoaderPlugin;}(Plugin);/**
33459
33469
  * Default data access strategy for {@link DotBIMLoaderPlugin}.
33460
33470
  *
33461
33471
  * This just loads assets using XMLHttpRequest.
@@ -33730,7 +33740,7 @@ var pList=[];for(var k=0;k<boundary.length;k++){pList.push({x:vertices[sharedInd
33730
33740
  * @returns {Entity} Entity representing the model, which will have {@link Entity#isModel} set ````true```` and will be registered by {@link Entity#id} in {@link Scene#models}
33731
33741
  */,set:function set(value){this._objectDefaults=value||IFCObjectDefaults;}},{key:"load",value:function load(){var _this193=this;var params=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};if(params.id&&this.viewer.scene.components[params.id]){this.error("Component with this ID already exists in viewer: "+params.id+" - will autogenerate this ID");delete params.id;}var sceneModel=new SceneModel(this.viewer.scene,utils.apply(params,{isModel:true,backfaces:params.backfaces,dtxEnabled:params.dtxEnabled,rotation:params.rotation,origin:params.origin}));var modelId=sceneModel.id;// In case ID was auto-generated
33732
33742
  if(!params.src&&!params.dotBIM){this.error("load() param expected: src or dotBIM");return sceneModel;// Return new empty model
33733
- }var objectDefaults=params.objectDefaults||this._objectDefaults||IFCObjectDefaults;var includeTypes;if(params.includeTypes){includeTypes={};for(var _i684=0,len=params.includeTypes.length;_i684<len;_i684++){includeTypes[params.includeTypes[_i684]]=true;}}var excludeTypes;if(params.excludeTypes){excludeTypes={};if(!includeTypes){includeTypes={};}for(var _i685=0,_len133=params.excludeTypes.length;_i685<_len133;_i685++){includeTypes[params.excludeTypes[_i685]]=true;}}var parseDotBIM=function parseDotBIM(ctx){var fileData=ctx.fileData;var sceneModel=ctx.sceneModel;var dbMeshLoaded={};var projectId=math.createUUID();var siteId=math.createUUID();var buildingId=math.createUUID();var buildingStoryId=math.createUUID();var metaModelData={metaObjects:[{id:projectId,name:"Project",type:"Project",parent:null},{id:siteId,name:"Site",type:"Site",parent:projectId},{id:buildingId,name:"Building",type:"Building",parent:siteId},{id:buildingStoryId,name:"BuildingStorey",type:"BuildingStorey",parent:buildingId}],propertySets:[]};var parseDBMesh=function parseDBMesh(dbMeshId,element){if(dbMeshLoaded[dbMeshId]){return;}var dbMesh=fileData.meshes.find(function(obj){return obj.mesh_id===element.mesh_id;});sceneModel.createGeometry({id:dbMeshId,primitive:"triangles",positions:dbMesh.coordinates,indices:dbMesh.indices});dbMeshLoaded[dbMeshId]=true;};var dbElements=fileData.elements;var _loop13=function _loop13(_i686,_len134){var element=dbElements[_i686];var elementType=element.type;if(excludeTypes&&excludeTypes[elementType]){return"continue";}if(includeTypes&&!includeTypes[elementType]){return"continue";}var info=element.info;var objectId=element.guid!==undefined?"".concat(element.guid):info!==undefined&&info.id!==undefined?info.id:_i686;var dbMeshId=element.mesh_id;var vector=element.vector;var rotation=element.rotation;var props=objectDefaults?objectDefaults[elementType]||objectDefaults["DEFAULT"]:null;var visible=true;var pickable=true;if(element.face_colors===undefined){parseDBMesh(dbMeshId,element);var meshId="".concat(objectId,"-mesh");var _color14=element.color?[element.color.r/255.0,element.color.g/255.0,element.color.b/255.0]:[1,1,1];var _opacity7=element.color?element.color.a/255.0:1.0;if(props){if(props.visible===false){visible=false;}if(props.pickable===false){pickable=false;}if(props.colorize){_color14=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){_opacity7=props.opacity;}}sceneModel.createMesh({id:meshId,geometryId:dbMeshId,color:_color14,opacity:_opacity7,quaternion:rotation&&(rotation.qz!==0||rotation.qy!==0||rotation.qx!==0||rotation.qw!==1.0)?[rotation.qx,rotation.qy,rotation.qz,rotation.qw]:undefined,position:vector?[vector.x,vector.y,vector.z]:undefined});sceneModel.createEntity({id:objectId,meshIds:[meshId],visible:visible,pickable:pickable,isObject:true});}else{var faceColors=element.face_colors;var coloredTrianglesDictionary={};var currentTriangleIndicesCount=0;var dbMesh=fileData.meshes.find(function(obj){return obj.mesh_id===element.mesh_id;});for(var _i687=0,_len135=faceColors.length;_i687<_len135;_i687+=4){var faceColor=[faceColors[_i687],faceColors[_i687+1],faceColors[_i687+2],faceColors[_i687+3]];if(coloredTrianglesDictionary[faceColor]===undefined){coloredTrianglesDictionary[faceColor]=[];}var indexForPoint0=dbMesh.indices[currentTriangleIndicesCount];var x0=dbMesh.coordinates[indexForPoint0*3];var y0=dbMesh.coordinates[indexForPoint0*3+1];var z0=dbMesh.coordinates[indexForPoint0*3+2];var indexForPoint1=dbMesh.indices[currentTriangleIndicesCount+1];var x1=dbMesh.coordinates[indexForPoint1*3];var y1=dbMesh.coordinates[indexForPoint1*3+1];var z1=dbMesh.coordinates[indexForPoint1*3+2];var indexForPoint2=dbMesh.indices[currentTriangleIndicesCount+2];var x2=dbMesh.coordinates[indexForPoint2*3];var y2=dbMesh.coordinates[indexForPoint2*3+1];var z2=dbMesh.coordinates[indexForPoint2*3+2];coloredTrianglesDictionary[faceColor].push(x0,y0,z0,x1,y1,z1,x2,y2,z2);currentTriangleIndicesCount+=3;}var meshIds=[];for(var _i688=0,_Object$entries8=Object.entries(coloredTrianglesDictionary);_i688<_Object$entries8.length;_i688++){var _Object$entries8$_i=_slicedToArray(_Object$entries8[_i688],2),_faceColor=_Object$entries8$_i[0],trianglesCoordinates=_Object$entries8$_i[1];sceneModel.createGeometry({id:"".concat(dbMeshId,"-").concat(_faceColor),primitive:"triangles",positions:trianglesCoordinates,indices:_toConsumableArray(Array(trianglesCoordinates.length/3).keys())});var _meshId3="".concat(objectId,"-mesh-").concat(_faceColor);var faceColorArray=_faceColor.split(',').map(Number);var _color15=[faceColorArray[0]/255.0,faceColorArray[1]/255.0,faceColorArray[2]/255.0];var _opacity8=faceColorArray[3]/255.0;if(props){if(props.visible===false){visible=false;}if(props.pickable===false){pickable=false;}if(props.colorize){_color15=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){_opacity8=props.opacity;}}sceneModel.createMesh({id:_meshId3,geometryId:"".concat(dbMeshId,"-").concat(_faceColor),color:_color15,opacity:_opacity8,quaternion:rotation&&(rotation.qz!==0||rotation.qy!==0||rotation.qx!==0||rotation.qw!==1.0)?[rotation.qx,rotation.qy,rotation.qz,rotation.qw]:undefined,position:vector?[vector.x,vector.y,vector.z]:undefined});meshIds.push(_meshId3);}sceneModel.createEntity({id:objectId,meshIds:meshIds,visible:visible,pickable:pickable,isObject:true});}var properties=[];for(var infoKey in info){properties.push({name:infoKey,value:info[infoKey]});}metaModelData.propertySets.push({id:objectId,name:"Properties",properties:properties});metaModelData.metaObjects.push({id:objectId,name:info&&info.Name&&info.Name!=="None"?info.Name:"".concat(element.type," ").concat(objectId),type:element.type,parent:buildingStoryId,propertySetIds:[objectId]});};for(var _i686=0,_len134=dbElements.length;_i686<_len134;_i686++){var _ret3=_loop13(_i686,_len134);if(_ret3==="continue")continue;}sceneModel.finalize();_this193.viewer.metaScene.createMetaModel(modelId,metaModelData);sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
33743
+ }var objectDefaults=params.objectDefaults||this._objectDefaults||IFCObjectDefaults;var includeTypes;if(params.includeTypes){includeTypes={};for(var _i683=0,len=params.includeTypes.length;_i683<len;_i683++){includeTypes[params.includeTypes[_i683]]=true;}}var excludeTypes;if(params.excludeTypes){excludeTypes={};if(!includeTypes){includeTypes={};}for(var _i684=0,_len133=params.excludeTypes.length;_i684<_len133;_i684++){includeTypes[params.excludeTypes[_i684]]=true;}}var parseDotBIM=function parseDotBIM(ctx){var fileData=ctx.fileData;var sceneModel=ctx.sceneModel;var dbMeshLoaded={};var projectId=math.createUUID();var siteId=math.createUUID();var buildingId=math.createUUID();var buildingStoryId=math.createUUID();var metaModelData={metaObjects:[{id:projectId,name:"Project",type:"Project",parent:null},{id:siteId,name:"Site",type:"Site",parent:projectId},{id:buildingId,name:"Building",type:"Building",parent:siteId},{id:buildingStoryId,name:"BuildingStorey",type:"BuildingStorey",parent:buildingId}],propertySets:[]};var parseDBMesh=function parseDBMesh(dbMeshId,element){if(dbMeshLoaded[dbMeshId]){return;}var dbMesh=fileData.meshes.find(function(obj){return obj.mesh_id===element.mesh_id;});sceneModel.createGeometry({id:dbMeshId,primitive:"triangles",positions:dbMesh.coordinates,indices:dbMesh.indices});dbMeshLoaded[dbMeshId]=true;};var dbElements=fileData.elements;var _loop13=function _loop13(_i685,_len134){var element=dbElements[_i685];var elementType=element.type;if(excludeTypes&&excludeTypes[elementType]){return"continue";}if(includeTypes&&!includeTypes[elementType]){return"continue";}var info=element.info;var objectId=element.guid!==undefined?"".concat(element.guid):info!==undefined&&info.id!==undefined?info.id:_i685;var dbMeshId=element.mesh_id;var vector=element.vector;var rotation=element.rotation;var props=objectDefaults?objectDefaults[elementType]||objectDefaults["DEFAULT"]:null;var visible=true;var pickable=true;if(element.face_colors===undefined){parseDBMesh(dbMeshId,element);var meshId="".concat(objectId,"-mesh");var _color14=element.color?[element.color.r/255.0,element.color.g/255.0,element.color.b/255.0]:[1,1,1];var _opacity7=element.color?element.color.a/255.0:1.0;if(props){if(props.visible===false){visible=false;}if(props.pickable===false){pickable=false;}if(props.colorize){_color14=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){_opacity7=props.opacity;}}sceneModel.createMesh({id:meshId,geometryId:dbMeshId,color:_color14,opacity:_opacity7,quaternion:rotation&&(rotation.qz!==0||rotation.qy!==0||rotation.qx!==0||rotation.qw!==1.0)?[rotation.qx,rotation.qy,rotation.qz,rotation.qw]:undefined,position:vector?[vector.x,vector.y,vector.z]:undefined});sceneModel.createEntity({id:objectId,meshIds:[meshId],visible:visible,pickable:pickable,isObject:true});}else{var faceColors=element.face_colors;var coloredTrianglesDictionary={};var currentTriangleIndicesCount=0;var dbMesh=fileData.meshes.find(function(obj){return obj.mesh_id===element.mesh_id;});for(var _i686=0,_len135=faceColors.length;_i686<_len135;_i686+=4){var faceColor=[faceColors[_i686],faceColors[_i686+1],faceColors[_i686+2],faceColors[_i686+3]];if(coloredTrianglesDictionary[faceColor]===undefined){coloredTrianglesDictionary[faceColor]=[];}var indexForPoint0=dbMesh.indices[currentTriangleIndicesCount];var x0=dbMesh.coordinates[indexForPoint0*3];var y0=dbMesh.coordinates[indexForPoint0*3+1];var z0=dbMesh.coordinates[indexForPoint0*3+2];var indexForPoint1=dbMesh.indices[currentTriangleIndicesCount+1];var x1=dbMesh.coordinates[indexForPoint1*3];var y1=dbMesh.coordinates[indexForPoint1*3+1];var z1=dbMesh.coordinates[indexForPoint1*3+2];var indexForPoint2=dbMesh.indices[currentTriangleIndicesCount+2];var x2=dbMesh.coordinates[indexForPoint2*3];var y2=dbMesh.coordinates[indexForPoint2*3+1];var z2=dbMesh.coordinates[indexForPoint2*3+2];coloredTrianglesDictionary[faceColor].push(x0,y0,z0,x1,y1,z1,x2,y2,z2);currentTriangleIndicesCount+=3;}var meshIds=[];for(var _i687=0,_Object$entries8=Object.entries(coloredTrianglesDictionary);_i687<_Object$entries8.length;_i687++){var _Object$entries8$_i=_slicedToArray(_Object$entries8[_i687],2),_faceColor=_Object$entries8$_i[0],trianglesCoordinates=_Object$entries8$_i[1];sceneModel.createGeometry({id:"".concat(dbMeshId,"-").concat(_faceColor),primitive:"triangles",positions:trianglesCoordinates,indices:_toConsumableArray(Array(trianglesCoordinates.length/3).keys())});var _meshId3="".concat(objectId,"-mesh-").concat(_faceColor);var faceColorArray=_faceColor.split(',').map(Number);var _color15=[faceColorArray[0]/255.0,faceColorArray[1]/255.0,faceColorArray[2]/255.0];var _opacity8=faceColorArray[3]/255.0;if(props){if(props.visible===false){visible=false;}if(props.pickable===false){pickable=false;}if(props.colorize){_color15=props.colorize;}if(props.opacity!==undefined&&props.opacity!==null){_opacity8=props.opacity;}}sceneModel.createMesh({id:_meshId3,geometryId:"".concat(dbMeshId,"-").concat(_faceColor),color:_color15,opacity:_opacity8,quaternion:rotation&&(rotation.qz!==0||rotation.qy!==0||rotation.qx!==0||rotation.qw!==1.0)?[rotation.qx,rotation.qy,rotation.qz,rotation.qw]:undefined,position:vector?[vector.x,vector.y,vector.z]:undefined});meshIds.push(_meshId3);}sceneModel.createEntity({id:objectId,meshIds:meshIds,visible:visible,pickable:pickable,isObject:true});}var properties=[];for(var infoKey in info){properties.push({name:infoKey,value:info[infoKey]});}metaModelData.propertySets.push({id:objectId,name:"Properties",properties:properties});metaModelData.metaObjects.push({id:objectId,name:info&&info.Name&&info.Name!=="None"?info.Name:"".concat(element.type," ").concat(objectId),type:element.type,parent:buildingStoryId,propertySetIds:[objectId]});};for(var _i685=0,_len134=dbElements.length;_i685<_len134;_i685++){var _ret3=_loop13(_i685,_len134);if(_ret3==="continue")continue;}sceneModel.finalize();_this193.viewer.metaScene.createMetaModel(modelId,metaModelData);sceneModel.scene.once("tick",function(){if(sceneModel.destroyed){return;}sceneModel.scene.fire("modelLoaded",sceneModel.id);// FIXME: Assumes listeners know order of these two events
33734
33744
  sceneModel.fire("loaded",true,false);// Don't forget the event, for late subscribers
33735
33745
  });};if(params.src){var src=params.src;this.viewer.scene.canvas.spinner.processes++;this._dataSource.getDotBIM(src,function(fileData){// OK
33736
33746
  var ctx={fileData:fileData,sceneModel:sceneModel,nextId:0,error:function error(errMsg){}};parseDotBIM(ctx);_this193.viewer.scene.canvas.spinner.processes--;},function(err){_this193.viewer.scene.canvas.spinner.processes--;_this193.error(err);});}else if(params.dotBIM){var ctx={fileData:params.dotBIM,sceneModel:sceneModel,nextId:0,error:function error(errMsg){}};parseDotBIM(ctx);}sceneModel.once("destroyed",function(){_this193.viewer.metaScene.destroyMetaModel(modelId);});return sceneModel;}/**
@@ -33753,13 +33763,13 @@ marker2.update(point2WorldPos);marker1.destroy();marker2.destroy();updatePointer
33753
33763
  var pos=[];var ind=[];var addPlane=function addPlane(isCeiling){var baseIdx=pos.length;var _iterator60=_createForOfIteratorHelper(baseVertices),_step60;try{for(_iterator60.s();!(_step60=_iterator60.n()).done;){var c=_step60.value;pos.push([c[0],altitude+(isCeiling?height:0),c[1]]);}}catch(err){_iterator60.e(err);}finally{_iterator60.f();}var _iterator61=_createForOfIteratorHelper(baseTriangles),_step61;try{for(_iterator61.s();!(_step61=_iterator61.n()).done;){var t=_step61.value;ind.push.apply(ind,_toConsumableArray((isCeiling?t:t.slice(0).reverse()).map(function(i){return i+baseIdx;})));}}catch(err){_iterator61.e(err);}finally{_iterator61.f();}};addPlane(false);// floor
33754
33764
  addPlane(true);// ceiling
33755
33765
  // sides
33756
- var _loop14=function _loop14(_i689){var a=baseVertices[_i689];var b=baseVertices[(baseVertices.length+_i689+(isCCW?1:-1))%baseVertices.length];var f=altitude;var c=altitude+height;var baseIdx=pos.length;pos.push([a[0],f,a[1]],[b[0],f,b[1]],[b[0],c,b[1]],[a[0],c,a[1]]);ind.push.apply(ind,_toConsumableArray([0,1,2,0,2,3].map(function(i){return i+baseIdx;})));};for(var _i689=0;_i689<baseVertices.length;++_i689){_loop14(_i689);}if(this._zoneMesh){this._zoneMesh.destroy();}var min=function min(idx){return Math.min.apply(Math,_toConsumableArray(pos.map(function(p){return p[idx];})));};var max=function max(idx){return Math.max.apply(Math,_toConsumableArray(pos.map(function(p){return p[idx];})));};var xmin=min(0);var ymin=min(1);var zmin=min(2);var xmax=max(0);var ymax=max(1);var zmax=max(2);this._center=math.vec3([(xmin+xmax)/2,(ymin+ymax)/2,(zmin+zmax)/2]);var positions=(_ref35=[]).concat.apply(_ref35,_toConsumableArray(pos.map(function(p){return math.subVec3(p,_this195._center,p);})));this._zoneMesh=new Mesh(scene,{origin:this._center,edges:this._edges,geometry:new ReadableGeometry(scene,{positions:positions,indices:ind,normals:math.buildNormals(positions,ind)}),material:new PhongMaterial(scene,{alpha:this._alpha,backfaces:true,diffuse:hex2rgb(this._color)}),visible:this._visible});this._zoneMesh.highlighted=this._highlighted;this._zoneMesh.zone=this;{var _u2=math.vec2();var v=math.vec2();var baseArea=0;var _iterator62=_createForOfIteratorHelper(baseTriangles),_step62;try{for(_iterator62.s();!(_step62=_iterator62.n()).done;){var t=_step62.value;var p0=baseVertices[t[0]];var p1=baseVertices[t[1]];var p2=baseVertices[t[2]];math.subVec2(p1,p0,_u2);math.subVec2(p2,p0,v);baseArea+=Math.abs(_u2[0]*v[1]-_u2[1]*v[0]);}}catch(err){_iterator62.e(err);}finally{_iterator62.f();}this._baseArea=baseArea/2;}this._metrics=null;}},{key:"baseArea",get:function get(){return this._baseArea;}},{key:"area",get:function get(){return this._getMetrics().area;}},{key:"volume",get:function get(){return this._getMetrics().volume;}},{key:"_getMetrics",value:function _getMetrics(){if(this._metrics===null){// Sum the volume of tetrahedrons formed by the origin and face triangles
33757
- var volume=0;var _area4=0;var geo=this._zoneMesh.geometry;var pts=[math.vec3(),math.vec3(),math.vec3()];var tmpVec3=math.vec3();for(var _i690=0;_i690<geo.indices.length;_i690+=3){for(var off=0;off<3;++off){var _p5=pts[off];var pIdx=3*geo.indices[_i690+off];for(var c=0;c<3;++c){_p5[c]=geo.positions[pIdx+c];}}volume+=math.dotVec3(pts[0],math.cross3Vec3(pts[1],pts[2],tmpVec3));math.subVec3(pts[1],pts[0],pts[1]);math.subVec3(pts[2],pts[0],pts[2]);_area4+=math.lenVec3(math.cross3Vec3(pts[1],pts[2],tmpVec3));}this._metrics={area:_area4/2,volume:volume/6};}return this._metrics;}},{key:"sectionedAverage",value:function sectionedAverage(sectionPlanes){var planeCoords=this._geometry.planeCoordinates.slice();var faces=[];{var h=this._geometry.height;var _a13=this._geometry.altitude;var c=_a13+Math.max(0,h);var _f2=_a13+Math.min(0,h);var addPlane=function addPlane(isCeiling){var face=planeCoords.map(function(p){return[p[0],isCeiling?c:_f2,p[1]];});faces.push(isCeiling?face:face.slice(0).reverse());};addPlane(true);// ceiling
33766
+ var _loop14=function _loop14(_i688){var a=baseVertices[_i688];var b=baseVertices[(baseVertices.length+_i688+(isCCW?1:-1))%baseVertices.length];var f=altitude;var c=altitude+height;var baseIdx=pos.length;pos.push([a[0],f,a[1]],[b[0],f,b[1]],[b[0],c,b[1]],[a[0],c,a[1]]);ind.push.apply(ind,_toConsumableArray([0,1,2,0,2,3].map(function(i){return i+baseIdx;})));};for(var _i688=0;_i688<baseVertices.length;++_i688){_loop14(_i688);}if(this._zoneMesh){this._zoneMesh.destroy();}var min=function min(idx){return Math.min.apply(Math,_toConsumableArray(pos.map(function(p){return p[idx];})));};var max=function max(idx){return Math.max.apply(Math,_toConsumableArray(pos.map(function(p){return p[idx];})));};var xmin=min(0);var ymin=min(1);var zmin=min(2);var xmax=max(0);var ymax=max(1);var zmax=max(2);this._center=math.vec3([(xmin+xmax)/2,(ymin+ymax)/2,(zmin+zmax)/2]);var positions=(_ref35=[]).concat.apply(_ref35,_toConsumableArray(pos.map(function(p){return math.subVec3(p,_this195._center,p);})));this._zoneMesh=new Mesh(scene,{origin:this._center,edges:this._edges,geometry:new ReadableGeometry(scene,{positions:positions,indices:ind,normals:math.buildNormals(positions,ind)}),material:new PhongMaterial(scene,{alpha:this._alpha,backfaces:true,diffuse:hex2rgb(this._color)}),visible:this._visible});this._zoneMesh.highlighted=this._highlighted;this._zoneMesh.zone=this;{var _u2=math.vec2();var v=math.vec2();var baseArea=0;var _iterator62=_createForOfIteratorHelper(baseTriangles),_step62;try{for(_iterator62.s();!(_step62=_iterator62.n()).done;){var t=_step62.value;var p0=baseVertices[t[0]];var p1=baseVertices[t[1]];var p2=baseVertices[t[2]];math.subVec2(p1,p0,_u2);math.subVec2(p2,p0,v);baseArea+=Math.abs(_u2[0]*v[1]-_u2[1]*v[0]);}}catch(err){_iterator62.e(err);}finally{_iterator62.f();}this._baseArea=baseArea/2;}this._metrics=null;}},{key:"baseArea",get:function get(){return this._baseArea;}},{key:"area",get:function get(){return this._getMetrics().area;}},{key:"volume",get:function get(){return this._getMetrics().volume;}},{key:"_getMetrics",value:function _getMetrics(){if(this._metrics===null){// Sum the volume of tetrahedrons formed by the origin and face triangles
33767
+ var volume=0;var _area4=0;var geo=this._zoneMesh.geometry;var pts=[math.vec3(),math.vec3(),math.vec3()];var tmpVec3=math.vec3();for(var _i689=0;_i689<geo.indices.length;_i689+=3){for(var off=0;off<3;++off){var _p5=pts[off];var pIdx=3*geo.indices[_i689+off];for(var c=0;c<3;++c){_p5[c]=geo.positions[pIdx+c];}}volume+=math.dotVec3(pts[0],math.cross3Vec3(pts[1],pts[2],tmpVec3));math.subVec3(pts[1],pts[0],pts[1]);math.subVec3(pts[2],pts[0],pts[2]);_area4+=math.lenVec3(math.cross3Vec3(pts[1],pts[2],tmpVec3));}this._metrics={area:_area4/2,volume:volume/6};}return this._metrics;}},{key:"sectionedAverage",value:function sectionedAverage(sectionPlanes){var planeCoords=this._geometry.planeCoordinates.slice();var faces=[];{var h=this._geometry.height;var _a13=this._geometry.altitude;var c=_a13+Math.max(0,h);var _f2=_a13+Math.min(0,h);var addPlane=function addPlane(isCeiling){var face=planeCoords.map(function(p){return[p[0],isCeiling?c:_f2,p[1]];});faces.push(isCeiling?face:face.slice(0).reverse());};addPlane(true);// ceiling
33758
33768
  addPlane(false);// floor
33759
33769
  // sides
33760
- var _p6=function _p6(idx,y){return[planeCoords[idx][0],y,planeCoords[idx][1]];};for(var _i691=0;_i691<planeCoords.length;++_i691){var _j8=(_i691+1)%planeCoords.length;faces.push([_p6(_i691,_f2),_p6(_j8,_f2),_p6(_j8,c),_p6(_i691,c)]);}}var _iterator63=_createForOfIteratorHelper(sectionPlanes),_step63;try{for(_iterator63.s();!(_step63=_iterator63.n()).done;){var s=_step63.value;var dir=s.dir;var dist=s.dist;var newFaces=[];var _iterator66=_createForOfIteratorHelper(faces),_step66;try{for(_iterator66.s();!(_step66=_iterator66.n()).done;){var face=_step66.value;var _EPSILON=1e-5;var COPLANAR=0;var FRONT=1;var BACK=2;var SPANNING=3;// Classify each point as well as the entire polygon into one of the above four classes.
33761
- var polygonType=0;var _types=[];for(var _i692=0;_i692<face.length;_i692++){var t=math.dotVec3(dir,face[_i692])+dist;var type=t<-_EPSILON?BACK:t>_EPSILON?FRONT:COPLANAR;polygonType|=type;_types.push(type);}// Put the polygon in the correct list, splitting it when necessary.
33762
- switch(polygonType){case COPLANAR:newFaces.push(face);break;case FRONT:newFaces.push(face);break;case BACK:break;case SPANNING:var _f4=[];for(var _i693=0;_i693<face.length;_i693++){var j=(_i693+1)%face.length;var ti=_types[_i693];var tj=_types[j];var vi=face[_i693];var vj=face[j];if(ti!==BACK){_f4.push(vi);}if((ti|tj)===SPANNING){var diff=math.vec3();math.subVec3(vj,vi,diff);var _t7=-(dist+math.dotVec3(dir,vi))/math.dotVec3(dir,diff);var v=[0,0,0];math.lerpVec3(_t7,0,1,vi,vj,v);_f4.push(v);}}if(_f4.length>=3){newFaces.push(_f4);}break;}}}catch(err){_iterator66.e(err);}finally{_iterator66.f();}faces=newFaces;}}catch(err){_iterator63.e(err);}finally{_iterator63.f();}if(faces.length===0){return null;}else{var avg=math.vec3([0,0,0]);var unique=new Set();var _iterator64=_createForOfIteratorHelper(faces),_step64;try{for(_iterator64.s();!(_step64=_iterator64.n()).done;){var _f3=_step64.value;var _iterator65=_createForOfIteratorHelper(_f3),_step65;try{for(_iterator65.s();!(_step65=_iterator65.n()).done;){var _p7=_step65.value;var id=_p7.map(function(x){return x.toFixed(3);}).join(":");if(!unique.has(id)){unique.add(id);math.addVec3(avg,_p7,avg);}}}catch(err){_iterator65.e(err);}finally{_iterator65.f();}}}catch(err){_iterator64.e(err);}finally{_iterator64.f();}math.mulVec3Scalar(avg,1/unique.size,avg);return avg;}}},{key:"center",get:function get(){return this._center;}},{key:"altitude",get:function get(){return this._geometry.altitude;},set:function set(value){this._geometry.altitude=value;this._rebuildMesh();}},{key:"height",get:function get(){return this._geometry.height;},set:function set(value){this._geometry.height=value;this._rebuildMesh();}},{key:"highlighted",get:function get(){return this._highlighted;},set:function set(value){this._highlighted=value;if(this._zoneMesh){this._zoneMesh.highlighted=value;}}},{key:"color",get:function get(){return this._color;},set:function set(value){this._color=value;if(this._zoneMesh){this._zoneMesh.material.diffuse=hex2rgb(this._color);}}},{key:"alpha",get:function get(){return this._alpha;},set:function set(value){this._alpha=value;if(this._zoneMesh){this._zoneMesh.material.alpha=this._alpha;}}},{key:"edges",get:function get(){return this._edges;},set:function set(edges){this._edges=edges;if(this._zoneMesh){this._zoneMesh.edges=this._edges;}}/**
33770
+ var _p6=function _p6(idx,y){return[planeCoords[idx][0],y,planeCoords[idx][1]];};for(var _i690=0;_i690<planeCoords.length;++_i690){var _j8=(_i690+1)%planeCoords.length;faces.push([_p6(_i690,_f2),_p6(_j8,_f2),_p6(_j8,c),_p6(_i690,c)]);}}var _iterator63=_createForOfIteratorHelper(sectionPlanes),_step63;try{for(_iterator63.s();!(_step63=_iterator63.n()).done;){var s=_step63.value;var dir=s.dir;var dist=s.dist;var newFaces=[];var _iterator66=_createForOfIteratorHelper(faces),_step66;try{for(_iterator66.s();!(_step66=_iterator66.n()).done;){var face=_step66.value;var _EPSILON=1e-5;var COPLANAR=0;var FRONT=1;var BACK=2;var SPANNING=3;// Classify each point as well as the entire polygon into one of the above four classes.
33771
+ var polygonType=0;var _types=[];for(var _i691=0;_i691<face.length;_i691++){var t=math.dotVec3(dir,face[_i691])+dist;var type=t<-_EPSILON?BACK:t>_EPSILON?FRONT:COPLANAR;polygonType|=type;_types.push(type);}// Put the polygon in the correct list, splitting it when necessary.
33772
+ switch(polygonType){case COPLANAR:newFaces.push(face);break;case FRONT:newFaces.push(face);break;case BACK:break;case SPANNING:var _f4=[];for(var _i692=0;_i692<face.length;_i692++){var j=(_i692+1)%face.length;var ti=_types[_i692];var tj=_types[j];var vi=face[_i692];var vj=face[j];if(ti!==BACK){_f4.push(vi);}if((ti|tj)===SPANNING){var diff=math.vec3();math.subVec3(vj,vi,diff);var _t7=-(dist+math.dotVec3(dir,vi))/math.dotVec3(dir,diff);var v=[0,0,0];math.lerpVec3(_t7,0,1,vi,vj,v);_f4.push(v);}}if(_f4.length>=3){newFaces.push(_f4);}break;}}}catch(err){_iterator66.e(err);}finally{_iterator66.f();}faces=newFaces;}}catch(err){_iterator63.e(err);}finally{_iterator63.f();}if(faces.length===0){return null;}else{var avg=math.vec3([0,0,0]);var unique=new Set();var _iterator64=_createForOfIteratorHelper(faces),_step64;try{for(_iterator64.s();!(_step64=_iterator64.n()).done;){var _f3=_step64.value;var _iterator65=_createForOfIteratorHelper(_f3),_step65;try{for(_iterator65.s();!(_step65=_iterator65.n()).done;){var _p7=_step65.value;var id=_p7.map(function(x){return x.toFixed(3);}).join(":");if(!unique.has(id)){unique.add(id);math.addVec3(avg,_p7,avg);}}}catch(err){_iterator65.e(err);}finally{_iterator65.f();}}}catch(err){_iterator64.e(err);}finally{_iterator64.f();}math.mulVec3Scalar(avg,1/unique.size,avg);return avg;}}},{key:"center",get:function get(){return this._center;}},{key:"altitude",get:function get(){return this._geometry.altitude;},set:function set(value){this._geometry.altitude=value;this._rebuildMesh();}},{key:"height",get:function get(){return this._geometry.height;},set:function set(value){this._geometry.height=value;this._rebuildMesh();}},{key:"highlighted",get:function get(){return this._highlighted;},set:function set(value){this._highlighted=value;if(this._zoneMesh){this._zoneMesh.highlighted=value;}}},{key:"color",get:function get(){return this._color;},set:function set(value){this._color=value;if(this._zoneMesh){this._zoneMesh.material.diffuse=hex2rgb(this._color);}}},{key:"alpha",get:function get(){return this._alpha;},set:function set(value){this._alpha=value;if(this._zoneMesh){this._zoneMesh.material.alpha=this._alpha;}}},{key:"edges",get:function get(){return this._edges;},set:function set(edges){this._edges=edges;if(this._zoneMesh){this._zoneMesh.edges=this._edges;}}/**
33763
33773
  * Sets whether this Zone is visible or not.
33764
33774
  *
33765
33775
  * @type {Boolean}
@@ -33847,7 +33857,7 @@ switch(polygonType){case COPLANAR:newFaces.push(face);break;case FRONT:newFaces.
33847
33857
  */},{key:"destroy",value:function destroy(){_get(_getPrototypeOf(ZonesPlugin.prototype),"destroy",this).call(this);}}]);return ZonesPlugin;}(Plugin);var startPolysurfaceZoneCreateUI=function startPolysurfaceZoneCreateUI(scene,zoneAltitude,zoneHeight,zoneColor,zoneAlpha,pointerLens,zonesPlugin,select3dPoint,onZoneCreated){var updatePointerLens=pointerLens?function(canvasPos){pointerLens.visible=!!canvasPos;if(canvasPos){pointerLens.canvasPos=canvasPos;}}:function(){};var deactivatePointSelection;var cleanups=[function(){return updatePointerLens(null);}];var basePolygon=basePolygon3D(scene,zoneColor,zoneAlpha);cleanups.push(function(){return basePolygon.destroy();});(function selectNextPoint(markers){var marker=marker3D(scene,zoneColor);var wire=markers.length>0&&wire3D(scene,zoneColor);var wireStart=wire&&markers[markers.length-1].getWorldPos();cleanups.push(function(){marker.destroy();wire&&wire.destroy();});var firstMarker=markers.length>0&&markers[0];var getSnappedFirst=function getSnappedFirst(canvasPos){var firstCanvasPos=firstMarker&&firstMarker.getCanvasPos();var snapToFirst=firstCanvasPos&&math.distVec2(firstCanvasPos,canvasPos)<10;return snapToFirst&&{canvasPos:firstCanvasPos,worldPos:firstMarker.getWorldPos()};};var lastSegmentIntersects=function(){var onSegment=function onSegment(p,q,r){return q[0]<=Math.max(p[0],r[0])&&q[0]>=Math.min(p[0],r[0])&&q[1]<=Math.max(p[1],r[1])&&q[1]>=Math.min(p[1],r[1]);};var orient=function orient(p,q,r){var val=(q[1]-p[1])*(r[0]-q[0])-(q[0]-p[0])*(r[1]-q[1]);// collinear
33848
33858
  // clockwise
33849
33859
  // counterclockwise
33850
- return val===0?0:val>0?1:2;};return function(pos2D,excludeFirstSegment){var a=pos2D[pos2D.length-2];var b=pos2D[pos2D.length-1];for(var _i694=excludeFirstSegment?1:0;_i694<pos2D.length-2-1;++_i694){var c=pos2D[_i694];var d=pos2D[_i694+1];var o1=orient(a,b,c);var o2=orient(a,b,d);var o3=orient(c,d,a);var o4=orient(c,d,b);if(o1!==o2&&o3!==o4||// General case
33860
+ return val===0?0:val>0?1:2;};return function(pos2D,excludeFirstSegment){var a=pos2D[pos2D.length-2];var b=pos2D[pos2D.length-1];for(var _i693=excludeFirstSegment?1:0;_i693<pos2D.length-2-1;++_i693){var c=pos2D[_i693];var d=pos2D[_i693+1];var o1=orient(a,b,c);var o2=orient(a,b,d);var o3=orient(c,d,a);var o4=orient(c,d,b);if(o1!==o2&&o3!==o4||// General case
33851
33861
  o1===0&&onSegment(a,c,b)||// a, b and c are collinear and c lies on segment ab
33852
33862
  o2===0&&onSegment(a,d,b)||// a, b and d are collinear and d lies on segment ab
33853
33863
  o3===0&&onSegment(c,a,d)||// c, d and a are collinear and a lies on segment cd