@loaders.gl/pointclouds 5.0.0-beta.6 → 5.0.0-beta.8

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 (39) hide show
  1. package/dist/dist.dev.js +837 -71
  2. package/dist/dist.min.js +20 -20
  3. package/dist/las/las-loader-shared.cjs +1 -1
  4. package/dist/las/las-loader-shared.js +1 -1
  5. package/dist/las/las-writer.cjs +1 -1
  6. package/dist/las/las-writer.js +1 -1
  7. package/dist/las/lib/laz-perf/parse-las.cjs +8 -7
  8. package/dist/las/lib/laz-perf/parse-las.cjs.map +3 -3
  9. package/dist/las/lib/laz-perf/parse-las.js +8 -7
  10. package/dist/las/lib/laz-perf/parse-las.js.map +1 -1
  11. package/dist/las/lib/laz-rs-wasm/parse-las.cjs +8 -7
  12. package/dist/las/lib/laz-rs-wasm/parse-las.cjs.map +3 -3
  13. package/dist/las/lib/laz-rs-wasm/parse-las.js +8 -7
  14. package/dist/las/lib/laz-rs-wasm/parse-las.js.map +1 -1
  15. package/dist/las-worker.js +1 -1
  16. package/dist/las-writer.cjs +1 -1
  17. package/dist/pcd/pcd-loader-types.cjs +1 -1
  18. package/dist/pcd/pcd-loader-types.js +1 -1
  19. package/dist/pcd/pcd-writer.cjs +1 -1
  20. package/dist/pcd/pcd-writer.js +1 -1
  21. package/dist/pcd-loader-types.cjs +1 -1
  22. package/dist/pcd-worker.js +37 -1
  23. package/dist/pcd-writer.cjs +1 -1
  24. package/dist/ply/lib/parse-ply-in-batches.cjs +7 -6
  25. package/dist/ply/lib/parse-ply-in-batches.cjs.map +3 -3
  26. package/dist/ply/lib/parse-ply-in-batches.d.ts.map +1 -1
  27. package/dist/ply/lib/parse-ply-in-batches.js +2 -2
  28. package/dist/ply/lib/parse-ply-in-batches.js.map +1 -1
  29. package/dist/ply/ply-loader-types.cjs +1 -1
  30. package/dist/ply/ply-loader-types.js +1 -1
  31. package/dist/ply/ply-writer.cjs +1 -1
  32. package/dist/ply/ply-writer.js +1 -1
  33. package/dist/ply-loader-types.cjs +1 -1
  34. package/dist/ply-worker.js +790 -24
  35. package/dist/ply-writer.cjs +1 -1
  36. package/package.json +3 -3
  37. package/src/las/lib/laz-perf/parse-las.ts +7 -8
  38. package/src/las/lib/laz-rs-wasm/parse-las.ts +7 -8
  39. package/src/ply/lib/parse-ply-in-batches.ts +2 -2
@@ -28,7 +28,7 @@ __export(las_loader_shared_exports, {
28
28
  module.exports = __toCommonJS(las_loader_shared_exports);
29
29
  var import_schema = require("@loaders.gl/core/schema");
30
30
  var import_las_format = require("./las-format.cjs");
31
- var VERSION = true ? "5.0.0-beta.6" : "latest";
31
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
32
32
  var DEFAULT_LAS_SHAPE = "arrow-table";
33
33
  function getLASShape(options) {
34
34
  return options?.las?.shape || DEFAULT_LAS_SHAPE;
@@ -5,7 +5,7 @@ import { convertColorArrayToFloat16, convertColorArrayToFloat32 } from '@loaders
5
5
  import { LASFormat } from "./las-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.6" !== 'undefined' ? "5.0.0-beta.6" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
9
9
  /** Default output shape for LAS and LAZ loaders. */
10
10
  export const DEFAULT_LAS_SHAPE = 'arrow-table';
11
11
  /** Resolve the LAS output shape, including the Arrow-primary default. */
@@ -26,7 +26,7 @@ module.exports = __toCommonJS(las_writer_exports);
26
26
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
27
27
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
28
28
  var import_las_format = require("./las-format.cjs");
29
- var VERSION = true ? "5.0.0-beta.6" : "latest";
29
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
30
30
  var LAS_HEADER_LENGTH = 227;
31
31
  var LAS_1_4_HEADER_LENGTH = 375;
32
32
  var LAS_1_5_HEADER_LENGTH = 393;
@@ -6,7 +6,7 @@ import { convertMeshToTable, convertTableToMesh } from '@loaders.gl/core/schema-
6
6
  import { LASFormat } from "./las-format.js";
7
7
  // __VERSION__ is injected by babel-plugin-version-inline
8
8
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
9
- const VERSION = typeof "5.0.0-beta.6" !== 'undefined' ? "5.0.0-beta.6" : 'latest';
9
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
10
10
  const LAS_HEADER_LENGTH = 227;
11
11
  const LAS_1_4_HEADER_LENGTH = 375;
12
12
  const LAS_1_5_HEADER_LENGTH = 393;
@@ -25,8 +25,9 @@ __export(parse_las_exports, {
25
25
  parseLASInBatches: () => parseLASInBatches
26
26
  });
27
27
  module.exports = __toCommonJS(parse_las_exports);
28
- var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
28
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
+ var import_schema_utils = require("@loaders.gl/core/schema-utils");
30
+ var import_loader_utils2 = require("@loaders.gl/core/loader-utils");
30
31
  var import_get_las_schema = require("../get-las-schema.cjs");
31
32
  var import_laslaz_decoder = require("./laslaz-decoder.cjs");
32
33
  var DEFAULT_BATCH_SIZE = 1e3 * 100;
@@ -34,7 +35,7 @@ function parseLAS(arrayBuffer, options) {
34
35
  return parseLASMesh(arrayBuffer, options);
35
36
  }
36
37
  async function* parseLASInBatches(arrayBufferIterator, options = {}) {
37
- const arrayBuffer = await (0, import_loader_utils.concatenateArrayBuffersAsync)(arrayBufferIterator);
38
+ const arrayBuffer = await (0, import_loader_utils2.concatenateArrayBuffersAsync)(arrayBufferIterator);
38
39
  const batchSize = getBatchSize(options);
39
40
  for (const { decoder, header } of parseLASChunkedIterator(arrayBuffer, batchSize)) {
40
41
  yield parseLASMeshBatch(decoder, header, options);
@@ -89,7 +90,7 @@ function parseLASMesh(arrayBuffer, options = {}) {
89
90
  scale: [scaleX, scaleY, scaleZ],
90
91
  offset: [offsetX, offsetY, offsetZ]
91
92
  } = lasHeader;
92
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
93
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
93
94
  for (let i = 0; i < batchSize; i++) {
94
95
  const { position, color, intensity, classification } = decoder.getPoint(i);
95
96
  positions[pointIndex * 3] = position[0] * scaleX + offsetX;
@@ -180,7 +181,7 @@ function populateLASAttributes(decoder, lasHeader, options, target) {
180
181
  scale: [scaleX, scaleY, scaleZ],
181
182
  offset: [offsetX, offsetY, offsetZ]
182
183
  } = lasHeader;
183
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
184
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
184
185
  for (let i = 0; i < batchSize; i++) {
185
186
  const { position, color, intensity, classification } = decoder.getPoint(i);
186
187
  const pointIndex = target.pointOffset + i;
@@ -236,9 +237,9 @@ function getBatchSize(options) {
236
237
  const batchSize = options.batchSize ?? options.core?.batchSize;
237
238
  return typeof batchSize === "number" ? batchSize : DEFAULT_BATCH_SIZE;
238
239
  }
239
- function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
240
+ function detectTwoByteColors(decoder = {}, batchSize, options) {
240
241
  let twoByteColor = false;
241
- switch (colorDepth) {
242
+ switch (options.las?.colorDepth) {
242
243
  case 8:
243
244
  twoByteColor = false;
244
245
  break;
@@ -256,7 +257,7 @@ function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
256
257
  }
257
258
  break;
258
259
  default:
259
- console.warn("las: illegal value for options.las.colorDepth");
260
+ (0, import_loader_utils.getLoaderLog)(options).warn("las: illegal value for options.las.colorDepth")();
260
261
  break;
261
262
  }
262
263
  return twoByteColor;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/las/lib/laz-perf/parse-las.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// ported and es6-ified from https://github.com/verma/plasio/\n// import type {ArrowTable, ColumnarTable} from '@loaders.gl/core/schema';\nimport type {LASLoaderOptions} from '../../las-loader-types';\nimport type {LASMesh, LASHeader} from '../las-types';\nimport type {MeshAttributes} from '@loaders.gl/core/schema';\nimport {getMeshBoundingBox /* , convertMeshToTable */} from '@loaders.gl/core/schema-utils';\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/core/loader-utils';\nimport {getLASSchema} from '../get-las-schema';\nimport {LASFile} from './laslaz-decoder';\n\ntype LASChunk = {\n count: number;\n buffer: ArrayBuffer;\n hasMoreData: boolean;\n};\n\ntype LASDecoder = {\n pointsCount: number;\n getPoint(index: number): {\n position: [number, number, number];\n color?: [number, number, number];\n intensity: number;\n classification: number;\n };\n};\n\ntype LASDecodedChunk = {\n decoder: LASDecoder;\n header: LASHeader;\n};\n\nconst DEFAULT_BATCH_SIZE = 1000 * 100;\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASMesh\n */\nexport function parseLAS(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASMesh {\n return parseLASMesh(arrayBuffer, options);\n // This code breaks pointcloud example on the website\n // const mesh = parseLASMesh(arrayBuffer, options);\n // return convertMeshToTable(mesh, options?.las?.shape || 'mesh') as LASMesh | ArrowTable | ColumnarTable;\n}\n\n/**\n * Parse LAS/LAZ data in decoded point batches.\n * @param arrayBufferIterator Iterator yielding LAS/LAZ binary chunks\n * @param options LAS loader options\n * @returns Async iterable of mesh batches\n */\nexport async function* parseLASInBatches(\n arrayBufferIterator:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options: LASLoaderOptions = {}\n): AsyncIterable<LASMesh> {\n const arrayBuffer = await concatenateArrayBuffersAsync(arrayBufferIterator);\n const batchSize = getBatchSize(options);\n\n for (const {decoder, header} of parseLASChunkedIterator(arrayBuffer, batchSize)) {\n yield parseLASMeshBatch(decoder, header, options);\n }\n}\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nfunction parseLASMesh(arrayBuffer: ArrayBuffer, options: LASLoaderOptions = {}): LASMesh {\n let pointIndex: number = 0;\n\n let positions: Float32Array | Float64Array;\n let colors: Uint8Array | null;\n let intensities: Uint16Array;\n let classifications: Uint8Array;\n let originalHeader: any;\n\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: {} as LASHeader,\n // shape: 'mesh',\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: 0,\n boundingBox: [\n [0, 0, 0],\n [0, 0, 0]\n ]\n },\n attributes: {},\n topology: 'point-list',\n mode: 0 // GL.POINTS\n };\n\n /* eslint-disable max-statements */\n // @ts-ignore Possibly undefined\n parseLASChunked(arrayBuffer, (decoder: any = {}, lasHeader: LASHeader) => {\n if (!originalHeader) {\n originalHeader = lasHeader;\n const total = lasHeader.totalToRead;\n\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n positions = new PositionsType(total * 3);\n // laslaz-decoder.js `pointFormatReaders`\n colors = lasHeader.hasColor ? new Uint8Array(total * 4) : null;\n intensities = new Uint16Array(total);\n classifications = new Uint8Array(total);\n\n lasMesh.loaderData = lasHeader;\n lasMesh.attributes = {\n POSITION: {value: positions, size: 3},\n // non-gltf attributes, use non-capitalized names for now\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n lasMesh.attributes.COLOR_0 = {value: colors, size: 4};\n }\n }\n\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n\n positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && colors) {\n if (twoByteColor) {\n colors[pointIndex * 4] = color[0] / 256;\n colors[pointIndex * 4 + 1] = color[1] / 256;\n colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n colors[pointIndex * 4] = color[0];\n colors[pointIndex * 4 + 1] = color[1];\n colors[pointIndex * 4 + 2] = color[2];\n }\n colors[pointIndex * 4 + 3] = 255;\n }\n\n intensities[pointIndex] = intensity;\n classifications[pointIndex] = classification;\n\n pointIndex++;\n }\n\n const meshBatch = {\n ...lasMesh,\n header: {\n vertexCount: lasHeader.totalRead\n },\n progress: lasHeader.totalRead / lasHeader.totalToRead\n };\n\n options?.onProgress?.({\n ...meshBatch,\n phase: 'decode',\n completed: lasHeader.totalRead,\n total: lasHeader.totalToRead,\n unit: 'points'\n });\n });\n /* eslint-enable max-statements */\n\n lasMesh.header = {\n vertexCount: originalHeader.totalToRead,\n boundingBox: getMeshBoundingBox(lasMesh?.attributes || {}) ?? undefined\n };\n\n if (lasMesh) {\n lasMesh.schema = getLASSchema(lasMesh.loaderData, lasMesh.attributes);\n }\n return lasMesh;\n}\n\n/**\n * Convert one decoded LAS/LAZ chunk into a mesh.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header with current progress\n * @param options LAS loader options\n * @returns Mesh containing one decoded point batch\n */\nfunction parseLASMeshBatch(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions = {}\n): LASMesh {\n const batchSize = decoder.pointsCount;\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n const positions = new PositionsType(batchSize * 3);\n const colors = lasHeader.hasColor ? new Uint8Array(batchSize * 4) : null;\n const intensities = new Uint16Array(batchSize);\n const classifications = new Uint8Array(batchSize);\n\n populateLASAttributes(decoder, lasHeader, options, {\n positions,\n colors,\n intensities,\n classifications,\n pointOffset: 0\n });\n\n const attributes: MeshAttributes = {\n POSITION: {value: positions, size: 3},\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n attributes.COLOR_0 = {value: colors, size: 4};\n }\n\n const batchHeader = {...lasHeader};\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: batchHeader,\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: batchSize,\n boundingBox: getMeshBoundingBox(attributes)\n },\n attributes,\n topology: 'point-list',\n mode: 0,\n progress: lasHeader.totalRead / lasHeader.totalToRead\n } as LASMesh & {progress: number};\n\n lasMesh.schema = getLASSchema(batchHeader, lasMesh.attributes);\n return lasMesh;\n}\n\n/**\n * Fill typed LAS attribute arrays from a decoded chunk.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header\n * @param options LAS loader options\n * @param target Target attribute arrays and write offset\n */\nfunction populateLASAttributes(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions,\n target: {\n positions: Float32Array | Float64Array;\n colors: Uint8Array | null;\n intensities: Uint16Array;\n classifications: Uint8Array;\n pointOffset: number;\n }\n): void {\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n const pointIndex = target.pointOffset + i;\n\n target.positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n target.positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n target.positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && target.colors) {\n if (twoByteColor) {\n target.colors[pointIndex * 4] = color[0] / 256;\n target.colors[pointIndex * 4 + 1] = color[1] / 256;\n target.colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n target.colors[pointIndex * 4] = color[0];\n target.colors[pointIndex * 4 + 1] = color[1];\n target.colors[pointIndex * 4 + 2] = color[2];\n }\n target.colors[pointIndex * 4 + 3] = 255;\n }\n\n target.intensities[pointIndex] = intensity;\n target.classifications[pointIndex] = classification;\n }\n}\n\n/**\n * parse laz data\n * @param rawData\n * @param onParseData\n * @return parsed point cloud\n */\n/* eslint-enable max-statements */\nexport function parseLASChunked(\n rawData: ArrayBuffer,\n onParseData: any = {},\n batchSize: number = DEFAULT_BATCH_SIZE\n): void {\n for (const {decoder, header} of parseLASChunkedIterator(rawData, batchSize)) {\n onParseData(decoder, header);\n }\n}\n\n/**\n * Decode LAS/LAZ data into point chunks.\n * @param rawData Complete LAS/LAZ file data\n * @param batchSize Number of returned points per chunk\n * @returns Iterable of decoded point chunks\n */\nfunction* parseLASChunkedIterator(\n rawData: ArrayBuffer,\n batchSize: number = DEFAULT_BATCH_SIZE\n): Iterable<LASDecodedChunk> {\n const dataHandler = new LASFile(rawData);\n\n try {\n // open data\n dataHandler.open();\n\n const header = dataHandler.getHeader();\n // start loading\n const Unpacker = dataHandler.getUnpacker();\n\n header.totalToRead = header.pointsCount;\n let totalRead = 0;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n const chunk: LASChunk = dataHandler.readData(batchSize);\n\n totalRead += chunk.count;\n\n header.totalRead = totalRead;\n\n const unpacker = new Unpacker(chunk.buffer, chunk.count, header);\n\n // surface unpacker and progress via call back\n // use unpacker.pointsCount and unpacker.getPoint(i) to handle data in app\n yield {decoder: unpacker as unknown as LASDecoder, header};\n\n if (!chunk.hasMoreData || totalRead >= header.totalToRead) {\n break;\n }\n }\n } catch (e) {\n throw e;\n } finally {\n dataHandler.close();\n }\n}\n\n/**\n * Get the requested LAS point batch size.\n * @param options LAS loader options\n * @returns Point count per decoded batch\n */\nfunction getBatchSize(options: LASLoaderOptions): number {\n const batchSize = options.batchSize ?? options.core?.batchSize;\n return typeof batchSize === 'number' ? batchSize : DEFAULT_BATCH_SIZE;\n}\n\n/**\n * @param decoder\n * @param batchSize\n * @param colorDepth\n * @returns boolean\n */\nfunction detectTwoByteColors(\n decoder: any = {},\n batchSize: number,\n colorDepth?: number | string\n): boolean {\n let twoByteColor = false;\n switch (colorDepth) {\n case 8:\n twoByteColor = false;\n break;\n case 16:\n twoByteColor = true;\n break;\n case 'auto':\n if (decoder.getPoint(0).color) {\n for (let i = 0; i < batchSize; i++) {\n const {color} = decoder.getPoint(i);\n // eslint-disable-next-line max-depth\n if (color[0] > 255 || color[1] > 255 || color[2] > 255) {\n twoByteColor = true;\n }\n }\n }\n break;\n default:\n // eslint-disable-next-line\n console.warn('las: illegal value for options.las.colorDepth');\n break;\n }\n return twoByteColor;\n}\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// ported and es6-ified from https://github.com/verma/plasio/\nimport {getLoaderLog} from '@loaders.gl/core/loader-utils';\nimport type {LASLoaderOptions} from '../../las-loader-types';\nimport type {LASMesh, LASHeader} from '../las-types';\nimport type {MeshAttributes} from '@loaders.gl/core/schema';\nimport {getMeshBoundingBox} from '@loaders.gl/core/schema-utils';\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/core/loader-utils';\nimport {getLASSchema} from '../get-las-schema';\nimport {LASFile} from './laslaz-decoder';\n\ntype LASChunk = {\n count: number;\n buffer: ArrayBuffer;\n hasMoreData: boolean;\n};\n\ntype LASDecoder = {\n pointsCount: number;\n getPoint(index: number): {\n position: [number, number, number];\n color?: [number, number, number];\n intensity: number;\n classification: number;\n };\n};\n\ntype LASDecodedChunk = {\n decoder: LASDecoder;\n header: LASHeader;\n};\n\nconst DEFAULT_BATCH_SIZE = 1000 * 100;\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASMesh\n */\nexport function parseLAS(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASMesh {\n return parseLASMesh(arrayBuffer, options);\n // This code breaks pointcloud example on the website\n // const mesh = parseLASMesh(arrayBuffer, options);\n // return convertMeshToTable(mesh, options?.las?.shape || 'mesh') as LASMesh | ArrowTable | ColumnarTable;\n}\n\n/**\n * Parse LAS/LAZ data in decoded point batches.\n * @param arrayBufferIterator Iterator yielding LAS/LAZ binary chunks\n * @param options LAS loader options\n * @returns Async iterable of mesh batches\n */\nexport async function* parseLASInBatches(\n arrayBufferIterator:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options: LASLoaderOptions = {}\n): AsyncIterable<LASMesh> {\n const arrayBuffer = await concatenateArrayBuffersAsync(arrayBufferIterator);\n const batchSize = getBatchSize(options);\n\n for (const {decoder, header} of parseLASChunkedIterator(arrayBuffer, batchSize)) {\n yield parseLASMeshBatch(decoder, header, options);\n }\n}\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nfunction parseLASMesh(arrayBuffer: ArrayBuffer, options: LASLoaderOptions = {}): LASMesh {\n let pointIndex: number = 0;\n\n let positions: Float32Array | Float64Array;\n let colors: Uint8Array | null;\n let intensities: Uint16Array;\n let classifications: Uint8Array;\n let originalHeader: any;\n\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: {} as LASHeader,\n // shape: 'mesh',\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: 0,\n boundingBox: [\n [0, 0, 0],\n [0, 0, 0]\n ]\n },\n attributes: {},\n topology: 'point-list',\n mode: 0 // GL.POINTS\n };\n\n /* eslint-disable max-statements */\n // @ts-ignore Possibly undefined\n parseLASChunked(arrayBuffer, (decoder: any = {}, lasHeader: LASHeader) => {\n if (!originalHeader) {\n originalHeader = lasHeader;\n const total = lasHeader.totalToRead;\n\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n positions = new PositionsType(total * 3);\n // laslaz-decoder.js `pointFormatReaders`\n colors = lasHeader.hasColor ? new Uint8Array(total * 4) : null;\n intensities = new Uint16Array(total);\n classifications = new Uint8Array(total);\n\n lasMesh.loaderData = lasHeader;\n lasMesh.attributes = {\n POSITION: {value: positions, size: 3},\n // non-gltf attributes, use non-capitalized names for now\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n lasMesh.attributes.COLOR_0 = {value: colors, size: 4};\n }\n }\n\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n\n positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && colors) {\n if (twoByteColor) {\n colors[pointIndex * 4] = color[0] / 256;\n colors[pointIndex * 4 + 1] = color[1] / 256;\n colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n colors[pointIndex * 4] = color[0];\n colors[pointIndex * 4 + 1] = color[1];\n colors[pointIndex * 4 + 2] = color[2];\n }\n colors[pointIndex * 4 + 3] = 255;\n }\n\n intensities[pointIndex] = intensity;\n classifications[pointIndex] = classification;\n\n pointIndex++;\n }\n\n const meshBatch = {\n ...lasMesh,\n header: {\n vertexCount: lasHeader.totalRead\n },\n progress: lasHeader.totalRead / lasHeader.totalToRead\n };\n\n options?.onProgress?.({\n ...meshBatch,\n phase: 'decode',\n completed: lasHeader.totalRead,\n total: lasHeader.totalToRead,\n unit: 'points'\n });\n });\n /* eslint-enable max-statements */\n\n lasMesh.header = {\n vertexCount: originalHeader.totalToRead,\n boundingBox: getMeshBoundingBox(lasMesh?.attributes || {}) ?? undefined\n };\n\n if (lasMesh) {\n lasMesh.schema = getLASSchema(lasMesh.loaderData, lasMesh.attributes);\n }\n return lasMesh;\n}\n\n/**\n * Convert one decoded LAS/LAZ chunk into a mesh.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header with current progress\n * @param options LAS loader options\n * @returns Mesh containing one decoded point batch\n */\nfunction parseLASMeshBatch(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions = {}\n): LASMesh {\n const batchSize = decoder.pointsCount;\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n const positions = new PositionsType(batchSize * 3);\n const colors = lasHeader.hasColor ? new Uint8Array(batchSize * 4) : null;\n const intensities = new Uint16Array(batchSize);\n const classifications = new Uint8Array(batchSize);\n\n populateLASAttributes(decoder, lasHeader, options, {\n positions,\n colors,\n intensities,\n classifications,\n pointOffset: 0\n });\n\n const attributes: MeshAttributes = {\n POSITION: {value: positions, size: 3},\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n attributes.COLOR_0 = {value: colors, size: 4};\n }\n\n const batchHeader = {...lasHeader};\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: batchHeader,\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: batchSize,\n boundingBox: getMeshBoundingBox(attributes)\n },\n attributes,\n topology: 'point-list',\n mode: 0,\n progress: lasHeader.totalRead / lasHeader.totalToRead\n } as LASMesh & {progress: number};\n\n lasMesh.schema = getLASSchema(batchHeader, lasMesh.attributes);\n return lasMesh;\n}\n\n/**\n * Fill typed LAS attribute arrays from a decoded chunk.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header\n * @param options LAS loader options\n * @param target Target attribute arrays and write offset\n */\nfunction populateLASAttributes(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions,\n target: {\n positions: Float32Array | Float64Array;\n colors: Uint8Array | null;\n intensities: Uint16Array;\n classifications: Uint8Array;\n pointOffset: number;\n }\n): void {\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n const pointIndex = target.pointOffset + i;\n\n target.positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n target.positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n target.positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && target.colors) {\n if (twoByteColor) {\n target.colors[pointIndex * 4] = color[0] / 256;\n target.colors[pointIndex * 4 + 1] = color[1] / 256;\n target.colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n target.colors[pointIndex * 4] = color[0];\n target.colors[pointIndex * 4 + 1] = color[1];\n target.colors[pointIndex * 4 + 2] = color[2];\n }\n target.colors[pointIndex * 4 + 3] = 255;\n }\n\n target.intensities[pointIndex] = intensity;\n target.classifications[pointIndex] = classification;\n }\n}\n\n/**\n * parse laz data\n * @param rawData\n * @param onParseData\n * @return parsed point cloud\n */\n/* eslint-enable max-statements */\nexport function parseLASChunked(\n rawData: ArrayBuffer,\n onParseData: any = {},\n batchSize: number = DEFAULT_BATCH_SIZE\n): void {\n for (const {decoder, header} of parseLASChunkedIterator(rawData, batchSize)) {\n onParseData(decoder, header);\n }\n}\n\n/**\n * Decode LAS/LAZ data into point chunks.\n * @param rawData Complete LAS/LAZ file data\n * @param batchSize Number of returned points per chunk\n * @returns Iterable of decoded point chunks\n */\nfunction* parseLASChunkedIterator(\n rawData: ArrayBuffer,\n batchSize: number = DEFAULT_BATCH_SIZE\n): Iterable<LASDecodedChunk> {\n const dataHandler = new LASFile(rawData);\n\n try {\n // open data\n dataHandler.open();\n\n const header = dataHandler.getHeader();\n // start loading\n const Unpacker = dataHandler.getUnpacker();\n\n header.totalToRead = header.pointsCount;\n let totalRead = 0;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n const chunk: LASChunk = dataHandler.readData(batchSize);\n\n totalRead += chunk.count;\n\n header.totalRead = totalRead;\n\n const unpacker = new Unpacker(chunk.buffer, chunk.count, header);\n\n // surface unpacker and progress via call back\n // use unpacker.pointsCount and unpacker.getPoint(i) to handle data in app\n yield {decoder: unpacker as unknown as LASDecoder, header};\n\n if (!chunk.hasMoreData || totalRead >= header.totalToRead) {\n break;\n }\n }\n } catch (e) {\n throw e;\n } finally {\n dataHandler.close();\n }\n}\n\n/**\n * Get the requested LAS point batch size.\n * @param options LAS loader options\n * @returns Point count per decoded batch\n */\nfunction getBatchSize(options: LASLoaderOptions): number {\n const batchSize = options.batchSize ?? options.core?.batchSize;\n return typeof batchSize === 'number' ? batchSize : DEFAULT_BATCH_SIZE;\n}\n\n/**\n * @param decoder\n * @param batchSize\n * @param colorDepth\n * @returns boolean\n */\nfunction detectTwoByteColors(\n decoder: any = {},\n batchSize: number,\n options: LASLoaderOptions\n): boolean {\n let twoByteColor = false;\n switch (options.las?.colorDepth) {\n case 8:\n twoByteColor = false;\n break;\n case 16:\n twoByteColor = true;\n break;\n case 'auto':\n if (decoder.getPoint(0).color) {\n for (let i = 0; i < batchSize; i++) {\n const {color} = decoder.getPoint(i);\n // eslint-disable-next-line max-depth\n if (color[0] > 255 || color[1] > 255 || color[2] > 255) {\n twoByteColor = true;\n }\n }\n }\n break;\n default:\n getLoaderLog(options).warn('las: illegal value for options.las.colorDepth')();\n break;\n }\n return twoByteColor;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_loader_utils"]
7
7
  }
@@ -1,7 +1,9 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { getMeshBoundingBox /* , convertMeshToTable */ } from '@loaders.gl/core/schema-utils';
4
+ // ported and es6-ified from https://github.com/verma/plasio/
5
+ import { getLoaderLog } from '@loaders.gl/core/loader-utils';
6
+ import { getMeshBoundingBox } from '@loaders.gl/core/schema-utils';
5
7
  import { concatenateArrayBuffersAsync } from '@loaders.gl/core/loader-utils';
6
8
  import { getLASSchema } from "../get-las-schema.js";
7
9
  import { LASFile } from "./laslaz-decoder.js";
@@ -85,7 +87,7 @@ function parseLASMesh(arrayBuffer, options = {}) {
85
87
  }
86
88
  const batchSize = decoder.pointsCount;
87
89
  const { scale: [scaleX, scaleY, scaleZ], offset: [offsetX, offsetY, offsetZ] } = lasHeader;
88
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
90
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
89
91
  for (let i = 0; i < batchSize; i++) {
90
92
  const { position, color, intensity, classification } = decoder.getPoint(i);
91
93
  positions[pointIndex * 3] = position[0] * scaleX + offsetX;
@@ -189,7 +191,7 @@ function parseLASMeshBatch(decoder, lasHeader, options = {}) {
189
191
  function populateLASAttributes(decoder, lasHeader, options, target) {
190
192
  const batchSize = decoder.pointsCount;
191
193
  const { scale: [scaleX, scaleY, scaleZ], offset: [offsetX, offsetY, offsetZ] } = lasHeader;
192
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
194
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
193
195
  for (let i = 0; i < batchSize; i++) {
194
196
  const { position, color, intensity, classification } = decoder.getPoint(i);
195
197
  const pointIndex = target.pointOffset + i;
@@ -277,9 +279,9 @@ function getBatchSize(options) {
277
279
  * @param colorDepth
278
280
  * @returns boolean
279
281
  */
280
- function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
282
+ function detectTwoByteColors(decoder = {}, batchSize, options) {
281
283
  let twoByteColor = false;
282
- switch (colorDepth) {
284
+ switch (options.las?.colorDepth) {
283
285
  case 8:
284
286
  twoByteColor = false;
285
287
  break;
@@ -298,8 +300,7 @@ function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
298
300
  }
299
301
  break;
300
302
  default:
301
- // eslint-disable-next-line
302
- console.warn('las: illegal value for options.las.colorDepth');
303
+ getLoaderLog(options).warn('las: illegal value for options.las.colorDepth')();
303
304
  break;
304
305
  }
305
306
  return twoByteColor;
@@ -1 +1 @@
1
- {"version":3,"file":"parse-las.js","sourceRoot":"","sources":["../../../../src/las/lib/laz-perf/parse-las.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-las.js","sourceRoot":"","sources":["../../../../src/las/lib/laz-perf/parse-las.ts"],"names":[],"mappings":"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"}
@@ -25,8 +25,9 @@ __export(parse_las_exports, {
25
25
  parseLASInBatches: () => parseLASInBatches
26
26
  });
27
27
  module.exports = __toCommonJS(parse_las_exports);
28
- var import_schema_utils = require("@loaders.gl/core/schema-utils");
29
28
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
+ var import_schema_utils = require("@loaders.gl/core/schema-utils");
30
+ var import_loader_utils2 = require("@loaders.gl/core/loader-utils");
30
31
  var import_get_las_schema = require("../get-las-schema.cjs");
31
32
  var import_laslaz_decoder = require("./laslaz-decoder.cjs");
32
33
  var DEFAULT_BATCH_SIZE = 1e3 * 100;
@@ -34,7 +35,7 @@ function parseLAS(arrayBuffer, options) {
34
35
  return parseLASMesh(arrayBuffer, options);
35
36
  }
36
37
  async function* parseLASInBatches(arrayBufferIterator, options = {}) {
37
- const arrayBuffer = await (0, import_loader_utils.concatenateArrayBuffersAsync)(arrayBufferIterator);
38
+ const arrayBuffer = await (0, import_loader_utils2.concatenateArrayBuffersAsync)(arrayBufferIterator);
38
39
  const batchSize = getBatchSize(options);
39
40
  for (const { decoder, header } of parseLASChunkedIterator(arrayBuffer, batchSize)) {
40
41
  yield parseLASMeshBatch(decoder, header, options);
@@ -89,7 +90,7 @@ function parseLASMesh(arrayBuffer, options = {}) {
89
90
  scale: [scaleX, scaleY, scaleZ],
90
91
  offset: [offsetX, offsetY, offsetZ]
91
92
  } = lasHeader;
92
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
93
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
93
94
  for (let i = 0; i < batchSize; i++) {
94
95
  const { position, color, intensity, classification } = decoder.getPoint(i);
95
96
  positions[pointIndex * 3] = position[0] * scaleX + offsetX;
@@ -180,7 +181,7 @@ function populateLASAttributes(decoder, lasHeader, options, target) {
180
181
  scale: [scaleX, scaleY, scaleZ],
181
182
  offset: [offsetX, offsetY, offsetZ]
182
183
  } = lasHeader;
183
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
184
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
184
185
  for (let i = 0; i < batchSize; i++) {
185
186
  const { position, color, intensity, classification } = decoder.getPoint(i);
186
187
  const pointIndex = target.pointOffset + i;
@@ -236,9 +237,9 @@ function getBatchSize(options) {
236
237
  const batchSize = options.batchSize ?? options.core?.batchSize;
237
238
  return typeof batchSize === "number" ? batchSize : DEFAULT_BATCH_SIZE;
238
239
  }
239
- function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
240
+ function detectTwoByteColors(decoder = {}, batchSize, options) {
240
241
  let twoByteColor = false;
241
- switch (colorDepth) {
242
+ switch (options.las?.colorDepth) {
242
243
  case 8:
243
244
  twoByteColor = false;
244
245
  break;
@@ -256,7 +257,7 @@ function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
256
257
  }
257
258
  break;
258
259
  default:
259
- console.warn("las: illegal value for options.las.colorDepth");
260
+ (0, import_loader_utils.getLoaderLog)(options).warn("las: illegal value for options.las.colorDepth")();
260
261
  break;
261
262
  }
262
263
  return twoByteColor;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/las/lib/laz-rs-wasm/parse-las.ts"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// ported and es6-ified from https://github.com/verma/plasio/\n// import type {ArrowTable, ColumnarTable} from '@loaders.gl/core/schema';\nimport type {LASLoaderOptions} from '../../las-loader-types';\nimport type {LASMesh, LASHeader} from '../las-types';\nimport type {MeshAttributes} from '@loaders.gl/core/schema';\nimport {getMeshBoundingBox /* , convertMeshToTable */} from '@loaders.gl/core/schema-utils';\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/core/loader-utils';\nimport {getLASSchema} from '../get-las-schema';\nimport {LASFile} from './laslaz-decoder';\n\ntype LASChunk = {\n count: number;\n buffer: ArrayBuffer;\n hasMoreData: boolean;\n};\n\ntype LASDecoder = {\n pointsCount: number;\n getPoint(index: number): {\n position: [number, number, number];\n color?: [number, number, number];\n intensity: number;\n classification: number;\n };\n};\n\ntype LASDecodedChunk = {\n decoder: LASDecoder;\n header: LASHeader;\n};\n\nconst DEFAULT_BATCH_SIZE = 1000 * 100;\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASMesh\n */\nexport function parseLAS(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASMesh {\n return parseLASMesh(arrayBuffer, options);\n // This code breaks pointcloud example on the website\n // const mesh = parseLASMesh(arrayBuffer, options);\n // return convertMeshToTable(mesh, options?.las?.shape || 'mesh') as LASMesh | ArrowTable | ColumnarTable;\n}\n\n/**\n * Parse LAS/LAZ data in decoded point batches.\n * @param arrayBufferIterator Iterator yielding LAS/LAZ binary chunks\n * @param options LAS loader options\n * @returns Async iterable of mesh batches\n */\nexport async function* parseLASInBatches(\n arrayBufferIterator:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options: LASLoaderOptions = {}\n): AsyncIterable<LASMesh> {\n const arrayBuffer = await concatenateArrayBuffersAsync(arrayBufferIterator);\n const batchSize = getBatchSize(options);\n\n for (const {decoder, header} of parseLASChunkedIterator(arrayBuffer, batchSize)) {\n yield parseLASMeshBatch(decoder, header, options);\n }\n}\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nfunction parseLASMesh(arrayBuffer: ArrayBuffer, options: LASLoaderOptions = {}): LASMesh {\n let pointIndex: number = 0;\n\n let positions: Float32Array | Float64Array;\n let colors: Uint8Array | null;\n let intensities: Uint16Array;\n let classifications: Uint8Array;\n let originalHeader: any;\n\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: {} as LASHeader,\n // shape: 'mesh',\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: 0,\n boundingBox: [\n [0, 0, 0],\n [0, 0, 0]\n ]\n },\n attributes: {},\n topology: 'point-list',\n mode: 0 // GL.POINTS\n };\n\n /* eslint-disable max-statements */\n // @ts-ignore Possibly undefined\n parseLASChunked(arrayBuffer, (decoder: any = {}, lasHeader: LASHeader) => {\n if (!originalHeader) {\n originalHeader = lasHeader;\n const total = lasHeader.totalToRead;\n\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n positions = new PositionsType(total * 3);\n // laslaz-decoder.js `pointFormatReaders`\n colors = lasHeader.hasColor ? new Uint8Array(total * 4) : null;\n intensities = new Uint16Array(total);\n classifications = new Uint8Array(total);\n\n lasMesh.loaderData = lasHeader;\n lasMesh.attributes = {\n POSITION: {value: positions, size: 3},\n // non-gltf attributes, use non-capitalized names for now\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n lasMesh.attributes.COLOR_0 = {value: colors, size: 4};\n }\n }\n\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n\n positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && colors) {\n if (twoByteColor) {\n colors[pointIndex * 4] = color[0] / 256;\n colors[pointIndex * 4 + 1] = color[1] / 256;\n colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n colors[pointIndex * 4] = color[0];\n colors[pointIndex * 4 + 1] = color[1];\n colors[pointIndex * 4 + 2] = color[2];\n }\n colors[pointIndex * 4 + 3] = 255;\n }\n\n intensities[pointIndex] = intensity;\n classifications[pointIndex] = classification;\n\n pointIndex++;\n }\n\n const meshBatch = {\n ...lasMesh,\n header: {\n vertexCount: lasHeader.totalRead\n },\n progress: lasHeader.totalRead / lasHeader.totalToRead\n };\n\n options?.onProgress?.({\n ...meshBatch,\n phase: 'decode',\n completed: lasHeader.totalRead,\n total: lasHeader.totalToRead,\n unit: 'points'\n });\n });\n /* eslint-enable max-statements */\n\n lasMesh.header = {\n vertexCount: originalHeader.totalToRead,\n boundingBox: getMeshBoundingBox(lasMesh?.attributes || {}) ?? undefined\n };\n\n if (lasMesh) {\n lasMesh.schema = getLASSchema(lasMesh.loaderData, lasMesh.attributes);\n }\n return lasMesh;\n}\n\n/**\n * Convert one decoded LAS/LAZ chunk into a mesh.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header with current progress\n * @param options LAS loader options\n * @returns Mesh containing one decoded point batch\n */\nfunction parseLASMeshBatch(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions = {}\n): LASMesh {\n const batchSize = decoder.pointsCount;\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n const positions = new PositionsType(batchSize * 3);\n const colors = lasHeader.hasColor ? new Uint8Array(batchSize * 4) : null;\n const intensities = new Uint16Array(batchSize);\n const classifications = new Uint8Array(batchSize);\n\n populateLASAttributes(decoder, lasHeader, options, {\n positions,\n colors,\n intensities,\n classifications,\n pointOffset: 0\n });\n\n const attributes: MeshAttributes = {\n POSITION: {value: positions, size: 3},\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n attributes.COLOR_0 = {value: colors, size: 4};\n }\n\n const batchHeader = {...lasHeader};\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: batchHeader,\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: batchSize,\n boundingBox: getMeshBoundingBox(attributes)\n },\n attributes,\n topology: 'point-list',\n mode: 0,\n progress: lasHeader.totalRead / lasHeader.totalToRead\n } as LASMesh & {progress: number};\n\n lasMesh.schema = getLASSchema(batchHeader, lasMesh.attributes);\n return lasMesh;\n}\n\n/**\n * Fill typed LAS attribute arrays from a decoded chunk.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header\n * @param options LAS loader options\n * @param target Target attribute arrays and write offset\n */\nfunction populateLASAttributes(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions,\n target: {\n positions: Float32Array | Float64Array;\n colors: Uint8Array | null;\n intensities: Uint16Array;\n classifications: Uint8Array;\n pointOffset: number;\n }\n): void {\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n const pointIndex = target.pointOffset + i;\n\n target.positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n target.positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n target.positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && target.colors) {\n if (twoByteColor) {\n target.colors[pointIndex * 4] = color[0] / 256;\n target.colors[pointIndex * 4 + 1] = color[1] / 256;\n target.colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n target.colors[pointIndex * 4] = color[0];\n target.colors[pointIndex * 4 + 1] = color[1];\n target.colors[pointIndex * 4 + 2] = color[2];\n }\n target.colors[pointIndex * 4 + 3] = 255;\n }\n\n target.intensities[pointIndex] = intensity;\n target.classifications[pointIndex] = classification;\n }\n}\n\n/**\n * parse laz data\n * @param rawData\n * @param onParseData\n * @return parsed point cloud\n */\n/* eslint-enable max-statements */\nexport function parseLASChunked(\n rawData: ArrayBuffer,\n onParseData: any = {},\n batchSize: number = DEFAULT_BATCH_SIZE\n): void {\n for (const {decoder, header} of parseLASChunkedIterator(rawData, batchSize)) {\n onParseData(decoder, header);\n }\n}\n\n/**\n * Decode LAS/LAZ data into point chunks.\n * @param rawData Complete LAS/LAZ file data\n * @param batchSize Number of returned points per chunk\n * @returns Iterable of decoded point chunks\n */\nfunction* parseLASChunkedIterator(\n rawData: ArrayBuffer,\n batchSize: number = DEFAULT_BATCH_SIZE\n): Iterable<LASDecodedChunk> {\n const dataHandler = new LASFile(rawData);\n\n try {\n // open data\n dataHandler.open();\n\n const header = dataHandler.getHeader();\n // start loading\n const Unpacker = dataHandler.getUnpacker();\n\n header.totalToRead = header.pointsCount;\n let totalRead = 0;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n const chunk: LASChunk = dataHandler.readData(batchSize);\n\n totalRead += chunk.count;\n\n header.totalRead = totalRead;\n\n const unpacker = new Unpacker(chunk.buffer, chunk.count, header);\n\n // surface unpacker and progress via call back\n // use unpacker.pointsCount and unpacker.getPoint(i) to handle data in app\n yield {decoder: unpacker, header};\n\n if (!chunk.hasMoreData || totalRead >= header.totalToRead) {\n break;\n }\n }\n } catch (e) {\n throw e;\n } finally {\n dataHandler.close();\n }\n}\n\n/**\n * Get the requested LAS point batch size.\n * @param options LAS loader options\n * @returns Point count per decoded batch\n */\nfunction getBatchSize(options: LASLoaderOptions): number {\n const batchSize = options.batchSize ?? options.core?.batchSize;\n return typeof batchSize === 'number' ? batchSize : DEFAULT_BATCH_SIZE;\n}\n\n/**\n * @param decoder\n * @param batchSize\n * @param colorDepth\n * @returns boolean\n */\nfunction detectTwoByteColors(\n decoder: any = {},\n batchSize: number,\n colorDepth?: number | string\n): boolean {\n let twoByteColor = false;\n switch (colorDepth) {\n case 8:\n twoByteColor = false;\n break;\n case 16:\n twoByteColor = true;\n break;\n case 'auto':\n if (decoder.getPoint(0).color) {\n for (let i = 0; i < batchSize; i++) {\n const {color} = decoder.getPoint(i);\n // eslint-disable-next-line max-depth\n if (color[0] > 255 || color[1] > 255 || color[2] > 255) {\n twoByteColor = true;\n }\n }\n }\n break;\n default:\n // eslint-disable-next-line\n console.warn('las: illegal value for options.las.colorDepth');\n break;\n }\n return twoByteColor;\n}\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// ported and es6-ified from https://github.com/verma/plasio/\nimport {getLoaderLog} from '@loaders.gl/core/loader-utils';\nimport type {LASLoaderOptions} from '../../las-loader-types';\nimport type {LASMesh, LASHeader} from '../las-types';\nimport type {MeshAttributes} from '@loaders.gl/core/schema';\nimport {getMeshBoundingBox} from '@loaders.gl/core/schema-utils';\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/core/loader-utils';\nimport {getLASSchema} from '../get-las-schema';\nimport {LASFile} from './laslaz-decoder';\n\ntype LASChunk = {\n count: number;\n buffer: ArrayBuffer;\n hasMoreData: boolean;\n};\n\ntype LASDecoder = {\n pointsCount: number;\n getPoint(index: number): {\n position: [number, number, number];\n color?: [number, number, number];\n intensity: number;\n classification: number;\n };\n};\n\ntype LASDecodedChunk = {\n decoder: LASDecoder;\n header: LASHeader;\n};\n\nconst DEFAULT_BATCH_SIZE = 1000 * 100;\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASMesh\n */\nexport function parseLAS(arrayBuffer: ArrayBuffer, options?: LASLoaderOptions): LASMesh {\n return parseLASMesh(arrayBuffer, options);\n // This code breaks pointcloud example on the website\n // const mesh = parseLASMesh(arrayBuffer, options);\n // return convertMeshToTable(mesh, options?.las?.shape || 'mesh') as LASMesh | ArrowTable | ColumnarTable;\n}\n\n/**\n * Parse LAS/LAZ data in decoded point batches.\n * @param arrayBufferIterator Iterator yielding LAS/LAZ binary chunks\n * @param options LAS loader options\n * @returns Async iterable of mesh batches\n */\nexport async function* parseLASInBatches(\n arrayBufferIterator:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options: LASLoaderOptions = {}\n): AsyncIterable<LASMesh> {\n const arrayBuffer = await concatenateArrayBuffersAsync(arrayBufferIterator);\n const batchSize = getBatchSize(options);\n\n for (const {decoder, header} of parseLASChunkedIterator(arrayBuffer, batchSize)) {\n yield parseLASMeshBatch(decoder, header, options);\n }\n}\n\n/**\n * Parsing of .las file\n * @param arrayBuffer\n * @param options\n * @returns LASHeader\n */\nfunction parseLASMesh(arrayBuffer: ArrayBuffer, options: LASLoaderOptions = {}): LASMesh {\n let pointIndex: number = 0;\n\n let positions: Float32Array | Float64Array;\n let colors: Uint8Array | null;\n let intensities: Uint16Array;\n let classifications: Uint8Array;\n let originalHeader: any;\n\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: {} as LASHeader,\n // shape: 'mesh',\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: 0,\n boundingBox: [\n [0, 0, 0],\n [0, 0, 0]\n ]\n },\n attributes: {},\n topology: 'point-list',\n mode: 0 // GL.POINTS\n };\n\n /* eslint-disable max-statements */\n // @ts-ignore Possibly undefined\n parseLASChunked(arrayBuffer, (decoder: any = {}, lasHeader: LASHeader) => {\n if (!originalHeader) {\n originalHeader = lasHeader;\n const total = lasHeader.totalToRead;\n\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n positions = new PositionsType(total * 3);\n // laslaz-decoder.js `pointFormatReaders`\n colors = lasHeader.hasColor ? new Uint8Array(total * 4) : null;\n intensities = new Uint16Array(total);\n classifications = new Uint8Array(total);\n\n lasMesh.loaderData = lasHeader;\n lasMesh.attributes = {\n POSITION: {value: positions, size: 3},\n // non-gltf attributes, use non-capitalized names for now\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n lasMesh.attributes.COLOR_0 = {value: colors, size: 4};\n }\n }\n\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n\n positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && colors) {\n if (twoByteColor) {\n colors[pointIndex * 4] = color[0] / 256;\n colors[pointIndex * 4 + 1] = color[1] / 256;\n colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n colors[pointIndex * 4] = color[0];\n colors[pointIndex * 4 + 1] = color[1];\n colors[pointIndex * 4 + 2] = color[2];\n }\n colors[pointIndex * 4 + 3] = 255;\n }\n\n intensities[pointIndex] = intensity;\n classifications[pointIndex] = classification;\n\n pointIndex++;\n }\n\n const meshBatch = {\n ...lasMesh,\n header: {\n vertexCount: lasHeader.totalRead\n },\n progress: lasHeader.totalRead / lasHeader.totalToRead\n };\n\n options?.onProgress?.({\n ...meshBatch,\n phase: 'decode',\n completed: lasHeader.totalRead,\n total: lasHeader.totalToRead,\n unit: 'points'\n });\n });\n /* eslint-enable max-statements */\n\n lasMesh.header = {\n vertexCount: originalHeader.totalToRead,\n boundingBox: getMeshBoundingBox(lasMesh?.attributes || {}) ?? undefined\n };\n\n if (lasMesh) {\n lasMesh.schema = getLASSchema(lasMesh.loaderData, lasMesh.attributes);\n }\n return lasMesh;\n}\n\n/**\n * Convert one decoded LAS/LAZ chunk into a mesh.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header with current progress\n * @param options LAS loader options\n * @returns Mesh containing one decoded point batch\n */\nfunction parseLASMeshBatch(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions = {}\n): LASMesh {\n const batchSize = decoder.pointsCount;\n const PositionsType = options.las?.fp64 ? Float64Array : Float32Array;\n const positions = new PositionsType(batchSize * 3);\n const colors = lasHeader.hasColor ? new Uint8Array(batchSize * 4) : null;\n const intensities = new Uint16Array(batchSize);\n const classifications = new Uint8Array(batchSize);\n\n populateLASAttributes(decoder, lasHeader, options, {\n positions,\n colors,\n intensities,\n classifications,\n pointOffset: 0\n });\n\n const attributes: MeshAttributes = {\n POSITION: {value: positions, size: 3},\n intensity: {value: intensities, size: 1},\n classification: {value: classifications, size: 1}\n };\n\n if (colors) {\n attributes.COLOR_0 = {value: colors, size: 4};\n }\n\n const batchHeader = {...lasHeader};\n const lasMesh: LASMesh = {\n loader: 'las',\n loaderData: batchHeader,\n schema: {fields: [], metadata: {}},\n header: {\n vertexCount: batchSize,\n boundingBox: getMeshBoundingBox(attributes)\n },\n attributes,\n topology: 'point-list',\n mode: 0,\n progress: lasHeader.totalRead / lasHeader.totalToRead\n } as LASMesh & {progress: number};\n\n lasMesh.schema = getLASSchema(batchHeader, lasMesh.attributes);\n return lasMesh;\n}\n\n/**\n * Fill typed LAS attribute arrays from a decoded chunk.\n * @param decoder Point decoder for the current chunk\n * @param lasHeader LAS file header\n * @param options LAS loader options\n * @param target Target attribute arrays and write offset\n */\nfunction populateLASAttributes(\n decoder: LASDecoder,\n lasHeader: LASHeader,\n options: LASLoaderOptions,\n target: {\n positions: Float32Array | Float64Array;\n colors: Uint8Array | null;\n intensities: Uint16Array;\n classifications: Uint8Array;\n pointOffset: number;\n }\n): void {\n const batchSize = decoder.pointsCount;\n const {\n scale: [scaleX, scaleY, scaleZ],\n offset: [offsetX, offsetY, offsetZ]\n } = lasHeader;\n const twoByteColor = detectTwoByteColors(decoder, batchSize, options);\n\n for (let i = 0; i < batchSize; i++) {\n const {position, color, intensity, classification} = decoder.getPoint(i);\n const pointIndex = target.pointOffset + i;\n\n target.positions[pointIndex * 3] = position[0] * scaleX + offsetX;\n target.positions[pointIndex * 3 + 1] = position[1] * scaleY + offsetY;\n target.positions[pointIndex * 3 + 2] = position[2] * scaleZ + offsetZ;\n\n if (color && target.colors) {\n if (twoByteColor) {\n target.colors[pointIndex * 4] = color[0] / 256;\n target.colors[pointIndex * 4 + 1] = color[1] / 256;\n target.colors[pointIndex * 4 + 2] = color[2] / 256;\n } else {\n target.colors[pointIndex * 4] = color[0];\n target.colors[pointIndex * 4 + 1] = color[1];\n target.colors[pointIndex * 4 + 2] = color[2];\n }\n target.colors[pointIndex * 4 + 3] = 255;\n }\n\n target.intensities[pointIndex] = intensity;\n target.classifications[pointIndex] = classification;\n }\n}\n\n/**\n * parse laz data\n * @param rawData\n * @param onParseData\n * @return parsed point cloud\n */\n/* eslint-enable max-statements */\nexport function parseLASChunked(\n rawData: ArrayBuffer,\n onParseData: any = {},\n batchSize: number = DEFAULT_BATCH_SIZE\n): void {\n for (const {decoder, header} of parseLASChunkedIterator(rawData, batchSize)) {\n onParseData(decoder, header);\n }\n}\n\n/**\n * Decode LAS/LAZ data into point chunks.\n * @param rawData Complete LAS/LAZ file data\n * @param batchSize Number of returned points per chunk\n * @returns Iterable of decoded point chunks\n */\nfunction* parseLASChunkedIterator(\n rawData: ArrayBuffer,\n batchSize: number = DEFAULT_BATCH_SIZE\n): Iterable<LASDecodedChunk> {\n const dataHandler = new LASFile(rawData);\n\n try {\n // open data\n dataHandler.open();\n\n const header = dataHandler.getHeader();\n // start loading\n const Unpacker = dataHandler.getUnpacker();\n\n header.totalToRead = header.pointsCount;\n let totalRead = 0;\n\n /* eslint-disable no-constant-condition */\n while (true) {\n const chunk: LASChunk = dataHandler.readData(batchSize);\n\n totalRead += chunk.count;\n\n header.totalRead = totalRead;\n\n const unpacker = new Unpacker(chunk.buffer, chunk.count, header);\n\n // surface unpacker and progress via call back\n // use unpacker.pointsCount and unpacker.getPoint(i) to handle data in app\n yield {decoder: unpacker, header};\n\n if (!chunk.hasMoreData || totalRead >= header.totalToRead) {\n break;\n }\n }\n } catch (e) {\n throw e;\n } finally {\n dataHandler.close();\n }\n}\n\n/**\n * Get the requested LAS point batch size.\n * @param options LAS loader options\n * @returns Point count per decoded batch\n */\nfunction getBatchSize(options: LASLoaderOptions): number {\n const batchSize = options.batchSize ?? options.core?.batchSize;\n return typeof batchSize === 'number' ? batchSize : DEFAULT_BATCH_SIZE;\n}\n\n/**\n * @param decoder\n * @param batchSize\n * @param colorDepth\n * @returns boolean\n */\nfunction detectTwoByteColors(\n decoder: any = {},\n batchSize: number,\n options: LASLoaderOptions\n): boolean {\n let twoByteColor = false;\n switch (options.las?.colorDepth) {\n case 8:\n twoByteColor = false;\n break;\n case 16:\n twoByteColor = true;\n break;\n case 'auto':\n if (decoder.getPoint(0).color) {\n for (let i = 0; i < batchSize; i++) {\n const {color} = decoder.getPoint(i);\n // eslint-disable-next-line max-depth\n if (color[0] > 255 || color[1] > 255 || color[2] > 255) {\n twoByteColor = true;\n }\n }\n }\n break;\n default:\n getLoaderLog(options).warn('las: illegal value for options.las.colorDepth')();\n break;\n }\n return twoByteColor;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_loader_utils"]
7
7
  }
@@ -1,7 +1,9 @@
1
1
  // loaders.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { getMeshBoundingBox /* , convertMeshToTable */ } from '@loaders.gl/core/schema-utils';
4
+ // ported and es6-ified from https://github.com/verma/plasio/
5
+ import { getLoaderLog } from '@loaders.gl/core/loader-utils';
6
+ import { getMeshBoundingBox } from '@loaders.gl/core/schema-utils';
5
7
  import { concatenateArrayBuffersAsync } from '@loaders.gl/core/loader-utils';
6
8
  import { getLASSchema } from "../get-las-schema.js";
7
9
  import { LASFile } from "./laslaz-decoder.js";
@@ -85,7 +87,7 @@ function parseLASMesh(arrayBuffer, options = {}) {
85
87
  }
86
88
  const batchSize = decoder.pointsCount;
87
89
  const { scale: [scaleX, scaleY, scaleZ], offset: [offsetX, offsetY, offsetZ] } = lasHeader;
88
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
90
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
89
91
  for (let i = 0; i < batchSize; i++) {
90
92
  const { position, color, intensity, classification } = decoder.getPoint(i);
91
93
  positions[pointIndex * 3] = position[0] * scaleX + offsetX;
@@ -189,7 +191,7 @@ function parseLASMeshBatch(decoder, lasHeader, options = {}) {
189
191
  function populateLASAttributes(decoder, lasHeader, options, target) {
190
192
  const batchSize = decoder.pointsCount;
191
193
  const { scale: [scaleX, scaleY, scaleZ], offset: [offsetX, offsetY, offsetZ] } = lasHeader;
192
- const twoByteColor = detectTwoByteColors(decoder, batchSize, options.las?.colorDepth);
194
+ const twoByteColor = detectTwoByteColors(decoder, batchSize, options);
193
195
  for (let i = 0; i < batchSize; i++) {
194
196
  const { position, color, intensity, classification } = decoder.getPoint(i);
195
197
  const pointIndex = target.pointOffset + i;
@@ -277,9 +279,9 @@ function getBatchSize(options) {
277
279
  * @param colorDepth
278
280
  * @returns boolean
279
281
  */
280
- function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
282
+ function detectTwoByteColors(decoder = {}, batchSize, options) {
281
283
  let twoByteColor = false;
282
- switch (colorDepth) {
284
+ switch (options.las?.colorDepth) {
283
285
  case 8:
284
286
  twoByteColor = false;
285
287
  break;
@@ -298,8 +300,7 @@ function detectTwoByteColors(decoder = {}, batchSize, colorDepth) {
298
300
  }
299
301
  break;
300
302
  default:
301
- // eslint-disable-next-line
302
- console.warn('las: illegal value for options.las.colorDepth');
303
+ getLoaderLog(options).warn('las: illegal value for options.las.colorDepth')();
303
304
  break;
304
305
  }
305
306
  return twoByteColor;
@@ -1 +1 @@
1
- {"version":3,"file":"parse-las.js","sourceRoot":"","sources":["../../../../src/las/lib/laz-rs-wasm/parse-las.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-las.js","sourceRoot":"","sources":["../../../../src/las/lib/laz-rs-wasm/parse-las.ts"],"names":[],"mappings":"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"}
@@ -20487,7 +20487,7 @@ return true;`);
20487
20487
  };
20488
20488
 
20489
20489
  // src/las/las-loader-shared.ts
20490
- var VERSION = true ? "5.0.0-beta.6" : "latest";
20490
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
20491
20491
  var DEFAULT_LAS_SHAPE = "arrow-table";
20492
20492
  function getLASShape(options) {
20493
20493
  return options?.las?.shape || DEFAULT_LAS_SHAPE;
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(las_writer_exports);
28
28
  var import_loader_utils = require("@loaders.gl/core/loader-utils");
29
29
  var import_schema_utils = require("@loaders.gl/core/schema-utils");
30
30
  var import_las_format = require("./las-format.cjs");
31
- var VERSION = true ? "5.0.0-beta.6" : "latest";
31
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
32
32
  var LAS_HEADER_LENGTH = 227;
33
33
  var LAS_1_4_HEADER_LENGTH = 375;
34
34
  var LAS_1_5_HEADER_LENGTH = 393;
@@ -36,7 +36,7 @@ __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_worker_transport = require("@loaders.gl/core/arrow-worker-transport");
39
- var VERSION = true ? "5.0.0-beta.6" : "latest";
39
+ var VERSION = true ? "5.0.0-beta.8" : "latest";
40
40
  async function preload() {
41
41
  const { PCDLoaderWithParser } = await import("@loaders.gl/pointclouds/pcd-loader");
42
42
  return PCDLoaderWithParser;
@@ -5,7 +5,7 @@ import { PCDFormat } from "./pcd-format.js";
5
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.6" !== 'undefined' ? "5.0.0-beta.6" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
9
9
  /**
10
10
  * Preloads the parser-bearing PCD loader implementation.
11
11
  */
@@ -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.6" : "latest";
28
+ var VERSION = true ? "5.0.0-beta.8" : "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.6" !== 'undefined' ? "5.0.0-beta.6" : 'latest';
8
+ const VERSION = typeof "5.0.0-beta.8" !== 'undefined' ? "5.0.0-beta.8" : 'latest';
9
9
  /**
10
10
  * Writer for the PCD point cloud format.
11
11
  */