From 1b2b899b48d6a7f85d1f33303dcb89ec707e0157 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Tue, 10 Aug 2021 08:25:39 +0200 Subject: [PATCH] Move tga loader initialization to loaders. --- source/threejs/threeimporter.js | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/source/threejs/threeimporter.js b/source/threejs/threeimporter.js index 4200aea..e4526f4 100644 --- a/source/threejs/threeimporter.js +++ b/source/threejs/threeimporter.js @@ -42,12 +42,14 @@ OV.ThreeLoaderFbx = class extends OV.ThreeLoader { return [ 'three_loaders/fflate.min.js', + 'three_loaders/TGALoader.js', 'three_loaders/FBXLoader.js' ]; } CreateLoader (manager) { + manager.addHandler (/\.tga$/i, new THREE.TGALoader (manager)); return new THREE.FBXLoader (manager); } @@ -76,12 +78,14 @@ OV.ThreeLoaderDae = class extends OV.ThreeLoader GetExternalLibraries () { return [ + 'three_loaders/TGALoader.js', 'three_loaders/ColladaLoader.js' ]; } CreateLoader (manager) { + manager.addHandler (/\.tga$/i, new THREE.TGALoader (manager)); return new THREE.ColladaLoader (manager); } @@ -162,11 +166,12 @@ OV.ThreeImporter = class extends OV.ImporterBase return; } - const libraries = this.GetExternalLibraries (loader); + const libraries = loader.GetExternalLibraries (); if (libraries === null) { onFinish (); return; } + LoadLibraries (libraries, () => { this.LoadModel (loader, fileContent, onFinish); }, () => { @@ -185,18 +190,6 @@ OV.ThreeImporter = class extends OV.ImporterBase return null; } - GetExternalLibraries (loader) - { - let libraries = [ - 'three_loaders/TGALoader.js' - ]; - let loaderLibraries = loader.GetExternalLibraries (); - for (let i = 0; i < loaderLibraries.length; i++) { - libraries.push (loaderLibraries[i]); - } - return libraries; - } - LoadModel (loader, fileContent, onFinish) { let loadedObject = null; @@ -206,8 +199,6 @@ OV.ThreeImporter = class extends OV.ImporterBase this.OnThreeObjectsLoaded (loader, loadedObject, externalFileNames, onFinish); } }); - // TODO - loadingManager.addHandler (/\.tga$/i, new THREE.TGALoader (loadingManager)); const mainFileUrl = OV.CreateObjectUrl (fileContent); loadingManager.setURLModifier ((url) => { @@ -230,6 +221,8 @@ OV.ThreeImporter = class extends OV.ImporterBase }); const threeLoader = loader.CreateLoader (loadingManager); + console.log (threeLoader.parse.getElementsByTagName); + if (threeLoader === null) { onFinish (); return; @@ -359,6 +352,7 @@ OV.ThreeImporter = class extends OV.ImporterBase if (child.name !== undefined && child.name !== null) { mesh.SetName (child.name); } + // TODO: handle group transformation if (child.matrixWorld !== undefined && child.matrixWorld !== null) { const matrix = new OV.Matrix (child.matrixWorld.elements); const transformation = new OV.Transformation (matrix);