@loaders.gl/pointclouds 5.0.0-beta.4 → 5.0.0-beta.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 (67) hide show
  1. package/LAS-README.md +1 -1
  2. package/PCD-README.md +1 -1
  3. package/PLY-README.md +1 -1
  4. package/README.md +1 -1
  5. package/dist/dist.dev.js +129 -90
  6. package/dist/dist.min.js +20 -20
  7. package/dist/las/las-loader-shared.cjs +1 -1
  8. package/dist/las/las-loader-shared.js +1 -1
  9. package/dist/las/las-loader-types.d.ts +2 -2
  10. package/dist/las/las-loader.cjs +4 -4
  11. package/dist/las/las-loader.cjs.map +2 -2
  12. package/dist/las/las-loader.d.ts +1 -1
  13. package/dist/las/las-loader.d.ts.map +1 -1
  14. package/dist/las/las-loader.js +1 -1
  15. package/dist/las/las-loader.js.map +1 -1
  16. package/dist/las/las-writer.cjs +1 -1
  17. package/dist/las/las-writer.js +1 -1
  18. package/dist/las-loader.cjs +4 -4
  19. package/dist/las-loader.cjs.map +2 -2
  20. package/dist/las-worker.js +303 -80
  21. package/dist/las-writer.cjs +1 -1
  22. package/dist/pcd/pcd-loader-types.cjs +3 -3
  23. package/dist/pcd/pcd-loader-types.cjs.map +2 -2
  24. package/dist/pcd/pcd-loader-types.d.ts +1 -1
  25. package/dist/pcd/pcd-loader-types.d.ts.map +1 -1
  26. package/dist/pcd/pcd-loader-types.js +2 -2
  27. package/dist/pcd/pcd-loader-types.js.map +1 -1
  28. package/dist/pcd/pcd-loader.cjs +4 -4
  29. package/dist/pcd/pcd-loader.cjs.map +2 -2
  30. package/dist/pcd/pcd-loader.d.ts +1 -1
  31. package/dist/pcd/pcd-loader.d.ts.map +1 -1
  32. package/dist/pcd/pcd-loader.js +1 -1
  33. package/dist/pcd/pcd-loader.js.map +1 -1
  34. package/dist/pcd/pcd-writer.cjs +1 -1
  35. package/dist/pcd/pcd-writer.js +1 -1
  36. package/dist/pcd-loader-types.cjs +3 -3
  37. package/dist/pcd-loader-types.cjs.map +2 -2
  38. package/dist/pcd-loader.cjs +4 -4
  39. package/dist/pcd-loader.cjs.map +2 -2
  40. package/dist/pcd-worker.js +568 -287
  41. package/dist/pcd-writer.cjs +1 -1
  42. package/dist/ply/ply-loader-types.cjs +3 -3
  43. package/dist/ply/ply-loader-types.cjs.map +2 -2
  44. package/dist/ply/ply-loader-types.d.ts +1 -1
  45. package/dist/ply/ply-loader-types.d.ts.map +1 -1
  46. package/dist/ply/ply-loader-types.js +2 -2
  47. package/dist/ply/ply-loader-types.js.map +1 -1
  48. package/dist/ply/ply-loader.cjs +4 -4
  49. package/dist/ply/ply-loader.cjs.map +2 -2
  50. package/dist/ply/ply-loader.d.ts +1 -1
  51. package/dist/ply/ply-loader.d.ts.map +1 -1
  52. package/dist/ply/ply-loader.js +1 -1
  53. package/dist/ply/ply-loader.js.map +1 -1
  54. package/dist/ply/ply-writer.cjs +1 -1
  55. package/dist/ply/ply-writer.js +1 -1
  56. package/dist/ply-loader-types.cjs +3 -3
  57. package/dist/ply-loader-types.cjs.map +2 -2
  58. package/dist/ply-loader.cjs +4 -4
  59. package/dist/ply-loader.cjs.map +2 -2
  60. package/dist/ply-worker.js +394 -113
  61. package/dist/ply-writer.cjs +1 -1
  62. package/package.json +3 -3
  63. package/src/las/las-loader.ts +1 -1
  64. package/src/pcd/pcd-loader-types.ts +1 -1
  65. package/src/pcd/pcd-loader.ts +1 -1
  66. package/src/ply/ply-loader-types.ts +1 -1
  67. package/src/ply/ply-loader.ts +1 -1
@@ -27,7 +27,7 @@ module.exports = __toCommonJS(pcd_writer_exports);
27
27
  // src/pcd/pcd-writer.ts
28
28
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
29
  var import_pcd_format = require("./pcd-format.cjs");
30
- var VERSION = true ? "5.0.0-beta.4" : "latest";
30
+ var VERSION = true ? "5.0.0-beta.6" : "latest";
31
31
  var PCDWriter = {
32
32
  ...import_pcd_format.PCDFormat,
33
33
  dataType: null,
@@ -35,8 +35,8 @@ __export(ply_loader_types_exports, {
35
35
  });
36
36
  module.exports = __toCommonJS(ply_loader_types_exports);
37
37
  var import_ply_format = require("./ply-format.cjs");
38
- var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
39
- var VERSION = true ? "5.0.0-beta.4" : "latest";
38
+ var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
39
+ var VERSION = true ? "5.0.0-beta.6" : "latest";
40
40
  async function preload() {
41
41
  const { PLYLoaderWithParser } = await import("@loaders.gl/pointclouds/ply-loader");
42
42
  return PLYLoaderWithParser;
@@ -50,7 +50,7 @@ var PLYLoader = {
50
50
  worker: true,
51
51
  /** Enables the stateful input/output batch protocol on the built-in worker. */
52
52
  workerInBatches: true,
53
- serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
53
+ serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
54
54
  options: {
55
55
  ply: { shape: "arrow-table", colorFormat: "uint8norm" }
56
56
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ply/ply-loader-types.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// PLY Loader\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport type {PLYMesh} from './lib/ply-types';\nimport type {ParsePLYOptions} from './lib/parse-ply';\nimport {PLYFormat} from './ply-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 PLYLoaderOptions = LoaderOptions & {\n ply?: ParsePLYOptions & {\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 /** Treat PLY data as a point cloud by reading only the leading vertex element. */\n pointCloud?: boolean;\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 PLY loader implementation.\n */\nasync function preload() {\n const {PLYLoaderWithParser} = await import('@loaders.gl/pointclouds/ply-loader');\n return PLYLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for PLY - Polygon File Format (aka Stanford Triangle Format)'\n * links: ['http://paulbourke.net/dataformats/ply/',\n * 'https://en.wikipedia.org/wiki/PLY_(file_format)']\n */\nexport const PLYLoader = {\n dataType: null as unknown as PLYMesh | MeshArrowTable,\n batchType: null as unknown as PLYMesh | ArrowTableBatch,\n\n ...PLYFormat,\n // shapes: ['mesh', 'gltf', 'columnar-table'],\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 ply: {shape: 'arrow-table', colorFormat: 'uint8norm'}\n },\n preload\n} as const satisfies Loader<PLYMesh | MeshArrowTable, PLYMesh | ArrowTableBatch, LoaderOptions>;\n\n/** @deprecated Use PLYLoader. */\nexport const PLYWorkerLoader = PLYLoader;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,wBAAwB;AACxB,6BAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AAkBnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,oCAAoC;AAC/E,SAAO;AACT;AAOO,IAAM,YAAY;AAAA,EACvB,UAAU;AAAA,EACV,WAAW;AAAA,EAEX,GAAG;AAAA;AAAA,EAEH,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\n// PLY Loader\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport type {PLYMesh} from './lib/ply-types';\nimport type {ParsePLYOptions} from './lib/parse-ply';\nimport {PLYFormat} from './ply-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/arrow-worker-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 PLYLoaderOptions = LoaderOptions & {\n ply?: ParsePLYOptions & {\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 /** Treat PLY data as a point cloud by reading only the leading vertex element. */\n pointCloud?: boolean;\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 PLY loader implementation.\n */\nasync function preload() {\n const {PLYLoaderWithParser} = await import('@loaders.gl/pointclouds/ply-loader');\n return PLYLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for PLY - Polygon File Format (aka Stanford Triangle Format)'\n * links: ['http://paulbourke.net/dataformats/ply/',\n * 'https://en.wikipedia.org/wiki/PLY_(file_format)']\n */\nexport const PLYLoader = {\n dataType: null as unknown as PLYMesh | MeshArrowTable,\n batchType: null as unknown as PLYMesh | ArrowTableBatch,\n\n ...PLYFormat,\n // shapes: ['mesh', 'gltf', 'columnar-table'],\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 ply: {shape: 'arrow-table', colorFormat: 'uint8norm'}\n },\n preload\n} as const satisfies Loader<PLYMesh | MeshArrowTable, PLYMesh | ArrowTableBatch, LoaderOptions>;\n\n/** @deprecated Use PLYLoader. */\nexport const PLYWorkerLoader = PLYLoader;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASA,wBAAwB;AACxB,oCAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AAkBnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,oCAAoC;AAC/E,SAAO;AACT;AAOO,IAAM,YAAY;AAAA,EACvB,UAAU;AAAA,EACV,WAAW;AAAA,EAEX,GAAG;AAAA;AAAA,EAEH,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
  }
@@ -2,7 +2,7 @@ import type { LoaderOptions } from '@loaders.gl/core/loader-utils';
2
2
  import type { MeshArrowTable, ArrowTableBatch } from '@loaders.gl/core/schema';
3
3
  import type { PLYMesh } from "./lib/ply-types.js";
4
4
  import type { ParsePLYOptions } from "./lib/parse-ply.js";
5
- import { serializeArrowWorkerTable } from '@loaders.gl/core/schema-utils/arrow-transport';
5
+ import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
6
6
  export type PLYLoaderOptions = LoaderOptions & {
7
7
  ply?: ParsePLYOptions & {
8
8
  /** Output shape. Defaults to a Mesh Arrow table. */
@@ -1 +1 @@
1
- {"version":3,"file":"ply-loader-types.d.ts","sourceRoot":"","sources":["../../src/ply/ply-loader-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAS,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAC,OAAO,EAAC,2BAAwB;AAC7C,OAAO,KAAK,EAAC,eAAe,EAAC,2BAAwB;AAErD,OAAO,EAAC,yBAAyB,EAAC,MAAM,+CAA+C,CAAC;AAMxF,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,GAAG;QACtB,oDAAoD;QACpD,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;QAC/B,+EAA+E;QAC/E,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;QAClD,kFAAkF;QAClF,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,iBAAe,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAWS,OAAO,GAAG,cAAc;wBACvB,OAAO,GAAG,eAAe;GATxD;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;IAQpB,+EAA+E;;;;;;;;;;;;;;;;;;;;uBAPlD,OAAO,GAAG,cAAc;wBACvB,OAAO,GAAG,eAAe;CAasC,CAAC;AAEhG,iCAAiC;AACjC,eAAO,MAAM,eAAe;;;IAV1B,+EAA+E;;;;;;;;;;;;;;;;;;;;uBAPlD,OAAO,GAAG,cAAc;wBACvB,OAAO,GAAG,eAAe;CAgBjB,CAAC"}
1
+ {"version":3,"file":"ply-loader-types.d.ts","sourceRoot":"","sources":["../../src/ply/ply-loader-types.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAS,aAAa,EAAC,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAC,OAAO,EAAC,2BAAwB;AAC7C,OAAO,KAAK,EAAC,eAAe,EAAC,2BAAwB;AAErD,OAAO,EAAC,yBAAyB,EAAC,MAAM,yCAAyC,CAAC;AAMlF,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,GAAG;QACtB,oDAAoD;QACpD,KAAK,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;QAC/B,+EAA+E;QAC/E,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;QAClD,kFAAkF;QAClF,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,iBAAe,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAWS,OAAO,GAAG,cAAc;wBACvB,OAAO,GAAG,eAAe;GATxD;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;IAQpB,+EAA+E;;;;;;;;;;;;;;;;;;;;uBAPlD,OAAO,GAAG,cAAc;wBACvB,OAAO,GAAG,eAAe;CAasC,CAAC;AAEhG,iCAAiC;AACjC,eAAO,MAAM,eAAe;;;IAV1B,+EAA+E;;;;;;;;;;;;;;;;;;;;uBAPlD,OAAO,GAAG,cAAc;wBACvB,OAAO,GAAG,eAAe;CAgBjB,CAAC"}
@@ -2,10 +2,10 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { PLYFormat } from "./ply-format.js";
5
- import { serializeArrowWorkerTable } from '@loaders.gl/core/schema-utils/arrow-transport';
5
+ import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-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.4" !== 'undefined' ? "5.0.0-beta.4" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.6" !== 'undefined' ? "5.0.0-beta.6" : 'latest';
9
9
  /**
10
10
  * Preloads the parser-bearing PLY loader implementation.
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ply-loader-types.js","sourceRoot":"","sources":["../../src/ply/ply-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,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;AAe5E;;GAEG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;IACjF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,IAA2C;IACrD,SAAS,EAAE,IAA4C;IAEvD,GAAG,SAAS;IACZ,8CAA8C;IAC9C,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;CACsF,CAAC;AAEhG,iCAAiC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"ply-loader-types.js","sourceRoot":"","sources":["../../src/ply/ply-loader-types.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAOpC,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAC,yBAAyB,EAAC,MAAM,yCAAyC,CAAC;AAElF,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,qBAAkB,KAAK,WAAW,CAAC,CAAC,gBAAa,CAAC,CAAC,QAAQ,CAAC;AAe5E;;GAEG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;IACjF,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ,EAAE,IAA2C;IACrD,SAAS,EAAE,IAA4C;IAEvD,GAAG,SAAS;IACZ,8CAA8C;IAC9C,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;CACsF,CAAC;AAEhG,iCAAiC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,SAAS,CAAC"}
@@ -25,7 +25,7 @@ __export(ply_loader_exports, {
25
25
  module.exports = __toCommonJS(ply_loader_exports);
26
26
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
27
27
  var import_schema = require("@loaders.gl/core/schema");
28
- var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
28
+ var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
29
29
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
30
30
  var import_parse_ply = require("./lib/parse-ply.cjs");
31
31
  var import_parse_ply_arrow = require("./lib/parse-ply-arrow.cjs");
@@ -66,9 +66,9 @@ var PLYLoaderWithParser = {
66
66
  yield isMeshArrowTable(convertedData) ? (0, import_loader_utils.makeTableScanBatch)(convertedData) : convertedData;
67
67
  }
68
68
  },
69
- serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
69
+ serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
70
70
  deserializeWorkerResult: deserializePLYWorkerResult,
71
- serializeWorkerBatch: import_arrow_transport.serializeArrowWorkerTable,
71
+ serializeWorkerBatch: import_arrow_worker_transport.serializeArrowWorkerTable,
72
72
  deserializeWorkerBatch: deserializePLYWorkerBatch
73
73
  };
74
74
  function convertPLYTable(table, options, header) {
@@ -121,7 +121,7 @@ function isMeshArrowTable(data) {
121
121
  return "shape" in data && data.shape === "arrow-table";
122
122
  }
123
123
  function deserializePLYWorkerResult(result, options) {
124
- const table = (0, import_arrow_transport.deserializeArrowWorkerTable)(result);
124
+ const table = (0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result);
125
125
  return options?.ply?.shape === "mesh" ? { ...(0, import_schema_utils.convertTableToMesh)(table), loader: "ply", loaderData: table.loaderData } : table;
126
126
  }
127
127
  function deserializePLYWorkerBatch(result, options) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ply/ply-loader.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {PLYLoaderOptions} from './ply-loader-types';\n\n// PLY Loader\nimport {makeTableScanBatch, type LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport {convertColorArrayToFloat16, convertColorArrayToFloat32} from '@loaders.gl/core/schema';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/schema-utils/arrow-transport';\nimport type {PLYHeader, PLYMesh} from './lib/ply-types';\nimport {\n convertMeshToTable,\n convertTableToMesh,\n deduceMeshSchema\n} from '@loaders.gl/core/schema-utils';\nimport {parsePLY, parsePLYHeader, parsePLYToArrowTable} from './lib/parse-ply';\nimport {\n convertPLYElementTablesToMeshArrowTable,\n parsePLYToElementTables\n} from './lib/parse-ply-arrow';\nimport {parsePLYInBatches} from './lib/parse-ply-in-batches';\nimport {PLYLoader as PLYLoaderMetadata} from './ply-loader-types';\n\nconst {preload: _PLYLoaderPreload, ...PLYLoaderMetadataWithoutPreload} = PLYLoaderMetadata;\n\nfunction convertPLYMesh(mesh: PLYMesh, options?: PLYLoaderOptions): PLYMesh | MeshArrowTable {\n const table = convertMeshToTable(mesh, 'arrow-table');\n return convertPLYTable(table, options, mesh.loaderData);\n}\n\n/** Parse PLY data using a direct Arrow path when requested and supported. */\nfunction parsePLYData(\n data: ArrayBuffer | string,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n if (options?.ply?._useLegacyParser) {\n return convertPLYMesh(parsePLY(data, options?.ply), options);\n }\n\n const arrowTable = parsePLYToArrowTable(data, options?.ply);\n if (arrowTable) {\n return convertPLYTable(arrowTable, options, parsePLYHeader(data, options?.ply));\n }\n\n const elementTables = parsePLYToElementTables(data, options?.ply);\n return convertPLYTable(\n convertPLYElementTablesToMeshArrowTable(elementTables),\n options,\n elementTables.header\n );\n}\n\n/**\n * Loader for PLY - Polygon File Format\n */\nexport const PLYLoaderWithParser = {\n ...PLYLoaderMetadataWithoutPreload,\n parse: async (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseTextSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseInBatches: async function* (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ) {\n const plyOptions = {\n ...options?.ply,\n batchSize: options?.batchSize ?? options?.core?.batchSize\n };\n for await (const meshOrTable of parsePLYInBatches(arrayBuffer, plyOptions)) {\n const convertedData = isMeshArrowTable(meshOrTable)\n ? convertPLYTable(meshOrTable, options)\n : convertPLYMesh(meshOrTable, options);\n yield isMeshArrowTable(convertedData) ? makeTableScanBatch(convertedData) : convertedData;\n }\n },\n serializeWorkerResult: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializePLYWorkerResult,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerBatch: deserializePLYWorkerBatch\n} as const satisfies LoaderWithParser<\n PLYMesh | MeshArrowTable,\n PLYMesh | ArrowTableBatch,\n PLYLoaderOptions\n>;\n\n/** Return requested public PLY shape from the parser's Arrow table. */\nfunction convertPLYTable(\n table: MeshArrowTable & {\n /** Original source header retained by the streaming parser. */\n loaderData?: PLYHeader;\n },\n options?: PLYLoaderOptions,\n header?: PLYHeader\n): PLYMesh | MeshArrowTable {\n const loaderData = header || table.loaderData || {comments: [], elements: []};\n const result =\n options?.ply?.shape === 'arrow-table'\n ? {...table, loader: 'ply' as const, loaderData}\n : {\n ...(convertTableToMesh(table) as PLYMesh),\n loader: 'ply',\n loaderData\n };\n const colorFormat = options?.ply?.colorFormat || 'uint8norm';\n if (colorFormat === 'uint8norm') {\n return result as PLYMesh | MeshArrowTable;\n }\n\n const resultData = result as PLYMesh | MeshArrowTable;\n const formattedMesh = formatPLYMeshColors(\n (isMeshArrowTable(resultData) ? convertTableToMesh(resultData) : resultData) as PLYMesh,\n colorFormat\n );\n return options?.ply?.shape === 'arrow-table'\n ? {\n ...convertMeshToTable(formattedMesh, 'arrow-table'),\n loader: 'ply' as const,\n loaderData\n }\n : (formattedMesh as PLYMesh);\n}\n\n/** Apply the requested normalized color representation to a decoded PLY mesh. */\nfunction formatPLYMeshColors(\n mesh: PLYMesh,\n colorFormat: 'uint8norm' | 'float16' | 'float32'\n): PLYMesh {\n const colorAttribute = mesh.attributes.COLOR_0;\n if (!colorAttribute) {\n return mesh;\n }\n\n const sourceScale = colorAttribute.value instanceof Uint16Array ? 65535 : 255;\n const value =\n colorFormat === 'float16'\n ? convertColorArrayToFloat16(colorAttribute.value, sourceScale)\n : convertColorArrayToFloat32(colorAttribute.value, sourceScale);\n const attributes = {...mesh.attributes};\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n if (attribute.value === colorAttribute.value) {\n attributes[attributeName] = {\n ...attribute,\n value,\n normalized: false,\n ...(colorFormat === 'float16' ? {componentType: 'float16' as const} : {})\n };\n }\n }\n return {\n ...mesh,\n attributes,\n schema: deduceMeshSchema(attributes, mesh.schema.metadata)\n };\n}\n\n/** Return true if a parsed PLY batch is already a Mesh Arrow table. */\nfunction isMeshArrowTable(data: PLYMesh | MeshArrowTable): data is MeshArrowTable {\n return 'shape' in data && data.shape === 'arrow-table';\n}\n\n/** Hydrates worker columns and applies the requested PLY shape on the caller. */\nfunction deserializePLYWorkerResult(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n const table = deserializeArrowWorkerTable(result);\n return options?.ply?.shape === 'mesh'\n ? {...convertTableToMesh(table), loader: 'ply', loaderData: table.loaderData}\n : table;\n}\n\n/** Converts mesh batches only after the Arrow column buffers reach the caller. */\nfunction deserializePLYWorkerBatch(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | ArrowTableBatch {\n return deserializePLYWorkerResult(result, options) as PLYMesh | ArrowTableBatch;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {PLYLoaderOptions} from './ply-loader-types';\n\n// PLY Loader\nimport {makeTableScanBatch, type LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport {convertColorArrayToFloat16, convertColorArrayToFloat32} from '@loaders.gl/core/schema';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/arrow-worker-transport';\nimport type {PLYHeader, PLYMesh} from './lib/ply-types';\nimport {\n convertMeshToTable,\n convertTableToMesh,\n deduceMeshSchema\n} from '@loaders.gl/core/schema-utils';\nimport {parsePLY, parsePLYHeader, parsePLYToArrowTable} from './lib/parse-ply';\nimport {\n convertPLYElementTablesToMeshArrowTable,\n parsePLYToElementTables\n} from './lib/parse-ply-arrow';\nimport {parsePLYInBatches} from './lib/parse-ply-in-batches';\nimport {PLYLoader as PLYLoaderMetadata} from './ply-loader-types';\n\nconst {preload: _PLYLoaderPreload, ...PLYLoaderMetadataWithoutPreload} = PLYLoaderMetadata;\n\nfunction convertPLYMesh(mesh: PLYMesh, options?: PLYLoaderOptions): PLYMesh | MeshArrowTable {\n const table = convertMeshToTable(mesh, 'arrow-table');\n return convertPLYTable(table, options, mesh.loaderData);\n}\n\n/** Parse PLY data using a direct Arrow path when requested and supported. */\nfunction parsePLYData(\n data: ArrayBuffer | string,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n if (options?.ply?._useLegacyParser) {\n return convertPLYMesh(parsePLY(data, options?.ply), options);\n }\n\n const arrowTable = parsePLYToArrowTable(data, options?.ply);\n if (arrowTable) {\n return convertPLYTable(arrowTable, options, parsePLYHeader(data, options?.ply));\n }\n\n const elementTables = parsePLYToElementTables(data, options?.ply);\n return convertPLYTable(\n convertPLYElementTablesToMeshArrowTable(elementTables),\n options,\n elementTables.header\n );\n}\n\n/**\n * Loader for PLY - Polygon File Format\n */\nexport const PLYLoaderWithParser = {\n ...PLYLoaderMetadataWithoutPreload,\n parse: async (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseTextSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseInBatches: async function* (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ) {\n const plyOptions = {\n ...options?.ply,\n batchSize: options?.batchSize ?? options?.core?.batchSize\n };\n for await (const meshOrTable of parsePLYInBatches(arrayBuffer, plyOptions)) {\n const convertedData = isMeshArrowTable(meshOrTable)\n ? convertPLYTable(meshOrTable, options)\n : convertPLYMesh(meshOrTable, options);\n yield isMeshArrowTable(convertedData) ? makeTableScanBatch(convertedData) : convertedData;\n }\n },\n serializeWorkerResult: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializePLYWorkerResult,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerBatch: deserializePLYWorkerBatch\n} as const satisfies LoaderWithParser<\n PLYMesh | MeshArrowTable,\n PLYMesh | ArrowTableBatch,\n PLYLoaderOptions\n>;\n\n/** Return requested public PLY shape from the parser's Arrow table. */\nfunction convertPLYTable(\n table: MeshArrowTable & {\n /** Original source header retained by the streaming parser. */\n loaderData?: PLYHeader;\n },\n options?: PLYLoaderOptions,\n header?: PLYHeader\n): PLYMesh | MeshArrowTable {\n const loaderData = header || table.loaderData || {comments: [], elements: []};\n const result =\n options?.ply?.shape === 'arrow-table'\n ? {...table, loader: 'ply' as const, loaderData}\n : {\n ...(convertTableToMesh(table) as PLYMesh),\n loader: 'ply',\n loaderData\n };\n const colorFormat = options?.ply?.colorFormat || 'uint8norm';\n if (colorFormat === 'uint8norm') {\n return result as PLYMesh | MeshArrowTable;\n }\n\n const resultData = result as PLYMesh | MeshArrowTable;\n const formattedMesh = formatPLYMeshColors(\n (isMeshArrowTable(resultData) ? convertTableToMesh(resultData) : resultData) as PLYMesh,\n colorFormat\n );\n return options?.ply?.shape === 'arrow-table'\n ? {\n ...convertMeshToTable(formattedMesh, 'arrow-table'),\n loader: 'ply' as const,\n loaderData\n }\n : (formattedMesh as PLYMesh);\n}\n\n/** Apply the requested normalized color representation to a decoded PLY mesh. */\nfunction formatPLYMeshColors(\n mesh: PLYMesh,\n colorFormat: 'uint8norm' | 'float16' | 'float32'\n): PLYMesh {\n const colorAttribute = mesh.attributes.COLOR_0;\n if (!colorAttribute) {\n return mesh;\n }\n\n const sourceScale = colorAttribute.value instanceof Uint16Array ? 65535 : 255;\n const value =\n colorFormat === 'float16'\n ? convertColorArrayToFloat16(colorAttribute.value, sourceScale)\n : convertColorArrayToFloat32(colorAttribute.value, sourceScale);\n const attributes = {...mesh.attributes};\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n if (attribute.value === colorAttribute.value) {\n attributes[attributeName] = {\n ...attribute,\n value,\n normalized: false,\n ...(colorFormat === 'float16' ? {componentType: 'float16' as const} : {})\n };\n }\n }\n return {\n ...mesh,\n attributes,\n schema: deduceMeshSchema(attributes, mesh.schema.metadata)\n };\n}\n\n/** Return true if a parsed PLY batch is already a Mesh Arrow table. */\nfunction isMeshArrowTable(data: PLYMesh | MeshArrowTable): data is MeshArrowTable {\n return 'shape' in data && data.shape === 'arrow-table';\n}\n\n/** Hydrates worker columns and applies the requested PLY shape on the caller. */\nfunction deserializePLYWorkerResult(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n const table = deserializeArrowWorkerTable(result);\n return options?.ply?.shape === 'mesh'\n ? {...convertTableToMesh(table), loader: 'ply', loaderData: table.loaderData}\n : table;\n}\n\n/** Converts mesh batches only after the Arrow column buffers reach the caller. */\nfunction deserializePLYWorkerBatch(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | ArrowTableBatch {\n return deserializePLYWorkerResult(result, options) as PLYMesh | ArrowTableBatch;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,0BAAwD;AACxD,oBAAqE;AAErE,oCAGO;AAEP,0BAIO;AACP,uBAA6D;AAC7D,6BAGO;AACP,kCAAgC;AAChC,8BAA6C;AAE7C,IAAM,EAAC,SAAS,mBAAmB,GAAG,gCAA+B,IAAI,wBAAAA;AAEzE,SAAS,eAAe,MAAe,SAAsD;AAC3F,QAAM,YAAQ,wCAAmB,MAAM,aAAa;AACpD,SAAO,gBAAgB,OAAO,SAAS,KAAK,UAAU;AACxD;AAGA,SAAS,aACP,MACA,SAC0B;AAC1B,MAAI,SAAS,KAAK,kBAAkB;AAClC,WAAO,mBAAe,2BAAS,MAAM,SAAS,GAAG,GAAG,OAAO;AAAA,EAC7D;AAEA,QAAM,iBAAa,uCAAqB,MAAM,SAAS,GAAG;AAC1D,MAAI,YAAY;AACd,WAAO,gBAAgB,YAAY,aAAS,iCAAe,MAAM,SAAS,GAAG,CAAC;AAAA,EAChF;AAEA,QAAM,oBAAgB,gDAAwB,MAAM,SAAS,GAAG;AAChE,SAAO;AAAA,QACL,gEAAwC,aAAa;AAAA,IACrD;AAAA,IACA,cAAc;AAAA,EAChB;AACF;AAKO,IAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,OAAO,OAAO,aAAa,YAAY,aAAa,aAAa,OAAO;AAAA,EACxE,eAAe,CAAC,aAAa,YAAY,aAAa,aAAa,OAAO;AAAA,EAC1E,WAAW,CAAC,aAAa,YAAY,aAAa,aAAa,OAAO;AAAA,EACtE,gBAAgB,iBACd,aAGA,SACA;AACA,UAAM,aAAa;AAAA,MACjB,GAAG,SAAS;AAAA,MACZ,WAAW,SAAS,aAAa,SAAS,MAAM;AAAA,IAClD;AACA,qBAAiB,mBAAe,+CAAkB,aAAa,UAAU,GAAG;AAC1E,YAAM,gBAAgB,iBAAiB,WAAW,IAC9C,gBAAgB,aAAa,OAAO,IACpC,eAAe,aAAa,OAAO;AACvC,YAAM,iBAAiB,aAAa,QAAI,wCAAmB,aAAa,IAAI;AAAA,IAC9E;AAAA,EACF;AAAA,EACA,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,wBAAwB;AAC1B;AAOA,SAAS,gBACP,OAIA,SACA,QAC0B;AAC1B,QAAM,aAAa,UAAU,MAAM,cAAc,EAAC,UAAU,CAAC,GAAG,UAAU,CAAC,EAAC;AAC5E,QAAM,SACJ,SAAS,KAAK,UAAU,gBACpB,EAAC,GAAG,OAAO,QAAQ,OAAgB,WAAU,IAC7C;AAAA,IACE,OAAI,wCAAmB,KAAK;AAAA,IAC5B,QAAQ;AAAA,IACR;AAAA,EACF;AACN,QAAM,cAAc,SAAS,KAAK,eAAe;AACjD,MAAI,gBAAgB,aAAa;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,aAAa;AACnB,QAAM,gBAAgB;AAAA,IACnB,iBAAiB,UAAU,QAAI,wCAAmB,UAAU,IAAI;AAAA,IACjE;AAAA,EACF;AACA,SAAO,SAAS,KAAK,UAAU,gBAC3B;AAAA,IACE,OAAG,wCAAmB,eAAe,aAAa;AAAA,IAClD,QAAQ;AAAA,IACR;AAAA,EACF,IACC;AACP;AAGA,SAAS,oBACP,MACA,aACS;AACT,QAAM,iBAAiB,KAAK,WAAW;AACvC,MAAI,CAAC,gBAAgB;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,eAAe,iBAAiB,cAAc,QAAQ;AAC1E,QAAM,QACJ,gBAAgB,gBACZ,0CAA2B,eAAe,OAAO,WAAW,QAC5D,0CAA2B,eAAe,OAAO,WAAW;AAClE,QAAM,aAAa,EAAC,GAAG,KAAK,WAAU;AACtC,aAAW,CAAC,eAAe,SAAS,KAAK,OAAO,QAAQ,UAAU,GAAG;AACnE,QAAI,UAAU,UAAU,eAAe,OAAO;AAC5C,iBAAW,aAAa,IAAI;AAAA,QAC1B,GAAG;AAAA,QACH;AAAA,QACA,YAAY;AAAA,QACZ,GAAI,gBAAgB,YAAY,EAAC,eAAe,UAAkB,IAAI,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,YAAQ,sCAAiB,YAAY,KAAK,OAAO,QAAQ;AAAA,EAC3D;AACF;AAGA,SAAS,iBAAiB,MAAwD;AAChF,SAAO,WAAW,QAAQ,KAAK,UAAU;AAC3C;AAGA,SAAS,2BACP,QACA,SAC0B;AAC1B,QAAM,YAAQ,2DAA4B,MAAM;AAChD,SAAO,SAAS,KAAK,UAAU,SAC3B,EAAC,OAAG,wCAAmB,KAAK,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAU,IAC1E;AACN;AAGA,SAAS,0BACP,QACA,SAC2B;AAC3B,SAAO,2BAA2B,QAAQ,OAAO;AACnD;",
6
6
  "names": ["PLYLoaderMetadata"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import type { PLYLoaderOptions } from "./ply-loader-types.js";
2
2
  import type { MeshArrowTable, ArrowTableBatch } from '@loaders.gl/core/schema';
3
- import { serializeArrowWorkerTable } from '@loaders.gl/core/schema-utils/arrow-transport';
3
+ import { serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
4
4
  import type { PLYMesh } from "./lib/ply-types.js";
5
5
  /**
6
6
  * Loader for PLY - Polygon File Format
@@ -1 +1 @@
1
- {"version":3,"file":"ply-loader.d.ts","sourceRoot":"","sources":["../../src/ply/ply-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAC,8BAA2B;AAKzD,OAAO,KAAK,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAEL,yBAAyB,EAC1B,MAAM,+CAA+C,CAAC;AACvD,OAAO,KAAK,EAAY,OAAO,EAAC,2BAAwB;AA2CxD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;2CAOxB,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBlD,CAAC;AA6EF,iFAAiF;AACjF,iBAAS,0BAA0B,CACjC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,GAAG,cAAc,CAK1B;AAED,kFAAkF;AAClF,iBAAS,yBAAyB,CAChC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,GAAG,eAAe,CAE3B"}
1
+ {"version":3,"file":"ply-loader.d.ts","sourceRoot":"","sources":["../../src/ply/ply-loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,gBAAgB,EAAC,8BAA2B;AAKzD,OAAO,KAAK,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAEL,yBAAyB,EAC1B,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAY,OAAO,EAAC,2BAAwB;AA2CxD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;2CAOxB,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBlD,CAAC;AA6EF,iFAAiF;AACjF,iBAAS,0BAA0B,CACjC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,GAAG,cAAc,CAK1B;AAED,kFAAkF;AAClF,iBAAS,yBAAyB,CAChC,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,GAAG,eAAe,CAE3B"}
@@ -4,7 +4,7 @@
4
4
  // PLY Loader
5
5
  import { makeTableScanBatch } from '@loaders.gl/core/loader-utils';
6
6
  import { convertColorArrayToFloat16, convertColorArrayToFloat32 } from '@loaders.gl/core/schema';
7
- import { deserializeArrowWorkerTable, serializeArrowWorkerTable } from '@loaders.gl/core/schema-utils/arrow-transport';
7
+ import { deserializeArrowWorkerTable, serializeArrowWorkerTable } from '@loaders.gl/core/arrow-worker-transport';
8
8
  import { convertMeshToTable, convertTableToMesh, deduceMeshSchema } from '@loaders.gl/core/schema-utils';
9
9
  import { parsePLY, parsePLYHeader, parsePLYToArrowTable } from "./lib/parse-ply.js";
10
10
  import { convertPLYElementTablesToMeshArrowTable, parsePLYToElementTables } from "./lib/parse-ply-arrow.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ply-loader.js","sourceRoot":"","sources":["../../src/ply/ply-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ply-loader.js","sourceRoot":"","sources":["../../src/ply/ply-loader.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ __export(ply_writer_exports, {
25
25
  module.exports = __toCommonJS(ply_writer_exports);
26
26
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
27
27
  var import_ply_format = require("./ply-format.cjs");
28
- var VERSION = true ? "5.0.0-beta.4" : "latest";
28
+ var VERSION = true ? "5.0.0-beta.6" : "latest";
29
29
  var PLYWriter = {
30
30
  ...import_ply_format.PLYFormat,
31
31
  dataType: null,
@@ -5,7 +5,7 @@ import { convertMeshToTable, convertTableToMesh } from '@loaders.gl/core/schema-
5
5
  import { PLYFormat } from "./ply-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.4" !== 'undefined' ? "5.0.0-beta.4" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.6" !== 'undefined' ? "5.0.0-beta.6" : 'latest';
9
9
  /**
10
10
  * Writer for the PLY geometry format.
11
11
  */
@@ -37,8 +37,8 @@ module.exports = __toCommonJS(ply_loader_types_exports);
37
37
 
38
38
  // src/ply/ply-loader-types.ts
39
39
  var import_ply_format = require("./ply-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";
40
+ var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
41
+ var VERSION = true ? "5.0.0-beta.6" : "latest";
42
42
  async function preload() {
43
43
  const { PLYLoaderWithParser } = await import("@loaders.gl/pointclouds/ply-loader");
44
44
  return PLYLoaderWithParser;
@@ -52,7 +52,7 @@ var PLYLoader = {
52
52
  worker: true,
53
53
  /** Enables the stateful input/output batch protocol on the built-in worker. */
54
54
  workerInBatches: true,
55
- serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
55
+ serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
56
56
  options: {
57
57
  ply: { shape: "arrow-table", colorFormat: "uint8norm" }
58
58
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/ply-loader-types.ts", "../src/ply/ply-loader-types.ts"],
4
- "sourcesContent": ["export * from './ply/ply-loader-types.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// PLY Loader\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport type {PLYMesh} from './lib/ply-types';\nimport type {ParsePLYOptions} from './lib/parse-ply';\nimport {PLYFormat} from './ply-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 PLYLoaderOptions = LoaderOptions & {\n ply?: ParsePLYOptions & {\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 /** Treat PLY data as a point cloud by reading only the leading vertex element. */\n pointCloud?: boolean;\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 PLY loader implementation.\n */\nasync function preload() {\n const {PLYLoaderWithParser} = await import('@loaders.gl/pointclouds/ply-loader');\n return PLYLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for PLY - Polygon File Format (aka Stanford Triangle Format)'\n * links: ['http://paulbourke.net/dataformats/ply/',\n * 'https://en.wikipedia.org/wiki/PLY_(file_format)']\n */\nexport const PLYLoader = {\n dataType: null as unknown as PLYMesh | MeshArrowTable,\n batchType: null as unknown as PLYMesh | ArrowTableBatch,\n\n ...PLYFormat,\n // shapes: ['mesh', 'gltf', 'columnar-table'],\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 ply: {shape: 'arrow-table', colorFormat: 'uint8norm'}\n },\n preload\n} as const satisfies Loader<PLYMesh | MeshArrowTable, PLYMesh | ArrowTableBatch, LoaderOptions>;\n\n/** @deprecated Use PLYLoader. */\nexport const PLYWorkerLoader = PLYLoader;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACSA,wBAAwB;AACxB,6BAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AAkBnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,oCAAoC;AAC/E,SAAO;AACT;AAOO,IAAM,YAAY;AAAA,EACvB,UAAU;AAAA,EACV,WAAW;AAAA,EAEX,GAAG;AAAA;AAAA,EAEH,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": ["export * from './ply/ply-loader-types.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// PLY Loader\nimport type {Loader, LoaderOptions} from '@loaders.gl/core/loader-utils';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport type {PLYMesh} from './lib/ply-types';\nimport type {ParsePLYOptions} from './lib/parse-ply';\nimport {PLYFormat} from './ply-format';\nimport {serializeArrowWorkerTable} from '@loaders.gl/core/arrow-worker-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 PLYLoaderOptions = LoaderOptions & {\n ply?: ParsePLYOptions & {\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 /** Treat PLY data as a point cloud by reading only the leading vertex element. */\n pointCloud?: boolean;\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 PLY loader implementation.\n */\nasync function preload() {\n const {PLYLoaderWithParser} = await import('@loaders.gl/pointclouds/ply-loader');\n return PLYLoaderWithParser;\n}\n\n/**\n * Metadata-only worker loader for PLY - Polygon File Format (aka Stanford Triangle Format)'\n * links: ['http://paulbourke.net/dataformats/ply/',\n * 'https://en.wikipedia.org/wiki/PLY_(file_format)']\n */\nexport const PLYLoader = {\n dataType: null as unknown as PLYMesh | MeshArrowTable,\n batchType: null as unknown as PLYMesh | ArrowTableBatch,\n\n ...PLYFormat,\n // shapes: ['mesh', 'gltf', 'columnar-table'],\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 ply: {shape: 'arrow-table', colorFormat: 'uint8norm'}\n },\n preload\n} as const satisfies Loader<PLYMesh | MeshArrowTable, PLYMesh | ArrowTableBatch, LoaderOptions>;\n\n/** @deprecated Use PLYLoader. */\nexport const PLYWorkerLoader = PLYLoader;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACSA,wBAAwB;AACxB,oCAAwC;AAIxC,IAAM,UAAU,OAAqC,iBAAc;AAkBnE,eAAe,UAAU;AACvB,QAAM,EAAC,oBAAmB,IAAI,MAAM,OAAO,oCAAoC;AAC/E,SAAO;AACT;AAOO,IAAM,YAAY;AAAA,EACvB,UAAU;AAAA,EACV,WAAW;AAAA,EAEX,GAAG;AAAA;AAAA,EAEH,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
  }
@@ -27,7 +27,7 @@ module.exports = __toCommonJS(ply_loader_exports);
27
27
  // src/ply/ply-loader.ts
28
28
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
29
  var import_schema = require("@loaders.gl/core/schema");
30
- var import_arrow_transport = require("@loaders.gl/core/schema-utils/arrow-transport");
30
+ var import_arrow_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
31
31
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
32
32
  var import_parse_ply = require("./lib/parse-ply.cjs");
33
33
  var import_parse_ply_arrow = require("./lib/parse-ply-arrow.cjs");
@@ -68,9 +68,9 @@ var PLYLoaderWithParser = {
68
68
  yield isMeshArrowTable(convertedData) ? (0, import_loader_utils.makeTableScanBatch)(convertedData) : convertedData;
69
69
  }
70
70
  },
71
- serializeWorkerResult: import_arrow_transport.serializeArrowWorkerTable,
71
+ serializeWorkerResult: import_arrow_worker_transport.serializeArrowWorkerTable,
72
72
  deserializeWorkerResult: deserializePLYWorkerResult,
73
- serializeWorkerBatch: import_arrow_transport.serializeArrowWorkerTable,
73
+ serializeWorkerBatch: import_arrow_worker_transport.serializeArrowWorkerTable,
74
74
  deserializeWorkerBatch: deserializePLYWorkerBatch
75
75
  };
76
76
  function convertPLYTable(table, options, header) {
@@ -123,7 +123,7 @@ function isMeshArrowTable(data) {
123
123
  return "shape" in data && data.shape === "arrow-table";
124
124
  }
125
125
  function deserializePLYWorkerResult(result, options) {
126
- const table = (0, import_arrow_transport.deserializeArrowWorkerTable)(result);
126
+ const table = (0, import_arrow_worker_transport.deserializeArrowWorkerTable)(result);
127
127
  return options?.ply?.shape === "mesh" ? { ...(0, import_schema_utils.convertTableToMesh)(table), loader: "ply", loaderData: table.loaderData } : table;
128
128
  }
129
129
  function deserializePLYWorkerBatch(result, options) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/ply-loader.ts", "../src/ply/ply-loader.ts"],
4
- "sourcesContent": ["export * from './ply/ply-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {PLYLoaderOptions} from './ply-loader-types';\n\n// PLY Loader\nimport {makeTableScanBatch, type LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport {convertColorArrayToFloat16, convertColorArrayToFloat32} from '@loaders.gl/core/schema';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/schema-utils/arrow-transport';\nimport type {PLYHeader, PLYMesh} from './lib/ply-types';\nimport {\n convertMeshToTable,\n convertTableToMesh,\n deduceMeshSchema\n} from '@loaders.gl/core/schema-utils';\nimport {parsePLY, parsePLYHeader, parsePLYToArrowTable} from './lib/parse-ply';\nimport {\n convertPLYElementTablesToMeshArrowTable,\n parsePLYToElementTables\n} from './lib/parse-ply-arrow';\nimport {parsePLYInBatches} from './lib/parse-ply-in-batches';\nimport {PLYLoader as PLYLoaderMetadata} from './ply-loader-types';\n\nconst {preload: _PLYLoaderPreload, ...PLYLoaderMetadataWithoutPreload} = PLYLoaderMetadata;\n\nfunction convertPLYMesh(mesh: PLYMesh, options?: PLYLoaderOptions): PLYMesh | MeshArrowTable {\n const table = convertMeshToTable(mesh, 'arrow-table');\n return convertPLYTable(table, options, mesh.loaderData);\n}\n\n/** Parse PLY data using a direct Arrow path when requested and supported. */\nfunction parsePLYData(\n data: ArrayBuffer | string,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n if (options?.ply?._useLegacyParser) {\n return convertPLYMesh(parsePLY(data, options?.ply), options);\n }\n\n const arrowTable = parsePLYToArrowTable(data, options?.ply);\n if (arrowTable) {\n return convertPLYTable(arrowTable, options, parsePLYHeader(data, options?.ply));\n }\n\n const elementTables = parsePLYToElementTables(data, options?.ply);\n return convertPLYTable(\n convertPLYElementTablesToMeshArrowTable(elementTables),\n options,\n elementTables.header\n );\n}\n\n/**\n * Loader for PLY - Polygon File Format\n */\nexport const PLYLoaderWithParser = {\n ...PLYLoaderMetadataWithoutPreload,\n parse: async (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseTextSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseInBatches: async function* (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ) {\n const plyOptions = {\n ...options?.ply,\n batchSize: options?.batchSize ?? options?.core?.batchSize\n };\n for await (const meshOrTable of parsePLYInBatches(arrayBuffer, plyOptions)) {\n const convertedData = isMeshArrowTable(meshOrTable)\n ? convertPLYTable(meshOrTable, options)\n : convertPLYMesh(meshOrTable, options);\n yield isMeshArrowTable(convertedData) ? makeTableScanBatch(convertedData) : convertedData;\n }\n },\n serializeWorkerResult: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializePLYWorkerResult,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerBatch: deserializePLYWorkerBatch\n} as const satisfies LoaderWithParser<\n PLYMesh | MeshArrowTable,\n PLYMesh | ArrowTableBatch,\n PLYLoaderOptions\n>;\n\n/** Return requested public PLY shape from the parser's Arrow table. */\nfunction convertPLYTable(\n table: MeshArrowTable & {\n /** Original source header retained by the streaming parser. */\n loaderData?: PLYHeader;\n },\n options?: PLYLoaderOptions,\n header?: PLYHeader\n): PLYMesh | MeshArrowTable {\n const loaderData = header || table.loaderData || {comments: [], elements: []};\n const result =\n options?.ply?.shape === 'arrow-table'\n ? {...table, loader: 'ply' as const, loaderData}\n : {\n ...(convertTableToMesh(table) as PLYMesh),\n loader: 'ply',\n loaderData\n };\n const colorFormat = options?.ply?.colorFormat || 'uint8norm';\n if (colorFormat === 'uint8norm') {\n return result as PLYMesh | MeshArrowTable;\n }\n\n const resultData = result as PLYMesh | MeshArrowTable;\n const formattedMesh = formatPLYMeshColors(\n (isMeshArrowTable(resultData) ? convertTableToMesh(resultData) : resultData) as PLYMesh,\n colorFormat\n );\n return options?.ply?.shape === 'arrow-table'\n ? {\n ...convertMeshToTable(formattedMesh, 'arrow-table'),\n loader: 'ply' as const,\n loaderData\n }\n : (formattedMesh as PLYMesh);\n}\n\n/** Apply the requested normalized color representation to a decoded PLY mesh. */\nfunction formatPLYMeshColors(\n mesh: PLYMesh,\n colorFormat: 'uint8norm' | 'float16' | 'float32'\n): PLYMesh {\n const colorAttribute = mesh.attributes.COLOR_0;\n if (!colorAttribute) {\n return mesh;\n }\n\n const sourceScale = colorAttribute.value instanceof Uint16Array ? 65535 : 255;\n const value =\n colorFormat === 'float16'\n ? convertColorArrayToFloat16(colorAttribute.value, sourceScale)\n : convertColorArrayToFloat32(colorAttribute.value, sourceScale);\n const attributes = {...mesh.attributes};\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n if (attribute.value === colorAttribute.value) {\n attributes[attributeName] = {\n ...attribute,\n value,\n normalized: false,\n ...(colorFormat === 'float16' ? {componentType: 'float16' as const} : {})\n };\n }\n }\n return {\n ...mesh,\n attributes,\n schema: deduceMeshSchema(attributes, mesh.schema.metadata)\n };\n}\n\n/** Return true if a parsed PLY batch is already a Mesh Arrow table. */\nfunction isMeshArrowTable(data: PLYMesh | MeshArrowTable): data is MeshArrowTable {\n return 'shape' in data && data.shape === 'arrow-table';\n}\n\n/** Hydrates worker columns and applies the requested PLY shape on the caller. */\nfunction deserializePLYWorkerResult(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n const table = deserializeArrowWorkerTable(result);\n return options?.ply?.shape === 'mesh'\n ? {...convertTableToMesh(table), loader: 'ply', loaderData: table.loaderData}\n : table;\n}\n\n/** Converts mesh batches only after the Arrow column buffers reach the caller. */\nfunction deserializePLYWorkerBatch(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | ArrowTableBatch {\n return deserializePLYWorkerResult(result, options) as PLYMesh | ArrowTableBatch;\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACOA,0BAAwD;AACxD,oBAAqE;AAErE,6BAGO;AAEP,0BAIO;AACP,uBAA6D;AAC7D,6BAGO;AACP,kCAAgC;AAChC,8BAA6C;AAE7C,IAAM,EAAC,SAAS,mBAAmB,GAAG,gCAA+B,IAAI,wBAAAA;AAEzE,SAAS,eAAe,MAAe,SAAsD;AAC3F,QAAM,YAAQ,wCAAmB,MAAM,aAAa;AACpD,SAAO,gBAAgB,OAAO,SAAS,KAAK,UAAU;AACxD;AAGA,SAAS,aACP,MACA,SAC0B;AAC1B,MAAI,SAAS,KAAK,kBAAkB;AAClC,WAAO,mBAAe,2BAAS,MAAM,SAAS,GAAG,GAAG,OAAO;AAAA,EAC7D;AAEA,QAAM,iBAAa,uCAAqB,MAAM,SAAS,GAAG;AAC1D,MAAI,YAAY;AACd,WAAO,gBAAgB,YAAY,aAAS,iCAAe,MAAM,SAAS,GAAG,CAAC;AAAA,EAChF;AAEA,QAAM,oBAAgB,gDAAwB,MAAM,SAAS,GAAG;AAChE,SAAO;AAAA,QACL,gEAAwC,aAAa;AAAA,IACrD;AAAA,IACA,cAAc;AAAA,EAChB;AACF;AAKO,IAAM,sBAAsB;AAAA,EACjC,GAAG;AAAA,EACH,OAAO,OAAO,aAAa,YAAY,aAAa,aAAa,OAAO;AAAA,EACxE,eAAe,CAAC,aAAa,YAAY,aAAa,aAAa,OAAO;AAAA,EAC1E,WAAW,CAAC,aAAa,YAAY,aAAa,aAAa,OAAO;AAAA,EACtE,gBAAgB,iBACd,aAGA,SACA;AACA,UAAM,aAAa;AAAA,MACjB,GAAG,SAAS;AAAA,MACZ,WAAW,SAAS,aAAa,SAAS,MAAM;AAAA,IAClD;AACA,qBAAiB,mBAAe,+CAAkB,aAAa,UAAU,GAAG;AAC1E,YAAM,gBAAgB,iBAAiB,WAAW,IAC9C,gBAAgB,aAAa,OAAO,IACpC,eAAe,aAAa,OAAO;AACvC,YAAM,iBAAiB,aAAa,QAAI,wCAAmB,aAAa,IAAI;AAAA,IAC9E;AAAA,EACF;AAAA,EACA,uBAAuB;AAAA,EACvB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,wBAAwB;AAC1B;AAOA,SAAS,gBACP,OAIA,SACA,QAC0B;AAC1B,QAAM,aAAa,UAAU,MAAM,cAAc,EAAC,UAAU,CAAC,GAAG,UAAU,CAAC,EAAC;AAC5E,QAAM,SACJ,SAAS,KAAK,UAAU,gBACpB,EAAC,GAAG,OAAO,QAAQ,OAAgB,WAAU,IAC7C;AAAA,IACE,OAAI,wCAAmB,KAAK;AAAA,IAC5B,QAAQ;AAAA,IACR;AAAA,EACF;AACN,QAAM,cAAc,SAAS,KAAK,eAAe;AACjD,MAAI,gBAAgB,aAAa;AAC/B,WAAO;AAAA,EACT;AAEA,QAAM,aAAa;AACnB,QAAM,gBAAgB;AAAA,IACnB,iBAAiB,UAAU,QAAI,wCAAmB,UAAU,IAAI;AAAA,IACjE;AAAA,EACF;AACA,SAAO,SAAS,KAAK,UAAU,gBAC3B;AAAA,IACE,OAAG,wCAAmB,eAAe,aAAa;AAAA,IAClD,QAAQ;AAAA,IACR;AAAA,EACF,IACC;AACP;AAGA,SAAS,oBACP,MACA,aACS;AACT,QAAM,iBAAiB,KAAK,WAAW;AACvC,MAAI,CAAC,gBAAgB;AACnB,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,eAAe,iBAAiB,cAAc,QAAQ;AAC1E,QAAM,QACJ,gBAAgB,gBACZ,0CAA2B,eAAe,OAAO,WAAW,QAC5D,0CAA2B,eAAe,OAAO,WAAW;AAClE,QAAM,aAAa,EAAC,GAAG,KAAK,WAAU;AACtC,aAAW,CAAC,eAAe,SAAS,KAAK,OAAO,QAAQ,UAAU,GAAG;AACnE,QAAI,UAAU,UAAU,eAAe,OAAO;AAC5C,iBAAW,aAAa,IAAI;AAAA,QAC1B,GAAG;AAAA,QACH;AAAA,QACA,YAAY;AAAA,QACZ,GAAI,gBAAgB,YAAY,EAAC,eAAe,UAAkB,IAAI,CAAC;AAAA,MACzE;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,YAAQ,sCAAiB,YAAY,KAAK,OAAO,QAAQ;AAAA,EAC3D;AACF;AAGA,SAAS,iBAAiB,MAAwD;AAChF,SAAO,WAAW,QAAQ,KAAK,UAAU;AAC3C;AAGA,SAAS,2BACP,QACA,SAC0B;AAC1B,QAAM,YAAQ,oDAA4B,MAAM;AAChD,SAAO,SAAS,KAAK,UAAU,SAC3B,EAAC,OAAG,wCAAmB,KAAK,GAAG,QAAQ,OAAO,YAAY,MAAM,WAAU,IAC1E;AACN;AAGA,SAAS,0BACP,QACA,SAC2B;AAC3B,SAAO,2BAA2B,QAAQ,OAAO;AACnD;",
4
+ "sourcesContent": ["export * from './ply/ply-loader.js';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {PLYLoaderOptions} from './ply-loader-types';\n\n// PLY Loader\nimport {makeTableScanBatch, type LoaderWithParser} from '@loaders.gl/core/loader-utils';\nimport {convertColorArrayToFloat16, convertColorArrayToFloat32} from '@loaders.gl/core/schema';\nimport type {MeshArrowTable, ArrowTableBatch} from '@loaders.gl/core/schema';\nimport {\n deserializeArrowWorkerTable,\n serializeArrowWorkerTable\n} from '@loaders.gl/core/arrow-worker-transport';\nimport type {PLYHeader, PLYMesh} from './lib/ply-types';\nimport {\n convertMeshToTable,\n convertTableToMesh,\n deduceMeshSchema\n} from '@loaders.gl/core/schema-utils';\nimport {parsePLY, parsePLYHeader, parsePLYToArrowTable} from './lib/parse-ply';\nimport {\n convertPLYElementTablesToMeshArrowTable,\n parsePLYToElementTables\n} from './lib/parse-ply-arrow';\nimport {parsePLYInBatches} from './lib/parse-ply-in-batches';\nimport {PLYLoader as PLYLoaderMetadata} from './ply-loader-types';\n\nconst {preload: _PLYLoaderPreload, ...PLYLoaderMetadataWithoutPreload} = PLYLoaderMetadata;\n\nfunction convertPLYMesh(mesh: PLYMesh, options?: PLYLoaderOptions): PLYMesh | MeshArrowTable {\n const table = convertMeshToTable(mesh, 'arrow-table');\n return convertPLYTable(table, options, mesh.loaderData);\n}\n\n/** Parse PLY data using a direct Arrow path when requested and supported. */\nfunction parsePLYData(\n data: ArrayBuffer | string,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n if (options?.ply?._useLegacyParser) {\n return convertPLYMesh(parsePLY(data, options?.ply), options);\n }\n\n const arrowTable = parsePLYToArrowTable(data, options?.ply);\n if (arrowTable) {\n return convertPLYTable(arrowTable, options, parsePLYHeader(data, options?.ply));\n }\n\n const elementTables = parsePLYToElementTables(data, options?.ply);\n return convertPLYTable(\n convertPLYElementTablesToMeshArrowTable(elementTables),\n options,\n elementTables.header\n );\n}\n\n/**\n * Loader for PLY - Polygon File Format\n */\nexport const PLYLoaderWithParser = {\n ...PLYLoaderMetadataWithoutPreload,\n parse: async (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseTextSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseSync: (arrayBuffer, options) => parsePLYData(arrayBuffer, options),\n parseInBatches: async function* (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ) {\n const plyOptions = {\n ...options?.ply,\n batchSize: options?.batchSize ?? options?.core?.batchSize\n };\n for await (const meshOrTable of parsePLYInBatches(arrayBuffer, plyOptions)) {\n const convertedData = isMeshArrowTable(meshOrTable)\n ? convertPLYTable(meshOrTable, options)\n : convertPLYMesh(meshOrTable, options);\n yield isMeshArrowTable(convertedData) ? makeTableScanBatch(convertedData) : convertedData;\n }\n },\n serializeWorkerResult: serializeArrowWorkerTable,\n deserializeWorkerResult: deserializePLYWorkerResult,\n serializeWorkerBatch: serializeArrowWorkerTable,\n deserializeWorkerBatch: deserializePLYWorkerBatch\n} as const satisfies LoaderWithParser<\n PLYMesh | MeshArrowTable,\n PLYMesh | ArrowTableBatch,\n PLYLoaderOptions\n>;\n\n/** Return requested public PLY shape from the parser's Arrow table. */\nfunction convertPLYTable(\n table: MeshArrowTable & {\n /** Original source header retained by the streaming parser. */\n loaderData?: PLYHeader;\n },\n options?: PLYLoaderOptions,\n header?: PLYHeader\n): PLYMesh | MeshArrowTable {\n const loaderData = header || table.loaderData || {comments: [], elements: []};\n const result =\n options?.ply?.shape === 'arrow-table'\n ? {...table, loader: 'ply' as const, loaderData}\n : {\n ...(convertTableToMesh(table) as PLYMesh),\n loader: 'ply',\n loaderData\n };\n const colorFormat = options?.ply?.colorFormat || 'uint8norm';\n if (colorFormat === 'uint8norm') {\n return result as PLYMesh | MeshArrowTable;\n }\n\n const resultData = result as PLYMesh | MeshArrowTable;\n const formattedMesh = formatPLYMeshColors(\n (isMeshArrowTable(resultData) ? convertTableToMesh(resultData) : resultData) as PLYMesh,\n colorFormat\n );\n return options?.ply?.shape === 'arrow-table'\n ? {\n ...convertMeshToTable(formattedMesh, 'arrow-table'),\n loader: 'ply' as const,\n loaderData\n }\n : (formattedMesh as PLYMesh);\n}\n\n/** Apply the requested normalized color representation to a decoded PLY mesh. */\nfunction formatPLYMeshColors(\n mesh: PLYMesh,\n colorFormat: 'uint8norm' | 'float16' | 'float32'\n): PLYMesh {\n const colorAttribute = mesh.attributes.COLOR_0;\n if (!colorAttribute) {\n return mesh;\n }\n\n const sourceScale = colorAttribute.value instanceof Uint16Array ? 65535 : 255;\n const value =\n colorFormat === 'float16'\n ? convertColorArrayToFloat16(colorAttribute.value, sourceScale)\n : convertColorArrayToFloat32(colorAttribute.value, sourceScale);\n const attributes = {...mesh.attributes};\n for (const [attributeName, attribute] of Object.entries(attributes)) {\n if (attribute.value === colorAttribute.value) {\n attributes[attributeName] = {\n ...attribute,\n value,\n normalized: false,\n ...(colorFormat === 'float16' ? {componentType: 'float16' as const} : {})\n };\n }\n }\n return {\n ...mesh,\n attributes,\n schema: deduceMeshSchema(attributes, mesh.schema.metadata)\n };\n}\n\n/** Return true if a parsed PLY batch is already a Mesh Arrow table. */\nfunction isMeshArrowTable(data: PLYMesh | MeshArrowTable): data is MeshArrowTable {\n return 'shape' in data && data.shape === 'arrow-table';\n}\n\n/** Hydrates worker columns and applies the requested PLY shape on the caller. */\nfunction deserializePLYWorkerResult(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | MeshArrowTable {\n const table = deserializeArrowWorkerTable(result);\n return options?.ply?.shape === 'mesh'\n ? {...convertTableToMesh(table), loader: 'ply', loaderData: table.loaderData}\n : table;\n}\n\n/** Converts mesh batches only after the Arrow column buffers reach the caller. */\nfunction deserializePLYWorkerBatch(\n result: unknown,\n options?: PLYLoaderOptions\n): PLYMesh | ArrowTableBatch {\n return deserializePLYWorkerResult(result, options) as PLYMesh | ArrowTableBatch;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["PLYLoaderMetadata"]
7
7
  }