expo-three
Version:
Utilities for using THREE.js on Expo
39 lines • 1.27 kB
JavaScript
import THREE from './Three';
async function parseWithLoaderAsync({ json, assetProvider, loader }) {
loader.setPath && loader.setPath(assetProvider);
return loader.parse(json, assetProvider);
}
export default async function parseAsync({ json, format, assetProvider }) {
if (!format && json.metadata && json.metadata.type) {
format = json.metadata.type;
}
if (!format) {
throw new Error('ExpoTHREE: parseAsync: Invalid null format provided');
}
switch (format) {
case 'clara':
case 'object':
return parseWithLoaderAsync({
json,
assetProvider,
loader: new THREE.ObjectLoader(),
});
case 'json':
case 'blender':
return parseWithLoaderAsync({
json,
assetProvider,
loader: new THREE.JSONLoader(),
});
case 'buffer':
return parseWithLoaderAsync({
json,
assetProvider,
loader: new THREE.BufferGeometryLoader(),
});
case 'scene':
default:
throw new Error(`ExpoTHREE.parseAsync: ${format} not supported.`);
}
}
//# sourceMappingURL=parseAsync.js.map