BabylonScene.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "stdafx.h"
  2. #include "BabylonScene.h"
  3. web::json::value BabylonScene::toJson()
  4. {
  5. auto jobj = web::json::value::object();
  6. jobj[L"autoClear"] = web::json::value::boolean(_autoClear);
  7. writeVector3(jobj, L"clearColor", _clearColor);
  8. writeVector3(jobj, L"ambientColor", _ambientColor);
  9. jobj[L"fogMode"] = web::json::value::number(_fogMode);
  10. writeVector3(jobj, L"fogColor", _fogColor);
  11. jobj[L"fogStart"] = web::json::value::number(_fogStart);
  12. jobj[L"fogEnd"] = web::json::value::number(_fogEnd);
  13. jobj[L"fogDensity"] = web::json::value::number(_fogDensity);
  14. writeVector3(jobj, L"gravity", _gravity);
  15. jobj[L"activeCameraID"] = web::json::value::string(_activeCameraID);
  16. auto jcameras = web::json::value::array();
  17. for (auto& cam : _cameras) {
  18. jcameras[jcameras.size()] = cam.toJson();
  19. }
  20. jobj[L"cameras"] = jcameras;
  21. auto jmeshes = web::json::value::array();
  22. for (auto& mesh : _meshes) {
  23. jmeshes[jmeshes.size()] = mesh.toJson();
  24. }
  25. jobj[L"meshes"] = jmeshes;
  26. auto jmats = web::json::value::array();
  27. for (auto& mat : _materials) {
  28. jmats[jmats.size()] = mat.toJson();
  29. }
  30. jobj[L"materials"] = jmats;
  31. auto jmulmats = web::json::value::array();
  32. for (auto& mat : _multiMaterials) {
  33. jmulmats[jmulmats.size()] = mat.toJson();
  34. }
  35. jobj[L"multiMaterials"] = jmulmats;
  36. auto jlights = web::json::value::array();
  37. for (auto& light : _lights) {
  38. jlights[jlights.size()] = light.toJson();
  39. }
  40. jobj[L"lights"] = jlights;
  41. auto jskeletons = web::json::value::array();
  42. for (auto& skel : _skeletons){
  43. jskeletons[jskeletons.size()] = skel->toJson();
  44. }
  45. jobj[L"skeletons"] = jskeletons;
  46. auto jshadowGenerators = web::json::value::array();
  47. for (auto& sg : _shadowGenerators) {
  48. jshadowGenerators[jshadowGenerators.size()] = sg->toJson();
  49. }
  50. jobj[L"shadowGenerators"] = jshadowGenerators;
  51. return jobj;
  52. }
  53. BabylonScene::BabylonScene() :
  54. _autoClear(true),
  55. _clearColor(.2f, .2f, .3f),
  56. _ambientColor(0,0,0),
  57. _gravity(0,0,-.9f)
  58. {
  59. }
  60. BabylonScene::~BabylonScene()
  61. {
  62. }