@loaders.gl/draco 4.0.0-alpha.4 → 4.0.0-alpha.6

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 (144) hide show
  1. package/dist/bundle.d.ts +2 -0
  2. package/dist/bundle.d.ts.map +1 -0
  3. package/dist/bundle.js +2 -2
  4. package/dist/dist.min.js +4 -0
  5. package/dist/dist.min.js.map +7 -0
  6. package/dist/draco-loader.d.ts +18 -0
  7. package/dist/draco-loader.d.ts.map +1 -0
  8. package/dist/draco-loader.js +28 -21
  9. package/dist/draco-nodejs-worker.js +191 -0
  10. package/dist/draco-nodejs-worker.js.map +7 -0
  11. package/dist/draco-worker.js +2 -1236
  12. package/dist/draco-worker.js.map +7 -0
  13. package/dist/draco-writer-nodejs-worker.js +193 -0
  14. package/dist/draco-writer-nodejs-worker.js.map +7 -0
  15. package/dist/draco-writer-nodejs.d.ts +3 -0
  16. package/dist/draco-writer-nodejs.d.ts.map +1 -0
  17. package/dist/draco-writer-nodejs.js +7 -0
  18. package/dist/draco-writer-worker.js +4 -0
  19. package/dist/draco-writer-worker.js.map +7 -0
  20. package/dist/draco-writer.d.ts +17 -0
  21. package/dist/draco-writer.d.ts.map +1 -0
  22. package/dist/draco-writer.js +40 -28
  23. package/dist/draco3d/draco3d-types.d.ts +295 -0
  24. package/dist/draco3d/draco3d-types.d.ts.map +1 -0
  25. package/dist/draco3d/draco3d-types.js +47 -44
  26. package/dist/es5/bundle.js +6 -0
  27. package/dist/es5/bundle.js.map +1 -0
  28. package/dist/es5/draco-loader.js +34 -0
  29. package/dist/es5/draco-loader.js.map +1 -0
  30. package/dist/es5/draco-writer-nodejs.js +14 -0
  31. package/dist/es5/draco-writer-nodejs.js.map +1 -0
  32. package/dist/es5/draco-writer.js +63 -0
  33. package/dist/es5/draco-writer.js.map +1 -0
  34. package/dist/es5/draco3d/draco3d-types.js +51 -0
  35. package/dist/es5/draco3d/draco3d-types.js.map +1 -0
  36. package/dist/es5/index.js +79 -0
  37. package/dist/es5/index.js.map +1 -0
  38. package/dist/es5/lib/draco-builder.js +324 -0
  39. package/dist/es5/lib/draco-builder.js.map +1 -0
  40. package/dist/es5/lib/draco-module-loader.js +183 -0
  41. package/dist/es5/lib/draco-module-loader.js.map +1 -0
  42. package/dist/es5/lib/draco-parser.js +435 -0
  43. package/dist/es5/lib/draco-parser.js.map +1 -0
  44. package/dist/es5/lib/draco-types.js +2 -0
  45. package/dist/es5/lib/draco-types.js.map +1 -0
  46. package/dist/es5/lib/utils/get-draco-schema.js +47 -0
  47. package/dist/es5/lib/utils/get-draco-schema.js.map +1 -0
  48. package/dist/es5/lib/utils/version.js +9 -0
  49. package/dist/es5/lib/utils/version.js.map +1 -0
  50. package/dist/es5/workers/draco-nodejs-worker.js +7 -0
  51. package/dist/es5/workers/draco-nodejs-worker.js.map +1 -0
  52. package/dist/es5/workers/draco-worker.js +6 -0
  53. package/dist/es5/workers/draco-worker.js.map +1 -0
  54. package/dist/es5/workers/draco-writer-nodejs-worker.js +53 -0
  55. package/dist/es5/workers/draco-writer-nodejs-worker.js.map +1 -0
  56. package/dist/es5/workers/draco-writer-worker.js +53 -0
  57. package/dist/es5/workers/draco-writer-worker.js.map +1 -0
  58. package/dist/esm/bundle.js +4 -0
  59. package/dist/esm/bundle.js.map +1 -0
  60. package/dist/esm/draco-loader.js +24 -0
  61. package/dist/esm/draco-loader.js.map +1 -0
  62. package/dist/esm/draco-writer-nodejs.js +3 -0
  63. package/dist/esm/draco-writer-nodejs.js.map +1 -0
  64. package/dist/esm/draco-writer.js +31 -0
  65. package/dist/esm/draco-writer.js.map +1 -0
  66. package/dist/esm/draco3d/draco3d-types.js +41 -0
  67. package/dist/esm/draco3d/draco3d-types.js.map +1 -0
  68. package/dist/esm/index.js +35 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/lib/draco-builder.js +268 -0
  71. package/dist/esm/lib/draco-builder.js.map +1 -0
  72. package/dist/esm/lib/draco-module-loader.js +76 -0
  73. package/dist/esm/lib/draco-module-loader.js.map +1 -0
  74. package/dist/esm/lib/draco-parser.js +363 -0
  75. package/dist/esm/lib/draco-parser.js.map +1 -0
  76. package/dist/esm/lib/draco-types.js +2 -0
  77. package/dist/esm/lib/draco-types.js.map +1 -0
  78. package/dist/esm/lib/utils/get-draco-schema.js +41 -0
  79. package/dist/esm/lib/utils/get-draco-schema.js.map +1 -0
  80. package/dist/esm/lib/utils/version.js +2 -0
  81. package/dist/esm/lib/utils/version.js.map +1 -0
  82. package/dist/esm/workers/draco-nodejs-worker.js +5 -0
  83. package/dist/esm/workers/draco-nodejs-worker.js.map +1 -0
  84. package/dist/esm/workers/draco-worker.js +4 -0
  85. package/dist/esm/workers/draco-worker.js.map +1 -0
  86. package/dist/esm/workers/draco-writer-nodejs-worker.js +30 -0
  87. package/dist/esm/workers/draco-writer-nodejs-worker.js.map +1 -0
  88. package/dist/esm/workers/draco-writer-worker.js +30 -0
  89. package/dist/esm/workers/draco-writer-worker.js.map +1 -0
  90. package/dist/index.d.ts +30 -0
  91. package/dist/index.d.ts.map +1 -0
  92. package/dist/index.js +46 -21
  93. package/dist/lib/draco-builder.d.ts +107 -0
  94. package/dist/lib/draco-builder.d.ts.map +1 -0
  95. package/dist/lib/draco-builder.js +313 -329
  96. package/dist/lib/draco-module-loader.d.ts +3 -0
  97. package/dist/lib/draco-module-loader.d.ts.map +1 -0
  98. package/dist/lib/draco-module-loader.js +81 -73
  99. package/dist/lib/draco-parser.d.ts +137 -0
  100. package/dist/lib/draco-parser.d.ts.map +1 -0
  101. package/dist/lib/draco-parser.js +440 -416
  102. package/dist/lib/draco-types.d.ts +59 -0
  103. package/dist/lib/draco-types.d.ts.map +1 -0
  104. package/dist/lib/draco-types.js +3 -2
  105. package/dist/lib/utils/get-draco-schema.d.ts +8 -0
  106. package/dist/lib/utils/get-draco-schema.d.ts.map +1 -0
  107. package/dist/lib/utils/get-draco-schema.js +35 -41
  108. package/dist/lib/utils/version.d.ts +2 -0
  109. package/dist/lib/utils/version.d.ts.map +1 -0
  110. package/dist/lib/utils/version.js +7 -2
  111. package/dist/workers/draco-nodejs-worker.d.ts +2 -0
  112. package/dist/workers/draco-nodejs-worker.d.ts.map +1 -0
  113. package/dist/workers/draco-nodejs-worker.js +6 -0
  114. package/dist/workers/draco-worker.d.ts +2 -0
  115. package/dist/workers/draco-worker.d.ts.map +1 -0
  116. package/dist/workers/draco-worker.js +5 -4
  117. package/dist/workers/draco-writer-nodejs-worker.d.ts +2 -0
  118. package/dist/workers/draco-writer-nodejs-worker.d.ts.map +1 -0
  119. package/dist/workers/draco-writer-nodejs-worker.js +26 -0
  120. package/dist/workers/draco-writer-worker.d.ts +2 -0
  121. package/dist/workers/draco-writer-worker.d.ts.map +1 -0
  122. package/dist/workers/draco-writer-worker.js +26 -0
  123. package/package.json +18 -11
  124. package/src/draco-loader.ts +8 -4
  125. package/src/draco-writer-nodejs.ts +4 -0
  126. package/src/draco-writer.ts +17 -12
  127. package/src/index.ts +21 -1
  128. package/src/lib/draco-module-loader.ts +9 -5
  129. package/src/lib/utils/get-draco-schema.ts +7 -6
  130. package/src/workers/draco-nodejs-worker.ts +5 -0
  131. package/src/workers/draco-writer-nodejs-worker.ts +25 -0
  132. package/src/workers/draco-writer-worker.ts +25 -0
  133. package/dist/bundle.js.map +0 -1
  134. package/dist/draco-loader.js.map +0 -1
  135. package/dist/draco-writer.js.map +0 -1
  136. package/dist/draco3d/draco3d-types.js.map +0 -1
  137. package/dist/index.js.map +0 -1
  138. package/dist/lib/draco-builder.js.map +0 -1
  139. package/dist/lib/draco-module-loader.js.map +0 -1
  140. package/dist/lib/draco-parser.js.map +0 -1
  141. package/dist/lib/draco-types.js.map +0 -1
  142. package/dist/lib/utils/get-draco-schema.js.map +0 -1
  143. package/dist/lib/utils/version.js.map +0 -1
  144. package/dist/workers/draco-worker.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-draco-schema.js","names":["deduceMeshField","getDracoSchema","attributes","loaderData","indices","metadata","makeMetadata","fields","namedLoaderDataAttributes","transformAttributesLoaderData","attributeName","attribute","field","getArrowFieldFromAttribute","push","indicesField","result","key","dracoAttribute","name","metadataMap","undefined","Object","entries","serializedMetadata","concat","JSON","stringify"],"sources":["../../../../src/lib/utils/get-draco-schema.ts"],"sourcesContent":["import {deduceMeshField, MeshAttribute} from '@loaders.gl/schema';\nimport {Schema, Field} from '@loaders.gl/schema';\nimport type {DracoAttribute, DracoLoaderData, DracoMetadataEntry} from '../draco-types';\n\n/** Extract an arrow-like schema from a Draco mesh */\nexport function getDracoSchema(\n attributes: {[attributeName: string]: MeshAttribute},\n loaderData: DracoLoaderData,\n indices?: MeshAttribute\n): Schema {\n const metadata = makeMetadata(loaderData.metadata);\n const fields: Field[] = [];\n const namedLoaderDataAttributes = transformAttributesLoaderData(loaderData.attributes);\n for (const attributeName in attributes) {\n const attribute = attributes[attributeName];\n const field = getArrowFieldFromAttribute(\n attributeName,\n attribute,\n namedLoaderDataAttributes[attributeName]\n );\n fields.push(field);\n }\n if (indices) {\n const indicesField = getArrowFieldFromAttribute('indices', indices);\n fields.push(indicesField);\n }\n return {fields, metadata};\n}\n\nfunction transformAttributesLoaderData(loaderData: {[key: number]: DracoAttribute}): {\n [attributeName: string]: DracoAttribute;\n} {\n const result: {[attributeName: string]: DracoAttribute} = {};\n for (const key in loaderData) {\n const dracoAttribute = loaderData[key];\n result[dracoAttribute.name || 'undefined'] = dracoAttribute;\n }\n return result;\n}\n\nfunction getArrowFieldFromAttribute(\n attributeName: string,\n attribute: MeshAttribute,\n loaderData?: DracoAttribute\n): Field {\n const metadataMap = loaderData ? makeMetadata(loaderData.metadata) : undefined;\n const field = deduceMeshField(attributeName, attribute, metadataMap);\n return field;\n}\n\nfunction makeMetadata(metadata: {[key: string]: DracoMetadataEntry}): Record<string, string> {\n Object.entries(metadata);\n const serializedMetadata: Record<string, string> = {};\n for (const key in metadata) {\n serializedMetadata[`${key}.string`] = JSON.stringify(metadata[key]);\n }\n return serializedMetadata;\n}\n"],"mappings":"AAAA,SAAQA,eAAe,QAAsB,oBAAoB;AAKjE,OAAO,SAASC,cAAcA,CAC5BC,UAAoD,EACpDC,UAA2B,EAC3BC,OAAuB,EACf;EACR,MAAMC,QAAQ,GAAGC,YAAY,CAACH,UAAU,CAACE,QAAQ,CAAC;EAClD,MAAME,MAAe,GAAG,EAAE;EAC1B,MAAMC,yBAAyB,GAAGC,6BAA6B,CAACN,UAAU,CAACD,UAAU,CAAC;EACtF,KAAK,MAAMQ,aAAa,IAAIR,UAAU,EAAE;IACtC,MAAMS,SAAS,GAAGT,UAAU,CAACQ,aAAa,CAAC;IAC3C,MAAME,KAAK,GAAGC,0BAA0B,CACtCH,aAAa,EACbC,SAAS,EACTH,yBAAyB,CAACE,aAAa,CACzC,CAAC;IACDH,MAAM,CAACO,IAAI,CAACF,KAAK,CAAC;EACpB;EACA,IAAIR,OAAO,EAAE;IACX,MAAMW,YAAY,GAAGF,0BAA0B,CAAC,SAAS,EAAET,OAAO,CAAC;IACnEG,MAAM,CAACO,IAAI,CAACC,YAAY,CAAC;EAC3B;EACA,OAAO;IAACR,MAAM;IAAEF;EAAQ,CAAC;AAC3B;AAEA,SAASI,6BAA6BA,CAACN,UAA2C,EAEhF;EACA,MAAMa,MAAiD,GAAG,CAAC,CAAC;EAC5D,KAAK,MAAMC,GAAG,IAAId,UAAU,EAAE;IAC5B,MAAMe,cAAc,GAAGf,UAAU,CAACc,GAAG,CAAC;IACtCD,MAAM,CAACE,cAAc,CAACC,IAAI,IAAI,WAAW,CAAC,GAAGD,cAAc;EAC7D;EACA,OAAOF,MAAM;AACf;AAEA,SAASH,0BAA0BA,CACjCH,aAAqB,EACrBC,SAAwB,EACxBR,UAA2B,EACpB;EACP,MAAMiB,WAAW,GAAGjB,UAAU,GAAGG,YAAY,CAACH,UAAU,CAACE,QAAQ,CAAC,GAAGgB,SAAS;EAC9E,MAAMT,KAAK,GAAGZ,eAAe,CAACU,aAAa,EAAEC,SAAS,EAAES,WAAW,CAAC;EACpE,OAAOR,KAAK;AACd;AAEA,SAASN,YAAYA,CAACD,QAA6C,EAA0B;EAC3FiB,MAAM,CAACC,OAAO,CAAClB,QAAQ,CAAC;EACxB,MAAMmB,kBAA0C,GAAG,CAAC,CAAC;EACrD,KAAK,MAAMP,GAAG,IAAIZ,QAAQ,EAAE;IAC1BmB,kBAAkB,IAAAC,MAAA,CAAIR,GAAG,aAAU,GAAGS,IAAI,CAACC,SAAS,CAACtB,QAAQ,CAACY,GAAG,CAAC,CAAC;EACrE;EACA,OAAOO,kBAAkB;AAC3B"}
@@ -0,0 +1,2 @@
1
+ export const VERSION = typeof "4.0.0-alpha.6" !== 'undefined' ? "4.0.0-alpha.6" : 'latest';
2
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","names":["VERSION"],"sources":["../../../../src/lib/utils/version.ts"],"sourcesContent":["// Version constant cannot be imported, it needs to correspond to the build version of **this** module.\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nexport const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n"],"mappings":"AAGA,OAAO,MAAMA,OAAO,GAAG,sBAAkB,KAAK,WAAW,qBAAiB,QAAQ"}
@@ -0,0 +1,5 @@
1
+ import { createLoaderWorker } from '@loaders.gl/loader-utils';
2
+ import '@loaders.gl/polyfills';
3
+ import { DracoLoader } from '../index';
4
+ createLoaderWorker(DracoLoader);
5
+ //# sourceMappingURL=draco-nodejs-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-nodejs-worker.js","names":["createLoaderWorker","DracoLoader"],"sources":["../../../src/workers/draco-nodejs-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport '@loaders.gl/polyfills';\nimport {DracoLoader} from '../index';\n\ncreateLoaderWorker(DracoLoader);\n"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,0BAA0B;AAC3D,OAAO,uBAAuB;AAC9B,SAAQC,WAAW,QAAO,UAAU;AAEpCD,kBAAkB,CAACC,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { createLoaderWorker } from '@loaders.gl/loader-utils';
2
+ import { DracoLoader } from '../index';
3
+ createLoaderWorker(DracoLoader);
4
+ //# sourceMappingURL=draco-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-worker.js","names":["createLoaderWorker","DracoLoader"],"sources":["../../../src/workers/draco-worker.ts"],"sourcesContent":["import {createLoaderWorker} from '@loaders.gl/loader-utils';\nimport {DracoLoader} from '../index';\n\ncreateLoaderWorker(DracoLoader);\n"],"mappings":"AAAA,SAAQA,kBAAkB,QAAO,0BAA0B;AAC3D,SAAQC,WAAW,QAAO,UAAU;AAEpCD,kBAAkB,CAACC,WAAW,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { WorkerBody } from '@loaders.gl/worker-utils';
2
+ import { DracoWriterNodeJS } from '../draco-writer-nodejs';
3
+ (() => {
4
+ if (!WorkerBody.inWorkerThread()) {
5
+ return;
6
+ }
7
+ WorkerBody.onmessage = async (type, payload) => {
8
+ switch (type) {
9
+ case 'process':
10
+ try {
11
+ const {
12
+ input,
13
+ options
14
+ } = payload;
15
+ const result = await DracoWriterNodeJS.encode(input, options);
16
+ WorkerBody.postMessage('done', {
17
+ result
18
+ });
19
+ } catch (error) {
20
+ const message = error instanceof Error ? error.message : '';
21
+ WorkerBody.postMessage('error', {
22
+ error: message
23
+ });
24
+ }
25
+ break;
26
+ default:
27
+ }
28
+ };
29
+ })();
30
+ //# sourceMappingURL=draco-writer-nodejs-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-writer-nodejs-worker.js","names":["WorkerBody","DracoWriterNodeJS","inWorkerThread","onmessage","type","payload","input","options","result","encode","postMessage","error","message","Error"],"sources":["../../../src/workers/draco-writer-nodejs-worker.ts"],"sourcesContent":["import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';\nimport {DracoWriterNodeJS} from '../draco-writer-nodejs';\n\n(() => {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {\n switch (type) {\n case 'process':\n try {\n const {input, options} = payload;\n const result = await DracoWriterNodeJS.encode!(input, options);\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n})();\n"],"mappings":"AAAA,SAAQA,UAAU,QAA6B,0BAA0B;AACzE,SAAQC,iBAAiB,QAAO,wBAAwB;AAExD,CAAC,MAAM;EAEL,IAAI,CAACD,UAAU,CAACE,cAAc,CAAC,CAAC,EAAE;IAChC;EACF;EAEAF,UAAU,CAACG,SAAS,GAAG,OAAOC,IAAI,EAAEC,OAA6B,KAAK;IACpE,QAAQD,IAAI;MACV,KAAK,SAAS;QACZ,IAAI;UACF,MAAM;YAACE,KAAK;YAAEC;UAAO,CAAC,GAAGF,OAAO;UAChC,MAAMG,MAAM,GAAG,MAAMP,iBAAiB,CAACQ,MAAM,CAAEH,KAAK,EAAEC,OAAO,CAAC;UAC9DP,UAAU,CAACU,WAAW,CAAC,MAAM,EAAE;YAACF;UAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,OAAOG,KAAK,EAAE;UACd,MAAMC,OAAO,GAAGD,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACC,OAAO,GAAG,EAAE;UAC3DZ,UAAU,CAACU,WAAW,CAAC,OAAO,EAAE;YAACC,KAAK,EAAEC;UAAO,CAAC,CAAC;QACnD;QACA;MACF;IACF;EACF,CAAC;AACH,CAAC,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { WorkerBody } from '@loaders.gl/worker-utils';
2
+ import { DracoWriter } from '../draco-writer';
3
+ (() => {
4
+ if (!WorkerBody.inWorkerThread()) {
5
+ return;
6
+ }
7
+ WorkerBody.onmessage = async (type, payload) => {
8
+ switch (type) {
9
+ case 'process':
10
+ try {
11
+ const {
12
+ input,
13
+ options
14
+ } = payload;
15
+ const result = await DracoWriter.encode(input, options);
16
+ WorkerBody.postMessage('done', {
17
+ result
18
+ });
19
+ } catch (error) {
20
+ const message = error instanceof Error ? error.message : '';
21
+ WorkerBody.postMessage('error', {
22
+ error: message
23
+ });
24
+ }
25
+ break;
26
+ default:
27
+ }
28
+ };
29
+ })();
30
+ //# sourceMappingURL=draco-writer-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-writer-worker.js","names":["WorkerBody","DracoWriter","inWorkerThread","onmessage","type","payload","input","options","result","encode","postMessage","error","message","Error"],"sources":["../../../src/workers/draco-writer-worker.ts"],"sourcesContent":["import {WorkerBody, WorkerMessagePayload} from '@loaders.gl/worker-utils';\nimport {DracoWriter} from '../draco-writer';\n\n(() => {\n // Check that we are actually in a worker thread\n if (!WorkerBody.inWorkerThread()) {\n return;\n }\n\n WorkerBody.onmessage = async (type, payload: WorkerMessagePayload) => {\n switch (type) {\n case 'process':\n try {\n const {input, options} = payload;\n const result = await DracoWriter.encode!(input, options);\n WorkerBody.postMessage('done', {result});\n } catch (error) {\n const message = error instanceof Error ? error.message : '';\n WorkerBody.postMessage('error', {error: message});\n }\n break;\n default:\n }\n };\n})();\n"],"mappings":"AAAA,SAAQA,UAAU,QAA6B,0BAA0B;AACzE,SAAQC,WAAW,QAAO,iBAAiB;AAE3C,CAAC,MAAM;EAEL,IAAI,CAACD,UAAU,CAACE,cAAc,CAAC,CAAC,EAAE;IAChC;EACF;EAEAF,UAAU,CAACG,SAAS,GAAG,OAAOC,IAAI,EAAEC,OAA6B,KAAK;IACpE,QAAQD,IAAI;MACV,KAAK,SAAS;QACZ,IAAI;UACF,MAAM;YAACE,KAAK;YAAEC;UAAO,CAAC,GAAGF,OAAO;UAChC,MAAMG,MAAM,GAAG,MAAMP,WAAW,CAACQ,MAAM,CAAEH,KAAK,EAAEC,OAAO,CAAC;UACxDP,UAAU,CAACU,WAAW,CAAC,MAAM,EAAE;YAACF;UAAM,CAAC,CAAC;QAC1C,CAAC,CAAC,OAAOG,KAAK,EAAE;UACd,MAAMC,OAAO,GAAGD,KAAK,YAAYE,KAAK,GAAGF,KAAK,CAACC,OAAO,GAAG,EAAE;UAC3DZ,UAAU,CAACU,WAAW,CAAC,OAAO,EAAE;YAACC,KAAK,EAAEC;UAAO,CAAC,CAAC;QACnD;QACA;MACF;IACF;EACF,CAAC;AACH,CAAC,EAAE,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { LoaderWithParser } from '@loaders.gl/loader-utils';
2
+ import type { DracoMesh, DracoLoaderData } from './lib/draco-types';
3
+ import type { DracoLoaderOptions } from './draco-loader';
4
+ import { DracoLoader as DracoWorkerLoader } from './draco-loader';
5
+ export type { DracoMesh, DracoLoaderData };
6
+ export type { DracoWriterOptions } from './draco-writer';
7
+ export { DracoWriter } from './draco-writer';
8
+ /**
9
+ * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
10
+ * 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.
11
+ */
12
+ export declare const DracoWriterWorker: {
13
+ id: string;
14
+ name: string;
15
+ module: string;
16
+ version: any;
17
+ worker: boolean;
18
+ options: {
19
+ draco: {};
20
+ source: null;
21
+ };
22
+ };
23
+ export type { DracoLoaderOptions };
24
+ export { DracoWorkerLoader };
25
+ /**
26
+ * Loader for Draco3D compressed geometries
27
+ */
28
+ export declare const DracoLoader: LoaderWithParser<DracoMesh, never, DracoLoaderOptions>;
29
+ export declare const _TypecheckDracoLoader: LoaderWithParser;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAC,SAAS,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,WAAW,IAAI,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAOhE,YAAY,EAAC,SAAS,EAAE,eAAe,EAAC,CAAC;AAIzC,YAAY,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;CAU7B,CAAC;AAIF,YAAY,EAAC,kBAAkB,EAAC,CAAC;AACjC,OAAO,EAAC,iBAAiB,EAAC,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,gBAAgB,CAAC,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAG9E,CAAC;AAaF,eAAO,MAAM,qBAAqB,EAAE,gBAA8B,CAAC"}
package/dist/index.js CHANGED
@@ -1,24 +1,49 @@
1
- import { DracoLoader as DracoWorkerLoader } from './draco-loader';
2
- import DracoParser from './lib/draco-parser';
3
- import { loadDracoDecoderModule } from './lib/draco-module-loader';
4
- export { DracoWriter } from './draco-writer';
5
- export { DracoWorkerLoader };
6
- export const DracoLoader = { ...DracoWorkerLoader,
7
- parse
1
+ "use strict";
2
+ // loaders.gl, MIT license
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports._TypecheckDracoLoader = exports.DracoLoader = exports.DracoWorkerLoader = exports.DracoWriterWorker = exports.DracoWriter = void 0;
8
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
9
+ const draco_loader_1 = require("./draco-loader");
10
+ Object.defineProperty(exports, "DracoWorkerLoader", { enumerable: true, get: function () { return draco_loader_1.DracoLoader; } });
11
+ const draco_parser_1 = __importDefault(require("./lib/draco-parser"));
12
+ const draco_module_loader_1 = require("./lib/draco-module-loader");
13
+ const version_1 = require("./lib/utils/version");
14
+ var draco_writer_1 = require("./draco-writer");
15
+ Object.defineProperty(exports, "DracoWriter", { enumerable: true, get: function () { return draco_writer_1.DracoWriter; } });
16
+ /**
17
+ * Browser worker doesn't work because of issue during "draco_encoder.js" loading.
18
+ * 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.
19
+ */
20
+ exports.DracoWriterWorker = {
21
+ id: worker_utils_1.isBrowser ? 'draco-writer' : 'draco-writer-nodejs',
22
+ name: 'Draco compressed geometry writer',
23
+ module: 'draco',
24
+ version: version_1.VERSION,
25
+ worker: true,
26
+ options: {
27
+ draco: {},
28
+ source: null
29
+ }
30
+ };
31
+ /**
32
+ * Loader for Draco3D compressed geometries
33
+ */
34
+ exports.DracoLoader = {
35
+ ...draco_loader_1.DracoLoader,
36
+ parse
8
37
  };
9
-
10
38
  async function parse(arrayBuffer, options) {
11
- const {
12
- draco
13
- } = await loadDracoDecoderModule(options);
14
- const dracoParser = new DracoParser(draco);
15
-
16
- try {
17
- return dracoParser.parseSync(arrayBuffer, options === null || options === void 0 ? void 0 : options.draco);
18
- } finally {
19
- dracoParser.destroy();
20
- }
39
+ const { draco } = await (0, draco_module_loader_1.loadDracoDecoderModule)(options);
40
+ const dracoParser = new draco_parser_1.default(draco);
41
+ try {
42
+ return dracoParser.parseSync(arrayBuffer, options?.draco);
43
+ }
44
+ finally {
45
+ dracoParser.destroy();
46
+ }
21
47
  }
22
-
23
- export const _TypecheckDracoLoader = DracoLoader;
24
- //# sourceMappingURL=index.js.map
48
+ // TYPE TESTS - TODO find a better way than exporting junk
49
+ exports._TypecheckDracoLoader = exports.DracoLoader;
@@ -0,0 +1,107 @@
1
+ import type { Draco3D, Encoder, Mesh, MeshBuilder, PointCloud, Metadata, MetadataBuilder, draco_GeometryAttribute_Type } from '../draco3d/draco3d-types';
2
+ import type { TypedArray } from '@loaders.gl/schema';
3
+ import type { DracoMesh } from './draco-types';
4
+ export type DracoBuildOptions = {
5
+ pointcloud?: boolean;
6
+ metadata?: {
7
+ [key: string]: string;
8
+ };
9
+ attributesMetadata?: {};
10
+ log?: any;
11
+ speed?: [number, number];
12
+ method?: string;
13
+ quantization?: {
14
+ [attributeName: string]: number;
15
+ };
16
+ };
17
+ export default class DracoBuilder {
18
+ draco: Draco3D;
19
+ dracoEncoder: Encoder;
20
+ dracoMeshBuilder: MeshBuilder;
21
+ dracoMetadataBuilder: MetadataBuilder;
22
+ log: any;
23
+ constructor(draco: Draco3D);
24
+ destroy(): void;
25
+ destroyEncodedObject(object: any): void;
26
+ /**
27
+ * Encode mesh or point cloud
28
+ * @param mesh =({})
29
+ * @param options
30
+ */
31
+ encodeSync(mesh: DracoMesh, options?: DracoBuildOptions): ArrayBuffer;
32
+ _getAttributesFromMesh(mesh: DracoMesh): {
33
+ attributes: {
34
+ [attributeName: string]: import("@loaders.gl/schema").MeshAttribute;
35
+ };
36
+ indices?: import("@loaders.gl/schema").MeshAttribute | undefined;
37
+ topology: "triangle-list" | "triangle-strip" | "point-list";
38
+ mode: number;
39
+ loader: "draco";
40
+ loaderData: {
41
+ [key: string]: any;
42
+ } & import("./draco-types").DracoLoaderData;
43
+ header?: {
44
+ vertexCount: number;
45
+ boundingBox?: [number[], number[]] | undefined;
46
+ } | undefined;
47
+ schema: import("@loaders.gl/schema").Schema;
48
+ };
49
+ _encodePointCloud(pointcloud: DracoMesh, options: DracoBuildOptions): ArrayBuffer;
50
+ _encodeMesh(mesh: DracoMesh, options: DracoBuildOptions): ArrayBuffer;
51
+ /**
52
+ * Set encoding options.
53
+ * @param {{speed?: any; method?: any; quantization?: any;}} options
54
+ */
55
+ _setOptions(options: DracoBuildOptions): void;
56
+ /**
57
+ * @param {Mesh} dracoMesh
58
+ * @param {object} attributes
59
+ * @returns {Mesh}
60
+ */
61
+ _createDracoMesh(dracoMesh: Mesh, attributes: any, options: DracoBuildOptions): Mesh;
62
+ /**
63
+ * @param {} dracoPointCloud
64
+ * @param {object} attributes
65
+ */
66
+ _createDracoPointCloud(dracoPointCloud: PointCloud, attributes: object, options: DracoBuildOptions): PointCloud;
67
+ /**
68
+ * @param mesh
69
+ * @param attributeName
70
+ * @param attribute
71
+ * @param vertexCount
72
+ */
73
+ _addAttributeToMesh(mesh: PointCloud, attributeName: string, attribute: TypedArray, vertexCount: number): any;
74
+ /**
75
+ * DRACO can compress attributes of know type better
76
+ * TODO - expose an attribute type map?
77
+ * @param attributeName
78
+ */
79
+ _getDracoAttributeType(attributeName: string): draco_GeometryAttribute_Type | 'indices';
80
+ _getPositionAttribute(attributes: any): any;
81
+ /**
82
+ * Add metadata for the geometry.
83
+ * @param dracoGeometry - WASM Draco Object
84
+ * @param metadata
85
+ */
86
+ _addGeometryMetadata(dracoGeometry: PointCloud, metadata: {
87
+ [key: string]: string;
88
+ }): void;
89
+ /**
90
+ * Add metadata for an attribute to geometry.
91
+ * @param dracoGeometry - WASM Draco Object
92
+ * @param uniqueAttributeId
93
+ * @param metadata
94
+ */
95
+ _addAttributeMetadata(dracoGeometry: PointCloud, uniqueAttributeId: number, metadata: Map<string, string> | {
96
+ [key: string]: string;
97
+ }): void;
98
+ /**
99
+ * Add contents of object or map to a WASM Draco Metadata Object
100
+ * @param dracoMetadata - WASM Draco Object
101
+ * @param metadata
102
+ */
103
+ _populateDracoMetadata(dracoMetadata: Metadata, metadata: Map<string, string> | {
104
+ [key: string]: string;
105
+ }): void;
106
+ }
107
+ //# sourceMappingURL=draco-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draco-builder.d.ts","sourceRoot":"","sources":["../../src/lib/draco-builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,OAAO,EAEP,OAAO,EACP,IAAI,EACJ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,eAAe,EACf,4BAA4B,EAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IACnC,kBAAkB,CAAC,EAAE,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,GAAG,CAAC;IAGV,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QAAC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;CAClD,CAAC;AAYF,MAAM,CAAC,OAAO,OAAO,YAAY;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,WAAW,CAAC;IAC9B,oBAAoB,EAAE,eAAe,CAAC;IACtC,GAAG,EAAE,GAAG,CAAC;gBAGG,KAAK,EAAE,OAAO;IAO1B,OAAO,IAAI,IAAI;IAaf,oBAAoB,CAAC,MAAM,KAAA,GAAG,IAAI;IAMlC;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,iBAAsB,GAAG,WAAW;IAWzE,sBAAsB,CAAC,IAAI,EAAE,SAAS;;;;;;;;;;;;;;;;;IAUtC,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW;IAmCjF,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,GAAG,WAAW;IA8BrE;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAmB7C;;;;OAIG;IACH,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,KAAA,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IA8B/E;;;OAGG;IACH,sBAAsB,CACpB,eAAe,EAAE,UAAU,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,iBAAiB,GACzB,UAAU;IAkCb;;;;;OAKG;IACH,mBAAmB,CACjB,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,UAAU,EACrB,WAAW,EAAE,MAAM;IAkDrB;;;;OAIG;IACH,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,4BAA4B,GAAG,SAAS;IAsBvF,qBAAqB,CAAC,UAAU,KAAA;IAWhC;;;;OAIG;IACH,oBAAoB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC;IAMjF;;;;;OAKG;IACH,qBAAqB,CACnB,aAAa,EAAE,UAAU,EACzB,iBAAiB,EAAE,MAAM,EACzB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC;IAezD;;;;OAIG;IACH,sBAAsB,CACpB,aAAa,EAAE,QAAQ,EACvB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC;CAsB1D"}