@loaders.gl/draco 4.3.2 → 4.4.0-alpha.2

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 (41) hide show
  1. package/dist/dist.dev.js +12966 -1012
  2. package/dist/dist.min.js +12 -3
  3. package/dist/draco-arrow-loader.d.ts +30 -0
  4. package/dist/draco-arrow-loader.d.ts.map +1 -0
  5. package/dist/draco-arrow-loader.js +19 -0
  6. package/dist/draco-format.d.ts +13 -0
  7. package/dist/draco-format.d.ts.map +1 -0
  8. package/dist/draco-format.js +15 -0
  9. package/dist/draco-loader.d.ts +28 -1
  10. package/dist/draco-loader.d.ts.map +1 -1
  11. package/dist/draco-loader.js +20 -1
  12. package/dist/draco-worker-node.js +253 -115
  13. package/dist/draco-worker-node.js.map +4 -4
  14. package/dist/draco-worker.js +111 -111
  15. package/dist/draco-worker.js.map +4 -4
  16. package/dist/draco-writer-worker-node.js +145 -6
  17. package/dist/draco-writer-worker-node.js.map +4 -4
  18. package/dist/draco-writer-worker.js +3 -2
  19. package/dist/draco-writer-worker.js.map +2 -2
  20. package/dist/draco-writer.d.ts +16 -0
  21. package/dist/draco-writer.d.ts.map +1 -1
  22. package/dist/draco-writer.js +19 -0
  23. package/dist/index.cjs +818 -802
  24. package/dist/index.cjs.map +4 -4
  25. package/dist/index.d.ts +5 -48
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +6 -38
  28. package/dist/lib/draco-builder.d.ts.map +1 -1
  29. package/dist/lib/draco-parser.d.ts.map +1 -1
  30. package/dist/lib/draco-parser.js +3 -1
  31. package/dist/lib/utils/get-draco-schema.d.ts.map +1 -1
  32. package/dist/lib/utils/get-draco-schema.js +1 -1
  33. package/dist/lib/utils/version.js +1 -1
  34. package/package.json +7 -6
  35. package/src/draco-arrow-loader.ts +25 -0
  36. package/src/draco-format.ts +18 -0
  37. package/src/draco-loader.ts +22 -2
  38. package/src/draco-writer.ts +21 -0
  39. package/src/index.ts +5 -45
  40. package/src/lib/draco-parser.ts +3 -1
  41. package/src/lib/utils/get-draco-schema.ts +2 -1
@@ -10,7 +10,7 @@
10
10
  );
11
11
  globalThis._loadersgl_.version = NPM_TAG;
12
12
  } else {
13
- globalThis._loadersgl_.version = "4.3.1";
13
+ globalThis._loadersgl_.version = "4.4.0-alpha.1";
14
14
  }
15
15
  }
16
16
  return globalThis._loadersgl_.version;
@@ -329,35 +329,88 @@
329
329
  return await parser(data, { ...options }, context, loader);
330
330
  }
331
331
 
332
- // src/lib/utils/version.ts
333
- var VERSION2 = true ? "4.3.1" : "latest";
334
-
335
- // src/draco-loader.ts
336
- var DracoLoader = {
337
- dataType: null,
338
- batchType: null,
339
- name: "Draco",
340
- id: "draco",
341
- module: "draco",
342
- // shapes: ['mesh'],
343
- version: VERSION2,
344
- worker: true,
345
- extensions: ["drc"],
346
- mimeTypes: ["application/octet-stream"],
347
- binary: true,
348
- tests: ["DRACO"],
349
- options: {
350
- draco: {
351
- decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
352
- // 'js' for IE11
353
- libraryPath: "libs/",
354
- extraAttributes: {},
355
- attributeNameEntry: void 0
356
- }
357
- }
332
+ // src/lib/draco-module-loader.ts
333
+ var DRACO_DECODER_VERSION = "1.5.6";
334
+ var DRACO_ENCODER_VERSION = "1.4.1";
335
+ var STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
336
+ var DRACO_EXTERNAL_LIBRARIES = {
337
+ /** The primary Draco3D encoder, javascript wrapper part */
338
+ DECODER: "draco_wasm_wrapper.js",
339
+ /** The primary draco decoder, compiled web assembly part */
340
+ DECODER_WASM: "draco_decoder.wasm",
341
+ /** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */
342
+ FALLBACK_DECODER: "draco_decoder.js",
343
+ /** Draco encoder */
344
+ ENCODER: "draco_encoder.js"
358
345
  };
346
+ var DRACO_EXTERNAL_LIBRARY_URLS = {
347
+ [DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,
348
+ [DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,
349
+ [DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,
350
+ [DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
351
+ };
352
+ var loadDecoderPromise;
353
+ async function loadDracoDecoderModule(options) {
354
+ const modules = options.modules || {};
355
+ if (modules.draco3d) {
356
+ loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
357
+ return { draco };
358
+ });
359
+ } else {
360
+ loadDecoderPromise ||= loadDracoDecoder(options);
361
+ }
362
+ return await loadDecoderPromise;
363
+ }
364
+ async function loadDracoDecoder(options) {
365
+ let DracoDecoderModule;
366
+ let wasmBinary;
367
+ switch (options.draco && options.draco.decoderType) {
368
+ case "js":
369
+ DracoDecoderModule = await loadLibrary(
370
+ DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
371
+ "draco",
372
+ options,
373
+ DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER
374
+ );
375
+ break;
376
+ case "wasm":
377
+ default:
378
+ [DracoDecoderModule, wasmBinary] = await Promise.all([
379
+ await loadLibrary(
380
+ DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
381
+ "draco",
382
+ options,
383
+ DRACO_EXTERNAL_LIBRARIES.DECODER
384
+ ),
385
+ await loadLibrary(
386
+ DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
387
+ "draco",
388
+ options,
389
+ DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
390
+ )
391
+ ]);
392
+ }
393
+ DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
394
+ return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
395
+ }
396
+ function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
397
+ const options = {};
398
+ if (wasmBinary) {
399
+ options.wasmBinary = wasmBinary;
400
+ }
401
+ return new Promise((resolve) => {
402
+ DracoDecoderModule({
403
+ ...options,
404
+ onModuleLoaded: (draco) => resolve({ draco })
405
+ // Module is Promise-like. Wrap in object to avoid loop.
406
+ });
407
+ });
408
+ }
359
409
 
360
- // ../schema/src/lib/table/simple-table/data-type.ts
410
+ // src/lib/utils/version.ts
411
+ var VERSION2 = true ? "4.4.0-alpha.1" : "latest";
412
+
413
+ // ../schema-utils/src/lib/schema/data-type.ts
361
414
  function getDataTypeFromTypedArray(array) {
362
415
  switch (array.constructor) {
363
416
  case Int8Array:
@@ -382,7 +435,7 @@
382
435
  }
383
436
  }
384
437
 
385
- // ../schema/src/lib/mesh/mesh-utils.ts
438
+ // ../schema-utils/src/lib/mesh/mesh-utils.ts
386
439
  function getMeshBoundingBox(attributes) {
387
440
  let minX = Infinity;
388
441
  let minY = Infinity;
@@ -409,7 +462,7 @@
409
462
  ];
410
463
  }
411
464
 
412
- // ../schema/src/lib/mesh/deduce-mesh-schema.ts
465
+ // ../schema-utils/src/lib/mesh/deduce-mesh-schema.ts
413
466
  function deduceMeshField(name, attribute, optionalMetadata) {
414
467
  const type = getDataTypeFromTypedArray(attribute.value);
415
468
  const metadata = optionalMetadata ? optionalMetadata : makeMeshAttributeMetadata(attribute);
@@ -633,6 +686,7 @@
633
686
  case "triangle-strip":
634
687
  return {
635
688
  topology: "triangle-strip",
689
+ // TODO - mode is wrong?
636
690
  mode: 4,
637
691
  // GL.TRIANGLES
638
692
  attributes,
@@ -645,6 +699,7 @@
645
699
  default:
646
700
  return {
647
701
  topology: "triangle-list",
702
+ // TODO - mode is wrong?
648
703
  mode: 5,
649
704
  // GL.TRIANGLE_STRIP
650
705
  attributes,
@@ -929,87 +984,32 @@
929
984
  return intArray;
930
985
  }
931
986
 
932
- // src/lib/draco-module-loader.ts
933
- var DRACO_DECODER_VERSION = "1.5.6";
934
- var DRACO_ENCODER_VERSION = "1.4.1";
935
- var STATIC_DECODER_URL = `https://www.gstatic.com/draco/versioned/decoders/${DRACO_DECODER_VERSION}`;
936
- var DRACO_EXTERNAL_LIBRARIES = {
937
- /** The primary Draco3D encoder, javascript wrapper part */
938
- DECODER: "draco_wasm_wrapper.js",
939
- /** The primary draco decoder, compiled web assembly part */
940
- DECODER_WASM: "draco_decoder.wasm",
941
- /** Fallback decoder for non-webassebly environments. Very big bundle, lower performance */
942
- FALLBACK_DECODER: "draco_decoder.js",
943
- /** Draco encoder */
944
- ENCODER: "draco_encoder.js"
945
- };
946
- var DRACO_EXTERNAL_LIBRARY_URLS = {
947
- [DRACO_EXTERNAL_LIBRARIES.DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER}`,
948
- [DRACO_EXTERNAL_LIBRARIES.DECODER_WASM]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.DECODER_WASM}`,
949
- [DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER]: `${STATIC_DECODER_URL}/${DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER}`,
950
- [DRACO_EXTERNAL_LIBRARIES.ENCODER]: `https://raw.githubusercontent.com/google/draco/${DRACO_ENCODER_VERSION}/javascript/${DRACO_EXTERNAL_LIBRARIES.ENCODER}`
951
- };
952
- var loadDecoderPromise;
953
- async function loadDracoDecoderModule(options) {
954
- const modules = options.modules || {};
955
- if (modules.draco3d) {
956
- loadDecoderPromise ||= modules.draco3d.createDecoderModule({}).then((draco) => {
957
- return { draco };
958
- });
959
- } else {
960
- loadDecoderPromise ||= loadDracoDecoder(options);
961
- }
962
- return await loadDecoderPromise;
963
- }
964
- async function loadDracoDecoder(options) {
965
- let DracoDecoderModule;
966
- let wasmBinary;
967
- switch (options.draco && options.draco.decoderType) {
968
- case "js":
969
- DracoDecoderModule = await loadLibrary(
970
- DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER],
971
- "draco",
972
- options,
973
- DRACO_EXTERNAL_LIBRARIES.FALLBACK_DECODER
974
- );
975
- break;
976
- case "wasm":
977
- default:
978
- [DracoDecoderModule, wasmBinary] = await Promise.all([
979
- await loadLibrary(
980
- DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER],
981
- "draco",
982
- options,
983
- DRACO_EXTERNAL_LIBRARIES.DECODER
984
- ),
985
- await loadLibrary(
986
- DRACO_EXTERNAL_LIBRARY_URLS[DRACO_EXTERNAL_LIBRARIES.DECODER_WASM],
987
- "draco",
988
- options,
989
- DRACO_EXTERNAL_LIBRARIES.DECODER_WASM
990
- )
991
- ]);
992
- }
993
- DracoDecoderModule = DracoDecoderModule || globalThis.DracoDecoderModule;
994
- return await initializeDracoDecoder(DracoDecoderModule, wasmBinary);
995
- }
996
- function initializeDracoDecoder(DracoDecoderModule, wasmBinary) {
997
- const options = {};
998
- if (wasmBinary) {
999
- options.wasmBinary = wasmBinary;
987
+ // src/draco-loader.ts
988
+ var DracoWorkerLoader = {
989
+ dataType: null,
990
+ batchType: null,
991
+ name: "Draco",
992
+ id: "draco",
993
+ module: "draco",
994
+ // shapes: ['mesh'],
995
+ version: VERSION2,
996
+ worker: true,
997
+ extensions: ["drc"],
998
+ mimeTypes: ["application/octet-stream"],
999
+ binary: true,
1000
+ tests: ["DRACO"],
1001
+ options: {
1002
+ draco: {
1003
+ decoderType: typeof WebAssembly === "object" ? "wasm" : "js",
1004
+ // 'js' for IE11
1005
+ libraryPath: "libs/",
1006
+ extraAttributes: {},
1007
+ attributeNameEntry: void 0
1008
+ }
1000
1009
  }
1001
- return new Promise((resolve) => {
1002
- DracoDecoderModule({
1003
- ...options,
1004
- onModuleLoaded: (draco) => resolve({ draco })
1005
- // Module is Promise-like. Wrap in object to avoid loop.
1006
- });
1007
- });
1008
- }
1009
-
1010
- // src/index.ts
1011
- var DracoLoader2 = {
1012
- ...DracoLoader,
1010
+ };
1011
+ var DracoLoader = {
1012
+ ...DracoWorkerLoader,
1013
1013
  parse
1014
1014
  };
1015
1015
  async function parse(arrayBuffer, options) {
@@ -1023,6 +1023,6 @@
1023
1023
  }
1024
1024
 
1025
1025
  // src/workers/draco-worker.ts
1026
- createLoaderWorker(DracoLoader2);
1026
+ createLoaderWorker(DracoLoader);
1027
1027
  })();
1028
1028
  //# sourceMappingURL=draco-worker.js.map