1 |
- (window.webpackJsonpNVIV=window.webpackJsonpNVIV||[]).push([[20],{1672:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),o=r(2),s=(r(1935),r(0)),a=r(1935);o.module("MeshModule",["IVWebApp"]);var i=function(){function e(e){this.MeshLayerFactor=e}return e.prototype.createLayer=function(e,t){return this.MeshLayerFactor.create(e,t,void 0)},e.ɵfac=function(t){return new(t||e)(s.ɵɵinject(a.MeshLayerFactory))},e.ɵprov=s.ɵɵdefineInjectable({token:e,factory:e.ɵfac,providedIn:"root"}),e}();t.MeshModuleService=i,s.ɵsetClassMetadata(i,[{type:n.Injectable,args:[{providedIn:"root"}]}],(function(){return[{type:a.MeshLayerFactory}]}),null);var u=function(){function e(){this.entry=i}return e.ɵmod=s.ɵɵdefineNgModule({type:e}),e.ɵinj=s.ɵɵdefineInjector({factory:function(t){return new(t||e)}}),e}();t.MeshModule=u,s.ɵsetClassMetadata(u,[{type:n.NgModule}],null,null)},1849:function(e,t,r){"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.LOADING=0]="LOADING",e[e.LOADED=1]="LOADED",e[e.PENDING=2]="PENDING"}(n=t.Status||(t.Status={}));var o=function(e,t,r,o){this.name=e,this.active=t,this.available=r,this.path=o,this.status=n.PENDING};t.DatasetState=o},1860:function(e,t,r){"use strict";function n(e){this.content=[],this.scoreFunction=e}r.r(t),r.d(t,"BinaryHeap",(function(){return n})),n.prototype={push:function(e){this.content.push(e),this.bubbleUp(this.content.length-1)},empty:function(){return 0===this.size()},clean:function(){this.content=[]},peek:function(){return this.content[0]},pop:function(){var e=this.content[0],t=this.content.pop();return this.content.length>0&&(this.content[0]=t,this.sinkDown(0)),e},remove:function(e){for(var t=this.content.length,r=0;r<t;r++)if(this.content[r]==e){var n=this.content.pop();if(r==t-1)break;this.content[r]=n,this.bubbleUp(r),this.sinkDown(r);break}},size:function(){return this.content.length},bubbleUp:function(e){for(var t=this.content[e],r=this.scoreFunction(t);e>0;){var n=Math.floor((e+1)/2)-1,o=this.content[n];if(r>=this.scoreFunction(o))break;this.content[n]=t,this.content[e]=o,e=n}},sinkDown:function(e){for(var t=this.content.length,r=this.content[e],n=this.scoreFunction(r);;){var o=2*(e+1),s=o-1,a=null;if(s<t){var i=this.content[s],u=this.scoreFunction(i);u<n&&(a=s)}if(o<t){var c=this.content[o];this.scoreFunction(c)<(null==a?n:u)&&(a=o)}if(null==a)break;this.content[e]=this.content[a],this.content[a]=r,e=a}}}},1868:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(){function e(){this.vertexBudget=5e6,this.loadersCount=0,this.bshpherePixelDiameter=10,this.maxDistance=25,this.maxLoadRequests=1,this.showWireframe=!1,this.lod=0}return e.prototype.getCurrentVertexBudget=function(){return this.vertexBudget/this.loadersCount},e}();t.MeshLoaderConfig=n},1898:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var s=r(80),a=r(4),i=r(152),u=r(1899),c=r(1900),l=r(1849),h=r(1901),d=r(1860),p=r(8),f=r(1868),m=r(7),v=function(e){function t(t,r,n,o,s){var i=e.call(this,t,r)||this;return i.viewMenuService=n,i.jwtTokenService=o,i.datasetRepository=s,i.loaderConfig=new f.MeshLoaderConfig,i.datasets=[],i.loaders={},i.frustum=new a.Frustum,i.meshQueue=new d.BinaryHeap((function(e){return e.weight})),i.maxGPULoads=3,i.showBBoxThree=!1,i.showBBoxGLTF=!1,i.sceneGroup.name="MeshLayer",i.dracoLoadingManager=new a.LoadingManager,i.dracoLoadingManager.setURLModifier((function(e){return i.getAuthorizationUrl(e)})),i.dracoLoader=new u.DRACOLoader(i.dracoLoadingManager),i.gltfLoader=new c.GLTFLoader,i.dracoLoader.setDecoderPath("draco/"),i.dracoLoader.setDecoderConfig({type:"js"}),i.gltfLoader.setParserOnly(!0),i.gltfLoader.setDRACOLoader(i.dracoLoader),i.registerEventCallbacks(),i}return o(t,e),t.prototype.onBeforeRender=function(){var e=this;this.visible&&this.loadGLTFJson().then((function(){return e.processClosestMeshes().then((function(){return e.processMeshQueue()}))})).catch(p.handleWarning)},t.prototype.reload=function(e,t,r){for(a.Cache.enabled=!1,a.Cache.clear(),this.clean();this.sceneGroup.children.length>0;)this.sceneGroup.remove(this.sceneGroup.children[0]);a.Cache.enabled=!0,this.maxGPULoads=e,this.showBBoxThree=t,this.showBBoxGLTF=r,this.updateDatasetState()},t.prototype.processClosestMeshes=function(){var e=this,t=this.view.getCamera(),r=this.getViewport();return this.updateFrustum(t),Promise.all(m.map(this.loaders,(function(e){return e})).map((function(n){return n.getClosestMeshes(t,r,e.frustum)}))).then((function(t){t.forEach((function(t){t.filter((function(e){return e})).forEach((function(t){return e.meshQueue.push(t)}))}))}))},t.prototype.processMeshQueue=function(){for(var e,t=this,r=0,n=function(){var n=o.meshQueue.pop(),s=o.view.getCamera();o.updateFrustum(s),n.geometry.computeBoundingBox();var i=n.geometry.boundingBox,u=i.distanceToPoint(s.position),c=[];c.push((function(){return!t.frustum.intersectsBox(i)})),c.push((function(){return!t.isDatasetActive(n.datasetName)})),c.push((function(){return u>=t.loaderConfig.maxDistance})),c.some((function(e){return e()}))?null===(e=o.loaders[n.datasetName])||void 0===e||e.remove(n):(o.showBBoxThree&&o.sceneGroup.add(new a.BoxHelper(n,new a.Color(1,0,0))),o.showBBoxGLTF&&o.sceneGroup.add(new a.Box3Helper(n.GLTFBox,new a.Color(1,0,0))),o.sceneGroup.add(n),r++),o.view.invalidateScene()},o=this;!this.meshQueue.empty()&&r<this.maxGPULoads;)n()},t.prototype.updateVisibility=function(e){a.Cache.enabled=e,e||(a.Cache.clear(),this.clean()),this.visible=e,this.sceneGroup.visible=e,this.updateDatasetState(),this.view.invalidateScene()},t.prototype.clean=function(){var e=this;this.cleanQueue(),Object.keys(this.loaders).forEach((function(t){var r;return null===(r=e.loaders[t])||void 0===r?void 0:r.clean()})),this.loaders={},this.loaderConfig.loadersCount=0,this.view.invalidateScene()},t.prototype.cleanQueue=function(){for(var e;!this.meshQueue.empty();){var t=this.meshQueue.pop();null===(e=this.loaders[null==t?void 0:t.datasetName])||void 0===e||e.clean()}this.meshQueue.clean()},t.prototype.loadGLTFJson=function(){var e=this,t={};return this.jwtTokenService.setJwtHeaderOnConfig(t),this.jwtTokenService.isNotExpired()?Promise.all(this.datasets.filter((function(e){return e.available&&e.active&&e.status===l.Status.PENDING})).map((function(r){return new Promise((function(n,o){r.status=l.Status.LOADING,e.gltfLoader.setRequestHeader(t),e.gltfLoader.load(r.path,(function(t){var o=t.parser;e.setQueryStringAuthParameter(o.json),r.status=l.Status.LOADED,e.loaderConfig.loadersCount++,e.loaders[r.name]=new h.MeshLoader(r.name,e.loaderConfig,t,e.sceneGroup,e.view),e.view.invalidateScene(),n()}),void 0,(function(e){r.available=!1,o(e)}))}))}))).then((function(){})):Promise.reject("Authorization failed!")},t.prototype.setQueryStringAuthParameter=function(e){var t,r=this;null===(t=e.images)||void 0===t||t.forEach((function(e){e.uri=r.getAuthorizationUrl(e.uri)}))},t.prototype.getAuthorizationUrl=function(e){return e+"?"+this.jwtTokenService.getJwtUrlParamKey()+"="+this.jwtTokenService.getJwt()},t.prototype.registerEventCallbacks=function(){var e=this;this.trackSignal(this.viewMenuService.onShowMeshesChanged).connect((function(t){e.updateVisibility(t)})),this.trackSignal(this.datasetRepository.entityChanged).connect((function(){e.updateDatasetState(),e.removeDatasetMeshes(),e.view.invalidateScene()}))},t.prototype.isDatasetActive=function(e){return void 0!==this.datasetRepository.data.find((function(t){return t.pointCloudVisible&&t.name===e}))},t.prototype.removeDatasetMeshes=function(){var e=this;this.datasetRepository.data.filter((function(t){return!t.pointCloudVisible&&e.loaders[t.name]})).forEach((function(t){e.loaders[t.name].clean(),delete e.loaders[t.name],e.loaderConfig.loadersCount--}))},t.prototype.updateDatasetState=function(){this.datasets=this.datasetRepository.data.map((function(e){return new l.DatasetState(e.name,e.pointCloudVisible||!1,e.hasWebmesh||!1,""+i.getBaseUrl()+e.getMeshConfigFilename())}))},t.prototype.updateFrustum=function(e){e.updateProjectionMatrix(),e.matrixWorld.getInverse(e.matrixWorldInverse),this.frustum.setFromProjectionMatrix((new a.Matrix4).multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse))},t.prototype.getViewport=function(){var e=new a.Vector4;return e.x=this.view.getDefaultViewport().left,e.y=this.view.getDefaultViewport().bottom,e.z=this.view.getDefaultViewport().screenWidth,e.w=this.view.getDefaultViewport().screenHeight,e},t}(s.SceneLayer);t.MeshLayer=v},1899:function(e,t,r){"use strict";r.r(t),r.d(t,"DRACOLoader",(function(){return s}));var n=r(4);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=function(e){n.Loader.call(this,e),this.decoderPath="",this.decoderConfig={},this.decoderBinary=null,this.decoderPending=null,this.workerLimit=4,this.workerPool=[],this.workerNextTaskID=1,this.workerSourceURL="",this.defaultAttributeIDs={position:"POSITION",normal:"NORMAL",color:"COLOR",uv:"TEX_COORD"},this.defaultAttributeTypes={position:"Float32Array",normal:"Float32Array",color:"Float32Array",uv:"Float32Array"}};s.prototype=Object.assign(Object.create(n.Loader.prototype),{constructor:s,setDecoderPath:function(e){return this.decoderPath=e,this},setDecoderConfig:function(e){return this.decoderConfig=e,this},setWorkerLimit:function(e){return this.workerLimit=e,this},setVerbosity:function(){console.warn("THREE.DRACOLoader: The .setVerbosity() method has been removed.")},setDrawMode:function(){console.warn("THREE.DRACOLoader: The .setDrawMode() method has been removed.")},setSkipDequantization:function(){console.warn("THREE.DRACOLoader: The .setSkipDequantization() method has been removed.")},load:function(e,t,r,o){var s=this,a=new n.FileLoader(this.manager);a.setPath(this.path),a.setResponseType("arraybuffer"),"use-credentials"===this.crossOrigin&&a.setWithCredentials(!0),a.load(e,(function(e){var r={attributeIDs:s.defaultAttributeIDs,attributeTypes:s.defaultAttributeTypes,useUniqueIDs:!1};s.decodeGeometry(e,r).then(t).catch(o)}),r,o)},decodeDracoFile:function(e,t,r,n){var o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:n||this.defaultAttributeTypes,useUniqueIDs:!!r};this.decodeGeometry(e,o).then(t)},decodeGeometry:function(e,t){var r=this;for(var n in t.attributeTypes){var o=t.attributeTypes[n];void 0!==o.BYTES_PER_ELEMENT&&(t.attributeTypes[n]=o.name)}var a,i=JSON.stringify(t);if(s.taskCache.has(e)){var u=s.taskCache.get(e);if(u.key===i)return u.promise;if(0===e.byteLength)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}var c=this.workerNextTaskID++,l=e.byteLength,h=this._getWorker(c,l).then((function(r){return a=r,new Promise((function(r,n){a._callbacks[c]={resolve:r,reject:n},a.postMessage({type:"decode",id:c,taskConfig:t,buffer:e},[e])}))})).then((function(e){return r._createGeometry(e.geometry)}));return h.finally((function(){a&&c&&r._releaseTask(a,c)})),s.taskCache.set(e,{key:i,promise:h}),h},_createGeometry:function(e){var t=new n.BufferGeometry;e.index&&t.setIndex(new n.BufferAttribute(e.index.array,1));for(var r=0;r<e.attributes.length;r++){var o=e.attributes[r],s=o.name,a=o.array,i=o.itemSize;t.setAttribute(s,new n.BufferAttribute(a,i))}return t},_loadLibrary:function(e,t){var r=new n.FileLoader(this.manager);return r.setPath(this.decoderPath),r.setResponseType(t),new Promise((function(t,n){r.load(e,t,void 0,n)}))},preload:function(){return this._initDecoder(),this},_initDecoder:function(){var e=this;if(this.decoderPending)return this.decoderPending;var t="object"!==("undefined"==typeof WebAssembly?"undefined":o(WebAssembly))||"js"===this.decoderConfig.type,r=[];return t?r.push(this._loadLibrary("draco_decoder.js","text")):(r.push(this._loadLibrary("draco_wasm_wrapper.js","text")),r.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(r).then((function(r){var n=r[0];t||(e.decoderConfig.wasmBinary=r[1]);var o=s.DRACOWorker.toString(),a=["/* draco decoder */",n,"","/* worker */",o.substring(o.indexOf("{")+1,o.lastIndexOf("}"))].join("\n");e.workerSourceURL=URL.createObjectURL(new Blob([a]))})),this.decoderPending},_getWorker:function(e,t){var r=this;return this._initDecoder().then((function(){var n;r.workerPool.length<r.workerLimit?((n=new Worker(r.workerSourceURL))._callbacks={},n._taskCosts={},n._taskLoad=0,n.postMessage({type:"init",decoderConfig:r.decoderConfig}),n.onmessage=function(e){var t=e.data;switch(t.type){case"decode":n._callbacks[t.id].resolve(t);break;case"error":n._callbacks[t.id].reject(t);break;default:console.error('THREE.DRACOLoader: Unexpected message, "'+t.type+'"')}},r.workerPool.push(n)):r.workerPool.sort((function(e,t){return e._taskLoad>t._taskLoad?-1:1}));return(n=r.workerPool[r.workerPool.length-1])._taskCosts[e]=t,n._taskLoad+=t,n}))},_releaseTask:function(e,t){e._taskLoad-=e._taskCosts[t],delete e._callbacks[t],delete e._taskCosts[t]},debug:function(){console.log("Task load: ",this.workerPool.map((function(e){return e._taskLoad})))},dispose:function(){for(var e=0;e<this.workerPool.length;++e)this.workerPool[e].terminate();return this.workerPool.length=0,this}}),s.DRACOWorker=function(){var e,t;function r(e,t,r,n,o,s){var a,i,u=s.num_components(),c=r.num_points()*u;switch(o){case Float32Array:a=new e.DracoFloat32Array,t.GetAttributeFloatForAllPoints(r,s,a),i=new Float32Array(c);break;case Int8Array:a=new e.DracoInt8Array,t.GetAttributeInt8ForAllPoints(r,s,a),i=new Int8Array(c);break;case Int16Array:a=new e.DracoInt16Array,t.GetAttributeInt16ForAllPoints(r,s,a),i=new Int16Array(c);break;case Int32Array:a=new e.DracoInt32Array,t.GetAttributeInt32ForAllPoints(r,s,a),i=new Int32Array(c);break;case Uint8Array:a=new e.DracoUInt8Array,t.GetAttributeUInt8ForAllPoints(r,s,a),i=new Uint8Array(c);break;case Uint16Array:a=new e.DracoUInt16Array,t.GetAttributeUInt16ForAllPoints(r,s,a),i=new Uint16Array(c);break;case Uint32Array:a=new e.DracoUInt32Array,t.GetAttributeUInt32ForAllPoints(r,s,a),i=new Uint32Array(c);break;default:throw new Error("THREE.DRACOLoader: Unexpected attribute type.")}for(var l=0;l<c;l++)i[l]=a.GetValue(l);return e.destroy(a),{name:n,array:i,itemSize:u}}onmessage=function(n){var o=n.data;switch(o.type){case"init":e=o.decoderConfig,t=new Promise((function(t){e.onModuleLoaded=function(e){t({draco:e})},DracoDecoderModule(e)}));break;case"decode":var s=o.buffer,a=o.taskConfig;t.then((function(e){var t=e.draco,n=new t.Decoder,i=new t.DecoderBuffer;i.Init(new Int8Array(s),s.byteLength);try{var u=function(e,t,n,o){var s,a,i=o.attributeIDs,u=o.attributeTypes,c=t.GetEncodedGeometryType(n);if(c===e.TRIANGULAR_MESH)s=new e.Mesh,a=t.DecodeBufferToMesh(n,s);else{if(c!==e.POINT_CLOUD)throw new Error("THREE.DRACOLoader: Unexpected geometry type.");s=new e.PointCloud,a=t.DecodeBufferToPointCloud(n,s)}if(!a.ok()||0===s.ptr)throw new Error("THREE.DRACOLoader: Decoding failed: "+a.error_msg());var l={index:null,attributes:[]};for(var h in i){var d,p,f=self[u[h]];if(o.useUniqueIDs)p=i[h],d=t.GetAttributeByUniqueId(s,p);else{if(-1===(p=t.GetAttributeId(s,e[i[h]])))continue;d=t.GetAttribute(s,p)}l.attributes.push(r(e,t,s,h,f,d))}if(c===e.TRIANGULAR_MESH){for(var m=s.num_faces(),v=new Uint32Array(3*m),g=new e.DracoInt32Array,y=0;y<m;++y){t.GetFaceFromMesh(s,y,g);for(var M=0;M<3;++M)v[3*y+M]=g.GetValue(M)}l.index={array:v,itemSize:1},e.destroy(g)}return e.destroy(s),l}(t,n,i,a),c=u.attributes.map((function(e){return e.array.buffer}));u.index&&c.push(u.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:u},c)}catch(e){console.error(e),self.postMessage({type:"error",id:o.id,error:e.message})}finally{t.destroy(i),t.destroy(n)}}))}}},s.taskCache=new WeakMap,s.setDecoderPath=function(){console.warn("THREE.DRACOLoader: The .setDecoderPath() method has been removed. Use instance methods.")},s.setDecoderConfig=function(){console.warn("THREE.DRACOLoader: The .setDecoderConfig() method has been removed. Use instance methods.")},s.releaseDecoderModule=function(){console.warn("THREE.DRACOLoader: The .releaseDecoderModule() method has been removed. Use instance methods.")},s.getDecoderModule=function(){console.warn("THREE.DRACOLoader: The .getDecoderModule() method has been removed. Use instance methods.")}},1900:function(e,t,r){"use strict";r.r(t),r.d(t,"GLTFLoader",(function(){return s}));var n=r(4);function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var s=function(){function e(e){n.Loader.call(this,e),this.dracoLoader=null,this.ddsLoader=null,this.requestHeader={},this.parserOnly=!1}function t(){var e={};return{get:function(t){return e[t]},add:function(t,r){e[t]=r},remove:function(t){delete e[t]},removeAll:function(){e={}}}}e.prototype=Object.assign(Object.create(n.Loader.prototype),{constructor:e,load:function(e,t,r,o){var s,a=this;s=""!==this.resourcePath?this.resourcePath:""!==this.path?this.path:n.LoaderUtils.extractUrlBase(e),a.manager.itemStart(e);var i=function(t){o?o(t):console.error(t),a.manager.itemError(e),a.manager.itemEnd(e)},u=new n.FileLoader(a.manager);u.setPath(this.path),u.setResponseType("arraybuffer"),u.setRequestHeader(this.requestHeader),"use-credentials"===a.crossOrigin&&u.setWithCredentials(!0),u.load(e,(function(r){try{a.parse(r,s,(function(r){t(r),a.manager.itemEnd(e)}),i)}catch(e){i(e)}}),r,i)},setDRACOLoader:function(e){return this.dracoLoader=e,this},setDDSLoader:function(e){return this.ddsLoader=e,this},setRequestHeader:function(e){return this.requestHeader=e,this},setParserOnly:function(e){return this.parserOnly=e,this},parse:function(e,t,o,c){var l,f={};if("string"==typeof e)l=e;else if(n.LoaderUtils.decodeText(new Uint8Array(e,0,4))===u){try{f[r.KHR_BINARY_GLTF]=new h(e)}catch(e){return void(c&&c(e))}l=f[r.KHR_BINARY_GLTF].content}else l=n.LoaderUtils.decodeText(new Uint8Array(e));var g=JSON.parse(l);if(void 0===g.asset||g.asset.version[0]<2)c&&c(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));else{if(g.extensionsUsed)for(var y=0;y<g.extensionsUsed.length;++y){var M=g.extensionsUsed[y],w=g.extensionsRequired||[];switch(M){case r.KHR_LIGHTS_PUNCTUAL:f[M]=new a(g);break;case r.KHR_MATERIALS_UNLIT:f[M]=new i;break;case r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:f[M]=new m;break;case r.KHR_DRACO_MESH_COMPRESSION:f[M]=new d(g,this.dracoLoader);break;case r.MSFT_TEXTURE_DDS:f[M]=new s(this.ddsLoader);break;case r.KHR_TEXTURE_TRANSFORM:f[M]=new p;break;case r.KHR_MESH_QUANTIZATION:f[M]=new v;break;default:w.indexOf(M)>=0&&console.warn('THREE.GLTFLoader: Unknown extension "'+M+'".')}}var T=new B(g,f,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,manager:this.manager});T.fileLoader.setRequestHeader(this.requestHeader),this.parserOnly?o({parser:T}):T.parse(o,c)}}});var r={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS:"KHR_materials_pbrSpecularGlossiness",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",MSFT_TEXTURE_DDS:"MSFT_texture_dds"};function s(e){if(!e)throw new Error("THREE.GLTFLoader: Attempting to load .dds texture without importing DDSLoader");this.name=r.MSFT_TEXTURE_DDS,this.ddsLoader=e}function a(e){this.name=r.KHR_LIGHTS_PUNCTUAL;var t=e.extensions&&e.extensions[r.KHR_LIGHTS_PUNCTUAL]||{};this.lightDefs=t.lights||[]}function i(){this.name=r.KHR_MATERIALS_UNLIT}a.prototype.loadLight=function(e){var t,r=this.lightDefs[e],o=new n.Color(16777215);void 0!==r.color&&o.fromArray(r.color);var s=void 0!==r.range?r.range:0;switch(r.type){case"directional":(t=new n.DirectionalLight(o)).target.position.set(0,0,-1),t.add(t.target);break;case"point":(t=new n.PointLight(o)).distance=s;break;case"spot":(t=new n.SpotLight(o)).distance=s,r.spot=r.spot||{},r.spot.innerConeAngle=void 0!==r.spot.innerConeAngle?r.spot.innerConeAngle:0,r.spot.outerConeAngle=void 0!==r.spot.outerConeAngle?r.spot.outerConeAngle:Math.PI/4,t.angle=r.spot.outerConeAngle,t.penumbra=1-r.spot.innerConeAngle/r.spot.outerConeAngle,t.target.position.set(0,0,-1),t.add(t.target);break;default:throw new Error('THREE.GLTFLoader: Unexpected light type, "'+r.type+'".')}return t.position.set(0,0,0),t.decay=2,void 0!==r.intensity&&(t.intensity=r.intensity),t.name=r.name||"light_"+e,Promise.resolve(t)},i.prototype.getMaterialType=function(){return n.MeshBasicMaterial},i.prototype.extendParams=function(e,t,r){var o=[];e.color=new n.Color(1,1,1),e.opacity=1;var s=t.pbrMetallicRoughness;if(s){if(Array.isArray(s.baseColorFactor)){var a=s.baseColorFactor;e.color.fromArray(a),e.opacity=a[3]}void 0!==s.baseColorTexture&&o.push(r.assignTexture(e,"map",s.baseColorTexture))}return Promise.all(o)};var u="glTF",c=1313821514,l=5130562;function h(e){this.name=r.KHR_BINARY_GLTF,this.content=null,this.body=null;var t=new DataView(e,0,12);if(this.header={magic:n.LoaderUtils.decodeText(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==u)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");for(var o=new DataView(e,12),s=0;s<o.byteLength;){var a=o.getUint32(s,!0);s+=4;var i=o.getUint32(s,!0);if(s+=4,i===c){var h=new Uint8Array(e,12+s,a);this.content=n.LoaderUtils.decodeText(h)}else if(i===l){var d=12+s;this.body=e.slice(d,d+a)}s+=a}if(null===this.content)throw new Error("THREE.GLTFLoader: JSON content not found.")}function d(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=r.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}function p(){this.name=r.KHR_TEXTURE_TRANSFORM}function f(e){n.MeshStandardMaterial.call(this),this.isGLTFSpecularGlossinessMaterial=!0;var t=["#ifdef USE_SPECULARMAP","\tuniform sampler2D specularMap;","#endif"].join("\n"),r=["#ifdef USE_GLOSSINESSMAP","\tuniform sampler2D glossinessMap;","#endif"].join("\n"),o=["vec3 specularFactor = specular;","#ifdef USE_SPECULARMAP","\tvec4 texelSpecular = texture2D( specularMap, vUv );","\ttexelSpecular = sRGBToLinear( texelSpecular );","\t// reads channel RGB, compatible with a glTF Specular-Glossiness (RGBA) texture","\tspecularFactor *= texelSpecular.rgb;","#endif"].join("\n"),s=["float glossinessFactor = glossiness;","#ifdef USE_GLOSSINESSMAP","\tvec4 texelGlossiness = texture2D( glossinessMap, vUv );","\t// reads channel A, compatible with a glTF Specular-Glossiness (RGBA) texture","\tglossinessFactor *= texelGlossiness.a;","#endif"].join("\n"),a=["PhysicalMaterial material;","material.diffuseColor = diffuseColor.rgb;","vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );","material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.","material.specularRoughness += geometryRoughness;","material.specularRoughness = min( material.specularRoughness, 1.0 );","material.specularColor = specularFactor.rgb;"].join("\n"),i={specular:{value:(new n.Color).setHex(16777215)},glossiness:{value:1},specularMap:{value:null},glossinessMap:{value:null}};this._extraUniforms=i,this.onBeforeCompile=function(e){for(var n in i)e.uniforms[n]=i[n];e.fragmentShader=e.fragmentShader.replace("uniform float roughness;","uniform vec3 specular;"),e.fragmentShader=e.fragmentShader.replace("uniform float metalness;","uniform float glossiness;"),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_pars_fragment>",t),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_pars_fragment>",r),e.fragmentShader=e.fragmentShader.replace("#include <roughnessmap_fragment>",o),e.fragmentShader=e.fragmentShader.replace("#include <metalnessmap_fragment>",s),e.fragmentShader=e.fragmentShader.replace("#include <lights_physical_fragment>",a)},Object.defineProperties(this,{specular:{get:function(){return i.specular.value},set:function(e){i.specular.value=e}},specularMap:{get:function(){return i.specularMap.value},set:function(e){i.specularMap.value=e}},glossiness:{get:function(){return i.glossiness.value},set:function(e){i.glossiness.value=e}},glossinessMap:{get:function(){return i.glossinessMap.value},set:function(e){i.glossinessMap.value=e,e?(this.defines.USE_GLOSSINESSMAP="",this.defines.USE_ROUGHNESSMAP=""):(delete this.defines.USE_ROUGHNESSMAP,delete this.defines.USE_GLOSSINESSMAP)}}}),delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this.setValues(e)}function m(){return{name:r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS,specularGlossinessParams:["color","map","lightMap","lightMapIntensity","aoMap","aoMapIntensity","emissive","emissiveIntensity","emissiveMap","bumpMap","bumpScale","normalMap","normalMapType","displacementMap","displacementScale","displacementBias","specularMap","specular","glossinessMap","glossiness","alphaMap","envMap","envMapIntensity","refractionRatio"],getMaterialType:function(){return f},extendParams:function(e,t,r){var o=t.extensions[this.name];e.color=new n.Color(1,1,1),e.opacity=1;var s=[];if(Array.isArray(o.diffuseFactor)){var a=o.diffuseFactor;e.color.fromArray(a),e.opacity=a[3]}if(void 0!==o.diffuseTexture&&s.push(r.assignTexture(e,"map",o.diffuseTexture)),e.emissive=new n.Color(0,0,0),e.glossiness=void 0!==o.glossinessFactor?o.glossinessFactor:1,e.specular=new n.Color(1,1,1),Array.isArray(o.specularFactor)&&e.specular.fromArray(o.specularFactor),void 0!==o.specularGlossinessTexture){var i=o.specularGlossinessTexture;s.push(r.assignTexture(e,"glossinessMap",i)),s.push(r.assignTexture(e,"specularMap",i))}return Promise.all(s)},createMaterial:function(e){var t=new f(e);return t.fog=!0,t.color=e.color,t.map=void 0===e.map?null:e.map,t.lightMap=null,t.lightMapIntensity=1,t.aoMap=void 0===e.aoMap?null:e.aoMap,t.aoMapIntensity=1,t.emissive=e.emissive,t.emissiveIntensity=1,t.emissiveMap=void 0===e.emissiveMap?null:e.emissiveMap,t.bumpMap=void 0===e.bumpMap?null:e.bumpMap,t.bumpScale=1,t.normalMap=void 0===e.normalMap?null:e.normalMap,t.normalMapType=n.TangentSpaceNormalMap,e.normalScale&&(t.normalScale=e.normalScale),t.displacementMap=null,t.displacementScale=1,t.displacementBias=0,t.specularMap=void 0===e.specularMap?null:e.specularMap,t.specular=e.specular,t.glossinessMap=void 0===e.glossinessMap?null:e.glossinessMap,t.glossiness=e.glossiness,t.alphaMap=null,t.envMap=void 0===e.envMap?null:e.envMap,t.envMapIntensity=1,t.refractionRatio=.98,t}}}function v(){this.name=r.KHR_MESH_QUANTIZATION}function g(e,t,r,o){n.Interpolant.call(this,e,t,r,o)}d.prototype.decodePrimitive=function(e,t){var r=this.json,n=this.dracoLoader,o=e.extensions[this.name].bufferView,s=e.extensions[this.name].attributes,a={},i={},u={};for(var c in s){var l=E[c]||c.toLowerCase();a[l]=s[c]}for(c in e.attributes){l=E[c]||c.toLowerCase();if(void 0!==s[c]){var h=r.accessors[e.attributes[c]],d=A[h.componentType];u[l]=d,i[l]=!0===h.normalized}}return t.getDependency("bufferView",o).then((function(e){return new Promise((function(t){n.decodeDracoFile(e,(function(e){for(var r in e.attributes){var n=e.attributes[r],o=i[r];void 0!==o&&(n.normalized=o)}t(e)}),a,u)}))}))},p.prototype.extendTexture=function(e,t){return e=e.clone(),void 0!==t.offset&&e.offset.fromArray(t.offset),void 0!==t.rotation&&(e.rotation=t.rotation),void 0!==t.scale&&e.repeat.fromArray(t.scale),void 0!==t.texCoord&&console.warn('THREE.GLTFLoader: Custom UV sets in "'+this.name+'" extension not yet supported.'),e.needsUpdate=!0,e},f.prototype=Object.create(n.MeshStandardMaterial.prototype),f.prototype.constructor=f,f.prototype.copy=function(e){return n.MeshStandardMaterial.prototype.copy.call(this,e),this.specularMap=e.specularMap,this.specular.copy(e.specular),this.glossinessMap=e.glossinessMap,this.glossiness=e.glossiness,delete this.metalness,delete this.roughness,delete this.metalnessMap,delete this.roughnessMap,this},g.prototype=Object.create(n.Interpolant.prototype),g.prototype.constructor=g,g.prototype.copySampleValue_=function(e){for(var t=this.resultBuffer,r=this.sampleValues,n=this.valueSize,o=e*n*3+n,s=0;s!==n;s++)t[s]=r[o+s];return t},g.prototype.beforeStart_=g.prototype.copySampleValue_,g.prototype.afterEnd_=g.prototype.copySampleValue_,g.prototype.interpolate_=function(e,t,r,n){for(var o=this.resultBuffer,s=this.sampleValues,a=this.valueSize,i=2*a,u=3*a,c=n-t,l=(r-t)/c,h=l*l,d=h*l,p=e*u,f=p-u,m=-2*d+3*h,v=d-h,g=1-m,y=v-h+l,M=0;M!==a;M++){var w=s[f+M+a],T=s[f+M+i]*c,b=s[p+M+a],S=s[p+M]*c;o[M]=g*w+y*T+m*b+v*S}return o};var y=0,M=1,w=2,T=3,b=4,S=5,L=6,A={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},_={9728:n.NearestFilter,9729:n.LinearFilter,9984:n.NearestMipmapNearestFilter,9985:n.LinearMipmapNearestFilter,9986:n.NearestMipmapLinearFilter,9987:n.LinearMipmapLinearFilter},x={33071:n.ClampToEdgeWrapping,33648:n.MirroredRepeatWrapping,10497:n.RepeatWrapping},R={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},E={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv2",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},D={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},C={CUBICSPLINE:void 0,LINEAR:n.InterpolateLinear,STEP:n.InterpolateDiscrete},I="OPAQUE",P="MASK",O="BLEND",U={"image/png":n.RGBAFormat,"image/jpeg":n.RGBFormat};function F(e,t){return"string"!=typeof e||""===e?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}function k(e,t,r){for(var n in r.extensions)void 0===e[n]&&(t.userData.gltfExtensions=t.userData.gltfExtensions||{},t.userData.gltfExtensions[n]=r.extensions[n])}function G(e,t){void 0!==t.extras&&("object"===o(t.extras)?Object.assign(e.userData,t.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+t.extras))}function N(e,t){if(e.updateMorphTargets(),void 0!==t.weights)for(var r=0,n=t.weights.length;r<n;r++)e.morphTargetInfluences[r]=t.weights[r];if(t.extras&&Array.isArray(t.extras.targetNames)){var o=t.extras.targetNames;if(e.morphTargetInfluences.length===o.length){e.morphTargetDictionary={};for(r=0,n=o.length;r<n;r++)e.morphTargetDictionary[o[r]]=r}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function H(e){for(var t="",r=Object.keys(e).sort(),n=0,o=r.length;n<o;n++)t+=r[n]+":"+e[r[n]]+";";return t}function B(e,r,o){this.json=e||{},this.extensions=r||{},this.options=o||{},this.cache=new t,this.primitiveCache={},this.textureLoader=new n.TextureLoader(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.fileLoader=new n.FileLoader(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),"use-credentials"===this.options.crossOrigin&&this.fileLoader.setWithCredentials(!0)}function j(e,t,r){var o=t.attributes,s=[];function a(t,n){return r.getDependency("accessor",t).then((function(t){e.setAttribute(n,t)}))}for(var i in o){var u=E[i]||i.toLowerCase();u in e.attributes||s.push(a(o[i],u))}if(void 0!==t.indices&&!e.index){var c=r.getDependency("accessor",t.indices).then((function(t){e.setIndex(t)}));s.push(c)}return G(e,t),function(e,t,r){var o=t.attributes,s=new n.Box3;if(void 0!==o.POSITION){var a=(p=r.json.accessors[o.POSITION]).min,i=p.max;if(void 0!==a&&void 0!==i){s.set(new n.Vector3(a[0],a[1],a[2]),new n.Vector3(i[0],i[1],i[2]));var u=t.targets;if(void 0!==u)for(var c=new n.Vector3,l=0,h=u.length;l<h;l++){var d=u[l];if(void 0!==d.POSITION){var p;a=(p=r.json.accessors[d.POSITION]).min,i=p.max;void 0!==a&&void 0!==i?(c.setX(Math.max(Math.abs(a[0]),Math.abs(i[0]))),c.setY(Math.max(Math.abs(a[1]),Math.abs(i[1]))),c.setZ(Math.max(Math.abs(a[2]),Math.abs(i[2]))),s.expandByVector(c)):console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}e.boundingBox=s;var f=new n.Sphere;s.getCenter(f.center),f.radius=s.min.distanceTo(s.max)/2,e.boundingSphere=f}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}(e,t,r),Promise.all(s).then((function(){return void 0!==t.targets?function(e,t,r){for(var n=!1,o=!1,s=0,a=t.length;s<a;s++){if(void 0!==(c=t[s]).POSITION&&(n=!0),void 0!==c.NORMAL&&(o=!0),n&&o)break}if(!n&&!o)return Promise.resolve(e);var i=[],u=[];for(s=0,a=t.length;s<a;s++){var c=t[s];if(n){var l=void 0!==c.POSITION?r.getDependency("accessor",c.POSITION):e.attributes.position;i.push(l)}if(o){l=void 0!==c.NORMAL?r.getDependency("accessor",c.NORMAL):e.attributes.normal;u.push(l)}}return Promise.all([Promise.all(i),Promise.all(u)]).then((function(t){var r=t[0],s=t[1];return n&&(e.morphAttributes.position=r),o&&(e.morphAttributes.normal=s),e.morphTargetsRelative=!0,e}))}(e,t.targets,r):e}))}function V(e,t){var r=e.getIndex();if(null===r){var o=[],s=e.getAttribute("position");if(void 0===s)return console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),e;for(var a=0;a<s.count;a++)o.push(a);e.setIndex(o),r=e.getIndex()}var i=r.count-2,u=[];if(t===n.TriangleFanDrawMode)for(a=1;a<=i;a++)u.push(r.getX(0)),u.push(r.getX(a)),u.push(r.getX(a+1));else for(a=0;a<i;a++)a%2==0?(u.push(r.getX(a)),u.push(r.getX(a+1)),u.push(r.getX(a+2))):(u.push(r.getX(a+2)),u.push(r.getX(a+1)),u.push(r.getX(a)));u.length/3!==i&&console.error("THREE.GLTFLoader.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");var c=e.clone();return c.setIndex(u),c}return B.prototype.parse=function(e,t){var r=this,n=this.json,o=this.extensions;this.cache.removeAll(),this.markDefs(),Promise.all([this.getDependencies("scene"),this.getDependencies("animation"),this.getDependencies("camera")]).then((function(t){var s={scene:t[0][n.scene||0],scenes:t[0],animations:t[1],cameras:t[2],asset:n.asset,parser:r,userData:{}};k(o,s,n),G(s,n),e(s)})).catch(t)},B.prototype.markDefs=function(){for(var e=this.json.nodes||[],t=this.json.skins||[],r=this.json.meshes||[],n={},o={},s=0,a=t.length;s<a;s++)for(var i=t[s].joints,u=0,c=i.length;u<c;u++)e[i[u]].isBone=!0;for(var l=0,h=e.length;l<h;l++){var d=e[l];void 0!==d.mesh&&(void 0===n[d.mesh]&&(n[d.mesh]=o[d.mesh]=0),n[d.mesh]++,void 0!==d.skin&&(r[d.mesh].isSkinnedMesh=!0))}this.json.meshReferences=n,this.json.meshUses=o},B.prototype.getDependency=function(e,t){var n=e+":"+t,o=this.cache.get(n);if(!o){switch(e){case"scene":o=this.loadScene(t);break;case"node":o=this.loadNode(t);break;case"mesh":o=this.loadMesh(t);break;case"accessor":o=this.loadAccessor(t);break;case"bufferView":o=this.loadBufferView(t);break;case"buffer":o=this.loadBuffer(t);break;case"material":o=this.loadMaterial(t);break;case"texture":o=this.loadTexture(t);break;case"skin":o=this.loadSkin(t);break;case"animation":o=this.loadAnimation(t);break;case"camera":o=this.loadCamera(t);break;case"light":o=this.extensions[r.KHR_LIGHTS_PUNCTUAL].loadLight(t);break;default:throw new Error("Unknown type: "+e)}this.cache.add(n,o)}return o},B.prototype.getDependencies=function(e){var t=this.cache.get(e);if(!t){var r=this,n=this.json[e+("mesh"===e?"es":"s")]||[];t=Promise.all(n.map((function(t,n){return r.getDependency(e,n)}))),this.cache.add(e,t)}return t},B.prototype.loadBuffer=function(e){var t=this.json.buffers[e],n=this.fileLoader;if(t.type&&"arraybuffer"!==t.type)throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(void 0===t.uri&&0===e)return Promise.resolve(this.extensions[r.KHR_BINARY_GLTF].body);var o=this.options;return new Promise((function(e,r){n.load(F(t.uri,o.path),e,void 0,(function(){r(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))}))}))},B.prototype.loadBufferView=function(e){var t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then((function(e){var r=t.byteLength||0,n=t.byteOffset||0;return e.slice(n,n+r)}))},B.prototype.loadAccessor=function(e){var t=this,r=this.json,o=this.json.accessors[e];if(void 0===o.bufferView&&void 0===o.sparse)return Promise.resolve(null);var s=[];return void 0!==o.bufferView?s.push(this.getDependency("bufferView",o.bufferView)):s.push(null),void 0!==o.sparse&&(s.push(this.getDependency("bufferView",o.sparse.indices.bufferView)),s.push(this.getDependency("bufferView",o.sparse.values.bufferView))),Promise.all(s).then((function(e){var s,a,i=e[0],u=R[o.type],c=A[o.componentType],l=c.BYTES_PER_ELEMENT,h=l*u,d=o.byteOffset||0,p=void 0!==o.bufferView?r.bufferViews[o.bufferView].byteStride:void 0,f=!0===o.normalized;if(p&&p!==h){var m=Math.floor(d/p),v="InterleavedBuffer:"+o.bufferView+":"+o.componentType+":"+m+":"+o.count,g=t.cache.get(v);g||(s=new c(i,m*p,o.count*p/l),g=new n.InterleavedBuffer(s,p/l),t.cache.add(v,g)),a=new n.InterleavedBufferAttribute(g,u,d%p/l,f)}else s=null===i?new c(o.count*u):new c(i,d,o.count*u),a=new n.BufferAttribute(s,u,f);if(void 0!==o.sparse){var y=R.SCALAR,M=A[o.sparse.indices.componentType],w=o.sparse.indices.byteOffset||0,T=o.sparse.values.byteOffset||0,b=new M(e[1],w,o.sparse.count*y),S=new c(e[2],T,o.sparse.count*u);null!==i&&(a=new n.BufferAttribute(a.array.slice(),a.itemSize,a.normalized));for(var L=0,_=b.length;L<_;L++){var x=b[L];if(a.setX(x,S[L*u]),u>=2&&a.setY(x,S[L*u+1]),u>=3&&a.setZ(x,S[L*u+2]),u>=4&&a.setW(x,S[L*u+3]),u>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return a}))},B.prototype.loadTexture=function(e){var t,o=this,s=this.json,a=this.options,i=this.textureLoader,u=window.URL||window.webkitURL,c=s.textures[e],l=c.extensions||{},h=(t=l[r.MSFT_TEXTURE_DDS]?s.images[l[r.MSFT_TEXTURE_DDS].source]:s.images[c.source]).uri,d=!1;return void 0!==t.bufferView&&(h=o.getDependency("bufferView",t.bufferView).then((function(e){d=!0;var r=new Blob([e],{type:t.mimeType});return h=u.createObjectURL(r)}))),Promise.resolve(h).then((function(e){var t=a.manager.getHandler(e);return t||(t=l[r.MSFT_TEXTURE_DDS]?o.extensions[r.MSFT_TEXTURE_DDS].ddsLoader:i),new Promise((function(r,n){t.load(F(e,a.path),r,void 0,n)}))})).then((function(e){!0===d&&u.revokeObjectURL(h),e.flipY=!1,c.name&&(e.name=c.name),t.mimeType in U&&(e.format=U[t.mimeType]);var r=(s.samplers||{})[c.sampler]||{};return e.magFilter=_[r.magFilter]||n.LinearFilter,e.minFilter=_[r.minFilter]||n.LinearMipmapLinearFilter,e.wrapS=x[r.wrapS]||n.RepeatWrapping,e.wrapT=x[r.wrapT]||n.RepeatWrapping,e}))},B.prototype.assignTexture=function(e,t,o){var s=this;return this.getDependency("texture",o.index).then((function(a){if(!a.isCompressedTexture)switch(t){case"aoMap":case"emissiveMap":case"metalnessMap":case"normalMap":case"roughnessMap":a.format=n.RGBFormat}if(void 0===o.texCoord||0==o.texCoord||"aoMap"===t&&1==o.texCoord||console.warn("THREE.GLTFLoader: Custom UV set "+o.texCoord+" for texture "+t+" not yet supported."),s.extensions[r.KHR_TEXTURE_TRANSFORM]){var i=void 0!==o.extensions?o.extensions[r.KHR_TEXTURE_TRANSFORM]:void 0;i&&(a=s.extensions[r.KHR_TEXTURE_TRANSFORM].extendTexture(a,i))}e[t]=a}))},B.prototype.assignFinalMaterial=function(e){var t=e.geometry,r=e.material,o=void 0!==t.attributes.tangent,s=void 0!==t.attributes.color,a=void 0===t.attributes.normal,i=!0===e.isSkinnedMesh,u=Object.keys(t.morphAttributes).length>0,c=u&&void 0!==t.morphAttributes.normal;if(e.isPoints){var l="PointsMaterial:"+r.uuid,h=this.cache.get(l);h||(h=new n.PointsMaterial,n.Material.prototype.copy.call(h,r),h.color.copy(r.color),h.map=r.map,h.sizeAttenuation=!1,this.cache.add(l,h)),r=h}else if(e.isLine){l="LineBasicMaterial:"+r.uuid;var d=this.cache.get(l);d||(d=new n.LineBasicMaterial,n.Material.prototype.copy.call(d,r),d.color.copy(r.color),this.cache.add(l,d)),r=d}if(o||s||a||i||u){l="ClonedMaterial:"+r.uuid+":";r.isGLTFSpecularGlossinessMaterial&&(l+="specular-glossiness:"),i&&(l+="skinning:"),o&&(l+="vertex-tangents:"),s&&(l+="vertex-colors:"),a&&(l+="flat-shading:"),u&&(l+="morph-targets:"),c&&(l+="morph-normals:");var p=this.cache.get(l);p||(p=r.clone(),i&&(p.skinning=!0),o&&(p.vertexTangents=!0),s&&(p.vertexColors=!0),a&&(p.flatShading=!0),u&&(p.morphTargets=!0),c&&(p.morphNormals=!0),this.cache.add(l,p)),r=p}r.aoMap&&void 0===t.attributes.uv2&&void 0!==t.attributes.uv&&t.setAttribute("uv2",new n.BufferAttribute(t.attributes.uv.array,2)),r.normalScale&&!o&&(r.normalScale.y=-r.normalScale.y),e.material=r},B.prototype.loadMaterial=function(e){var t,o=this.json,s=this.extensions,a=o.materials[e],i={},u=a.extensions||{},c=[];if(u[r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS]){var l=s[r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS];t=l.getMaterialType(),c.push(l.extendParams(i,a,this))}else if(u[r.KHR_MATERIALS_UNLIT]){var h=s[r.KHR_MATERIALS_UNLIT];t=h.getMaterialType(),c.push(h.extendParams(i,a,this))}else{t=n.MeshStandardMaterial;var d=a.pbrMetallicRoughness||{};if(i.color=new n.Color(1,1,1),i.opacity=1,Array.isArray(d.baseColorFactor)){var p=d.baseColorFactor;i.color.fromArray(p),i.opacity=p[3]}void 0!==d.baseColorTexture&&c.push(this.assignTexture(i,"map",d.baseColorTexture)),i.metalness=void 0!==d.metallicFactor?d.metallicFactor:1,i.roughness=void 0!==d.roughnessFactor?d.roughnessFactor:1,void 0!==d.metallicRoughnessTexture&&(c.push(this.assignTexture(i,"metalnessMap",d.metallicRoughnessTexture)),c.push(this.assignTexture(i,"roughnessMap",d.metallicRoughnessTexture)))}!0===a.doubleSided&&(i.side=n.DoubleSide);var m=a.alphaMode||I;return m===O?(i.transparent=!0,i.depthWrite=!1):(i.transparent=!1,m===P&&(i.alphaTest=void 0!==a.alphaCutoff?a.alphaCutoff:.5)),void 0!==a.normalTexture&&t!==n.MeshBasicMaterial&&(c.push(this.assignTexture(i,"normalMap",a.normalTexture)),i.normalScale=new n.Vector2(1,1),void 0!==a.normalTexture.scale&&i.normalScale.set(a.normalTexture.scale,a.normalTexture.scale)),void 0!==a.occlusionTexture&&t!==n.MeshBasicMaterial&&(c.push(this.assignTexture(i,"aoMap",a.occlusionTexture)),void 0!==a.occlusionTexture.strength&&(i.aoMapIntensity=a.occlusionTexture.strength)),void 0!==a.emissiveFactor&&t!==n.MeshBasicMaterial&&(i.emissive=(new n.Color).fromArray(a.emissiveFactor)),void 0!==a.emissiveTexture&&t!==n.MeshBasicMaterial&&c.push(this.assignTexture(i,"emissiveMap",a.emissiveTexture)),Promise.all(c).then((function(){var e;return e=t===f?s[r.KHR_MATERIALS_PBR_SPECULAR_GLOSSINESS].createMaterial(i):new t(i),a.name&&(e.name=a.name),e.map&&(e.map.encoding=n.sRGBEncoding),e.emissiveMap&&(e.emissiveMap.encoding=n.sRGBEncoding),G(e,a),a.extensions&&k(s,e,a),e}))},B.prototype.loadGeometries=function(e){var t=this,o=this.extensions,s=this.primitiveCache;function a(e){return o[r.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(e,t).then((function(r){return j(r,e,t)}))}for(var i,u,c=[],l=0,h=e.length;l<h;l++){var d,p=e[l],f=(u=void 0,(u=(i=p).extensions&&i.extensions[r.KHR_DRACO_MESH_COMPRESSION])?"draco:"+u.bufferView+":"+u.indices+":"+H(u.attributes):i.indices+":"+H(i.attributes)+":"+i.mode),m=s[f];if(m)c.push(m.promise);else d=p.extensions&&p.extensions[r.KHR_DRACO_MESH_COMPRESSION]?a(p):j(new n.BufferGeometry,p,t),s[f]={primitive:p,promise:d},c.push(d)}return Promise.all(c)},B.prototype.loadMesh=function(e){for(var t,r=this,o=this.json.meshes[e],s=o.primitives,a=[],i=0,u=s.length;i<u;i++){var c=void 0===s[i].material?(void 0===(t=this.cache).DefaultMaterial&&(t.DefaultMaterial=new n.MeshStandardMaterial({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:n.FrontSide})),t.DefaultMaterial):this.getDependency("material",s[i].material);a.push(c)}return a.push(r.loadGeometries(s)),Promise.all(a).then((function(t){for(var a=t.slice(0,t.length-1),i=t[t.length-1],u=[],c=0,l=i.length;c<l;c++){var h,d=i[c],p=s[c],f=a[c];if(p.mode===b||p.mode===S||p.mode===L||void 0===p.mode)!0!==(h=!0===o.isSkinnedMesh?new n.SkinnedMesh(d,f):new n.Mesh(d,f)).isSkinnedMesh||h.geometry.attributes.skinWeight.normalized||h.normalizeSkinWeights(),p.mode===S?h.geometry=V(h.geometry,n.TriangleStripDrawMode):p.mode===L&&(h.geometry=V(h.geometry,n.TriangleFanDrawMode));else if(p.mode===M)h=new n.LineSegments(d,f);else if(p.mode===T)h=new n.Line(d,f);else if(p.mode===w)h=new n.LineLoop(d,f);else{if(p.mode!==y)throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);h=new n.Points(d,f)}Object.keys(h.geometry.morphAttributes).length>0&&N(h,o),h.name=o.name||"mesh_"+e,i.length>1&&(h.name+="_"+c),G(h,o),r.assignFinalMaterial(h),u.push(h)}if(1===u.length)return u[0];var m=new n.Group;for(c=0,l=u.length;c<l;c++)m.add(u[c]);return m}))},B.prototype.loadCamera=function(e){var t,r=this.json.cameras[e],o=r[r.type];if(o)return"perspective"===r.type?t=new n.PerspectiveCamera(n.MathUtils.radToDeg(o.yfov),o.aspectRatio||1,o.znear||1,o.zfar||2e6):"orthographic"===r.type&&(t=new n.OrthographicCamera(o.xmag/-2,o.xmag/2,o.ymag/2,o.ymag/-2,o.znear,o.zfar)),r.name&&(t.name=r.name),G(t,r),Promise.resolve(t);console.warn("THREE.GLTFLoader: Missing camera parameters.")},B.prototype.loadSkin=function(e){var t=this.json.skins[e],r={joints:t.joints};return void 0===t.inverseBindMatrices?Promise.resolve(r):this.getDependency("accessor",t.inverseBindMatrices).then((function(e){return r.inverseBindMatrices=e,r}))},B.prototype.loadAnimation=function(e){for(var t=this.json.animations[e],r=[],o=[],s=[],a=[],i=[],u=0,c=t.channels.length;u<c;u++){var l=t.channels[u],h=t.samplers[l.sampler],d=l.target,p=void 0!==d.node?d.node:d.id,f=void 0!==t.parameters?t.parameters[h.input]:h.input,m=void 0!==t.parameters?t.parameters[h.output]:h.output;r.push(this.getDependency("node",p)),o.push(this.getDependency("accessor",f)),s.push(this.getDependency("accessor",m)),a.push(h),i.push(d)}return Promise.all([Promise.all(r),Promise.all(o),Promise.all(s),Promise.all(a),Promise.all(i)]).then((function(r){for(var o=r[0],s=r[1],a=r[2],i=r[3],u=r[4],c=[],l=0,h=o.length;l<h;l++){var d=o[l],p=s[l],f=a[l],m=i[l],v=u[l];if(void 0!==d){var y;switch(d.updateMatrix(),d.matrixAutoUpdate=!0,D[v.path]){case D.weights:y=n.NumberKeyframeTrack;break;case D.rotation:y=n.QuaternionKeyframeTrack;break;case D.position:case D.scale:default:y=n.VectorKeyframeTrack}var M=d.name?d.name:d.uuid,w=void 0!==m.interpolation?C[m.interpolation]:n.InterpolateLinear,T=[];D[v.path]===D.weights?d.traverse((function(e){!0===e.isMesh&&e.morphTargetInfluences&&T.push(e.name?e.name:e.uuid)})):T.push(M);var b=f.array;if(f.normalized){var S;if(b.constructor===Int8Array)S=1/127;else if(b.constructor===Uint8Array)S=1/255;else if(b.constructor==Int16Array)S=1/32767;else{if(b.constructor!==Uint16Array)throw new Error("THREE.GLTFLoader: Unsupported output accessor component type.");S=1/65535}for(var L=new Float32Array(b.length),A=0,_=b.length;A<_;A++)L[A]=b[A]*S;b=L}for(A=0,_=T.length;A<_;A++){var x=new y(T[A]+"."+D[v.path],p.array,b,w);"CUBICSPLINE"===m.interpolation&&(x.createInterpolant=function(e){return new g(this.times,this.values,this.getValueSize()/3,e)},x.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0),c.push(x)}}}var R=t.name?t.name:"animation_"+e;return new n.AnimationClip(R,void 0,c)}))},B.prototype.loadNode=function(e){var t,o=this.json,s=this.extensions,a=this,i=o.meshReferences,u=o.meshUses,c=o.nodes[e];return(t=[],void 0!==c.mesh&&t.push(a.getDependency("mesh",c.mesh).then((function(e){var t;if(i[c.mesh]>1){var r=u[c.mesh]++;(t=e.clone()).name+="_instance_"+r}else t=e;return void 0!==c.weights&&t.traverse((function(e){if(e.isMesh)for(var t=0,r=c.weights.length;t<r;t++)e.morphTargetInfluences[t]=c.weights[t]})),t}))),void 0!==c.camera&&t.push(a.getDependency("camera",c.camera)),c.extensions&&c.extensions[r.KHR_LIGHTS_PUNCTUAL]&&void 0!==c.extensions[r.KHR_LIGHTS_PUNCTUAL].light&&t.push(a.getDependency("light",c.extensions[r.KHR_LIGHTS_PUNCTUAL].light)),Promise.all(t)).then((function(e){var t;if((t=!0===c.isBone?new n.Bone:e.length>1?new n.Group:1===e.length?e[0]:new n.Object3D)!==e[0])for(var r=0,o=e.length;r<o;r++)t.add(e[r]);if(c.name&&(t.userData.name=c.name,t.name=n.PropertyBinding.sanitizeNodeName(c.name)),G(t,c),c.extensions&&k(s,t,c),void 0!==c.matrix){var a=new n.Matrix4;a.fromArray(c.matrix),t.applyMatrix4(a)}else void 0!==c.translation&&t.position.fromArray(c.translation),void 0!==c.rotation&&t.quaternion.fromArray(c.rotation),void 0!==c.scale&&t.scale.fromArray(c.scale);return t}))},B.prototype.loadScene=function(){function e(t,r,o,s){var a=o.nodes[t];return s.getDependency("node",t).then((function(e){return void 0===a.skin?e:s.getDependency("skin",a.skin).then((function(e){for(var r=[],n=0,o=(t=e).joints.length;n<o;n++)r.push(s.getDependency("node",t.joints[n]));return Promise.all(r)})).then((function(r){return e.traverse((function(e){if(e.isMesh){for(var o=[],s=[],a=0,i=r.length;a<i;a++){var u=r[a];if(u){o.push(u);var c=new n.Matrix4;void 0!==t.inverseBindMatrices&&c.fromArray(t.inverseBindMatrices.array,16*a),s.push(c)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[a])}e.bind(new n.Skeleton(o,s),e.matrixWorld)}})),e}));var t})).then((function(t){r.add(t);var n=[];if(a.children)for(var i=a.children,u=0,c=i.length;u<c;u++){var l=i[u];n.push(e(l,t,o,s))}return Promise.all(n)}))}return function(t){var r=this.json,o=this.extensions,s=this.json.scenes[t],a=new n.Group;s.name&&(a.name=s.name),G(a,s),s.extensions&&k(o,a,s);for(var i=s.nodes||[],u=[],c=0,l=i.length;c<l;c++)u.push(e(i[c],a,r,this));return Promise.all(u).then((function(){return a}))}}(),e}()},1901:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(4),o=r(1860),s=r(1902),a=r(1903),i=r(8),u=r(1849),c=function(){function e(e,t,r,n,s){this.datasetName=e,this.config=t,this.sceneGroup=n,this.view=s,this.gltfMeshes={},this.currentVertexCount=0,this.requestQueue=new o.BinaryHeap((function(e){return e.weight})),this.MAX_REQUEST_QUEUE_SIZE=3e3,this.CAMERA_VELOCITY_THRESHOLD=.25,this.active=!0,this.parser=r.parser,this.parseGLTFMeshes()}return e.prototype.getClosestMeshes=function(e,t,r){return this.buildRequestQueue(e,t,r),Promise.all(this.processRequestQueues(e,r))},e.prototype.clean=function(){var e=this;this.active=!1,this.requestQueue.clean(),Object.keys(this.gltfMeshes).forEach((function(t){return e.removeMesh(e.gltfMeshes[t])})),this.gltfMeshes={}},e.prototype.remove=function(e){var t=this.gltfMeshes[e.name];this.removeMesh(t)},e.prototype.parseGLTFMeshes=function(){for(var e=0,t=this.parser.json,r=0,o=t.meshes;r<o.length;r++){var a=o[r];a.name+="_"+this.datasetName;for(var i=0,u=a.primitives;i<u.length;i++){var c=u[i].attributes.POSITION;if(void 0!==c){var l=t.accessors[c],h=new n.Box3((new n.Vector3).fromArray(l.min),(new n.Vector3).fromArray(l.max)),d=a.primitives.map((function(e){return e.material}));this.gltfMeshes[a.name]=new s.GLTFMeshItem(e,h,l.count,a.name,d,!1)}}e++}},e.prototype.buildRequestQueue=function(t,r,o){var a=this,i=function(i){var c=u.gltfMeshes[i],l=new n.Sphere,h=c.box.clone();h.getBoundingSphere(l);var d=h.distanceToPoint(t.position),p=e.projectSphereDiameter(l.radius,t.fov,d,r.w),f=[];if(f.push((function(){return!o.intersectsBox(h)})),f.push((function(){return p<=a.config.bshpherePixelDiameter})),f.push((function(){return a.currentVertexCount>=a.config.getCurrentVertexBudget()})),f.push((function(){return d>=a.config.maxDistance})),f.some((function(e){return e()})))return u.removeMesh(c),"continue";c.requested||(u.requestQueue.push(new s.RequestQueueItem(c.id,i,c.vertexCount,d,u.setLOD(c))),c.requested=!0)},u=this;for(var c in this.gltfMeshes)i(c)},e.prototype.setLOD=function(e){var t=this,r=e.materials.map((function(e){return t.parser.json.materials[e]})).filter((function(e){return e.extensions&&e.extensions.MSFT_lod})).map((function(e){return e.extensions.MSFT_lod.ids}));return 0===r.length?[]:(this.parser.json.meshes[e.id].primitives.forEach((function(e,t){e.material=r[t].slice(-1).pop()})),r[0])},e.projectSphereDiameter=function(e,t,r,n){var o=t/2*Math.PI/180,s=e/Math.tan(o)/Math.sqrt(r*r-e*e);return 2*Math.floor(s*n*.5)||1/0},e.prototype.getDistance=function(e,t){var r=this.gltfMeshes[t],o=new n.Sphere,s=r.box.clone();return s.getBoundingSphere(o),s.distanceToPoint(e.position)},e.prototype.processRequestQueues=function(e,t){for(var r=this,n=0,o=[],s=function(){var s=a.requestQueue.pop();if(a.currentVertexCount+s.vertexCount>a.config.getCurrentVertexBudget())return a.requestQueue.push(s),"break";var i=[];if(i.push((function(){return t.intersectsBox(r.gltfMeshes[s.meshName].box)})),i.push((function(){return r.getDistance(e,s.meshName)<=s.weight})),i.every((function(e){return e()})))return o.push(a.requestMesh(s,e)),a.currentVertexCount+=s.vertexCount,n++,"continue";a.gltfMeshes[s.meshName].requested=!1},a=this;!this.requestQueue.empty()&&n<=this.config.maxLoadRequests;){if("break"===s())break}return this.requestQueue.size()>this.MAX_REQUEST_QUEUE_SIZE&&this.requestQueue.clean(),o},e.prototype.requestMesh=function(e,t){var r=this;return this.parser.getDependency("mesh",e.id).then((function(n){if(r.active){var o=new a.GLTFMesh(n,e.weight,r.datasetName,r.config.showWireframe,r.gltfMeshes[e.meshName].box);return o.time=Date.now(),o.cameraPosition=t.position.clone(),o.onAfterRender=r.getOnAfterRender(e,o),o}}))},e.prototype.requestMaterial=function(e,t){var r=this;return this.parser.getDependency("material",e).then((function(e){if(r.active){var n=t.material;n.name=e.name,n.uniforms.tDiffuse.value.dispose(),n.uniforms.tDiffuse={value:e.map},n.uniformsNeedUpdate=!0,t.textureLoading=u.Status.LOADED,r.view.invalidateScene()}}))},e.prototype.getOnAfterRender=function(e,t){var r=this;return function(n,o,s,a){a.computeBoundingBox();var c=a.boundingBox.distanceToPoint(s.position),l=s.position.distanceTo(t.cameraPosition),h=Date.now()-t.time,d=l/h/1e3;if(c<=r.config.maxDistance/3&&h<50&&d<r.CAMERA_VELOCITY_THRESHOLD&&t.textureLoading===u.Status.PENDING&&(t.textureLoading=u.Status.LOADING,e.LOD.length>0)){var p=0;r.config.lod>=0&&e.LOD.length>r.config.lod&&(p=r.config.lod),r.requestMaterial(e.LOD[p],t).catch(i.handleWarning)}t.cameraPosition=s.position.clone(),t.time=Date.now()}},e.prototype.removeMesh=function(e){e.requested=!1;for(var t=this.sceneGroup.getObjectByName(e.name);void 0!==t;)this.currentVertexCount-=e.vertexCount,this.sceneGroup.remove(t),this.disposeMesh(t,!0),t=this.sceneGroup.getObjectByName(e.name)},e.prototype.disposeMesh=function(e,t){var r,n;if(e){this.gltfMeshes[e.name].requested=!1,t&&e.geometry.dispose();var o=e.material,s=null===(n=null===(r=o.uniforms)||void 0===r?void 0:r.tDiffuse)||void 0===n?void 0:n.value;s&&s.dispose(),o.dispose()}},e}();t.MeshLoader=c},1902:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e,t,r,n,o,s){this.id=e,this.box=t,this.vertexCount=r,this.name=n,this.materials=o,this.requested=s};t.GLTFMeshItem=n;var o=function(e,t,r,n,o){this.id=e,this.meshName=t,this.vertexCount=r,this.weight=n,this.LOD=o};t.RequestQueueItem=o},1903:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var s=r(4),a=r(1849),i=function(e){function t(t,n,o,i,u){var c=e.call(this,t.geometry,t.material)||this;c.weight=n,c.datasetName=o,c.showWireframe=i,c.GLTFBox=u,c.textureLoading=a.Status.PENDING,c.name=t.name;var l=c.material,h=new s.ShaderMaterial;return h.wireframe=i,h.side=s.DoubleSide,h.name=l.name,h.fragmentShader=r(1904),h.vertexShader=r(1905),h.uniforms={tDiffuse:{value:l.map}},c.material=h,c}return o(t,e),t}(s.Mesh);t.GLTFMesh=i},1904:function(e,t){e.exports="varying vec2 vUv;\nuniform sampler2D tDiffuse;\n\nvoid main()\n{\n\tgl_FragColor = texture2D(tDiffuse, vUv);\n}"},1905:function(e,t){e.exports="varying vec2 vUv;\n\nvoid main()\n{\n\tvUv = uv;\n\tmat4 transformation = projectionMatrix * modelViewMatrix;\n\tgl_Position = transformation * vec4(position, 1.0);\n}"},1935:function(e,t,r){"use strict";var n,o=this&&this.__extends||(n=function(e,t){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r])})(e,t)},function(e,t){function r(){this.constructor=e}n(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(t,"__esModule",{value:!0});var s=r(80),a=r(0),i=r(1898),u=(r(65),r(31),r(72),r(0)),c=r(65),l=r(72),h=r(31),d=function(e){function t(t,r,n){var o=e.call(this)||this;return o.ViewMenuService=t,o.JWTTokenService=r,o.DatasetRepository=n,o}return o(t,e),t.prototype.create=function(e,t,r){return new i.MeshLayer(e,t,this.ViewMenuService,this.JWTTokenService,this.DatasetRepository)},t.ɵfac=function(e){return new(e||t)(u.ɵɵinject(c.ViewMenuService),u.ɵɵinject(l.JWTTokenService),u.ɵɵinject(h.DatasetRepository))},t.ɵprov=u.ɵɵdefineInjectable({token:t,factory:t.ɵfac,providedIn:"root"}),t}(s.SceneLayerFactory);t.MeshLayerFactory=d,u.ɵsetClassMetadata(d,[{type:a.Injectable,args:[{providedIn:"root"}]}],(function(){return[{type:c.ViewMenuService},{type:l.JWTTokenService},{type:h.DatasetRepository}]}),null)}}]);
|