babylon.sceneSerializer.js 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "use strict";
  2. var BABYLON = BABYLON || {};
  3. (function () {
  4. var serializeLight = function (light, serializationObject) {
  5. serializationObject.name = light.name;
  6. if (light instanceof BABYLON.PointLight) {
  7. serializationObject.type = 0;
  8. serializationObject.position = light.position.asArray();
  9. }
  10. //switch (light.type) {
  11. // case 1:
  12. // light = new BABYLON.DirectionalLight(parsedLight.name, BABYLON.Vector3.FromArray(parsedLight.direction), scene);
  13. // light.position = BABYLON.Vector3.FromArray(parsedLight.position);
  14. // break;
  15. // case 2:
  16. // light = new BABYLON.SpotLight(parsedLight.name, BABYLON.Vector3.FromArray(parsedLight.position), BABYLON.Vector3.FromArray(parsedLight.direction), parsedLight.angle, parsedLight.exponent, scene);
  17. // break;
  18. // case 3:
  19. // light = new BABYLON.HemisphericLight(parsedLight.name, BABYLON.Vector3.FromArray(parsedLight.direction), scene);
  20. // light.groundColor = BABYLON.Color3.FromArray(parsedLight.groundColor);
  21. // break;
  22. //}
  23. serializationObject.id = light.id;
  24. if (light.intensity) {
  25. serializationObject.intensity = light.intensity;
  26. }
  27. serializationObject.diffuse = light.diffuse.asArray();
  28. serializationObject.specular = light.specular.asArray();
  29. };
  30. BABYLON.SceneSerializer = {
  31. Serialize: function (scene) {
  32. var serializationObject = {};
  33. // Scene
  34. serializationObject.useDelayedTextureLoading = scene.useDelayedTextureLoading;
  35. serializationObject.autoClear = scene.autoClear;
  36. serializationObject.clearColor = scene.clearColor.asArray();
  37. serializationObject.ambientColor = scene.ambientColor.asArray();
  38. serializationObject.gravity = scene.gravity.asArray();
  39. // Fog
  40. if (scene.fogMode && scene.fogMode !== 0) {
  41. serializationObject.fogMode = scene.fogMode;
  42. serializationObject.fogColor = scene.fogColor.asArray();
  43. serializationObject.fogStart = scene.fogStart;
  44. serializationObject.fogEnd = scene.fogEnd;
  45. serializationObject.fogDensity = scene.fogDensity;
  46. }
  47. // Lights
  48. serializationObject.lights = [];
  49. for (var index = 0; index < scene.lights.length; index++) {
  50. var light = scene.lights[index];
  51. var serializedLight = {};
  52. serializationObject.lights.push(serializedLight);
  53. serializeLight(light, serializedLight);
  54. }
  55. return JSON.stringify(serializationObject);
  56. }
  57. };
  58. })();