@loaders.gl/pointclouds 5.0.0-beta.1 → 5.0.0-beta.4

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 (158) hide show
  1. package/README.md +4 -0
  2. package/dist/dist.dev.js +45 -16
  3. package/dist/dist.min.js +19 -19
  4. package/dist/las/las-copc-loader-types.cjs +1 -1
  5. package/dist/las/las-copc-loader-types.cjs.map +2 -2
  6. package/dist/las/las-copc-loader-types.js +1 -1
  7. package/dist/las/las-copc-loader-types.js.map +1 -1
  8. package/dist/las/las-loader-shared.cjs +1 -1
  9. package/dist/las/las-loader-shared.js +1 -1
  10. package/dist/las/las-loader-types.cjs +1 -1
  11. package/dist/las/las-loader-types.cjs.map +2 -2
  12. package/dist/las/las-loader-types.js +1 -1
  13. package/dist/las/las-loader-types.js.map +1 -1
  14. package/dist/las/las-writer.cjs +1 -1
  15. package/dist/las/las-writer.js +1 -1
  16. package/dist/las/laz-rs-loader-types.cjs +1 -1
  17. package/dist/las/laz-rs-loader-types.cjs.map +2 -2
  18. package/dist/las/laz-rs-loader-types.js +1 -1
  19. package/dist/las/laz-rs-loader-types.js.map +1 -1
  20. package/dist/las/lazperf-loader-types.cjs +1 -1
  21. package/dist/las/lazperf-loader-types.cjs.map +2 -2
  22. package/dist/las/lazperf-loader-types.js +1 -1
  23. package/dist/las/lazperf-loader-types.js.map +1 -1
  24. package/dist/las/lib/las-extra-bytes.cjs +6 -1
  25. package/dist/las/lib/las-extra-bytes.cjs.map +2 -2
  26. package/dist/las/lib/las-extra-bytes.d.ts.map +1 -1
  27. package/dist/las/lib/las-extra-bytes.js +6 -4
  28. package/dist/las/lib/las-extra-bytes.js.map +1 -1
  29. package/dist/las-copc-loader-types.cjs +51 -0
  30. package/dist/las-copc-loader-types.cjs.map +7 -0
  31. package/dist/las-copc-loader-types.d.ts +2 -0
  32. package/dist/las-copc-loader-types.d.ts.map +1 -0
  33. package/dist/las-copc-loader-types.js +2 -0
  34. package/dist/las-copc-loader-types.js.map +1 -0
  35. package/dist/las-copc-loader.cjs +59 -0
  36. package/dist/las-copc-loader.cjs.map +7 -0
  37. package/dist/las-copc-loader.d.ts +2 -0
  38. package/dist/las-copc-loader.d.ts.map +1 -0
  39. package/dist/las-copc-loader.js +2 -0
  40. package/dist/las-copc-loader.js.map +1 -0
  41. package/dist/las-loader-types.cjs +56 -0
  42. package/dist/las-loader-types.cjs.map +7 -0
  43. package/dist/las-loader-types.d.ts +2 -0
  44. package/dist/las-loader-types.d.ts.map +1 -0
  45. package/dist/las-loader-types.js +2 -0
  46. package/dist/las-loader-types.js.map +1 -0
  47. package/dist/las-loader.cjs +82 -0
  48. package/dist/las-loader.cjs.map +7 -0
  49. package/dist/las-loader.d.ts +2 -0
  50. package/dist/las-loader.d.ts.map +1 -0
  51. package/dist/las-loader.js +2 -0
  52. package/dist/las-loader.js.map +1 -0
  53. package/dist/las-worker.js +565 -133
  54. package/dist/las-writer.cjs +1056 -0
  55. package/dist/las-writer.cjs.map +7 -0
  56. package/dist/las-writer.d.ts +2 -0
  57. package/dist/las-writer.d.ts.map +1 -0
  58. package/dist/las-writer.js +2 -0
  59. package/dist/las-writer.js.map +1 -0
  60. package/dist/laz-rs-loader-types.cjs +51 -0
  61. package/dist/laz-rs-loader-types.cjs.map +7 -0
  62. package/dist/laz-rs-loader-types.d.ts +2 -0
  63. package/dist/laz-rs-loader-types.d.ts.map +1 -0
  64. package/dist/laz-rs-loader-types.js +2 -0
  65. package/dist/laz-rs-loader-types.js.map +1 -0
  66. package/dist/laz-rs-loader.cjs +274 -0
  67. package/dist/laz-rs-loader.cjs.map +7 -0
  68. package/dist/laz-rs-loader.d.ts +2 -0
  69. package/dist/laz-rs-loader.d.ts.map +1 -0
  70. package/dist/laz-rs-loader.js +2 -0
  71. package/dist/laz-rs-loader.js.map +1 -0
  72. package/dist/lazperf-loader-types.cjs +51 -0
  73. package/dist/lazperf-loader-types.cjs.map +7 -0
  74. package/dist/lazperf-loader-types.d.ts +2 -0
  75. package/dist/lazperf-loader-types.d.ts.map +1 -0
  76. package/dist/lazperf-loader-types.js +2 -0
  77. package/dist/lazperf-loader-types.js.map +1 -0
  78. package/dist/lazperf-loader.cjs +62 -0
  79. package/dist/lazperf-loader.cjs.map +7 -0
  80. package/dist/lazperf-loader.d.ts +2 -0
  81. package/dist/lazperf-loader.d.ts.map +1 -0
  82. package/dist/lazperf-loader.js +2 -0
  83. package/dist/lazperf-loader.js.map +1 -0
  84. package/dist/pcd/pcd-loader-types.cjs +2 -2
  85. package/dist/pcd/pcd-loader-types.cjs.map +2 -2
  86. package/dist/pcd/pcd-loader-types.js +2 -2
  87. package/dist/pcd/pcd-loader-types.js.map +1 -1
  88. package/dist/pcd/pcd-writer.cjs +1 -1
  89. package/dist/pcd/pcd-writer.js +1 -1
  90. package/dist/pcd-loader-types.cjs +66 -0
  91. package/dist/pcd-loader-types.cjs.map +7 -0
  92. package/dist/pcd-loader-types.d.ts +2 -0
  93. package/dist/pcd-loader-types.d.ts.map +1 -0
  94. package/dist/pcd-loader-types.js +2 -0
  95. package/dist/pcd-loader-types.js.map +1 -0
  96. package/dist/pcd-loader.cjs +146 -0
  97. package/dist/pcd-loader.cjs.map +7 -0
  98. package/dist/pcd-loader.d.ts +2 -0
  99. package/dist/pcd-loader.d.ts.map +1 -0
  100. package/dist/pcd-loader.js +2 -0
  101. package/dist/pcd-loader.js.map +1 -0
  102. package/dist/pcd-worker.js +586 -117
  103. package/dist/pcd-writer.cjs +136 -0
  104. package/dist/pcd-writer.cjs.map +7 -0
  105. package/dist/pcd-writer.d.ts +2 -0
  106. package/dist/pcd-writer.d.ts.map +1 -0
  107. package/dist/pcd-writer.js +2 -0
  108. package/dist/pcd-writer.js.map +1 -0
  109. package/dist/ply/ply-loader-types.cjs +2 -2
  110. package/dist/ply/ply-loader-types.cjs.map +2 -2
  111. package/dist/ply/ply-loader-types.js +2 -2
  112. package/dist/ply/ply-loader-types.js.map +1 -1
  113. package/dist/ply/ply-writer.cjs +1 -1
  114. package/dist/ply/ply-writer.js +1 -1
  115. package/dist/ply-loader-types.cjs +67 -0
  116. package/dist/ply-loader-types.cjs.map +7 -0
  117. package/dist/ply-loader-types.d.ts +2 -0
  118. package/dist/ply-loader-types.d.ts.map +1 -0
  119. package/dist/ply-loader-types.js +2 -0
  120. package/dist/ply-loader-types.js.map +1 -0
  121. package/dist/ply-loader.cjs +136 -0
  122. package/dist/ply-loader.cjs.map +7 -0
  123. package/dist/ply-loader.d.ts +2 -0
  124. package/dist/ply-loader.d.ts.map +1 -0
  125. package/dist/ply-loader.js +2 -0
  126. package/dist/ply-loader.js.map +1 -0
  127. package/dist/ply-worker.js +586 -117
  128. package/dist/ply-writer.cjs +177 -0
  129. package/dist/ply-writer.cjs.map +7 -0
  130. package/dist/ply-writer.d.ts +2 -0
  131. package/dist/ply-writer.d.ts.map +1 -0
  132. package/dist/ply-writer.js +2 -0
  133. package/dist/ply-writer.js.map +1 -0
  134. package/package.json +75 -71
  135. package/src/las/las-copc-loader-types.ts +1 -1
  136. package/src/las/las-loader-types.ts +1 -1
  137. package/src/las/laz-rs-loader-types.ts +1 -1
  138. package/src/las/lazperf-loader-types.ts +1 -1
  139. package/src/las/lib/las-extra-bytes.ts +6 -4
  140. package/src/las/libs/laz-rs-wasm/README.md +5 -0
  141. package/src/las/libs/laz-rs-wasm/package.json +6 -0
  142. package/src/las-copc-loader-types.ts +1 -0
  143. package/src/las-copc-loader.ts +1 -0
  144. package/src/las-loader-types.ts +1 -0
  145. package/src/las-loader.ts +1 -0
  146. package/src/las-writer.ts +1 -0
  147. package/src/laz-rs-loader-types.ts +1 -0
  148. package/src/laz-rs-loader.ts +1 -0
  149. package/src/lazperf-loader-types.ts +1 -0
  150. package/src/lazperf-loader.ts +1 -0
  151. package/src/pcd/pcd-loader-types.ts +1 -1
  152. package/src/pcd-loader-types.ts +1 -0
  153. package/src/pcd-loader.ts +1 -0
  154. package/src/pcd-writer.ts +1 -0
  155. package/src/ply/ply-loader-types.ts +1 -1
  156. package/src/ply-loader-types.ts +1 -0
  157. package/src/ply-loader.ts +1 -0
  158. package/src/ply-writer.ts +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"laz-rs-loader.js","sourceRoot":"","sources":["../src/laz-rs-loader.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/lazperf-loader-types.ts
31
+ var lazperf_loader_types_exports = {};
32
+ __export(lazperf_loader_types_exports, {
33
+ LAZPerfLoader: () => LAZPerfLoader
34
+ });
35
+ module.exports = __toCommonJS(lazperf_loader_types_exports);
36
+
37
+ // src/las/lazperf-loader-types.ts
38
+ var import_las_loader_shared = require("./las-loader-shared.cjs");
39
+ var LAZPerfLoader = {
40
+ ...import_las_loader_shared.LAS_LOADER_METADATA,
41
+ name: "LAS (laz-perf)",
42
+ preload: async () => {
43
+ const { LAZPerfLoaderWithParser } = await import("@loaders.gl/pointclouds/lazperf-loader");
44
+ return LAZPerfLoaderWithParser;
45
+ }
46
+ };
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ LAZPerfLoader
50
+ });
51
+ //# sourceMappingURL=lazperf-loader-types.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/lazperf-loader-types.ts", "../src/las/lazperf-loader-types.ts"],
4
+ "sourcesContent": ["export * from './las/lazperf-loader-types.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// LASER (LAS) FILE FORMAT\nimport type {Loader} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable} from '@loaders.gl/core/schema';\nimport {LAS_LOADER_METADATA, type LASLoaderOptions} from './las-loader-shared';\nimport type {LASMesh} from './lib/las-types';\n\n/**\n * Metadata-only loader for the LAS (LASer) point cloud format.\n * @note Does not support LAS v1.4\n */\nexport const LAZPerfLoader = {\n ...LAS_LOADER_METADATA,\n name: 'LAS (laz-perf)',\n preload: async () => {\n const {LAZPerfLoaderWithParser} = await import('@loaders.gl/pointclouds/lazperf-loader');\n return LAZPerfLoaderWithParser;\n }\n} as const satisfies Loader<LASMesh | MeshArrowTable, LASMesh | MeshArrowTable, LASLoaderOptions>;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOA,+BAAyD;AAOlD,IAAM,gBAAgB;AAAA,EAC3B,GAAG;AAAA,EACH,MAAM;AAAA,EACN,SAAS,YAAY;AACnB,UAAM,EAAC,wBAAuB,IAAI,MAAM,OAAO,wCAAwC;AACvF,WAAO;AAAA,EACT;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './las/lazperf-loader-types.js';
2
+ //# sourceMappingURL=lazperf-loader-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazperf-loader-types.d.ts","sourceRoot":"","sources":["../src/lazperf-loader-types.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './las/lazperf-loader-types.js';
2
+ //# sourceMappingURL=lazperf-loader-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazperf-loader-types.js","sourceRoot":"","sources":["../src/lazperf-loader-types.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/lazperf-loader.ts
21
+ var lazperf_loader_exports = {};
22
+ __export(lazperf_loader_exports, {
23
+ LAZPerfLoaderWithParser: () => LAZPerfLoaderWithParser
24
+ });
25
+ module.exports = __toCommonJS(lazperf_loader_exports);
26
+
27
+ // src/las/lazperf-loader.ts
28
+ var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
+ var import_las_loader_shared = require("./las-loader-shared.cjs");
30
+ var import_parse_las = require("./lib/laz-perf/parse-las.cjs");
31
+ var LAZPerfLoaderWithParser = {
32
+ ...import_las_loader_shared.LAS_LOADER_METADATA,
33
+ name: "LAS (laz-perf)",
34
+ parse: async (arrayBuffer, options) => convertLASMesh((0, import_parse_las.parseLAS)(arrayBuffer, options), options),
35
+ parseSync: (arrayBuffer, options) => convertLASMesh((0, import_parse_las.parseLAS)(arrayBuffer, options), options),
36
+ parseInBatches: async function* (arrayBufferIterator, options) {
37
+ yield* convertLASMeshBatches((0, import_parse_las.parseLASInBatches)(arrayBufferIterator, options), options);
38
+ }
39
+ };
40
+ function convertLASMesh(mesh, options) {
41
+ const formattedMesh = (0, import_las_loader_shared.formatLASMeshColors)(mesh, options?.las?.colorFormat || "uint8norm");
42
+ const table = (0, import_schema_utils.convertMeshToTable)(formattedMesh, "arrow-table");
43
+ if ((0, import_las_loader_shared.getLASShape)(options) === "arrow-table") {
44
+ return table;
45
+ }
46
+ return {
47
+ ...(0, import_schema_utils.convertTableToMesh)(table),
48
+ loader: mesh.loader,
49
+ loaderData: mesh.loaderData,
50
+ progress: mesh.progress
51
+ };
52
+ }
53
+ async function* convertLASMeshBatches(meshBatches, options) {
54
+ for await (const mesh of meshBatches) {
55
+ yield convertLASMesh(mesh, options);
56
+ }
57
+ }
58
+ // Annotate the CommonJS export names for ESM import in node:
59
+ 0 && (module.exports = {
60
+ LAZPerfLoaderWithParser
61
+ });
62
+ //# sourceMappingURL=lazperf-loader.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/lazperf-loader.ts", "../src/las/lazperf-loader.ts"],
4
+ "sourcesContent": ["export * from './las/lazperf-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// LASER (LAS) FILE FORMAT\nimport type {LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable} from '@loaders.gl/core/schema';\nimport {convertMeshToTable, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport {\n formatLASMeshColors,\n getLASShape,\n LAS_LOADER_METADATA,\n type LASLoaderOptions\n} from './las-loader-shared';\nimport type {LASMesh} from './lib/las-types';\nimport {parseLAS, parseLASInBatches} from './lib/laz-perf/parse-las';\n\n/**\n * Loader for the LAS (LASer) point cloud format\n * @note Does not support LAS v1.4\n */\nexport const LAZPerfLoaderWithParser = {\n ...LAS_LOADER_METADATA,\n name: 'LAS (laz-perf)',\n parse: async (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLAS(arrayBuffer, options), options),\n parseSync: (arrayBuffer: ArrayBuffer, options?: LASLoaderOptions) =>\n convertLASMesh(parseLAS(arrayBuffer, options), options),\n parseInBatches: async function* (arrayBufferIterator, options?: LASLoaderOptions) {\n yield* convertLASMeshBatches(parseLASInBatches(arrayBufferIterator, options), options);\n }\n} as const satisfies LoaderWithParser<\n LASMesh | MeshArrowTable,\n LASMesh | MeshArrowTable,\n LASLoaderOptions\n>;\n\nfunction convertLASMesh(mesh: LASMesh, options?: LASLoaderOptions): LASMesh | MeshArrowTable {\n const formattedMesh = formatLASMeshColors(mesh, options?.las?.colorFormat || 'uint8norm');\n const table = convertMeshToTable(formattedMesh, 'arrow-table') as MeshArrowTable;\n if (getLASShape(options) === 'arrow-table') {\n return table;\n }\n return {\n ...(convertTableToMesh(table) as LASMesh),\n loader: mesh.loader,\n loaderData: mesh.loaderData,\n progress: (mesh as LASMesh & {progress?: number}).progress\n } as LASMesh & {progress?: number};\n}\n\n/**\n * Convert LAS mesh batches to the requested output shape.\n * @param meshBatches Decoded LAS mesh batches\n * @param options LAS loader options\n * @returns Converted LAS batches\n */\nasync function* convertLASMeshBatches(\n meshBatches: AsyncIterable<LASMesh>,\n options?: LASLoaderOptions\n): AsyncIterable<LASMesh | MeshArrowTable> {\n for await (const mesh of meshBatches) {\n yield convertLASMesh(mesh, options);\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOA,0BAAqD;AACrD,+BAKO;AAEP,uBAA0C;AAMnC,IAAM,0BAA0B;AAAA,EACrC,GAAG;AAAA,EACH,MAAM;AAAA,EACN,OAAO,OAAO,aAA0B,YACtC,mBAAe,2BAAS,aAAa,OAAO,GAAG,OAAO;AAAA,EACxD,WAAW,CAAC,aAA0B,YACpC,mBAAe,2BAAS,aAAa,OAAO,GAAG,OAAO;AAAA,EACxD,gBAAgB,iBAAiB,qBAAqB,SAA4B;AAChF,WAAO,0BAAsB,oCAAkB,qBAAqB,OAAO,GAAG,OAAO;AAAA,EACvF;AACF;AAMA,SAAS,eAAe,MAAe,SAAsD;AAC3F,QAAM,oBAAgB,8CAAoB,MAAM,SAAS,KAAK,eAAe,WAAW;AACxF,QAAM,YAAQ,wCAAmB,eAAe,aAAa;AAC7D,UAAI,sCAAY,OAAO,MAAM,eAAe;AAC1C,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,OAAI,wCAAmB,KAAK;AAAA,IAC5B,QAAQ,KAAK;AAAA,IACb,YAAY,KAAK;AAAA,IACjB,UAAW,KAAuC;AAAA,EACpD;AACF;AAQA,gBAAgB,sBACd,aACA,SACyC;AACzC,mBAAiB,QAAQ,aAAa;AACpC,UAAM,eAAe,MAAM,OAAO;AAAA,EACpC;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './las/lazperf-loader.js';
2
+ //# sourceMappingURL=lazperf-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazperf-loader.d.ts","sourceRoot":"","sources":["../src/lazperf-loader.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './las/lazperf-loader.js';
2
+ //# sourceMappingURL=lazperf-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazperf-loader.js","sourceRoot":"","sources":["../src/lazperf-loader.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
@@ -36,9 +36,9 @@ __export(pcd_loader_types_exports, {
36
36
  module.exports = __toCommonJS(pcd_loader_types_exports);
37
37
  var import_pcd_format = require("./pcd-format.cjs");
38
38
  var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
39
- var VERSION = true ? "5.0.0-beta.1" : "latest";
39
+ var VERSION = true ? "5.0.0-beta.4" : "latest";
40
40
  async function preload() {
41
- const { PCDLoaderWithParser } = await import("@loaders.gl/pointclouds/pcd/pcd-loader");
41
+ const { PCDLoaderWithParser } = await import("@loaders.gl/pointclouds/pcd-loader");
42
42
  return PCDLoaderWithParser;
43
43
  }
44
44
  var PCDLoader = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/pcd/pcd-loader-types.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport type {PCDMesh} from './lib/pcd-types';\nimport {PCDFormat} from './pcd-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/schema-utils/arrow-transport';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type PCDLoaderOptions = LoaderOptions & {\n pcd?: {\n /** Output shape. Defaults to a Mesh Arrow table. */\n shape?: 'mesh' | 'arrow-table';\n /** Color storage format. Defaults to uint8norm for backwards compatibility. */\n colorFormat?: 'uint8norm' | 'float16' | 'float32';\n /** Override the URL to the worker bundle (by default loads from unpkg.com) */\n workerUrl?: string;\n };\n};\n\n/**\n * Preloads the parser-bearing PCD loader implementation.\n */\nasync function preload() {\n const {PCDLoaderWithParser} = await import('@loaders.gl/pointclouds/pcd/pcd-loader');\n return PCDLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for PCD - Point Cloud Data\n */\nexport const PCDLoader = {\n ...PCDFormat,\n dataType: null as unknown as PCDMesh | MeshArrowTable,\n batchType: null as unknown as PCDMesh | ArrowTableBatch,\n version: VERSION,\n worker: true,\n /** Enables the stateful input/output batch protocol on the built-in worker. */\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n options: {\n pcd: {shape: 'arrow-table', colorFormat: 'uint8norm'}\n },\n preload\n} as const satisfies Loader<PCDMesh | MeshArrowTable, PCDMesh | ArrowTableBatch, PCDLoaderOptions>;\n\n/** @deprecated Use PCDLoader. */\nexport const PCDWorkerLoader = PCDLoader;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,wBAAwB;AACxB,6BAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AAgBnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,wCAAwC;AACnF,SAAO;AACT;AAKO,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA,EAER,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,SAAS;AAAA,IACP,KAAK,EAAC,OAAO,eAAe,aAAa,YAAW;AAAA,EACtD;AAAA,EACA;AACF;AAGO,IAAM,kBAAkB;",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport type {PCDMesh} from './lib/pcd-types';\nimport {PCDFormat} from './pcd-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/schema-utils/arrow-transport';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type PCDLoaderOptions = LoaderOptions & {\n pcd?: {\n /** Output shape. Defaults to a Mesh Arrow table. */\n shape?: 'mesh' | 'arrow-table';\n /** Color storage format. Defaults to uint8norm for backwards compatibility. */\n colorFormat?: 'uint8norm' | 'float16' | 'float32';\n /** Override the URL to the worker bundle (by default loads from unpkg.com) */\n workerUrl?: string;\n };\n};\n\n/**\n * Preloads the parser-bearing PCD loader implementation.\n */\nasync function preload() {\n const {PCDLoaderWithParser} = await import('@loaders.gl/pointclouds/pcd-loader');\n return PCDLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for PCD - Point Cloud Data\n */\nexport const PCDLoader = {\n ...PCDFormat,\n dataType: null as unknown as PCDMesh | MeshArrowTable,\n batchType: null as unknown as PCDMesh | ArrowTableBatch,\n version: VERSION,\n worker: true,\n /** Enables the stateful input/output batch protocol on the built-in worker. */\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n options: {\n pcd: {shape: 'arrow-table', colorFormat: 'uint8norm'}\n },\n preload\n} as const satisfies Loader<PCDMesh | MeshArrowTable, PCDMesh | ArrowTableBatch, PCDLoaderOptions>;\n\n/** @deprecated Use PCDLoader. */\nexport const PCDWorkerLoader = PCDLoader;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,wBAAwB;AACxB,6BAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AAgBnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,oCAAoC;AAC/E,SAAO;AACT;AAKO,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA,EAER,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,SAAS;AAAA,IACP,KAAK,EAAC,OAAO,eAAe,aAAa,YAAW;AAAA,EACtD;AAAA,EACA;AACF;AAGO,IAAM,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -5,12 +5,12 @@ import { PCDFormat } from "./pcd-format.js";
5
5
  import { serializeArrowWorkerTable } from '@loaders.gl/core/schema-utils/arrow-transport';
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "5.0.0-beta.1" !== 'undefined' ? "5.0.0-beta.1" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.4" !== 'undefined' ? "5.0.0-beta.4" : 'latest';
9
9
  /**
10
10
  * Preloads the parser-bearing PCD loader implementation.
11
11
  */
12
12
  async function preload() {
13
- const { PCDLoaderWithParser } = await import('@loaders.gl/pointclouds/pcd/pcd-loader');
13
+ const { PCDLoaderWithParser } = await import('@loaders.gl/pointclouds/pcd-loader');
14
14
  return PCDLoaderWithParser;
15
15
  }
16
16
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pcd-loader-types.js","sourceRoot":"","sources":["../../src/pcd/pcd-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,+CAA+C,CAAC;AAExF,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,qBAAkB,KAAK,WAAW,CAAC,CAAC,gBAAa,CAAC,CAAC,QAAQ,CAAC;AAa5E;;GAEG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;IACrF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,SAAS;IACZ,QAAQ,EAAE,IAA2C;IACrD,SAAS,EAAE,IAA4C;IACvD,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,+EAA+E;IAC/E,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,yBAAyB;IAChD,OAAO,EAAE;QACP,GAAG,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAC;KACtD;IACD,OAAO;CACyF,CAAC;AAEnG,iCAAiC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"pcd-loader-types.js","sourceRoot":"","sources":["../../src/pcd/pcd-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,+CAA+C,CAAC;AAExF,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,qBAAkB,KAAK,WAAW,CAAC,CAAC,gBAAa,CAAC,CAAC,QAAQ,CAAC;AAa5E;;GAEG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;IACjF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,SAAS;IACZ,QAAQ,EAAE,IAA2C;IACrD,SAAS,EAAE,IAA4C;IACvD,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,+EAA+E;IAC/E,eAAe,EAAE,IAAI;IACrB,qBAAqB,EAAE,yBAAyB;IAChD,OAAO,EAAE;QACP,GAAG,EAAE,EAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAC;KACtD;IACD,OAAO;CACyF,CAAC;AAEnG,iCAAiC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC"}
@@ -25,7 +25,7 @@ __export(pcd_writer_exports, {
25
25
  module.exports = __toCommonJS(pcd_writer_exports);
26
26
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
27
27
  var import_pcd_format = require("./pcd-format.cjs");
28
- var VERSION = true ? "5.0.0-beta.1" : "latest";
28
+ var VERSION = true ? "5.0.0-beta.4" : "latest";
29
29
  var PCDWriter = {
30
30
  ...import_pcd_format.PCDFormat,
31
31
  dataType: null,
@@ -5,7 +5,7 @@ import { convertMeshToTable, convertTableToMesh } from '@loaders.gl/core/schema-
5
5
  import { PCDFormat } from "./pcd-format.js";
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "5.0.0-beta.1" !== 'undefined' ? "5.0.0-beta.1" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.4" !== 'undefined' ? "5.0.0-beta.4" : 'latest';
9
9
  /**
10
10
  * Writer for the PCD point cloud format.
11
11
  */
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/pcd-loader-types.ts
31
+ var pcd_loader_types_exports = {};
32
+ __export(pcd_loader_types_exports, {
33
+ PCDLoader: () => PCDLoader,
34
+ PCDWorkerLoader: () => PCDWorkerLoader
35
+ });
36
+ module.exports = __toCommonJS(pcd_loader_types_exports);
37
+
38
+ // src/pcd/pcd-loader-types.ts
39
+ var import_pcd_format = require("./pcd-format.cjs");
40
+ var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
41
+ var VERSION = true ? "5.0.0-beta.4" : "latest";
42
+ async function preload() {
43
+ const { PCDLoaderWithParser } = await import("@loaders.gl/pointclouds/pcd-loader");
44
+ return PCDLoaderWithParser;
45
+ }
46
+ var PCDLoader = {
47
+ ...import_pcd_format.PCDFormat,
48
+ dataType: null,
49
+ batchType: null,
50
+ version: VERSION,
51
+ worker: true,
52
+ /** Enables the stateful input/output batch protocol on the built-in worker. */
53
+ workerInBatches: true,
54
+ serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
55
+ options: {
56
+ pcd: { shape: "arrow-table", colorFormat: "uint8norm" }
57
+ },
58
+ preload
59
+ };
60
+ var PCDWorkerLoader = PCDLoader;
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ PCDLoader,
64
+ PCDWorkerLoader
65
+ });
66
+ //# sourceMappingURL=pcd-loader-types.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/pcd-loader-types.ts", "../src/pcd/pcd-loader-types.ts"],
4
+ "sourcesContent": ["export * from './pcd/pcd-loader-types.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport type {PCDMesh} from './lib/pcd-types';\nimport {PCDFormat} from './pcd-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/schema-utils/arrow-transport';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type PCDLoaderOptions = LoaderOptions & {\n pcd?: {\n /** Output shape. Defaults to a Mesh Arrow table. */\n shape?: 'mesh' | 'arrow-table';\n /** Color storage format. Defaults to uint8norm for backwards compatibility. */\n colorFormat?: 'uint8norm' | 'float16' | 'float32';\n /** Override the URL to the worker bundle (by default loads from unpkg.com) */\n workerUrl?: string;\n };\n};\n\n/**\n * Preloads the parser-bearing PCD loader implementation.\n */\nasync function preload() {\n const {PCDLoaderWithParser} = await import('@loaders.gl/pointclouds/pcd-loader');\n return PCDLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for PCD - Point Cloud Data\n */\nexport const PCDLoader = {\n ...PCDFormat,\n dataType: null as unknown as PCDMesh | MeshArrowTable,\n batchType: null as unknown as PCDMesh | ArrowTableBatch,\n version: VERSION,\n worker: true,\n /** Enables the stateful input/output batch protocol on the built-in worker. */\n workerInBatches: true,\n serializeWorkerResult: serializeArrowWorkerTable,\n options: {\n pcd: {shape: 'arrow-table', colorFormat: 'uint8norm'}\n },\n preload\n} as const satisfies Loader<PCDMesh | MeshArrowTable, PCDMesh | ArrowTableBatch, PCDLoaderOptions>;\n\n/** @deprecated Use PCDLoader. */\nexport const PCDWorkerLoader = PCDLoader;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOA,wBAAwB;AACxB,6BAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AAgBnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,oCAAoC;AAC/E,SAAO;AACT;AAKO,IAAM,YAAY;AAAA,EACvB,GAAG;AAAA,EACH,UAAU;AAAA,EACV,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA;AAAA,EAER,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,SAAS;AAAA,IACP,KAAK,EAAC,OAAO,eAAe,aAAa,YAAW;AAAA,EACtD;AAAA,EACA;AACF;AAGO,IAAM,kBAAkB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './pcd/pcd-loader-types.js';
2
+ //# sourceMappingURL=pcd-loader-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pcd-loader-types.d.ts","sourceRoot":"","sources":["../src/pcd-loader-types.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './pcd/pcd-loader-types.js';
2
+ //# sourceMappingURL=pcd-loader-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pcd-loader-types.js","sourceRoot":"","sources":["../src/pcd-loader-types.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/pcd-loader.ts
21
+ var pcd_loader_exports = {};
22
+ __export(pcd_loader_exports, {
23
+ PCDLoaderWithParser: () => PCDLoaderWithParser
24
+ });
25
+ module.exports = __toCommonJS(pcd_loader_exports);
26
+
27
+ // src/pcd/pcd-loader.ts
28
+ var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
+ var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
30
+ var import_schema_utils = require("@loaders.gl/core/schema-utils");
31
+ var import_parse_pcd = require("./lib/parse-pcd.cjs");
32
+ var import_pcd_loader_types = require("./pcd-loader-types.cjs");
33
+ var { preload: _PCDLoaderPreload, ...PCDLoaderMetadataWithoutPreload } = import_pcd_loader_types.PCDLoader;
34
+ function convertPCDMesh(mesh, options) {
35
+ const table = (0, import_schema_utils.convertMeshToTable)(mesh, "arrow-table");
36
+ return options?.pcd?.shape === "mesh" ? convertPCDTableToMesh(table, mesh) : { ...table, loader: mesh.loader, loaderData: mesh.loaderData };
37
+ }
38
+ var PCDLoaderWithParser = {
39
+ ...PCDLoaderMetadataWithoutPreload,
40
+ parse: async (arrayBuffer, options) => convertPCDMesh((0, import_parse_pcd.parsePCD)(arrayBuffer, options), options),
41
+ parseSync: (arrayBuffer, options) => convertPCDMesh((0, import_parse_pcd.parsePCD)(arrayBuffer, options), options),
42
+ parseInBatches: async function* (arrayBuffer, options) {
43
+ const batchSize = getNumericBatchSize(options);
44
+ const data = await (0, import_loader_utils.concatenateArrayBuffersAsync)(arrayBuffer);
45
+ const textData = new TextDecoder().decode(data);
46
+ const pcdHeader = (0, import_parse_pcd.parsePCDHeader)(textData);
47
+ if (pcdHeader.data === "ascii") {
48
+ yield* parsePCDASCIIInBatches(data, options, batchSize);
49
+ return;
50
+ }
51
+ if (pcdHeader.data === "binary") {
52
+ yield* parsePCDBinaryInBatches(data, options, batchSize);
53
+ return;
54
+ }
55
+ yield makePCDBatch((0, import_parse_pcd.parsePCD)(data, options), options);
56
+ },
57
+ serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
58
+ deserializeWorkerResult: deserializePCDWorkerResult,
59
+ serializeWorkerBatch: import_arrow_transport.serializeArrowWorkerTable,
60
+ deserializeWorkerBatch: deserializePCDWorkerBatch
61
+ };
62
+ function getNumericBatchSize(options) {
63
+ const batchSize = options?.batchSize ?? options?.core?.batchSize;
64
+ return typeof batchSize === "number" ? batchSize : void 0;
65
+ }
66
+ function* parsePCDASCIIInBatches(data, options, batchSize) {
67
+ const textData = new TextDecoder().decode(data);
68
+ const pcdHeader = (0, import_parse_pcd.parsePCDHeader)(textData);
69
+ const lines = textData.slice(pcdHeader.headerLen).split(/\r?\n/).filter((line) => line.trim().length > 0);
70
+ const normalizedBatchSize = batchSize || lines.length || 1;
71
+ for (let rowIndex = 0; rowIndex < lines.length; rowIndex += normalizedBatchSize) {
72
+ const batchLines = lines.slice(rowIndex, rowIndex + normalizedBatchSize);
73
+ const batchText = `${makePCDHeaderText(pcdHeader, batchLines.length)}${batchLines.join("\n")}
74
+ `;
75
+ yield makePCDBatch((0, import_parse_pcd.parsePCD)(new TextEncoder().encode(batchText).buffer, options), options);
76
+ }
77
+ }
78
+ function* parsePCDBinaryInBatches(data, options, batchSize) {
79
+ const textData = new TextDecoder().decode(data);
80
+ const pcdHeader = (0, import_parse_pcd.parsePCDHeader)(textData);
81
+ const normalizedBatchSize = batchSize || pcdHeader.points || 1;
82
+ const dataBytes = new Uint8Array(data);
83
+ for (let pointIndex = 0; pointIndex < pcdHeader.points; pointIndex += normalizedBatchSize) {
84
+ const pointCount = Math.min(normalizedBatchSize, pcdHeader.points - pointIndex);
85
+ const headerBytes = new TextEncoder().encode(makePCDHeaderText(pcdHeader, pointCount));
86
+ const rowByteOffset = pcdHeader.headerLen + pointIndex * pcdHeader.rowSize;
87
+ const rowByteLength = pointCount * pcdHeader.rowSize;
88
+ const batchBytes = new Uint8Array(headerBytes.length + rowByteLength);
89
+ batchBytes.set(headerBytes, 0);
90
+ batchBytes.set(
91
+ dataBytes.subarray(rowByteOffset, rowByteOffset + rowByteLength),
92
+ headerBytes.length
93
+ );
94
+ yield makePCDBatch((0, import_parse_pcd.parsePCD)(batchBytes.buffer, options), options);
95
+ }
96
+ }
97
+ function makePCDBatch(mesh, options) {
98
+ const table = (0, import_schema_utils.convertMeshToTable)(mesh, "arrow-table");
99
+ if (options?.pcd?.shape === "mesh") {
100
+ return convertPCDTableToMesh(table, mesh);
101
+ }
102
+ return (0, import_loader_utils.makeTableScanBatch)({
103
+ ...table,
104
+ loader: mesh.loader,
105
+ loaderData: mesh.loaderData
106
+ });
107
+ }
108
+ function convertPCDTableToMesh(table, sourceMesh) {
109
+ return {
110
+ ...(0, import_schema_utils.convertTableToMesh)(table),
111
+ loader: sourceMesh.loader,
112
+ loaderData: sourceMesh.loaderData
113
+ };
114
+ }
115
+ function makePCDHeaderText(pcdHeader, pointCount) {
116
+ const lines = pcdHeader.str.split(/\r?\n/).filter((line) => line.trim().length > 0).map((line) => {
117
+ if (/^WIDTH\s+/i.test(line)) {
118
+ return `WIDTH ${pointCount}`;
119
+ }
120
+ if (/^HEIGHT\s+/i.test(line)) {
121
+ return "HEIGHT 1";
122
+ }
123
+ if (/^POINTS\s+/i.test(line)) {
124
+ return `POINTS ${pointCount}`;
125
+ }
126
+ return line;
127
+ });
128
+ if (!lines.some((line) => /^POINTS\s+/i.test(line))) {
129
+ const dataLineIndex = lines.findIndex((line) => /^DATA\s+/i.test(line));
130
+ lines.splice(dataLineIndex >= 0 ? dataLineIndex : lines.length, 0, `POINTS ${pointCount}`);
131
+ }
132
+ return `${lines.join("\n")}
133
+ `;
134
+ }
135
+ function deserializePCDWorkerResult(result, options) {
136
+ const table = (0, import_arrow_transport.deserializeArrowWorkerTable)(result);
137
+ return options?.pcd?.shape === "mesh" ? convertPCDTableToMesh(table, table) : table;
138
+ }
139
+ function deserializePCDWorkerBatch(result, options) {
140
+ return deserializePCDWorkerResult(result, options);
141
+ }
142
+ // Annotate the CommonJS export names for ESM import in node:
143
+ 0 && (module.exports = {
144
+ PCDLoaderWithParser
145
+ });
146
+ //# sourceMappingURL=pcd-loader.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/pcd-loader.ts", "../src/pcd/pcd-loader.ts"],
4
+ "sourcesContent": ["export * from './pcd/pcd-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {PCDLoaderOptions} from './pcd-loader-types';\n\nimport {\n concatenateArrayBuffersAsync,\n makeTableScanBatch,\n type LoaderWithParser\n} from '@loaders.gl/core/loader-utils';\nimport type {ArrowTableBatch, MeshArrowTable} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/schema-utils/arrow-transport';\nimport {convertMeshToTable, convertTableToMesh} from '@loaders.gl/core/schema-utils';\nimport type {PCDMesh} from './lib/pcd-types';\nimport {parsePCD, parsePCDHeader} from './lib/parse-pcd';\nimport {PCDLoader as PCDLoaderMetadata} from './pcd-loader-types';\n\nconst {preload: _PCDLoaderPreload, ...PCDLoaderMetadataWithoutPreload} = PCDLoaderMetadata;\n\ntype PCDParsedBatch = PCDMesh | ArrowTableBatch;\n\nfunction convertPCDMesh(mesh: PCDMesh, options?: PCDLoaderOptions): PCDMesh | MeshArrowTable {\n const table = convertMeshToTable(mesh, 'arrow-table');\n return options?.pcd?.shape === 'mesh'\n ? convertPCDTableToMesh(table, mesh)\n : {...table, loader: mesh.loader, loaderData: mesh.loaderData};\n}\n\n/**\n * Loader for PCD - Point Cloud Data\n */\nexport const PCDLoaderWithParser = {\n ...PCDLoaderMetadataWithoutPreload,\n parse: async (arrayBuffer, options) => convertPCDMesh(parsePCD(arrayBuffer, options), options),\n parseSync: (arrayBuffer, options) => convertPCDMesh(parsePCD(arrayBuffer, options), options),\n parseInBatches: async function* (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ): AsyncIterable<PCDParsedBatch> {\n const batchSize = getNumericBatchSize(options);\n const data = await concatenateArrayBuffersAsync(arrayBuffer);\n const textData = new TextDecoder().decode(data);\n const pcdHeader = parsePCDHeader(textData);\n\n if (pcdHeader.data === 'ascii') {\n yield* parsePCDASCIIInBatches(data, options, batchSize);\n return;\n }\n\n if (pcdHeader.data === 'binary') {\n yield* parsePCDBinaryInBatches(data, options, batchSize);\n return;\n }\n\n yield makePCDBatch(parsePCD(data, options), options);\n },\n serializeWorkerResult: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializePCDWorkerResult,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerBatch: deserializePCDWorkerBatch\n} as const satisfies LoaderWithParser<PCDMesh | MeshArrowTable, PCDParsedBatch, PCDLoaderOptions>;\n\n/** Returns a numeric batch size when batching has an explicit row count. */\nfunction getNumericBatchSize(options?: PCDLoaderOptions): number | undefined {\n const batchSize = options?.batchSize ?? options?.core?.batchSize;\n return typeof batchSize === 'number' ? batchSize : undefined;\n}\n\nfunction* parsePCDASCIIInBatches(\n data: ArrayBuffer,\n options?: PCDLoaderOptions,\n batchSize?: number\n): Iterable<PCDParsedBatch> {\n const textData = new TextDecoder().decode(data);\n const pcdHeader = parsePCDHeader(textData);\n const lines = textData\n .slice(pcdHeader.headerLen)\n .split(/\\r?\\n/)\n .filter(line => line.trim().length > 0);\n const normalizedBatchSize = batchSize || lines.length || 1;\n\n for (let rowIndex = 0; rowIndex < lines.length; rowIndex += normalizedBatchSize) {\n const batchLines = lines.slice(rowIndex, rowIndex + normalizedBatchSize);\n const batchText = `${makePCDHeaderText(pcdHeader, batchLines.length)}${batchLines.join('\\n')}\\n`;\n yield makePCDBatch(parsePCD(new TextEncoder().encode(batchText).buffer, options), options);\n }\n}\n\nfunction* parsePCDBinaryInBatches(\n data: ArrayBuffer,\n options?: PCDLoaderOptions,\n batchSize?: number\n): Iterable<PCDParsedBatch> {\n const textData = new TextDecoder().decode(data);\n const pcdHeader = parsePCDHeader(textData);\n const normalizedBatchSize = batchSize || pcdHeader.points || 1;\n const dataBytes = new Uint8Array(data);\n\n for (let pointIndex = 0; pointIndex < pcdHeader.points; pointIndex += normalizedBatchSize) {\n const pointCount = Math.min(normalizedBatchSize, pcdHeader.points - pointIndex);\n const headerBytes = new TextEncoder().encode(makePCDHeaderText(pcdHeader, pointCount));\n const rowByteOffset = pcdHeader.headerLen + pointIndex * pcdHeader.rowSize;\n const rowByteLength = pointCount * pcdHeader.rowSize;\n const batchBytes = new Uint8Array(headerBytes.length + rowByteLength);\n batchBytes.set(headerBytes, 0);\n batchBytes.set(\n dataBytes.subarray(rowByteOffset, rowByteOffset + rowByteLength),\n headerBytes.length\n );\n yield makePCDBatch(parsePCD(batchBytes.buffer, options), options);\n }\n}\n\nfunction makePCDBatch(mesh: PCDMesh, options?: PCDLoaderOptions): PCDParsedBatch {\n const table = convertMeshToTable(mesh, 'arrow-table');\n if (options?.pcd?.shape === 'mesh') {\n return convertPCDTableToMesh(table, mesh);\n }\n\n return makeTableScanBatch({\n ...table,\n loader: mesh.loader,\n loaderData: mesh.loaderData\n } as MeshArrowTable);\n}\n\n/** Convert the parser's Arrow table to legacy PCD mesh output. */\nfunction convertPCDTableToMesh(table: MeshArrowTable, sourceMesh: PCDMesh): PCDMesh {\n return {\n ...(convertTableToMesh(table) as PCDMesh),\n loader: sourceMesh.loader,\n loaderData: sourceMesh.loaderData\n };\n}\n\nfunction makePCDHeaderText(pcdHeader: any, pointCount: number): string {\n const lines = pcdHeader.str\n .split(/\\r?\\n/)\n .filter(line => line.trim().length > 0)\n .map(line => {\n if (/^WIDTH\\s+/i.test(line)) {\n return `WIDTH ${pointCount}`;\n }\n if (/^HEIGHT\\s+/i.test(line)) {\n return 'HEIGHT 1';\n }\n if (/^POINTS\\s+/i.test(line)) {\n return `POINTS ${pointCount}`;\n }\n return line;\n });\n\n if (!lines.some(line => /^POINTS\\s+/i.test(line))) {\n const dataLineIndex = lines.findIndex(line => /^DATA\\s+/i.test(line));\n lines.splice(dataLineIndex >= 0 ? dataLineIndex : lines.length, 0, `POINTS ${pointCount}`);\n }\n\n return `${lines.join('\\n')}\\n`;\n}\n\n/** Hydrates worker columns before reconstructing legacy PCD meshes on the caller. */\nfunction deserializePCDWorkerResult(\n result: unknown,\n options?: PCDLoaderOptions\n): PCDMesh | MeshArrowTable {\n const table = deserializeArrowWorkerTable(result);\n return options?.pcd?.shape === 'mesh' ? convertPCDTableToMesh(table, table) : table;\n}\n\n/** Restores the existing PCD batch shape after caller-side hydration. */\nfunction deserializePCDWorkerBatch(result: unknown, options?: PCDLoaderOptions): PCDParsedBatch {\n return deserializePCDWorkerResult(result, options) as PCDParsedBatch;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["PCDLoaderMetadata"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './pcd/pcd-loader.js';
2
+ //# sourceMappingURL=pcd-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pcd-loader.d.ts","sourceRoot":"","sources":["../src/pcd-loader.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './pcd/pcd-loader.js';
2
+ //# sourceMappingURL=pcd-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pcd-loader.js","sourceRoot":"","sources":["../src/pcd-loader.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}