Fluid: Refactored Python fluid initialization functions
Initialization functions now have a return type which will be asserted during fluid object creation.
This commit is contained in:
parent
f2b04302cd
commit
51f4bee5a5
|
@ -33,10 +33,10 @@ struct MANTA;
|
|||
/* Fluid functions */
|
||||
struct MANTA *manta_init(int *res, struct FluidModifierData *fmd);
|
||||
void manta_free(struct MANTA *fluid);
|
||||
void manta_ensure_obstacle(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
void manta_ensure_guiding(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
void manta_ensure_invelocity(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
void manta_ensure_outflow(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
int manta_ensure_obstacle(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
int manta_ensure_guiding(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
int manta_ensure_invelocity(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
int manta_ensure_outflow(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
int manta_write_config(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
|
||||
int manta_write_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
|
||||
int manta_write_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr);
|
||||
|
@ -122,9 +122,9 @@ void manta_noise_get_rgba_fixed_color(struct MANTA *smoke,
|
|||
float color[3],
|
||||
float *data,
|
||||
int sequential);
|
||||
void manta_smoke_ensure_heat(struct MANTA *smoke, struct FluidModifierData *fmd);
|
||||
void manta_smoke_ensure_fire(struct MANTA *smoke, struct FluidModifierData *fmd);
|
||||
void manta_smoke_ensure_colors(struct MANTA *smoke, struct FluidModifierData *fmd);
|
||||
int manta_smoke_ensure_heat(struct MANTA *smoke, struct FluidModifierData *fmd);
|
||||
int manta_smoke_ensure_fire(struct MANTA *smoke, struct FluidModifierData *fmd);
|
||||
int manta_smoke_ensure_colors(struct MANTA *smoke, struct FluidModifierData *fmd);
|
||||
|
||||
/* Smoke accessors */
|
||||
float *manta_smoke_get_density(struct MANTA *smoke);
|
||||
|
@ -168,7 +168,7 @@ int manta_noise_get_cells(struct MANTA *smoke);
|
|||
|
||||
/* Liquid functions */
|
||||
void manta_liquid_export_script(struct MANTA *smoke, struct FluidModifierData *fmd);
|
||||
void manta_liquid_ensure_sndparts(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
int manta_liquid_ensure_sndparts(struct MANTA *fluid, struct FluidModifierData *fmd);
|
||||
|
||||
/* Liquid accessors */
|
||||
int manta_liquid_get_particle_res_x(struct MANTA *liquid);
|
||||
|
|
|
@ -196,17 +196,18 @@ MANTA::MANTA(int *res, FluidModifierData *fmd) : mCurrentID(++solverID)
|
|||
// Initializa RNA map with values that Python will need
|
||||
initializeRNAMap(fmd);
|
||||
|
||||
bool initSuccess = true;
|
||||
// Initialize Mantaflow variables in Python
|
||||
// Liquid
|
||||
if (mUsingLiquid) {
|
||||
initDomain();
|
||||
initLiquid();
|
||||
initSuccess &= initDomain();
|
||||
initSuccess &= initLiquid();
|
||||
if (mUsingObstacle)
|
||||
initObstacle();
|
||||
initSuccess &= initObstacle();
|
||||
if (mUsingInvel)
|
||||
initInVelocity();
|
||||
initSuccess &= initInVelocity();
|
||||
if (mUsingOutflow)
|
||||
initOutflow();
|
||||
initSuccess &= initOutflow();
|
||||
|
||||
if (mUsingDrops || mUsingBubbles || mUsingFloats || mUsingTracers) {
|
||||
mUpresParticle = fds->particle_scale;
|
||||
|
@ -215,8 +216,8 @@ MANTA::MANTA(int *res, FluidModifierData *fmd) : mCurrentID(++solverID)
|
|||
mResZParticle = mUpresParticle * mResZ;
|
||||
mTotalCellsParticles = mResXParticle * mResYParticle * mResZParticle;
|
||||
|
||||
initSndParts();
|
||||
initLiquidSndParts();
|
||||
initSuccess &= initSndParts();
|
||||
initSuccess &= initLiquidSndParts();
|
||||
}
|
||||
|
||||
if (mUsingMesh) {
|
||||
|
@ -227,43 +228,43 @@ MANTA::MANTA(int *res, FluidModifierData *fmd) : mCurrentID(++solverID)
|
|||
mTotalCellsMesh = mResXMesh * mResYMesh * mResZMesh;
|
||||
|
||||
// Initialize Mantaflow variables in Python
|
||||
initMesh();
|
||||
initLiquidMesh();
|
||||
initSuccess &= initMesh();
|
||||
initSuccess &= initLiquidMesh();
|
||||
}
|
||||
|
||||
if (mUsingDiffusion) {
|
||||
initCurvature();
|
||||
initSuccess &= initCurvature();
|
||||
}
|
||||
|
||||
if (mUsingGuiding) {
|
||||
mResGuiding = (fds->guide_parent) ? fds->guide_res : fds->res;
|
||||
initGuiding();
|
||||
initSuccess &= initGuiding();
|
||||
}
|
||||
if (mUsingFractions) {
|
||||
initFractions();
|
||||
initSuccess &= initFractions();
|
||||
}
|
||||
}
|
||||
|
||||
// Smoke
|
||||
if (mUsingSmoke) {
|
||||
initDomain();
|
||||
initSmoke();
|
||||
initSuccess &= initDomain();
|
||||
initSuccess &= initSmoke();
|
||||
if (mUsingHeat)
|
||||
initHeat();
|
||||
initSuccess &= initHeat();
|
||||
if (mUsingFire)
|
||||
initFire();
|
||||
initSuccess &= initFire();
|
||||
if (mUsingColors)
|
||||
initColors();
|
||||
initSuccess &= initColors();
|
||||
if (mUsingObstacle)
|
||||
initObstacle();
|
||||
initSuccess &= initObstacle();
|
||||
if (mUsingInvel)
|
||||
initInVelocity();
|
||||
initSuccess &= initInVelocity();
|
||||
if (mUsingOutflow)
|
||||
initOutflow();
|
||||
initSuccess &= initOutflow();
|
||||
|
||||
if (mUsingGuiding) {
|
||||
mResGuiding = (fds->guide_parent) ? fds->guide_res : fds->res;
|
||||
initGuiding();
|
||||
initSuccess &= initGuiding();
|
||||
}
|
||||
|
||||
if (mUsingNoise) {
|
||||
|
@ -274,19 +275,20 @@ MANTA::MANTA(int *res, FluidModifierData *fmd) : mCurrentID(++solverID)
|
|||
mTotalCellsHigh = mResXNoise * mResYNoise * mResZNoise;
|
||||
|
||||
// Initialize Mantaflow variables in Python
|
||||
initNoise();
|
||||
initSmokeNoise();
|
||||
initSuccess &= initNoise();
|
||||
initSuccess &= initSmokeNoise();
|
||||
if (mUsingFire)
|
||||
initFireHigh();
|
||||
initSuccess &= initFireHigh();
|
||||
if (mUsingColors)
|
||||
initColorsHigh();
|
||||
initSuccess &= initColorsHigh();
|
||||
}
|
||||
}
|
||||
|
||||
/* All requested initializations must not fail in constructor. */
|
||||
BLI_assert(initSuccess);
|
||||
updatePointers(fmd);
|
||||
}
|
||||
|
||||
void MANTA::initDomain(FluidModifierData *fmd)
|
||||
bool MANTA::initDomain(FluidModifierData *fmd)
|
||||
{
|
||||
// Vector will hold all python commands that are to be executed
|
||||
vector<string> pythonCommands;
|
||||
|
@ -306,20 +308,20 @@ void MANTA::initDomain(FluidModifierData *fmd)
|
|||
fluid_adapt_time_step + fluid_time_stepping;
|
||||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
runPythonString(pythonCommands);
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initNoise(FluidModifierData *fmd)
|
||||
bool MANTA::initNoise(FluidModifierData *fmd)
|
||||
{
|
||||
vector<string> pythonCommands;
|
||||
string tmpString = fluid_variables_noise + fluid_solver_noise;
|
||||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initSmoke(FluidModifierData *fmd)
|
||||
bool MANTA::initSmoke(FluidModifierData *fmd)
|
||||
{
|
||||
vector<string> pythonCommands;
|
||||
string tmpString = smoke_variables + smoke_alloc + smoke_adaptive_step + smoke_save_data +
|
||||
|
@ -327,10 +329,10 @@ void MANTA::initSmoke(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initSmokeNoise(FluidModifierData *fmd)
|
||||
bool MANTA::initSmokeNoise(FluidModifierData *fmd)
|
||||
{
|
||||
vector<string> pythonCommands;
|
||||
string tmpString = smoke_variables_noise + smoke_alloc_noise + smoke_wavelet_noise +
|
||||
|
@ -338,11 +340,11 @@ void MANTA::initSmokeNoise(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingNoise = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initHeat(FluidModifierData *fmd)
|
||||
bool MANTA::initHeat(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mHeat) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -350,12 +352,13 @@ void MANTA::initHeat(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingHeat = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initFire(FluidModifierData *fmd)
|
||||
bool MANTA::initFire(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mFuel) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -363,12 +366,13 @@ void MANTA::initFire(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingFire = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initFireHigh(FluidModifierData *fmd)
|
||||
bool MANTA::initFireHigh(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mFuelHigh) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -376,12 +380,13 @@ void MANTA::initFireHigh(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingFire = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initColors(FluidModifierData *fmd)
|
||||
bool MANTA::initColors(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mColorR) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -389,12 +394,13 @@ void MANTA::initColors(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingColors = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initColorsHigh(FluidModifierData *fmd)
|
||||
bool MANTA::initColorsHigh(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mColorRHigh) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -402,12 +408,13 @@ void MANTA::initColorsHigh(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingColors = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initLiquid(FluidModifierData *fmd)
|
||||
bool MANTA::initLiquid(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mPhiIn) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -416,44 +423,45 @@ void MANTA::initLiquid(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingLiquid = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initMesh(FluidModifierData *fmd)
|
||||
bool MANTA::initMesh(FluidModifierData *fmd)
|
||||
{
|
||||
vector<string> pythonCommands;
|
||||
string tmpString = fluid_variables_mesh + fluid_solver_mesh + liquid_load_mesh;
|
||||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingMesh = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initLiquidMesh(FluidModifierData *fmd)
|
||||
bool MANTA::initLiquidMesh(FluidModifierData *fmd)
|
||||
{
|
||||
vector<string> pythonCommands;
|
||||
string tmpString = liquid_alloc_mesh + liquid_step_mesh + liquid_save_mesh;
|
||||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingMesh = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initCurvature(FluidModifierData *fmd)
|
||||
bool MANTA::initCurvature(FluidModifierData *fmd)
|
||||
{
|
||||
std::vector<std::string> pythonCommands;
|
||||
std::string finalString = parseScript(liquid_alloc_curvature, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingDiffusion = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initObstacle(FluidModifierData *fmd)
|
||||
bool MANTA::initObstacle(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mPhiObsIn) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -461,12 +469,13 @@ void MANTA::initObstacle(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingObstacle = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initGuiding(FluidModifierData *fmd)
|
||||
bool MANTA::initGuiding(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mPhiGuideIn) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -475,23 +484,24 @@ void MANTA::initGuiding(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingGuiding = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initFractions(FluidModifierData *fmd)
|
||||
bool MANTA::initFractions(FluidModifierData *fmd)
|
||||
{
|
||||
vector<string> pythonCommands;
|
||||
string tmpString = fluid_alloc_fractions + fluid_with_fractions;
|
||||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingFractions = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initInVelocity(FluidModifierData *fmd)
|
||||
bool MANTA::initInVelocity(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mInVelocityX) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -499,12 +509,13 @@ void MANTA::initInVelocity(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingInvel = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initOutflow(FluidModifierData *fmd)
|
||||
bool MANTA::initOutflow(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mPhiOutIn) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -512,22 +523,23 @@ void MANTA::initOutflow(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
mUsingOutflow = true;
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void MANTA::initSndParts(FluidModifierData *fmd)
|
||||
bool MANTA::initSndParts(FluidModifierData *fmd)
|
||||
{
|
||||
vector<string> pythonCommands;
|
||||
string tmpString = fluid_variables_particles + fluid_solver_particles;
|
||||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
|
||||
void MANTA::initLiquidSndParts(FluidModifierData *fmd)
|
||||
bool MANTA::initLiquidSndParts(FluidModifierData *fmd)
|
||||
{
|
||||
if (!mSndParticleData) {
|
||||
vector<string> pythonCommands;
|
||||
|
@ -537,8 +549,9 @@ void MANTA::initLiquidSndParts(FluidModifierData *fmd)
|
|||
string finalString = parseScript(tmpString, fmd);
|
||||
pythonCommands.push_back(finalString);
|
||||
|
||||
runPythonString(pythonCommands);
|
||||
return runPythonString(pythonCommands);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
MANTA::~MANTA()
|
||||
|
|
|
@ -64,21 +64,21 @@ struct MANTA {
|
|||
void step(struct FluidModifierData *fmd, int startFrame);
|
||||
|
||||
// Grid initialization functions
|
||||
void initHeat(struct FluidModifierData *fmd = NULL);
|
||||
void initFire(struct FluidModifierData *fmd = NULL);
|
||||
void initColors(struct FluidModifierData *fmd = NULL);
|
||||
void initFireHigh(struct FluidModifierData *fmd = NULL);
|
||||
void initColorsHigh(struct FluidModifierData *fmd = NULL);
|
||||
void initLiquid(FluidModifierData *fmd = NULL);
|
||||
void initLiquidMesh(FluidModifierData *fmd = NULL);
|
||||
void initObstacle(FluidModifierData *fmd = NULL);
|
||||
void initCurvature(FluidModifierData *fmd = NULL);
|
||||
void initGuiding(FluidModifierData *fmd = NULL);
|
||||
void initFractions(FluidModifierData *fmd = NULL);
|
||||
void initInVelocity(FluidModifierData *fmd = NULL);
|
||||
void initOutflow(FluidModifierData *fmd = NULL);
|
||||
void initSndParts(FluidModifierData *fmd = NULL);
|
||||
void initLiquidSndParts(FluidModifierData *fmd = NULL);
|
||||
bool initHeat(struct FluidModifierData *fmd = NULL);
|
||||
bool initFire(struct FluidModifierData *fmd = NULL);
|
||||
bool initColors(struct FluidModifierData *fmd = NULL);
|
||||
bool initFireHigh(struct FluidModifierData *fmd = NULL);
|
||||
bool initColorsHigh(struct FluidModifierData *fmd = NULL);
|
||||
bool initLiquid(FluidModifierData *fmd = NULL);
|
||||
bool initLiquidMesh(FluidModifierData *fmd = NULL);
|
||||
bool initObstacle(FluidModifierData *fmd = NULL);
|
||||
bool initCurvature(FluidModifierData *fmd = NULL);
|
||||
bool initGuiding(FluidModifierData *fmd = NULL);
|
||||
bool initFractions(FluidModifierData *fmd = NULL);
|
||||
bool initInVelocity(FluidModifierData *fmd = NULL);
|
||||
bool initOutflow(FluidModifierData *fmd = NULL);
|
||||
bool initSndParts(FluidModifierData *fmd = NULL);
|
||||
bool initLiquidSndParts(FluidModifierData *fmd = NULL);
|
||||
|
||||
// Pointer transfer: Mantaflow -> Blender
|
||||
void updatePointers(FluidModifierData *fmd);
|
||||
|
@ -874,12 +874,12 @@ struct MANTA {
|
|||
vector<pVel> *mSndParticleVelocity;
|
||||
vector<float> *mSndParticleLife;
|
||||
|
||||
void initializeRNAMap(struct FluidModifierData *fmd = NULL);
|
||||
void initDomain(struct FluidModifierData *fmd = NULL);
|
||||
void initNoise(struct FluidModifierData *fmd = NULL);
|
||||
void initMesh(struct FluidModifierData *fmd = NULL);
|
||||
void initSmoke(struct FluidModifierData *fmd = NULL);
|
||||
void initSmokeNoise(struct FluidModifierData *fmd = NULL);
|
||||
void initializeRNAMap(struct FluidModifierData *doRnaRefresh = NULL);
|
||||
bool initDomain(struct FluidModifierData *doRnaRefresh = NULL);
|
||||
bool initNoise(struct FluidModifierData *doRnaRefresh = NULL);
|
||||
bool initMesh(struct FluidModifierData *doRnaRefresh = NULL);
|
||||
bool initSmoke(struct FluidModifierData *doRnaRefresh = NULL);
|
||||
bool initSmokeNoise(struct FluidModifierData *doRnaRefresh = NULL);
|
||||
void initializeMantaflow();
|
||||
void terminateMantaflow();
|
||||
bool runPythonString(vector<string> commands);
|
||||
|
|
|
@ -37,33 +37,29 @@ void manta_free(MANTA *fluid)
|
|||
fluid = nullptr;
|
||||
}
|
||||
|
||||
void manta_ensure_obstacle(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
int manta_ensure_obstacle(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (!fluid)
|
||||
return;
|
||||
fluid->initObstacle(fmd);
|
||||
fluid->updatePointers(fmd);
|
||||
if (!fluid || !fmd)
|
||||
return 0;
|
||||
return fluid->initObstacle(fmd);
|
||||
}
|
||||
void manta_ensure_guiding(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
int manta_ensure_guiding(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (!fluid)
|
||||
return;
|
||||
fluid->initGuiding(fmd);
|
||||
fluid->updatePointers(fmd);
|
||||
if (!fluid || !fmd)
|
||||
return 0;
|
||||
return fluid->initGuiding(fmd);
|
||||
}
|
||||
void manta_ensure_invelocity(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
int manta_ensure_invelocity(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (!fluid)
|
||||
return;
|
||||
fluid->initInVelocity(fmd);
|
||||
fluid->updatePointers(fmd);
|
||||
if (!fluid || !fmd)
|
||||
return 0;
|
||||
return fluid->initInVelocity(fmd);
|
||||
}
|
||||
void manta_ensure_outflow(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
int manta_ensure_outflow(MANTA *fluid, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (!fluid)
|
||||
return;
|
||||
fluid->initOutflow(fmd);
|
||||
fluid->updatePointers(fmd);
|
||||
if (!fluid || !fmd)
|
||||
return 0;
|
||||
return fluid->initOutflow(fmd);
|
||||
}
|
||||
|
||||
int manta_write_config(MANTA *fluid, FluidModifierData *fmd, int framenr)
|
||||
|
@ -448,34 +444,35 @@ void manta_noise_get_rgba_fixed_color(MANTA *smoke, float color[3], float *data,
|
|||
get_rgba_fixed_color(color, smoke->getTotalCellsHigh(), data, sequential);
|
||||
}
|
||||
|
||||
void manta_smoke_ensure_heat(MANTA *smoke, struct FluidModifierData *fmd)
|
||||
int manta_smoke_ensure_heat(MANTA *smoke, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (smoke) {
|
||||
smoke->initHeat(fmd);
|
||||
smoke->updatePointers(fmd);
|
||||
}
|
||||
if (!smoke || !fmd)
|
||||
return 0;
|
||||
return smoke->initHeat(fmd);
|
||||
}
|
||||
|
||||
void manta_smoke_ensure_fire(MANTA *smoke, struct FluidModifierData *fmd)
|
||||
int manta_smoke_ensure_fire(MANTA *smoke, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (smoke) {
|
||||
smoke->initFire(fmd);
|
||||
if (smoke->usingNoise()) {
|
||||
smoke->initFireHigh(fmd);
|
||||
}
|
||||
smoke->updatePointers(fmd);
|
||||
if (!smoke || !fmd)
|
||||
return 0;
|
||||
|
||||
int result = smoke->initFire(fmd);
|
||||
if (smoke->usingNoise()) {
|
||||
result &= smoke->initFireHigh(fmd);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
void manta_smoke_ensure_colors(MANTA *smoke, struct FluidModifierData *fmd)
|
||||
int manta_smoke_ensure_colors(MANTA *smoke, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (smoke) {
|
||||
smoke->initColors(fmd);
|
||||
if (smoke->usingNoise()) {
|
||||
smoke->initColorsHigh(fmd);
|
||||
}
|
||||
smoke->updatePointers(fmd);
|
||||
if (!smoke || !fmd)
|
||||
return 0;
|
||||
|
||||
int result = smoke->initColors(fmd);
|
||||
if (smoke->usingNoise()) {
|
||||
result &= smoke->initColorsHigh(fmd);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Smoke accessors */
|
||||
|
@ -652,12 +649,11 @@ void manta_liquid_export_script(MANTA *liquid, FluidModifierData *fmd)
|
|||
liquid->exportLiquidScript(fmd);
|
||||
}
|
||||
|
||||
void manta_liquid_ensure_sndparts(MANTA *liquid, struct FluidModifierData *fmd)
|
||||
int manta_liquid_ensure_sndparts(MANTA *liquid, struct FluidModifierData *fmd)
|
||||
{
|
||||
if (liquid) {
|
||||
liquid->initLiquidSndParts(fmd);
|
||||
liquid->updatePointers(fmd);
|
||||
}
|
||||
if (!liquid || !fmd)
|
||||
return 0;
|
||||
return liquid->initLiquidSndParts(fmd);
|
||||
}
|
||||
|
||||
/* Liquid accessors */
|
||||
|
|
Loading…
Reference in New Issue