2018-12-01 14:33:13 +08:00

37 lines
973 B
JavaScript

import BaseLoader from './BaseLoader';
/**
* DRACOLoader
* @author tengge / https://github.com/tengge1
*/
function DRACOLoader() {
BaseLoader.call(this);
}
DRACOLoader.prototype = Object.create(BaseLoader.prototype);
DRACOLoader.prototype.constructor = DRACOLoader;
DRACOLoader.prototype.load = function (url) {
return new Promise(resolve => {
THREE.DRACOLoader.setDecoderPath('assets/js/loader/draco/');
THREE.DRACOLoader.setDecoderConfig({ type: 'js' });
var loader = new THREE.DRACOLoader();
loader.load(url, geometry => {
geometry.computeVertexNormals();
var material = new THREE.MeshStandardMaterial();
var mesh = new THREE.Mesh(geometry, material);
// Release decoder resources.
THREE.DRACOLoader.releaseDecoderModule();
resolve(mesh);
}, undefined, () => {
resolve(null);
});
});
};
export default DRACOLoader;