Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/mantaflow/intern/MANTA_main.cpp')
-rw-r--r--intern/mantaflow/intern/MANTA_main.cpp45
1 files changed, 39 insertions, 6 deletions
diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp
index 54b728b734e..79c8625ec48 100644
--- a/intern/mantaflow/intern/MANTA_main.cpp
+++ b/intern/mantaflow/intern/MANTA_main.cpp
@@ -1098,12 +1098,14 @@ bool MANTA::updateMeshStructures(FluidModifierData *mmd, int framenr)
int expected = 0; /* Expected number of read successes for this frame. */
/* Ensure empty data structures at start. */
- if (!mMeshNodes || !mMeshTriangles || !mMeshVelocities)
+ if (!mMeshNodes || !mMeshTriangles)
return false;
mMeshNodes->clear();
mMeshTriangles->clear();
- mMeshVelocities->clear();
+
+ if (mMeshVelocities)
+ mMeshVelocities->clear();
std::string mformat = getCacheFileEnding(mmd->domain->cache_mesh_format);
std::string dformat = getCacheFileEnding(mmd->domain->cache_data_format);
@@ -1222,19 +1224,21 @@ bool MANTA::updateSmokeStructures(FluidModifierData *mmd, int framenr)
if (mUsingColors) {
file = getFile(mmd, FLUID_DOMAIN_DIR_DATA, FLUID_DOMAIN_FILE_COLORR, dformat, framenr);
- expected += 3;
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mColorR, false);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_DATA, FLUID_DOMAIN_FILE_COLORG, dformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mColorG, false);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_DATA, FLUID_DOMAIN_FILE_COLORB, dformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mColorB, false);
assert(result == expected);
@@ -1243,19 +1247,21 @@ bool MANTA::updateSmokeStructures(FluidModifierData *mmd, int framenr)
if (mUsingFire) {
file = getFile(mmd, FLUID_DOMAIN_DIR_DATA, FLUID_DOMAIN_FILE_FLAME, dformat, framenr);
- expected += 3;
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mFlame, false);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_DATA, FLUID_DOMAIN_FILE_FUEL, dformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mFuel, false);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_DATA, FLUID_DOMAIN_FILE_REACT, dformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mReact, false);
assert(result == expected);
@@ -1301,19 +1307,21 @@ bool MANTA::updateNoiseStructures(FluidModifierData *mmd, int framenr)
if (mUsingColors) {
file = getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_DOMAIN_FILE_COLORRNOISE, nformat, framenr);
- expected += 3;
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mColorRHigh, true);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_DOMAIN_FILE_COLORGNOISE, nformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mColorGHigh, true);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_DOMAIN_FILE_COLORBNOISE, nformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mColorBHigh, true);
assert(result == expected);
@@ -1322,19 +1330,21 @@ bool MANTA::updateNoiseStructures(FluidModifierData *mmd, int framenr)
if (mUsingFire) {
file = getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_DOMAIN_FILE_FLAMENOISE, nformat, framenr);
- expected += 3;
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mFlameHigh, true);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_DOMAIN_FILE_FUELNOISE, nformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mFuelHigh, true);
assert(result == expected);
}
file = getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_DOMAIN_FILE_REACTNOISE, nformat, framenr);
+ expected += 1;
if (BLI_exists(file.c_str())) {
result += updateGridFromFile(file, mReactHigh, true);
assert(result == expected);
@@ -1433,6 +1443,29 @@ bool MANTA::writeData(FluidModifierData *mmd, int framenr)
return runPythonString(pythonCommands);
}
+bool MANTA::writeNoise(FluidModifierData *mmd, int framenr)
+{
+ if (with_debug)
+ std::cout << "MANTA::writeNoise()" << std::endl;
+
+ std::ostringstream ss;
+ std::vector<std::string> pythonCommands;
+
+ std::string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_NOISE);
+ std::string nformat = getCacheFileEnding(mmd->domain->cache_noise_format);
+
+ bool final_cache = (mmd->domain->cache_type == FLUID_DOMAIN_CACHE_FINAL);
+ std::string resumable_cache = (final_cache) ? "False" : "True";
+
+ if (mUsingSmoke && mUsingNoise) {
+ ss.str("");
+ ss << "smoke_save_noise_" << mCurrentID << "('" << escapeSlashes(directory) << "', " << framenr
+ << ", '" << nformat << "', " << resumable_cache << ")";
+ pythonCommands.push_back(ss.str());
+ }
+ return runPythonString(pythonCommands);
+}
+
bool MANTA::readConfiguration(FluidModifierData *mmd, int framenr)
{
if (with_debug)