[Bf-blender-cvs] [09465fef32e] fluid-mantaflow: added ids to all grids, vars, funcs, etc in manta scripts
Sebastián Barschkis
noreply at git.blender.org
Sun Mar 26 20:41:28 CEST 2017
Commit: 09465fef32eb67708ca7a9107140d9ffa258fd2c
Author: Sebastián Barschkis
Date: Mon Mar 20 20:13:09 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB09465fef32eb67708ca7a9107140d9ffa258fd2c
added ids to all grids, vars, funcs, etc in manta scripts
having unique python variables allows having multiple domains in the viewport at once
===================================================================
M intern/mantaflow/intern/FLUID.cpp
M intern/mantaflow/intern/strings/liquid_script.h
M intern/mantaflow/intern/strings/shared_script.h
M intern/mantaflow/intern/strings/smoke_script.h
===================================================================
diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp
index 711fe6ced65..0263b4c980f 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -292,7 +292,6 @@ void FLUID::initColors(SmokeModifierData *smd)
{
if (!mColorR) {
std::string tmpString = smoke_alloc_colors_low
- + smoke_set_color_codes
+ smoke_init_colors_low
+ smoke_with_colors;
std::string finalString = parseScript(tmpString, smd);
@@ -308,7 +307,6 @@ void FLUID::initColorsHigh(SmokeModifierData *smd)
{
if (!mColorRHigh) {
std::string tmpString = smoke_alloc_colors_high
- + smoke_set_color_codes
+ smoke_init_colors_high
+ smoke_with_colors;
std::string finalString = parseScript(tmpString, smd);
@@ -420,6 +418,10 @@ FLUID::~FLUID()
mCommands.push_back(finalString);
runPythonString(mCommands);
+ // Let Mantaflow do some cleanup
+// if (mantaInitialized)
+// terminateMantaflow();
+
// Reset pointers to avoid dangling pointers
mDensity = NULL;
mHeat = NULL;
@@ -728,6 +730,7 @@ void FLUID::exportSmokeScript(SmokeModifierData *smd)
manta_script += smoke_step_high;
manta_script += smoke_adaptive_step
+ + smoke_inflow_low
+ smoke_standalone_load
+ fluid_standalone;
@@ -923,48 +926,51 @@ void FLUID::updateMeshData(const char* filename)
void FLUID::updatePointers()
{
- std::cout << "Updating pointers low res" << std::endl;
-
- mObstacle = (int*) getGridPointer("flags", "s");
- mNumObstacle = (int*) getGridPointer("numObs", "s");
+ std::cout << "Updating pointers low res, ID: " << mCurrentID << std::endl;
+ std::string id = std::to_string(mCurrentID);
+ std::string solver = "s" + id;
+ std::string solver_ext = "_" + solver;
- mVelocityX = (float*) getGridPointer("x_vel", "s");
- mVelocityY = (float*) getGridPointer("y_vel", "s");
- mVelocityZ = (float*) getGridPointer("z_vel", "s");
+ mObstacle = (int*) getGridPointer("flags" + solver_ext, solver);
+ mNumObstacle = (int*) getGridPointer("numObs" + solver_ext, solver);
- mObVelocityX = (float*) getGridPointer("x_obvel", "s");
- mObVelocityY = (float*) getGridPointer("y_obvel", "s");
- mObVelocityZ = (float*) getGridPointer("z_obvel", "s");
+ mVelocityX = (float*) getGridPointer("x_vel" + solver_ext, solver);
+ mVelocityY = (float*) getGridPointer("y_vel" + solver_ext, solver);
+ mVelocityZ = (float*) getGridPointer("z_vel" + solver_ext, solver);
- mForceX = (float*) getGridPointer("x_force", "s");
- mForceY = (float*) getGridPointer("y_force", "s");
- mForceZ = (float*) getGridPointer("z_force", "s");
+ mObVelocityX = (float*) getGridPointer("x_obvel" + solver_ext, solver);
+ mObVelocityY = (float*) getGridPointer("y_obvel" + solver_ext, solver);
+ mObVelocityZ = (float*) getGridPointer("z_obvel" + solver_ext, solver);
- mPhiObs = (float*) getGridPointer("phiObsIn", "s");
+ mForceX = (float*) getGridPointer("x_force" + solver_ext, solver);
+ mForceY = (float*) getGridPointer("y_force" + solver_ext, solver);
+ mForceZ = (float*) getGridPointer("z_force" + solver_ext, solver);
+
+ mPhiObs = (float*) getGridPointer("phiObsIn" + solver_ext, solver);
// Liquid
if (mUsingLiquid) {
- mPhiIn = (float*) getGridPointer("phiIn", "s");
- mPhiOut = (float*) getGridPointer("phiOut", "s");
+ mPhiIn = (float*) getGridPointer("phiIn" + solver_ext, solver);
+ mPhiOut = (float*) getGridPointer("phiOut" + solver_ext, solver);
}
// Smoke
if (mUsingSmoke) {
- mDensity = (float*) getGridPointer("density", "s");
- mInflow = (float*) getGridPointer("inflow", "s");
+ mDensity = (float*) getGridPointer("density" + solver_ext, solver);
+ mInflow = (float*) getGridPointer("inflow" + solver_ext, solver);
if (mUsingHeat) {
- mHeat = (float*) getGridPointer("heat", "s");
+ mHeat = (float*) getGridPointer("heat" + solver_ext, solver);
}
if (mUsingFire) {
- mFlame = (float*) getGridPointer("flame", "s");
- mFuel = (float*) getGridPointer("fuel", "s");
- mReact = (float*) getGridPointer("react", "s");
+ mFlame = (float*) getGridPointer("flame" + solver_ext, solver);
+ mFuel = (float*) getGridPointer("fuel" + solver_ext, solver);
+ mReact = (float*) getGridPointer("react" + solver_ext, solver);
}
if (mUsingColors) {
- mColorR = (float*) getGridPointer("color_r", "s");
- mColorG = (float*) getGridPointer("color_g", "s");
- mColorB = (float*) getGridPointer("color_b", "s");
+ mColorR = (float*) getGridPointer("color_r" + solver_ext, solver);
+ mColorG = (float*) getGridPointer("color_g" + solver_ext, solver);
+ mColorB = (float*) getGridPointer("color_b" + solver_ext, solver);
}
}
}
@@ -972,6 +978,12 @@ void FLUID::updatePointers()
void FLUID::updatePointersHigh()
{
std::cout << "Updating pointers high res" << std::endl;
+ std::string id = std::to_string(mCurrentID);
+ std::string solver = "s" + id;
+ std::string solver_ext = "_" + solver;
+
+ std::string xlsolver = "xl" + id;
+ std::string xlsolver_ext = "_" + xlsolver;
// Liquid
if (mUsingLiquid) {
@@ -980,23 +992,23 @@ void FLUID::updatePointersHigh()
// Smoke
if (mUsingSmoke) {
- mDensityHigh = (float*) getGridPointer("xl_density", "xl");
- mTextureU = (float*) getGridPointer("texture_u", "s");
- mTextureV = (float*) getGridPointer("texture_v", "s");
- mTextureW = (float*) getGridPointer("texture_w", "s");
- mTextureU2 = (float*) getGridPointer("texture_u2", "s");
- mTextureV2 = (float*) getGridPointer("texture_v2", "s");
- mTextureW2 = (float*) getGridPointer("texture_w2", "s");
+ mDensityHigh = (float*) getGridPointer("density" + xlsolver_ext, xlsolver);
+ mTextureU = (float*) getGridPointer("texture_u" + solver_ext, solver);
+ mTextureV = (float*) getGridPointer("texture_v" + solver_ext, solver);
+ mTextureW = (float*) getGridPointer("texture_w" + solver_ext, solver);
+ mTextureU2 = (float*) getGridPointer("texture_u2" + solver_ext, solver);
+ mTextureV2 = (float*) getGridPointer("texture_v2" + solver_ext, solver);
+ mTextureW2 = (float*) getGridPointer("texture_w2" + solver_ext, solver);
if (mUsingFire) {
- mFlameHigh = (float*) getGridPointer("xl_flame", "xl");
- mFuelHigh = (float*) getGridPointer("xl_fuel", "xl");
- mReactHigh = (float*) getGridPointer("xl_react", "xl");
+ mFlameHigh = (float*) getGridPointer("flame" + xlsolver_ext, xlsolver);
+ mFuelHigh = (float*) getGridPointer("fuel" + xlsolver_ext, xlsolver);
+ mReactHigh = (float*) getGridPointer("react" + xlsolver_ext, xlsolver);
}
if (mUsingColors) {
- mColorRHigh = (float*) getGridPointer("xl_color_r", "xl");
- mColorGHigh = (float*) getGridPointer("xl_color_g", "xl");
- mColorBHigh = (float*) getGridPointer("xl_color_b", "xl");
+ mColorRHigh = (float*) getGridPointer("color_r" + xlsolver_ext, xlsolver);
+ mColorGHigh = (float*) getGridPointer("color_g" + xlsolver_ext, xlsolver);
+ mColorBHigh = (float*) getGridPointer("color_b" + xlsolver_ext, xlsolver);
}
}
}
@@ -1008,7 +1020,7 @@ void FLUID::saveMesh(char *filename)
mCommands.clear();
std::ostringstream save_mesh_low;
- save_mesh_low << "save_mesh_low(r'" << path << "')";
+ save_mesh_low << "save_mesh_low_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(save_mesh_low.str());
runPythonString(mCommands);
@@ -1021,7 +1033,7 @@ void FLUID::saveMeshHigh(char *filename)
mCommands.clear();
std::ostringstream save_mesh_high;
- save_mesh_high << "save_mesh_high(r'" << path << "')";
+ save_mesh_high << "save_mesh_high_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(save_mesh_high.str());
runPythonString(mCommands);
@@ -1033,7 +1045,7 @@ void FLUID::saveSmokeData(char *pathname)
mCommands.clear();
std::ostringstream save_smoke_data_low;
- save_smoke_data_low << "save_smoke_data_low(r'" << path << "')";
+ save_smoke_data_low << "save_smoke_data_low_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(save_smoke_data_low.str());
runPythonString(mCommands);
@@ -1045,7 +1057,7 @@ void FLUID::saveSmokeDataHigh(char *pathname)
mCommands.clear();
std::ostringstream save_smoke_data_high;
- save_smoke_data_high << "save_smoke_data_high(r'" << path << "')";
+ save_smoke_data_high << "save_smoke_data_high_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(save_smoke_data_high.str());
runPythonString(mCommands);
@@ -1057,7 +1069,7 @@ void FLUID::saveLiquidData(char *pathname)
mCommands.clear();
std::ostringstream save_liquid_data_low;
- save_liquid_data_low << "save_liquid_data_low(r'" << path << "')";
+ save_liquid_data_low << "save_liquid_data_low_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(save_liquid_data_low.str());
runPythonString(mCommands);
@@ -1069,7 +1081,7 @@ void FLUID::saveLiquidDataHigh(char *pathname)
mCommands.clear();
std::ostringstream save_liquid_data_high;
- save_liquid_data_high << "save_liquid_data_high(r'" << path << "')";
+ save_liquid_data_high << "save_liquid_data_high_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(save_liquid_data_high.str());
runPythonString(mCommands);
@@ -1081,7 +1093,7 @@ void FLUID::loadLiquidData(char *pathname)
mCommands.clear();
std::ostringstream load_liquid_data_low;
- load_liquid_data_low << "load_liquid_data_low(r'" << path << "')";
+ load_liquid_data_low << "load_liquid_data_low_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(load_liquid_data_low.str());
runPythonString(mCommands);
@@ -1093,7 +1105,7 @@ void FLUID::loadLiquidDataHigh(char *pathname)
mCommands.clear();
std::ostringstream load_liquid_data_high;
- load_liquid_data_high << "load_liquid_data_high(r'" << path << "')";
+ load_liquid_data_high << "load_liquid_data_high_" << mCurrentID << "(r'" << path << "')";
mCommands.push_back(load_liquid_data_high.str());
runPythonString(mCommands);
diff --git a/intern/mantaflow/intern/
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list