1 line
1.2 KiB
JavaScript
1 line
1.2 KiB
JavaScript
import{C as e,E as t,J as n,K as r}from"./three.module-BFsVh7r1.js";import{t as i}from"./fflate.module-BIQmJeC9.js";import{ColladaLoader as a}from"./ColladaLoader-DTiuvWJL.js";var o=class extends r{constructor(e){super(e)}load(t,n,r,i){let a=this,o=new e(a.manager);o.setPath(a.path),o.setResponseType(`arraybuffer`),o.setRequestHeader(a.requestHeader),o.setWithCredentials(a.withCredentials),o.load(t,function(e){try{n(a.parse(e))}catch(e){i?i(e):console.error(e),a.manager.itemError(t)}},r,i)}parse(e){function r(e){for(let t in s)if(t.slice(-e.length)===e)return s[t]}let o=new n;o.setURLModifier(function(e){let t=r(e);if(t){console.log(`Loading`,e);let n=new Blob([t.buffer],{type:`application/octet-stream`});return URL.createObjectURL(n)}return e});let s=i(new Uint8Array(e));if(s[`doc.kml`]){let e=new DOMParser().parseFromString(new TextDecoder().decode(s[`doc.kml`]),`application/xml`).querySelector(`Placemark Model Link href`);if(e)return new a(o).parse(new TextDecoder().decode(s[e.textContent]))}else{console.warn(`KMZLoader: Missing doc.kml file.`);for(let e in s)if(e.split(`.`).pop().toLowerCase()===`dae`)return new a(o).parse(new TextDecoder().decode(s[e]))}return console.error(`KMZLoader: Couldn't find .dae file.`),{scene:new t}}};export{o as KMZLoader}; |