UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.78 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{loadLyr3DWorkerWASM as s}from"../../../libs/lyr3d/Lyr3DModule.js";let t,n;async function e(s){await l();const t={status:1,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[]};if(s.inputs.length<1)return{result:t,transferList:[]};const e={ptrs:[],sizes:[]};for(const l of s.inputs){const s=n._malloc(l.byteLength);new Uint8Array(n.HEAPU8.buffer,s,l.byteLength).set(new Uint8Array(l)),e.ptrs.push(s),e.sizes.push(l.byteLength)}const i=n.process(s.jobDescJson,s.id,e,s.isMissingResourceCase);t.status=i.status,t.missingInputUrls=i.missingInputUrls.slice();const r=0===i.status&&i.data,o=2===t.status&&t.missingInputUrls.length>0;t.jobDescJson=i.jobDescJson.slice(),t.error=i.error.slice(),r?t.data=i.data.slice():o&&(t.originalInputs=s.inputs.slice());for(let l=0;l<e.ptrs.length;++l)n._free(e.ptrs[l]);const a=[];if(r)a.push(t.data.buffer);else if(o)for(const n of s.inputs)a.push(n);return{result:t,transferList:a}}async function i(s){await l(),n.add_spatial_reference_info(s.sr,s.isGCS,s.toMetersXY,s.toMetersZ)}function r(s){if(!n)return{success:!1,modifications:null};const t=n._malloc(8*s.modifications.length),e=new Float64Array(n.HEAPF64.buffer,t,s.modifications.length);e.set(s.modifications);const i=n.switch_mesh_modification_polygon_vcs(t,s.modifications.length,s.inVCS);let r=null;return i&&(r=e.slice()),n._free(t),{success:i,modifications:r}}function o(){n&&(n.uninitialize_lyr3d_worker_wasm(),n=null)}function l(){return n?Promise.resolve():(t||(t=s().then(s=>{n=s,n.initialize_lyr3d_worker_wasm(),t=null})),t)}function a(){return null!==n}export{i as addSpatialReferenceInfo,o as destroyWasm,l as initialize,a as isInitialized,e as process,r as switchMeshModificationPolygonVCSSync};