@@ -96,6 +96,7 @@ SimulatorBase::SimulatorBase()
96
96
m_colorMapType.resize (1 , 0 );
97
97
m_renderMinValue.resize (1 , 0.0 );
98
98
m_renderMaxValue.resize (1 , 5.0 );
99
+ m_visible.resize (1 , true );
99
100
m_particleAttributes = " velocity" ;
100
101
m_timeStepCB = nullptr ;
101
102
m_resetCB = nullptr ;
@@ -116,9 +117,6 @@ SimulatorBase::~SimulatorBase()
116
117
117
118
Utilities::Counting::printAverageCounts ();
118
119
Utilities::Counting::printCounterSums ();
119
-
120
- delete m_boundarySimulator;
121
- cleanupExporters ();
122
120
}
123
121
124
122
void SimulatorBase::initParameters ()
@@ -623,11 +621,19 @@ void SimulatorBase::cleanup()
623
621
624
622
#ifdef USE_EMBEDDED_PYTHON
625
623
delete m_scriptObject;
626
- delete Embedded::getCurrent ();
624
+ if (Embedded::hasCurrent ())
625
+ delete Embedded::getCurrent ();
627
626
#endif
628
627
629
628
delete SceneConfiguration::getCurrent ();
630
629
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 ]);
631
637
}
632
638
633
639
void SimulatorBase::readParameters ()
@@ -662,6 +668,7 @@ void SimulatorBase::readParameters()
662
668
setColorMapType (i, material->colorMapType );
663
669
setRenderMinValue (i, material->minVal );
664
670
setRenderMaxValue (i, material->maxVal );
671
+ setVisible (i, material->visible );
665
672
}
666
673
}
667
674
}
@@ -1266,6 +1273,7 @@ void SimulatorBase::initFluidData()
1266
1273
m_colorMapType.resize (sim->numberOfFluidModels (), 0 );
1267
1274
m_renderMinValue.resize (sim->numberOfFluidModels (), 0.0 );
1268
1275
m_renderMaxValue.resize (sim->numberOfFluidModels (), 5.0 );
1276
+ m_visible.resize (sim->numberOfFluidModels (), true );
1269
1277
1270
1278
LOG_INFO << " Number of fluid particles: " << nParticles;
1271
1279
}
@@ -1442,23 +1450,24 @@ void SimulatorBase::createFluidBlocks(std::map<std::string, unsigned int> &fluid
1442
1450
1443
1451
Vector3r start = minX + static_cast <Real>(2.0 )*scene.particleRadius *Vector3r::Ones ();
1444
1452
const unsigned int startIndex = (unsigned int )fluidParticles[fluidIndex].size ();
1445
- const unsigned int numAddedParticles = stepsX * stepsY * stepsZ;
1446
1453
1447
1454
if ((stepsX <= 1 ) || (stepsY <= 1 ) || (stepsZ <= 1 ))
1448
1455
{
1449
1456
LOG_WARN << " FluidBlock with id \" " << scene.fluidBlocks [i]->id << " \" is empty." ;
1450
1457
continue ;
1451
1458
}
1452
1459
1453
- fluidParticles[fluidIndex].reserve (fluidParticles[fluidIndex].size () + numAddedParticles);
1454
- fluidVelocities[fluidIndex].resize (fluidVelocities[fluidIndex].size () + numAddedParticles);
1455
- fluidObjectIds[fluidIndex].reserve (fluidObjectIds[fluidIndex].size () + numAddedParticles);
1456
1460
1457
1461
if (Simulation::getCurrent ()->is2DSimulation ())
1458
1462
{
1459
1463
stepsZ = 1 ;
1460
1464
start[2 ] = 0.0 ;
1461
1465
}
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);
1462
1471
1463
1472
for (int j = 0 ; j < stepsX; j++)
1464
1473
{
@@ -1882,6 +1891,7 @@ void SimulatorBase::writeParameterState(BinaryFileWriter &binWriter)
1882
1891
binWriter.write (getColorMapType (model->getPointSetIndex ()));
1883
1892
binWriter.write (getRenderMinValue (model->getPointSetIndex ()));
1884
1893
binWriter.write (getRenderMaxValue (model->getPointSetIndex ()));
1894
+ binWriter.write (getVisible (model->getPointSetIndex ()));
1885
1895
}
1886
1896
}
1887
1897
@@ -1958,6 +1968,9 @@ void SimulatorBase::readParameterState(BinaryFileReader &binReader)
1958
1968
setRenderMinValue (model->getPointSetIndex (), v);
1959
1969
binReader.read (v);
1960
1970
setRenderMaxValue (model->getPointSetIndex (), v);
1971
+ bool b;
1972
+ binReader.read (b);
1973
+ setVisible (model->getPointSetIndex (), b);
1961
1974
}
1962
1975
}
1963
1976
@@ -2879,6 +2892,7 @@ void SimulatorBase::writeSceneFile(const std::string &fileName)
2879
2892
writer.updateMaterialParameterConfig (model->getId (), " colorMapType" , getColorMapType (i));
2880
2893
writer.updateMaterialParameterConfig (model->getId (), " renderMinValue" , getRenderMinValue (i));
2881
2894
writer.updateMaterialParameterConfig (model->getId (), " renderMaxValue" , getRenderMaxValue (i));
2895
+ writer.updateMaterialParameterConfig (model->getId (), " visible" , getVisible (i));
2882
2896
}
2883
2897
}
2884
2898
}
0 commit comments