@softrobot/loaders.gl-draco
Version:
Framework-independent loader and writer for Draco compressed meshes and point clouds
41 lines (39 loc) • 1.05 kB
JavaScript
import { VERSION } from './lib/utils/version';
import { loadDracoDecoderModule } from './lib/draco-module-loader';
import DracoParser from './lib/draco-parser';
export const DracoWorkerLoader = {
name: 'Draco',
id: 'draco',
module: 'draco',
version: VERSION,
worker: true,
extensions: ['drc'],
mimeTypes: ['application/octet-stream'],
binary: true,
tests: ['DRACO'],
options: {
draco: {
decoderType: typeof WebAssembly === 'object' ? 'wasm' : 'js',
libraryPath: "libs/",
extraAttributes: {}
}
}
};
export const DracoLoader = { ...DracoWorkerLoader,
parse
};
async function parse(arrayBuffer, options, context, loader) {
const {
draco
} = await loadDracoDecoderModule(options);
const dracoParser = new DracoParser(draco);
try {
return dracoParser.parseSync(arrayBuffer, {
extraAttributes: options.draco && options.draco.extraAttributes || null,
...(options.parseOptions || {})
});
} finally {
dracoParser.destroy();
}
}
//# sourceMappingURL=draco-loader.js.map