@loaders.gl/ply 4.4.0-alpha.2 → 4.4.0-alpha.9

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.
package/dist/index.cjs CHANGED
@@ -450,7 +450,7 @@ function parseBinary(data, header) {
450
450
  var import_loader_utils = require("@loaders.gl/loader-utils");
451
451
  var currentElement;
452
452
  async function* parsePLYInBatches(iterator, options) {
453
- const lineIterator = (0, import_loader_utils.makeLineIterator)((0, import_loader_utils.makeTextDecoderIterator)(iterator));
453
+ const lineIterator = (0, import_loader_utils.makeLineIterator)((0, import_loader_utils.makeTextDecoderIterator)((0, import_loader_utils.toArrayBufferIterator)(iterator)));
454
454
  const header = await parsePLYHeader(lineIterator, options);
455
455
  let attributes;
456
456
  switch (header.format) {
@@ -624,7 +624,7 @@ function handleElement2(buffer, elementName, element = {}) {
624
624
  }
625
625
 
626
626
  // dist/ply-loader.js
627
- var VERSION = true ? "4.4.0-alpha.1" : "latest";
627
+ var VERSION = true ? "4.4.0-alpha.9" : "latest";
628
628
  var PLYWorkerLoader = {
629
629
  dataType: null,
630
630
  batchType: null,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["index.js", "ply-format.js", "lib/normalize-ply.js", "lib/get-ply-schema.js", "lib/parse-ply.js", "lib/parse-ply-in-batches.js", "ply-loader.js", "ply-arrow-loader.js"],
4
- "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// PLYLoader\nexport { PLYFormat } from \"./ply-format.js\";\nexport { PLYWorkerLoader, PLYLoader } from \"./ply-loader.js\";\nexport { PLYArrowLoader } from \"./ply-arrow-loader.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * PLY - Polygon File Format (aka Stanford Triangle Format)\n * @see http://paulbourke.net/dataformats/ply/,\n * @see https://en.wikipedia.org/wiki/PLY_(file_format)\n */\nexport const PLYFormat = {\n name: 'PLY',\n id: 'ply',\n module: 'ply',\n // shapes: ['mesh', 'gltf', 'columnar-table'],\n extensions: ['ply'],\n mimeTypes: ['text/plain', 'application/octet-stream'],\n text: true,\n binary: true,\n tests: ['ply']\n};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { getMeshBoundingBox } from '@loaders.gl/schema-utils';\nimport { getPLYSchema } from \"./get-ply-schema.js\";\n/**\n * @param header\n * @param attributes\n * @returns data and header\n */\nexport default function normalizePLY(plyHeader, plyAttributes, options) {\n const attributes = getMeshAttributes(plyAttributes);\n const boundingBox = getMeshBoundingBox(attributes);\n const vertexCount = plyAttributes.indices.length || plyAttributes.vertices.length / 3;\n // TODO - how to detect POINT CLOUDS vs MESHES?\n // TODO - For Meshes, PLY quadrangles must be split?\n const isTriangles = plyAttributes.indices && plyAttributes.indices.length > 0;\n const mode = isTriangles ? 4 : 0; // TRIANGLES vs POINTS\n const topology = isTriangles ? 'triangle-list' : 'point-list';\n const schema = getPLYSchema(plyHeader, attributes);\n const plyMesh = {\n loader: 'ply',\n loaderData: plyHeader,\n header: {\n vertexCount,\n boundingBox\n },\n schema,\n attributes,\n indices: { value: new Uint32Array(0), size: 0 },\n mode,\n topology\n };\n if (plyAttributes.indices.length > 0) {\n plyMesh.indices = { value: new Uint32Array(plyAttributes.indices), size: 1 };\n }\n return plyMesh;\n}\n/**\n * @param attributes\n * @returns accessors []\n */\n// eslint-disable-next-line complexity\nfunction getMeshAttributes(attributes) {\n const accessors = {};\n for (const attributeName of Object.keys(attributes)) {\n switch (attributeName) {\n case 'vertices':\n if (attributes.vertices.length > 0) {\n accessors.POSITION = { value: new Float32Array(attributes.vertices), size: 3 };\n }\n break;\n // optional attributes data\n case 'normals':\n if (attributes.normals.length > 0) {\n accessors.NORMAL = { value: new Float32Array(attributes.normals), size: 3 };\n }\n break;\n case 'uvs':\n if (attributes.uvs.length > 0) {\n accessors.TEXCOORD_0 = { value: new Float32Array(attributes.uvs), size: 2 };\n }\n break;\n case 'colors':\n if (attributes.colors.length > 0) {\n // TODO - normalized shoud be based on `uchar` flag in source data?\n accessors.COLOR_0 = { value: new Uint8Array(attributes.colors), size: 3, normalized: true };\n }\n break;\n case 'indices':\n break;\n default:\n if (attributes[attributeName].length > 0) {\n accessors[attributeName] = { value: new Float32Array(attributes[attributeName]), size: 1 };\n }\n break;\n }\n }\n return accessors;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { deduceMeshSchema } from '@loaders.gl/schema-utils';\n/**\n * Gets schema from PLY header\n * @param plyHeader\n * @param metadata\n * @returns Schema\n */\nexport function getPLYSchema(plyHeader, attributes) {\n const metadata = makeMetadataFromPlyHeader(plyHeader);\n const schema = deduceMeshSchema(attributes, metadata);\n return schema;\n}\n/**\n * Make arrow like schema metadata by PlyHeader properties\n * @param plyHeader\n * @returns\n */\nfunction makeMetadataFromPlyHeader(plyHeader) {\n /* eslint-disable camelcase */\n const metadata = {};\n metadata.ply_comments = JSON.stringify(plyHeader.comments);\n metadata.ply_elements = JSON.stringify(plyHeader.elements);\n if (plyHeader.format !== undefined) {\n metadata.ply_format = plyHeader.format;\n }\n if (plyHeader.version !== undefined) {\n metadata.ply_version = plyHeader.version;\n }\n if (plyHeader.headerLength !== undefined) {\n metadata.ply_headerLength = plyHeader.headerLength.toString(10);\n }\n return metadata;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport normalizePLY from \"./normalize-ply.js\";\n/**\n * @param data\n * @param options\n * @returns\n */\nexport function parsePLY(data, options = {}) {\n let header;\n let attributes;\n if (data instanceof ArrayBuffer) {\n const text = new TextDecoder().decode(data);\n header = parseHeader(text, options);\n attributes = header.format === 'ascii' ? parseASCII(text, header) : parseBinary(data, header);\n }\n else {\n header = parseHeader(data, options);\n attributes = parseASCII(data, header);\n }\n return normalizePLY(header, attributes);\n}\n/**\n * @param data\n * @param options\n * @returns header\n */\nfunction parseHeader(data, options) {\n const PLY_HEADER_PATTERN = /ply([\\s\\S]*)end_header\\s/;\n let headerText = '';\n let headerLength = 0;\n const result = PLY_HEADER_PATTERN.exec(data);\n if (result !== null) {\n headerText = result[1];\n headerLength = result[0].length;\n }\n const lines = headerText.split('\\n');\n const header = parseHeaderLines(lines, headerLength, options);\n return header;\n}\n/**\n * @param lines\n * @param headerLength\n * @param options\n * @returns header\n */\n// eslint-disable-next-line complexity\nfunction parseHeaderLines(lines, headerLength, options) {\n const header = {\n comments: [],\n elements: [],\n headerLength\n };\n let lineType;\n let lineValues;\n let currentElement = null;\n for (let i = 0; i < lines.length; i++) {\n let line = lines[i];\n line = line.trim();\n if (line === '') {\n // eslint-disable-next-line\n continue;\n }\n lineValues = line.split(/\\s+/);\n lineType = lineValues.shift();\n line = lineValues.join(' ');\n switch (lineType) {\n case 'format':\n header.format = lineValues[0];\n header.version = lineValues[1];\n break;\n case 'comment':\n header.comments.push(line);\n break;\n case 'element':\n // Start new element, store previous element\n if (currentElement) {\n header.elements.push(currentElement);\n }\n currentElement = {\n name: lineValues[0],\n count: parseInt(lineValues[1], 10),\n properties: []\n };\n break;\n case 'property':\n if (currentElement) {\n const property = makePLYElementProperty(lineValues);\n if (options?.propertyNameMapping && property.name in options?.propertyNameMapping) {\n property.name = options?.propertyNameMapping[property.name];\n }\n currentElement.properties.push(property);\n }\n break;\n default:\n // eslint-disable-next-line\n console.log('unhandled', lineType, lineValues);\n }\n }\n // Store in-progress element\n if (currentElement) {\n header.elements.push(currentElement);\n }\n return header;\n}\n/** Generate attributes arrays from the header */\n// eslint-disable-next-line complexity\nfunction getPLYAttributes(header) {\n // TODO Generate only the attribute arrays actually in the header\n const attributes = {\n indices: [],\n vertices: [],\n normals: [],\n uvs: [],\n colors: []\n };\n for (const element of header.elements) {\n if (element.name === 'vertex') {\n for (const property of element.properties) {\n switch (property.name) {\n case 'x':\n case 'y':\n case 'z':\n case 'nx':\n case 'ny':\n case 'nz':\n case 's':\n case 't':\n case 'red':\n case 'green':\n case 'blue':\n break;\n default:\n // Add any non-geometry attributes\n attributes[property.name] = [];\n break;\n }\n }\n }\n }\n return attributes;\n}\n/**\n * @param propertyValues\n * @returns property of ply element\n */\nfunction makePLYElementProperty(propertyValues) {\n const type = propertyValues[0];\n switch (type) {\n case 'list':\n return {\n type,\n name: propertyValues[3],\n countType: propertyValues[1],\n itemType: propertyValues[2]\n };\n default:\n return {\n type,\n name: propertyValues[1]\n };\n }\n}\n/**\n * Parses ASCII number\n * @param n\n * @param type\n * @returns\n */\n// eslint-disable-next-line complexity\nfunction parseASCIINumber(n, type) {\n switch (type) {\n case 'char':\n case 'uchar':\n case 'short':\n case 'ushort':\n case 'int':\n case 'uint':\n case 'int8':\n case 'uint8':\n case 'int16':\n case 'uint16':\n case 'int32':\n case 'uint32':\n return parseInt(n, 10);\n case 'float':\n case 'double':\n case 'float32':\n case 'float64':\n return parseFloat(n);\n default:\n throw new Error(type);\n }\n}\n/**\n * @param properties\n * @param line\n * @returns ASCII element\n */\nfunction parsePLYElement(properties, line) {\n const values = line.split(/\\s+/);\n const element = {};\n for (let i = 0; i < properties.length; i++) {\n if (properties[i].type === 'list') {\n const list = [];\n const n = parseASCIINumber(values.shift(), properties[i].countType);\n for (let j = 0; j < n; j++) {\n list.push(parseASCIINumber(values.shift(), properties[i].itemType));\n }\n element[properties[i].name] = list;\n }\n else {\n element[properties[i].name] = parseASCIINumber(values.shift(), properties[i].type);\n }\n }\n return element;\n}\n/**\n * @param data\n * @param header\n * @returns [attributes]\n */\nfunction parseASCII(data, header) {\n // PLY ascii format specification, as per http://en.wikipedia.org/wiki/PLY_(file_format)\n const attributes = getPLYAttributes(header);\n let result;\n const patternBody = /end_header\\s([\\s\\S]*)$/;\n let body = '';\n if ((result = patternBody.exec(data)) !== null) {\n body = result[1];\n }\n const lines = body.split('\\n');\n let currentElement = 0;\n let currentElementCount = 0;\n for (let i = 0; i < lines.length; i++) {\n let line = lines[i];\n line = line.trim();\n if (line !== '') {\n if (currentElementCount >= header.elements[currentElement].count) {\n currentElement++;\n currentElementCount = 0;\n }\n const element = parsePLYElement(header.elements[currentElement].properties, line);\n handleElement(attributes, header.elements[currentElement].name, element);\n currentElementCount++;\n }\n }\n return attributes;\n}\n/**\n * @param buffer\n * @param elementName\n * @param element\n */\n// eslint-disable-next-line complexity\nfunction handleElement(buffer, elementName, element = {}) {\n if (elementName === 'vertex') {\n for (const propertyName of Object.keys(element)) {\n switch (propertyName) {\n case 'x':\n buffer.vertices.push(element.x, element.y, element.z);\n break;\n case 'y':\n case 'z':\n break;\n case 'nx':\n if ('nx' in element && 'ny' in element && 'nz' in element) {\n buffer.normals.push(element.nx, element.ny, element.nz);\n }\n break;\n case 'ny':\n case 'nz':\n break;\n case 's':\n if ('s' in element && 't' in element) {\n buffer.uvs.push(element.s, element.t);\n }\n break;\n case 't':\n break;\n case 'red':\n if ('red' in element && 'green' in element && 'blue' in element) {\n buffer.colors.push(element.red, element.green, element.blue);\n }\n break;\n case 'green':\n case 'blue':\n break;\n default:\n buffer[propertyName].push(element[propertyName]);\n }\n }\n }\n else if (elementName === 'face') {\n const vertexIndices = element.vertex_indices || element.vertex_index; // issue #9338\n if (vertexIndices.length === 3) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[2]);\n }\n else if (vertexIndices.length === 4) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[3]);\n buffer.indices.push(vertexIndices[1], vertexIndices[2], vertexIndices[3]);\n }\n }\n}\n/**\n * Reads binary data\n * @param dataview\n * @param at\n * @param type\n * @param littleEndian\n * @returns [number, number]\n */\n// eslint-disable-next-line complexity\nfunction binaryRead(dataview, at, type, littleEndian) {\n switch (type) {\n // corespondences for non-specific length types here match rply:\n case 'int8':\n case 'char':\n return [dataview.getInt8(at), 1];\n case 'uint8':\n case 'uchar':\n return [dataview.getUint8(at), 1];\n case 'int16':\n case 'short':\n return [dataview.getInt16(at, littleEndian), 2];\n case 'uint16':\n case 'ushort':\n return [dataview.getUint16(at, littleEndian), 2];\n case 'int32':\n case 'int':\n return [dataview.getInt32(at, littleEndian), 4];\n case 'uint32':\n case 'uint':\n return [dataview.getUint32(at, littleEndian), 4];\n case 'float32':\n case 'float':\n return [dataview.getFloat32(at, littleEndian), 4];\n case 'float64':\n case 'double':\n return [dataview.getFloat64(at, littleEndian), 8];\n default:\n throw new Error(type);\n }\n}\n/**\n * Reads binary data\n * @param dataview\n * @param at\n * @param properties\n * @param littleEndian\n * @returns [object, number]\n */\nfunction binaryReadElement(dataview, at, properties, littleEndian) {\n const element = {};\n let result;\n let read = 0;\n for (let i = 0; i < properties.length; i++) {\n if (properties[i].type === 'list') {\n const list = [];\n result = binaryRead(dataview, at + read, properties[i].countType, littleEndian);\n const n = result[0];\n read += result[1];\n for (let j = 0; j < n; j++) {\n result = binaryRead(dataview, at + read, properties[i].itemType, littleEndian);\n // @ts-ignore\n list.push(result[0]);\n read += result[1];\n }\n element[properties[i].name] = list;\n }\n else {\n result = binaryRead(dataview, at + read, properties[i].type, littleEndian);\n element[properties[i].name] = result[0];\n read += result[1];\n }\n }\n return [element, read];\n}\n/**\n * Parses binary data\n * @param data\n * @param header\n * @returns [attributes] of data\n */\nfunction parseBinary(data, header) {\n const attributes = getPLYAttributes(header);\n const littleEndian = header.format === 'binary_little_endian';\n const body = new DataView(data, header.headerLength);\n let result;\n let loc = 0;\n for (let currentElement = 0; currentElement < header.elements.length; currentElement++) {\n const count = header.elements[currentElement].count;\n for (let currentElementCount = 0; currentElementCount < count; currentElementCount++) {\n result = binaryReadElement(body, loc, header.elements[currentElement].properties, littleEndian);\n loc += result[1];\n const element = result[0];\n handleElement(attributes, header.elements[currentElement].name, element);\n }\n }\n return attributes;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// PLY Loader, adapted from THREE.js (MIT license)\n//\n// Attributions per original THREE.js source file:\n//\n// @author Wei Meng / http://about.me/menway\n//\n// Description: A loader for PLY ASCII files (known as the Polygon File Format\n// or the Stanford Triangle Format).\n//\n// Limitations: ASCII decoding assumes file is UTF-8.\n//\n// If the PLY file uses non standard property names, they can be mapped while\n// loading. For example, the following maps the properties\n// \u201Cdiffuse_(red|green|blue)\u201D in the file to standard color names.\n//\n// parsePLY(data, {\n// propertyNameMapping: {\n// diffuse_red: 'red',\n// diffuse_green: 'green',\n// diffuse_blue: 'blue'\n// }\n// });\nimport { makeLineIterator, makeTextDecoderIterator, forEach } from '@loaders.gl/loader-utils';\nimport normalizePLY from \"./normalize-ply.js\";\nlet currentElement;\n/**\n * PARSER\n * @param iterator\n * @param options\n */\nexport async function* parsePLYInBatches(iterator, options) {\n const lineIterator = makeLineIterator(makeTextDecoderIterator(iterator));\n const header = await parsePLYHeader(lineIterator, options);\n let attributes;\n switch (header.format) {\n case 'ascii':\n attributes = await parseASCII(lineIterator, header);\n break;\n default:\n throw new Error('Binary PLY can not yet be parsed in streaming mode');\n // attributes = await parseBinary(lineIterator, header);\n }\n yield normalizePLY(header, attributes, options);\n}\n/**\n * Parses header\n * @param lineIterator\n * @param options\n * @returns\n */\nasync function parsePLYHeader(lineIterator, options) {\n const header = {\n comments: [],\n elements: []\n // headerLength\n };\n // Note: forEach does not reset iterator if exiting loop prematurely\n // so that iteration can continue in a second loop\n await forEach(lineIterator, (line) => {\n line = line.trim();\n // End of header\n if (line === 'end_header') {\n return true; // Returning true cancels `forEach`\n }\n // Ignore empty lines\n if (line === '') {\n // eslint-disable-next-line\n return false; // Returning false does not cancel `forEach`\n }\n const lineValues = line.split(/\\s+/);\n const lineType = lineValues.shift();\n line = lineValues.join(' ');\n switch (lineType) {\n case 'ply':\n // First line magic characters, ignore\n break;\n case 'format':\n header.format = lineValues[0];\n header.version = lineValues[1];\n break;\n case 'comment':\n header.comments.push(line);\n break;\n case 'element':\n if (currentElement) {\n header.elements.push(currentElement);\n }\n currentElement = {\n name: lineValues[0],\n count: parseInt(lineValues[1], 10),\n properties: []\n };\n break;\n case 'property':\n const property = makePLYElementProperty(lineValues, options.propertyNameMapping);\n currentElement.properties.push(property);\n break;\n default:\n // eslint-disable-next-line\n console.log('unhandled', lineType, lineValues);\n }\n return false;\n });\n if (currentElement) {\n header.elements.push(currentElement);\n }\n return header;\n}\nfunction makePLYElementProperty(propertyValues, propertyNameMapping) {\n const type = propertyValues[0];\n switch (type) {\n case 'list':\n return {\n type,\n name: propertyValues[3],\n countType: propertyValues[1],\n itemType: propertyValues[2]\n };\n default:\n return {\n type,\n name: propertyValues[1]\n };\n }\n}\n// ASCII PARSING\n/**\n * @param lineIterator\n * @param header\n * @returns\n */\nasync function parseASCII(lineIterator, header) {\n // PLY ascii format specification, as per http://en.wikipedia.org/wiki/PLY_(file_format)\n const attributes = {\n indices: [],\n vertices: [],\n normals: [],\n uvs: [],\n colors: []\n };\n let currentElement = 0;\n let currentElementCount = 0;\n for await (let line of lineIterator) {\n line = line.trim();\n if (line !== '') {\n if (currentElementCount >= header.elements[currentElement].count) {\n currentElement++;\n currentElementCount = 0;\n }\n const element = parsePLYElement(header.elements[currentElement].properties, line);\n handleElement(attributes, header.elements[currentElement].name, element);\n currentElementCount++;\n }\n }\n return attributes;\n}\n/**\n * Parses ASCII number\n * @param n\n * @param type\n * @returns ASCII number\n */\n// eslint-disable-next-line complexity\nfunction parseASCIINumber(n, type) {\n switch (type) {\n case 'char':\n case 'uchar':\n case 'short':\n case 'ushort':\n case 'int':\n case 'uint':\n case 'int8':\n case 'uint8':\n case 'int16':\n case 'uint16':\n case 'int32':\n case 'uint32':\n return parseInt(n, 10);\n case 'float':\n case 'double':\n case 'float32':\n case 'float64':\n return parseFloat(n);\n default:\n throw new Error(type);\n }\n}\n/**\n * Parses ASCII element\n * @param properties\n * @param line\n * @returns element\n */\nfunction parsePLYElement(properties, line) {\n const values = line.split(/\\s+/);\n const element = {};\n for (let i = 0; i < properties.length; i++) {\n if (properties[i].type === 'list') {\n const list = [];\n const n = parseASCIINumber(values.shift(), properties[i].countType);\n for (let j = 0; j < n; j++) {\n list.push(parseASCIINumber(values.shift(), properties[i].itemType));\n }\n element[properties[i].name] = list;\n }\n else {\n element[properties[i].name] = parseASCIINumber(values.shift(), properties[i].type);\n }\n }\n return element;\n}\n/**\n * @param buffer\n * @param elementName\n * @param element\n */\n// HELPER FUNCTIONS\n// eslint-disable-next-line complexity\nfunction handleElement(buffer, elementName, element = {}) {\n switch (elementName) {\n case 'vertex':\n buffer.vertices.push(element.x, element.y, element.z);\n if ('nx' in element && 'ny' in element && 'nz' in element) {\n buffer.normals.push(element.nx, element.ny, element.nz);\n }\n if ('s' in element && 't' in element) {\n buffer.uvs.push(element.s, element.t);\n }\n if ('red' in element && 'green' in element && 'blue' in element) {\n buffer.colors.push(element.red / 255.0, element.green / 255.0, element.blue / 255.0);\n }\n break;\n case 'face':\n const vertexIndices = element.vertex_indices || element.vertex_index; // issue #9338\n if (vertexIndices.length === 3) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[2]);\n }\n else if (vertexIndices.length === 4) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[3]);\n buffer.indices.push(vertexIndices[1], vertexIndices[2], vertexIndices[3]);\n }\n break;\n default:\n break;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { parsePLY } from \"./lib/parse-ply.js\";\nimport { parsePLYInBatches } from \"./lib/parse-ply-in-batches.js\";\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.4.0-alpha.1\" !== 'undefined' ? \"4.4.0-alpha.1\" : 'latest';\n/**\n * 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 PLYWorkerLoader = {\n dataType: null,\n batchType: null,\n name: 'PLY',\n id: 'ply',\n module: 'ply',\n // shapes: ['mesh', 'gltf', 'columnar-table'],\n version: VERSION,\n worker: true,\n extensions: ['ply'],\n mimeTypes: ['text/plain', 'application/octet-stream'],\n text: true,\n binary: true,\n tests: ['ply'],\n options: {\n ply: {}\n }\n};\n/**\n * Loader for PLY - Polygon File Format\n */\nexport const PLYLoader = {\n ...PLYWorkerLoader,\n // Note: parsePLY supports both text and binary\n parse: async (arrayBuffer, options) => parsePLY(arrayBuffer, options?.ply), // TODO - this may not detect text correctly?\n parseTextSync: (arrayBuffer, options) => parsePLY(arrayBuffer, options?.ply),\n parseSync: (arrayBuffer, options) => parsePLY(arrayBuffer, options?.ply),\n parseInBatches: (arrayBuffer, options) => parsePLYInBatches(arrayBuffer, options?.ply)\n};\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { PLYWorkerLoader } from \"./ply-loader.js\";\nimport { convertMeshToTable } from '@loaders.gl/schema-utils';\nimport { parsePLY } from \"./lib/parse-ply.js\";\n/**\n * Worker loader for PLY -\n */\nexport const PLYArrowLoader = {\n ...PLYWorkerLoader,\n dataType: null,\n batchType: null,\n worker: false,\n parse: async (arrayBuffer) => {\n const mesh = parsePLY(arrayBuffer);\n const arrowTable = convertMeshToTable(mesh, 'arrow-table');\n return arrowTable;\n }\n};\n"],
5
- "mappings": "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",
3
+ "sources": ["../src/index.ts", "../src/ply-format.ts", "../src/lib/normalize-ply.ts", "../src/lib/get-ply-schema.ts", "../src/lib/parse-ply.ts", "../src/lib/parse-ply-in-batches.ts", "../src/ply-loader.ts", "../src/ply-arrow-loader.ts"],
4
+ "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// PLYLoader\nexport {PLYFormat} from './ply-format';\n\nexport type {PLYLoaderOptions} from './ply-loader';\nexport {PLYWorkerLoader, PLYLoader} from './ply-loader';\nexport {PLYArrowLoader} from './ply-arrow-loader';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Format} from '@loaders.gl/loader-utils';\n\n/**\n * PLY - Polygon File Format (aka Stanford Triangle Format)\n * @see http://paulbourke.net/dataformats/ply/,\n * @see https://en.wikipedia.org/wiki/PLY_(file_format)\n */\nexport const PLYFormat = {\n name: 'PLY',\n id: 'ply',\n module: 'ply',\n // shapes: ['mesh', 'gltf', 'columnar-table'],\n extensions: ['ply'],\n mimeTypes: ['text/plain', 'application/octet-stream'],\n text: true,\n binary: true,\n tests: ['ply']\n} as const satisfies Format;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {MeshAttributes} from '@loaders.gl/schema';\nimport {getMeshBoundingBox} from '@loaders.gl/schema-utils';\nimport type {PLYMesh, PLYHeader, PLYAttributes, MeshHeader} from './ply-types';\nimport {getPLYSchema} from './get-ply-schema';\n\n/**\n * @param header\n * @param attributes\n * @returns data and header\n */\nexport default function normalizePLY(\n plyHeader: MeshHeader & PLYHeader,\n plyAttributes: PLYAttributes,\n options?: {}\n): PLYMesh {\n const attributes = getMeshAttributes(plyAttributes);\n const boundingBox = getMeshBoundingBox(attributes);\n const vertexCount = plyAttributes.indices.length || plyAttributes.vertices.length / 3;\n\n // TODO - how to detect POINT CLOUDS vs MESHES?\n // TODO - For Meshes, PLY quadrangles must be split?\n const isTriangles = plyAttributes.indices && plyAttributes.indices.length > 0;\n const mode = isTriangles ? 4 : 0; // TRIANGLES vs POINTS\n const topology = isTriangles ? 'triangle-list' : 'point-list';\n\n const schema = getPLYSchema(plyHeader, attributes);\n\n const plyMesh: PLYMesh = {\n loader: 'ply',\n loaderData: plyHeader,\n header: {\n vertexCount,\n boundingBox\n },\n schema,\n attributes,\n indices: {value: new Uint32Array(0), size: 0},\n mode,\n topology\n };\n\n if (plyAttributes.indices.length > 0) {\n plyMesh.indices = {value: new Uint32Array(plyAttributes.indices), size: 1};\n }\n\n return plyMesh;\n}\n\n/**\n * @param attributes\n * @returns accessors []\n */\n// eslint-disable-next-line complexity\nfunction getMeshAttributes(attributes: PLYAttributes): MeshAttributes {\n const accessors: MeshAttributes = {};\n\n for (const attributeName of Object.keys(attributes)) {\n switch (attributeName) {\n case 'vertices':\n if (attributes.vertices.length > 0) {\n accessors.POSITION = {value: new Float32Array(attributes.vertices), size: 3};\n }\n break;\n\n // optional attributes data\n case 'normals':\n if (attributes.normals.length > 0) {\n accessors.NORMAL = {value: new Float32Array(attributes.normals), size: 3};\n }\n break;\n\n case 'uvs':\n if (attributes.uvs.length > 0) {\n accessors.TEXCOORD_0 = {value: new Float32Array(attributes.uvs), size: 2};\n }\n break;\n\n case 'colors':\n if (attributes.colors.length > 0) {\n // TODO - normalized shoud be based on `uchar` flag in source data?\n accessors.COLOR_0 = {value: new Uint8Array(attributes.colors), size: 3, normalized: true};\n }\n break;\n\n case 'indices':\n break;\n\n default:\n if (attributes[attributeName].length > 0) {\n accessors[attributeName] = {value: new Float32Array(attributes[attributeName]), size: 1};\n }\n break;\n }\n }\n return accessors;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Schema, MeshAttributes} from '@loaders.gl/schema';\nimport {deduceMeshSchema} from '@loaders.gl/schema-utils';\nimport type {PLYHeader} from './ply-types';\n\n/**\n * Gets schema from PLY header\n * @param plyHeader\n * @param metadata\n * @returns Schema\n */\nexport function getPLYSchema(plyHeader: PLYHeader, attributes: MeshAttributes): Schema {\n const metadata = makeMetadataFromPlyHeader(plyHeader);\n const schema = deduceMeshSchema(attributes, metadata);\n return schema;\n}\n\n/**\n * Make arrow like schema metadata by PlyHeader properties\n * @param plyHeader\n * @returns\n */\nfunction makeMetadataFromPlyHeader(plyHeader: PLYHeader): Record<string, string> {\n /* eslint-disable camelcase */\n const metadata: Record<string, string> = {};\n metadata.ply_comments = JSON.stringify(plyHeader.comments);\n metadata.ply_elements = JSON.stringify(plyHeader.elements);\n if (plyHeader.format !== undefined) {\n metadata.ply_format = plyHeader.format;\n }\n if (plyHeader.version !== undefined) {\n metadata.ply_version = plyHeader.version;\n }\n if (plyHeader.headerLength !== undefined) {\n metadata.ply_headerLength = plyHeader.headerLength.toString(10);\n }\n return metadata;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// PLY Loader, adapted from THREE.js (MIT license)\n//\n// Attributions per original THREE.js source file:\n//\n// @author Wei Meng / http://about.me/menway\n//\n// Description: A loader for PLY ASCII files (known as the Polygon File Format\n// or the Stanford Triangle Format).\n//\n// Limitations: ASCII decoding assumes file is UTF-8.\n//\n// If the PLY file uses non standard property names, they can be mapped while\n// loading. For example, the following maps the properties\n// \u201Cdiffuse_(red|green|blue)\u201D in the file to standard color names.\n//\n// parsePLY(data, {\n// propertyNameMapping: {\n// diffuse_red: 'red',\n// diffuse_green: 'green',\n// diffuse_blue: 'blue'\n// }\n// });\nimport type {\n PLYMesh,\n PLYHeader,\n PLYAttributes,\n MeshHeader,\n PLYElement,\n PLYProperty\n} from './ply-types';\nimport normalizePLY from './normalize-ply';\n\nexport type ParsePLYOptions = {\n propertyNameMapping?: Record<string, string>;\n};\n\n/**\n * @param data\n * @param options\n * @returns\n */\nexport function parsePLY(data: ArrayBuffer | string, options: ParsePLYOptions = {}): PLYMesh {\n let header: PLYHeader & MeshHeader;\n let attributes: PLYAttributes;\n\n if (data instanceof ArrayBuffer) {\n const text = new TextDecoder().decode(data);\n header = parseHeader(text, options);\n attributes = header.format === 'ascii' ? parseASCII(text, header) : parseBinary(data, header);\n } else {\n header = parseHeader(data, options);\n attributes = parseASCII(data, header);\n }\n\n return normalizePLY(header, attributes);\n}\n\n/**\n * @param data\n * @param options\n * @returns header\n */\nfunction parseHeader(data: any, options?: ParsePLYOptions): PLYHeader {\n const PLY_HEADER_PATTERN = /ply([\\s\\S]*)end_header\\s/;\n\n let headerText = '';\n let headerLength = 0;\n\n const result = PLY_HEADER_PATTERN.exec(data);\n\n if (result !== null) {\n headerText = result[1];\n headerLength = result[0].length;\n }\n const lines = headerText.split('\\n');\n const header = parseHeaderLines(lines, headerLength, options);\n\n return header;\n}\n\n/**\n * @param lines\n * @param headerLength\n * @param options\n * @returns header\n */\n// eslint-disable-next-line complexity\nfunction parseHeaderLines(\n lines: string[],\n headerLength: number,\n options?: ParsePLYOptions\n): PLYHeader {\n const header: PLYHeader = {\n comments: [],\n elements: [],\n headerLength\n };\n\n let lineType: string | undefined;\n let lineValues: string[];\n let currentElement: PLYElement | null = null;\n\n for (let i = 0; i < lines.length; i++) {\n let line: string = lines[i];\n line = line.trim();\n\n if (line === '') {\n // eslint-disable-next-line\n continue;\n }\n\n lineValues = line.split(/\\s+/);\n lineType = lineValues.shift();\n line = lineValues.join(' ');\n\n switch (lineType) {\n case 'format':\n header.format = lineValues[0];\n header.version = lineValues[1];\n break;\n\n case 'comment':\n header.comments.push(line);\n break;\n\n case 'element':\n // Start new element, store previous element\n if (currentElement) {\n header.elements.push(currentElement);\n }\n\n currentElement = {\n name: lineValues[0],\n count: parseInt(lineValues[1], 10),\n properties: []\n };\n break;\n\n case 'property':\n if (currentElement) {\n const property = makePLYElementProperty(lineValues);\n if (options?.propertyNameMapping && property.name in options?.propertyNameMapping) {\n property.name = options?.propertyNameMapping[property.name];\n }\n currentElement.properties.push(property);\n }\n break;\n\n default:\n // eslint-disable-next-line\n console.log('unhandled', lineType, lineValues);\n }\n }\n\n // Store in-progress element\n if (currentElement) {\n header.elements.push(currentElement);\n }\n\n return header;\n}\n\n/** Generate attributes arrays from the header */\n// eslint-disable-next-line complexity\nfunction getPLYAttributes(header: PLYHeader): PLYAttributes {\n // TODO Generate only the attribute arrays actually in the header\n const attributes = {\n indices: [],\n vertices: [],\n normals: [],\n uvs: [],\n colors: []\n };\n\n for (const element of header.elements) {\n if (element.name === 'vertex') {\n for (const property of element.properties) {\n switch (property.name) {\n case 'x':\n case 'y':\n case 'z':\n case 'nx':\n case 'ny':\n case 'nz':\n case 's':\n case 't':\n case 'red':\n case 'green':\n case 'blue':\n break;\n default:\n // Add any non-geometry attributes\n attributes[property.name] = [];\n break;\n }\n }\n }\n }\n\n return attributes;\n}\n\n/**\n * @param propertyValues\n * @returns property of ply element\n */\nfunction makePLYElementProperty(propertyValues: string[]): PLYProperty {\n const type = propertyValues[0];\n switch (type) {\n case 'list':\n return {\n type,\n name: propertyValues[3],\n countType: propertyValues[1],\n itemType: propertyValues[2]\n };\n default:\n return {\n type,\n name: propertyValues[1]\n };\n }\n}\n\n/**\n * Parses ASCII number\n * @param n\n * @param type\n * @returns\n */\n// eslint-disable-next-line complexity\nfunction parseASCIINumber(n: string, type: string): number {\n switch (type) {\n case 'char':\n case 'uchar':\n case 'short':\n case 'ushort':\n case 'int':\n case 'uint':\n case 'int8':\n case 'uint8':\n case 'int16':\n case 'uint16':\n case 'int32':\n case 'uint32':\n return parseInt(n, 10);\n\n case 'float':\n case 'double':\n case 'float32':\n case 'float64':\n return parseFloat(n);\n\n default:\n throw new Error(type);\n }\n}\n\n/**\n * @param properties\n * @param line\n * @returns ASCII element\n */\nfunction parsePLYElement(properties: any[], line: string) {\n const values: any = line.split(/\\s+/);\n\n const element = {};\n\n for (let i = 0; i < properties.length; i++) {\n if (properties[i].type === 'list') {\n const list: any = [];\n const n = parseASCIINumber(values.shift(), properties[i].countType);\n\n for (let j = 0; j < n; j++) {\n list.push(parseASCIINumber(values.shift(), properties[i].itemType));\n }\n\n element[properties[i].name] = list;\n } else {\n element[properties[i].name] = parseASCIINumber(values.shift(), properties[i].type);\n }\n }\n\n return element;\n}\n\n/**\n * @param data\n * @param header\n * @returns [attributes]\n */\nfunction parseASCII(data: any, header: PLYHeader): PLYAttributes {\n // PLY ascii format specification, as per http://en.wikipedia.org/wiki/PLY_(file_format)\n\n const attributes = getPLYAttributes(header);\n\n let result: RegExpExecArray | null;\n\n const patternBody = /end_header\\s([\\s\\S]*)$/;\n let body = '';\n if ((result = patternBody.exec(data)) !== null) {\n body = result[1];\n }\n\n const lines = body.split('\\n');\n let currentElement = 0;\n let currentElementCount = 0;\n\n for (let i = 0; i < lines.length; i++) {\n let line = lines[i];\n line = line.trim();\n\n if (line !== '') {\n if (currentElementCount >= header.elements[currentElement].count) {\n currentElement++;\n currentElementCount = 0;\n }\n\n const element = parsePLYElement(header.elements[currentElement].properties, line);\n handleElement(attributes, header.elements[currentElement].name, element);\n currentElementCount++;\n }\n }\n\n return attributes;\n}\n\n/**\n * @param buffer\n * @param elementName\n * @param element\n */\n// eslint-disable-next-line complexity\nfunction handleElement(\n buffer: {[index: string]: number[]},\n elementName: string,\n element: any = {}\n) {\n if (elementName === 'vertex') {\n for (const propertyName of Object.keys(element)) {\n switch (propertyName) {\n case 'x':\n buffer.vertices.push(element.x, element.y, element.z);\n break;\n case 'y':\n case 'z':\n break;\n\n case 'nx':\n if ('nx' in element && 'ny' in element && 'nz' in element) {\n buffer.normals.push(element.nx, element.ny, element.nz);\n }\n break;\n case 'ny':\n case 'nz':\n break;\n\n case 's':\n if ('s' in element && 't' in element) {\n buffer.uvs.push(element.s, element.t);\n }\n break;\n case 't':\n break;\n\n case 'red':\n if ('red' in element && 'green' in element && 'blue' in element) {\n buffer.colors.push(element.red, element.green, element.blue);\n }\n break;\n case 'green':\n case 'blue':\n break;\n\n default:\n buffer[propertyName].push(element[propertyName]);\n }\n }\n } else if (elementName === 'face') {\n const vertexIndices = element.vertex_indices || element.vertex_index; // issue #9338\n\n if (vertexIndices.length === 3) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[2]);\n } else if (vertexIndices.length === 4) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[3]);\n buffer.indices.push(vertexIndices[1], vertexIndices[2], vertexIndices[3]);\n }\n }\n}\n\n/**\n * Reads binary data\n * @param dataview\n * @param at\n * @param type\n * @param littleEndian\n * @returns [number, number]\n */\n// eslint-disable-next-line complexity\nfunction binaryRead(dataview: DataView, at: number, type: any, littleEndian: boolean): number[] {\n switch (type) {\n // corespondences for non-specific length types here match rply:\n case 'int8':\n case 'char':\n return [dataview.getInt8(at), 1];\n case 'uint8':\n case 'uchar':\n return [dataview.getUint8(at), 1];\n case 'int16':\n case 'short':\n return [dataview.getInt16(at, littleEndian), 2];\n case 'uint16':\n case 'ushort':\n return [dataview.getUint16(at, littleEndian), 2];\n case 'int32':\n case 'int':\n return [dataview.getInt32(at, littleEndian), 4];\n case 'uint32':\n case 'uint':\n return [dataview.getUint32(at, littleEndian), 4];\n case 'float32':\n case 'float':\n return [dataview.getFloat32(at, littleEndian), 4];\n case 'float64':\n case 'double':\n return [dataview.getFloat64(at, littleEndian), 8];\n\n default:\n throw new Error(type);\n }\n}\n\n/**\n * Reads binary data\n * @param dataview\n * @param at\n * @param properties\n * @param littleEndian\n * @returns [object, number]\n */\nfunction binaryReadElement(\n dataview: DataView,\n at: number,\n properties: {[index: string]: any},\n littleEndian: boolean\n): {}[] {\n const element = {};\n let result: number[];\n let read = 0;\n\n for (let i = 0; i < properties.length; i++) {\n if (properties[i].type === 'list') {\n const list = [];\n\n result = binaryRead(dataview, at + read, properties[i].countType, littleEndian);\n const n = result[0];\n read += result[1];\n\n for (let j = 0; j < n; j++) {\n result = binaryRead(dataview, at + read, properties[i].itemType, littleEndian);\n // @ts-ignore\n list.push(result[0]);\n read += result[1];\n }\n\n element[properties[i].name] = list;\n } else {\n result = binaryRead(dataview, at + read, properties[i].type, littleEndian);\n element[properties[i].name] = result[0];\n read += result[1];\n }\n }\n\n return [element, read];\n}\n\ntype BinaryAttributes = {\n [index: string]: number[];\n};\n\n/**\n * Parses binary data\n * @param data\n * @param header\n * @returns [attributes] of data\n */\nfunction parseBinary(data: ArrayBuffer, header: PLYHeader): BinaryAttributes {\n const attributes = getPLYAttributes(header);\n\n const littleEndian = header.format === 'binary_little_endian';\n const body = new DataView(data, header.headerLength);\n let result: any[];\n let loc = 0;\n\n for (let currentElement = 0; currentElement < header.elements.length; currentElement++) {\n const count = header.elements[currentElement].count;\n for (let currentElementCount = 0; currentElementCount < count; currentElementCount++) {\n result = binaryReadElement(\n body,\n loc,\n header.elements[currentElement].properties,\n littleEndian\n );\n loc += result[1];\n const element = result[0];\n\n handleElement(attributes, header.elements[currentElement].name, element);\n }\n }\n\n return attributes;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// PLY Loader, adapted from THREE.js (MIT license)\n//\n// Attributions per original THREE.js source file:\n//\n// @author Wei Meng / http://about.me/menway\n//\n// Description: A loader for PLY ASCII files (known as the Polygon File Format\n// or the Stanford Triangle Format).\n//\n// Limitations: ASCII decoding assumes file is UTF-8.\n//\n// If the PLY file uses non standard property names, they can be mapped while\n// loading. For example, the following maps the properties\n// \u201Cdiffuse_(red|green|blue)\u201D in the file to standard color names.\n//\n// parsePLY(data, {\n// propertyNameMapping: {\n// diffuse_red: 'red',\n// diffuse_green: 'green',\n// diffuse_blue: 'blue'\n// }\n// });\n\nimport {\n makeLineIterator,\n makeTextDecoderIterator,\n forEach,\n toArrayBufferIterator\n} from '@loaders.gl/loader-utils';\nimport normalizePLY from './normalize-ply';\nimport {PLYMesh, PLYHeader, PLYElement, PLYProperty, PLYAttributes} from './ply-types';\n\nlet currentElement: PLYElement;\n\n/**\n * PARSER\n * @param iterator\n * @param options\n */\nexport async function* parsePLYInBatches(\n iterator:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options: any\n): AsyncIterable<PLYMesh> {\n const lineIterator = makeLineIterator(makeTextDecoderIterator(toArrayBufferIterator(iterator)));\n const header = await parsePLYHeader(lineIterator, options);\n\n let attributes: PLYAttributes;\n switch (header.format) {\n case 'ascii':\n attributes = await parseASCII(lineIterator, header);\n break;\n default:\n throw new Error('Binary PLY can not yet be parsed in streaming mode');\n // attributes = await parseBinary(lineIterator, header);\n }\n\n yield normalizePLY(header, attributes, options);\n}\n\n/**\n * Parses header\n * @param lineIterator\n * @param options\n * @returns\n */\nasync function parsePLYHeader(\n lineIterator: AsyncIterable<string> | Iterable<string>,\n options: {[key: string]: any}\n): Promise<PLYHeader> {\n const header: PLYHeader = {\n comments: [],\n elements: []\n // headerLength\n };\n\n // Note: forEach does not reset iterator if exiting loop prematurely\n // so that iteration can continue in a second loop\n await forEach(lineIterator, (line: string) => {\n line = line.trim();\n\n // End of header\n if (line === 'end_header') {\n return true; // Returning true cancels `forEach`\n }\n\n // Ignore empty lines\n if (line === '') {\n // eslint-disable-next-line\n return false; // Returning false does not cancel `forEach`\n }\n\n const lineValues = line.split(/\\s+/);\n const lineType = lineValues.shift();\n line = lineValues.join(' ');\n\n switch (lineType) {\n case 'ply':\n // First line magic characters, ignore\n break;\n\n case 'format':\n header.format = lineValues[0];\n header.version = lineValues[1];\n break;\n\n case 'comment':\n header.comments.push(line);\n break;\n\n case 'element':\n if (currentElement) {\n header.elements.push(currentElement);\n }\n\n currentElement = {\n name: lineValues[0],\n count: parseInt(lineValues[1], 10),\n properties: []\n };\n break;\n\n case 'property':\n const property = makePLYElementProperty(lineValues, options.propertyNameMapping);\n currentElement.properties.push(property);\n break;\n\n default:\n // eslint-disable-next-line\n console.log('unhandled', lineType, lineValues);\n }\n\n return false;\n });\n\n if (currentElement) {\n header.elements.push(currentElement);\n }\n\n return header;\n}\n\nfunction makePLYElementProperty(propertyValues: string[], propertyNameMapping: []): PLYProperty {\n const type = propertyValues[0];\n switch (type) {\n case 'list':\n return {\n type,\n name: propertyValues[3],\n countType: propertyValues[1],\n itemType: propertyValues[2]\n };\n default:\n return {\n type,\n name: propertyValues[1]\n };\n }\n}\n\n// ASCII PARSING\n/**\n * @param lineIterator\n * @param header\n * @returns\n */\nasync function parseASCII(lineIterator: AsyncIterable<string>, header: PLYHeader) {\n // PLY ascii format specification, as per http://en.wikipedia.org/wiki/PLY_(file_format)\n const attributes: PLYAttributes = {\n indices: [],\n vertices: [],\n normals: [],\n uvs: [],\n colors: []\n };\n\n let currentElement = 0;\n let currentElementCount = 0;\n\n for await (let line of lineIterator) {\n line = line.trim();\n\n if (line !== '') {\n if (currentElementCount >= header.elements[currentElement].count) {\n currentElement++;\n currentElementCount = 0;\n }\n\n const element = parsePLYElement(header.elements[currentElement].properties, line);\n handleElement(attributes, header.elements[currentElement].name, element);\n currentElementCount++;\n }\n }\n\n return attributes;\n}\n/**\n * Parses ASCII number\n * @param n\n * @param type\n * @returns ASCII number\n */\n// eslint-disable-next-line complexity\nfunction parseASCIINumber(n: string, type: string): number {\n switch (type) {\n case 'char':\n case 'uchar':\n case 'short':\n case 'ushort':\n case 'int':\n case 'uint':\n case 'int8':\n case 'uint8':\n case 'int16':\n case 'uint16':\n case 'int32':\n case 'uint32':\n return parseInt(n, 10);\n\n case 'float':\n case 'double':\n case 'float32':\n case 'float64':\n return parseFloat(n);\n\n default:\n throw new Error(type);\n }\n}\n/**\n * Parses ASCII element\n * @param properties\n * @param line\n * @returns element\n */\nfunction parsePLYElement(properties: any[], line: string) {\n const values: any = line.split(/\\s+/);\n\n const element = {};\n\n for (let i = 0; i < properties.length; i++) {\n if (properties[i].type === 'list') {\n const list: any = [];\n const n = parseASCIINumber(values.shift(), properties[i].countType);\n\n for (let j = 0; j < n; j++) {\n list.push(parseASCIINumber(values.shift(), properties[i].itemType));\n }\n\n element[properties[i].name] = list;\n } else {\n element[properties[i].name] = parseASCIINumber(values.shift(), properties[i].type);\n }\n }\n\n return element;\n}\n/**\n * @param buffer\n * @param elementName\n * @param element\n */\n// HELPER FUNCTIONS\n// eslint-disable-next-line complexity\nfunction handleElement(\n buffer: {[index: string]: number[]},\n elementName: string,\n element: any = {}\n) {\n switch (elementName) {\n case 'vertex':\n buffer.vertices.push(element.x, element.y, element.z);\n if ('nx' in element && 'ny' in element && 'nz' in element) {\n buffer.normals.push(element.nx, element.ny, element.nz);\n }\n if ('s' in element && 't' in element) {\n buffer.uvs.push(element.s, element.t);\n }\n if ('red' in element && 'green' in element && 'blue' in element) {\n buffer.colors.push(element.red / 255.0, element.green / 255.0, element.blue / 255.0);\n }\n break;\n\n case 'face':\n const vertexIndices = element.vertex_indices || element.vertex_index; // issue #9338\n if (vertexIndices.length === 3) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[2]);\n } else if (vertexIndices.length === 4) {\n buffer.indices.push(vertexIndices[0], vertexIndices[1], vertexIndices[3]);\n buffer.indices.push(vertexIndices[1], vertexIndices[2], vertexIndices[3]);\n }\n break;\n\n default:\n break;\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// PLY Loader\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {PLYMesh} from './lib/ply-types';\nimport type {ParsePLYOptions} from './lib/parse-ply';\nimport {parsePLY} from './lib/parse-ply';\nimport {parsePLYInBatches} from './lib/parse-ply-in-batches';\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 /** Override the URL to the worker bundle (by default loads from unpkg.com) */\n workerUrl?: string;\n };\n};\n\n/**\n * 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 PLYWorkerLoader = {\n dataType: null as unknown as PLYMesh,\n batchType: null as never,\n\n name: 'PLY',\n id: 'ply',\n module: 'ply',\n // shapes: ['mesh', 'gltf', 'columnar-table'],\n version: VERSION,\n worker: true,\n extensions: ['ply'],\n mimeTypes: ['text/plain', 'application/octet-stream'],\n text: true,\n binary: true,\n tests: ['ply'],\n options: {\n ply: {}\n }\n} as const satisfies Loader<PLYMesh, never, LoaderOptions>;\n\n/**\n * Loader for PLY - Polygon File Format\n */\nexport const PLYLoader = {\n ...PLYWorkerLoader,\n // Note: parsePLY supports both text and binary\n parse: async (arrayBuffer, options) => parsePLY(arrayBuffer, options?.ply), // TODO - this may not detect text correctly?\n parseTextSync: (arrayBuffer, options) => parsePLY(arrayBuffer, options?.ply),\n parseSync: (arrayBuffer, options) => parsePLY(arrayBuffer, options?.ply),\n parseInBatches: (\n arrayBuffer:\n | AsyncIterable<ArrayBufferLike | ArrayBufferView>\n | Iterable<ArrayBufferLike | ArrayBufferView>,\n options\n ) => parsePLYInBatches(arrayBuffer, options?.ply)\n} as const satisfies LoaderWithParser<PLYMesh, any, PLYLoaderOptions>;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {ArrowTable} from '@loaders.gl/schema';\n\nimport {PLYLoaderOptions, PLYWorkerLoader} from './ply-loader';\nimport {convertMeshToTable} from '@loaders.gl/schema-utils';\nimport {parsePLY} from './lib/parse-ply';\n\n/**\n * Worker loader for PLY -\n */\nexport const PLYArrowLoader = {\n ...PLYWorkerLoader,\n dataType: null as unknown as ArrowTable,\n batchType: null as never,\n worker: false,\n parse: async (arrayBuffer: ArrayBuffer) => {\n const mesh = parsePLY(arrayBuffer);\n const arrowTable = convertMeshToTable(mesh, 'arrow-table');\n return arrowTable;\n }\n} as const satisfies LoaderWithParser<ArrowTable, never, PLYLoaderOptions>;\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_schema_utils", "currentElement", "parseASCII", "makePLYElementProperty", "currentElement", "parsePLYElement", "handleElement", "parseASCIINumber", "import_schema_utils"]
7
7
  }
package/dist/index.js CHANGED
@@ -5,3 +5,4 @@
5
5
  export { PLYFormat } from "./ply-format.js";
6
6
  export { PLYWorkerLoader, PLYLoader } from "./ply-loader.js";
7
7
  export { PLYArrowLoader } from "./ply-arrow-loader.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,YAAY;AACZ,OAAO,EAAC,SAAS,EAAC,wBAAqB;AAGvC,OAAO,EAAC,eAAe,EAAE,SAAS,EAAC,wBAAqB;AACxD,OAAO,EAAC,cAAc,EAAC,8BAA2B"}
@@ -34,3 +34,4 @@ function makeMetadataFromPlyHeader(plyHeader) {
34
34
  }
35
35
  return metadata;
36
36
  }
37
+ //# sourceMappingURL=get-ply-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-ply-schema.js","sourceRoot":"","sources":["../../src/lib/get-ply-schema.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,0BAA0B,CAAC;AAG1D;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,SAAoB,EAAE,UAA0B;IAC3E,MAAM,QAAQ,GAAG,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,SAAoB;IACrD,8BAA8B;IAC9B,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3D,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACnC,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC;IACzC,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD,IAAI,SAAS,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACzC,QAAQ,CAAC,gBAAgB,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -78,3 +78,4 @@ function getMeshAttributes(attributes) {
78
78
  }
79
79
  return accessors;
80
80
  }
81
+ //# sourceMappingURL=normalize-ply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-ply.js","sourceRoot":"","sources":["../../src/lib/normalize-ply.ts"],"names":[],"mappings":"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"}
@@ -4,5 +4,5 @@ import { PLYMesh } from "./ply-types.js";
4
4
  * @param iterator
5
5
  * @param options
6
6
  */
7
- export declare function parsePLYInBatches(iterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, options: any): AsyncIterable<PLYMesh>;
7
+ export declare function parsePLYInBatches(iterator: AsyncIterable<ArrayBufferLike | ArrayBufferView> | Iterable<ArrayBufferLike | ArrayBufferView>, options: any): AsyncIterable<PLYMesh>;
8
8
  //# sourceMappingURL=parse-ply-in-batches.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse-ply-in-batches.d.ts","sourceRoot":"","sources":["../../src/lib/parse-ply-in-batches.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAC,OAAO,EAAoD,uBAAoB;AAIvF;;;;GAIG;AACH,wBAAuB,iBAAiB,CACtC,QAAQ,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,EAC5D,OAAO,EAAE,GAAG,GACX,aAAa,CAAC,OAAO,CAAC,CAexB"}
1
+ {"version":3,"file":"parse-ply-in-batches.d.ts","sourceRoot":"","sources":["../../src/lib/parse-ply-in-batches.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAC,OAAO,EAAoD,uBAAoB;AAIvF;;;;GAIG;AACH,wBAAuB,iBAAiB,CACtC,QAAQ,EACJ,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC,EAC/C,OAAO,EAAE,GAAG,GACX,aAAa,CAAC,OAAO,CAAC,CAexB"}
@@ -23,7 +23,7 @@
23
23
  // diffuse_blue: 'blue'
24
24
  // }
25
25
  // });
26
- import { makeLineIterator, makeTextDecoderIterator, forEach } from '@loaders.gl/loader-utils';
26
+ import { makeLineIterator, makeTextDecoderIterator, forEach, toArrayBufferIterator } from '@loaders.gl/loader-utils';
27
27
  import normalizePLY from "./normalize-ply.js";
28
28
  let currentElement;
29
29
  /**
@@ -32,7 +32,7 @@ let currentElement;
32
32
  * @param options
33
33
  */
34
34
  export async function* parsePLYInBatches(iterator, options) {
35
- const lineIterator = makeLineIterator(makeTextDecoderIterator(iterator));
35
+ const lineIterator = makeLineIterator(makeTextDecoderIterator(toArrayBufferIterator(iterator)));
36
36
  const header = await parsePLYHeader(lineIterator, options);
37
37
  let attributes;
38
38
  switch (header.format) {
@@ -247,3 +247,4 @@ function handleElement(buffer, elementName, element = {}) {
247
247
  break;
248
248
  }
249
249
  }
250
+ //# sourceMappingURL=parse-ply-in-batches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ply-in-batches.js","sourceRoot":"","sources":["../../src/lib/parse-ply-in-batches.ts"],"names":[],"mappings":"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"}
@@ -400,3 +400,4 @@ function parseBinary(data, header) {
400
400
  }
401
401
  return attributes;
402
402
  }
403
+ //# sourceMappingURL=parse-ply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-ply.js","sourceRoot":"","sources":["../../src/lib/parse-ply.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ply-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ply-types.js","sourceRoot":"","sources":["../../src/lib/ply-types.ts"],"names":[],"mappings":""}
@@ -18,3 +18,4 @@ export const PLYArrowLoader = {
18
18
  return arrowTable;
19
19
  }
20
20
  };
21
+ //# sourceMappingURL=ply-arrow-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ply-arrow-loader.js","sourceRoot":"","sources":["../src/ply-arrow-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAmB,eAAe,EAAC,wBAAqB;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAC,2BAAwB;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,eAAe;IAClB,QAAQ,EAAE,IAA6B;IACvC,SAAS,EAAE,IAAa;IACxB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK,EAAE,WAAwB,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC3D,OAAO,UAAU,CAAC;IACpB,CAAC;CACuE,CAAC"}
@@ -17,3 +17,4 @@ export const PLYFormat = {
17
17
  binary: true,
18
18
  tests: ['ply']
19
19
  };
20
+ //# sourceMappingURL=ply-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ply-format.js","sourceRoot":"","sources":["../src/ply-format.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAIpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;IACb,8CAA8C;IAC9C,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,YAAY,EAAE,0BAA0B,CAAC;IACrD,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,KAAK,CAAC;CACW,CAAC"}
@@ -36,7 +36,7 @@ export declare const PLYLoader: {
36
36
  readonly parse: (arrayBuffer: ArrayBuffer, options: PLYLoaderOptions | undefined) => Promise<PLYMesh>;
37
37
  readonly parseTextSync: (arrayBuffer: string, options: PLYLoaderOptions | undefined) => PLYMesh;
38
38
  readonly parseSync: (arrayBuffer: ArrayBuffer, options: PLYLoaderOptions | undefined) => PLYMesh;
39
- readonly parseInBatches: (arrayBuffer: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>, options: PLYLoaderOptions | undefined) => AsyncIterable<PLYMesh>;
39
+ readonly parseInBatches: (arrayBuffer: AsyncIterable<ArrayBufferLike | ArrayBufferView> | Iterable<ArrayBufferLike | ArrayBufferView>, options: PLYLoaderOptions | undefined) => AsyncIterable<PLYMesh>;
40
40
  readonly dataType: PLYMesh;
41
41
  readonly batchType: never;
42
42
  readonly name: "PLY";
@@ -1 +1 @@
1
- {"version":3,"file":"ply-loader.d.ts","sourceRoot":"","sources":["../src/ply-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,OAAO,EAAC,2BAAwB;AAC7C,OAAO,KAAK,EAAC,eAAe,EAAC,2BAAwB;AAQrD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,GAAG;QACtB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe;uBACG,OAAO;wBACjB,KAAK;;;;;;;;;;;;;;CAgBgC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;uBAtBS,OAAO;wBACjB,KAAK;;;;;;;;;;;;;;CA4B2C,CAAC"}
1
+ {"version":3,"file":"ply-loader.d.ts","sourceRoot":"","sources":["../src/ply-loader.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA2B,aAAa,EAAC,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EAAC,OAAO,EAAC,2BAAwB;AAC7C,OAAO,KAAK,EAAC,eAAe,EAAC,2BAAwB;AAQrD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,GAAG,CAAC,EAAE,eAAe,GAAG;QACtB,8EAA8E;QAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe;uBACG,OAAO;wBACjB,KAAK;;;;;;;;;;;;;;CAgBgC,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,SAAS;;;;2CAQd,aAAa,CAAC,eAAe,GAAG,eAAe,CAAC,GAChD,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;uBA/BpB,OAAO;wBACjB,KAAK;;;;;;;;;;;;;;CAiC2C,CAAC"}
@@ -5,7 +5,7 @@ import { parsePLY } from "./lib/parse-ply.js";
5
5
  import { parsePLYInBatches } from "./lib/parse-ply-in-batches.js";
6
6
  // __VERSION__ is injected by babel-plugin-version-inline
7
7
  // @ts-ignore TS2304: Cannot find name '__VERSION__'.
8
- const VERSION = typeof "4.4.0-alpha.1" !== 'undefined' ? "4.4.0-alpha.1" : 'latest';
8
+ const VERSION = typeof "4.4.0-alpha.9" !== 'undefined' ? "4.4.0-alpha.9" : 'latest';
9
9
  /**
10
10
  * Worker loader for PLY - Polygon File Format (aka Stanford Triangle Format)'
11
11
  * links: ['http://paulbourke.net/dataformats/ply/',
@@ -40,3 +40,4 @@ export const PLYLoader = {
40
40
  parseSync: (arrayBuffer, options) => parsePLY(arrayBuffer, options?.ply),
41
41
  parseInBatches: (arrayBuffer, options) => parsePLYInBatches(arrayBuffer, options?.ply)
42
42
  };
43
+ //# sourceMappingURL=ply-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ply-loader.js","sourceRoot":"","sources":["../src/ply-loader.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAMpC,OAAO,EAAC,QAAQ,EAAC,2BAAwB;AACzC,OAAO,EAAC,iBAAiB,EAAC,sCAAmC;AAE7D,yDAAyD;AACzD,qDAAqD;AACrD,MAAM,OAAO,GAAG,sBAAkB,KAAK,WAAW,CAAC,CAAC,iBAAa,CAAC,CAAC,QAAQ,CAAC;AAS5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ,EAAE,IAA0B;IACpC,SAAS,EAAE,IAAa;IAExB,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,KAAK;IACT,MAAM,EAAE,KAAK;IACb,8CAA8C;IAC9C,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,CAAC,KAAK,CAAC;IACnB,SAAS,EAAE,CAAC,YAAY,EAAE,0BAA0B,CAAC;IACrD,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,CAAC,KAAK,CAAC;IACd,OAAO,EAAE;QACP,GAAG,EAAE,EAAE;KACR;CACuD,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,eAAe;IAClB,+CAA+C;IAC/C,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,6CAA6C;IACzH,aAAa,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC;IAC5E,SAAS,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC;IACxE,cAAc,EAAE,CACd,WAE+C,EAC/C,OAAO,EACP,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC;CACkB,CAAC"}
@@ -194,7 +194,10 @@
194
194
  options = {
195
195
  ...options,
196
196
  modules: loader && loader.options && loader.options.modules || {},
197
- worker: false
197
+ core: {
198
+ ...options.core,
199
+ worker: false
200
+ }
198
201
  };
199
202
  return await parser(data, { ...options }, context, loader);
200
203
  }
@@ -223,11 +226,14 @@
223
226
  }
224
227
 
225
228
  // ../loader-utils/src/lib/iterators/async-iteration.ts
226
- async function forEach(iterator, visitor) {
229
+ async function forEach(iterable, visitor) {
230
+ const iterator = toAsyncIterator(iterable);
227
231
  while (true) {
228
232
  const { done, value } = await iterator.next();
229
233
  if (done) {
230
- iterator.return();
234
+ if (iterator.return) {
235
+ iterator.return();
236
+ }
231
237
  return;
232
238
  }
233
239
  const cancel = visitor(value);
@@ -236,6 +242,56 @@
236
242
  }
237
243
  }
238
244
  }
245
+ async function* toArrayBufferIterator(asyncIterator) {
246
+ for await (const chunk of asyncIterator) {
247
+ yield copyToArrayBuffer(chunk);
248
+ }
249
+ }
250
+ function copyToArrayBuffer(chunk) {
251
+ if (chunk instanceof ArrayBuffer) {
252
+ return chunk;
253
+ }
254
+ if (ArrayBuffer.isView(chunk)) {
255
+ const { buffer, byteOffset, byteLength } = chunk;
256
+ return copyFromBuffer(buffer, byteOffset, byteLength);
257
+ }
258
+ return copyFromBuffer(chunk);
259
+ }
260
+ function copyFromBuffer(buffer, byteOffset = 0, byteLength = buffer.byteLength - byteOffset) {
261
+ const view = new Uint8Array(buffer, byteOffset, byteLength);
262
+ const copy = new Uint8Array(view.length);
263
+ copy.set(view);
264
+ return copy.buffer;
265
+ }
266
+ function toAsyncIterator(iterable) {
267
+ if (typeof iterable[Symbol.asyncIterator] === "function") {
268
+ return iterable[Symbol.asyncIterator]();
269
+ }
270
+ if (typeof iterable[Symbol.iterator] === "function") {
271
+ const iterator = iterable[Symbol.iterator]();
272
+ return iteratorToAsyncIterator(iterator);
273
+ }
274
+ return iterable;
275
+ }
276
+ function iteratorToAsyncIterator(iterator) {
277
+ return {
278
+ next(value) {
279
+ return Promise.resolve(iterator.next(value));
280
+ },
281
+ return(value) {
282
+ if (typeof iterator.return === "function") {
283
+ return Promise.resolve(iterator.return(value));
284
+ }
285
+ return Promise.resolve({ done: true, value });
286
+ },
287
+ throw(error) {
288
+ if (typeof iterator.throw === "function") {
289
+ return Promise.resolve(iterator.throw(error));
290
+ }
291
+ return Promise.reject(error);
292
+ }
293
+ };
294
+ }
239
295
 
240
296
  // ../schema-utils/src/lib/schema/data-type.ts
241
297
  function getDataTypeFromTypedArray(array) {
@@ -736,7 +792,7 @@
736
792
  // src/lib/parse-ply-in-batches.ts
737
793
  var currentElement;
738
794
  async function* parsePLYInBatches(iterator, options) {
739
- const lineIterator = makeLineIterator(makeTextDecoderIterator(iterator));
795
+ const lineIterator = makeLineIterator(makeTextDecoderIterator(toArrayBufferIterator(iterator)));
740
796
  const header = await parsePLYHeader(lineIterator, options);
741
797
  let attributes;
742
798
  switch (header.format) {
@@ -910,7 +966,7 @@
910
966
  }
911
967
 
912
968
  // src/ply-loader.ts
913
- var VERSION = true ? "4.4.0-alpha.1" : "latest";
969
+ var VERSION = true ? "4.4.0-alpha.9" : "latest";
914
970
  var PLYWorkerLoader = {
915
971
  dataType: null,
916
972
  batchType: null,
@@ -1,3 +1,4 @@
1
1
  import { createLoaderWorker } from '@loaders.gl/loader-utils';
2
2
  import { PLYLoader } from "../index.js";
3
3
  createLoaderWorker(PLYLoader);
4
+ //# sourceMappingURL=ply-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ply-worker.js","sourceRoot":"","sources":["../../src/workers/ply-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,SAAS,EAAC,oBAAiB;AAEnC,kBAAkB,CAAC,SAAS,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loaders.gl/ply",
3
- "version": "4.4.0-alpha.2",
3
+ "version": "4.4.0-alpha.9",
4
4
  "description": "Framework-independent loader for the PLY format",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -27,6 +27,9 @@
27
27
  "types": "./dist/index.d.ts",
28
28
  "import": "./dist/index.js",
29
29
  "require": "./dist/index.cjs"
30
+ },
31
+ "./ply-worker.js": {
32
+ "import": "./dist/ply-worker.js"
30
33
  }
31
34
  },
32
35
  "sideEffects": false,
@@ -42,12 +45,12 @@
42
45
  "build-worker": "esbuild src/workers/ply-worker.ts --bundle --outfile=dist/ply-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
43
46
  },
44
47
  "dependencies": {
45
- "@loaders.gl/loader-utils": "4.4.0-alpha.2",
46
- "@loaders.gl/schema": "4.4.0-alpha.2",
47
- "@loaders.gl/schema-utils": "4.4.0-alpha.2"
48
+ "@loaders.gl/loader-utils": "4.4.0-alpha.9",
49
+ "@loaders.gl/schema": "4.4.0-alpha.9",
50
+ "@loaders.gl/schema-utils": "4.4.0-alpha.9"
48
51
  },
49
52
  "peerDependencies": {
50
53
  "@loaders.gl/core": "4.4.0-alpha.1"
51
54
  },
52
- "gitHead": "3d9fed050eabdc0812ddf2f4d5fb9914a34ee0c2"
55
+ "gitHead": "e9e6710379718c7663e97eba868c76e15de4cb84"
53
56
  }
@@ -25,7 +25,12 @@
25
25
  // }
26
26
  // });
27
27
 
28
- import {makeLineIterator, makeTextDecoderIterator, forEach} from '@loaders.gl/loader-utils';
28
+ import {
29
+ makeLineIterator,
30
+ makeTextDecoderIterator,
31
+ forEach,
32
+ toArrayBufferIterator
33
+ } from '@loaders.gl/loader-utils';
29
34
  import normalizePLY from './normalize-ply';
30
35
  import {PLYMesh, PLYHeader, PLYElement, PLYProperty, PLYAttributes} from './ply-types';
31
36
 
@@ -37,10 +42,12 @@ let currentElement: PLYElement;
37
42
  * @param options
38
43
  */
39
44
  export async function* parsePLYInBatches(
40
- iterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,
45
+ iterator:
46
+ | AsyncIterable<ArrayBufferLike | ArrayBufferView>
47
+ | Iterable<ArrayBufferLike | ArrayBufferView>,
41
48
  options: any
42
49
  ): AsyncIterable<PLYMesh> {
43
- const lineIterator = makeLineIterator(makeTextDecoderIterator(iterator));
50
+ const lineIterator = makeLineIterator(makeTextDecoderIterator(toArrayBufferIterator(iterator)));
44
51
  const header = await parsePLYHeader(lineIterator, options);
45
52
 
46
53
  let attributes: PLYAttributes;