@@ -96,6 +96,7 @@ SimulatorBase::SimulatorBase()
9696 m_colorMapType.resize (1 , 0 );
9797 m_renderMinValue.resize (1 , 0.0 );
9898 m_renderMaxValue.resize (1 , 5.0 );
99+ m_visible.resize (1 , true );
99100 m_particleAttributes = " velocity" ;
100101 m_timeStepCB = nullptr ;
101102 m_resetCB = nullptr ;
@@ -116,9 +117,6 @@ SimulatorBase::~SimulatorBase()
116117
117118 Utilities::Counting::printAverageCounts ();
118119 Utilities::Counting::printCounterSums ();
119-
120- delete m_boundarySimulator;
121- cleanupExporters ();
122120}
123121
124122void SimulatorBase::initParameters ()
@@ -623,11 +621,19 @@ void SimulatorBase::cleanup()
623621
624622#ifdef USE_EMBEDDED_PYTHON
625623 delete m_scriptObject;
626- delete Embedded::getCurrent ();
624+ if (Embedded::hasCurrent ())
625+ delete Embedded::getCurrent ();
627626#endif
628627
629628 delete SceneConfiguration::getCurrent ();
630629 delete Simulation::getCurrent ();
630+
631+ delete m_boundarySimulator;
632+ cleanupExporters ();
633+
634+ auto & sinks = Utilities::logger.getSinks ();
635+ while (sinks.size () != 0 )
636+ Utilities::logger.removeSink (sinks[0 ]);
631637}
632638
633639void SimulatorBase::readParameters ()
@@ -662,6 +668,7 @@ void SimulatorBase::readParameters()
662668 setColorMapType (i, material->colorMapType );
663669 setRenderMinValue (i, material->minVal );
664670 setRenderMaxValue (i, material->maxVal );
671+ setVisible (i, material->visible );
665672 }
666673 }
667674 }
@@ -1266,6 +1273,7 @@ void SimulatorBase::initFluidData()
12661273 m_colorMapType.resize (sim->numberOfFluidModels (), 0 );
12671274 m_renderMinValue.resize (sim->numberOfFluidModels (), 0.0 );
12681275 m_renderMaxValue.resize (sim->numberOfFluidModels (), 5.0 );
1276+ m_visible.resize (sim->numberOfFluidModels (), true );
12691277
12701278 LOG_INFO << " Number of fluid particles: " << nParticles;
12711279}
@@ -1442,23 +1450,24 @@ void SimulatorBase::createFluidBlocks(std::map<std::string, unsigned int> &fluid
14421450
14431451 Vector3r start = minX + static_cast <Real>(2.0 )*scene.particleRadius *Vector3r::Ones ();
14441452 const unsigned int startIndex = (unsigned int )fluidParticles[fluidIndex].size ();
1445- const unsigned int numAddedParticles = stepsX * stepsY * stepsZ;
14461453
14471454 if ((stepsX <= 1 ) || (stepsY <= 1 ) || (stepsZ <= 1 ))
14481455 {
14491456 LOG_WARN << " FluidBlock with id \" " << scene.fluidBlocks [i]->id << " \" is empty." ;
14501457 continue ;
14511458 }
14521459
1453- fluidParticles[fluidIndex].reserve (fluidParticles[fluidIndex].size () + numAddedParticles);
1454- fluidVelocities[fluidIndex].resize (fluidVelocities[fluidIndex].size () + numAddedParticles);
1455- fluidObjectIds[fluidIndex].reserve (fluidObjectIds[fluidIndex].size () + numAddedParticles);
14561460
14571461 if (Simulation::getCurrent ()->is2DSimulation ())
14581462 {
14591463 stepsZ = 1 ;
14601464 start[2 ] = 0.0 ;
14611465 }
1466+ const unsigned int numAddedParticles = stepsX * stepsY * stepsZ;
1467+
1468+ fluidParticles[fluidIndex].reserve (fluidParticles[fluidIndex].size () + numAddedParticles);
1469+ fluidVelocities[fluidIndex].resize (fluidVelocities[fluidIndex].size () + numAddedParticles);
1470+ fluidObjectIds[fluidIndex].reserve (fluidObjectIds[fluidIndex].size () + numAddedParticles);
14621471
14631472 for (int j = 0 ; j < stepsX; j++)
14641473 {
@@ -1882,6 +1891,7 @@ void SimulatorBase::writeParameterState(BinaryFileWriter &binWriter)
18821891 binWriter.write (getColorMapType (model->getPointSetIndex ()));
18831892 binWriter.write (getRenderMinValue (model->getPointSetIndex ()));
18841893 binWriter.write (getRenderMaxValue (model->getPointSetIndex ()));
1894+ binWriter.write (getVisible (model->getPointSetIndex ()));
18851895 }
18861896}
18871897
@@ -1958,6 +1968,9 @@ void SimulatorBase::readParameterState(BinaryFileReader &binReader)
19581968 setRenderMinValue (model->getPointSetIndex (), v);
19591969 binReader.read (v);
19601970 setRenderMaxValue (model->getPointSetIndex (), v);
1971+ bool b;
1972+ binReader.read (b);
1973+ setVisible (model->getPointSetIndex (), b);
19611974 }
19621975}
19631976
@@ -2879,6 +2892,7 @@ void SimulatorBase::writeSceneFile(const std::string &fileName)
28792892 writer.updateMaterialParameterConfig (model->getId (), " colorMapType" , getColorMapType (i));
28802893 writer.updateMaterialParameterConfig (model->getId (), " renderMinValue" , getRenderMinValue (i));
28812894 writer.updateMaterialParameterConfig (model->getId (), " renderMaxValue" , getRenderMaxValue (i));
2895+ writer.updateMaterialParameterConfig (model->getId (), " visible" , getVisible (i));
28822896 }
28832897 }
28842898 }
0 commit comments