UNPKG

aframe-extras

Version:

Add-ons and examples for A-Frame VR.

48 lines (40 loc) 1.36 kB
import { ColladaLoader } from 'three/addons/loaders/ColladaLoader.js'; THREE.ColladaLoader = ColladaLoader; /** * collada-model-legacy * * Loader for COLLADA (.dae) format. */ AFRAME.registerComponent('collada-model-legacy', { schema: {type: 'asset'}, init: function () { this.model = null; this.loader = new THREE.ColladaLoader(); }, update: function () { var self = this; var el = this.el; var src = this.data; var rendererSystem = this.el.sceneEl.systems.renderer; if (!src) { return; } this.remove(); this.loader.load(src, function (colladaModel) { self.model = colladaModel.scene; self.model.traverse(function (object) { if (object.isMesh) { var material = object.material; if (material.color) rendererSystem.applyColorCorrection(material.color); if (material.map) rendererSystem.applyColorCorrection(material.map); if (material.emissive) rendererSystem.applyColorCorrection(material.emissive); if (material.emissiveMap) rendererSystem.applyColorCorrection(material.emissiveMap); } }); el.setObject3D('mesh', self.model); el.emit('model-loaded', {format: 'collada', model: self.model}); }); }, remove: function () { if (!this.model) { return; } this.el.removeObject3D('mesh'); } });