expo-three
Version:
Utilities for using THREE.js with Expo
32 lines • 1.18 kB
JavaScript
import { ColladaLoader } from 'three/examples/jsm/loaders/ColladaLoader';
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader';
import { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader';
import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader';
function getExtension(uri) {
const lastUriComponent = uri.split('.').pop();
return lastUriComponent.split('?')[0].split('#')[0];
}
export function loaderClassForUri(uri) {
const extension = getExtension(uri);
return loaderClassForExtension(extension);
}
export function loaderClassForExtension(extension) {
if (typeof extension !== 'string') {
throw new Error('Supplied extension is not a valid string');
}
switch (extension.toLowerCase()) {
case 'glb':
case 'gltf':
return GLTFLoader;
case 'obj':
return OBJLoader;
case 'mtl':
return MTLLoader;
case 'dae':
return ColladaLoader;
default:
throw new Error('ExpoTHREE.loaderClassForExtension(): Unrecognized file type ' +
extension);
}
}
//# sourceMappingURL=loaderClassForExtension.js.map