@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
@@ -1,3 +1,7 @@
1
+ // loaders.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
1
5
  import type {WriterWithEncoder, WriterOptions} from '@loaders.gl/loader-utils';
2
6
  import type {DracoMesh} from './lib/draco-types';
3
7
  import type {DracoBuildOptions} from './lib/draco-builder';
@@ -26,6 +30,22 @@ const DEFAULT_DRACO_WRITER_OPTIONS = {
26
30
  // }
27
31
  };
28
32
 
33
+ /**
34
+ * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
35
+ * 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.
36
+ */
37
+ export const DracoWriterWorker = {
38
+ id: 'draco-writer',
39
+ name: 'Draco compressed geometry writer',
40
+ module: 'draco',
41
+ version: VERSION,
42
+ worker: true,
43
+ options: {
44
+ draco: {},
45
+ source: null
46
+ }
47
+ };
48
+
29
49
  /**
30
50
  * Exporter for Draco3D compressed geometries
31
51
  */
@@ -35,6 +55,7 @@ export const DracoWriter = {
35
55
  module: 'draco',
36
56
  version: VERSION,
37
57
  extensions: ['drc'],
58
+ mimeTypes: ['application/octet-stream'],
38
59
  options: {
39
60
  draco: DEFAULT_DRACO_WRITER_OPTIONS
40
61
  },
package/src/index.ts CHANGED
@@ -1,61 +1,21 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import type {LoaderWithParser} from '@loaders.gl/loader-utils';
5
- import type {DracoMesh, DracoLoaderData} from './lib/draco-types';
6
- import type {DracoLoaderOptions} from './draco-loader';
7
- import {DracoLoader as DracoWorkerLoader} from './draco-loader';
8
- import DracoParser from './lib/draco-parser';
9
- import {loadDracoDecoderModule} from './lib/draco-module-loader';
10
- import {VERSION} from './lib/utils/version';
11
4
 
12
5
  // Module constants
13
6
  export {DRACO_EXTERNAL_LIBRARIES, DRACO_EXTERNAL_LIBRARY_URLS} from './lib/draco-module-loader';
14
7
 
15
8
  // Draco data types
16
9
 
17
- export type {DracoMesh, DracoLoaderData};
10
+ export type {DracoMesh, DracoLoaderData} from './lib/draco-types';
18
11
 
19
12
  // Draco Writer
20
13
 
21
14
  export type {DracoWriterOptions} from './draco-writer';
22
- export {DracoWriter} from './draco-writer';
23
-
24
- /**
25
- * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
26
- * 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.
27
- */
28
- export const DracoWriterWorker = {
29
- id: 'draco-writer',
30
- name: 'Draco compressed geometry writer',
31
- module: 'draco',
32
- version: VERSION,
33
- worker: true,
34
- options: {
35
- draco: {},
36
- source: null
37
- }
38
- };
15
+ export {DracoWriterWorker, DracoWriter} from './draco-writer';
39
16
 
40
17
  // Draco Loader
41
18
 
42
- export type {DracoLoaderOptions};
43
- export {DracoWorkerLoader};
44
-
45
- /**
46
- * Loader for Draco3D compressed geometries
47
- */
48
- export const DracoLoader = {
49
- ...DracoWorkerLoader,
50
- parse
51
- } as const satisfies LoaderWithParser<DracoMesh, never, DracoLoaderOptions>;
52
-
53
- async function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<DracoMesh> {
54
- const {draco} = await loadDracoDecoderModule(options);
55
- const dracoParser = new DracoParser(draco);
56
- try {
57
- return dracoParser.parseSync(arrayBuffer, options?.draco);
58
- } finally {
59
- dracoParser.destroy();
60
- }
61
- }
19
+ export type {DracoLoaderOptions} from './draco-loader';
20
+ export {DracoWorkerLoader, DracoLoader} from './draco-loader';
21
+ export {DracoArrowLoader} from './draco-arrow-loader';
@@ -25,7 +25,7 @@ import type {
25
25
  DracoOctahedronTransform
26
26
  } from './draco-types';
27
27
 
28
- import {getMeshBoundingBox} from '@loaders.gl/schema';
28
+ import {getMeshBoundingBox} from '@loaders.gl/schema-utils';
29
29
  import {getDracoSchema} from './utils/get-draco-schema';
30
30
 
31
31
  /** Options to control draco parsing */
@@ -257,6 +257,7 @@ export default class DracoParser {
257
257
  case 'triangle-strip':
258
258
  return {
259
259
  topology: 'triangle-strip',
260
+ // TODO - mode is wrong?
260
261
  mode: 4, // GL.TRIANGLES
261
262
  attributes,
262
263
  indices: {
@@ -268,6 +269,7 @@ export default class DracoParser {
268
269
  default:
269
270
  return {
270
271
  topology: 'triangle-list',
272
+ // TODO - mode is wrong?
271
273
  mode: 5, // GL.TRIANGLE_STRIP
272
274
  attributes,
273
275
  indices: {
@@ -1,4 +1,5 @@
1
- import {deduceMeshField, MeshAttribute, Schema, Field} from '@loaders.gl/schema';
1
+ import {MeshAttribute, Schema, Field} from '@loaders.gl/schema';
2
+ import {deduceMeshField} from '@loaders.gl/schema-utils';
2
3
  import type {DracoAttribute, DracoLoaderData, DracoMetadataEntry} from '../draco-types';
3
4
 
4
5
  /** Extract an arrow-like schema from a Draco mesh */