UNPKG

@loaders.gl/draco

Version:

Framework-independent loader and writer for Draco compressed meshes and point clouds

26 lines (22 loc) 860 B
// loaders.gl // SPDX-License-Identifier: MIT // Copyright (c) vis.gl contributors import type {ArrowTable} from '@loaders.gl/schema'; import type {LoaderWithParser} from '@loaders.gl/loader-utils'; import type {DracoLoaderOptions} from './draco-loader'; import {DracoLoader} from './draco-loader'; import {convertMeshToTable} from '@loaders.gl/schema-utils'; /** * Loader for Draco3D compressed geometries */ export const DracoArrowLoader = { ...DracoLoader, dataType: null as unknown as ArrowTable, worker: false, parse } as const satisfies LoaderWithParser<ArrowTable, never, DracoLoaderOptions>; async function parse(arrayBuffer: ArrayBuffer, options?: DracoLoaderOptions): Promise<ArrowTable> { const mesh = await DracoLoader.parse(arrayBuffer, options); const arrowTable = convertMeshToTable(mesh, 'arrow-table'); return arrowTable; }