@loaders.gl/draco 3.4.0-alpha.2 → 3.4.0-alpha.3

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 (53) hide show
  1. package/dist/draco-loader.js +1 -1
  2. package/dist/draco-nodejs-worker.js +46 -46
  3. package/dist/draco-nodejs-worker.js.map +2 -2
  4. package/dist/draco-worker.js +1 -1
  5. package/dist/draco-writer-nodejs-worker.js +55 -55
  6. package/dist/draco-writer-nodejs-worker.js.map +2 -2
  7. package/dist/draco-writer-worker.js +2 -2
  8. package/dist/es5/draco-loader.js +0 -2
  9. package/dist/es5/draco-loader.js.map +1 -1
  10. package/dist/es5/draco-writer-nodejs.js.map +1 -1
  11. package/dist/es5/draco-writer.js +18 -21
  12. package/dist/es5/draco-writer.js.map +1 -1
  13. package/dist/es5/draco3d/draco3d-types.js +16 -16
  14. package/dist/es5/draco3d/draco3d-types.js.map +1 -1
  15. package/dist/es5/index.js +17 -20
  16. package/dist/es5/index.js.map +1 -1
  17. package/dist/es5/lib/draco-builder.js +12 -41
  18. package/dist/es5/lib/draco-builder.js.map +1 -1
  19. package/dist/es5/lib/draco-module-loader.js +95 -104
  20. package/dist/es5/lib/draco-module-loader.js.map +1 -1
  21. package/dist/es5/lib/draco-parser.js +16 -61
  22. package/dist/es5/lib/draco-parser.js.map +1 -1
  23. package/dist/es5/lib/utils/get-draco-schema.js.map +1 -1
  24. package/dist/es5/lib/utils/version.js +1 -1
  25. package/dist/es5/lib/utils/version.js.map +1 -1
  26. package/dist/es5/workers/draco-nodejs-worker.js.map +1 -1
  27. package/dist/es5/workers/draco-worker.js.map +1 -1
  28. package/dist/es5/workers/draco-writer-nodejs-worker.js +29 -31
  29. package/dist/es5/workers/draco-writer-nodejs-worker.js.map +1 -1
  30. package/dist/es5/workers/draco-writer-worker.js +29 -31
  31. package/dist/es5/workers/draco-writer-worker.js.map +1 -1
  32. package/dist/esm/bundle.js +0 -1
  33. package/dist/esm/bundle.js.map +1 -1
  34. package/dist/esm/draco-loader.js +0 -1
  35. package/dist/esm/draco-loader.js.map +1 -1
  36. package/dist/esm/draco-writer-nodejs.js +0 -1
  37. package/dist/esm/draco-writer-nodejs.js.map +1 -1
  38. package/dist/esm/draco-writer.js +0 -1
  39. package/dist/esm/draco-writer.js.map +1 -1
  40. package/dist/esm/draco3d/draco3d-types.js +12 -18
  41. package/dist/esm/draco3d/draco3d-types.js.map +1 -1
  42. package/dist/esm/index.js +0 -5
  43. package/dist/esm/index.js.map +1 -1
  44. package/dist/esm/lib/draco-builder.js +0 -17
  45. package/dist/esm/lib/draco-builder.js.map +1 -1
  46. package/dist/esm/lib/draco-module-loader.js +0 -6
  47. package/dist/esm/lib/draco-module-loader.js.map +1 -1
  48. package/dist/esm/lib/draco-parser.js +0 -28
  49. package/dist/esm/lib/draco-parser.js.map +1 -1
  50. package/dist/esm/lib/utils/get-draco-schema.js.map +1 -1
  51. package/dist/esm/lib/utils/version.js +1 -2
  52. package/dist/esm/lib/utils/version.js.map +1 -1
  53. package/package.json +6 -6
@@ -1,4 +1,4 @@
1
- (()=>{var x=Object.create;var w=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var $=t=>w(t,"__esModule",{value:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var j=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of v(e))!V.call(t,o)&&o!=="default"&&w(t,o,{get:()=>e[o],enumerable:!(r=N(e,o))||r.enumerable});return t},U=t=>j($(w(t!=null?x(F(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var W=q(()=>{});var b="3.4.0-alpha.2";function D(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var c={self:typeof self!="undefined"&&self,window:typeof window!="undefined"&&window,global:typeof global!="undefined"&&global,document:typeof document!="undefined"&&document},ie=c.self||c.window||c.global||{},de=c.window||c.self||c.global||{},k=c.global||c.self||c.window||{},ce=c.document||{};var h=typeof process!="object"||String(process)!=="[object process]"||process.browser,g=typeof importScripts=="function",le=typeof window!="undefined"&&typeof window.orientation!="undefined",T=typeof process!="undefined"&&process.version&&/v([0-9]*)/.exec(process.version),ue=T&&parseFloat(T[1])||0;function M(t,e=!0,r){let o=r||new Set;if(t){if(P(t))o.add(t);else if(P(t.buffer))o.add(t.buffer);else if(!ArrayBuffer.isView(t)){if(e&&typeof t=="object")for(let a in t)M(t[a],e,o)}}return r===void 0?Array.from(o):[]}function P(t){return t?t instanceof ArrayBuffer||typeof MessagePort!="undefined"&&t instanceof MessagePort||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap||typeof OffscreenCanvas!="undefined"&&t instanceof OffscreenCanvas:!1}function f(){let parentPort;try{eval("globalThis.parentPort = require('worker_threads').parentPort"),parentPort=globalThis.parentPort}catch{}return parentPort}var _=new Map,u=class{static inWorkerThread(){return typeof self!="undefined"||Boolean(f())}static set onmessage(e){function r(a){let s=f(),{type:i,payload:n}=s?a:a.data;e(i,n)}let o=f();o?(o.on("message",r),o.on("exit",()=>console.debug("Node worker closing"))):globalThis.onmessage=r}static addEventListener(e){let r=_.get(e);r||(r=a=>{if(!z(a))return;let s=f(),{type:i,payload:n}=s?a:a.data;e(i,n)}),f()?console.error("not implemented"):globalThis.addEventListener("message",r)}static removeEventListener(e){let r=_.get(e);_.delete(e),f()?console.error("not implemented"):globalThis.removeEventListener("message",r)}static postMessage(e,r){let o={source:"loaders.gl",type:e,payload:r},a=M(r),s=f();s?s.postMessage(o,a):globalThis.postMessage(o,a)}};function z(t){let{type:e,data:r}=t;return e==="message"&&r&&typeof r.source=="string"&&r.source.startsWith("loaders.gl")}var p=U(W());var G="beta",Q=typeof b!="undefined"?b:G,A={};async function E(t,e=null,r={}){return e&&(t=B(t,e,r)),A[t]=A[t]||X(t),await A[t]}function B(t,e,r){if(t.startsWith("http"))return t;let o=r.modules||{};return o[t]?o[t]:h?r.CDN?(D(r.CDN.startsWith("http")),`${r.CDN}/${e}@${Q}/dist/libs/${t}`):g?`../src/libs/${t}`:`modules/${e}/src/libs/${t}`:`modules/${e}/dist/libs/${t}`}async function X(t){if(t.endsWith("wasm"))return await(await fetch(t)).arrayBuffer();if(!h)try{return p&&p.requireFromFile&&await p.requireFromFile(t)}catch{return null}if(g)return importScripts(t);let r=await(await fetch(t)).text();return J(r,t)}function J(t,e){if(!h)return p.requireFromString&&p.requireFromString(t,e);if(g)return eval.call(k,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}var I={POSITION:"POSITION",NORMAL:"NORMAL",COLOR_0:"COLOR",TEXCOORD_0:"TEX_COORD"},H=()=>{},m=class{constructor(e){this.draco=e,this.dracoEncoder=new this.draco.Encoder,this.dracoMeshBuilder=new this.draco.MeshBuilder,this.dracoMetadataBuilder=new this.draco.MetadataBuilder}destroy(){this.destroyEncodedObject(this.dracoMeshBuilder),this.destroyEncodedObject(this.dracoEncoder),this.destroyEncodedObject(this.dracoMetadataBuilder),this.dracoMeshBuilder=null,this.dracoEncoder=null,this.draco=null}destroyEncodedObject(e){e&&this.draco.destroy(e)}encodeSync(e,r={}){return this.log=H,this._setOptions(r),r.pointcloud?this._encodePointCloud(e,r):this._encodeMesh(e,r)}_getAttributesFromMesh(e){let r={...e,...e.attributes};return e.indices&&(r.indices=e.indices),r}_encodePointCloud(e,r){let o=new this.draco.PointCloud;r.metadata&&this._addGeometryMetadata(o,r.metadata);let a=this._getAttributesFromMesh(e);this._createDracoPointCloud(o,a,r);let s=new this.draco.DracoInt8Array;try{let i=this.dracoEncoder.EncodePointCloudToDracoBuffer(o,!1,s);if(!(i>0))throw new Error("Draco encoding failed.");return this.log(`DRACO encoded ${o.num_points()} points
1
+ (()=>{var x=Object.create;var w=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,V=Object.prototype.hasOwnProperty;var $=t=>w(t,"__esModule",{value:!0});var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var j=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of v(e))!V.call(t,o)&&o!=="default"&&w(t,o,{get:()=>e[o],enumerable:!(r=N(e,o))||r.enumerable});return t},U=t=>j($(w(t!=null?x(F(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var W=q(()=>{});var b="3.4.0-alpha.3";function D(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var c={self:typeof self!="undefined"&&self,window:typeof window!="undefined"&&window,global:typeof global!="undefined"&&global,document:typeof document!="undefined"&&document},ie=c.self||c.window||c.global||{},de=c.window||c.self||c.global||{},k=c.global||c.self||c.window||{},ce=c.document||{};var h=typeof process!="object"||String(process)!=="[object process]"||process.browser,g=typeof importScripts=="function",le=typeof window!="undefined"&&typeof window.orientation!="undefined",T=typeof process!="undefined"&&process.version&&/v([0-9]*)/.exec(process.version),ue=T&&parseFloat(T[1])||0;function M(t,e=!0,r){let o=r||new Set;if(t){if(P(t))o.add(t);else if(P(t.buffer))o.add(t.buffer);else if(!ArrayBuffer.isView(t)){if(e&&typeof t=="object")for(let a in t)M(t[a],e,o)}}return r===void 0?Array.from(o):[]}function P(t){return t?t instanceof ArrayBuffer||typeof MessagePort!="undefined"&&t instanceof MessagePort||typeof ImageBitmap!="undefined"&&t instanceof ImageBitmap||typeof OffscreenCanvas!="undefined"&&t instanceof OffscreenCanvas:!1}function f(){let parentPort;try{eval("globalThis.parentPort = require('worker_threads').parentPort"),parentPort=globalThis.parentPort}catch{}return parentPort}var _=new Map,u=class{static inWorkerThread(){return typeof self!="undefined"||Boolean(f())}static set onmessage(e){function r(a){let s=f(),{type:i,payload:n}=s?a:a.data;e(i,n)}let o=f();o?(o.on("message",r),o.on("exit",()=>console.debug("Node worker closing"))):globalThis.onmessage=r}static addEventListener(e){let r=_.get(e);r||(r=a=>{if(!z(a))return;let s=f(),{type:i,payload:n}=s?a:a.data;e(i,n)}),f()?console.error("not implemented"):globalThis.addEventListener("message",r)}static removeEventListener(e){let r=_.get(e);_.delete(e),f()?console.error("not implemented"):globalThis.removeEventListener("message",r)}static postMessage(e,r){let o={source:"loaders.gl",type:e,payload:r},a=M(r),s=f();s?s.postMessage(o,a):globalThis.postMessage(o,a)}};function z(t){let{type:e,data:r}=t;return e==="message"&&r&&typeof r.source=="string"&&r.source.startsWith("loaders.gl")}var p=U(W());var G="beta",Q=typeof b!="undefined"?b:G,A={};async function E(t,e=null,r={}){return e&&(t=B(t,e,r)),A[t]=A[t]||X(t),await A[t]}function B(t,e,r){if(t.startsWith("http"))return t;let o=r.modules||{};return o[t]?o[t]:h?r.CDN?(D(r.CDN.startsWith("http")),`${r.CDN}/${e}@${Q}/dist/libs/${t}`):g?`../src/libs/${t}`:`modules/${e}/src/libs/${t}`:`modules/${e}/dist/libs/${t}`}async function X(t){if(t.endsWith("wasm"))return await(await fetch(t)).arrayBuffer();if(!h)try{return p&&p.requireFromFile&&await p.requireFromFile(t)}catch{return null}if(g)return importScripts(t);let r=await(await fetch(t)).text();return J(r,t)}function J(t,e){if(!h)return p.requireFromString&&p.requireFromString(t,e);if(g)return eval.call(k,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}var I={POSITION:"POSITION",NORMAL:"NORMAL",COLOR_0:"COLOR",TEXCOORD_0:"TEX_COORD"},H=()=>{},m=class{constructor(e){this.draco=e,this.dracoEncoder=new this.draco.Encoder,this.dracoMeshBuilder=new this.draco.MeshBuilder,this.dracoMetadataBuilder=new this.draco.MetadataBuilder}destroy(){this.destroyEncodedObject(this.dracoMeshBuilder),this.destroyEncodedObject(this.dracoEncoder),this.destroyEncodedObject(this.dracoMetadataBuilder),this.dracoMeshBuilder=null,this.dracoEncoder=null,this.draco=null}destroyEncodedObject(e){e&&this.draco.destroy(e)}encodeSync(e,r={}){return this.log=H,this._setOptions(r),r.pointcloud?this._encodePointCloud(e,r):this._encodeMesh(e,r)}_getAttributesFromMesh(e){let r={...e,...e.attributes};return e.indices&&(r.indices=e.indices),r}_encodePointCloud(e,r){let o=new this.draco.PointCloud;r.metadata&&this._addGeometryMetadata(o,r.metadata);let a=this._getAttributesFromMesh(e);this._createDracoPointCloud(o,a,r);let s=new this.draco.DracoInt8Array;try{let i=this.dracoEncoder.EncodePointCloudToDracoBuffer(o,!1,s);if(!(i>0))throw new Error("Draco encoding failed.");return this.log(`DRACO encoded ${o.num_points()} points
2
2
  with ${o.num_attributes()} attributes into ${i} bytes`),R(s)}finally{this.destroyEncodedObject(s),this.destroyEncodedObject(o)}}_encodeMesh(e,r){let o=new this.draco.Mesh;r.metadata&&this._addGeometryMetadata(o,r.metadata);let a=this._getAttributesFromMesh(e);this._createDracoMesh(o,a,r);let s=new this.draco.DracoInt8Array;try{let i=this.dracoEncoder.EncodeMeshToDracoBuffer(o,s);if(i<=0)throw new Error("Draco encoding failed.");return this.log(`DRACO encoded ${o.num_points()} points
3
- with ${o.num_attributes()} attributes into ${i} bytes`),R(s)}finally{this.destroyEncodedObject(s),this.destroyEncodedObject(o)}}_setOptions(e){if("speed"in e&&this.dracoEncoder.SetSpeedOptions(...e.speed),"method"in e){let r=this.draco[e.method||"MESH_SEQUENTIAL_ENCODING"];this.dracoEncoder.SetEncodingMethod(r)}if("quantization"in e)for(let r in e.quantization){let o=e.quantization[r],a=this.draco[r];this.dracoEncoder.SetAttributeQuantization(a,o)}}_createDracoMesh(e,r,o){let a=o.attributesMetadata||{};try{let s=this._getPositionAttribute(r);if(!s)throw new Error("positions");let i=s.length/3;for(let n in r){let d=r[n];n=I[n]||n;let l=this._addAttributeToMesh(e,n,d,i);l!==-1&&this._addAttributeMetadata(e,l,{name:n,...a[n]||{}})}}catch(s){throw this.destroyEncodedObject(e),s}return e}_createDracoPointCloud(e,r,o){let a=o.attributesMetadata||{};try{let s=this._getPositionAttribute(r);if(!s)throw new Error("positions");let i=s.length/3;for(let n in r){let d=r[n];n=I[n]||n;let l=this._addAttributeToMesh(e,n,d,i);l!==-1&&this._addAttributeMetadata(e,l,{name:n,...a[n]||{}})}}catch(s){throw this.destroyEncodedObject(e),s}return e}_addAttributeToMesh(e,r,o,a){if(!ArrayBuffer.isView(o))return-1;let s=this._getDracoAttributeType(r),i=o.length/a;if(s==="indices"){let l=o.length/3;return this.log(`Adding attribute ${r}, size ${l}`),this.dracoMeshBuilder.AddFacesToMesh(e,l,o),-1}this.log(`Adding attribute ${r}, size ${i}`);let n=this.dracoMeshBuilder,{buffer:d}=o;switch(o.constructor){case Int8Array:return n.AddInt8Attribute(e,s,a,i,new Int8Array(d));case Int16Array:return n.AddInt16Attribute(e,s,a,i,new Int16Array(d));case Int32Array:return n.AddInt32Attribute(e,s,a,i,new Int32Array(d));case Uint8Array:case Uint8ClampedArray:return n.AddUInt8Attribute(e,s,a,i,new Uint8Array(d));case Uint16Array:return n.AddUInt16Attribute(e,s,a,i,new Uint16Array(d));case Uint32Array:return n.AddUInt32Attribute(e,s,a,i,new Uint32Array(d));case Float32Array:default:return n.AddFloatAttribute(e,s,a,i,new Float32Array(d))}}_getDracoAttributeType(e){switch(e.toLowerCase()){case"indices":return"indices";case"position":case"positions":case"vertices":return this.draco.POSITION;case"normal":case"normals":return this.draco.NORMAL;case"color":case"colors":return this.draco.COLOR;case"texcoord":case"texcoords":return this.draco.TEX_COORD;default:return this.draco.GENERIC}}_getPositionAttribute(e){for(let r in e){let o=e[r];if(this._getDracoAttributeType(r)===this.draco.POSITION)return o}return null}_addGeometryMetadata(e,r){let o=new this.draco.Metadata;this._populateDracoMetadata(o,r),this.dracoMeshBuilder.AddMetadata(e,o)}_addAttributeMetadata(e,r,o){let a=new this.draco.Metadata;this._populateDracoMetadata(a,o),this.dracoMeshBuilder.SetMetadataForAttribute(e,r,a)}_populateDracoMetadata(e,r){for(let[o,a]of K(r))switch(typeof a){case"number":Math.trunc(a)===a?this.dracoMetadataBuilder.AddIntEntry(e,o,a):this.dracoMetadataBuilder.AddDoubleEntry(e,o,a);break;case"object":a instanceof Int32Array&&this.dracoMetadataBuilder.AddIntEntryArray(e,o,a,a.length);break;case"string":default:this.dracoMetadataBuilder.AddStringEntry(e,o,a)}}};function R(t){let e=t.size(),r=new ArrayBuffer(e),o=new Int8Array(r);for(let a=0;a<e;++a)o[a]=t.GetValue(a);return r}function K(t){return t.entries&&!t.hasOwnProperty("entries")?t.entries():Object.entries(t)}var Y="1.5.5",Z="1.4.1",O=`https://www.gstatic.com/draco/versioned/decoders/${Y}`,Te=`${O}/draco_decoder.js`,Pe=`${O}/draco_wasm_wrapper.js`,We=`${O}/draco_decoder.wasm`,ee=`https://raw.githubusercontent.com/google/draco/${Z}/javascript/draco_encoder.js`;var y;async function S(t){let e=t.modules||{};return e.draco3d?y=y||e.draco3d.createEncoderModule({}).then(r=>({draco:r})):y=y||re(t),await y}async function re(t){let e=await E(ee,"draco",t);return e=e||globalThis.DracoEncoderModule,new Promise(r=>{e({onModuleLoaded:o=>r({draco:o})})})}var C="3.4.0-alpha.2";var te={pointcloud:!1,attributeNameEntry:"name"},L={name:"DRACO",id:"draco",module:"draco",version:C,extensions:["drc"],encode:oe,options:{draco:te}};async function oe(t,e={}){let{draco:r}=await S(e),o=new m(r);try{return o.encodeSync(t,e.draco)}finally{o.destroy()}}(()=>{!u.inWorkerThread()||(u.onmessage=async(t,e)=>{switch(t){case"process":try{let{input:r,options:o}=e,a=await L.encode(r,o);u.postMessage("done",{result:a})}catch(r){let o=r instanceof Error?r.message:"";u.postMessage("error",{error:o})}break;default:}})})();})();
3
+ with ${o.num_attributes()} attributes into ${i} bytes`),R(s)}finally{this.destroyEncodedObject(s),this.destroyEncodedObject(o)}}_setOptions(e){if("speed"in e&&this.dracoEncoder.SetSpeedOptions(...e.speed),"method"in e){let r=this.draco[e.method||"MESH_SEQUENTIAL_ENCODING"];this.dracoEncoder.SetEncodingMethod(r)}if("quantization"in e)for(let r in e.quantization){let o=e.quantization[r],a=this.draco[r];this.dracoEncoder.SetAttributeQuantization(a,o)}}_createDracoMesh(e,r,o){let a=o.attributesMetadata||{};try{let s=this._getPositionAttribute(r);if(!s)throw new Error("positions");let i=s.length/3;for(let n in r){let d=r[n];n=I[n]||n;let l=this._addAttributeToMesh(e,n,d,i);l!==-1&&this._addAttributeMetadata(e,l,{name:n,...a[n]||{}})}}catch(s){throw this.destroyEncodedObject(e),s}return e}_createDracoPointCloud(e,r,o){let a=o.attributesMetadata||{};try{let s=this._getPositionAttribute(r);if(!s)throw new Error("positions");let i=s.length/3;for(let n in r){let d=r[n];n=I[n]||n;let l=this._addAttributeToMesh(e,n,d,i);l!==-1&&this._addAttributeMetadata(e,l,{name:n,...a[n]||{}})}}catch(s){throw this.destroyEncodedObject(e),s}return e}_addAttributeToMesh(e,r,o,a){if(!ArrayBuffer.isView(o))return-1;let s=this._getDracoAttributeType(r),i=o.length/a;if(s==="indices"){let l=o.length/3;return this.log(`Adding attribute ${r}, size ${l}`),this.dracoMeshBuilder.AddFacesToMesh(e,l,o),-1}this.log(`Adding attribute ${r}, size ${i}`);let n=this.dracoMeshBuilder,{buffer:d}=o;switch(o.constructor){case Int8Array:return n.AddInt8Attribute(e,s,a,i,new Int8Array(d));case Int16Array:return n.AddInt16Attribute(e,s,a,i,new Int16Array(d));case Int32Array:return n.AddInt32Attribute(e,s,a,i,new Int32Array(d));case Uint8Array:case Uint8ClampedArray:return n.AddUInt8Attribute(e,s,a,i,new Uint8Array(d));case Uint16Array:return n.AddUInt16Attribute(e,s,a,i,new Uint16Array(d));case Uint32Array:return n.AddUInt32Attribute(e,s,a,i,new Uint32Array(d));case Float32Array:default:return n.AddFloatAttribute(e,s,a,i,new Float32Array(d))}}_getDracoAttributeType(e){switch(e.toLowerCase()){case"indices":return"indices";case"position":case"positions":case"vertices":return this.draco.POSITION;case"normal":case"normals":return this.draco.NORMAL;case"color":case"colors":return this.draco.COLOR;case"texcoord":case"texcoords":return this.draco.TEX_COORD;default:return this.draco.GENERIC}}_getPositionAttribute(e){for(let r in e){let o=e[r];if(this._getDracoAttributeType(r)===this.draco.POSITION)return o}return null}_addGeometryMetadata(e,r){let o=new this.draco.Metadata;this._populateDracoMetadata(o,r),this.dracoMeshBuilder.AddMetadata(e,o)}_addAttributeMetadata(e,r,o){let a=new this.draco.Metadata;this._populateDracoMetadata(a,o),this.dracoMeshBuilder.SetMetadataForAttribute(e,r,a)}_populateDracoMetadata(e,r){for(let[o,a]of K(r))switch(typeof a){case"number":Math.trunc(a)===a?this.dracoMetadataBuilder.AddIntEntry(e,o,a):this.dracoMetadataBuilder.AddDoubleEntry(e,o,a);break;case"object":a instanceof Int32Array&&this.dracoMetadataBuilder.AddIntEntryArray(e,o,a,a.length);break;case"string":default:this.dracoMetadataBuilder.AddStringEntry(e,o,a)}}};function R(t){let e=t.size(),r=new ArrayBuffer(e),o=new Int8Array(r);for(let a=0;a<e;++a)o[a]=t.GetValue(a);return r}function K(t){return t.entries&&!t.hasOwnProperty("entries")?t.entries():Object.entries(t)}var Y="1.5.5",Z="1.4.1",O=`https://www.gstatic.com/draco/versioned/decoders/${Y}`,Te=`${O}/draco_decoder.js`,Pe=`${O}/draco_wasm_wrapper.js`,We=`${O}/draco_decoder.wasm`,ee=`https://raw.githubusercontent.com/google/draco/${Z}/javascript/draco_encoder.js`;var y;async function S(t){let e=t.modules||{};return e.draco3d?y=y||e.draco3d.createEncoderModule({}).then(r=>({draco:r})):y=y||re(t),await y}async function re(t){let e=await E(ee,"draco",t);return e=e||globalThis.DracoEncoderModule,new Promise(r=>{e({onModuleLoaded:o=>r({draco:o})})})}var C="3.4.0-alpha.3";var te={pointcloud:!1,attributeNameEntry:"name"},L={name:"DRACO",id:"draco",module:"draco",version:C,extensions:["drc"],encode:oe,options:{draco:te}};async function oe(t,e={}){let{draco:r}=await S(e),o=new m(r);try{return o.encodeSync(t,e.draco)}finally{o.destroy()}}(()=>{!u.inWorkerThread()||(u.onmessage=async(t,e)=>{switch(t){case"process":try{let{input:r,options:o}=e,a=await L.encode(r,o);u.postMessage("done",{result:a})}catch(r){let o=r instanceof Error?r.message:"";u.postMessage("error",{error:o})}break;default:}})})();})();
4
4
  //# sourceMappingURL=draco-writer-worker.js.map
@@ -8,7 +8,6 @@ exports._TypecheckDracoLoader = exports.DracoLoader = void 0;
8
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
9
  var _workerUtils = require("@loaders.gl/worker-utils");
10
10
  var _version = require("./lib/utils/version");
11
-
12
11
  var DEFAULT_DRACO_OPTIONS = {
13
12
  draco: {
14
13
  decoderType: (typeof WebAssembly === "undefined" ? "undefined" : (0, _typeof2.default)(WebAssembly)) === 'object' ? 'wasm' : 'js',
@@ -17,7 +16,6 @@ var DEFAULT_DRACO_OPTIONS = {
17
16
  attributeNameEntry: undefined
18
17
  }
19
18
  };
20
-
21
19
  var DracoLoader = {
22
20
  name: 'Draco',
23
21
  id: _workerUtils.isBrowser ? 'draco' : 'draco-nodejs',
@@ -1 +1 @@
1
- {"version":3,"file":"draco-loader.js","names":["DEFAULT_DRACO_OPTIONS","draco","decoderType","WebAssembly","libraryPath","extraAttributes","attributeNameEntry","undefined","DracoLoader","name","id","isBrowser","module","shapes","version","VERSION","worker","extensions","mimeTypes","binary","tests","options","_TypecheckDracoLoader"],"sources":["../../src/draco-loader.ts"],"sourcesContent":["import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {isBrowser} from '@loaders.gl/worker-utils';\nimport type {DracoParseOptions} from './lib/draco-parser';\n// import type {DracoMeshData} from './types';\nimport {VERSION} from './lib/utils/version';\n\nexport type DracoLoaderOptions = LoaderOptions & {\n draco?: DracoParseOptions & {\n decoderType?: 'wasm' | 'js';\n libraryPath?: string;\n extraAttributes?;\n attributeNameEntry?: string;\n workerUrl?: string;\n };\n};\n\nconst DEFAULT_DRACO_OPTIONS: DracoLoaderOptions = {\n draco: {\n decoderType: typeof WebAssembly === 'object' ? 'wasm' : 'js', // 'js' for IE11\n libraryPath: 'libs/',\n extraAttributes: {},\n attributeNameEntry: undefined\n }\n};\n\n/**\n * Worker loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n name: 'Draco',\n id: isBrowser ? 'draco' : 'draco-nodejs',\n module: 'draco',\n shapes: ['mesh'],\n version: VERSION,\n worker: true,\n extensions: ['drc'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['DRACO'],\n options: DEFAULT_DRACO_OPTIONS\n};\n\nexport const _TypecheckDracoLoader: Loader = DracoLoader;\n"],"mappings":";;;;;;;;AACA;AAGA;;AAYA,IAAMA,qBAAyC,GAAG;EAChDC,KAAK,EAAE;IACLC,WAAW,EAAE,QAAOC,WAAW,uDAAXA,WAAW,OAAK,QAAQ,GAAG,MAAM,GAAG,IAAI;IAC5DC,WAAW,EAAE,OAAO;IACpBC,eAAe,EAAE,CAAC,CAAC;IACnBC,kBAAkB,EAAEC;EACtB;AACF,CAAC;;AAKM,IAAMC,WAAW,GAAG;EACzBC,IAAI,EAAE,OAAO;EACbC,EAAE,EAAEC,sBAAS,GAAG,OAAO,GAAG,cAAc;EACxCC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,CAAC,MAAM,CAAC;EAChBC,OAAO,EAAEC,gBAAO;EAChBC,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,OAAO,CAAC;EAChBC,OAAO,EAAErB;AACX,CAAC;AAAC;AAEK,IAAMsB,qBAA6B,GAAGd,WAAW;AAAC"}
1
+ {"version":3,"file":"draco-loader.js","names":["_workerUtils","require","_version","DEFAULT_DRACO_OPTIONS","draco","decoderType","WebAssembly","_typeof2","default","libraryPath","extraAttributes","attributeNameEntry","undefined","DracoLoader","name","id","isBrowser","module","shapes","version","VERSION","worker","extensions","mimeTypes","binary","tests","options","exports","_TypecheckDracoLoader"],"sources":["../../src/draco-loader.ts"],"sourcesContent":["import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';\nimport {isBrowser} from '@loaders.gl/worker-utils';\nimport type {DracoParseOptions} from './lib/draco-parser';\n// import type {DracoMeshData} from './types';\nimport {VERSION} from './lib/utils/version';\n\nexport type DracoLoaderOptions = LoaderOptions & {\n draco?: DracoParseOptions & {\n decoderType?: 'wasm' | 'js';\n libraryPath?: string;\n extraAttributes?;\n attributeNameEntry?: string;\n workerUrl?: string;\n };\n};\n\nconst DEFAULT_DRACO_OPTIONS: DracoLoaderOptions = {\n draco: {\n decoderType: typeof WebAssembly === 'object' ? 'wasm' : 'js', // 'js' for IE11\n libraryPath: 'libs/',\n extraAttributes: {},\n attributeNameEntry: undefined\n }\n};\n\n/**\n * Worker loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n name: 'Draco',\n id: isBrowser ? 'draco' : 'draco-nodejs',\n module: 'draco',\n shapes: ['mesh'],\n version: VERSION,\n worker: true,\n extensions: ['drc'],\n mimeTypes: ['application/octet-stream'],\n binary: true,\n tests: ['DRACO'],\n options: DEFAULT_DRACO_OPTIONS\n};\n\nexport const _TypecheckDracoLoader: Loader = DracoLoader;\n"],"mappings":";;;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAGA,IAAAC,QAAA,GAAAD,OAAA;AAYA,IAAME,qBAAyC,GAAG;EAChDC,KAAK,EAAE;IACLC,WAAW,EAAE,QAAOC,WAAW,qCAAAC,QAAA,CAAAC,OAAA,EAAXF,WAAW,OAAK,QAAQ,GAAG,MAAM,GAAG,IAAI;IAC5DG,WAAW,EAAE,OAAO;IACpBC,eAAe,EAAE,CAAC,CAAC;IACnBC,kBAAkB,EAAEC;EACtB;AACF,CAAC;AAKM,IAAMC,WAAW,GAAG;EACzBC,IAAI,EAAE,OAAO;EACbC,EAAE,EAAEC,sBAAS,GAAG,OAAO,GAAG,cAAc;EACxCC,MAAM,EAAE,OAAO;EACfC,MAAM,EAAE,CAAC,MAAM,CAAC;EAChBC,OAAO,EAAEC,gBAAO;EAChBC,MAAM,EAAE,IAAI;EACZC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,SAAS,EAAE,CAAC,0BAA0B,CAAC;EACvCC,MAAM,EAAE,IAAI;EACZC,KAAK,EAAE,CAAC,OAAO,CAAC;EAChBC,OAAO,EAAEvB;AACX,CAAC;AAACwB,OAAA,CAAAd,WAAA,GAAAA,WAAA;AAEK,IAAMe,qBAA6B,GAAGf,WAAW;AAACc,OAAA,CAAAC,qBAAA,GAAAA,qBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"draco-writer-nodejs.js","names":[],"sources":["../../src/draco-writer-nodejs.ts"],"sourcesContent":["// Polyfills increases the bundle size significantly. Use it for NodeJS worker only\nimport '@loaders.gl/polyfills';\n\nexport {DracoWriter as DracoWriterNodeJS} from './draco-writer';\n"],"mappings":";;;;;;;;;;;AACA;AAEA"}
1
+ {"version":3,"file":"draco-writer-nodejs.js","names":["require","_dracoWriter"],"sources":["../../src/draco-writer-nodejs.ts"],"sourcesContent":["// Polyfills increases the bundle size significantly. Use it for NodeJS worker only\nimport '@loaders.gl/polyfills';\n\nexport {DracoWriter as DracoWriterNodeJS} from './draco-writer';\n"],"mappings":";;;;;;;;;;;AACAA,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA"}
@@ -14,7 +14,6 @@ var DEFAULT_DRACO_OPTIONS = {
14
14
  pointcloud: false,
15
15
  attributeNameEntry: 'name'
16
16
  };
17
-
18
17
  var DracoWriter = {
19
18
  name: 'DRACO',
20
19
  id: 'draco',
@@ -38,26 +37,24 @@ function _encode() {
38
37
  dracoBuilder,
39
38
  _args = arguments;
40
39
  return _regenerator.default.wrap(function _callee$(_context) {
41
- while (1) {
42
- switch (_context.prev = _context.next) {
43
- case 0:
44
- options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
45
- _context.next = 3;
46
- return (0, _dracoModuleLoader.loadDracoEncoderModule)(options);
47
- case 3:
48
- _yield$loadDracoEncod = _context.sent;
49
- draco = _yield$loadDracoEncod.draco;
50
- dracoBuilder = new _dracoBuilder.default(draco);
51
- _context.prev = 6;
52
- return _context.abrupt("return", dracoBuilder.encodeSync(data, options.draco));
53
- case 8:
54
- _context.prev = 8;
55
- dracoBuilder.destroy();
56
- return _context.finish(8);
57
- case 11:
58
- case "end":
59
- return _context.stop();
60
- }
40
+ while (1) switch (_context.prev = _context.next) {
41
+ case 0:
42
+ options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
43
+ _context.next = 3;
44
+ return (0, _dracoModuleLoader.loadDracoEncoderModule)(options);
45
+ case 3:
46
+ _yield$loadDracoEncod = _context.sent;
47
+ draco = _yield$loadDracoEncod.draco;
48
+ dracoBuilder = new _dracoBuilder.default(draco);
49
+ _context.prev = 6;
50
+ return _context.abrupt("return", dracoBuilder.encodeSync(data, options.draco));
51
+ case 8:
52
+ _context.prev = 8;
53
+ dracoBuilder.destroy();
54
+ return _context.finish(8);
55
+ case 11:
56
+ case "end":
57
+ return _context.stop();
61
58
  }
62
59
  }, _callee, null, [[6,, 8, 11]]);
63
60
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"draco-writer.js","names":["DEFAULT_DRACO_OPTIONS","pointcloud","attributeNameEntry","DracoWriter","name","id","module","version","VERSION","extensions","encode","options","draco","data","loadDracoEncoderModule","dracoBuilder","DRACOBuilder","encodeSync","destroy"],"sources":["../../src/draco-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {DracoMesh} from './lib/draco-types';\nimport type {DracoBuildOptions} from './lib/draco-builder';\nimport DRACOBuilder from './lib/draco-builder';\nimport {loadDracoEncoderModule} from './lib/draco-module-loader';\nimport {VERSION} from './lib/utils/version';\n\nexport type DracoWriterOptions = WriterOptions & {\n draco?: DracoBuildOptions & {\n attributeNameEntry: string;\n };\n};\n\nconst DEFAULT_DRACO_OPTIONS = {\n pointcloud: false, // Set to true if pointcloud (mode: 0, no indices)\n attributeNameEntry: 'name'\n // Draco Compression Parameters\n // method: 'MESH_EDGEBREAKER_ENCODING',\n // speed: [5, 5],\n // quantization: {\n // POSITION: 10\n // }\n};\n\n/**\n * Exporter for Draco3D compressed geometries\n */\nexport const DracoWriter: Writer = {\n name: 'DRACO',\n id: 'draco',\n module: 'draco',\n version: VERSION,\n extensions: ['drc'],\n encode,\n options: {\n draco: DEFAULT_DRACO_OPTIONS\n }\n};\n\nasync function encode(data: DracoMesh, options: DracoWriterOptions = {}): Promise<ArrayBuffer> {\n // Dynamically load draco\n const {draco} = await loadDracoEncoderModule(options);\n const dracoBuilder = new DRACOBuilder(draco);\n\n try {\n return dracoBuilder.encodeSync(data, options.draco);\n } finally {\n dracoBuilder.destroy();\n }\n}\n"],"mappings":";;;;;;;;;AAGA;AACA;AACA;AAQA,IAAMA,qBAAqB,GAAG;EAC5BC,UAAU,EAAE,KAAK;EACjBC,kBAAkB,EAAE;AAOtB,CAAC;;AAKM,IAAMC,WAAmB,GAAG;EACjCC,IAAI,EAAE,OAAO;EACbC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEC,gBAAO;EAChBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,MAAM,EAANA,MAAM;EACNC,OAAO,EAAE;IACPC,KAAK,EAAEZ;EACT;AACF,CAAC;AAAC;AAAA,SAEaU,MAAM;EAAA;AAAA;AAAA;EAAA,oEAArB,iBAAsBG,IAAe;IAAA;MAAA;MAAA;MAAA;MAAA;IAAA;MAAA;QAAA;UAAA;YAAEF,OAA2B,2DAAG,CAAC,CAAC;YAAA;YAAA,OAE/C,IAAAG,yCAAsB,EAACH,OAAO,CAAC;UAAA;YAAA;YAA9CC,KAAK,yBAALA,KAAK;YACNG,YAAY,GAAG,IAAIC,qBAAY,CAACJ,KAAK,CAAC;YAAA;YAAA,iCAGnCG,YAAY,CAACE,UAAU,CAACJ,IAAI,EAAEF,OAAO,CAACC,KAAK,CAAC;UAAA;YAAA;YAEnDG,YAAY,CAACG,OAAO,EAAE;YAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAE1B;EAAA;AAAA"}
1
+ {"version":3,"file":"draco-writer.js","names":["_dracoBuilder","_interopRequireDefault","require","_dracoModuleLoader","_version","DEFAULT_DRACO_OPTIONS","pointcloud","attributeNameEntry","DracoWriter","name","id","module","version","VERSION","extensions","encode","options","draco","exports","_x","_encode","apply","arguments","_asyncToGenerator2","default","_regenerator","mark","_callee","data","_yield$loadDracoEncod","dracoBuilder","_args","wrap","_callee$","_context","prev","next","length","undefined","loadDracoEncoderModule","sent","DRACOBuilder","abrupt","encodeSync","destroy","finish","stop"],"sources":["../../src/draco-writer.ts"],"sourcesContent":["import type {Writer, WriterOptions} from '@loaders.gl/loader-utils';\nimport type {DracoMesh} from './lib/draco-types';\nimport type {DracoBuildOptions} from './lib/draco-builder';\nimport DRACOBuilder from './lib/draco-builder';\nimport {loadDracoEncoderModule} from './lib/draco-module-loader';\nimport {VERSION} from './lib/utils/version';\n\nexport type DracoWriterOptions = WriterOptions & {\n draco?: DracoBuildOptions & {\n attributeNameEntry: string;\n };\n};\n\nconst DEFAULT_DRACO_OPTIONS = {\n pointcloud: false, // Set to true if pointcloud (mode: 0, no indices)\n attributeNameEntry: 'name'\n // Draco Compression Parameters\n // method: 'MESH_EDGEBREAKER_ENCODING',\n // speed: [5, 5],\n // quantization: {\n // POSITION: 10\n // }\n};\n\n/**\n * Exporter for Draco3D compressed geometries\n */\nexport const DracoWriter: Writer = {\n name: 'DRACO',\n id: 'draco',\n module: 'draco',\n version: VERSION,\n extensions: ['drc'],\n encode,\n options: {\n draco: DEFAULT_DRACO_OPTIONS\n }\n};\n\nasync function encode(data: DracoMesh, options: DracoWriterOptions = {}): Promise<ArrayBuffer> {\n // Dynamically load draco\n const {draco} = await loadDracoEncoderModule(options);\n const dracoBuilder = new DRACOBuilder(draco);\n\n try {\n return dracoBuilder.encodeSync(data, options.draco);\n } finally {\n dracoBuilder.destroy();\n }\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAQA,IAAMG,qBAAqB,GAAG;EAC5BC,UAAU,EAAE,KAAK;EACjBC,kBAAkB,EAAE;AAOtB,CAAC;AAKM,IAAMC,WAAmB,GAAG;EACjCC,IAAI,EAAE,OAAO;EACbC,EAAE,EAAE,OAAO;EACXC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEC,gBAAO;EAChBC,UAAU,EAAE,CAAC,KAAK,CAAC;EACnBC,MAAM,EAANA,MAAM;EACNC,OAAO,EAAE;IACPC,KAAK,EAAEZ;EACT;AACF,CAAC;AAACa,OAAA,CAAAV,WAAA,GAAAA,WAAA;AAAA,SAEaO,MAAMA,CAAAI,EAAA;EAAA,OAAAC,OAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,QAAA;EAAAA,OAAA,OAAAG,kBAAA,CAAAC,OAAA,EAAAC,YAAA,CAAAD,OAAA,CAAAE,IAAA,CAArB,SAAAC,QAAsBC,IAAe;IAAA,IAAAZ,OAAA;MAAAa,qBAAA;MAAAZ,KAAA;MAAAa,YAAA;MAAAC,KAAA,GAAAT,SAAA;IAAA,OAAAG,YAAA,CAAAD,OAAA,CAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAEpB,OAA2B,GAAAe,KAAA,CAAAM,MAAA,QAAAN,KAAA,QAAAO,SAAA,GAAAP,KAAA,MAAG,CAAC,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAAA,OAE/C,IAAAG,yCAAsB,EAACvB,OAAO,CAAC;QAAA;UAAAa,qBAAA,GAAAK,QAAA,CAAAM,IAAA;UAA9CvB,KAAK,GAAAY,qBAAA,CAALZ,KAAK;UACNa,YAAY,GAAG,IAAIW,qBAAY,CAACxB,KAAK,CAAC;UAAAiB,QAAA,CAAAC,IAAA;UAAA,OAAAD,QAAA,CAAAQ,MAAA,WAGnCZ,YAAY,CAACa,UAAU,CAACf,IAAI,EAAEZ,OAAO,CAACC,KAAK,CAAC;QAAA;UAAAiB,QAAA,CAAAC,IAAA;UAEnDL,YAAY,CAACc,OAAO,EAAE;UAAC,OAAAV,QAAA,CAAAW,MAAA;QAAA;QAAA;UAAA,OAAAX,QAAA,CAAAY,IAAA;MAAA;IAAA,GAAAnB,OAAA;EAAA,CAE1B;EAAA,OAAAP,OAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA"}
@@ -4,26 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.draco_StatusCode = exports.draco_GeometryAttribute_Type = exports.draco_EncodedGeometryType = exports.draco_DataType = void 0;
7
- var draco_GeometryAttribute_Type;
8
- exports.draco_GeometryAttribute_Type = draco_GeometryAttribute_Type;
9
- (function (draco_GeometryAttribute_Type) {
7
+ var draco_GeometryAttribute_Type = function (draco_GeometryAttribute_Type) {
10
8
  draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::INVALID"] = 0] = "draco_GeometryAttribute::INVALID";
11
9
  draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::POSITION"] = 1] = "draco_GeometryAttribute::POSITION";
12
10
  draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::NORMAL"] = 2] = "draco_GeometryAttribute::NORMAL";
13
11
  draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::COLOR"] = 3] = "draco_GeometryAttribute::COLOR";
14
12
  draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::TEX_COORD"] = 4] = "draco_GeometryAttribute::TEX_COORD";
15
13
  draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::GENERIC"] = 5] = "draco_GeometryAttribute::GENERIC";
16
- })(draco_GeometryAttribute_Type || (exports.draco_GeometryAttribute_Type = draco_GeometryAttribute_Type = {}));
17
- var draco_EncodedGeometryType;
18
- exports.draco_EncodedGeometryType = draco_EncodedGeometryType;
19
- (function (draco_EncodedGeometryType) {
14
+ return draco_GeometryAttribute_Type;
15
+ }({});
16
+ exports.draco_GeometryAttribute_Type = draco_GeometryAttribute_Type;
17
+ var draco_EncodedGeometryType = function (draco_EncodedGeometryType) {
20
18
  draco_EncodedGeometryType[draco_EncodedGeometryType["draco::INVALID_GEOMETRY_TYPE"] = 0] = "draco::INVALID_GEOMETRY_TYPE";
21
19
  draco_EncodedGeometryType[draco_EncodedGeometryType["draco::POINT_CLOUD"] = 1] = "draco::POINT_CLOUD";
22
20
  draco_EncodedGeometryType[draco_EncodedGeometryType["draco::TRIANGULAR_MESH"] = 2] = "draco::TRIANGULAR_MESH";
23
- })(draco_EncodedGeometryType || (exports.draco_EncodedGeometryType = draco_EncodedGeometryType = {}));
24
- var draco_DataType;
25
- exports.draco_DataType = draco_DataType;
26
- (function (draco_DataType) {
21
+ return draco_EncodedGeometryType;
22
+ }({});
23
+ exports.draco_EncodedGeometryType = draco_EncodedGeometryType;
24
+ var draco_DataType = function (draco_DataType) {
27
25
  draco_DataType[draco_DataType["draco::DT_INVALID"] = 0] = "draco::DT_INVALID";
28
26
  draco_DataType[draco_DataType["draco::DT_INT8"] = 1] = "draco::DT_INT8";
29
27
  draco_DataType[draco_DataType["draco::DT_UINT8"] = 2] = "draco::DT_UINT8";
@@ -37,15 +35,17 @@ exports.draco_DataType = draco_DataType;
37
35
  draco_DataType[draco_DataType["draco::DT_FLOAT64"] = 10] = "draco::DT_FLOAT64";
38
36
  draco_DataType[draco_DataType["draco::DT_BOOL"] = 11] = "draco::DT_BOOL";
39
37
  draco_DataType[draco_DataType["draco::DT_TYPES_COUNT"] = 12] = "draco::DT_TYPES_COUNT";
40
- })(draco_DataType || (exports.draco_DataType = draco_DataType = {}));
41
- var draco_StatusCode;
42
- exports.draco_StatusCode = draco_StatusCode;
43
- (function (draco_StatusCode) {
38
+ return draco_DataType;
39
+ }({});
40
+ exports.draco_DataType = draco_DataType;
41
+ var draco_StatusCode = function (draco_StatusCode) {
44
42
  draco_StatusCode[draco_StatusCode["draco_Status::OK"] = 0] = "draco_Status::OK";
45
43
  draco_StatusCode[draco_StatusCode["draco_Status::DRACO_ERROR"] = 1] = "draco_Status::DRACO_ERROR";
46
44
  draco_StatusCode[draco_StatusCode["draco_Status::IO_ERROR"] = 2] = "draco_Status::IO_ERROR";
47
45
  draco_StatusCode[draco_StatusCode["draco_Status::INVALID_PARAMETER"] = 3] = "draco_Status::INVALID_PARAMETER";
48
46
  draco_StatusCode[draco_StatusCode["draco_Status::UNSUPPORTED_VERSION"] = 4] = "draco_Status::UNSUPPORTED_VERSION";
49
47
  draco_StatusCode[draco_StatusCode["draco_Status::UNKNOWN_VERSION"] = 5] = "draco_Status::UNKNOWN_VERSION";
50
- })(draco_StatusCode || (exports.draco_StatusCode = draco_StatusCode = {}));
48
+ return draco_StatusCode;
49
+ }({});
50
+ exports.draco_StatusCode = draco_StatusCode;
51
51
  //# sourceMappingURL=draco3d-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"draco3d-types.js","names":["draco_GeometryAttribute_Type","draco_EncodedGeometryType","draco_DataType","draco_StatusCode"],"sources":["../../../src/draco3d/draco3d-types.ts"],"sourcesContent":["// A set of typescript types manually adapted from the Draco web IDL\n// Draco JS is a bit tricky to work with due to the C++ emscripten code base\n// sparse documentation, so these types provide an extra safety net.\n\n// Typescript defs adapted from draco3d emscripten IDL\n// https://raw.githubusercontent.com/google/draco/master/src/draco/javascript/emscripten/draco_web_decoder.idl\n// Interface exposed to emscripten's WebIDL Binder.\n// http://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html\n\n/* eslint-disable camelcase */\n\n/** Draco3D untyped memory pointer */\ntype VoidPtr = any;\n\n// DRACO WEB DECODER IDL\n\n/** Draco3D geometry attribute type */\nexport enum draco_GeometryAttribute_Type {\n 'draco_GeometryAttribute::INVALID',\n 'draco_GeometryAttribute::POSITION',\n 'draco_GeometryAttribute::NORMAL',\n 'draco_GeometryAttribute::COLOR',\n 'draco_GeometryAttribute::TEX_COORD',\n 'draco_GeometryAttribute::GENERIC'\n}\n\n/** Draco3D encoded geometry type */\nexport enum draco_EncodedGeometryType {\n 'draco::INVALID_GEOMETRY_TYPE',\n 'draco::POINT_CLOUD',\n 'draco::TRIANGULAR_MESH'\n}\n\n/** Draco3D data type */\nexport enum draco_DataType {\n 'draco::DT_INVALID',\n 'draco::DT_INT8',\n 'draco::DT_UINT8',\n 'draco::DT_INT16',\n 'draco::DT_UINT16',\n 'draco::DT_INT32',\n 'draco::DT_UINT32',\n 'draco::DT_INT64',\n 'draco::DT_UINT64',\n 'draco::DT_FLOAT32',\n 'draco::DT_FLOAT64',\n 'draco::DT_BOOL',\n 'draco::DT_TYPES_COUNT'\n}\n\n/** Draco3D status code */\nexport enum draco_StatusCode {\n 'draco_Status::OK',\n 'draco_Status::DRACO_ERROR',\n 'draco_Status::IO_ERROR',\n 'draco_Status::INVALID_PARAMETER',\n 'draco_Status::UNSUPPORTED_VERSION',\n 'draco_Status::UNKNOWN_VERSION'\n}\n\n/** Draco3D decoder buffer allocated on emscripten heap */\nexport declare class DecoderBuffer {\n constructor();\n Init(data: Int8Array, data_size: number): void;\n}\n\n/** Draco3D attribute transform data */\nexport declare class AttributeTransformData {\n constructor();\n transform_type(): number;\n}\n\n/** Draco3D geometry attribute */\nexport declare class GeometryAttribute {\n constructor();\n}\n\n/** Draco3D point attribute */\nexport declare class PointAttribute {\n ptr: VoidPtr;\n\n constructor();\n size(): number;\n GetAttributeTransformData(): AttributeTransformData;\n\n // From GeometryAttribute\n attribute_type(): number;\n data_type(): number;\n num_components(): number;\n normalized(): boolean;\n byte_stride(): number;\n byte_offset(): number;\n unique_id(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeQuantizationTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n min_value(axis: number): number;\n range(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeOctahedronTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n}\n\n/** Draco3D point cloud */\nexport declare class PointCloud {\n ptr: VoidPtr;\n\n constructor();\n num_attributes(): number;\n num_points(): number;\n}\n\n/** Draco3D mesh */\nexport declare class Mesh extends PointCloud {\n constructor();\n num_faces(): number;\n}\n\n/** Draco3D metadata */\nexport declare class Metadata {\n ptr: VoidPtr;\n\n constructor();\n}\n\n/** Draco3D status */\nexport declare class Status {\n constructor();\n code(): draco_StatusCode;\n ok(): boolean;\n error_msg(): string;\n}\n\n/** Draco3D Float32Array allocated on the emscripten heap */\nexport declare class DracoFloat32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int8Array allocated on the emscripten heap */\nexport declare class DracoInt8Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint8Array allocated on the emscripten heap */\nexport declare class DracoUInt8Array {\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int16Array allocated on the emscripten heap */\nexport declare class DracoInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint16Array allocated on the emscripten heap */\nexport declare class DracoUInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int32Array allocated on the emscripten heap */\nexport declare class DracoInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint32Array allocated on the emscripten heap */\nexport declare class DracoUInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D metadata querier */\nexport declare class MetadataQuerier {\n constructor();\n\n HasEntry(metadata: Metadata, entry_name: string): string;\n GetIntEntry(metadata: Metadata, entry_name: string);\n GetIntEntryArray(metadata: Metadata, entry_name: string, out_values: DracoInt32Array);\n GetDoubleEntry(metadata: Metadata, entry_name: string): number;\n GetStringEntry(metadata: Metadata, entry_name: string): string;\n\n NumEntries(metadata: Metadata): number;\n GetEntryName(metadata: Metadata, entry_id: number): string;\n}\n\n/**\n * Draco3D Decoder class\n */\nexport declare class Decoder {\n constructor();\n\n GetEncodedGeometryType(in_buffer: DecoderBuffer): draco_EncodedGeometryType;\n\n DecodeBufferToPointCloud(in_buffer: DecoderBuffer, out_point_cloud: PointCloud): Status;\n DecodeBufferToMesh(in_buffer: DecoderBuffer, out_mesh: Mesh): Status;\n\n GetAttributeId(pc: PointCloud, type: draco_GeometryAttribute_Type): number;\n GetAttributeIdByName(pc: PointCloud, name: string): number;\n GetAttributeIdByMetadataEntry(pc: PointCloud, name: string, value: string): number;\n\n GetAttribute(pc: PointCloud, att_id: number): PointAttribute;\n GetAttributeByUniqueId(pc: PointCloud, unique_id: number): PointAttribute;\n\n GetMetadata(pc: PointCloud): Metadata;\n GetAttributeMetadata(pc: PointCloud, att_id: number): Metadata;\n\n GetFaceFromMesh(m: Mesh, face_id: number, out_values: DracoInt32Array): boolean;\n GetTriangleStripsFromMesh(m: Mesh, strip_values: DracoInt32Array);\n\n GetTrianglesUInt16Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n GetTrianglesUInt32Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n\n GetAttributeFloat(pa: PointAttribute, att_index: number, out_values: DracoFloat32Array): boolean;\n\n GetAttributeFloatForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoFloat32Array\n ): boolean;\n\n // Deprecated, use GetAttributeInt32ForAllPoints instead.\n GetAttributeIntForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n\n GetAttributeInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt8Array\n ): boolean;\n GetAttributeUInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt8Array\n ): boolean;\n GetAttributeInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt16Array\n ): boolean;\n GetAttributeUInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt16Array\n ): boolean;\n GetAttributeInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n GetAttributeUInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt32Array\n ): boolean;\n\n GetAttributeDataArrayForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n data_type: draco_DataType,\n out_size: number,\n out_values: VoidPtr\n ): boolean;\n\n SkipAttributeTransform(att_type: draco_GeometryAttribute_Type): void;\n}\n\n// DRACO WEB ENCODER IDL\n\n/** Draco3D metadata builder */\nexport declare class MetadataBuilder {\n constructor();\n AddStringEntry(metadata: Metadata, entry_name: string, entry_value: string);\n AddIntEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddDoubleEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddIntEntryArray(\n metadata: Metadata,\n entry_name: string,\n entry_value: Int32Array,\n num_values: number\n );\n}\n\n/** Draco3D point cloud builder */\n\nexport declare class PointCloudBuilder {\n constructor();\n PointCloudBuilder(): void;\n AddFloatAttribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Float32Array\n );\n AddInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int8Array\n );\n AddUInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint8Array\n );\n AddInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int16Array\n );\n AddUInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint16Array\n );\n AddInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int32Array\n );\n AddUInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint32Array\n );\n\n AddMetadata(pc: PointCloud, metadata: Metadata): boolean;\n SetMetadataForAttribute(pc: PointCloud, attribute_id: number, metadata: Metadata);\n}\n\n/** Draco3D mesh builder */\nexport declare class MeshBuilder extends PointCloudBuilder {\n constructor();\n AddFacesToMesh(mesh: Mesh, num_faces: number, faces: number[]): boolean;\n}\n\n/** Draco3D encoder */\nexport declare class Encoder {\n constructor();\n Encoder(): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(type: draco_GeometryAttribute_Type, quantization_bits: number);\n SetAttributeExplicitQuantization(\n type: draco_GeometryAttribute_Type,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeMeshToDracoBuffer(mesh: Mesh, encoded_data: DracoInt8Array);\n EncodePointCloudToDracoBuffer(\n pc: PointCloud,\n deduplicate_values: boolean,\n encoded_data: DracoInt8Array\n );\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D expert encoder */\nexport declare class ExpertEncoder {\n constructor();\n ExpertEncoder(pc: PointCloud): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(att_id: number, quantization_bits: number);\n SetAttributeExplicitQuantization(\n att_id: number,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeToDracoBuffer(deduplicate_values: boolean, encoded_data: DracoInt8Array);\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D module interface */\nexport interface Draco3D {\n // ENUMS\n\n // draco_EncodedGeometryType\n readonly INVALID_GEOMETRY_TYPE: draco_EncodedGeometryType;\n readonly POINT_CLOUD: draco_EncodedGeometryType;\n readonly TRIANGULAR_MESH: draco_EncodedGeometryType;\n\n // enum draco_GeometryAttribute_Type\n readonly INVALID: draco_GeometryAttribute_Type;\n readonly POSITION: draco_GeometryAttribute_Type;\n readonly NORMAL: draco_GeometryAttribute_Type;\n readonly COLOR: draco_GeometryAttribute_Type;\n readonly TEX_COORD: draco_GeometryAttribute_Type;\n readonly GENERIC: draco_GeometryAttribute_Type;\n\n // enum draco_DataType\n readonly DT_INVALID: draco_DataType;\n readonly DT_INT8: draco_DataType;\n readonly DT_UINT8: draco_DataType;\n readonly DT_INT16: draco_DataType;\n readonly DT_UINT16: draco_DataType;\n readonly DT_INT32: draco_DataType;\n readonly DT_UINT32: draco_DataType;\n readonly DT_INT64: draco_DataType;\n readonly DT_UINT64: draco_DataType;\n readonly DT_FLOAT32: draco_DataType;\n readonly DT_FLOAT64: draco_DataType;\n readonly DT_BOOL: draco_DataType;\n readonly DT_TYPES_COUNT: draco_DataType;\n\n readonly Mesh: typeof Mesh;\n readonly PointCloud: typeof PointCloud;\n readonly Metadata: typeof Metadata;\n\n readonly Encoder: typeof Encoder;\n readonly MeshBuilder: typeof MeshBuilder;\n readonly MetadataBuilder: typeof MetadataBuilder;\n\n readonly MetadataQuerier: typeof MetadataQuerier;\n readonly Decoder: typeof Decoder;\n readonly DecoderBuffer: typeof DecoderBuffer;\n\n readonly DracoFloat32Array: typeof DracoFloat32Array;\n readonly DracoInt8Array: typeof DracoInt8Array;\n readonly DracoUInt8Array: typeof DracoUInt8Array;\n readonly DracoInt16Array: typeof DracoInt16Array;\n readonly DracoUInt16Array: typeof DracoUInt16Array;\n readonly DracoInt32Array: typeof DracoInt32Array;\n readonly DracoUInt32Array: typeof DracoUInt32Array;\n\n readonly AttributeQuantizationTransform: typeof AttributeQuantizationTransform;\n\n // createEncoderModule(): Encoder;\n // createDecoderModule(): Decoder;\n destroy(resource: any): void;\n _malloc(byteLength: number): number;\n _free(ptr: number): void;\n\n HEAPF32: {\n buffer: ArrayBuffer;\n };\n}\n"],"mappings":";;;;;;IAiBYA,4BAA4B;AAAA;AAAA,WAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;AAAA,GAA5BA,4BAA4B,4CAA5BA,4BAA4B;AAAA,IAU5BC,yBAAyB;AAAA;AAAA,WAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;AAAA,GAAzBA,yBAAyB,yCAAzBA,yBAAyB;AAAA,IAOzBC,cAAc;AAAA;AAAA,WAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;AAAA,GAAdA,cAAc,8BAAdA,cAAc;AAAA,IAiBdC,gBAAgB;AAAA;AAAA,WAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;AAAA,GAAhBA,gBAAgB,gCAAhBA,gBAAgB"}
1
+ {"version":3,"file":"draco3d-types.js","names":["draco_GeometryAttribute_Type","exports","draco_EncodedGeometryType","draco_DataType","draco_StatusCode"],"sources":["../../../src/draco3d/draco3d-types.ts"],"sourcesContent":["// A set of typescript types manually adapted from the Draco web IDL\n// Draco JS is a bit tricky to work with due to the C++ emscripten code base\n// sparse documentation, so these types provide an extra safety net.\n\n// Typescript defs adapted from draco3d emscripten IDL\n// https://raw.githubusercontent.com/google/draco/master/src/draco/javascript/emscripten/draco_web_decoder.idl\n// Interface exposed to emscripten's WebIDL Binder.\n// http://kripken.github.io/emscripten-site/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html\n\n/* eslint-disable camelcase */\n\n/** Draco3D untyped memory pointer */\ntype VoidPtr = any;\n\n// DRACO WEB DECODER IDL\n\n/** Draco3D geometry attribute type */\nexport enum draco_GeometryAttribute_Type {\n 'draco_GeometryAttribute::INVALID',\n 'draco_GeometryAttribute::POSITION',\n 'draco_GeometryAttribute::NORMAL',\n 'draco_GeometryAttribute::COLOR',\n 'draco_GeometryAttribute::TEX_COORD',\n 'draco_GeometryAttribute::GENERIC'\n}\n\n/** Draco3D encoded geometry type */\nexport enum draco_EncodedGeometryType {\n 'draco::INVALID_GEOMETRY_TYPE',\n 'draco::POINT_CLOUD',\n 'draco::TRIANGULAR_MESH'\n}\n\n/** Draco3D data type */\nexport enum draco_DataType {\n 'draco::DT_INVALID',\n 'draco::DT_INT8',\n 'draco::DT_UINT8',\n 'draco::DT_INT16',\n 'draco::DT_UINT16',\n 'draco::DT_INT32',\n 'draco::DT_UINT32',\n 'draco::DT_INT64',\n 'draco::DT_UINT64',\n 'draco::DT_FLOAT32',\n 'draco::DT_FLOAT64',\n 'draco::DT_BOOL',\n 'draco::DT_TYPES_COUNT'\n}\n\n/** Draco3D status code */\nexport enum draco_StatusCode {\n 'draco_Status::OK',\n 'draco_Status::DRACO_ERROR',\n 'draco_Status::IO_ERROR',\n 'draco_Status::INVALID_PARAMETER',\n 'draco_Status::UNSUPPORTED_VERSION',\n 'draco_Status::UNKNOWN_VERSION'\n}\n\n/** Draco3D decoder buffer allocated on emscripten heap */\nexport declare class DecoderBuffer {\n constructor();\n Init(data: Int8Array, data_size: number): void;\n}\n\n/** Draco3D attribute transform data */\nexport declare class AttributeTransformData {\n constructor();\n transform_type(): number;\n}\n\n/** Draco3D geometry attribute */\nexport declare class GeometryAttribute {\n constructor();\n}\n\n/** Draco3D point attribute */\nexport declare class PointAttribute {\n ptr: VoidPtr;\n\n constructor();\n size(): number;\n GetAttributeTransformData(): AttributeTransformData;\n\n // From GeometryAttribute\n attribute_type(): number;\n data_type(): number;\n num_components(): number;\n normalized(): boolean;\n byte_stride(): number;\n byte_offset(): number;\n unique_id(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeQuantizationTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n min_value(axis: number): number;\n range(): number;\n}\n\n/** Draco3D attribute transform */\nexport declare class AttributeOctahedronTransform {\n constructor();\n InitFromAttribute(att: PointAttribute): boolean;\n quantization_bits(): number;\n}\n\n/** Draco3D point cloud */\nexport declare class PointCloud {\n ptr: VoidPtr;\n\n constructor();\n num_attributes(): number;\n num_points(): number;\n}\n\n/** Draco3D mesh */\nexport declare class Mesh extends PointCloud {\n constructor();\n num_faces(): number;\n}\n\n/** Draco3D metadata */\nexport declare class Metadata {\n ptr: VoidPtr;\n\n constructor();\n}\n\n/** Draco3D status */\nexport declare class Status {\n constructor();\n code(): draco_StatusCode;\n ok(): boolean;\n error_msg(): string;\n}\n\n/** Draco3D Float32Array allocated on the emscripten heap */\nexport declare class DracoFloat32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int8Array allocated on the emscripten heap */\nexport declare class DracoInt8Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint8Array allocated on the emscripten heap */\nexport declare class DracoUInt8Array {\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int16Array allocated on the emscripten heap */\nexport declare class DracoInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint16Array allocated on the emscripten heap */\nexport declare class DracoUInt16Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Int32Array allocated on the emscripten heap */\nexport declare class DracoInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D Uint32Array allocated on the emscripten heap */\nexport declare class DracoUInt32Array {\n constructor();\n GetValue(index: number): number;\n size(): number;\n}\n\n/** Draco3D metadata querier */\nexport declare class MetadataQuerier {\n constructor();\n\n HasEntry(metadata: Metadata, entry_name: string): string;\n GetIntEntry(metadata: Metadata, entry_name: string);\n GetIntEntryArray(metadata: Metadata, entry_name: string, out_values: DracoInt32Array);\n GetDoubleEntry(metadata: Metadata, entry_name: string): number;\n GetStringEntry(metadata: Metadata, entry_name: string): string;\n\n NumEntries(metadata: Metadata): number;\n GetEntryName(metadata: Metadata, entry_id: number): string;\n}\n\n/**\n * Draco3D Decoder class\n */\nexport declare class Decoder {\n constructor();\n\n GetEncodedGeometryType(in_buffer: DecoderBuffer): draco_EncodedGeometryType;\n\n DecodeBufferToPointCloud(in_buffer: DecoderBuffer, out_point_cloud: PointCloud): Status;\n DecodeBufferToMesh(in_buffer: DecoderBuffer, out_mesh: Mesh): Status;\n\n GetAttributeId(pc: PointCloud, type: draco_GeometryAttribute_Type): number;\n GetAttributeIdByName(pc: PointCloud, name: string): number;\n GetAttributeIdByMetadataEntry(pc: PointCloud, name: string, value: string): number;\n\n GetAttribute(pc: PointCloud, att_id: number): PointAttribute;\n GetAttributeByUniqueId(pc: PointCloud, unique_id: number): PointAttribute;\n\n GetMetadata(pc: PointCloud): Metadata;\n GetAttributeMetadata(pc: PointCloud, att_id: number): Metadata;\n\n GetFaceFromMesh(m: Mesh, face_id: number, out_values: DracoInt32Array): boolean;\n GetTriangleStripsFromMesh(m: Mesh, strip_values: DracoInt32Array);\n\n GetTrianglesUInt16Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n GetTrianglesUInt32Array(m: Mesh, out_size: number, out_values: VoidPtr): boolean;\n\n GetAttributeFloat(pa: PointAttribute, att_index: number, out_values: DracoFloat32Array): boolean;\n\n GetAttributeFloatForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoFloat32Array\n ): boolean;\n\n // Deprecated, use GetAttributeInt32ForAllPoints instead.\n GetAttributeIntForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n\n GetAttributeInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt8Array\n ): boolean;\n GetAttributeUInt8ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt8Array\n ): boolean;\n GetAttributeInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt16Array\n ): boolean;\n GetAttributeUInt16ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt16Array\n ): boolean;\n GetAttributeInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoInt32Array\n ): boolean;\n GetAttributeUInt32ForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n out_values: DracoUInt32Array\n ): boolean;\n\n GetAttributeDataArrayForAllPoints(\n pc: PointCloud,\n pa: PointAttribute,\n data_type: draco_DataType,\n out_size: number,\n out_values: VoidPtr\n ): boolean;\n\n SkipAttributeTransform(att_type: draco_GeometryAttribute_Type): void;\n}\n\n// DRACO WEB ENCODER IDL\n\n/** Draco3D metadata builder */\nexport declare class MetadataBuilder {\n constructor();\n AddStringEntry(metadata: Metadata, entry_name: string, entry_value: string);\n AddIntEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddDoubleEntry(metadata: Metadata, entry_name: string, entry_value: number);\n AddIntEntryArray(\n metadata: Metadata,\n entry_name: string,\n entry_value: Int32Array,\n num_values: number\n );\n}\n\n/** Draco3D point cloud builder */\n\nexport declare class PointCloudBuilder {\n constructor();\n PointCloudBuilder(): void;\n AddFloatAttribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Float32Array\n );\n AddInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int8Array\n );\n AddUInt8Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint8Array\n );\n AddInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int16Array\n );\n AddUInt16Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint16Array\n );\n AddInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Int32Array\n );\n AddUInt32Attribute(\n pc: PointCloud,\n type: draco_GeometryAttribute_Type,\n num_vertices: number,\n num_components: number,\n att_values: Uint32Array\n );\n\n AddMetadata(pc: PointCloud, metadata: Metadata): boolean;\n SetMetadataForAttribute(pc: PointCloud, attribute_id: number, metadata: Metadata);\n}\n\n/** Draco3D mesh builder */\nexport declare class MeshBuilder extends PointCloudBuilder {\n constructor();\n AddFacesToMesh(mesh: Mesh, num_faces: number, faces: number[]): boolean;\n}\n\n/** Draco3D encoder */\nexport declare class Encoder {\n constructor();\n Encoder(): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(type: draco_GeometryAttribute_Type, quantization_bits: number);\n SetAttributeExplicitQuantization(\n type: draco_GeometryAttribute_Type,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeMeshToDracoBuffer(mesh: Mesh, encoded_data: DracoInt8Array);\n EncodePointCloudToDracoBuffer(\n pc: PointCloud,\n deduplicate_values: boolean,\n encoded_data: DracoInt8Array\n );\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D expert encoder */\nexport declare class ExpertEncoder {\n constructor();\n ExpertEncoder(pc: PointCloud): void;\n SetEncodingMethod(method: number): void;\n SetAttributeQuantization(att_id: number, quantization_bits: number);\n SetAttributeExplicitQuantization(\n att_id: number,\n quantization_bits: number,\n num_components: number,\n origin: number[],\n range: number\n );\n SetSpeedOptions(encoding_speed: number, decoding_speed: number): void;\n SetTrackEncodedProperties(flag: boolean): void;\n\n EncodeToDracoBuffer(deduplicate_values: boolean, encoded_data: DracoInt8Array);\n\n // Returns the number of encoded points or faces from the last Encode\n // operation. Returns 0 if SetTrackEncodedProperties was not set to true.\n GetNumberOfEncodedPoints(): number;\n GetNumberOfEncodedFaces(): number;\n}\n\n/** Draco3D module interface */\nexport interface Draco3D {\n // ENUMS\n\n // draco_EncodedGeometryType\n readonly INVALID_GEOMETRY_TYPE: draco_EncodedGeometryType;\n readonly POINT_CLOUD: draco_EncodedGeometryType;\n readonly TRIANGULAR_MESH: draco_EncodedGeometryType;\n\n // enum draco_GeometryAttribute_Type\n readonly INVALID: draco_GeometryAttribute_Type;\n readonly POSITION: draco_GeometryAttribute_Type;\n readonly NORMAL: draco_GeometryAttribute_Type;\n readonly COLOR: draco_GeometryAttribute_Type;\n readonly TEX_COORD: draco_GeometryAttribute_Type;\n readonly GENERIC: draco_GeometryAttribute_Type;\n\n // enum draco_DataType\n readonly DT_INVALID: draco_DataType;\n readonly DT_INT8: draco_DataType;\n readonly DT_UINT8: draco_DataType;\n readonly DT_INT16: draco_DataType;\n readonly DT_UINT16: draco_DataType;\n readonly DT_INT32: draco_DataType;\n readonly DT_UINT32: draco_DataType;\n readonly DT_INT64: draco_DataType;\n readonly DT_UINT64: draco_DataType;\n readonly DT_FLOAT32: draco_DataType;\n readonly DT_FLOAT64: draco_DataType;\n readonly DT_BOOL: draco_DataType;\n readonly DT_TYPES_COUNT: draco_DataType;\n\n readonly Mesh: typeof Mesh;\n readonly PointCloud: typeof PointCloud;\n readonly Metadata: typeof Metadata;\n\n readonly Encoder: typeof Encoder;\n readonly MeshBuilder: typeof MeshBuilder;\n readonly MetadataBuilder: typeof MetadataBuilder;\n\n readonly MetadataQuerier: typeof MetadataQuerier;\n readonly Decoder: typeof Decoder;\n readonly DecoderBuffer: typeof DecoderBuffer;\n\n readonly DracoFloat32Array: typeof DracoFloat32Array;\n readonly DracoInt8Array: typeof DracoInt8Array;\n readonly DracoUInt8Array: typeof DracoUInt8Array;\n readonly DracoInt16Array: typeof DracoInt16Array;\n readonly DracoUInt16Array: typeof DracoUInt16Array;\n readonly DracoInt32Array: typeof DracoInt32Array;\n readonly DracoUInt32Array: typeof DracoUInt32Array;\n\n readonly AttributeQuantizationTransform: typeof AttributeQuantizationTransform;\n\n // createEncoderModule(): Encoder;\n // createDecoderModule(): Decoder;\n destroy(resource: any): void;\n _malloc(byteLength: number): number;\n _free(ptr: number): void;\n\n HEAPF32: {\n buffer: ArrayBuffer;\n };\n}\n"],"mappings":";;;;;;IAiBYA,4BAA4B,aAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAA5BA,4BAA4B,CAA5BA,4BAA4B;EAAA,OAA5BA,4BAA4B;AAAA;AAAAC,OAAA,CAAAD,4BAAA,GAAAA,4BAAA;AAAA,IAU5BE,yBAAyB,aAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAzBA,yBAAyB,CAAzBA,yBAAyB;EAAA,OAAzBA,yBAAyB;AAAA;AAAAD,OAAA,CAAAC,yBAAA,GAAAA,yBAAA;AAAA,IAOzBC,cAAc,aAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAdA,cAAc,CAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAAAF,OAAA,CAAAE,cAAA,GAAAA,cAAA;AAAA,IAiBdC,gBAAgB,aAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAhBA,gBAAgB,CAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAAAH,OAAA,CAAAG,gBAAA,GAAAA,gBAAA"}
package/dist/es5/index.js CHANGED
@@ -40,7 +40,6 @@ var DracoWriterWorker = {
40
40
  source: null
41
41
  }
42
42
  };
43
-
44
43
  exports.DracoWriterWorker = DracoWriterWorker;
45
44
  var DracoLoader = _objectSpread(_objectSpread({}, _dracoLoader.DracoLoader), {}, {
46
45
  parse: parse
@@ -53,25 +52,23 @@ function _parse() {
53
52
  _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
54
53
  var _yield$loadDracoDecod, draco, dracoParser;
55
54
  return _regenerator.default.wrap(function _callee$(_context) {
56
- while (1) {
57
- switch (_context.prev = _context.next) {
58
- case 0:
59
- _context.next = 2;
60
- return (0, _dracoModuleLoader.loadDracoDecoderModule)(options);
61
- case 2:
62
- _yield$loadDracoDecod = _context.sent;
63
- draco = _yield$loadDracoDecod.draco;
64
- dracoParser = new _dracoParser.default(draco);
65
- _context.prev = 5;
66
- return _context.abrupt("return", dracoParser.parseSync(arrayBuffer, options === null || options === void 0 ? void 0 : options.draco));
67
- case 7:
68
- _context.prev = 7;
69
- dracoParser.destroy();
70
- return _context.finish(7);
71
- case 10:
72
- case "end":
73
- return _context.stop();
74
- }
55
+ while (1) switch (_context.prev = _context.next) {
56
+ case 0:
57
+ _context.next = 2;
58
+ return (0, _dracoModuleLoader.loadDracoDecoderModule)(options);
59
+ case 2:
60
+ _yield$loadDracoDecod = _context.sent;
61
+ draco = _yield$loadDracoDecod.draco;
62
+ dracoParser = new _dracoParser.default(draco);
63
+ _context.prev = 5;
64
+ return _context.abrupt("return", dracoParser.parseSync(arrayBuffer, options === null || options === void 0 ? void 0 : options.draco));
65
+ case 7:
66
+ _context.prev = 7;
67
+ dracoParser.destroy();
68
+ return _context.finish(7);
69
+ case 10:
70
+ case "end":
71
+ return _context.stop();
75
72
  }
76
73
  }, _callee, null, [[5,, 7, 10]]);
77
74
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["DracoWriterWorker","id","isBrowser","name","module","version","VERSION","worker","options","draco","source","DracoLoader","DracoWorkerLoader","parse","arrayBuffer","loadDracoDecoderModule","dracoParser","DracoParser","parseSync","destroy","_TypecheckDracoLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {DracoMesh, DracoLoaderData} from './lib/draco-types';\nimport type {DracoLoaderOptions} from './draco-loader';\nimport {DracoLoader as DracoWorkerLoader} from './draco-loader';\nimport DracoParser from './lib/draco-parser';\nimport {loadDracoDecoderModule} from './lib/draco-module-loader';\nimport {VERSION} from './lib/utils/version';\nimport {isBrowser} from '@loaders.gl/worker-utils';\n\n// Draco data types\n\nexport type {DracoMesh, DracoLoaderData};\n\n// Draco Writer\n\nexport type {DracoWriterOptions} from './draco-writer';\nexport {DracoWriter} from './draco-writer';\n\n/**\n * Browser worker doesn't work because of issue during \"draco_encoder.js\" loading.\n * 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.\n */\nexport const DracoWriterWorker = {\n id: isBrowser ? 'draco-writer' : 'draco-writer-nodejs',\n name: 'Draco compressed geometry writer',\n module: 'draco',\n version: VERSION,\n worker: true,\n options: {\n draco: {},\n source: null\n }\n};\n\n// Draco Loader\n\nexport type {DracoLoaderOptions};\nexport {DracoWorkerLoader};\n\n/**\n * Loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n ...DracoWorkerLoader,\n parse\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<DracoMesh> {\n const {draco} = await loadDracoDecoderModule(options);\n const dracoParser = new DracoParser(draco);\n try {\n return dracoParser.parseSync(arrayBuffer, options?.draco);\n } finally {\n dracoParser.destroy();\n }\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckDracoLoader: LoaderWithParser = DracoLoader;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA;AACA;AACA;AACA;AACA;AASA;AAA2C;AAAA;AAMpC,IAAMA,iBAAiB,GAAG;EAC/BC,EAAE,EAAEC,sBAAS,GAAG,cAAc,GAAG,qBAAqB;EACtDC,IAAI,EAAE,kCAAkC;EACxCC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEC,gBAAO;EAChBC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACPC,KAAK,EAAE,CAAC,CAAC;IACTC,MAAM,EAAE;EACV;AACF,CAAC;;AAAC;AAUK,IAAMC,WAAW,mCACnBC,wBAAiB;EACpBC,KAAK,EAALA;AAAK,EACN;AAAC;AAAA,SAEaA,KAAK;EAAA;AAAA;AAAA;EAAA,mEAApB,iBAAqBC,WAAwB,EAAEN,OAA4B;IAAA;IAAA;MAAA;QAAA;UAAA;YAAA;YAAA,OACnD,IAAAO,yCAAsB,EAACP,OAAO,CAAC;UAAA;YAAA;YAA9CC,KAAK,yBAALA,KAAK;YACNO,WAAW,GAAG,IAAIC,oBAAW,CAACR,KAAK,CAAC;YAAA;YAAA,iCAEjCO,WAAW,CAACE,SAAS,CAACJ,WAAW,EAAEN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;UAAA;YAAA;YAEzDO,WAAW,CAACG,OAAO,EAAE;YAAC;UAAA;UAAA;YAAA;QAAA;MAAA;IAAA;EAAA,CAEzB;EAAA;AAAA;AAGM,IAAMC,qBAAuC,GAAGT,WAAW;AAAC"}
1
+ {"version":3,"file":"index.js","names":["_dracoLoader","require","_dracoParser","_interopRequireDefault","_dracoModuleLoader","_version","_workerUtils","_dracoWriter","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","DracoWriterWorker","id","isBrowser","name","module","version","VERSION","worker","options","draco","exports","DracoLoader","DracoWorkerLoader","parse","_x","_x2","_parse","_asyncToGenerator2","_regenerator","mark","_callee","arrayBuffer","_yield$loadDracoDecod","dracoParser","wrap","_callee$","_context","prev","next","loadDracoDecoderModule","sent","DracoParser","abrupt","parseSync","destroy","finish","stop","_TypecheckDracoLoader"],"sources":["../../src/index.ts"],"sourcesContent":["import type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {DracoMesh, DracoLoaderData} from './lib/draco-types';\nimport type {DracoLoaderOptions} from './draco-loader';\nimport {DracoLoader as DracoWorkerLoader} from './draco-loader';\nimport DracoParser from './lib/draco-parser';\nimport {loadDracoDecoderModule} from './lib/draco-module-loader';\nimport {VERSION} from './lib/utils/version';\nimport {isBrowser} from '@loaders.gl/worker-utils';\n\n// Draco data types\n\nexport type {DracoMesh, DracoLoaderData};\n\n// Draco Writer\n\nexport type {DracoWriterOptions} from './draco-writer';\nexport {DracoWriter} from './draco-writer';\n\n/**\n * Browser worker doesn't work because of issue during \"draco_encoder.js\" loading.\n * 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.\n */\nexport const DracoWriterWorker = {\n id: isBrowser ? 'draco-writer' : 'draco-writer-nodejs',\n name: 'Draco compressed geometry writer',\n module: 'draco',\n version: VERSION,\n worker: true,\n options: {\n draco: {},\n source: null\n }\n};\n\n// Draco Loader\n\nexport type {DracoLoaderOptions};\nexport {DracoWorkerLoader};\n\n/**\n * Loader for Draco3D compressed geometries\n */\nexport const DracoLoader = {\n ...DracoWorkerLoader,\n parse\n};\n\nasync function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<DracoMesh> {\n const {draco} = await loadDracoDecoderModule(options);\n const dracoParser = new DracoParser(draco);\n try {\n return dracoParser.parseSync(arrayBuffer, options?.draco);\n } finally {\n dracoParser.destroy();\n }\n}\n\n// TYPE TESTS - TODO find a better way than exporting junk\nexport const _TypecheckDracoLoader: LoaderWithParser = DracoLoader;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;AASA,IAAAM,YAAA,GAAAN,OAAA;AAA2C,SAAAO,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,CAAAC,OAAA,EAAAR,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAmB,yBAAA,GAAAnB,MAAA,CAAAoB,gBAAA,CAAAV,MAAA,EAAAV,MAAA,CAAAmB,yBAAA,CAAAL,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAqB,cAAA,CAAAX,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAMpC,IAAMY,iBAAiB,GAAG;EAC/BC,EAAE,EAAEC,sBAAS,GAAG,cAAc,GAAG,qBAAqB;EACtDC,IAAI,EAAE,kCAAkC;EACxCC,MAAM,EAAE,OAAO;EACfC,OAAO,EAAEC,gBAAO;EAChBC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE;IACPC,KAAK,EAAE,CAAC,CAAC;IACTjB,MAAM,EAAE;EACV;AACF,CAAC;AAACkB,OAAA,CAAAV,iBAAA,GAAAA,iBAAA;AAUK,IAAMW,WAAW,GAAAxB,aAAA,CAAAA,aAAA,KACnByB,wBAAiB;EACpBC,KAAK,EAALA;AAAK,EACN;AAACH,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAAA,SAEaE,KAAKA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,MAAA,CAAA9B,KAAA,OAAAI,SAAA;AAAA;AAAA,SAAA0B,OAAA;EAAAA,MAAA,OAAAC,kBAAA,CAAArB,OAAA,EAAAsB,YAAA,CAAAtB,OAAA,CAAAuB,IAAA,CAApB,SAAAC,QAAqBC,WAAwB,EAAEb,OAA4B;IAAA,IAAAc,qBAAA,EAAAb,KAAA,EAAAc,WAAA;IAAA,OAAAL,YAAA,CAAAtB,OAAA,CAAA4B,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OACnD,IAAAC,yCAAsB,EAACrB,OAAO,CAAC;QAAA;UAAAc,qBAAA,GAAAI,QAAA,CAAAI,IAAA;UAA9CrB,KAAK,GAAAa,qBAAA,CAALb,KAAK;UACNc,WAAW,GAAG,IAAIQ,oBAAW,CAACtB,KAAK,CAAC;UAAAiB,QAAA,CAAAC,IAAA;UAAA,OAAAD,QAAA,CAAAM,MAAA,WAEjCT,WAAW,CAACU,SAAS,CAACZ,WAAW,EAAEb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;QAAA;UAAAiB,QAAA,CAAAC,IAAA;UAEzDJ,WAAW,CAACW,OAAO,EAAE;UAAC,OAAAR,QAAA,CAAAS,MAAA;QAAA;QAAA;UAAA,OAAAT,QAAA,CAAAU,IAAA;MAAA;IAAA,GAAAhB,OAAA;EAAA,CAEzB;EAAA,OAAAJ,MAAA,CAAA9B,KAAA,OAAAI,SAAA;AAAA;AAGM,IAAM+C,qBAAuC,GAAG1B,WAAW;AAACD,OAAA,CAAA2B,qBAAA,GAAAA,qBAAA"}
@@ -13,10 +13,9 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
  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(_e) { throw _e; }, 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(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
15
15
  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); }
16
- 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; }
16
+ 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; }
17
17
  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; }
18
18
  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) { (0, _defineProperty2.default)(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; }
19
-
20
19
  var GLTF_TO_DRACO_ATTRIBUTE_NAME_MAP = {
21
20
  POSITION: 'POSITION',
22
21
  NORMAL: 'NORMAL',
@@ -47,31 +46,24 @@ var DracoBuilder = function () {
47
46
  this.dracoEncoder = null;
48
47
  this.draco = null;
49
48
  }
50
-
51
49
  }, {
52
50
  key: "destroyEncodedObject",
53
- value:
54
- function destroyEncodedObject(object) {
51
+ value: function destroyEncodedObject(object) {
55
52
  if (object) {
56
53
  this.draco.destroy(object);
57
54
  }
58
55
  }
59
-
60
56
  }, {
61
57
  key: "encodeSync",
62
- value:
63
- function encodeSync(mesh) {
58
+ value: function encodeSync(mesh) {
64
59
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
65
60
  this.log = noop;
66
61
  this._setOptions(options);
67
62
  return options.pointcloud ? this._encodePointCloud(mesh, options) : this._encodeMesh(mesh, options);
68
63
  }
69
-
70
64
  }, {
71
65
  key: "_getAttributesFromMesh",
72
- value:
73
-
74
- function _getAttributesFromMesh(mesh) {
66
+ value: function _getAttributesFromMesh(mesh) {
75
67
  var attributes = _objectSpread(_objectSpread({}, mesh), mesh.attributes);
76
68
  if (mesh.indices) {
77
69
  attributes.indices = mesh.indices;
@@ -86,7 +78,6 @@ var DracoBuilder = function () {
86
78
  this._addGeometryMetadata(dracoPointCloud, options.metadata);
87
79
  }
88
80
  var attributes = this._getAttributesFromMesh(pointcloud);
89
-
90
81
  this._createDracoPointCloud(dracoPointCloud, attributes, options);
91
82
  var dracoData = new this.draco.DracoInt8Array();
92
83
  try {
@@ -109,7 +100,6 @@ var DracoBuilder = function () {
109
100
  this._addGeometryMetadata(dracoMesh, options.metadata);
110
101
  }
111
102
  var attributes = this._getAttributesFromMesh(mesh);
112
-
113
103
  this._createDracoMesh(dracoMesh, attributes, options);
114
104
  var dracoData = new this.draco.DracoInt8Array();
115
105
  try {
@@ -124,11 +114,9 @@ var DracoBuilder = function () {
124
114
  this.destroyEncodedObject(dracoMesh);
125
115
  }
126
116
  }
127
-
128
117
  }, {
129
118
  key: "_setOptions",
130
- value:
131
- function _setOptions(options) {
119
+ value: function _setOptions(options) {
132
120
  if ('speed' in options) {
133
121
  var _this$dracoEncoder;
134
122
  (_this$dracoEncoder = this.dracoEncoder).SetSpeedOptions.apply(_this$dracoEncoder, (0, _toConsumableArray2.default)(options.speed));
@@ -145,11 +133,9 @@ var DracoBuilder = function () {
145
133
  }
146
134
  }
147
135
  }
148
-
149
136
  }, {
150
137
  key: "_createDracoMesh",
151
- value:
152
- function _createDracoMesh(dracoMesh, attributes, options) {
138
+ value: function _createDracoMesh(dracoMesh, attributes, options) {
153
139
  var optionalMetadata = options.attributesMetadata || {};
154
140
  try {
155
141
  var positions = this._getPositionAttribute(attributes);
@@ -173,11 +159,9 @@ var DracoBuilder = function () {
173
159
  }
174
160
  return dracoMesh;
175
161
  }
176
-
177
162
  }, {
178
163
  key: "_createDracoPointCloud",
179
- value:
180
- function _createDracoPointCloud(dracoPointCloud, attributes, options) {
164
+ value: function _createDracoPointCloud(dracoPointCloud, attributes, options) {
181
165
  var optionalMetadata = options.attributesMetadata || {};
182
166
  try {
183
167
  var positions = this._getPositionAttribute(attributes);
@@ -201,11 +185,9 @@ var DracoBuilder = function () {
201
185
  }
202
186
  return dracoPointCloud;
203
187
  }
204
-
205
188
  }, {
206
189
  key: "_addAttributeToMesh",
207
- value:
208
- function _addAttributeToMesh(mesh, attributeName, attribute, vertexCount) {
190
+ value: function _addAttributeToMesh(mesh, attributeName, attribute, vertexCount) {
209
191
  if (!ArrayBuffer.isView(attribute)) {
210
192
  return -1;
211
193
  }
@@ -214,7 +196,6 @@ var DracoBuilder = function () {
214
196
  if (type === 'indices') {
215
197
  var numFaces = attribute.length / 3;
216
198
  this.log("Adding attribute ".concat(attributeName, ", size ").concat(numFaces));
217
-
218
199
  this.dracoMeshBuilder.AddFacesToMesh(mesh, numFaces, attribute);
219
200
  return -1;
220
201
  }
@@ -240,11 +221,9 @@ var DracoBuilder = function () {
240
221
  return builder.AddFloatAttribute(mesh, type, vertexCount, size, new Float32Array(buffer));
241
222
  }
242
223
  }
243
-
244
224
  }, {
245
225
  key: "_getDracoAttributeType",
246
- value:
247
- function _getDracoAttributeType(attributeName) {
226
+ value: function _getDracoAttributeType(attributeName) {
248
227
  switch (attributeName.toLowerCase()) {
249
228
  case 'indices':
250
229
  return 'indices';
@@ -277,29 +256,23 @@ var DracoBuilder = function () {
277
256
  }
278
257
  return null;
279
258
  }
280
-
281
259
  }, {
282
260
  key: "_addGeometryMetadata",
283
- value:
284
- function _addGeometryMetadata(dracoGeometry, metadata) {
261
+ value: function _addGeometryMetadata(dracoGeometry, metadata) {
285
262
  var dracoMetadata = new this.draco.Metadata();
286
263
  this._populateDracoMetadata(dracoMetadata, metadata);
287
264
  this.dracoMeshBuilder.AddMetadata(dracoGeometry, dracoMetadata);
288
265
  }
289
-
290
266
  }, {
291
267
  key: "_addAttributeMetadata",
292
- value:
293
- function _addAttributeMetadata(dracoGeometry, uniqueAttributeId, metadata) {
268
+ value: function _addAttributeMetadata(dracoGeometry, uniqueAttributeId, metadata) {
294
269
  var dracoAttributeMetadata = new this.draco.Metadata();
295
270
  this._populateDracoMetadata(dracoAttributeMetadata, metadata);
296
271
  this.dracoMeshBuilder.SetMetadataForAttribute(dracoGeometry, uniqueAttributeId, dracoAttributeMetadata);
297
272
  }
298
-
299
273
  }, {
300
274
  key: "_populateDracoMetadata",
301
- value:
302
- function _populateDracoMetadata(dracoMetadata, metadata) {
275
+ value: function _populateDracoMetadata(dracoMetadata, metadata) {
303
276
  var _iterator = _createForOfIteratorHelper(getEntries(metadata)),
304
277
  _step;
305
278
  try {
@@ -335,7 +308,6 @@ var DracoBuilder = function () {
335
308
  return DracoBuilder;
336
309
  }();
337
310
  exports.default = DracoBuilder;
338
-
339
311
  function dracoInt8ArrayToArrayBuffer(dracoData) {
340
312
  var byteLength = dracoData.size();
341
313
  var outputBuffer = new ArrayBuffer(byteLength);
@@ -345,7 +317,6 @@ function dracoInt8ArrayToArrayBuffer(dracoData) {
345
317
  }
346
318
  return outputBuffer;
347
319
  }
348
-
349
320
  function getEntries(container) {
350
321
  var hasEntriesFunc = container.entries && !container.hasOwnProperty('entries');
351
322
  return hasEntriesFunc ? container.entries() : Object.entries(container);