UNPKG

@loaders.gl/ply

Version:

Framework-independent loader for the PLY format

37 lines (34 loc) 1.15 kB
import {Schema, MeshAttributes, deduceMeshSchema} from '@loaders.gl/schema'; import type {PLYHeader} from './ply-types'; /** * Gets schema from PLY header * @param plyHeader * @param metadata * @returns Schema */ export function getPLYSchema(plyHeader: PLYHeader, attributes: MeshAttributes): Schema { const metadata = makeMetadataFromPlyHeader(plyHeader); const schema = deduceMeshSchema(attributes, metadata); return schema; } /** * Make arrow like schema metadata by PlyHeader properties * @param plyHeader * @returns */ function makeMetadataFromPlyHeader(plyHeader: PLYHeader): Record<string, string> { /* eslint-disable camelcase */ const metadata: Record<string, string> = {}; metadata.ply_comments = JSON.stringify(plyHeader.comments); metadata.ply_elements = JSON.stringify(plyHeader.elements); if (plyHeader.format !== undefined) { metadata.ply_format = plyHeader.format; } if (plyHeader.version !== undefined) { metadata.ply_version = plyHeader.version; } if (plyHeader.headerLength !== undefined) { metadata.ply_headerLength = plyHeader.headerLength.toString(10); } return metadata; }