@loaders.gl/draco 4.3.4 → 4.4.0-alpha.10

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 (76) hide show
  1. package/dist/dist.dev.js +13059 -1021
  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 +20 -0
  6. package/dist/draco-arrow-loader.js.map +1 -0
  7. package/dist/draco-format.d.ts +13 -0
  8. package/dist/draco-format.d.ts.map +1 -0
  9. package/dist/draco-format.js +16 -0
  10. package/dist/draco-format.js.map +1 -0
  11. package/dist/draco-loader.d.ts +29 -2
  12. package/dist/draco-loader.d.ts.map +1 -1
  13. package/dist/draco-loader.js +21 -1
  14. package/dist/draco-loader.js.map +1 -0
  15. package/dist/draco-worker-node.js +429 -185
  16. package/dist/draco-worker-node.js.map +4 -4
  17. package/dist/draco-worker.js +188 -116
  18. package/dist/draco-worker.js.map +4 -4
  19. package/dist/draco-writer-worker-node.js +301 -76
  20. package/dist/draco-writer-worker-node.js.map +4 -4
  21. package/dist/draco-writer-worker.js +61 -7
  22. package/dist/draco-writer-worker.js.map +2 -2
  23. package/dist/draco-writer.d.ts +16 -0
  24. package/dist/draco-writer.d.ts.map +1 -1
  25. package/dist/draco-writer.js +21 -1
  26. package/dist/draco-writer.js.map +1 -0
  27. package/dist/draco3d/draco3d-types.js +1 -0
  28. package/dist/draco3d/draco3d-types.js.map +1 -0
  29. package/dist/index.cjs +865 -811
  30. package/dist/index.cjs.map +4 -4
  31. package/dist/index.d.ts +5 -48
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +7 -38
  34. package/dist/index.js.map +1 -0
  35. package/dist/lib/draco-builder.d.ts.map +1 -1
  36. package/dist/lib/draco-builder.js +1 -0
  37. package/dist/lib/draco-builder.js.map +1 -0
  38. package/dist/lib/draco-module-loader.d.ts +3 -2
  39. package/dist/lib/draco-module-loader.d.ts.map +1 -1
  40. package/dist/lib/draco-module-loader.js +53 -10
  41. package/dist/lib/draco-module-loader.js.map +1 -0
  42. package/dist/lib/draco-parser.d.ts.map +1 -1
  43. package/dist/lib/draco-parser.js +4 -1
  44. package/dist/lib/draco-parser.js.map +1 -0
  45. package/dist/lib/draco-types.js +1 -0
  46. package/dist/lib/draco-types.js.map +1 -0
  47. package/dist/lib/utils/get-draco-schema.d.ts.map +1 -1
  48. package/dist/lib/utils/get-draco-schema.js +2 -1
  49. package/dist/lib/utils/get-draco-schema.js.map +1 -0
  50. package/dist/lib/utils/version.js +2 -1
  51. package/dist/lib/utils/version.js.map +1 -0
  52. package/dist/libs/libs/draco_decoder.wasm +0 -0
  53. package/dist/libs/libs/draco_encoder.js +52 -0
  54. package/dist/libs/libs/draco_wasm_wrapper.js +117 -0
  55. package/dist/workers/draco-worker-node.js +1 -0
  56. package/dist/workers/draco-worker-node.js.map +1 -0
  57. package/dist/workers/draco-worker.js +1 -0
  58. package/dist/workers/draco-worker.js.map +1 -0
  59. package/dist/workers/draco-writer-worker-node.cjs +18 -0
  60. package/dist/workers/draco-writer-worker-node.cjs.map +1 -0
  61. package/dist/workers/draco-writer-worker-node.d.cts +2 -0
  62. package/dist/workers/draco-writer-worker-node.d.cts.map +1 -0
  63. package/dist/workers/draco-writer-worker-node.js +1 -0
  64. package/dist/workers/draco-writer-worker-node.js.map +1 -0
  65. package/dist/workers/draco-writer-worker.js +1 -0
  66. package/dist/workers/draco-writer-worker.js.map +1 -0
  67. package/package.json +19 -6
  68. package/src/draco-arrow-loader.ts +25 -0
  69. package/src/draco-format.ts +18 -0
  70. package/src/draco-loader.ts +26 -3
  71. package/src/draco-writer.ts +22 -1
  72. package/src/index.ts +5 -45
  73. package/src/lib/draco-module-loader.ts +87 -23
  74. package/src/lib/draco-parser.ts +3 -1
  75. package/src/lib/utils/get-draco-schema.ts +2 -1
  76. package/src/workers/draco-writer-worker-node.cjs +18 -0
@@ -0,0 +1,30 @@
1
+ import type { ArrowTable } from '@loaders.gl/schema';
2
+ import type { DracoLoaderOptions } from "./draco-loader.js";
3
+ /**
4
+ * Loader for Draco3D compressed geometries
5
+ */
6
+ export declare const DracoArrowLoader: {
7
+ readonly dataType: ArrowTable;
8
+ readonly worker: false;
9
+ readonly parse: typeof parse;
10
+ readonly batchType: never;
11
+ readonly name: "Draco";
12
+ readonly id: "draco";
13
+ readonly module: "draco";
14
+ readonly version: any;
15
+ readonly extensions: ["drc"];
16
+ readonly mimeTypes: ["application/octet-stream"];
17
+ readonly binary: true;
18
+ readonly tests: ["DRACO"];
19
+ readonly options: {
20
+ readonly draco: {
21
+ readonly decoderType: "wasm" | "js";
22
+ readonly libraryPath: "libs/";
23
+ readonly extraAttributes: {};
24
+ readonly attributeNameEntry: undefined;
25
+ };
26
+ };
27
+ };
28
+ declare function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<ArrowTable>;
29
+ export {};
30
+ //# sourceMappingURL=draco-arrow-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-arrow-loader.d.ts","sourceRoot":"","sources":["../src/draco-arrow-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAC,kBAAkB,EAAC,0BAAuB;AAIvD;;GAEG;AACH,eAAO,MAAM,gBAAgB;uBAEE,UAAU;;;;;;;;;;;;;;;;;;;;CAGmC,CAAC;AAE7E,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAIhG"}
@@ -0,0 +1,20 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ import { DracoLoader } from "./draco-loader.js";
5
+ import { convertMeshToTable } from '@loaders.gl/schema-utils';
6
+ /**
7
+ * Loader for Draco3D compressed geometries
8
+ */
9
+ export const DracoArrowLoader = {
10
+ ...DracoLoader,
11
+ dataType: null,
12
+ worker: false,
13
+ parse
14
+ };
15
+ async function parse(arrayBuffer, options) {
16
+ const mesh = await DracoLoader.parse(arrayBuffer, options);
17
+ const arrowTable = convertMeshToTable(mesh, 'arrow-table');
18
+ return arrowTable;
19
+ }
20
+ //# sourceMappingURL=draco-arrow-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-arrow-loader.js","sourceRoot":"","sources":["../src/draco-arrow-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,GAAG,WAAW;IACd,QAAQ,EAAE,IAA6B;IACvC,MAAM,EAAE,KAAK;IACb,KAAK;CACqE,CAAC;AAE7E,KAAK,UAAU,KAAK,CAAC,WAAwB,EAAE,OAA4B;IACzE,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Draco3D compressed geometries
3
+ */
4
+ export declare const DracoFormat: {
5
+ readonly name: "Draco";
6
+ readonly id: "draco";
7
+ readonly module: "draco";
8
+ readonly extensions: ["drc"];
9
+ readonly mimeTypes: ["application/octet-stream"];
10
+ readonly binary: true;
11
+ readonly tests: ["DRACO"];
12
+ };
13
+ //# sourceMappingURL=draco-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-format.d.ts","sourceRoot":"","sources":["../src/draco-format.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;CAQG,CAAC"}
@@ -0,0 +1,16 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ /**
5
+ * Draco3D compressed geometries
6
+ */
7
+ export const DracoFormat = {
8
+ name: 'Draco',
9
+ id: 'draco',
10
+ module: 'draco',
11
+ extensions: ['drc'],
12
+ mimeTypes: ['application/octet-stream'],
13
+ binary: true,
14
+ tests: ['DRACO']
15
+ };
16
+ //# sourceMappingURL=draco-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-format.js","sourceRoot":"","sources":["../src/draco-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,OAAO;IACf,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,OAAO,CAAC;CACS,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { LoaderOptions } from '@loaders.gl/loader-utils';
1
+ import type { StrictLoaderOptions } from '@loaders.gl/loader-utils';
2
2
  import type { DracoMesh } from "./lib/draco-types.js";
3
3
  import type { DracoParseOptions } from "./lib/draco-parser.js";
4
- export type DracoLoaderOptions = LoaderOptions & {
4
+ export type DracoLoaderOptions = StrictLoaderOptions & {
5
5
  draco?: DracoParseOptions & {
6
6
  /** @deprecated WASM decoding is faster but JS is more backwards compatible */
7
7
  decoderType?: 'wasm' | 'js';
@@ -14,7 +14,32 @@ export type DracoLoaderOptions = LoaderOptions & {
14
14
  /**
15
15
  * Worker loader for Draco3D compressed geometries
16
16
  */
17
+ export declare const DracoWorkerLoader: {
18
+ readonly dataType: DracoMesh;
19
+ readonly batchType: never;
20
+ readonly name: "Draco";
21
+ readonly id: "draco";
22
+ readonly module: "draco";
23
+ readonly version: any;
24
+ readonly worker: true;
25
+ readonly extensions: ["drc"];
26
+ readonly mimeTypes: ["application/octet-stream"];
27
+ readonly binary: true;
28
+ readonly tests: ["DRACO"];
29
+ readonly options: {
30
+ readonly draco: {
31
+ readonly decoderType: "wasm" | "js";
32
+ readonly libraryPath: "libs/";
33
+ readonly extraAttributes: {};
34
+ readonly attributeNameEntry: undefined;
35
+ };
36
+ };
37
+ };
38
+ /**
39
+ * Loader for Draco3D compressed geometries
40
+ */
17
41
  export declare const DracoLoader: {
42
+ readonly parse: typeof parse;
18
43
  readonly dataType: DracoMesh;
19
44
  readonly batchType: never;
20
45
  readonly name: "Draco";
@@ -35,4 +60,6 @@ export declare const DracoLoader: {
35
60
  };
36
61
  };
37
62
  };
63
+ declare function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<DracoMesh>;
64
+ export {};
38
65
  //# sourceMappingURL=draco-loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"draco-loader.d.ts","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAS,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,8BAA2B;AAG1D,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,KAAK,CAAC,EAAE,iBAAiB,GAAG;QAC1B,8EAA8E;QAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kEAAkE;QAClE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW;uBACO,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CAmBuC,CAAC"}
1
+ {"version":3,"file":"draco-loader.d.ts","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA2B,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC5F,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,8BAA2B;AAK1D,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG;IACrD,KAAK,CAAC,EAAE,iBAAiB,GAAG;QAC1B,8EAA8E;QAC9E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kEAAkE;QAClE,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;uBACC,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CAmBuC,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,WAAW;;uBAzBO,SAAS;wBACnB,KAAK;;;;;;;;;;;;;;;;;;CA2BiD,CAAC;AAE5E,iBAAe,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CAW/F"}
@@ -2,10 +2,12 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { VERSION } from "./lib/utils/version.js";
5
+ import DracoParser from "./lib/draco-parser.js";
6
+ import { loadDracoDecoderModule } from "./lib/draco-module-loader.js";
5
7
  /**
6
8
  * Worker loader for Draco3D compressed geometries
7
9
  */
8
- export const DracoLoader = {
10
+ export const DracoWorkerLoader = {
9
11
  dataType: null,
10
12
  batchType: null,
11
13
  name: 'Draco',
@@ -27,3 +29,21 @@ export const DracoLoader = {
27
29
  }
28
30
  }
29
31
  };
32
+ /**
33
+ * Loader for Draco3D compressed geometries
34
+ */
35
+ export const DracoLoader = {
36
+ ...DracoWorkerLoader,
37
+ parse
38
+ };
39
+ async function parse(arrayBuffer, options) {
40
+ const { draco } = await loadDracoDecoderModule(options?.core, options?.draco?.decoderType || 'wasm');
41
+ const dracoParser = new DracoParser(draco);
42
+ try {
43
+ return dracoParser.parseSync(arrayBuffer, options?.draco);
44
+ }
45
+ finally {
46
+ dracoParser.destroy();
47
+ }
48
+ }
49
+ //# sourceMappingURL=draco-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-loader.js","sourceRoot":"","sources":["../src/draco-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,OAAO,EAAC,+BAA4B;AAC5C,OAAO,WAAW,8BAA2B;AAC7C,OAAO,EAAC,sBAAsB,EAAC,qCAAkC;AAajE;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,EAAE,IAA4B;IACtC,SAAS,EAAE,IAAa;IACxB,IAAI,EAAE,OAAO;IACb,EAAE,EAAE,OAAO;IACX,MAAM,EAAE,OAAO;IACf,oBAAoB;IACpB,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,0BAA0B,CAAC;IACvC,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,OAAO,EAAE;QACP,KAAK,EAAE;YACL,WAAW,EAAE,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,gBAAgB;YAC9E,WAAW,EAAE,OAAO;YACpB,eAAe,EAAE,EAAE;YACnB,kBAAkB,EAAE,SAAS;SAC9B;KACF;CAC8D,CAAC;AAElE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,GAAG,iBAAiB;IACpB,KAAK;CACoE,CAAC;AAE5E,KAAK,UAAU,KAAK,CAAC,WAAwB,EAAE,OAA4B;IACzE,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,sBAAsB,CAC1C,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,KAAK,EAAE,WAAW,IAAI,MAAM,CACtC,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;YAAS,CAAC;QACT,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;AACH,CAAC"}