mirror of
https://github.com/tengge1/ShadowEditor.git
synced 2026-01-25 15:08:11 +00:00
74 lines
2.0 KiB
JavaScript
74 lines
2.0 KiB
JavaScript
import BaseLoader from './BaseLoader';
|
||
import AMFLoader from './AMFLoader';
|
||
import AWDLoader from './AWDLoader';
|
||
import BabylonLoader from './BabylonLoader';
|
||
import BinaryLoader from './BinaryLoader';
|
||
import ColladaLoader from './ColladaLoader';
|
||
import CTMLoader from './CTMLoader';
|
||
import FBXLoader from './FBXLoader';
|
||
import GLTFLoader from './GLTFLoader';
|
||
import KMZLoader from './KMZLoader';
|
||
import MD2Loader from './MD2Loader';
|
||
import ObjectLoader from './ObjectLoader';
|
||
import OBJLoader from './OBJLoader';
|
||
import PLYLoader from './PLYLoader';
|
||
import STLLoader from './STLLoader';
|
||
import VTKLoader from './VTKLoader';
|
||
import LOLLoader from './LOLLoader';
|
||
|
||
const Loaders = {
|
||
'amf': AMFLoader,
|
||
'awd': AWDLoader,
|
||
'babylon': BabylonLoader,
|
||
'binary': BinaryLoader,
|
||
'ctm': CTMLoader,
|
||
'dae': ColladaLoader,
|
||
'fbx': FBXLoader,
|
||
'glb': GLTFLoader,
|
||
'gltf': GLTFLoader,
|
||
'kmz': KMZLoader,
|
||
'md2': MD2Loader,
|
||
'json': ObjectLoader,
|
||
'obj': OBJLoader,
|
||
'ply': PLYLoader,
|
||
'stl': STLLoader,
|
||
'vtk': VTKLoader,
|
||
'lol': LOLLoader
|
||
};
|
||
|
||
/**
|
||
* ModelLoader
|
||
* @author tengge / https://github.com/tengge1
|
||
*/
|
||
function ModelLoader() {
|
||
BaseLoader.call(this);
|
||
}
|
||
|
||
ModelLoader.prototype = Object.create(BaseLoader.prototype);
|
||
ModelLoader.prototype.constructor = ModelLoader;
|
||
|
||
ModelLoader.prototype.load = function (url, options) {
|
||
options = options || {};
|
||
var type = options.type;
|
||
|
||
if (type === undefined) {
|
||
console.warn(`ModelLoader: 未传递type参数,无法加载。`);
|
||
return new Promise(resolve => {
|
||
resolve(null);
|
||
});
|
||
}
|
||
|
||
return new Promise(resolve => {
|
||
var loader = Loaders[type];
|
||
if (loader === undefined) {
|
||
console.warn(`ModelLoader: 不存在加载${type}后缀模型的加载器。`);
|
||
resolve(null);
|
||
return;
|
||
}
|
||
(new loader(this.app)).load(url, options).then(obj => {
|
||
resolve(obj);
|
||
});
|
||
});
|
||
};
|
||
|
||
export default ModelLoader; |