UNPKG

@loaders.gl/i3s

Version:
50 lines (43 loc) 1.51 kB
// loaders.gl // SPDX-License-Identifier: MIT // Copyright vis.gl contributors import type {LoaderWithParser, LoaderContext} from '@loaders.gl/loader-utils'; import type {I3SLoaderOptions} from './i3s-loader'; import {parseI3STileContent} from './lib/parsers/parse-i3s-tile-content'; import {I3STileContent, I3STileOptions, I3STilesetOptions} from './types'; // __VERSION__ is injected by babel-plugin-version-inline // @ts-ignore TS2304: Cannot find name '__VERSION__'. const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest'; /** * Loader for I3S - Indexed 3D Scene Layer */ export const I3SContentLoader = { dataType: null as unknown as I3STileContent | null, batchType: null as never, name: 'I3S Content (Indexed Scene Layers)', id: 'i3s-content', module: 'i3s', worker: true, version: VERSION, mimeTypes: ['application/octet-stream'], parse, extensions: ['bin'], options: { 'i3s-content': {} } } as const satisfies LoaderWithParser<I3STileContent | null, never, I3SLoaderOptions>; async function parse(data, options?: I3SLoaderOptions, context?: LoaderContext) { const {tile, _tileOptions, tileset, _tilesetOptions} = options?.i3s || {}; const tileOptions = _tileOptions || tile; const tilesetOptions = _tilesetOptions || tileset; if (!tileOptions || !tilesetOptions) { return null; } return await parseI3STileContent( data, tileOptions as I3STileOptions, tilesetOptions as I3STilesetOptions, options, context ); }