@loaders.gl/draco 3.4.14 → 3.4.15
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.
- package/dist/draco-nodejs-worker.js +1 -1
- package/dist/draco-worker.js +1 -1
- package/dist/draco-writer-nodejs-worker.js +2 -2
- package/dist/draco-writer-worker.js +2 -2
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/draco-loader.js +4 -6
- package/dist/es5/draco-loader.js.map +1 -1
- package/dist/es5/draco-writer-nodejs.js +1 -1
- package/dist/es5/draco-writer.js +14 -38
- package/dist/es5/draco-writer.js.map +1 -1
- package/dist/es5/draco3d/draco3d-types.js +4 -4
- package/dist/es5/index.js +18 -40
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/lib/draco-builder.js +218 -266
- package/dist/es5/lib/draco-builder.js.map +1 -1
- package/dist/es5/lib/draco-module-loader.js +64 -164
- package/dist/es5/lib/draco-module-loader.js.map +1 -1
- package/dist/es5/lib/draco-parser.js +279 -343
- package/dist/es5/lib/draco-parser.js.map +1 -1
- package/dist/es5/lib/utils/get-draco-schema.js +15 -15
- package/dist/es5/lib/utils/get-draco-schema.js.map +1 -1
- package/dist/es5/lib/utils/version.js +1 -1
- package/dist/es5/lib/utils/version.js.map +1 -1
- package/dist/es5/workers/draco-writer-nodejs-worker.js +22 -43
- package/dist/es5/workers/draco-writer-nodejs-worker.js.map +1 -1
- package/dist/es5/workers/draco-writer-worker.js +22 -43
- package/dist/es5/workers/draco-writer-worker.js.map +1 -1
- package/dist/esm/lib/utils/version.js +1 -1
- package/package.json +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var k=Object.defineProperty;var N=t=>k(t,"__esModule",{value:!0});var v=(t,e)=>{N(t);for(var r in e)k(t,r,{get:e[r],enumerable:!0})};var m="3.4.
|
|
1
|
+
(()=>{var k=Object.defineProperty;var N=t=>k(t,"__esModule",{value:!0});var v=(t,e)=>{N(t);for(var r in e)k(t,r,{get:e[r],enumerable:!0})};var m="3.4.15";function T(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},oe=c.self||c.window||c.global||{},ae=c.window||c.self||c.global||{},P=c.global||c.self||c.window||{},se=c.document||{};var y=typeof process!="object"||String(process)!=="[object process]"||process.browser,h=typeof importScripts=="function",ne=typeof window!="undefined"&&typeof window.orientation!="undefined",W=typeof process!="undefined"&&process.version&&/v([0-9]*)/.exec(process.version),ie=W&&parseFloat(W[1])||0;function w(t,e=!0,r){let o=r||new Set;if(t){if(B(t))o.add(t);else if(B(t.buffer))o.add(t.buffer);else if(!ArrayBuffer.isView(t)){if(e&&typeof t=="object")for(let a in t)w(t[a],e,o)}}return r===void 0?Array.from(o):[]}function B(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 b=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=b.get(e);r||(r=a=>{if(!F(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=b.get(e);b.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=w(r),s=f();s?s.postMessage(o,a):globalThis.postMessage(o,a)}};function F(t){let{type:e,data:r}=t;return e==="message"&&r&&typeof r.source=="string"&&r.source.startsWith("loaders.gl")}var A={};v(A,{readFileAsArrayBuffer:()=>V,readFileAsText:()=>$,requireFromFile:()=>M,requireFromString:()=>_});var V=null,$=null,M=null,_=null;var q="latest",j=typeof m!="undefined"?m:q,E={};async function O(t,e=null,r={}){return e&&(t=I(t,e,r)),E[t]=E[t]||U(t),await E[t]}function I(t,e,r){if(t.startsWith("http"))return t;let o=r.modules||{};return o[t]?o[t]:y?r.CDN?(T(r.CDN.startsWith("http")),`${r.CDN}/${e}@${j}/dist/libs/${t}`):h?`../src/libs/${t}`:`modules/${e}/src/libs/${t}`:`modules/${e}/dist/libs/${t}`}async function U(t){if(t.endsWith("wasm"))return await(await fetch(t)).arrayBuffer();if(!y)try{return A&&M&&await M(t)}catch{return null}if(h)return importScripts(t);let r=await(await fetch(t)).text();return z(r,t)}function z(t,e){if(!y)return _&&_(t,e);if(h)return eval.call(P,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 R={POSITION:"POSITION",NORMAL:"NORMAL",COLOR_0:"COLOR",TEXCOORD_0:"TEX_COORD"},G=()=>{},g=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=G,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`),x(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`),x(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=R[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=R[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 Q(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 x(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 Q(t){return t.entries&&!t.hasOwnProperty("entries")?t.entries():Object.entries(t)}var X="1.5.5",J="1.4.1",D=`https://www.gstatic.com/draco/versioned/decoders/${X}`,_e=`${D}/draco_decoder.js`,Ae=`${D}/draco_wasm_wrapper.js`,Ee=`${D}/draco_decoder.wasm`,H=`https://raw.githubusercontent.com/google/draco/${J}/javascript/draco_encoder.js`;var p;async function S(t){let e=t.modules||{};return e.draco3d?p=p||e.draco3d.createEncoderModule({}).then(r=>({draco:r})):p=p||K(t),await p}async function K(t){let e=await O(H,"draco",t);return e=e||globalThis.DracoEncoderModule,new Promise(r=>{e({onModuleLoaded:o=>r({draco:o})})})}var C="3.4.
|
|
3
|
+
with ${o.num_attributes()} attributes into ${i} bytes`),x(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=R[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=R[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 Q(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 x(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 Q(t){return t.entries&&!t.hasOwnProperty("entries")?t.entries():Object.entries(t)}var X="1.5.5",J="1.4.1",D=`https://www.gstatic.com/draco/versioned/decoders/${X}`,_e=`${D}/draco_decoder.js`,Ae=`${D}/draco_wasm_wrapper.js`,Ee=`${D}/draco_decoder.wasm`,H=`https://raw.githubusercontent.com/google/draco/${J}/javascript/draco_encoder.js`;var p;async function S(t){let e=t.modules||{};return e.draco3d?p=p||e.draco3d.createEncoderModule({}).then(r=>({draco:r})):p=p||K(t),await p}async function K(t){let e=await O(H,"draco",t);return e=e||globalThis.DracoEncoderModule,new Promise(r=>{e({onModuleLoaded:o=>r({draco:o})})})}var C="3.4.15";var Y={pointcloud:!1,attributeNameEntry:"name"},L={name:"DRACO",id:"draco",module:"draco",version:C,extensions:["drc"],encode:Z,options:{draco:Y}};async function Z(t,e={}){let{draco:r}=await S(e),o=new g(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
|
package/dist/es5/bundle.js
CHANGED
package/dist/es5/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"mappings":";;AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,OAAO,GAAGD,UAAU,CAACC,OAAO,IAAI,CAAC,CAAC;AAC7CC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,OAAO,EAAEH,aAAa,CAAC"}
|
package/dist/es5/draco-loader.js
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports._TypecheckDracoLoader = exports.DracoLoader = void 0;
|
|
8
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
7
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
10
8
|
var _version = require("./lib/utils/version");
|
|
11
|
-
|
|
9
|
+
const DEFAULT_DRACO_OPTIONS = {
|
|
12
10
|
draco: {
|
|
13
|
-
decoderType:
|
|
11
|
+
decoderType: typeof WebAssembly === 'object' ? 'wasm' : 'js',
|
|
14
12
|
libraryPath: 'libs/',
|
|
15
13
|
extraAttributes: {},
|
|
16
14
|
attributeNameEntry: undefined
|
|
17
15
|
}
|
|
18
16
|
};
|
|
19
|
-
|
|
17
|
+
const DracoLoader = {
|
|
20
18
|
name: 'Draco',
|
|
21
19
|
id: _workerUtils.isBrowser ? 'draco' : 'draco-nodejs',
|
|
22
20
|
module: 'draco',
|
|
@@ -30,6 +28,6 @@ var DracoLoader = {
|
|
|
30
28
|
options: DEFAULT_DRACO_OPTIONS
|
|
31
29
|
};
|
|
32
30
|
exports.DracoLoader = DracoLoader;
|
|
33
|
-
|
|
31
|
+
const _TypecheckDracoLoader = DracoLoader;
|
|
34
32
|
exports._TypecheckDracoLoader = _TypecheckDracoLoader;
|
|
35
33
|
//# sourceMappingURL=draco-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draco-loader.js","names":["_workerUtils","require","_version","DEFAULT_DRACO_OPTIONS","draco","decoderType","WebAssembly","
|
|
1
|
+
{"version":3,"file":"draco-loader.js","names":["_workerUtils","require","_version","DEFAULT_DRACO_OPTIONS","draco","decoderType","WebAssembly","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,MAAME,qBAAyC,GAAG;EAChDC,KAAK,EAAE;IACLC,WAAW,EAAE,OAAOC,WAAW,KAAK,QAAQ,GAAG,MAAM,GAAG,IAAI;IAC5DC,WAAW,EAAE,OAAO;IACpBC,eAAe,EAAE,CAAC,CAAC;IACnBC,kBAAkB,EAAEC;EACtB;AACF,CAAC;AAKM,MAAMC,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;AAACsB,OAAA,CAAAd,WAAA,GAAAA,WAAA;AAEK,MAAMe,qBAA6B,GAAGf,WAAW;AAACc,OAAA,CAAAC,qBAAA,GAAAA,qBAAA"}
|
package/dist/es5/draco-writer.js
CHANGED
|
@@ -5,59 +5,35 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.DracoWriter = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
8
|
var _dracoBuilder = _interopRequireDefault(require("./lib/draco-builder"));
|
|
11
9
|
var _dracoModuleLoader = require("./lib/draco-module-loader");
|
|
12
10
|
var _version = require("./lib/utils/version");
|
|
13
|
-
|
|
11
|
+
const DEFAULT_DRACO_OPTIONS = {
|
|
14
12
|
pointcloud: false,
|
|
15
13
|
attributeNameEntry: 'name'
|
|
16
14
|
};
|
|
17
|
-
|
|
15
|
+
const DracoWriter = {
|
|
18
16
|
name: 'DRACO',
|
|
19
17
|
id: 'draco',
|
|
20
18
|
module: 'draco',
|
|
21
19
|
version: _version.VERSION,
|
|
22
20
|
extensions: ['drc'],
|
|
23
|
-
encode
|
|
21
|
+
encode,
|
|
24
22
|
options: {
|
|
25
23
|
draco: DEFAULT_DRACO_OPTIONS
|
|
26
24
|
}
|
|
27
25
|
};
|
|
28
26
|
exports.DracoWriter = DracoWriter;
|
|
29
|
-
function encode(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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();
|
|
58
|
-
}
|
|
59
|
-
}, _callee, null, [[6,, 8, 11]]);
|
|
60
|
-
}));
|
|
61
|
-
return _encode.apply(this, arguments);
|
|
27
|
+
async function encode(data) {
|
|
28
|
+
let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
29
|
+
const {
|
|
30
|
+
draco
|
|
31
|
+
} = await (0, _dracoModuleLoader.loadDracoEncoderModule)(options);
|
|
32
|
+
const dracoBuilder = new _dracoBuilder.default(draco);
|
|
33
|
+
try {
|
|
34
|
+
return dracoBuilder.encodeSync(data, options.draco);
|
|
35
|
+
} finally {
|
|
36
|
+
dracoBuilder.destroy();
|
|
37
|
+
}
|
|
62
38
|
}
|
|
63
39
|
//# sourceMappingURL=draco-writer.js.map
|
|
@@ -1 +1 @@
|
|
|
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","
|
|
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","data","arguments","length","undefined","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,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAQA,MAAMG,qBAAqB,GAAG;EAC5BC,UAAU,EAAE,KAAK;EACjBC,kBAAkB,EAAE;AAOtB,CAAC;AAKM,MAAMC,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;EACNC,OAAO,EAAE;IACPC,KAAK,EAAEZ;EACT;AACF,CAAC;AAACa,OAAA,CAAAV,WAAA,GAAAA,WAAA;AAEF,eAAeO,MAAMA,CAACI,IAAe,EAA0D;EAAA,IAAxDH,OAA2B,GAAAI,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAErE,MAAM;IAACH;EAAK,CAAC,GAAG,MAAM,IAAAM,yCAAsB,EAACP,OAAO,CAAC;EACrD,MAAMQ,YAAY,GAAG,IAAIC,qBAAY,CAACR,KAAK,CAAC;EAE5C,IAAI;IACF,OAAOO,YAAY,CAACE,UAAU,CAACP,IAAI,EAAEH,OAAO,CAACC,KAAK,CAAC;EACrD,CAAC,SAAS;IACRO,YAAY,CAACG,OAAO,CAAC,CAAC;EACxB;AACF"}
|
|
@@ -4,7 +4,7 @@ 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
|
-
|
|
7
|
+
let draco_GeometryAttribute_Type = function (draco_GeometryAttribute_Type) {
|
|
8
8
|
draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::INVALID"] = 0] = "draco_GeometryAttribute::INVALID";
|
|
9
9
|
draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::POSITION"] = 1] = "draco_GeometryAttribute::POSITION";
|
|
10
10
|
draco_GeometryAttribute_Type[draco_GeometryAttribute_Type["draco_GeometryAttribute::NORMAL"] = 2] = "draco_GeometryAttribute::NORMAL";
|
|
@@ -14,14 +14,14 @@ var draco_GeometryAttribute_Type = function (draco_GeometryAttribute_Type) {
|
|
|
14
14
|
return draco_GeometryAttribute_Type;
|
|
15
15
|
}({});
|
|
16
16
|
exports.draco_GeometryAttribute_Type = draco_GeometryAttribute_Type;
|
|
17
|
-
|
|
17
|
+
let draco_EncodedGeometryType = function (draco_EncodedGeometryType) {
|
|
18
18
|
draco_EncodedGeometryType[draco_EncodedGeometryType["draco::INVALID_GEOMETRY_TYPE"] = 0] = "draco::INVALID_GEOMETRY_TYPE";
|
|
19
19
|
draco_EncodedGeometryType[draco_EncodedGeometryType["draco::POINT_CLOUD"] = 1] = "draco::POINT_CLOUD";
|
|
20
20
|
draco_EncodedGeometryType[draco_EncodedGeometryType["draco::TRIANGULAR_MESH"] = 2] = "draco::TRIANGULAR_MESH";
|
|
21
21
|
return draco_EncodedGeometryType;
|
|
22
22
|
}({});
|
|
23
23
|
exports.draco_EncodedGeometryType = draco_EncodedGeometryType;
|
|
24
|
-
|
|
24
|
+
let draco_DataType = function (draco_DataType) {
|
|
25
25
|
draco_DataType[draco_DataType["draco::DT_INVALID"] = 0] = "draco::DT_INVALID";
|
|
26
26
|
draco_DataType[draco_DataType["draco::DT_INT8"] = 1] = "draco::DT_INT8";
|
|
27
27
|
draco_DataType[draco_DataType["draco::DT_UINT8"] = 2] = "draco::DT_UINT8";
|
|
@@ -38,7 +38,7 @@ var draco_DataType = function (draco_DataType) {
|
|
|
38
38
|
return draco_DataType;
|
|
39
39
|
}({});
|
|
40
40
|
exports.draco_DataType = draco_DataType;
|
|
41
|
-
|
|
41
|
+
let draco_StatusCode = function (draco_StatusCode) {
|
|
42
42
|
draco_StatusCode[draco_StatusCode["draco_Status::OK"] = 0] = "draco_Status::OK";
|
|
43
43
|
draco_StatusCode[draco_StatusCode["draco_Status::DRACO_ERROR"] = 1] = "draco_Status::DRACO_ERROR";
|
|
44
44
|
draco_StatusCode[draco_StatusCode["draco_Status::IO_ERROR"] = 2] = "draco_Status::IO_ERROR";
|
package/dist/es5/index.js
CHANGED
|
@@ -7,29 +7,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.DracoLoader = void 0;
|
|
8
8
|
Object.defineProperty(exports, "DracoWorkerLoader", {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function
|
|
10
|
+
get: function () {
|
|
11
11
|
return _dracoLoader.DracoLoader;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
Object.defineProperty(exports, "DracoWriter", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function
|
|
16
|
+
get: function () {
|
|
17
17
|
return _dracoWriter.DracoWriter;
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
exports._TypecheckDracoLoader = exports.DracoWriterWorker = void 0;
|
|
21
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
22
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
23
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
24
21
|
var _dracoLoader = require("./draco-loader");
|
|
25
22
|
var _dracoParser = _interopRequireDefault(require("./lib/draco-parser"));
|
|
26
23
|
var _dracoModuleLoader = require("./lib/draco-module-loader");
|
|
27
24
|
var _version = require("./lib/utils/version");
|
|
28
25
|
var _workerUtils = require("@loaders.gl/worker-utils");
|
|
29
26
|
var _dracoWriter = require("./draco-writer");
|
|
30
|
-
|
|
31
|
-
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; }
|
|
32
|
-
var DracoWriterWorker = {
|
|
27
|
+
const DracoWriterWorker = {
|
|
33
28
|
id: _workerUtils.isBrowser ? 'draco-writer' : 'draco-writer-nodejs',
|
|
34
29
|
name: 'Draco compressed geometry writer',
|
|
35
30
|
module: 'draco',
|
|
@@ -41,39 +36,22 @@ var DracoWriterWorker = {
|
|
|
41
36
|
}
|
|
42
37
|
};
|
|
43
38
|
exports.DracoWriterWorker = DracoWriterWorker;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
const DracoLoader = {
|
|
40
|
+
..._dracoLoader.DracoLoader,
|
|
41
|
+
parse
|
|
42
|
+
};
|
|
47
43
|
exports.DracoLoader = DracoLoader;
|
|
48
|
-
function parse(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
return
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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();
|
|
72
|
-
}
|
|
73
|
-
}, _callee, null, [[5,, 7, 10]]);
|
|
74
|
-
}));
|
|
75
|
-
return _parse.apply(this, arguments);
|
|
44
|
+
async function parse(arrayBuffer, options) {
|
|
45
|
+
const {
|
|
46
|
+
draco
|
|
47
|
+
} = await (0, _dracoModuleLoader.loadDracoDecoderModule)(options);
|
|
48
|
+
const dracoParser = new _dracoParser.default(draco);
|
|
49
|
+
try {
|
|
50
|
+
return dracoParser.parseSync(arrayBuffer, options === null || options === void 0 ? void 0 : options.draco);
|
|
51
|
+
} finally {
|
|
52
|
+
dracoParser.destroy();
|
|
53
|
+
}
|
|
76
54
|
}
|
|
77
|
-
|
|
55
|
+
const _TypecheckDracoLoader = DracoLoader;
|
|
78
56
|
exports._TypecheckDracoLoader = _TypecheckDracoLoader;
|
|
79
57
|
//# sourceMappingURL=index.js.map
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_dracoLoader","require","_dracoParser","_interopRequireDefault","_dracoModuleLoader","_version","_workerUtils","_dracoWriter","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_dracoLoader","require","_dracoParser","_interopRequireDefault","_dracoModuleLoader","_version","_workerUtils","_dracoWriter","DracoWriterWorker","id","isBrowser","name","module","version","VERSION","worker","options","draco","source","exports","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,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;AAMO,MAAMO,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;AAACC,OAAA,CAAAX,iBAAA,GAAAA,iBAAA;AAUK,MAAMY,WAAW,GAAG;EACzB,GAAGC,wBAAiB;EACpBC;AACF,CAAC;AAACH,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAEF,eAAeE,KAAKA,CAACC,WAAwB,EAAEP,OAA4B,EAAsB;EAC/F,MAAM;IAACC;EAAK,CAAC,GAAG,MAAM,IAAAO,yCAAsB,EAACR,OAAO,CAAC;EACrD,MAAMS,WAAW,GAAG,IAAIC,oBAAW,CAACT,KAAK,CAAC;EAC1C,IAAI;IACF,OAAOQ,WAAW,CAACE,SAAS,CAACJ,WAAW,EAAEP,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,KAAK,CAAC;EAC3D,CAAC,SAAS;IACRQ,WAAW,CAACG,OAAO,CAAC,CAAC;EACvB;AACF;AAGO,MAAMC,qBAAuC,GAAGT,WAAW;AAACD,OAAA,CAAAU,qBAAA,GAAAA,qBAAA"}
|