|
@@ -3009,6 +3009,8 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
|
|
var serializationInstance: any = {
|
|
var serializationInstance: any = {
|
|
name: instance.name,
|
|
name: instance.name,
|
|
id: instance.id,
|
|
id: instance.id,
|
|
|
|
+ isPickable: instance.isPickable,
|
|
|
|
+ checkCollisions: instance.checkCollisions,
|
|
position: instance.position.asArray(),
|
|
position: instance.position.asArray(),
|
|
scaling: instance.scaling.asArray()
|
|
scaling: instance.scaling.asArray()
|
|
};
|
|
};
|
|
@@ -3022,6 +3024,24 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
|
|
} else if (instance.rotation) {
|
|
} else if (instance.rotation) {
|
|
serializationInstance.rotation = instance.rotation.asArray();
|
|
serializationInstance.rotation = instance.rotation.asArray();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // Physics
|
|
|
|
+ //TODO implement correct serialization for physics impostors.
|
|
|
|
+ if (this.getScene()._getComponent(SceneComponentConstants.NAME_PHYSICSENGINE)) {
|
|
|
|
+ let impostor = instance.getPhysicsImpostor();
|
|
|
|
+ if (impostor) {
|
|
|
|
+ serializationInstance.physicsMass = impostor.getParam("mass");
|
|
|
|
+ serializationInstance.physicsFriction = impostor.getParam("friction");
|
|
|
|
+ serializationInstance.physicsRestitution = impostor.getParam("mass");
|
|
|
|
+ serializationInstance.physicsImpostor = impostor.type;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // Metadata
|
|
|
|
+ if (instance.metadata) {
|
|
|
|
+ serializationInstance.metadata = instance.metadata;
|
|
|
|
+ }
|
|
|
|
+
|
|
serializationObject.instances.push(serializationInstance);
|
|
serializationObject.instances.push(serializationInstance);
|
|
|
|
|
|
// Animations
|
|
// Animations
|
|
@@ -3375,6 +3395,10 @@ export class Mesh extends AbstractMesh implements IGetSetVerticesData {
|
|
instance._waitingParentId = parsedInstance.parentId;
|
|
instance._waitingParentId = parsedInstance.parentId;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (parsedInstance.isPickable !== undefined && parsedInstance.isPickable !== null) {
|
|
|
|
+ instance.isPickable = parsedInstance.isPickable;
|
|
|
|
+ }
|
|
|
|
+
|
|
if (parsedInstance.rotationQuaternion) {
|
|
if (parsedInstance.rotationQuaternion) {
|
|
instance.rotationQuaternion = Quaternion.FromArray(parsedInstance.rotationQuaternion);
|
|
instance.rotationQuaternion = Quaternion.FromArray(parsedInstance.rotationQuaternion);
|
|
} else if (parsedInstance.rotation) {
|
|
} else if (parsedInstance.rotation) {
|