MCPcopy Create free account
hub / github.com/InteractiveComputerGraphics/SPlisHSPlasH / writeSceneFile

Method writeSceneFile

Simulator/SimulatorBase.cpp:2867–2906  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2865}
2866
2867void SimulatorBase::writeSceneFile(const std::string &fileName)
2868{
2869 Utilities::SceneWriter writer(m_sceneLoader->getJSONData());
2870 const Utilities::SceneLoader::Scene& scene = SceneConfiguration::getCurrent()->getScene();
2871
2872 Simulation* sim = Simulation::getCurrent();
2873 writer.writeParameterObject("Configuration", this);
2874 writer.writeParameterObject("Configuration", Simulation::getCurrent());
2875 writer.writeTimeStepParameterObject("Configuration", Simulation::getCurrent()->getTimeStep());
2876#ifdef USE_DEBUG_TOOLS
2877 writer.writeParameterObject("Configuration", Simulation::getCurrent()->getDebugTools());
2878#endif
2879
2880 for (unsigned int i = 0; i < sim->numberOfFluidModels(); i++)
2881 {
2882 FluidModel* model = sim->getFluidModel(i);
2883 const std::string& key = model->getId();
2884 writer.updateMaterialParameterConfig(model->getId(), model);
2885 writer.updateMaterialParameterConfig(model->getId(), (NonPressureForceBase*)model->getXSPH());
2886 writer.updateMaterialParameterConfig(model->getId(), (NonPressureForceBase*)model->getDragBase());
2887 writer.updateMaterialParameterConfig(model->getId(), (NonPressureForceBase*)model->getSurfaceTensionBase());
2888 writer.updateMaterialParameterConfig(model->getId(), (NonPressureForceBase*)model->getViscosityBase());
2889 writer.updateMaterialParameterConfig(model->getId(), (NonPressureForceBase*)model->getVorticityBase());
2890 writer.updateMaterialParameterConfig(model->getId(), (NonPressureForceBase*)model->getElasticityBase());
2891
2892 for (auto material : scene.materials)
2893 {
2894 if (material->id == key)
2895 {
2896 writer.updateMaterialParameterConfig(model->getId(), "colorField", getColorField(i));
2897 writer.updateMaterialParameterConfig(model->getId(), "colorMapType", getColorMapType(i));
2898 writer.updateMaterialParameterConfig(model->getId(), "renderMinValue", getRenderMinValue(i));
2899 writer.updateMaterialParameterConfig(model->getId(), "renderMaxValue", getRenderMaxValue(i));
2900 writer.updateMaterialParameterConfig(model->getId(), "visible", getVisible(i));
2901 }
2902 }
2903 }
2904
2905 writer.writeScene(fileName.c_str());
2906}

Callers

nothing calls this directly

Calls 15

writeParameterObjectMethod · 0.80
getTimeStepMethod · 0.80
getDebugToolsMethod · 0.80
numberOfFluidModelsMethod · 0.80
getFluidModelMethod · 0.80
getXSPHMethod · 0.80
getDragBaseMethod · 0.80
getSurfaceTensionBaseMethod · 0.80
getViscosityBaseMethod · 0.80
getVorticityBaseMethod · 0.80
getElasticityBaseMethod · 0.80

Tested by

no test coverage detected