@loaders.gl/ply
Version:
Framework-independent loader for the PLY format
34 lines (33 loc) • 1.02 kB
JavaScript
import { deduceMeshSchema } from '@loaders.gl/schema';
/**
* Gets schema from PLY header
* @param plyHeader
* @param metadata
* @returns Schema
*/
export function getPLYSchema(plyHeader, attributes) {
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) {
/* eslint-disable camelcase */
const metadata = {};
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;
}