|
@@ -60,22 +60,22 @@
|
|
return serializationObject;
|
|
return serializationObject;
|
|
};
|
|
};
|
|
|
|
|
|
- var finalizeSingleMesh = (mesh: Mesh, serializationObject: any, withMaterial: boolean = false) => {
|
|
|
|
|
|
+ var finalizeSingleMesh = (mesh: Mesh, serializationObject: any) => {
|
|
//only works if the mesh is already loaded
|
|
//only works if the mesh is already loaded
|
|
if (mesh.delayLoadState === Engine.DELAYLOADSTATE_LOADED || mesh.delayLoadState === Engine.DELAYLOADSTATE_NONE) {
|
|
if (mesh.delayLoadState === Engine.DELAYLOADSTATE_LOADED || mesh.delayLoadState === Engine.DELAYLOADSTATE_NONE) {
|
|
//serialize material
|
|
//serialize material
|
|
if (mesh.material) {
|
|
if (mesh.material) {
|
|
- if (withMaterial || mesh.material instanceof StandardMaterial) {
|
|
|
|
- serializationObject.materials = serializationObject.materials || [];
|
|
|
|
- if (!serializationObject.materials.some((mat: Material) => (mat.id === (<Material>mesh.material).id))) {
|
|
|
|
- serializationObject.materials.push(mesh.material.serialize());
|
|
|
|
- }
|
|
|
|
- } else if (mesh.material instanceof MultiMaterial) {
|
|
|
|
|
|
+ if (mesh.material instanceof MultiMaterial) {
|
|
serializationObject.multiMaterials = serializationObject.multiMaterials || [];
|
|
serializationObject.multiMaterials = serializationObject.multiMaterials || [];
|
|
if (!serializationObject.multiMaterials.some((mat: Material) => (mat.id === (<Material>mesh.material).id))) {
|
|
if (!serializationObject.multiMaterials.some((mat: Material) => (mat.id === (<Material>mesh.material).id))) {
|
|
serializationObject.multiMaterials.push(mesh.material.serialize());
|
|
serializationObject.multiMaterials.push(mesh.material.serialize());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ } else {
|
|
|
|
+ serializationObject.materials = serializationObject.materials || [];
|
|
|
|
+ if (!serializationObject.materials.some((mat: Material) => (mat.id === (<Material>mesh.material).id))) {
|
|
|
|
+ serializationObject.materials.push(mesh.material.serialize());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//serialize geometry
|
|
//serialize geometry
|
|
@@ -318,7 +318,7 @@
|
|
return serializationObject;
|
|
return serializationObject;
|
|
}
|
|
}
|
|
|
|
|
|
- public static SerializeMesh(toSerialize: any /* Mesh || Mesh[] */, withParents: boolean = false, withChildren: boolean = false, withMaterial: boolean = false): any {
|
|
|
|
|
|
+ public static SerializeMesh(toSerialize: any /* Mesh || Mesh[] */, withParents: boolean = false, withChildren: boolean = false): any {
|
|
var serializationObject: any = {};
|
|
var serializationObject: any = {};
|
|
|
|
|
|
SceneSerializer.ClearCache();
|
|
SceneSerializer.ClearCache();
|
|
@@ -343,7 +343,7 @@
|
|
}
|
|
}
|
|
|
|
|
|
toSerialize.forEach((mesh: Mesh) => {
|
|
toSerialize.forEach((mesh: Mesh) => {
|
|
- finalizeSingleMesh(mesh, serializationObject, withMaterial);
|
|
|
|
|
|
+ finalizeSingleMesh(mesh, serializationObject);
|
|
});
|
|
});
|
|
|
|
|
|
return serializationObject;
|
|
return serializationObject;
|