Unable to run the example application
I followed the steps in https://github.com/google/draco/tree/master/javascript/example and the one in the codelabs https://codelabs.developers.google.com/codelabs/draco-3d/index.html#5 but both of them result in the same error.
DRACOLoader.js:7 Uncaught TypeError: Class constructor ic cannot be invoked without 'new'
at new THREE.DRACOLoader (DRACOLoader.js:7)
at webgl_loader_draco.html:47
THREE.DRACOLoader @ DRACOLoader.js:7
(anonymous) @ webgl_loader_draco.html:47
In DRACOLoader.js
/**
* @author Don McCurdy / https://www.donmccurdy.com
*/
THREE.DRACOLoader = function ( manager ) {
THREE.Loader.call( this, manager ); // <--- this line fails with the error "Uncaught TypeError: Class constructor ic cannot be invoked without 'new'"
this.decoderPath = '';
this.decoderConfig = {};
this.decoderBinary = null;
this.decoderPending = null;
this.workerLimit = 4;
this.workerPool = [];
this.workerNextTaskID = 1;
this.workerSourceURL = '';
this.defaultAttributeIDs = {
position: 'POSITION',
normal: 'NORMAL',
color: 'COLOR',
uv: 'TEX_COORD'
};
this.defaultAttributeTypes = {
position: 'Float32Array',
normal: 'Float32Array',
color: 'Float32Array',
uv: 'Float32Array'
};
};
Is anyone able to run the example applications within this repository?
@nadr0 It's not just you. I ran into the same issue. It looks like version skew but I wasn't able to understand enough to workaround.
This change may fix your problem:
In DRACOLoader.js
- THREE.Loader.call( this, manager );
+ const that = new THREE.Loader(manager);
+ Object.assign(this, that);
@IanYet's answer fixed it for me. Is this repo accepting PRs for fixes? Issue probably occurred due to a THREE.js version missmatch, as it's not loaded with any specific version in the HTML files.
@IanYet thanks much, your answer fixed it. This should be merged in the repo!