Minor modifications.
This commit is contained in:
parent
0a269785da
commit
a8de237a51
@ -40,9 +40,8 @@ OV.ThreeImporter = class extends OV.ImporterBase
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Promise.all (libraries).then (() => {
|
Promise.all (libraries).then (() => {
|
||||||
const mainFileUrl = OV.CreateObjectUrl (fileContent);
|
const loader = this.CreateLoader ();
|
||||||
const loader = this.CreateLoader (mainFileUrl);
|
this.LoadModel (fileContent, loader, onFinish);
|
||||||
this.LoadModel (mainFileUrl, loader, onFinish);
|
|
||||||
}).catch (() => {
|
}).catch (() => {
|
||||||
onFinish ();
|
onFinish ();
|
||||||
});
|
});
|
||||||
@ -59,12 +58,12 @@ OV.ThreeImporter = class extends OV.ImporterBase
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
CreateLoader (mainFileUrl)
|
CreateLoader ()
|
||||||
{
|
{
|
||||||
const manager = new THREE.LoadingManager ();
|
const manager = new THREE.LoadingManager ();
|
||||||
manager.setURLModifier ((url) => {
|
manager.setURLModifier ((url) => {
|
||||||
if (url === mainFileUrl) {
|
if (url.startsWith ('data:') || url.startsWith ('blob:')) {
|
||||||
return mainFileUrl;
|
return url;
|
||||||
}
|
}
|
||||||
const fileBuffer = this.callbacks.getFileBuffer (url);
|
const fileBuffer = this.callbacks.getFileBuffer (url);
|
||||||
const fileUrl = OV.CreateObjectUrl (fileBuffer);
|
const fileUrl = OV.CreateObjectUrl (fileBuffer);
|
||||||
@ -77,7 +76,7 @@ OV.ThreeImporter = class extends OV.ImporterBase
|
|||||||
return loader;
|
return loader;
|
||||||
}
|
}
|
||||||
|
|
||||||
LoadModel (mainFileUrl, loader, onFinish)
|
LoadModel (fileContent, loader, onFinish)
|
||||||
{
|
{
|
||||||
function SetColor (color, threeColor)
|
function SetColor (color, threeColor)
|
||||||
{
|
{
|
||||||
@ -93,13 +92,17 @@ OV.ThreeImporter = class extends OV.ImporterBase
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: error
|
// TODO: error handling
|
||||||
|
const mainFileUrl = OV.CreateObjectUrl (fileContent);
|
||||||
loader.load (mainFileUrl, (object) => {
|
loader.load (mainFileUrl, (object) => {
|
||||||
object.traverse ((child) => {
|
object.traverse ((child) => {
|
||||||
if (child.isMesh) {
|
if (child.isMesh) {
|
||||||
// TODO: merge same materials
|
// TODO: merge same materials
|
||||||
// TODO: PBR materials
|
// TODO: PBR materials
|
||||||
console.log (child);
|
console.log (child);
|
||||||
|
setTimeout (() => {
|
||||||
|
console.log (child);
|
||||||
|
}, 2000);
|
||||||
let threeMaterial = child.material;
|
let threeMaterial = child.material;
|
||||||
let material = new OV.Material (OV.MaterialType.Phong);
|
let material = new OV.Material (OV.MaterialType.Phong);
|
||||||
material.name = threeMaterial.name;
|
material.name = threeMaterial.name;
|
||||||
@ -110,6 +113,7 @@ OV.ThreeImporter = class extends OV.ImporterBase
|
|||||||
}
|
}
|
||||||
const materialIndex = this.model.AddMaterial (material);
|
const materialIndex = this.model.AddMaterial (material);
|
||||||
let mesh = OV.ConvertThreeGeometryToMesh (child.geometry, materialIndex);
|
let mesh = OV.ConvertThreeGeometryToMesh (child.geometry, materialIndex);
|
||||||
|
// TODO: transform
|
||||||
this.model.AddMesh (mesh);
|
this.model.AddMesh (mesh);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user