diff options
28 files changed, 2634 insertions, 2634 deletions
diff --git a/intern/mantaflow/extern/manta_fluid_API.h b/intern/mantaflow/extern/manta_fluid_API.h index d78aa6732b1..1dbfc6bdd9c 100644 --- a/intern/mantaflow/extern/manta_fluid_API.h +++ b/intern/mantaflow/extern/manta_fluid_API.h @@ -31,52 +31,52 @@ extern "C" { struct MANTA; /* Fluid functions */ -struct MANTA *manta_init(int *res, struct FluidModifierData *mmd); +struct MANTA *manta_init(int *res, struct FluidModifierData *fmd); void manta_free(struct MANTA *fluid); -void manta_ensure_obstacle(struct MANTA *fluid, struct FluidModifierData *mmd); -void manta_ensure_guiding(struct MANTA *fluid, struct FluidModifierData *mmd); -void manta_ensure_invelocity(struct MANTA *fluid, struct FluidModifierData *mmd); -void manta_ensure_outflow(struct MANTA *fluid, struct FluidModifierData *mmd); -int manta_write_config(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_write_data(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_write_noise(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_read_config(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); +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_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); +int manta_read_config(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); int manta_read_data(struct MANTA *fluid, - struct FluidModifierData *mmd, + struct FluidModifierData *fmd, int framenr, bool resumable); int manta_read_noise(struct MANTA *fluid, - struct FluidModifierData *mmd, + struct FluidModifierData *fmd, int framenr, bool resumable); -int manta_read_mesh(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); +int manta_read_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); int manta_read_particles(struct MANTA *fluid, - struct FluidModifierData *mmd, + struct FluidModifierData *fmd, int framenr, bool resumable); int manta_read_guiding(struct MANTA *fluid, - struct FluidModifierData *mmd, + struct FluidModifierData *fmd, int framenr, bool sourceDomain); -int manta_bake_data(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_bake_noise(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_bake_mesh(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_bake_particles(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_bake_guiding(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_has_data(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_has_noise(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_has_mesh(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); -int manta_has_particles(struct MANTA *fluid, struct FluidModifierData *mmd, int framenr); +int manta_bake_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_bake_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_bake_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_bake_particles(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_bake_guiding(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_has_data(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_has_noise(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_has_mesh(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); +int manta_has_particles(struct MANTA *fluid, struct FluidModifierData *fmd, int framenr); int manta_has_guiding(struct MANTA *fluid, - struct FluidModifierData *mmd, + struct FluidModifierData *fmd, int framenr, bool domain); -void manta_update_variables(struct MANTA *fluid, struct FluidModifierData *mmd); +void manta_update_variables(struct MANTA *fluid, struct FluidModifierData *fmd); int manta_get_frame(struct MANTA *fluid); float manta_get_timestep(struct MANTA *fluid); void manta_adapt_timestep(struct MANTA *fluid); -bool manta_needs_realloc(struct MANTA *fluid, struct FluidModifierData *mmd); +bool manta_needs_realloc(struct MANTA *fluid, struct FluidModifierData *fmd); /* Fluid accessors */ size_t manta_get_index(int x, int max_x, int y, int max_y, int z /*, int max_z */); @@ -110,7 +110,7 @@ float *manta_get_phiout_in(struct MANTA *fluid); float *manta_get_phioutstatic_in(struct MANTA *fluid); /* Smoke functions */ -void manta_smoke_export_script(struct MANTA *smoke, struct FluidModifierData *mmd); +void manta_smoke_export_script(struct MANTA *smoke, struct FluidModifierData *fmd); void manta_smoke_export(struct MANTA *smoke, float *dt, float *dx, @@ -151,9 +151,9 @@ void manta_smoke_turbulence_get_rgba_fixed_color(struct MANTA *smoke, float color[3], float *data, int sequential); -void manta_smoke_ensure_heat(struct MANTA *smoke, struct FluidModifierData *mmd); -void manta_smoke_ensure_fire(struct MANTA *smoke, struct FluidModifierData *mmd); -void manta_smoke_ensure_colors(struct MANTA *smoke, struct FluidModifierData *mmd); +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); /* Smoke accessors */ float *manta_smoke_get_density(struct MANTA *smoke); @@ -190,8 +190,8 @@ void manta_smoke_turbulence_get_res(struct MANTA *smoke, int *res); int manta_smoke_turbulence_get_cells(struct MANTA *smoke); /* Liquid functions */ -void manta_liquid_export_script(struct MANTA *smoke, struct FluidModifierData *mmd); -void manta_liquid_ensure_sndparts(struct MANTA *fluid, struct FluidModifierData *mmd); +void manta_liquid_export_script(struct MANTA *smoke, struct FluidModifierData *fmd); +void manta_liquid_ensure_sndparts(struct MANTA *fluid, struct FluidModifierData *fmd); /* Liquid accessors */ int manta_liquid_get_particle_res_x(struct MANTA *liquid); diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp index a008100a3e2..43121f08f2d 100644 --- a/intern/mantaflow/intern/MANTA_main.cpp +++ b/intern/mantaflow/intern/MANTA_main.cpp @@ -67,34 +67,34 @@ int MANTA::with_debug(0); /* Number of mesh triangles that the cache reads at once (with zlib). */ #define TRIANGLE_CHUNK 20000 -MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) +MANTA::MANTA(int *res, FluidModifierData *fmd) : mCurrentID(++solverID) { if (with_debug) cout << "FLUID: " << mCurrentID << " with res(" << res[0] << ", " << res[1] << ", " << res[2] << ")" << endl; - FluidDomainSettings *mds = mmd->domain; - mds->fluid = this; - - mUsingLiquid = (mds->type == FLUID_DOMAIN_TYPE_LIQUID); - mUsingSmoke = (mds->type == FLUID_DOMAIN_TYPE_GAS); - mUsingNoise = (mds->flags & FLUID_DOMAIN_USE_NOISE) && mUsingSmoke; - mUsingFractions = (mds->flags & FLUID_DOMAIN_USE_FRACTIONS) && mUsingLiquid; - mUsingMesh = (mds->flags & FLUID_DOMAIN_USE_MESH) && mUsingLiquid; - mUsingDiffusion = (mds->flags & FLUID_DOMAIN_USE_DIFFUSION) && mUsingLiquid; - mUsingMVel = (mds->flags & FLUID_DOMAIN_USE_SPEED_VECTORS) && mUsingLiquid; - mUsingGuiding = (mds->flags & FLUID_DOMAIN_USE_GUIDE); - mUsingDrops = (mds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) && mUsingLiquid; - mUsingBubbles = (mds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) && mUsingLiquid; - mUsingFloats = (mds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) && mUsingLiquid; - mUsingTracers = (mds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER) && mUsingLiquid; - - mUsingHeat = (mds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT) && mUsingSmoke; - mUsingFire = (mds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE) && mUsingSmoke; - mUsingColors = (mds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) && mUsingSmoke; - mUsingObstacle = (mds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE); - mUsingInvel = (mds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL); - mUsingOutflow = (mds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW); + FluidDomainSettings *fds = fmd->domain; + fds->fluid = this; + + mUsingLiquid = (fds->type == FLUID_DOMAIN_TYPE_LIQUID); + mUsingSmoke = (fds->type == FLUID_DOMAIN_TYPE_GAS); + mUsingNoise = (fds->flags & FLUID_DOMAIN_USE_NOISE) && mUsingSmoke; + mUsingFractions = (fds->flags & FLUID_DOMAIN_USE_FRACTIONS) && mUsingLiquid; + mUsingMesh = (fds->flags & FLUID_DOMAIN_USE_MESH) && mUsingLiquid; + mUsingDiffusion = (fds->flags & FLUID_DOMAIN_USE_DIFFUSION) && mUsingLiquid; + mUsingMVel = (fds->flags & FLUID_DOMAIN_USE_SPEED_VECTORS) && mUsingLiquid; + mUsingGuiding = (fds->flags & FLUID_DOMAIN_USE_GUIDE); + mUsingDrops = (fds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) && mUsingLiquid; + mUsingBubbles = (fds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) && mUsingLiquid; + mUsingFloats = (fds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) && mUsingLiquid; + mUsingTracers = (fds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER) && mUsingLiquid; + + mUsingHeat = (fds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT) && mUsingSmoke; + mUsingFire = (fds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE) && mUsingSmoke; + mUsingColors = (fds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) && mUsingSmoke; + mUsingObstacle = (fds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE); + mUsingInvel = (fds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL); + mUsingOutflow = (fds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW); // Simulation constants mTempAmb = 0; // TODO: Maybe use this later for buoyancy calculation @@ -103,7 +103,7 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) mResZ = res[2]; mMaxRes = MAX3(mResX, mResY, mResZ); mTotalCells = mResX * mResY * mResZ; - mResGuiding = mds->res; + mResGuiding = fds->res; // Smoke low res grids mDensity = nullptr; @@ -194,7 +194,7 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) initializeMantaflow(); // Initializa RNA map with values that Python will need - initializeRNAMap(mmd); + initializeRNAMap(fmd); // Initialize Mantaflow variables in Python // Liquid @@ -209,7 +209,7 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) initOutflow(); if (mUsingDrops || mUsingBubbles || mUsingFloats || mUsingTracers) { - mUpresParticle = mds->particle_scale; + mUpresParticle = fds->particle_scale; mResXParticle = mUpresParticle * mResX; mResYParticle = mUpresParticle * mResY; mResZParticle = mUpresParticle * mResZ; @@ -220,7 +220,7 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) } if (mUsingMesh) { - mUpresMesh = mds->mesh_scale; + mUpresMesh = fds->mesh_scale; mResXMesh = mUpresMesh * mResX; mResYMesh = mUpresMesh * mResY; mResZMesh = mUpresMesh * mResZ; @@ -236,7 +236,7 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) } if (mUsingGuiding) { - mResGuiding = (mds->guide_parent) ? mds->guide_res : mds->res; + mResGuiding = (fds->guide_parent) ? fds->guide_res : fds->res; initGuiding(); } if (mUsingFractions) { @@ -262,12 +262,12 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) initOutflow(); if (mUsingGuiding) { - mResGuiding = (mds->guide_parent) ? mds->guide_res : mds->res; + mResGuiding = (fds->guide_parent) ? fds->guide_res : fds->res; initGuiding(); } if (mUsingNoise) { - int amplify = mds->noise_scale; + int amplify = fds->noise_scale; mResXNoise = amplify * mResX; mResYNoise = amplify * mResY; mResZNoise = amplify * mResZ; @@ -285,7 +285,7 @@ MANTA::MANTA(int *res, FluidModifierData *mmd) : mCurrentID(++solverID) updatePointers(); } -void MANTA::initDomain(FluidModifierData *mmd) +void MANTA::initDomain(FluidModifierData *fmd) { // Vector will hold all python commands that are to be executed vector<string> pythonCommands; @@ -303,50 +303,50 @@ void MANTA::initDomain(FluidModifierData *mmd) fluid_bake_mesh + fluid_bake_particles + fluid_bake_guiding + fluid_file_import + fluid_file_export + fluid_pre_step + fluid_post_step + fluid_adapt_time_step + fluid_time_stepping; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); } -void MANTA::initNoise(FluidModifierData *mmd) +void MANTA::initNoise(FluidModifierData *fmd) { vector<string> pythonCommands; string tmpString = fluid_variables_noise + fluid_solver_noise; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); } -void MANTA::initSmoke(FluidModifierData *mmd) +void MANTA::initSmoke(FluidModifierData *fmd) { vector<string> pythonCommands; string tmpString = smoke_variables + smoke_alloc + smoke_adaptive_step + smoke_save_data + smoke_load_data + smoke_step; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); } -void MANTA::initSmokeNoise(FluidModifierData *mmd) +void MANTA::initSmokeNoise(FluidModifierData *fmd) { vector<string> pythonCommands; string tmpString = smoke_variables_noise + smoke_alloc_noise + smoke_wavelet_noise + smoke_save_noise + smoke_load_noise + smoke_step_noise; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); mUsingNoise = true; } -void MANTA::initHeat(FluidModifierData *mmd) +void MANTA::initHeat(FluidModifierData *fmd) { if (!mHeat) { vector<string> pythonCommands; string tmpString = smoke_alloc_heat + smoke_with_heat; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -354,12 +354,12 @@ void MANTA::initHeat(FluidModifierData *mmd) } } -void MANTA::initFire(FluidModifierData *mmd) +void MANTA::initFire(FluidModifierData *fmd) { if (!mFuel) { vector<string> pythonCommands; string tmpString = smoke_alloc_fire + smoke_with_fire; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -367,12 +367,12 @@ void MANTA::initFire(FluidModifierData *mmd) } } -void MANTA::initFireHigh(FluidModifierData *mmd) +void MANTA::initFireHigh(FluidModifierData *fmd) { if (!mFuelHigh) { vector<string> pythonCommands; string tmpString = smoke_alloc_fire_noise + smoke_with_fire; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -380,12 +380,12 @@ void MANTA::initFireHigh(FluidModifierData *mmd) } } -void MANTA::initColors(FluidModifierData *mmd) +void MANTA::initColors(FluidModifierData *fmd) { if (!mColorR) { vector<string> pythonCommands; string tmpString = smoke_alloc_colors + smoke_init_colors + smoke_with_colors; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -393,12 +393,12 @@ void MANTA::initColors(FluidModifierData *mmd) } } -void MANTA::initColorsHigh(FluidModifierData *mmd) +void MANTA::initColorsHigh(FluidModifierData *fmd) { if (!mColorRHigh) { vector<string> pythonCommands; string tmpString = smoke_alloc_colors_noise + smoke_init_colors_noise + smoke_with_colors; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -406,13 +406,13 @@ void MANTA::initColorsHigh(FluidModifierData *mmd) } } -void MANTA::initLiquid(FluidModifierData *mmd) +void MANTA::initLiquid(FluidModifierData *fmd) { if (!mPhiIn) { vector<string> pythonCommands; string tmpString = liquid_variables + liquid_alloc + liquid_init_phi + liquid_save_data + liquid_load_data + liquid_adaptive_step + liquid_step; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -420,44 +420,44 @@ void MANTA::initLiquid(FluidModifierData *mmd) } } -void MANTA::initMesh(FluidModifierData *mmd) +void MANTA::initMesh(FluidModifierData *fmd) { vector<string> pythonCommands; string tmpString = fluid_variables_mesh + fluid_solver_mesh + liquid_load_mesh; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); mUsingMesh = true; } -void MANTA::initLiquidMesh(FluidModifierData *mmd) +void MANTA::initLiquidMesh(FluidModifierData *fmd) { vector<string> pythonCommands; string tmpString = liquid_alloc_mesh + liquid_step_mesh + liquid_save_mesh; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); mUsingMesh = true; } -void MANTA::initCurvature(FluidModifierData *mmd) +void MANTA::initCurvature(FluidModifierData *fmd) { std::vector<std::string> pythonCommands; - std::string finalString = parseScript(liquid_alloc_curvature, mmd); + std::string finalString = parseScript(liquid_alloc_curvature, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); mUsingDiffusion = true; } -void MANTA::initObstacle(FluidModifierData *mmd) +void MANTA::initObstacle(FluidModifierData *fmd) { if (!mPhiObsIn) { vector<string> pythonCommands; string tmpString = fluid_alloc_obstacle + fluid_with_obstacle; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -465,13 +465,13 @@ void MANTA::initObstacle(FluidModifierData *mmd) } } -void MANTA::initGuiding(FluidModifierData *mmd) +void MANTA::initGuiding(FluidModifierData *fmd) { if (!mPhiGuideIn) { vector<string> pythonCommands; string tmpString = fluid_variables_guiding + fluid_solver_guiding + fluid_alloc_guiding + fluid_save_guiding + fluid_load_vel + fluid_load_guiding; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -479,23 +479,23 @@ void MANTA::initGuiding(FluidModifierData *mmd) } } -void MANTA::initFractions(FluidModifierData *mmd) +void MANTA::initFractions(FluidModifierData *fmd) { vector<string> pythonCommands; string tmpString = fluid_alloc_fractions + fluid_with_fractions; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); mUsingFractions = true; } -void MANTA::initInVelocity(FluidModifierData *mmd) +void MANTA::initInVelocity(FluidModifierData *fmd) { if (!mInVelocityX) { vector<string> pythonCommands; string tmpString = fluid_alloc_invel + fluid_with_invel; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -503,12 +503,12 @@ void MANTA::initInVelocity(FluidModifierData *mmd) } } -void MANTA::initOutflow(FluidModifierData *mmd) +void MANTA::initOutflow(FluidModifierData *fmd) { if (!mPhiOutIn) { vector<string> pythonCommands; string tmpString = fluid_alloc_outflow + fluid_with_outflow; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -516,24 +516,24 @@ void MANTA::initOutflow(FluidModifierData *mmd) } } -void MANTA::initSndParts(FluidModifierData *mmd) +void MANTA::initSndParts(FluidModifierData *fmd) { vector<string> pythonCommands; string tmpString = fluid_variables_particles + fluid_solver_particles; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); } -void MANTA::initLiquidSndParts(FluidModifierData *mmd) +void MANTA::initLiquidSndParts(FluidModifierData *fmd) { if (!mSndParticleData) { vector<string> pythonCommands; string tmpString = liquid_alloc_particles + liquid_variables_particles + liquid_step_particles + fluid_with_sndparts + liquid_load_particles + liquid_save_particles; - string finalString = parseScript(tmpString, mmd); + string finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); runPythonString(pythonCommands); @@ -557,7 +557,7 @@ MANTA::~MANTA() // Initializa RNA map with values that Python will need initializeRNAMap(); - // Leave out mmd argument in parseScript since only looking up IDs + // Leave out fmd argument in parseScript since only looking up IDs string finalString = parseScript(tmpString); pythonCommands.push_back(finalString); result = runPythonString(pythonCommands); @@ -664,56 +664,56 @@ static string getBooleanString(int value) return (value) ? "True" : "False"; } -void MANTA::initializeRNAMap(FluidModifierData *mmd) +void MANTA::initializeRNAMap(FluidModifierData *fmd) { if (with_debug) cout << "MANTA::initializeRNAMap()" << endl; mRNAMap["ID"] = to_string(mCurrentID); - if (!mmd) { + if (!fmd) { if (with_debug) cout << "Fluid: No modifier data given in RNA map setup - returning early" << endl; return; } - FluidDomainSettings *mds = mmd->domain; - bool is2D = (mds->solver_res == 2); + FluidDomainSettings *fds = fmd->domain; + bool is2D = (fds->solver_res == 2); string borderCollisions = ""; - if ((mds->border_collisions & FLUID_DOMAIN_BORDER_LEFT) == 0) + if ((fds->border_collisions & FLUID_DOMAIN_BORDER_LEFT) == 0) borderCollisions += "x"; - if ((mds->border_collisions & FLUID_DOMAIN_BORDER_RIGHT) == 0) + if ((fds->border_collisions & FLUID_DOMAIN_BORDER_RIGHT) == 0) borderCollisions += "X"; - if ((mds->border_collisions & FLUID_DOMAIN_BORDER_FRONT) == 0) + if ((fds->border_collisions & FLUID_DOMAIN_BORDER_FRONT) == 0) borderCollisions += "y"; - if ((mds->border_collisions & FLUID_DOMAIN_BORDER_BACK) == 0) + if ((fds->border_collisions & FLUID_DOMAIN_BORDER_BACK) == 0) borderCollisions += "Y"; - if ((mds->border_collisions & FLUID_DOMAIN_BORDER_BOTTOM) == 0) + if ((fds->border_collisions & FLUID_DOMAIN_BORDER_BOTTOM) == 0) borderCollisions += "z"; - if ((mds->border_collisions & FLUID_DOMAIN_BORDER_TOP) == 0) + if ((fds->border_collisions & FLUID_DOMAIN_BORDER_TOP) == 0) borderCollisions += "Z"; string simulationMethod = ""; - if (mds->simulation_method & FLUID_DOMAIN_METHOD_FLIP) + if (fds->simulation_method & FLUID_DOMAIN_METHOD_FLIP) simulationMethod += "'FLIP'"; - else if (mds->simulation_method & FLUID_DOMAIN_METHOD_APIC) + else if (fds->simulation_method & FLUID_DOMAIN_METHOD_APIC) simulationMethod += "'APIC'"; string particleTypesStr = ""; - if (mds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) + if (fds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) particleTypesStr += "PtypeSpray"; - if (mds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) { + if (fds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) { if (!particleTypesStr.empty()) particleTypesStr += "|"; particleTypesStr += "PtypeBubble"; } - if (mds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) { + if (fds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) { if (!particleTypesStr.empty()) particleTypesStr += "|"; particleTypesStr += "PtypeFoam"; } - if (mds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER) { + if (fds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER) { if (!particleTypesStr.empty()) particleTypesStr += "|"; particleTypesStr += "PtypeTracer"; @@ -724,73 +724,73 @@ void MANTA::initializeRNAMap(FluidModifierData *mmd) int particleTypes = (FLUID_DOMAIN_PARTICLE_SPRAY | FLUID_DOMAIN_PARTICLE_BUBBLE | FLUID_DOMAIN_PARTICLE_FOAM | FLUID_DOMAIN_PARTICLE_TRACER); - string cacheDirectory(mds->cache_directory); + string cacheDirectory(fds->cache_directory); - float viscosity = mds->viscosity_base * pow(10.0f, -mds->viscosity_exponent); - float domainSize = MAX3(mds->global_size[0], mds->global_size[1], mds->global_size[2]); + float viscosity = fds->viscosity_base * pow(10.0f, -fds->viscosity_exponent); + float domainSize = MAX3(fds->global_size[0], fds->global_size[1], fds->global_size[2]); string vdbCompressionMethod = "Compression_None"; - if (mds->openvdb_compression == VDB_COMPRESSION_NONE) + if (fds->openvdb_compression == VDB_COMPRESSION_NONE) vdbCompressionMethod = "Compression_None"; - else if (mds->openvdb_compression == VDB_COMPRESSION_ZIP) + else if (fds->openvdb_compression == VDB_COMPRESSION_ZIP) vdbCompressionMethod = "Compression_Zip"; - else if (mds->openvdb_compression == VDB_COMPRESSION_BLOSC) + else if (fds->openvdb_compression == VDB_COMPRESSION_BLOSC) vdbCompressionMethod = "Compression_Blosc"; string vdbPrecisionHalf = "True"; - if (mds->openvdb_data_depth == VDB_PRECISION_HALF_FLOAT) + if (fds->openvdb_data_depth == VDB_PRECISION_HALF_FLOAT) vdbPrecisionHalf = "True"; - else if (mds->openvdb_data_depth == VDB_PRECISION_FULL_FLOAT) + else if (fds->openvdb_data_depth == VDB_PRECISION_FULL_FLOAT) vdbPrecisionHalf = "False"; - mRNAMap["USING_SMOKE"] = getBooleanString(mds->type == FLUID_DOMAIN_TYPE_GAS); - mRNAMap["USING_LIQUID"] = getBooleanString(mds->type == FLUID_DOMAIN_TYPE_LIQUID); - mRNAMap["USING_COLORS"] = getBooleanString(mds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS); - mRNAMap["USING_HEAT"] = getBooleanString(mds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT); - mRNAMap["USING_FIRE"] = getBooleanString(mds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE); - mRNAMap["USING_NOISE"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_NOISE); - mRNAMap["USING_OBSTACLE"] = getBooleanString(mds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE); - mRNAMap["USING_GUIDING"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_GUIDE); - mRNAMap["USING_INVEL"] = getBooleanString(mds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL); - mRNAMap["USING_OUTFLOW"] = getBooleanString(mds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW); - mRNAMap["USING_LOG_DISSOLVE"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_DISSOLVE_LOG); - mRNAMap["USING_DISSOLVE"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_DISSOLVE); + mRNAMap["USING_SMOKE"] = getBooleanString(fds->type == FLUID_DOMAIN_TYPE_GAS); + mRNAMap["USING_LIQUID"] = getBooleanString(fds->type == FLUID_DOMAIN_TYPE_LIQUID); + mRNAMap["USING_COLORS"] = getBooleanString(fds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS); + mRNAMap["USING_HEAT"] = getBooleanString(fds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT); + mRNAMap["USING_FIRE"] = getBooleanString(fds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE); + mRNAMap["USING_NOISE"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_NOISE); + mRNAMap["USING_OBSTACLE"] = getBooleanString(fds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE); + mRNAMap["USING_GUIDING"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_GUIDE); + mRNAMap["USING_INVEL"] = getBooleanString(fds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL); + mRNAMap["USING_OUTFLOW"] = getBooleanString(fds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW); + mRNAMap["USING_LOG_DISSOLVE"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_DISSOLVE_LOG); + mRNAMap["USING_DISSOLVE"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_DISSOLVE); mRNAMap["DOMAIN_CLOSED"] = getBooleanString(borderCollisions.compare("") == 0); - mRNAMap["CACHE_RESUMABLE"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE); - mRNAMap["USING_ADAPTIVETIME"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_TIME); - mRNAMap["USING_SPEEDVECTORS"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_SPEED_VECTORS); - mRNAMap["USING_FRACTIONS"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_FRACTIONS); - mRNAMap["DELETE_IN_OBSTACLE"] = getBooleanString(mds->flags & FLUID_DOMAIN_DELETE_IN_OBSTACLE); - mRNAMap["USING_DIFFUSION"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_DIFFUSION); - mRNAMap["USING_MESH"] = getBooleanString(mds->flags & FLUID_DOMAIN_USE_MESH); - mRNAMap["USING_IMPROVED_MESH"] = getBooleanString(mds->mesh_generator == + mRNAMap["CACHE_RESUMABLE"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE); + mRNAMap["USING_ADAPTIVETIME"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_TIME); + mRNAMap["USING_SPEEDVECTORS"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_SPEED_VECTORS); + mRNAMap["USING_FRACTIONS"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_FRACTIONS); + mRNAMap["DELETE_IN_OBSTACLE"] = getBooleanString(fds->flags & FLUID_DOMAIN_DELETE_IN_OBSTACLE); + mRNAMap["USING_DIFFUSION"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_DIFFUSION); + mRNAMap["USING_MESH"] = getBooleanString(fds->flags & FLUID_DOMAIN_USE_MESH); + mRNAMap["USING_IMPROVED_MESH"] = getBooleanString(fds->mesh_generator == FLUID_DOMAIN_MESH_IMPROVED); - mRNAMap["USING_SNDPARTS"] = getBooleanString(mds->particle_type & particleTypes); - mRNAMap["SNDPARTICLE_BOUNDARY_DELETE"] = getBooleanString(mds->sndparticle_boundary == + mRNAMap["USING_SNDPARTS"] = getBooleanString(fds->particle_type & particleTypes); + mRNAMap["SNDPARTICLE_BOUNDARY_DELETE"] = getBooleanString(fds->sndparticle_boundary == SNDPARTICLE_BOUNDARY_DELETE); - mRNAMap["SNDPARTICLE_BOUNDARY_PUSHOUT"] = getBooleanString(mds->sndparticle_boundary == + mRNAMap["SNDPARTICLE_BOUNDARY_PUSHOUT"] = getBooleanString(fds->sndparticle_boundary == SNDPARTICLE_BOUNDARY_PUSHOUT); - mRNAMap["SOLVER_DIM"] = to_string(mds->solver_res); + mRNAMap["SOLVER_DIM"] = to_string(fds->solver_res); mRNAMap["BOUND_CONDITIONS"] = borderCollisions; - mRNAMap["BOUNDARY_WIDTH"] = to_string(mds->boundary_width); + mRNAMap["BOUNDARY_WIDTH"] = to_string(fds->boundary_width); mRNAMap["RES"] = to_string(mMaxRes); mRNAMap["RESX"] = to_string(mResX); mRNAMap["RESY"] = (is2D) ? to_string(mResZ) : to_string(mResY); mRNAMap["RESZ"] = (is2D) ? to_string(1) : to_string(mResZ); - mRNAMap["TIME_SCALE"] = to_string(mds->time_scale); - mRNAMap["FRAME_LENGTH"] = to_string(mds->frame_length); - mRNAMap["CFL"] = to_string(mds->cfl_condition); - mRNAMap["DT"] = to_string(mds->dt); - mRNAMap["TIMESTEPS_MIN"] = to_string(mds->timesteps_minimum); - mRNAMap["TIMESTEPS_MAX"] = to_string(mds->timesteps_maximum); - mRNAMap["TIME_TOTAL"] = to_string(mds->time_total); - mRNAMap["TIME_PER_FRAME"] = to_string(mds->time_per_frame); - mRNAMap["VORTICITY"] = to_string(mds->vorticity); - mRNAMap["FLAME_VORTICITY"] = to_string(mds->flame_vorticity); - mRNAMap["NOISE_SCALE"] = to_string(mds->noise_scale); - mRNAMap["MESH_SCALE"] = to_string(mds->mesh_scale); - mRNAMap["PARTICLE_SCALE"] = to_string(mds->particle_scale); + mRNAMap["TIME_SCALE"] = to_string(fds->time_scale); + mRNAMap["FRAME_LENGTH"] = to_string(fds->frame_length); + mRNAMap["CFL"] = to_string(fds->cfl_condition); + mRNAMap["DT"] = to_string(fds->dt); + mRNAMap["TIMESTEPS_MIN"] = to_string(fds->timesteps_minimum); + mRNAMap["TIMESTEPS_MAX"] = to_string(fds->timesteps_maximum); + mRNAMap["TIME_TOTAL"] = to_string(fds->time_total); + mRNAMap["TIME_PER_FRAME"] = to_string(fds->time_per_frame); + mRNAMap["VORTICITY"] = to_string(fds->vorticity); + mRNAMap["FLAME_VORTICITY"] = to_string(fds->flame_vorticity); + mRNAMap["NOISE_SCALE"] = to_string(fds->noise_scale); + mRNAMap["MESH_SCALE"] = to_string(fds->mesh_scale); + mRNAMap["PARTICLE_SCALE"] = to_string(fds->particle_scale); mRNAMap["NOISE_RESX"] = to_string(mResXNoise); mRNAMap["NOISE_RESY"] = (is2D) ? to_string(mResZNoise) : to_string(mResYNoise); mRNAMap["NOISE_RESZ"] = (is2D) ? to_string(1) : to_string(mResZNoise); @@ -803,76 +803,76 @@ void MANTA::initializeRNAMap(FluidModifierData *mmd) mRNAMap["GUIDING_RESX"] = to_string(mResGuiding[0]); mRNAMap["GUIDING_RESY"] = (is2D) ? to_string(mResGuiding[2]) : to_string(mResGuiding[1]); mRNAMap["GUIDING_RESZ"] = (is2D) ? to_string(1) : to_string(mResGuiding[2]); - mRNAMap["MIN_RESX"] = to_string(mds->res_min[0]); - mRNAMap["MIN_RESY"] = to_string(mds->res_min[1]); - mRNAMap["MIN_RESZ"] = to_string(mds->res_min[2]); - mRNAMap["BASE_RESX"] = to_string(mds->base_res[0]); - mRNAMap["BASE_RESY"] = to_string(mds->base_res[1]); - mRNAMap["BASE_RESZ"] = to_string(mds->base_res[2]); - mRNAMap["WLT_STR"] = to_string(mds->noise_strength); - mRNAMap["NOISE_POSSCALE"] = to_string(mds->noise_pos_scale); - mRNAMap["NOISE_TIMEANIM"] = to_string(mds->noise_time_anim); - mRNAMap["COLOR_R"] = to_string(mds->active_color[0]); - mRNAMap["COLOR_G"] = to_string(mds->active_color[1]); - mRNAMap["COLOR_B"] = to_string(mds->active_color[2]); - mRNAMap["BUOYANCY_ALPHA"] = to_string(mds->alpha); - mRNAMap["BUOYANCY_BETA"] = to_string(mds->beta); - mRNAMap["DISSOLVE_SPEED"] = to_string(mds->diss_speed); - mRNAMap["BURNING_RATE"] = to_string(mds->burning_rate); - mRNAMap["FLAME_SMOKE"] = to_string(mds->flame_smoke); - mRNAMap["IGNITION_TEMP"] = to_string(mds->flame_ignition); - mRNAMap["MAX_TEMP"] = to_string(mds->flame_max_temp); - mRNAMap["FLAME_SMOKE_COLOR_X"] = to_string(mds->flame_smoke_color[0]); - mRNAMap["FLAME_SMOKE_COLOR_Y"] = to_string(mds->flame_smoke_color[1]); - mRNAMap["FLAME_SMOKE_COLOR_Z"] = to_string(mds->flame_smoke_color[2]); - mRNAMap["CURRENT_FRAME"] = to_string(int(mmd->time)); - mRNAMap["START_FRAME"] = to_string(mds->cache_frame_start); - mRNAMap["END_FRAME"] = to_string(mds->cache_frame_end); - mRNAMap["CACHE_DATA_FORMAT"] = getCacheFileEnding(mds->cache_data_format); - mRNAMap["CACHE_MESH_FORMAT"] = getCacheFileEnding(mds->cache_mesh_format); - mRNAMap["CACHE_NOISE_FORMAT"] = getCacheFileEnding(mds->cache_noise_format); - mRNAMap["CACHE_PARTICLE_FORMAT"] = getCacheFileEnding(mds->cache_particle_format); + mRNAMap["MIN_RESX"] = to_string(fds->res_min[0]); + mRNAMap["MIN_RESY"] = to_string(fds->res_min[1]); + mRNAMap["MIN_RESZ"] = to_string(fds->res_min[2]); + mRNAMap["BASE_RESX"] = to_string(fds->base_res[0]); + mRNAMap["BASE_RESY"] = to_string(fds->base_res[1]); + mRNAMap["BASE_RESZ"] = to_string(fds->base_res[2]); + mRNAMap["WLT_STR"] = to_string(fds->noise_strength); + mRNAMap["NOISE_POSSCALE"] = to_string(fds->noise_pos_scale); + mRNAMap["NOISE_TIMEANIM"] = to_string(fds->noise_time_anim); + mRNAMap["COLOR_R"] = to_string(fds->active_color[0]); + mRNAMap["COLOR_G"] = to_string(fds->active_color[1]); + mRNAMap["COLOR_B"] = to_string(fds->active_color[2]); + mRNAMap["BUOYANCY_ALPHA"] = to_string(fds->alpha); + mRNAMap["BUOYANCY_BETA"] = to_string(fds->beta); + mRNAMap["DISSOLVE_SPEED"] = to_string(fds->diss_speed); + mRNAMap["BURNING_RATE"] = to_string(fds->burning_rate); + mRNAMap["FLAME_SMOKE"] = to_string(fds->flame_smoke); + mRNAMap["IGNITION_TEMP"] = to_string(fds->flame_ignition); + mRNAMap["MAX_TEMP"] = to_string(fds->flame_max_temp); + mRNAMap["FLAME_SMOKE_COLOR_X"] = to_string(fds->flame_smoke_color[0]); + mRNAMap["FLAME_SMOKE_COLOR_Y"] = to_string(fds->flame_smoke_color[1]); + mRNAMap["FLAME_SMOKE_COLOR_Z"] = to_string(fds->flame_smoke_color[2]); + mRNAMap["CURRENT_FRAME"] = to_string(int(fmd->time)); + mRNAMap["START_FRAME"] = to_string(fds->cache_frame_start); + mRNAMap["END_FRAME"] = to_string(fds->cache_frame_end); + mRNAMap["CACHE_DATA_FORMAT"] = getCacheFileEnding(fds->cache_data_format); + mRNAMap["CACHE_MESH_FORMAT"] = getCacheFileEnding(fds->cache_mesh_format); + mRNAMap["CACHE_NOISE_FORMAT"] = getCacheFileEnding(fds->cache_noise_format); + mRNAMap["CACHE_PARTICLE_FORMAT"] = getCacheFileEnding(fds->cache_particle_format); mRNAMap["SIMULATION_METHOD"] = simulationMethod; - mRNAMap["FLIP_RATIO"] = to_string(mds->flip_ratio); - mRNAMap["PARTICLE_RANDOMNESS"] = to_string(mds->particle_randomness); - mRNAMap["PARTICLE_NUMBER"] = to_string(mds->particle_number); - mRNAMap["PARTICLE_MINIMUM"] = to_string(mds->particle_minimum); - mRNAMap["PARTICLE_MAXIMUM"] = to_string(mds->particle_maximum); - mRNAMap["PARTICLE_RADIUS"] = to_string(mds->particle_radius); - mRNAMap["FRACTIONS_THRESHOLD"] = to_string(mds->fractions_threshold); - mRNAMap["MESH_CONCAVE_UPPER"] = to_string(mds->mesh_concave_upper); - mRNAMap["MESH_CONCAVE_LOWER"] = to_string(mds->mesh_concave_lower); - mRNAMap["MESH_PARTICLE_RADIUS"] = to_string(mds->mesh_particle_radius); - mRNAMap["MESH_SMOOTHEN_POS"] = to_string(mds->mesh_smoothen_pos); - mRNAMap["MESH_SMOOTHEN_NEG"] = to_string(mds->mesh_smoothen_neg); - mRNAMap["PARTICLE_BAND_WIDTH"] = to_string(mds->particle_band_width); - mRNAMap["SNDPARTICLE_TAU_MIN_WC"] = to_string(mds->sndparticle_tau_min_wc); - mRNAMap["SNDPARTICLE_TAU_MAX_WC"] = to_string(mds->sndparticle_tau_max_wc); - mRNAMap["SNDPARTICLE_TAU_MIN_TA"] = to_string(mds->sndparticle_tau_min_ta); - mRNAMap["SNDPARTICLE_TAU_MAX_TA"] = to_string(mds->sndparticle_tau_max_ta); - mRNAMap["SNDPARTICLE_TAU_MIN_K"] = to_string(mds->sndparticle_tau_min_k); - mRNAMap["SNDPARTICLE_TAU_MAX_K"] = to_string(mds->sndparticle_tau_max_k); - mRNAMap["SNDPARTICLE_K_WC"] = to_string(mds->sndparticle_k_wc); - mRNAMap["SNDPARTICLE_K_TA"] = to_string(mds->sndparticle_k_ta); - mRNAMap["SNDPARTICLE_K_B"] = to_string(mds->sndparticle_k_b); - mRNAMap["SNDPARTICLE_K_D"] = to_string(mds->sndparticle_k_d); - mRNAMap["SNDPARTICLE_L_MIN"] = to_string(mds->sndparticle_l_min); - mRNAMap["SNDPARTICLE_L_MAX"] = to_string(mds->sndparticle_l_max); - mRNAMap["SNDPARTICLE_POTENTIAL_RADIUS"] = to_string(mds->sndparticle_potential_radius); - mRNAMap["SNDPARTICLE_UPDATE_RADIUS"] = to_string(mds->sndparticle_update_radius); - mRNAMap["LIQUID_SURFACE_TENSION"] = to_string(mds->surface_tension); + mRNAMap["FLIP_RATIO"] = to_string(fds->flip_ratio); + mRNAMap["PARTICLE_RANDOMNESS"] = to_string(fds->particle_randomness); + mRNAMap["PARTICLE_NUMBER"] = to_string(fds->particle_number); + mRNAMap["PARTICLE_MINIMUM"] = to_string(fds->particle_minimum); + mRNAMap["PARTICLE_MAXIMUM"] = to_string(fds->particle_maximum); + mRNAMap["PARTICLE_RADIUS"] = to_string(fds->particle_radius); + mRNAMap["FRACTIONS_THRESHOLD"] = to_string(fds->fractions_threshold); + mRNAMap["MESH_CONCAVE_UPPER"] = to_string(fds->mesh_concave_upper); + mRNAMap["MESH_CONCAVE_LOWER"] = to_string(fds->mesh_concave_lower); + mRNAMap["MESH_PARTICLE_RADIUS"] = to_string(fds->mesh_particle_radius); + mRNAMap["MESH_SMOOTHEN_POS"] = to_string(fds->mesh_smoothen_pos); + mRNAMap["MESH_SMOOTHEN_NEG"] = to_string(fds->mesh_smoothen_neg); + mRNAMap["PARTICLE_BAND_WIDTH"] = to_string(fds->particle_band_width); + mRNAMap["SNDPARTICLE_TAU_MIN_WC"] = to_string(fds->sndparticle_tau_min_wc); + mRNAMap["SNDPARTICLE_TAU_MAX_WC"] = to_string(fds->sndparticle_tau_max_wc); + mRNAMap["SNDPARTICLE_TAU_MIN_TA"] = to_string(fds->sndparticle_tau_min_ta); + mRNAMap["SNDPARTICLE_TAU_MAX_TA"] = to_string(fds->sndparticle_tau_max_ta); + mRNAMap["SNDPARTICLE_TAU_MIN_K"] = to_string(fds->sndparticle_tau_min_k); + mRNAMap["SNDPARTICLE_TAU_MAX_K"] = to_string(fds->sndparticle_tau_max_k); + mRNAMap["SNDPARTICLE_K_WC"] = to_string(fds->sndparticle_k_wc); + mRNAMap["SNDPARTICLE_K_TA"] = to_string(fds->sndparticle_k_ta); + mRNAMap["SNDPARTICLE_K_B"] = to_string(fds->sndparticle_k_b); + mRNAMap["SNDPARTICLE_K_D"] = to_string(fds->sndparticle_k_d); + mRNAMap["SNDPARTICLE_L_MIN"] = to_string(fds->sndparticle_l_min); + mRNAMap["SNDPARTICLE_L_MAX"] = to_string(fds->sndparticle_l_max); + mRNAMap["SNDPARTICLE_POTENTIAL_RADIUS"] = to_string(fds->sndparticle_potential_radius); + mRNAMap["SNDPARTICLE_UPDATE_RADIUS"] = to_string(fds->sndparticle_update_radius); + mRNAMap["LIQUID_SURFACE_TENSION"] = to_string(fds->surface_tension); mRNAMap["FLUID_VISCOSITY"] = to_string(viscosity); mRNAMap["FLUID_DOMAIN_SIZE"] = to_string(domainSize); - mRNAMap["FLUID_DOMAIN_SIZE_X"] = to_string(mds->global_size[0]); - mRNAMap["FLUID_DOMAIN_SIZE_Y"] = to_string(mds->global_size[1]); - mRNAMap["FLUID_DOMAIN_SIZE_Z"] = to_string(mds->global_size[2]); + mRNAMap["FLUID_DOMAIN_SIZE_X"] = to_string(fds->global_size[0]); + mRNAMap["FLUID_DOMAIN_SIZE_Y"] = to_string(fds->global_size[1]); + mRNAMap["FLUID_DOMAIN_SIZE_Z"] = to_string(fds->global_size[2]); mRNAMap["SNDPARTICLE_TYPES"] = particleTypesStr; - mRNAMap["GUIDING_ALPHA"] = to_string(mds->guide_alpha); - mRNAMap["GUIDING_BETA"] = to_string(mds->guide_beta); - mRNAMap["GUIDING_FACTOR"] = to_string(mds->guide_vel_factor); - mRNAMap["GRAVITY_X"] = to_string(mds->gravity[0]); - mRNAMap["GRAVITY_Y"] = to_string(mds->gravity[1]); - mRNAMap["GRAVITY_Z"] = to_string(mds->gravity[2]); + mRNAMap["GUIDING_ALPHA"] = to_string(fds->guide_alpha); + mRNAMap["GUIDING_BETA"] = to_string(fds->guide_beta); + mRNAMap["GUIDING_FACTOR"] = to_string(fds->guide_vel_factor); + mRNAMap["GRAVITY_X"] = to_string(fds->gravity[0]); + mRNAMap["GRAVITY_Y"] = to_string(fds->gravity[1]); + mRNAMap["GRAVITY_Z"] = to_string(fds->gravity[2]); mRNAMap["CACHE_DIR"] = cacheDirectory; mRNAMap["COMPRESSION_OPENVDB"] = vdbCompressionMethod; mRNAMap["PRECISION_OPENVDB"] = vdbPrecisionHalf; @@ -1063,7 +1063,7 @@ string MANTA::parseLine(const string &line) return res; } -string MANTA::parseScript(const string &setup_string, FluidModifierData *mmd) +string MANTA::parseScript(const string &setup_string, FluidModifierData *fmd) { if (MANTA::with_debug) cout << "MANTA::parseScript()" << endl; @@ -1073,8 +1073,8 @@ string MANTA::parseScript(const string &setup_string, FluidModifierData *mmd) string line = ""; // Update RNA map if modifier data is handed over - if (mmd) { - initializeRNAMap(mmd); + if (fmd) { + initializeRNAMap(fmd); } while (getline(f, line)) { res << parseLine(line) << "\n"; @@ -1096,16 +1096,16 @@ static string escapeSlashes(string const &s) return result; } -bool MANTA::writeConfiguration(FluidModifierData *mmd, int framenr) +bool MANTA::writeConfiguration(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::writeConfiguration()" << endl; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_CONFIG); + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_CONFIG); string format = FLUID_DOMAIN_EXTENSION_UNI; - string file = getFile(mmd, FLUID_DOMAIN_DIR_CONFIG, FLUID_NAME_CONFIG, format, framenr); + string file = getFile(fmd, FLUID_DOMAIN_DIR_CONFIG, FLUID_NAME_CONFIG, format, framenr); /* Create 'config' subdir if it does not exist already. */ BLI_dir_create_recursive(directory.c_str()); @@ -1116,38 +1116,38 @@ bool MANTA::writeConfiguration(FluidModifierData *mmd, int framenr) return false; } - gzwrite(gzf, &mds->active_fields, sizeof(int)); - gzwrite(gzf, &mds->res, 3 * sizeof(int)); - gzwrite(gzf, &mds->dx, sizeof(float)); - gzwrite(gzf, &mds->dt, sizeof(float)); - gzwrite(gzf, &mds->p0, 3 * sizeof(float)); - gzwrite(gzf, &mds->p1, 3 * sizeof(float)); - gzwrite(gzf, &mds->dp0, 3 * sizeof(float)); - gzwrite(gzf, &mds->shift, 3 * sizeof(int)); - gzwrite(gzf, &mds->obj_shift_f, 3 * sizeof(float)); - gzwrite(gzf, &mds->obmat, 16 * sizeof(float)); - gzwrite(gzf, &mds->base_res, 3 * sizeof(int)); - gzwrite(gzf, &mds->res_min, 3 * sizeof(int)); - gzwrite(gzf, &mds->res_max, 3 * sizeof(int)); - gzwrite(gzf, &mds->active_color, 3 * sizeof(float)); - gzwrite(gzf, &mds->time_total, sizeof(int)); + gzwrite(gzf, &fds->active_fields, sizeof(int)); + gzwrite(gzf, &fds->res, 3 * sizeof(int)); + gzwrite(gzf, &fds->dx, sizeof(float)); + gzwrite(gzf, &fds->dt, sizeof(float)); + gzwrite(gzf, &fds->p0, 3 * sizeof(float)); + gzwrite(gzf, &fds->p1, 3 * sizeof(float)); + gzwrite(gzf, &fds->dp0, 3 * sizeof(float)); + gzwrite(gzf, &fds->shift, 3 * sizeof(int)); + gzwrite(gzf, &fds->obj_shift_f, 3 * sizeof(float)); + gzwrite(gzf, &fds->obmat, 16 * sizeof(float)); + gzwrite(gzf, &fds->base_res, 3 * sizeof(int)); + gzwrite(gzf, &fds->res_min, 3 * sizeof(int)); + gzwrite(gzf, &fds->res_max, 3 * sizeof(int)); + gzwrite(gzf, &fds->active_color, 3 * sizeof(float)); + gzwrite(gzf, &fds->time_total, sizeof(int)); gzwrite(gzf, &FLUID_CACHE_VERSION, 4 * sizeof(char)); return (gzclose(gzf) == Z_OK); } -bool MANTA::writeData(FluidModifierData *mmd, int framenr) +bool MANTA::writeData(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::writeData()" << endl; ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_DATA); - string volume_format = getCacheFileEnding(mds->cache_data_format); - string resumable_cache = !(mds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE) ? "False" : "True"; + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_DATA); + string volume_format = getCacheFileEnding(fds->cache_data_format); + string resumable_cache = !(fds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE) ? "False" : "True"; if (mUsingSmoke) { ss.str(""); @@ -1164,18 +1164,18 @@ bool MANTA::writeData(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::writeNoise(FluidModifierData *mmd, int framenr) +bool MANTA::writeNoise(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::writeNoise()" << endl; ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_NOISE); - string volume_format = getCacheFileEnding(mds->cache_data_format); - string resumable_cache = !(mds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE) ? "False" : "True"; + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_NOISE); + string volume_format = getCacheFileEnding(fds->cache_data_format); + string resumable_cache = !(fds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE) ? "False" : "True"; if (mUsingSmoke && mUsingNoise) { ss.str(""); @@ -1186,19 +1186,19 @@ bool MANTA::writeNoise(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::readConfiguration(FluidModifierData *mmd, int framenr) +bool MANTA::readConfiguration(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::readConfiguration()" << endl; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; float dummy; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_CONFIG); + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_CONFIG); string format = FLUID_DOMAIN_EXTENSION_UNI; - string file = getFile(mmd, FLUID_DOMAIN_DIR_CONFIG, FLUID_NAME_CONFIG, format, framenr); + string file = getFile(fmd, FLUID_DOMAIN_DIR_CONFIG, FLUID_NAME_CONFIG, format, framenr); - if (!hasConfig(mmd, framenr)) + if (!hasConfig(fmd, framenr)) return false; gzFile gzf = (gzFile)BLI_gzopen(file.c_str(), "rb"); /* Do some compression. */ @@ -1207,29 +1207,29 @@ bool MANTA::readConfiguration(FluidModifierData *mmd, int framenr) return false; } - gzread(gzf, &mds->active_fields, sizeof(int)); - gzread(gzf, &mds->res, 3 * sizeof(int)); - gzread(gzf, &mds->dx, sizeof(float)); + gzread(gzf, &fds->active_fields, sizeof(int)); + gzread(gzf, &fds->res, 3 * sizeof(int)); + gzread(gzf, &fds->dx, sizeof(float)); gzread(gzf, &dummy, sizeof(float)); /* dt not needed right now. */ - gzread(gzf, &mds->p0, 3 * sizeof(float)); - gzread(gzf, &mds->p1, 3 * sizeof(float)); - gzread(gzf, &mds->dp0, 3 * sizeof(float)); - gzread(gzf, &mds->shift, 3 * sizeof(int)); - gzread(gzf, &mds->obj_shift_f, 3 * sizeof(float)); - gzread(gzf, &mds->obmat, 16 * sizeof(float)); - gzread(gzf, &mds->base_res, 3 * sizeof(int)); - gzread(gzf, &mds->res_min, 3 * sizeof(int)); - gzread(gzf, &mds->res_max, 3 * sizeof(int)); - gzread(gzf, &mds->active_color, 3 * sizeof(float)); - gzread(gzf, &mds->time_total, sizeof(int)); - gzread(gzf, &mds->cache_id, 4 * sizeof(char)); /* Older caches might have no id. */ - - mds->total_cells = mds->res[0] * mds->res[1] * mds->res[2]; + gzread(gzf, &fds->p0, 3 * sizeof(float)); + gzread(gzf, &fds->p1, 3 * sizeof(float)); + gzread(gzf, &fds->dp0, 3 * sizeof(float)); + gzread(gzf, &fds->shift, 3 * sizeof(int)); + gzread(gzf, &fds->obj_shift_f, 3 * sizeof(float)); + gzread(gzf, &fds->obmat, 16 * sizeof(float)); + gzread(gzf, &fds->base_res, 3 * sizeof(int)); + gzread(gzf, &fds->res_min, 3 * sizeof(int)); + gzread(gzf, &fds->res_max, 3 * sizeof(int)); + gzread(gzf, &fds->active_color, 3 * sizeof(float)); + gzread(gzf, &fds->time_total, sizeof(int)); + gzread(gzf, &fds->cache_id, 4 * sizeof(char)); /* Older caches might have no id. */ + + fds->total_cells = fds->res[0] * fds->res[1] * fds->res[2]; return (gzclose(gzf) == Z_OK); } -bool MANTA::readData(FluidModifierData *mmd, int framenr, bool resumable) +bool MANTA::readData(FluidModifierData *fmd, int framenr, bool resumable) { if (with_debug) cout << "MANTA::readData()" << endl; @@ -1239,15 +1239,15 @@ bool MANTA::readData(FluidModifierData *mmd, int framenr, bool resumable) ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; bool result = true; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_DATA); - string volume_format = getCacheFileEnding(mds->cache_data_format); + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_DATA); + string volume_format = getCacheFileEnding(fds->cache_data_format); string resumable_cache = (!resumable) ? "False" : "True"; /* Sanity check: Are cache files present? */ - if (!hasData(mmd, framenr)) + if (!hasData(fmd, framenr)) return false; if (mUsingSmoke) { @@ -1267,7 +1267,7 @@ bool MANTA::readData(FluidModifierData *mmd, int framenr, bool resumable) return result; } -bool MANTA::readNoise(FluidModifierData *mmd, int framenr, bool resumable) +bool MANTA::readNoise(FluidModifierData *fmd, int framenr, bool resumable) { if (with_debug) cout << "MANTA::readNoise()" << endl; @@ -1277,18 +1277,18 @@ bool MANTA::readNoise(FluidModifierData *mmd, int framenr, bool resumable) ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_NOISE); + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_NOISE); string resumable_cache = (!resumable) ? "False" : "True"; /* Support older caches which had more granular file format control. */ - char format = (!strcmp(mds->cache_id, FLUID_CACHE_VERSION)) ? mds->cache_data_format : - mds->cache_noise_format; + char format = (!strcmp(fds->cache_id, FLUID_CACHE_VERSION)) ? fds->cache_data_format : + fds->cache_noise_format; string volume_format = getCacheFileEnding(format); /* Sanity check: Are cache files present? */ - if (!hasNoise(mmd, framenr)) + if (!hasNoise(fmd, framenr)) return false; ss.str(""); @@ -1299,7 +1299,7 @@ bool MANTA::readNoise(FluidModifierData *mmd, int framenr, bool resumable) return runPythonString(pythonCommands); } -bool MANTA::readMesh(FluidModifierData *mmd, int framenr) +bool MANTA::readMesh(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::readMesh()" << endl; @@ -1309,14 +1309,14 @@ bool MANTA::readMesh(FluidModifierData *mmd, int framenr) ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_MESH); - string mesh_format = getCacheFileEnding(mds->cache_mesh_format); - string volume_format = getCacheFileEnding(mds->cache_data_format); + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_MESH); + string mesh_format = getCacheFileEnding(fds->cache_mesh_format); + string volume_format = getCacheFileEnding(fds->cache_data_format); /* Sanity check: Are cache files present? */ - if (!hasMesh(mmd, framenr)) + if (!hasMesh(fmd, framenr)) return false; ss.str(""); @@ -1334,7 +1334,7 @@ bool MANTA::readMesh(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::readParticles(FluidModifierData *mmd, int framenr, bool resumable) +bool MANTA::readParticles(FluidModifierData *fmd, int framenr, bool resumable) { if (with_debug) cout << "MANTA::readParticles()" << endl; @@ -1346,18 +1346,18 @@ bool MANTA::readParticles(FluidModifierData *mmd, int framenr, bool resumable) ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; - string directory = getDirectory(mmd, FLUID_DOMAIN_DIR_PARTICLES); + string directory = getDirectory(fmd, FLUID_DOMAIN_DIR_PARTICLES); string resumable_cache = (!resumable) ? "False" : "True"; /* Support older caches which had more granular file format control. */ - char format = (!strcmp(mds->cache_id, FLUID_CACHE_VERSION)) ? mds->cache_data_format : - mds->cache_particle_format; + char format = (!strcmp(fds->cache_id, FLUID_CACHE_VERSION)) ? fds->cache_data_format : + fds->cache_particle_format; string volume_format = getCacheFileEnding(format); /* Sanity check: Are cache files present? */ - if (!hasParticles(mmd, framenr)) + if (!hasParticles(fmd, framenr)) return false; ss.str(""); @@ -1368,27 +1368,27 @@ bool MANTA::readParticles(FluidModifierData *mmd, int framenr, bool resumable) return runPythonString(pythonCommands); } -bool MANTA::readGuiding(FluidModifierData *mmd, int framenr, bool sourceDomain) +bool MANTA::readGuiding(FluidModifierData *fmd, int framenr, bool sourceDomain) { if (with_debug) cout << "MANTA::readGuiding()" << endl; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; if (!mUsingGuiding) return false; - if (!mds) + if (!fds) return false; ostringstream ss; vector<string> pythonCommands; - string directory = (sourceDomain) ? getDirectory(mmd, FLUID_DOMAIN_DIR_DATA) : - getDirectory(mmd, FLUID_DOMAIN_DIR_GUIDE); - string volume_format = getCacheFileEnding(mds->cache_data_format); + string directory = (sourceDomain) ? getDirectory(fmd, FLUID_DOMAIN_DIR_DATA) : + getDirectory(fmd, FLUID_DOMAIN_DIR_GUIDE); + string volume_format = getCacheFileEnding(fds->cache_data_format); /* Sanity check: Are cache files present? */ - if (!hasGuiding(mmd, framenr, sourceDomain)) + if (!hasGuiding(fmd, framenr, sourceDomain)) return false; if (sourceDomain) { @@ -1406,7 +1406,7 @@ bool MANTA::readGuiding(FluidModifierData *mmd, int framenr, bool sourceDomain) return runPythonString(pythonCommands); } -bool MANTA::bakeData(FluidModifierData *mmd, int framenr) +bool MANTA::bakeData(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::bakeData()" << endl; @@ -1414,19 +1414,19 @@ bool MANTA::bakeData(FluidModifierData *mmd, int framenr) string tmpString, finalString; ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; char cacheDirData[FILE_MAX], cacheDirGuiding[FILE_MAX]; cacheDirData[0] = '\0'; cacheDirGuiding[0] = '\0'; - string volume_format = getCacheFileEnding(mds->cache_data_format); + string volume_format = getCacheFileEnding(fds->cache_data_format); BLI_path_join( - cacheDirData, sizeof(cacheDirData), mds->cache_directory, FLUID_DOMAIN_DIR_DATA, nullptr); + cacheDirData, sizeof(cacheDirData), fds->cache_directory, FLUID_DOMAIN_DIR_DATA, nullptr); BLI_path_join(cacheDirGuiding, sizeof(cacheDirGuiding), - mds->cache_directory, + fds->cache_directory, FLUID_DOMAIN_DIR_GUIDE, nullptr); BLI_path_make_safe(cacheDirData); @@ -1440,22 +1440,22 @@ bool MANTA::bakeData(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::bakeNoise(FluidModifierData *mmd, int framenr) +bool MANTA::bakeNoise(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::bakeNoise()" << endl; ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; char cacheDirNoise[FILE_MAX]; cacheDirNoise[0] = '\0'; - string volume_format = getCacheFileEnding(mds->cache_data_format); + string volume_format = getCacheFileEnding(fds->cache_data_format); BLI_path_join( - cacheDirNoise, sizeof(cacheDirNoise), mds->cache_directory, FLUID_DOMAIN_DIR_NOISE, nullptr); + cacheDirNoise, sizeof(cacheDirNoise), fds->cache_directory, FLUID_DOMAIN_DIR_NOISE, nullptr); BLI_path_make_safe(cacheDirNoise); ss.str(""); @@ -1466,23 +1466,23 @@ bool MANTA::bakeNoise(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::bakeMesh(FluidModifierData *mmd, int framenr) +bool MANTA::bakeMesh(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::bakeMesh()" << endl; ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; char cacheDirMesh[FILE_MAX]; cacheDirMesh[0] = '\0'; - string volume_format = getCacheFileEnding(mds->cache_data_format); - string mesh_format = getCacheFileEnding(mds->cache_mesh_format); + string volume_format = getCacheFileEnding(fds->cache_data_format); + string mesh_format = getCacheFileEnding(fds->cache_mesh_format); BLI_path_join( - cacheDirMesh, sizeof(cacheDirMesh), mds->cache_directory, FLUID_DOMAIN_DIR_MESH, nullptr); + cacheDirMesh, sizeof(cacheDirMesh), fds->cache_directory, FLUID_DOMAIN_DIR_MESH, nullptr); BLI_path_make_safe(cacheDirMesh); ss.str(""); @@ -1493,24 +1493,24 @@ bool MANTA::bakeMesh(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::bakeParticles(FluidModifierData *mmd, int framenr) +bool MANTA::bakeParticles(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::bakeParticles()" << endl; ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; char cacheDirParticles[FILE_MAX]; cacheDirParticles[0] = '\0'; - string volume_format = getCacheFileEnding(mds->cache_data_format); - string resumable_cache = !(mds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE) ? "False" : "True"; + string volume_format = getCacheFileEnding(fds->cache_data_format); + string resumable_cache = !(fds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE) ? "False" : "True"; BLI_path_join(cacheDirParticles, sizeof(cacheDirParticles), - mds->cache_directory, + fds->cache_directory, FLUID_DOMAIN_DIR_PARTICLES, nullptr); BLI_path_make_safe(cacheDirParticles); @@ -1523,23 +1523,23 @@ bool MANTA::bakeParticles(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::bakeGuiding(FluidModifierData *mmd, int framenr) +bool MANTA::bakeGuiding(FluidModifierData *fmd, int framenr) { if (with_debug) cout << "MANTA::bakeGuiding()" << endl; ostringstream ss; vector<string> pythonCommands; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; char cacheDirGuiding[FILE_MAX]; cacheDirGuiding[0] = '\0'; - string volume_format = getCacheFileEnding(mds->cache_data_format); + string volume_format = getCacheFileEnding(fds->cache_data_format); BLI_path_join(cacheDirGuiding, sizeof(cacheDirGuiding), - mds->cache_directory, + fds->cache_directory, FLUID_DOMAIN_DIR_GUIDE, nullptr); BLI_path_make_safe(cacheDirGuiding); @@ -1552,7 +1552,7 @@ bool MANTA::bakeGuiding(FluidModifierData *mmd, int framenr) return runPythonString(pythonCommands); } -bool MANTA::updateVariables(FluidModifierData *mmd) +bool MANTA::updateVariables(FluidModifierData *fmd) { string tmpString, finalString; vector<string> pythonCommands; @@ -1576,13 +1576,13 @@ bool MANTA::updateVariables(FluidModifierData *mmd) if (mUsingMesh) tmpString += fluid_variables_mesh; - finalString = parseScript(tmpString, mmd); + finalString = parseScript(tmpString, fmd); pythonCommands.push_back(finalString); return runPythonString(pythonCommands); } -void MANTA::exportSmokeScript(FluidModifierData *mmd) +void MANTA::exportSmokeScript(FluidModifierData *fmd) { if (with_debug) cout << "MANTA::exportSmokeScript()" << endl; @@ -1590,10 +1590,10 @@ void MANTA::exportSmokeScript(FluidModifierData *mmd) char cacheDir[FILE_MAX] = "\0"; char cacheDirScript[FILE_MAX] = "\0"; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; BLI_path_join( - cacheDir, sizeof(cacheDir), mds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, nullptr); + cacheDir, sizeof(cacheDir), fds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, nullptr); BLI_path_make_safe(cacheDir); /* Create 'script' subdir if it does not exist already */ BLI_dir_create_recursive(cacheDir); @@ -1601,14 +1601,14 @@ void MANTA::exportSmokeScript(FluidModifierData *mmd) cacheDirScript, sizeof(cacheDirScript), cacheDir, FLUID_DOMAIN_SMOKE_SCRIPT, nullptr); BLI_path_make_safe(cacheDir); - bool noise = mds->flags & FLUID_DOMAIN_USE_NOISE; - bool heat = mds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT; - bool colors = mds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS; - bool fire = mds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE; - bool obstacle = mds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE; - bool guiding = mds->active_fields & FLUID_DOMAIN_ACTIVE_GUIDE; - bool invel = mds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL; - bool outflow = mds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW; + bool noise = fds->flags & FLUID_DOMAIN_USE_NOISE; + bool heat = fds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT; + bool colors = fds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS; + bool fire = fds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE; + bool obstacle = fds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE; + bool guiding = fds->active_fields & FLUID_DOMAIN_ACTIVE_GUIDE; + bool invel = fds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL; + bool outflow = fds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW; string manta_script; @@ -1681,7 +1681,7 @@ void MANTA::exportSmokeScript(FluidModifierData *mmd) manta_script += header_main + smoke_standalone + fluid_standalone; // Fill in missing variables in script - string final_script = MANTA::parseScript(manta_script, mmd); + string final_script = MANTA::parseScript(manta_script, fmd); // Write script ofstream myfile; @@ -1690,7 +1690,7 @@ void MANTA::exportSmokeScript(FluidModifierData *mmd) myfile.close(); } -void MANTA::exportLiquidScript(FluidModifierData *mmd) +void MANTA::exportLiquidScript(FluidModifierData *fmd) { if (with_debug) cout << "MANTA::exportLiquidScript()" << endl; @@ -1698,10 +1698,10 @@ void MANTA::exportLiquidScript(FluidModifierData *mmd) char cacheDir[FILE_MAX] = "\0"; char cacheDirScript[FILE_MAX] = "\0"; - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; BLI_path_join( - cacheDir, sizeof(cacheDir), mds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, nullptr); + cacheDir, sizeof(cacheDir), fds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, nullptr); BLI_path_make_safe(cacheDir); /* Create 'script' subdir if it does not exist already */ BLI_dir_create_recursive(cacheDir); @@ -1709,16 +1709,16 @@ void MANTA::exportLiquidScript(FluidModifierData *mmd) cacheDirScript, sizeof(cacheDirScript), cacheDir, FLUID_DOMAIN_LIQUID_SCRIPT, nullptr); BLI_path_make_safe(cacheDirScript); - bool mesh = mds->flags & FLUID_DOMAIN_USE_MESH; - bool drops = mds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY; - bool bubble = mds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE; - bool floater = mds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM; - bool tracer = mds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER; - bool obstacle = mds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE; - bool fractions = mds->flags & FLUID_DOMAIN_USE_FRACTIONS; - bool guiding = mds->active_fields & FLUID_DOMAIN_ACTIVE_GUIDE; - bool invel = mds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL; - bool outflow = mds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW; + bool mesh = fds->flags & FLUID_DOMAIN_USE_MESH; + bool drops = fds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY; + bool bubble = fds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE; + bool floater = fds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM; + bool tracer = fds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER; + bool obstacle = fds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE; + bool fractions = fds->flags & FLUID_DOMAIN_USE_FRACTIONS; + bool guiding = fds->active_fields & FLUID_DOMAIN_ACTIVE_GUIDE; + bool invel = fds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL; + bool outflow = fds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW; string manta_script; @@ -1789,7 +1789,7 @@ void MANTA::exportLiquidScript(FluidModifierData *mmd) manta_script += header_main + liquid_standalone + fluid_standalone; // Fill in missing variables in script - string final_script = MANTA::parseScript(manta_script, mmd); + string final_script = MANTA::parseScript(manta_script, fmd); // Write script ofstream myfile; @@ -1932,10 +1932,10 @@ float MANTA::getTimestep() return (float)pyObjectToDouble(callPythonFunction(solver, func, true)); } -bool MANTA::needsRealloc(FluidModifierData *mmd) +bool MANTA::needsRealloc(FluidModifierData *fmd) { - FluidDomainSettings *mds = mmd->domain; - return (mds->res[0] != mResX || mds->res[1] != mResY || mds->res[2] != mResZ); + FluidDomainSettings *fds = fmd->domain; + return (fds->res[0] != mResX || fds->res[1] != mResY || fds->res[2] != mResZ); } void MANTA::adaptTimestep() @@ -2091,23 +2091,23 @@ void MANTA::updatePointers() mNoiseFromFile = false; } -bool MANTA::hasConfig(FluidModifierData *mmd, int framenr) +bool MANTA::hasConfig(FluidModifierData *fmd, int framenr) { string extension = FLUID_DOMAIN_EXTENSION_UNI; return BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_CONFIG, FLUID_NAME_CONFIG, extension, framenr).c_str()); + getFile(fmd, FLUID_DOMAIN_DIR_CONFIG, FLUID_NAME_CONFIG, extension, framenr).c_str()); } -bool MANTA::hasData(FluidModifierData *mmd, int framenr) +bool MANTA::hasData(FluidModifierData *fmd, int framenr) { - string extension = getCacheFileEnding(mmd->domain->cache_data_format); + string extension = getCacheFileEnding(fmd->domain->cache_data_format); bool exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_DATA, FLUID_NAME_DATA, extension, framenr).c_str()); + getFile(fmd, FLUID_DOMAIN_DIR_DATA, FLUID_NAME_DATA, extension, framenr).c_str()); /* Check single file naming. */ if (!exists) { string filename = (mUsingSmoke) ? FLUID_NAME_DENSITY : FLUID_NAME_PP; - exists = BLI_exists(getFile(mmd, FLUID_DOMAIN_DIR_DATA, filename, extension, framenr).c_str()); + exists = BLI_exists(getFile(fmd, FLUID_DOMAIN_DIR_DATA, filename, extension, framenr).c_str()); } if (with_debug) cout << "Fluid: Has Data: " << exists << endl; @@ -2115,24 +2115,24 @@ bool MANTA::hasData(FluidModifierData *mmd, int framenr) return exists; } -bool MANTA::hasNoise(FluidModifierData *mmd, int framenr) +bool MANTA::hasNoise(FluidModifierData *fmd, int framenr) { - string extension = getCacheFileEnding(mmd->domain->cache_data_format); + string extension = getCacheFileEnding(fmd->domain->cache_data_format); bool exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_NAME_NOISE, extension, framenr).c_str()); + getFile(fmd, FLUID_DOMAIN_DIR_NOISE, FLUID_NAME_NOISE, extension, framenr).c_str()); /* Check single file naming. */ if (!exists) { - extension = getCacheFileEnding(mmd->domain->cache_data_format); + extension = getCacheFileEnding(fmd->domain->cache_data_format); exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_NAME_DENSITY_NOISE, extension, framenr) + getFile(fmd, FLUID_DOMAIN_DIR_NOISE, FLUID_NAME_DENSITY_NOISE, extension, framenr) .c_str()); } /* Check single file naming with deprecated extension. */ if (!exists) { - extension = getCacheFileEnding(mmd->domain->cache_noise_format); + extension = getCacheFileEnding(fmd->domain->cache_noise_format); exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_NOISE, FLUID_NAME_DENSITY_NOISE, extension, framenr) + getFile(fmd, FLUID_DOMAIN_DIR_NOISE, FLUID_NAME_DENSITY_NOISE, extension, framenr) .c_str()); } if (with_debug) @@ -2141,16 +2141,16 @@ bool MANTA::hasNoise(FluidModifierData *mmd, int framenr) return exists; } -bool MANTA::hasMesh(FluidModifierData *mmd, int framenr) +bool MANTA::hasMesh(FluidModifierData *fmd, int framenr) { - string extension = getCacheFileEnding(mmd->domain->cache_mesh_format); + string extension = getCacheFileEnding(fmd->domain->cache_mesh_format); bool exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_MESH, FLUID_NAME_MESH, extension, framenr).c_str()); + getFile(fmd, FLUID_DOMAIN_DIR_MESH, FLUID_NAME_MESH, extension, framenr).c_str()); /* Check old file naming. */ if (!exists) { exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_MESH, FLUID_NAME_LMESH, extension, framenr).c_str()); + getFile(fmd, FLUID_DOMAIN_DIR_MESH, FLUID_NAME_LMESH, extension, framenr).c_str()); } if (with_debug) cout << "Fluid: Has Mesh: " << exists << endl; @@ -2158,24 +2158,24 @@ bool MANTA::hasMesh(FluidModifierData *mmd, int framenr) return exists; } -bool MANTA::hasParticles(FluidModifierData *mmd, int framenr) +bool MANTA::hasParticles(FluidModifierData *fmd, int framenr) { - string extension = getCacheFileEnding(mmd->domain->cache_data_format); + string extension = getCacheFileEnding(fmd->domain->cache_data_format); bool exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_PARTICLES, FLUID_NAME_PARTICLES, extension, framenr).c_str()); + getFile(fmd, FLUID_DOMAIN_DIR_PARTICLES, FLUID_NAME_PARTICLES, extension, framenr).c_str()); /* Check single file naming. */ if (!exists) { - extension = getCacheFileEnding(mmd->domain->cache_data_format); + extension = getCacheFileEnding(fmd->domain->cache_data_format); exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_PARTICLES, FLUID_NAME_PP_PARTICLES, extension, framenr) + getFile(fmd, FLUID_DOMAIN_DIR_PARTICLES, FLUID_NAME_PP_PARTICLES, extension, framenr) .c_str()); } /* Check single file naming with deprecated extension. */ if (!exists) { - extension = getCacheFileEnding(mmd->domain->cache_particle_format); + extension = getCacheFileEnding(fmd->domain->cache_particle_format); exists = BLI_exists( - getFile(mmd, FLUID_DOMAIN_DIR_PARTICLES, FLUID_NAME_PP_PARTICLES, extension, framenr) + getFile(fmd, FLUID_DOMAIN_DIR_PARTICLES, FLUID_NAME_PP_PARTICLES, extension, framenr) .c_str()); } if (with_debug) @@ -2184,32 +2184,32 @@ bool MANTA::hasParticles(FluidModifierData *mmd, int framenr) return exists; } -bool MANTA::hasGuiding(FluidModifierData *mmd, int framenr, bool sourceDomain) +bool MANTA::hasGuiding(FluidModifierData *fmd, int framenr, bool sourceDomain) { string subdirectory = (sourceDomain) ? FLUID_DOMAIN_DIR_DATA : FLUID_DOMAIN_DIR_GUIDE; string filename = (sourceDomain) ? FLUID_NAME_VELOCITY : FLUID_NAME_GUIDEVEL; - string extension = getCacheFileEnding(mmd->domain->cache_data_format); - bool exists = BLI_exists(getFile(mmd, subdirectory, filename, extension, framenr).c_str()); + string extension = getCacheFileEnding(fmd->domain->cache_data_format); + bool exists = BLI_exists(getFile(fmd, subdirectory, filename, extension, framenr).c_str()); if (with_debug) cout << "Fluid: Has Guiding: " << exists << endl; return exists; } -string MANTA::getDirectory(FluidModifierData *mmd, string subdirectory) +string MANTA::getDirectory(FluidModifierData *fmd, string subdirectory) { char directory[FILE_MAX]; BLI_path_join( - directory, sizeof(directory), mmd->domain->cache_directory, subdirectory.c_str(), nullptr); + directory, sizeof(directory), fmd->domain->cache_directory, subdirectory.c_str(), nullptr); BLI_path_make_safe(directory); return directory; } string MANTA::getFile( - FluidModifierData *mmd, string subdirectory, string fname, string extension, int framenr) + FluidModifierData *fmd, string subdirectory, string fname, string extension, int framenr) { char targetFile[FILE_MAX]; - string path = getDirectory(mmd, subdirectory); + string path = getDirectory(fmd, subdirectory); string filename = fname + "_####" + extension; BLI_join_dirfile(targetFile, sizeof(targetFile), path.c_str(), filename.c_str()); BLI_path_frame(targetFile, framenr, 0); diff --git a/intern/mantaflow/intern/MANTA_main.h b/intern/mantaflow/intern/MANTA_main.h index 38cbd33ea0a..dae2aea4e08 100644 --- a/intern/mantaflow/intern/MANTA_main.h +++ b/intern/mantaflow/intern/MANTA_main.h @@ -37,7 +37,7 @@ using std::vector; struct MANTA { public: - MANTA(int *res, struct FluidModifierData *mmd); + MANTA(int *res, struct FluidModifierData *fmd); MANTA(){}; virtual ~MANTA(); @@ -61,68 +61,68 @@ struct MANTA { } Triangle; // Manta step, handling everything - void step(struct FluidModifierData *mmd, int startFrame); + void step(struct FluidModifierData *fmd, int startFrame); // Grid initialization functions - void initHeat(struct FluidModifierData *mmd = NULL); - void initFire(struct FluidModifierData *mmd = NULL); - void initColors(struct FluidModifierData *mmd = NULL); - void initFireHigh(struct FluidModifierData *mmd = NULL); - void initColorsHigh(struct FluidModifierData *mmd = NULL); - void initLiquid(FluidModifierData *mmd = NULL); - void initLiquidMesh(FluidModifierData *mmd = NULL); - void initObstacle(FluidModifierData *mmd = NULL); - void initCurvature(FluidModifierData *mmd = NULL); - void initGuiding(FluidModifierData *mmd = NULL); - void initFractions(FluidModifierData *mmd = NULL); - void initInVelocity(FluidModifierData *mmd = NULL); - void initOutflow(FluidModifierData *mmd = NULL); - void initSndParts(FluidModifierData *mmd = NULL); - void initLiquidSndParts(FluidModifierData *mmd = NULL); + 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); // Pointer transfer: Mantaflow -> Blender void updatePointers(); // Write cache - bool writeConfiguration(FluidModifierData *mmd, int framenr); - bool writeData(FluidModifierData *mmd, int framenr); - bool writeNoise(FluidModifierData *mmd, int framenr); + bool writeConfiguration(FluidModifierData *fmd, int framenr); + bool writeData(FluidModifierData *fmd, int framenr); + bool writeNoise(FluidModifierData *fmd, int framenr); // write calls for mesh and particles were left in bake calls for now // Read cache (via Manta save/load) - bool readConfiguration(FluidModifierData *mmd, int framenr); - bool readData(FluidModifierData *mmd, int framenr, bool resumable); - bool readNoise(FluidModifierData *mmd, int framenr, bool resumable); - bool readMesh(FluidModifierData *mmd, int framenr); - bool readParticles(FluidModifierData *mmd, int framenr, bool resumable); - bool readGuiding(FluidModifierData *mmd, int framenr, bool sourceDomain); + bool readConfiguration(FluidModifierData *fmd, int framenr); + bool readData(FluidModifierData *fmd, int framenr, bool resumable); + bool readNoise(FluidModifierData *fmd, int framenr, bool resumable); + bool readMesh(FluidModifierData *fmd, int framenr); + bool readParticles(FluidModifierData *fmd, int framenr, bool resumable); + bool readGuiding(FluidModifierData *fmd, int framenr, bool sourceDomain); // Read cache (via file read functions in MANTA - e.g. read .bobj.gz meshes, .uni particles) - bool updateMeshStructures(FluidModifierData *mmd, int framenr); - bool updateFlipStructures(FluidModifierData *mmd, int framenr); - bool updateParticleStructures(FluidModifierData *mmd, int framenr); - bool updateSmokeStructures(FluidModifierData *mmd, int framenr); - bool updateNoiseStructures(FluidModifierData *mmd, int framenr); - bool updateVariables(FluidModifierData *mmd); + bool updateMeshStructures(FluidModifierData *fmd, int framenr); + bool updateFlipStructures(FluidModifierData *fmd, int framenr); + bool updateParticleStructures(FluidModifierData *fmd, int framenr); + bool updateSmokeStructures(FluidModifierData *fmd, int framenr); + bool updateNoiseStructures(FluidModifierData *fmd, int framenr); + bool updateVariables(FluidModifierData *fmd); // Bake cache - bool bakeData(FluidModifierData *mmd, int framenr); - bool bakeNoise(FluidModifierData *mmd, int framenr); - bool bakeMesh(FluidModifierData *mmd, int framenr); - bool bakeParticles(FluidModifierData *mmd, int framenr); - bool bakeGuiding(FluidModifierData *mmd, int framenr); + bool bakeData(FluidModifierData *fmd, int framenr); + bool bakeNoise(FluidModifierData *fmd, int framenr); + bool bakeMesh(FluidModifierData *fmd, int framenr); + bool bakeParticles(FluidModifierData *fmd, int framenr); + bool bakeGuiding(FluidModifierData *fmd, int framenr); // IO for Mantaflow scene script - void exportSmokeScript(struct FluidModifierData *mmd); - void exportLiquidScript(struct FluidModifierData *mmd); + void exportSmokeScript(struct FluidModifierData *fmd); + void exportLiquidScript(struct FluidModifierData *fmd); // Check cache status by frame - bool hasConfig(FluidModifierData *mmd, int framenr); - bool hasData(FluidModifierData *mmd, int framenr); - bool hasNoise(FluidModifierData *mmd, int framenr); - bool hasMesh(FluidModifierData *mmd, int framenr); - bool hasParticles(FluidModifierData *mmd, int framenr); - bool hasGuiding(FluidModifierData *mmd, int framenr, bool sourceDomain); + bool hasConfig(FluidModifierData *fmd, int framenr); + bool hasData(FluidModifierData *fmd, int framenr); + bool hasNoise(FluidModifierData *fmd, int framenr); + bool hasMesh(FluidModifierData *fmd, int framenr); + bool hasParticles(FluidModifierData *fmd, int framenr); + bool hasGuiding(FluidModifierData *fmd, int framenr, bool sourceDomain); inline size_t getTotalCells() { @@ -739,7 +739,7 @@ struct MANTA { float getTimestep(); void adaptTimestep(); - bool needsRealloc(FluidModifierData *mmd); + bool needsRealloc(FluidModifierData *fmd); private: // simulation constants @@ -874,20 +874,20 @@ struct MANTA { vector<pVel> *mSndParticleVelocity; vector<float> *mSndParticleLife; - void initializeRNAMap(struct FluidModifierData *mmd = NULL); - void initDomain(struct FluidModifierData *mmd = NULL); - void initNoise(struct FluidModifierData *mmd = NULL); - void initMesh(struct FluidModifierData *mmd = NULL); - void initSmoke(struct FluidModifierData *mmd = NULL); - void initSmokeNoise(struct FluidModifierData *mmd = NULL); + 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 initializeMantaflow(); void terminateMantaflow(); bool runPythonString(vector<string> commands); string getRealValue(const string &varName); string parseLine(const string &line); - string parseScript(const string &setup_string, FluidModifierData *mmd = NULL); - string getDirectory(struct FluidModifierData *mmd, string subdirectory); - string getFile(struct FluidModifierData *mmd, + string parseScript(const string &setup_string, FluidModifierData *fmd = NULL); + string getDirectory(struct FluidModifierData *fmd, string subdirectory); + string getFile(struct FluidModifierData *fmd, string subdirectory, string fname, string extension, diff --git a/intern/mantaflow/intern/manta_fluid_API.cpp b/intern/mantaflow/intern/manta_fluid_API.cpp index f1607f1bd99..1db3da63ecc 100644 --- a/intern/mantaflow/intern/manta_fluid_API.cpp +++ b/intern/mantaflow/intern/manta_fluid_API.cpp @@ -27,9 +27,9 @@ #include "manta_fluid_API.h" /* Fluid functions */ -MANTA *manta_init(int *res, struct FluidModifierData *mmd) +MANTA *manta_init(int *res, struct FluidModifierData *fmd) { - return new MANTA(res, mmd); + return new MANTA(res, fmd); } void manta_free(MANTA *fluid) { @@ -37,173 +37,173 @@ void manta_free(MANTA *fluid) fluid = nullptr; } -void manta_ensure_obstacle(MANTA *fluid, struct FluidModifierData *mmd) +void manta_ensure_obstacle(MANTA *fluid, struct FluidModifierData *fmd) { if (!fluid) return; - fluid->initObstacle(mmd); + fluid->initObstacle(fmd); fluid->updatePointers(); } -void manta_ensure_guiding(MANTA *fluid, struct FluidModifierData *mmd) +void manta_ensure_guiding(MANTA *fluid, struct FluidModifierData *fmd) { if (!fluid) return; - fluid->initGuiding(mmd); + fluid->initGuiding(fmd); fluid->updatePointers(); } -void manta_ensure_invelocity(MANTA *fluid, struct FluidModifierData *mmd) +void manta_ensure_invelocity(MANTA *fluid, struct FluidModifierData *fmd) { if (!fluid) return; - fluid->initInVelocity(mmd); + fluid->initInVelocity(fmd); fluid->updatePointers(); } -void manta_ensure_outflow(MANTA *fluid, struct FluidModifierData *mmd) +void manta_ensure_outflow(MANTA *fluid, struct FluidModifierData *fmd) { if (!fluid) return; - fluid->initOutflow(mmd); + fluid->initOutflow(fmd); fluid->updatePointers(); } -int manta_write_config(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_write_config(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->writeConfiguration(mmd, framenr); + return fluid->writeConfiguration(fmd, framenr); } -int manta_write_data(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_write_data(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->writeData(mmd, framenr); + return fluid->writeData(fmd, framenr); } -int manta_write_noise(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_write_noise(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->writeNoise(mmd, framenr); + return fluid->writeNoise(fmd, framenr); } -int manta_read_config(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_read_config(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->readConfiguration(mmd, framenr); + return fluid->readConfiguration(fmd, framenr); } -int manta_read_data(MANTA *fluid, FluidModifierData *mmd, int framenr, bool resumable) +int manta_read_data(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->readData(mmd, framenr, resumable); + return fluid->readData(fmd, framenr, resumable); } -int manta_read_noise(MANTA *fluid, FluidModifierData *mmd, int framenr, bool resumable) +int manta_read_noise(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->readNoise(mmd, framenr, resumable); + return fluid->readNoise(fmd, framenr, resumable); } -int manta_read_mesh(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_read_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->readMesh(mmd, framenr); + return fluid->readMesh(fmd, framenr); } -int manta_read_particles(MANTA *fluid, FluidModifierData *mmd, int framenr, bool resumable) +int manta_read_particles(MANTA *fluid, FluidModifierData *fmd, int framenr, bool resumable) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->readParticles(mmd, framenr, resumable); + return fluid->readParticles(fmd, framenr, resumable); } -int manta_read_guiding(MANTA *fluid, FluidModifierData *mmd, int framenr, bool sourceDomain) +int manta_read_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool sourceDomain) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->readGuiding(mmd, framenr, sourceDomain); + return fluid->readGuiding(fmd, framenr, sourceDomain); } -int manta_bake_data(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_bake_data(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->bakeData(mmd, framenr); + return fluid->bakeData(fmd, framenr); } -int manta_bake_noise(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_bake_noise(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->bakeNoise(mmd, framenr); + return fluid->bakeNoise(fmd, framenr); } -int manta_bake_mesh(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_bake_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->bakeMesh(mmd, framenr); + return fluid->bakeMesh(fmd, framenr); } -int manta_bake_particles(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_bake_particles(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->bakeParticles(mmd, framenr); + return fluid->bakeParticles(fmd, framenr); } -int manta_bake_guiding(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_bake_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->bakeGuiding(mmd, framenr); + return fluid->bakeGuiding(fmd, framenr); } -int manta_has_data(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_has_data(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->hasData(mmd, framenr); + return fluid->hasData(fmd, framenr); } -int manta_has_noise(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_has_noise(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->hasNoise(mmd, framenr); + return fluid->hasNoise(fmd, framenr); } -int manta_has_mesh(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_has_mesh(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->hasMesh(mmd, framenr); + return fluid->hasMesh(fmd, framenr); } -int manta_has_particles(MANTA *fluid, FluidModifierData *mmd, int framenr) +int manta_has_particles(MANTA *fluid, FluidModifierData *fmd, int framenr) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->hasParticles(mmd, framenr); + return fluid->hasParticles(fmd, framenr); } -int manta_has_guiding(MANTA *fluid, FluidModifierData *mmd, int framenr, bool domain) +int manta_has_guiding(MANTA *fluid, FluidModifierData *fmd, int framenr, bool domain) { - if (!fluid || !mmd) + if (!fluid || !fmd) return 0; - return fluid->hasGuiding(mmd, framenr, domain); + return fluid->hasGuiding(fmd, framenr, domain); } -void manta_update_variables(MANTA *fluid, FluidModifierData *mmd) +void manta_update_variables(MANTA *fluid, FluidModifierData *fmd) { if (!fluid) return; - fluid->updateVariables(mmd); + fluid->updateVariables(fmd); } int manta_get_frame(MANTA *fluid) @@ -227,11 +227,11 @@ void manta_adapt_timestep(MANTA *fluid) fluid->adaptTimestep(); } -bool manta_needs_realloc(MANTA *fluid, FluidModifierData *mmd) +bool manta_needs_realloc(MANTA *fluid, FluidModifierData *fmd) { if (!fluid) return false; - return fluid->needsRealloc(mmd); + return fluid->needsRealloc(fmd); } /* Fluid accessors */ @@ -361,11 +361,11 @@ float *manta_get_phioutstatic_in(MANTA *fluid) } /* Smoke functions */ -void manta_smoke_export_script(MANTA *smoke, FluidModifierData *mmd) +void manta_smoke_export_script(MANTA *smoke, FluidModifierData *fmd) { - if (!smoke || !mmd) + if (!smoke || !fmd) return; - smoke->exportSmokeScript(mmd); + smoke->exportSmokeScript(fmd); } void manta_smoke_export(MANTA *smoke, @@ -527,31 +527,31 @@ void manta_smoke_turbulence_get_rgba_fixed_color(MANTA *smoke, get_rgba_fixed_color(color, smoke->getTotalCellsHigh(), data, sequential); } -void manta_smoke_ensure_heat(MANTA *smoke, struct FluidModifierData *mmd) +void manta_smoke_ensure_heat(MANTA *smoke, struct FluidModifierData *fmd) { if (smoke) { - smoke->initHeat(mmd); + smoke->initHeat(fmd); smoke->updatePointers(); } } -void manta_smoke_ensure_fire(MANTA *smoke, struct FluidModifierData *mmd) +void manta_smoke_ensure_fire(MANTA *smoke, struct FluidModifierData *fmd) { if (smoke) { - smoke->initFire(mmd); + smoke->initFire(fmd); if (smoke->usingNoise()) { - smoke->initFireHigh(mmd); + smoke->initFireHigh(fmd); } smoke->updatePointers(); } } -void manta_smoke_ensure_colors(MANTA *smoke, struct FluidModifierData *mmd) +void manta_smoke_ensure_colors(MANTA *smoke, struct FluidModifierData *fmd) { if (smoke) { - smoke->initColors(mmd); + smoke->initColors(fmd); if (smoke->usingNoise()) { - smoke->initColorsHigh(mmd); + smoke->initColorsHigh(fmd); } smoke->updatePointers(); } @@ -700,17 +700,17 @@ int manta_smoke_turbulence_get_cells(MANTA *smoke) } /* Liquid functions */ -void manta_liquid_export_script(MANTA *liquid, FluidModifierData *mmd) +void manta_liquid_export_script(MANTA *liquid, FluidModifierData *fmd) { - if (!liquid || !mmd) + if (!liquid || !fmd) return; - liquid->exportLiquidScript(mmd); + liquid->exportLiquidScript(fmd); } -void manta_liquid_ensure_sndparts(MANTA *liquid, struct FluidModifierData *mmd) +void manta_liquid_ensure_sndparts(MANTA *liquid, struct FluidModifierData *fmd) { if (liquid) { - liquid->initLiquidSndParts(mmd); + liquid->initLiquidSndParts(fmd); liquid->updatePointers(); } } diff --git a/source/blender/blenkernel/BKE_fluid.h b/source/blender/blenkernel/BKE_fluid.h index e06a1a9fb92..c958afb212e 100644 --- a/source/blender/blenkernel/BKE_fluid.h +++ b/source/blender/blenkernel/BKE_fluid.h @@ -39,21 +39,21 @@ struct Scene; typedef float (*BKE_Fluid_BresenhamFn)( float *result, float *input, int res[3], int *pixel, float *tRay, float correct); -struct Mesh *BKE_fluid_modifier_do(struct FluidModifierData *mmd, +struct Mesh *BKE_fluid_modifier_do(struct FluidModifierData *fmd, struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct Mesh *me); -void BKE_fluid_modifier_free(struct FluidModifierData *mmd); -void BKE_fluid_modifier_reset(struct FluidModifierData *mmd); -void BKE_fluid_modifier_create_type_data(struct FluidModifierData *mmd); -void BKE_fluid_modifier_copy(const struct FluidModifierData *mmd, - struct FluidModifierData *tmmd, +void BKE_fluid_modifier_free(struct FluidModifierData *fmd); +void BKE_fluid_modifier_reset(struct FluidModifierData *fmd); +void BKE_fluid_modifier_create_type_data(struct FluidModifierData *fmd); +void BKE_fluid_modifier_copy(const struct FluidModifierData *fmd, + struct FluidModifierData *tfmd, const int flag); -bool BKE_fluid_reallocate_fluid(struct FluidDomainSettings *mds, int res[3], int free_old); -void BKE_fluid_reallocate_copy_fluid(struct FluidDomainSettings *mds, +bool BKE_fluid_reallocate_fluid(struct FluidDomainSettings *fds, int res[3], int free_old); +void BKE_fluid_reallocate_copy_fluid(struct FluidDomainSettings *fds, int o_res[3], int n_res[3], int o_min[3], @@ -61,12 +61,12 @@ void BKE_fluid_reallocate_copy_fluid(struct FluidDomainSettings *mds, int o_max[3], int o_shift[3], int n_shift[3]); -void BKE_fluid_cache_free_all(struct FluidDomainSettings *mds, struct Object *ob); -void BKE_fluid_cache_free(struct FluidDomainSettings *mds, struct Object *ob, int cache_map); +void BKE_fluid_cache_free_all(struct FluidDomainSettings *fds, struct Object *ob); +void BKE_fluid_cache_free(struct FluidDomainSettings *fds, struct Object *ob, int cache_map); void BKE_fluid_cache_new_name_for_current_session(int maxlen, char *r_name); float BKE_fluid_get_velocity_at(struct Object *ob, float position[3], float velocity[3]); -int BKE_fluid_get_data_flags(struct FluidDomainSettings *mds); +int BKE_fluid_get_data_flags(struct FluidDomainSettings *fds); void BKE_fluid_particle_system_create(struct Main *bmain, struct Object *ob, diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h index 8f9c53ffc05..b0973ed458c 100644 --- a/source/blender/blenkernel/BKE_pointcache.h +++ b/source/blender/blenkernel/BKE_pointcache.h @@ -291,7 +291,7 @@ void BKE_ptcache_make_particle_key(struct ParticleKey *key, int index, void **da void BKE_ptcache_id_from_softbody(PTCacheID *pid, struct Object *ob, struct SoftBody *sb); void BKE_ptcache_id_from_particles(PTCacheID *pid, struct Object *ob, struct ParticleSystem *psys); void BKE_ptcache_id_from_cloth(PTCacheID *pid, struct Object *ob, struct ClothModifierData *clmd); -void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct FluidModifierData *mmd); +void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct FluidModifierData *fmd); void BKE_ptcache_id_from_dynamicpaint(PTCacheID *pid, struct Object *ob, struct DynamicPaintSurface *surface); diff --git a/source/blender/blenkernel/intern/bpath.c b/source/blender/blenkernel/intern/bpath.c index 10783c741b6..44873c54469 100644 --- a/source/blender/blenkernel/intern/bpath.c +++ b/source/blender/blenkernel/intern/bpath.c @@ -609,9 +609,9 @@ void BKE_bpath_traverse_id( } } else if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if (mmd->type & MOD_FLUID_TYPE_DOMAIN && mmd->domain) { - rewrite_path_fixed(mmd->domain->cache_directory, visit_cb, absbase, bpath_user_data); + FluidModifierData *fmd = (FluidModifierData *)md; + if (fmd->type & MOD_FLUID_TYPE_DOMAIN && fmd->domain) { + rewrite_path_fixed(fmd->domain->cache_directory, visit_cb, absbase, bpath_user_data); } } else if (md->type == eModifierType_Cloth) { diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c index 946c7577ad8..1f748487841 100644 --- a/source/blender/blenkernel/intern/fluid.c +++ b/source/blender/blenkernel/intern/fluid.c @@ -93,7 +93,7 @@ /** Max value for phi initialization */ #define PHI_MAX 9999.0f -static void BKE_fluid_modifier_reset_ex(struct FluidModifierData *mmd, bool need_lock); +static void BKE_fluid_modifier_reset_ex(struct FluidModifierData *fmd, bool need_lock); #ifdef WITH_FLUID // #define DEBUG_PRINT @@ -115,26 +115,26 @@ struct Scene; # define ADD_IF_LOWER_NEG(a, b) (max_ff((a) + (b), min_ff((a), (b)))) # define ADD_IF_LOWER(a, b) (((b) > 0) ? ADD_IF_LOWER_POS((a), (b)) : ADD_IF_LOWER_NEG((a), (b))) -bool BKE_fluid_reallocate_fluid(FluidDomainSettings *mds, int res[3], int free_old) +bool BKE_fluid_reallocate_fluid(FluidDomainSettings *fds, int res[3], int free_old) { - if (free_old && mds->fluid) { - manta_free(mds->fluid); + if (free_old && fds->fluid) { + manta_free(fds->fluid); } if (!min_iii(res[0], res[1], res[2])) { - mds->fluid = NULL; + fds->fluid = NULL; } else { - mds->fluid = manta_init(res, mds->mmd); + fds->fluid = manta_init(res, fds->fmd); - mds->res_noise[0] = res[0] * mds->noise_scale; - mds->res_noise[1] = res[1] * mds->noise_scale; - mds->res_noise[2] = res[2] * mds->noise_scale; + fds->res_noise[0] = res[0] * fds->noise_scale; + fds->res_noise[1] = res[1] * fds->noise_scale; + fds->res_noise[2] = res[2] * fds->noise_scale; } - return (mds->fluid != NULL); + return (fds->fluid != NULL); } -void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, +void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *fds, int o_res[3], int n_res[3], int o_min[3], @@ -144,19 +144,19 @@ void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, int n_shift[3]) { int x, y, z; - struct MANTA *fluid_old = mds->fluid; - const int block_size = mds->noise_scale; + struct MANTA *fluid_old = fds->fluid; + const int block_size = fds->noise_scale; int new_shift[3] = {0}; sub_v3_v3v3_int(new_shift, n_shift, o_shift); /* allocate new fluid data */ - BKE_fluid_reallocate_fluid(mds, n_res, 0); + BKE_fluid_reallocate_fluid(fds, n_res, 0); int o_total_cells = o_res[0] * o_res[1] * o_res[2]; int n_total_cells = n_res[0] * n_res[1] * n_res[2]; /* boundary cells will be skipped when copying data */ - int bwidth = mds->boundary_width; + int bwidth = fds->boundary_width; /* copy values from old fluid to new */ if (o_total_cells > 1 && n_total_cells > 1) { @@ -172,7 +172,7 @@ void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, float *n_wt_dens, *n_wt_react, *n_wt_flame, *n_wt_fuel, *n_wt_tcu, *n_wt_tcv, *n_wt_tcw, *n_wt_tcu2, *n_wt_tcv2, *n_wt_tcw2, *n_wt_r, *n_wt_g, *n_wt_b; - if (mds->flags & FLUID_DOMAIN_USE_NOISE) { + if (fds->flags & FLUID_DOMAIN_USE_NOISE) { manta_smoke_turbulence_export(fluid_old, &o_wt_dens, &o_wt_react, @@ -188,7 +188,7 @@ void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, &o_wt_tcv2, &o_wt_tcw2); manta_smoke_turbulence_get_res(fluid_old, wt_res_old); - manta_smoke_turbulence_export(mds->fluid, + manta_smoke_turbulence_export(fds->fluid, &n_wt_dens, &n_wt_react, &n_wt_flame, @@ -220,7 +220,7 @@ void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, &o_b, &dummy_p, &dummy_s); - manta_smoke_export(mds->fluid, + manta_smoke_export(fds->fluid, &dummy, &dummy, &n_dens, @@ -267,7 +267,7 @@ void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, } /* copy data */ - if (mds->flags & FLUID_DOMAIN_USE_NOISE) { + if (fds->flags & FLUID_DOMAIN_USE_NOISE) { int i, j, k; /* old grid index */ int xx_o = xo * block_size; @@ -293,7 +293,7 @@ void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, int big_index_old = manta_get_index( xx_o + i, wt_res_old[0], yy_o + j, wt_res_old[1], zz_o + k); int big_index_new = manta_get_index( - xx_n + i, mds->res_noise[0], yy_n + j, mds->res_noise[1], zz_n + k); + xx_n + i, fds->res_noise[0], yy_n + j, fds->res_noise[1], zz_n + k); /* copy data */ n_wt_dens[big_index_new] = o_wt_dens[big_index_old]; if (n_wt_flame && o_wt_flame) { @@ -338,86 +338,86 @@ void BKE_fluid_reallocate_copy_fluid(FluidDomainSettings *mds, manta_free(fluid_old); } -void BKE_fluid_cache_free_all(FluidDomainSettings *mds, Object *ob) +void BKE_fluid_cache_free_all(FluidDomainSettings *fds, Object *ob) { int cache_map = (FLUID_DOMAIN_OUTDATED_DATA | FLUID_DOMAIN_OUTDATED_NOISE | FLUID_DOMAIN_OUTDATED_MESH | FLUID_DOMAIN_OUTDATED_PARTICLES | FLUID_DOMAIN_OUTDATED_GUIDE); - BKE_fluid_cache_free(mds, ob, cache_map); + BKE_fluid_cache_free(fds, ob, cache_map); } -void BKE_fluid_cache_free(FluidDomainSettings *mds, Object *ob, int cache_map) +void BKE_fluid_cache_free(FluidDomainSettings *fds, Object *ob, int cache_map) { char temp_dir[FILE_MAX]; - int flags = mds->cache_flag; + int flags = fds->cache_flag; const char *relbase = BKE_modifier_path_relbase_from_global(ob); if (cache_map & FLUID_DOMAIN_OUTDATED_DATA) { flags &= ~(FLUID_DOMAIN_BAKING_DATA | FLUID_DOMAIN_BAKED_DATA | FLUID_DOMAIN_OUTDATED_DATA); - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_CONFIG, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_CONFIG, NULL); BLI_path_abs(temp_dir, relbase); BLI_delete(temp_dir, true, true); /* BLI_exists(filepath) is implicit */ - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_DATA, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_DATA, NULL); BLI_path_abs(temp_dir, relbase); BLI_delete(temp_dir, true, true); /* BLI_exists(filepath) is implicit */ - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, NULL); BLI_path_abs(temp_dir, relbase); BLI_delete(temp_dir, true, true); /* BLI_exists(filepath) is implicit */ - mds->cache_frame_pause_data = 0; + fds->cache_frame_pause_data = 0; } if (cache_map & FLUID_DOMAIN_OUTDATED_NOISE) { flags &= ~(FLUID_DOMAIN_BAKING_NOISE | FLUID_DOMAIN_BAKED_NOISE | FLUID_DOMAIN_OUTDATED_NOISE); - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_NOISE, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_NOISE, NULL); BLI_path_abs(temp_dir, relbase); BLI_delete(temp_dir, true, true); /* BLI_exists(filepath) is implicit */ - mds->cache_frame_pause_noise = 0; + fds->cache_frame_pause_noise = 0; } if (cache_map & FLUID_DOMAIN_OUTDATED_MESH) { flags &= ~(FLUID_DOMAIN_BAKING_MESH | FLUID_DOMAIN_BAKED_MESH | FLUID_DOMAIN_OUTDATED_MESH); - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_MESH, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_MESH, NULL); BLI_path_abs(temp_dir, relbase); BLI_delete(temp_dir, true, true); /* BLI_exists(filepath) is implicit */ - mds->cache_frame_pause_mesh = 0; + fds->cache_frame_pause_mesh = 0; } if (cache_map & FLUID_DOMAIN_OUTDATED_PARTICLES) { flags &= ~(FLUID_DOMAIN_BAKING_PARTICLES | FLUID_DOMAIN_BAKED_PARTICLES | FLUID_DOMAIN_OUTDATED_PARTICLES); BLI_path_join( - temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_PARTICLES, NULL); + temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_PARTICLES, NULL); BLI_path_abs(temp_dir, relbase); BLI_delete(temp_dir, true, true); /* BLI_exists(filepath) is implicit */ - mds->cache_frame_pause_particles = 0; + fds->cache_frame_pause_particles = 0; } if (cache_map & FLUID_DOMAIN_OUTDATED_GUIDE) { flags &= ~(FLUID_DOMAIN_BAKING_GUIDE | FLUID_DOMAIN_BAKED_GUIDE | FLUID_DOMAIN_OUTDATED_GUIDE); - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_GUIDE, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_GUIDE, NULL); BLI_path_abs(temp_dir, relbase); BLI_delete(temp_dir, true, true); /* BLI_exists(filepath) is implicit */ - mds->cache_frame_pause_guide = 0; + fds->cache_frame_pause_guide = 0; } - mds->cache_flag = flags; + fds->cache_flag = flags; } /* convert global position to domain cell space */ -static void manta_pos_to_cell(FluidDomainSettings *mds, float pos[3]) +static void manta_pos_to_cell(FluidDomainSettings *fds, float pos[3]) { - mul_m4_v3(mds->imat, pos); - sub_v3_v3(pos, mds->p0); - pos[0] *= 1.0f / mds->cell_size[0]; - pos[1] *= 1.0f / mds->cell_size[1]; - pos[2] *= 1.0f / mds->cell_size[2]; + mul_m4_v3(fds->imat, pos); + sub_v3_v3(pos, fds->p0); + pos[0] *= 1.0f / fds->cell_size[0]; + pos[1] *= 1.0f / fds->cell_size[1]; + pos[2] *= 1.0f / fds->cell_size[2]; } /* Set domain transformations and base resolution from object mesh. */ -static void manta_set_domain_from_mesh(FluidDomainSettings *mds, +static void manta_set_domain_from_mesh(FluidDomainSettings *fds, Object *ob, Mesh *me, bool init_resolution) @@ -429,7 +429,7 @@ static void manta_set_domain_from_mesh(FluidDomainSettings *mds, float scale = 0.0; int res; - res = mds->maxres; + res = fds->maxres; /* Set minimum and maximum coordinates of BB. */ for (i = 0; i < me->totvert; i++) { @@ -437,24 +437,24 @@ static void manta_set_domain_from_mesh(FluidDomainSettings *mds, } /* Set domain bounds. */ - copy_v3_v3(mds->p0, min); - copy_v3_v3(mds->p1, max); - mds->dx = 1.0f / res; + copy_v3_v3(fds->p0, min); + copy_v3_v3(fds->p1, max); + fds->dx = 1.0f / res; /* Calculate domain dimensions. */ sub_v3_v3v3(size, max, min); if (init_resolution) { - zero_v3_int(mds->base_res); - copy_v3_v3(mds->cell_size, size); + zero_v3_int(fds->base_res); + copy_v3_v3(fds->cell_size, size); } /* Apply object scale. */ for (i = 0; i < 3; i++) { size[i] = fabsf(size[i] * ob->scale[i]); } - copy_v3_v3(mds->global_size, size); - copy_v3_v3(mds->dp0, min); + copy_v3_v3(fds->global_size, size); + copy_v3_v3(fds->dp0, min); - invert_m4_m4(mds->imat, ob->obmat); + invert_m4_m4(fds->imat, ob->obmat); /* Prevent crash when initializing a plane as domain. */ if (!init_resolution || (size[0] < FLT_EPSILON) || (size[1] < FLT_EPSILON) || @@ -465,103 +465,103 @@ static void manta_set_domain_from_mesh(FluidDomainSettings *mds, /* Define grid resolutions from longest domain side. */ if (size[0] >= MAX2(size[1], size[2])) { scale = res / size[0]; - mds->scale = size[0] / fabsf(ob->scale[0]); - mds->base_res[0] = res; - mds->base_res[1] = max_ii((int)(size[1] * scale + 0.5f), 4); - mds->base_res[2] = max_ii((int)(size[2] * scale + 0.5f), 4); + fds->scale = size[0] / fabsf(ob->scale[0]); + fds->base_res[0] = res; + fds->base_res[1] = max_ii((int)(size[1] * scale + 0.5f), 4); + fds->base_res[2] = max_ii((int)(size[2] * scale + 0.5f), 4); } else if (size[1] >= MAX2(size[0], size[2])) { scale = res / size[1]; - mds->scale = size[1] / fabsf(ob->scale[1]); - mds->base_res[0] = max_ii((int)(size[0] * scale + 0.5f), 4); - mds->base_res[1] = res; - mds->base_res[2] = max_ii((int)(size[2] * scale + 0.5f), 4); + fds->scale = size[1] / fabsf(ob->scale[1]); + fds->base_res[0] = max_ii((int)(size[0] * scale + 0.5f), 4); + fds->base_res[1] = res; + fds->base_res[2] = max_ii((int)(size[2] * scale + 0.5f), 4); } else { scale = res / size[2]; - mds->scale = size[2] / fabsf(ob->scale[2]); - mds->base_res[0] = max_ii((int)(size[0] * scale + 0.5f), 4); - mds->base_res[1] = max_ii((int)(size[1] * scale + 0.5f), 4); - mds->base_res[2] = res; + fds->scale = size[2] / fabsf(ob->scale[2]); + fds->base_res[0] = max_ii((int)(size[0] * scale + 0.5f), 4); + fds->base_res[1] = max_ii((int)(size[1] * scale + 0.5f), 4); + fds->base_res[2] = res; } /* Set cell size. */ - mds->cell_size[0] /= (float)mds->base_res[0]; - mds->cell_size[1] /= (float)mds->base_res[1]; - mds->cell_size[2] /= (float)mds->base_res[2]; + fds->cell_size[0] /= (float)fds->base_res[0]; + fds->cell_size[1] /= (float)fds->base_res[1]; + fds->cell_size[2] /= (float)fds->base_res[2]; } static bool BKE_fluid_modifier_init( - FluidModifierData *mmd, Depsgraph *depsgraph, Object *ob, Scene *scene, Mesh *me) + FluidModifierData *fmd, Depsgraph *depsgraph, Object *ob, Scene *scene, Mesh *me) { int scene_framenr = (int)DEG_get_ctime(depsgraph); - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain && !mmd->domain->fluid) { - FluidDomainSettings *mds = mmd->domain; + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain && !fmd->domain->fluid) { + FluidDomainSettings *fds = fmd->domain; int res[3]; /* Set domain dimensions from mesh. */ - manta_set_domain_from_mesh(mds, ob, me, true); + manta_set_domain_from_mesh(fds, ob, me, true); /* Set domain gravity, use global gravity if enabled. */ if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) { - copy_v3_v3(mds->gravity, scene->physics_settings.gravity); + copy_v3_v3(fds->gravity, scene->physics_settings.gravity); } - mul_v3_fl(mds->gravity, mds->effector_weights->global_gravity); + mul_v3_fl(fds->gravity, fds->effector_weights->global_gravity); /* Reset domain values. */ - zero_v3_int(mds->shift); - zero_v3(mds->shift_f); - add_v3_fl(mds->shift_f, 0.5f); - zero_v3(mds->prev_loc); - mul_m4_v3(ob->obmat, mds->prev_loc); - copy_m4_m4(mds->obmat, ob->obmat); + zero_v3_int(fds->shift); + zero_v3(fds->shift_f); + add_v3_fl(fds->shift_f, 0.5f); + zero_v3(fds->prev_loc); + mul_m4_v3(ob->obmat, fds->prev_loc); + copy_m4_m4(fds->obmat, ob->obmat); /* Set resolutions. */ - if (mmd->domain->type == FLUID_DOMAIN_TYPE_GAS && - mmd->domain->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { + if (fmd->domain->type == FLUID_DOMAIN_TYPE_GAS && + fmd->domain->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { res[0] = res[1] = res[2] = 1; /* Use minimum res for adaptive init. */ } else { - copy_v3_v3_int(res, mds->base_res); + copy_v3_v3_int(res, fds->base_res); } - copy_v3_v3_int(mds->res, res); - mds->total_cells = mds->res[0] * mds->res[1] * mds->res[2]; - mds->res_min[0] = mds->res_min[1] = mds->res_min[2] = 0; - copy_v3_v3_int(mds->res_max, res); + copy_v3_v3_int(fds->res, res); + fds->total_cells = fds->res[0] * fds->res[1] * fds->res[2]; + fds->res_min[0] = fds->res_min[1] = fds->res_min[2] = 0; + copy_v3_v3_int(fds->res_max, res); /* Set time, frame length = 0.1 is at 25fps. */ float fps = scene->r.frs_sec / scene->r.frs_sec_base; - mds->frame_length = DT_DEFAULT * (25.0f / fps) * mds->time_scale; + fds->frame_length = DT_DEFAULT * (25.0f / fps) * fds->time_scale; /* Initially dt is equal to frame length (dt can change with adaptive-time stepping though). */ - mds->dt = mds->frame_length; - mds->time_per_frame = 0; + fds->dt = fds->frame_length; + fds->time_per_frame = 0; - mmd->time = scene_framenr; + fmd->time = scene_framenr; /* Allocate fluid. */ - return BKE_fluid_reallocate_fluid(mds, mds->res, 0); + return BKE_fluid_reallocate_fluid(fds, fds->res, 0); } - else if (mmd->type & MOD_FLUID_TYPE_FLOW) { - if (!mmd->flow) { - BKE_fluid_modifier_create_type_data(mmd); + else if (fmd->type & MOD_FLUID_TYPE_FLOW) { + if (!fmd->flow) { + BKE_fluid_modifier_create_type_data(fmd); } - mmd->time = scene_framenr; + fmd->time = scene_framenr; return true; } - else if (mmd->type & MOD_FLUID_TYPE_EFFEC) { - if (!mmd->effector) { - BKE_fluid_modifier_create_type_data(mmd); + else if (fmd->type & MOD_FLUID_TYPE_EFFEC) { + if (!fmd->effector) { + BKE_fluid_modifier_create_type_data(fmd); } - mmd->time = scene_framenr; + fmd->time = scene_framenr; return true; } return false; } // forward declaration -static void manta_smoke_calc_transparency(FluidDomainSettings *mds, ViewLayer *view_layer); +static void manta_smoke_calc_transparency(FluidDomainSettings *fds, ViewLayer *view_layer); static float calc_voxel_transp( float *result, float *input, int res[3], int *pixel, float *t_ray, float correct); static void update_distances(int index, - float *mesh_distances, + float *fesh_distances, BVHTreeFromMesh *tree_data, const float ray_start[3], float surface_thickness, @@ -591,7 +591,7 @@ static int get_light(ViewLayer *view_layer, float *light) return found_light; } -static void clamp_bounds_in_domain(FluidDomainSettings *mds, +static void clamp_bounds_in_domain(FluidDomainSettings *fds, int min[3], int max[3], float *min_vel, @@ -601,7 +601,7 @@ static void clamp_bounds_in_domain(FluidDomainSettings *mds, { int i; for (i = 0; i < 3; i++) { - int adapt = (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) ? mds->adapt_res : 0; + int adapt = (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) ? fds->adapt_res : 0; /* Add some margin. */ min[i] -= margin; max[i] += margin; @@ -615,8 +615,8 @@ static void clamp_bounds_in_domain(FluidDomainSettings *mds, } /* Clamp within domain max size. */ - CLAMP(min[i], -adapt, mds->base_res[i] + adapt); - CLAMP(max[i], -adapt, mds->base_res[i] + adapt); + CLAMP(min[i], -adapt, fds->base_res[i] + adapt); + CLAMP(max[i], -adapt, fds->base_res[i] + adapt); } } @@ -821,7 +821,7 @@ static void bb_combineMaps(FluidObjectBB *output, /** \name Effectors * \{ */ -BLI_INLINE void apply_effector_fields(FluidEffectorSettings *UNUSED(mes), +BLI_INLINE void apply_effector_fields(FluidEffectorSettings *UNUSED(fes), int index, float distance_value, float *phi_in, @@ -851,7 +851,7 @@ BLI_INLINE void apply_effector_fields(FluidEffectorSettings *UNUSED(mes), } } -static void sample_effector(FluidEffectorSettings *mes, +static void sample_effector(FluidEffectorSettings *fes, const MVert *mvert, const MLoop *mloop, const MLoopTri *mlooptri, @@ -890,10 +890,10 @@ static void sample_effector(FluidEffectorSettings *mes, interp_v3_v3v3v3(hit_vel, &vert_vel[v1 * 3], &vert_vel[v2 * 3], &vert_vel[v3 * 3], weights); /* Guiding has additional velocity multiplier */ - if (mes->type == FLUID_EFFECTOR_TYPE_GUIDE) { - mul_v3_fl(hit_vel, mes->vel_multi); + if (fes->type == FLUID_EFFECTOR_TYPE_GUIDE) { + mul_v3_fl(hit_vel, fes->vel_multi); - switch (mes->guide_mode) { + switch (fes->guide_mode) { case FLUID_EFFECTOR_GUIDE_AVERAGED: velocity_map[index * 3] = (velocity_map[index * 3] + hit_vel[0]) * 0.5f; velocity_map[index * 3 + 1] = (velocity_map[index * 3 + 1] + hit_vel[1]) * 0.5f; @@ -936,7 +936,7 @@ static void sample_effector(FluidEffectorSettings *mes, } typedef struct ObstaclesFromDMData { - FluidEffectorSettings *mes; + FluidEffectorSettings *fes; const MVert *mvert; const MLoop *mloop; @@ -964,7 +964,7 @@ static void obstacles_from_mesh_task_cb(void *__restrict userdata, float ray_start[3] = {(float)x + 0.5f, (float)y + 0.5f, (float)z + 0.5f}; /* Calculate object velocities. Result in bb->velocity. */ - sample_effector(data->mes, + sample_effector(data->fes, data->mvert, data->mloop, data->mlooptri, @@ -980,8 +980,8 @@ static void obstacles_from_mesh_task_cb(void *__restrict userdata, bb->distances, data->tree, ray_start, - data->mes->surface_distance, - data->mes->flags & FLUID_EFFECTOR_USE_PLANE_INIT); + data->fes->surface_distance, + data->fes->flags & FLUID_EFFECTOR_USE_PLANE_INIT); /* Ensure that num objects are also counted inside object. * But don't count twice (see object inc for nearest point). */ @@ -993,12 +993,12 @@ static void obstacles_from_mesh_task_cb(void *__restrict userdata, } static void obstacles_from_mesh(Object *coll_ob, - FluidDomainSettings *mds, - FluidEffectorSettings *mes, + FluidDomainSettings *fds, + FluidEffectorSettings *fes, FluidObjectBB *bb, float dt) { - if (mes->mesh) { + if (fes->mesh) { Mesh *me = NULL; MVert *mvert = NULL; const MLoopTri *looptri; @@ -1009,7 +1009,7 @@ static void obstacles_from_mesh(Object *coll_ob, float *vert_vel = NULL; bool has_velocity = false; - me = BKE_mesh_copy_for_eval(mes->mesh, true); + me = BKE_mesh_copy_for_eval(fes->mesh, true); int min[3], max[3], res[3]; @@ -1029,13 +1029,13 @@ static void obstacles_from_mesh(Object *coll_ob, { vert_vel = MEM_callocN(sizeof(float) * numverts * 3, "manta_obs_velocity"); - if (mes->numverts != numverts || !mes->verts_old) { - if (mes->verts_old) { - MEM_freeN(mes->verts_old); + if (fes->numverts != numverts || !fes->verts_old) { + if (fes->verts_old) { + MEM_freeN(fes->verts_old); } - mes->verts_old = MEM_callocN(sizeof(float) * numverts * 3, "manta_obs_verts_old"); - mes->numverts = numverts; + fes->verts_old = MEM_callocN(sizeof(float) * numverts * 3, "manta_obs_verts_old"); + fes->numverts = numverts; } else { has_velocity = true; @@ -1049,22 +1049,22 @@ static void obstacles_from_mesh(Object *coll_ob, /* Vertex position. */ mul_m4_v3(coll_ob->obmat, mvert[i].co); - manta_pos_to_cell(mds, mvert[i].co); + manta_pos_to_cell(fds, mvert[i].co); /* Vertex normal. */ normal_short_to_float_v3(n, mvert[i].no); mul_mat3_m4_v3(coll_ob->obmat, n); - mul_mat3_m4_v3(mds->imat, n); + mul_mat3_m4_v3(fds->imat, n); normalize_v3(n); normal_float_to_short_v3(mvert[i].no, n); /* Vertex velocity. */ - add_v3fl_v3fl_v3i(co, mvert[i].co, mds->shift); + add_v3fl_v3fl_v3i(co, mvert[i].co, fds->shift); if (has_velocity) { - sub_v3_v3v3(&vert_vel[i * 3], co, &mes->verts_old[i * 3]); - mul_v3_fl(&vert_vel[i * 3], mds->dx / dt); + sub_v3_v3v3(&vert_vel[i * 3], co, &fes->verts_old[i * 3]); + mul_v3_fl(&vert_vel[i * 3], fds->dx / dt); } - copy_v3_v3(&mes->verts_old[i * 3], co); + copy_v3_v3(&fes->verts_old[i * 3], co); /* Calculate emission map bounds. */ bb_boundInsert(bb, mvert[i].co); @@ -1073,7 +1073,7 @@ static void obstacles_from_mesh(Object *coll_ob, /* Set emission map. * Use 3 cell diagonals as margin (3 * 1.732 = 5.196). */ int bounds_margin = (int)ceil(5.196); - clamp_bounds_in_domain(mds, bb->min, bb->max, NULL, NULL, bounds_margin, dt); + clamp_bounds_in_domain(fds, bb->min, bb->max, NULL, NULL, bounds_margin, dt); bb_allocateData(bb, true, false); /* Setup loop bounds. */ @@ -1086,7 +1086,7 @@ static void obstacles_from_mesh(Object *coll_ob, if (BKE_bvhtree_from_mesh_get(&tree_data, me, BVHTREE_FROM_LOOPTRI, 4)) { ObstaclesFromDMData data = { - .mes = mes, + .fes = fes, .mvert = mvert, .mloop = mloop, .mlooptri = looptri, @@ -1117,21 +1117,21 @@ static void obstacles_from_mesh(Object *coll_ob, } } -static void ensure_obstaclefields(FluidDomainSettings *mds) +static void ensure_obstaclefields(FluidDomainSettings *fds) { - if (mds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE) { - manta_ensure_obstacle(mds->fluid, mds->mmd); + if (fds->active_fields & FLUID_DOMAIN_ACTIVE_OBSTACLE) { + manta_ensure_obstacle(fds->fluid, fds->fmd); } - if (mds->active_fields & FLUID_DOMAIN_ACTIVE_GUIDE) { - manta_ensure_guiding(mds->fluid, mds->mmd); + if (fds->active_fields & FLUID_DOMAIN_ACTIVE_GUIDE) { + manta_ensure_guiding(fds->fluid, fds->fmd); } } -static void update_obstacleflags(FluidDomainSettings *mds, +static void update_obstacleflags(FluidDomainSettings *fds, Object **coll_ob_array, int coll_ob_array_len) { - int active_fields = mds->active_fields; + int active_fields = fds->active_fields; uint coll_index; /* First, remove all flags that we want to update. */ @@ -1141,46 +1141,46 @@ static void update_obstacleflags(FluidDomainSettings *mds, /* Monitor active fields based on flow settings */ for (coll_index = 0; coll_index < coll_ob_array_len; coll_index++) { Object *coll_ob = coll_ob_array[coll_index]; - FluidModifierData *mmd2 = (FluidModifierData *)BKE_modifiers_findby_type(coll_ob, + FluidModifierData *fmd2 = (FluidModifierData *)BKE_modifiers_findby_type(coll_ob, eModifierType_Fluid); /* Sanity check. */ - if (!mmd2) { + if (!fmd2) { continue; } - if ((mmd2->type & MOD_FLUID_TYPE_EFFEC) && mmd2->effector) { - FluidEffectorSettings *mes = mmd2->effector; - if (!mes) { + if ((fmd2->type & MOD_FLUID_TYPE_EFFEC) && fmd2->effector) { + FluidEffectorSettings *fes = fmd2->effector; + if (!fes) { break; } - if (mes->flags & FLUID_EFFECTOR_NEEDS_UPDATE) { - mes->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; - mds->cache_flag |= FLUID_DOMAIN_OUTDATED_DATA; + if (fes->flags & FLUID_EFFECTOR_NEEDS_UPDATE) { + fes->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; + fds->cache_flag |= FLUID_DOMAIN_OUTDATED_DATA; } - if (mes->type == FLUID_EFFECTOR_TYPE_COLLISION) { + if (fes->type == FLUID_EFFECTOR_TYPE_COLLISION) { active_fields |= FLUID_DOMAIN_ACTIVE_OBSTACLE; } - if (mes->type == FLUID_EFFECTOR_TYPE_GUIDE) { + if (fes->type == FLUID_EFFECTOR_TYPE_GUIDE) { active_fields |= FLUID_DOMAIN_ACTIVE_GUIDE; } } } - mds->active_fields = active_fields; + fds->active_fields = active_fields; } static bool escape_effectorobject(Object *flowobj, - FluidDomainSettings *mds, - FluidEffectorSettings *mes, + FluidDomainSettings *fds, + FluidEffectorSettings *fes, int frame) { bool is_static = is_static_object(flowobj); - bool use_effector = (mes->flags & FLUID_EFFECTOR_USE_EFFEC); + bool use_effector = (fes->flags & FLUID_EFFECTOR_USE_EFFEC); - bool is_resume = (mds->cache_frame_pause_data == frame); - bool is_adaptive = (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN); - bool is_first_frame = (frame == mds->cache_frame_start); + bool is_resume = (fds->cache_frame_pause_data == frame); + bool is_adaptive = (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN); + bool is_first_frame = (frame == fds->cache_frame_start); /* Cannot use static mode with adaptive domain. * The adaptive domain might expand and only later discover the static object. */ @@ -1205,31 +1205,31 @@ static void compute_obstaclesemission(Scene *scene, Object **effecobjs, int frame, float frame_length, - FluidDomainSettings *mds, + FluidDomainSettings *fds, uint numeffecobjs, float time_per_frame) { - bool is_first_frame = (frame == mds->cache_frame_start); + bool is_first_frame = (frame == fds->cache_frame_start); /* Prepare effector maps. */ for (int effec_index = 0; effec_index < numeffecobjs; effec_index++) { Object *effecobj = effecobjs[effec_index]; - FluidModifierData *mmd2 = (FluidModifierData *)BKE_modifiers_findby_type(effecobj, + FluidModifierData *fmd2 = (FluidModifierData *)BKE_modifiers_findby_type(effecobj, eModifierType_Fluid); /* Sanity check. */ - if (!mmd2) { + if (!fmd2) { continue; } /* Check for initialized effector object. */ - if ((mmd2->type & MOD_FLUID_TYPE_EFFEC) && mmd2->effector) { - FluidEffectorSettings *mes = mmd2->effector; - int subframes = mes->subframes; + if ((fmd2->type & MOD_FLUID_TYPE_EFFEC) && fmd2->effector) { + FluidEffectorSettings *fes = fmd2->effector; + int subframes = fes->subframes; FluidObjectBB *bb = &bb_maps[effec_index]; /* Optimization: Skip this object under certain conditions. */ - if (escape_effectorobject(effecobj, mds, mes, frame)) { + if (escape_effectorobject(effecobj, fds, fes, frame)) { continue; } @@ -1281,10 +1281,10 @@ static void compute_obstaclesemission(Scene *scene, depsgraph, scene, effecobj, true, 5, BKE_scene_frame_get(scene), eModifierType_Fluid); if (subframes) { - obstacles_from_mesh(effecobj, mds, mes, &bb_temp, subframe_dt); + obstacles_from_mesh(effecobj, fds, fes, &bb_temp, subframe_dt); } else { - obstacles_from_mesh(effecobj, mds, mes, bb, subframe_dt); + obstacles_from_mesh(effecobj, fds, fes, bb, subframe_dt); } /* If this we emitted with temp emission map in this loop (subframe emission), we combine @@ -1302,7 +1302,7 @@ static void compute_obstaclesemission(Scene *scene, static void update_obstacles(Depsgraph *depsgraph, Scene *scene, Object *ob, - FluidDomainSettings *mds, + FluidDomainSettings *fds, float time_per_frame, float frame_length, int frame, @@ -1311,15 +1311,15 @@ static void update_obstacles(Depsgraph *depsgraph, FluidObjectBB *bb_maps = NULL; Object **effecobjs = NULL; uint numeffecobjs = 0; - bool is_resume = (mds->cache_frame_pause_data == frame); - bool is_first_frame = (frame == mds->cache_frame_start); + bool is_resume = (fds->cache_frame_pause_data == frame); + bool is_first_frame = (frame == fds->cache_frame_start); effecobjs = BKE_collision_objects_create( - depsgraph, ob, mds->effector_group, &numeffecobjs, eModifierType_Fluid); + depsgraph, ob, fds->effector_group, &numeffecobjs, eModifierType_Fluid); /* Update all effector related flags and ensure that corresponding grids get initialized. */ - update_obstacleflags(mds, effecobjs, numeffecobjs); - ensure_obstaclefields(mds); + update_obstacleflags(fds, effecobjs, numeffecobjs); + ensure_obstaclefields(fds); /* Allocate effector map for each effector object. */ bb_maps = MEM_callocN(sizeof(struct FluidObjectBB) * numeffecobjs, "fluid_effector_bb_maps"); @@ -1332,27 +1332,27 @@ static void update_obstacles(Depsgraph *depsgraph, effecobjs, frame, frame_length, - mds, + fds, numeffecobjs, time_per_frame); - float *vel_x = manta_get_ob_velocity_x(mds->fluid); - float *vel_y = manta_get_ob_velocity_y(mds->fluid); - float *vel_z = manta_get_ob_velocity_z(mds->fluid); - float *vel_x_guide = manta_get_guide_velocity_x(mds->fluid); - float *vel_y_guide = manta_get_guide_velocity_y(mds->fluid); - float *vel_z_guide = manta_get_guide_velocity_z(mds->fluid); - float *phi_obs_in = manta_get_phiobs_in(mds->fluid); - float *phi_obsstatic_in = manta_get_phiobsstatic_in(mds->fluid); - float *phi_guide_in = manta_get_phiguide_in(mds->fluid); - float *num_obstacles = manta_get_num_obstacle(mds->fluid); - float *num_guides = manta_get_num_guide(mds->fluid); + float *vel_x = manta_get_ob_velocity_x(fds->fluid); + float *vel_y = manta_get_ob_velocity_y(fds->fluid); + float *vel_z = manta_get_ob_velocity_z(fds->fluid); + float *vel_x_guide = manta_get_guide_velocity_x(fds->fluid); + float *vel_y_guide = manta_get_guide_velocity_y(fds->fluid); + float *vel_z_guide = manta_get_guide_velocity_z(fds->fluid); + float *phi_obs_in = manta_get_phiobs_in(fds->fluid); + float *phi_obsstatic_in = manta_get_phiobsstatic_in(fds->fluid); + float *phi_guide_in = manta_get_phiguide_in(fds->fluid); + float *num_obstacles = manta_get_num_obstacle(fds->fluid); + float *num_guides = manta_get_num_guide(fds->fluid); uint z; - bool use_adaptivedomain = (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN); + bool use_adaptivedomain = (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN); /* Grid reset before writing again. */ - for (z = 0; z < mds->res[0] * mds->res[1] * mds->res[2]; z++) { + for (z = 0; z < fds->res[0] * fds->res[1] * fds->res[2]; z++) { /* Use big value that's not inf to initialize levelset grids. */ if (phi_obs_in) { @@ -1387,11 +1387,11 @@ static void update_obstacles(Depsgraph *depsgraph, /* Prepare grids from effector objects. */ for (int effec_index = 0; effec_index < numeffecobjs; effec_index++) { Object *effecobj = effecobjs[effec_index]; - FluidModifierData *mmd2 = (FluidModifierData *)BKE_modifiers_findby_type(effecobj, + FluidModifierData *fmd2 = (FluidModifierData *)BKE_modifiers_findby_type(effecobj, eModifierType_Fluid); /* Sanity check. */ - if (!mmd2) { + if (!fmd2) { continue; } @@ -1399,14 +1399,14 @@ static void update_obstacles(Depsgraph *depsgraph, * The adaptive domain might expand and only later in the simulations discover the static * object. */ bool is_static = is_static_object(effecobj) && - ((mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) == 0); + ((fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) == 0); /* Check for initialized effector object. */ - if ((mmd2->type & MOD_FLUID_TYPE_EFFEC) && mmd2->effector) { - FluidEffectorSettings *mes = mmd2->effector; + if ((fmd2->type & MOD_FLUID_TYPE_EFFEC) && fmd2->effector) { + FluidEffectorSettings *fes = fmd2->effector; /* Optimization: Skip effector objects with disabled effec flag. */ - if ((mes->flags & FLUID_EFFECTOR_USE_EFFEC) == 0) { + if ((fes->flags & FLUID_EFFECTOR_USE_EFFEC) == 0) { continue; } @@ -1429,20 +1429,20 @@ static void update_obstacles(Depsgraph *depsgraph, e_index = manta_get_index(ex, bb->res[0], ey, bb->res[1], ez); /* Get domain index. */ - dx = gx - mds->res_min[0]; - dy = gy - mds->res_min[1]; - dz = gz - mds->res_min[2]; - d_index = manta_get_index(dx, mds->res[0], dy, mds->res[1], dz); + dx = gx - fds->res_min[0]; + dy = gy - fds->res_min[1]; + dz = gz - fds->res_min[2]; + d_index = manta_get_index(dx, fds->res[0], dy, fds->res[1], dz); /* Make sure emission cell is inside the new domain boundary. */ - if (dx < 0 || dy < 0 || dz < 0 || dx >= mds->res[0] || dy >= mds->res[1] || - dz >= mds->res[2]) { + if (dx < 0 || dy < 0 || dz < 0 || dx >= fds->res[0] || dy >= fds->res[1] || + dz >= fds->res[2]) { continue; } - if (mes->type == FLUID_EFFECTOR_TYPE_COLLISION) { + if (fes->type == FLUID_EFFECTOR_TYPE_COLLISION) { float *levelset = ((is_first_frame || is_resume) && is_static) ? phi_obsstatic_in : phi_obs_in; - apply_effector_fields(mes, + apply_effector_fields(fes, d_index, distance_map[e_index], levelset, @@ -1455,8 +1455,8 @@ static void update_obstacles(Depsgraph *depsgraph, velocity_map[e_index * 3 + 2], vel_z); } - if (mes->type == FLUID_EFFECTOR_TYPE_GUIDE) { - apply_effector_fields(mes, + if (fes->type == FLUID_EFFECTOR_TYPE_GUIDE) { + apply_effector_fields(fes, d_index, distance_map[e_index], phi_guide_in, @@ -1489,7 +1489,7 @@ static void update_obstacles(Depsgraph *depsgraph, * \{ */ typedef struct EmitFromParticlesData { - FluidFlowSettings *mfs; + FluidFlowSettings *ffs; KDTree_3d *tree; FluidObjectBB *bb; @@ -1505,7 +1505,7 @@ static void emit_from_particles_task_cb(void *__restrict userdata, const TaskParallelTLS *__restrict UNUSED(tls)) { EmitFromParticlesData *data = userdata; - FluidFlowSettings *mfs = data->mfs; + FluidFlowSettings *ffs = data->ffs; FluidObjectBB *bb = data->bb; for (int x = data->min[0]; x < data->max[0]; x++) { @@ -1524,9 +1524,9 @@ static void emit_from_particles_task_cb(void *__restrict userdata, 1.0f : (1.0f - (nearest.dist - data->solid) / data->smooth); /* Uses particle velocity as initial velocity for smoke. */ - if (mfs->flags & FLUID_FLOW_INITVELOCITY && (mfs->psys->part->phystype != PART_PHYS_NO)) { + if (ffs->flags & FLUID_FLOW_INITVELOCITY && (ffs->psys->part->phystype != PART_PHYS_NO)) { madd_v3_v3fl( - &bb->velocity[index * 3], &data->particle_vel[nearest.index * 3], mfs->vel_multi); + &bb->velocity[index * 3], &data->particle_vel[nearest.index * 3], ffs->vel_multi); } } } @@ -1534,18 +1534,18 @@ static void emit_from_particles_task_cb(void *__restrict userdata, } static void emit_from_particles(Object *flow_ob, - FluidDomainSettings *mds, - FluidFlowSettings *mfs, + FluidDomainSettings *fds, + FluidFlowSettings *ffs, FluidObjectBB *bb, Depsgraph *depsgraph, Scene *scene, float dt) { - if (mfs && mfs->psys && mfs->psys->part && - ELEM(mfs->psys->part->type, PART_EMITTER, PART_FLUID)) // is particle system selected + if (ffs && ffs->psys && ffs->psys->part && + ELEM(ffs->psys->part->type, PART_EMITTER, PART_FLUID)) // is particle system selected { ParticleSimulationData sim; - ParticleSystem *psys = mfs->psys; + ParticleSystem *psys = ffs->psys; float *particle_pos; float *particle_vel; int totpart = psys->totpart, totchild; @@ -1554,7 +1554,7 @@ static void emit_from_particles(Object *flow_ob, int bounds_margin = 1; /* radius based flow */ - const float solid = mfs->particle_size * 0.5f; + const float solid = ffs->particle_size * 0.5f; const float smooth = 0.5f; /* add 0.5 cells of linear falloff to reduce aliasing */ KDTree_3d *tree = NULL; @@ -1590,7 +1590,7 @@ static void emit_from_particles(Object *flow_ob, "manta_flow_particles_vel"); /* setup particle radius emission if enabled */ - if (mfs->flags & FLUID_FLOW_USE_PART_SIZE) { + if (ffs->flags & FLUID_FLOW_USE_PART_SIZE) { tree = BLI_kdtree_3d_new(psys->totpart + psys->totchild); bounds_margin = (int)ceil(solid + smooth); } @@ -1621,14 +1621,14 @@ static void emit_from_particles(Object *flow_ob, /* location */ pos = &particle_pos[valid_particles * 3]; copy_v3_v3(pos, state.co); - manta_pos_to_cell(mds, pos); + manta_pos_to_cell(fds, pos); /* velocity */ vel = &particle_vel[valid_particles * 3]; copy_v3_v3(vel, state.vel); - mul_mat3_m4_v3(mds->imat, &particle_vel[valid_particles * 3]); + mul_mat3_m4_v3(fds->imat, &particle_vel[valid_particles * 3]); - if (mfs->flags & FLUID_FLOW_USE_PART_SIZE) { + if (ffs->flags & FLUID_FLOW_USE_PART_SIZE) { BLI_kdtree_3d_insert(tree, valid_particles, pos); } @@ -1638,10 +1638,10 @@ static void emit_from_particles(Object *flow_ob, } /* set emission map */ - clamp_bounds_in_domain(mds, bb->min, bb->max, NULL, NULL, bounds_margin, dt); - bb_allocateData(bb, mfs->flags & FLUID_FLOW_INITVELOCITY, true); + clamp_bounds_in_domain(fds, bb->min, bb->max, NULL, NULL, bounds_margin, dt); + bb_allocateData(bb, ffs->flags & FLUID_FLOW_INITVELOCITY, true); - if (!(mfs->flags & FLUID_FLOW_USE_PART_SIZE)) { + if (!(ffs->flags & FLUID_FLOW_USE_PART_SIZE)) { for (p = 0; p < valid_particles; p++) { int cell[3]; size_t i = 0; @@ -1667,8 +1667,8 @@ static void emit_from_particles(Object *flow_ob, /* Add influence to emission map */ bb->influence[index] = 1.0f; /* Uses particle velocity as initial velocity for smoke */ - if (mfs->flags & FLUID_FLOW_INITVELOCITY && (psys->part->phystype != PART_PHYS_NO)) { - madd_v3_v3fl(&bb->velocity[index * 3], &particle_vel[p * 3], mfs->vel_multi); + if (ffs->flags & FLUID_FLOW_INITVELOCITY && (psys->part->phystype != PART_PHYS_NO)) { + madd_v3_v3fl(&bb->velocity[index * 3], &particle_vel[p * 3], ffs->vel_multi); } } // particles loop } @@ -1685,7 +1685,7 @@ static void emit_from_particles(Object *flow_ob, BLI_kdtree_3d_balance(tree); EmitFromParticlesData data = { - .mfs = mfs, + .ffs = ffs, .tree = tree, .bb = bb, .particle_vel = particle_vel, @@ -1702,7 +1702,7 @@ static void emit_from_particles(Object *flow_ob, BLI_task_parallel_range(min[2], max[2], &data, emit_from_particles_task_cb, &settings); } - if (mfs->flags & FLUID_FLOW_USE_PART_SIZE) { + if (ffs->flags & FLUID_FLOW_USE_PART_SIZE) { BLI_kdtree_3d_free(tree); } @@ -1821,7 +1821,7 @@ static void update_distances(int index, CLAMP(distance_map[index], -PHI_MAX, PHI_MAX); } -static void sample_mesh(FluidFlowSettings *mfs, +static void sample_mesh(FluidFlowSettings *ffs, const MVert *mvert, const MLoop *mloop, const MLoopTri *mlooptri, @@ -1857,8 +1857,8 @@ static void sample_mesh(FluidFlowSettings *mfs, const float surface_distance = 1.732; nearest.dist_sq = surface_distance * surface_distance; /* find_nearest uses squared distance. */ - bool is_gas_flow = (mfs->type == FLUID_FLOW_TYPE_SMOKE || mfs->type == FLUID_FLOW_TYPE_FIRE || - mfs->type == FLUID_FLOW_TYPE_SMOKEFIRE); + bool is_gas_flow = (ffs->type == FLUID_FLOW_TYPE_SMOKE || ffs->type == FLUID_FLOW_TYPE_FIRE || + ffs->type == FLUID_FLOW_TYPE_SMOKEFIRE); /* Emission strength for gases will be computed below. * For liquids it's not needed. Just set to non zero value @@ -1866,7 +1866,7 @@ static void sample_mesh(FluidFlowSettings *mfs, float emission_strength = (is_gas_flow) ? 0.0f : 1.0f; /* Emission inside the flow object. */ - if (is_gas_flow && mfs->volume_density) { + if (is_gas_flow && ffs->volume_density) { if (BLI_bvhtree_ray_cast(tree_data->tree, ray_start, ray_dir, @@ -1891,7 +1891,7 @@ static void sample_mesh(FluidFlowSettings *mfs, tree_data->raycast_callback, tree_data); if (hit.index != -1) { - volume_factor = mfs->volume_density; + volume_factor = ffs->volume_density; } } } @@ -1913,8 +1913,8 @@ static void sample_mesh(FluidFlowSettings *mfs, /* Compute emission strength for smoke flow. */ if (is_gas_flow) { /* Emission from surface is based on UI configurable distance value. */ - if (mfs->surface_distance) { - emission_strength = sqrtf(nearest.dist_sq) / mfs->surface_distance; + if (ffs->surface_distance) { + emission_strength = sqrtf(nearest.dist_sq) / ffs->surface_distance; CLAMP(emission_strength, 0.0f, 1.0f); emission_strength = pow(1.0f - emission_strength, 0.5f); } @@ -1931,15 +1931,15 @@ static void sample_mesh(FluidFlowSettings *mfs, } /* Apply emission texture. */ - if ((mfs->flags & FLUID_FLOW_TEXTUREEMIT) && mfs->noise_texture) { + if ((ffs->flags & FLUID_FLOW_TEXTUREEMIT) && ffs->noise_texture) { float tex_co[3] = {0}; TexResult texres; - if (mfs->texture_type == FLUID_FLOW_TEXTURE_MAP_AUTO) { - tex_co[0] = ((x - flow_center[0]) / base_res[0]) / mfs->texture_size; - tex_co[1] = ((y - flow_center[1]) / base_res[1]) / mfs->texture_size; - tex_co[2] = ((z - flow_center[2]) / base_res[2] - mfs->texture_offset) / - mfs->texture_size; + if (ffs->texture_type == FLUID_FLOW_TEXTURE_MAP_AUTO) { + tex_co[0] = ((x - flow_center[0]) / base_res[0]) / ffs->texture_size; + tex_co[1] = ((y - flow_center[1]) / base_res[1]) / ffs->texture_size; + tex_co[2] = ((z - flow_center[2]) / base_res[2] - ffs->texture_offset) / + ffs->texture_size; } else if (mloopuv) { const float *uv[3]; @@ -1952,18 +1952,18 @@ static void sample_mesh(FluidFlowSettings *mfs, /* Map texure coord between -1.0f and 1.0f. */ tex_co[0] = tex_co[0] * 2.0f - 1.0f; tex_co[1] = tex_co[1] * 2.0f - 1.0f; - tex_co[2] = mfs->texture_offset; + tex_co[2] = ffs->texture_offset; } texres.nor = NULL; - BKE_texture_get_value(NULL, mfs->noise_texture, tex_co, &texres, false); + BKE_texture_get_value(NULL, ffs->noise_texture, tex_co, &texres, false); emission_strength *= texres.tin; } } /* Initial velocity of flow object. Only compute velocity if emission is present. */ - if (mfs->flags & FLUID_FLOW_INITVELOCITY && velocity_map && emission_strength != 0.0) { + if (ffs->flags & FLUID_FLOW_INITVELOCITY && velocity_map && emission_strength != 0.0) { /* Apply normal directional velocity. */ - if (mfs->vel_normal) { + if (ffs->vel_normal) { /* Interpolate vertex normal vectors to get nearest point normal. */ normal_short_to_float_v3(n1, mvert[v1].no); normal_short_to_float_v3(n2, mvert[v2].no); @@ -1972,26 +1972,26 @@ static void sample_mesh(FluidFlowSettings *mfs, normalize_v3(hit_normal); /* Apply normal directional velocity. */ - velocity_map[index * 3] += hit_normal[0] * mfs->vel_normal; - velocity_map[index * 3 + 1] += hit_normal[1] * mfs->vel_normal; - velocity_map[index * 3 + 2] += hit_normal[2] * mfs->vel_normal; + velocity_map[index * 3] += hit_normal[0] * ffs->vel_normal; + velocity_map[index * 3 + 1] += hit_normal[1] * ffs->vel_normal; + velocity_map[index * 3 + 2] += hit_normal[2] * ffs->vel_normal; } /* Apply object velocity. */ - if (has_velocity && mfs->vel_multi) { + if (has_velocity && ffs->vel_multi) { float hit_vel[3]; interp_v3_v3v3v3( hit_vel, &vert_vel[v1 * 3], &vert_vel[v2 * 3], &vert_vel[v3 * 3], weights); - velocity_map[index * 3] += hit_vel[0] * mfs->vel_multi; - velocity_map[index * 3 + 1] += hit_vel[1] * mfs->vel_multi; - velocity_map[index * 3 + 2] += hit_vel[2] * mfs->vel_multi; + velocity_map[index * 3] += hit_vel[0] * ffs->vel_multi; + velocity_map[index * 3 + 1] += hit_vel[1] * ffs->vel_multi; + velocity_map[index * 3 + 2] += hit_vel[2] * ffs->vel_multi; # ifdef DEBUG_PRINT /* Debugging: Print flow object velocities. */ printf("adding flow object vel: [%f, %f, %f]\n", hit_vel[0], hit_vel[1], hit_vel[2]); # endif } - velocity_map[index * 3] += mfs->vel_coord[0]; - velocity_map[index * 3 + 1] += mfs->vel_coord[1]; - velocity_map[index * 3 + 2] += mfs->vel_coord[2]; + velocity_map[index * 3] += ffs->vel_coord[0]; + velocity_map[index * 3 + 1] += ffs->vel_coord[1]; + velocity_map[index * 3 + 2] += ffs->vel_coord[2]; } } @@ -2000,8 +2000,8 @@ static void sample_mesh(FluidFlowSettings *mfs, } typedef struct EmitFromDMData { - FluidDomainSettings *mds; - FluidFlowSettings *mfs; + FluidDomainSettings *fds; + FluidFlowSettings *ffs; const MVert *mvert; const MLoop *mloop; @@ -2034,9 +2034,9 @@ static void emit_from_mesh_task_cb(void *__restrict userdata, /* Compute emission only for flow objects that produce fluid (i.e. skip outflow objects). * Result in bb->influence. Also computes initial velocities. Result in bb->velocity. */ - if ((data->mfs->behavior == FLUID_FLOW_BEHAVIOR_GEOMETRY) || - (data->mfs->behavior == FLUID_FLOW_BEHAVIOR_INFLOW)) { - sample_mesh(data->mfs, + if ((data->ffs->behavior == FLUID_FLOW_BEHAVIOR_GEOMETRY) || + (data->ffs->behavior == FLUID_FLOW_BEHAVIOR_INFLOW)) { + sample_mesh(data->ffs, data->mvert, data->mloop, data->mlooptri, @@ -2044,7 +2044,7 @@ static void emit_from_mesh_task_cb(void *__restrict userdata, bb->influence, bb->velocity, index, - data->mds->base_res, + data->fds->base_res, data->flow_center, data->tree, ray_start, @@ -2062,16 +2062,16 @@ static void emit_from_mesh_task_cb(void *__restrict userdata, bb->distances, data->tree, ray_start, - data->mfs->surface_distance, - data->mfs->flags & FLUID_FLOW_USE_PLANE_INIT); + data->ffs->surface_distance, + data->ffs->flags & FLUID_FLOW_USE_PLANE_INIT); } } } static void emit_from_mesh( - Object *flow_ob, FluidDomainSettings *mds, FluidFlowSettings *mfs, FluidObjectBB *bb, float dt) + Object *flow_ob, FluidDomainSettings *fds, FluidFlowSettings *ffs, FluidObjectBB *bb, float dt) { - if (mfs->mesh) { + if (ffs->mesh) { Mesh *me = NULL; MVert *mvert = NULL; const MLoopTri *mlooptri = NULL; @@ -2084,13 +2084,13 @@ static void emit_from_mesh( float *vert_vel = NULL; bool has_velocity = false; - int defgrp_index = mfs->vgroup_density - 1; + int defgrp_index = ffs->vgroup_density - 1; float flow_center[3] = {0}; int min[3], max[3], res[3]; /* Copy mesh for thread safety as we modify it. * Main issue is its VertArray being modified, then replaced and freed. */ - me = BKE_mesh_copy_for_eval(mfs->mesh, true); + me = BKE_mesh_copy_for_eval(ffs->mesh, true); /* Duplicate vertices to modify. */ if (me->mvert) { @@ -2104,17 +2104,17 @@ static void emit_from_mesh( mlooptri = BKE_mesh_runtime_looptri_ensure(me); numverts = me->totvert; dvert = CustomData_get_layer(&me->vdata, CD_MDEFORMVERT); - mloopuv = CustomData_get_layer_named(&me->ldata, CD_MLOOPUV, mfs->uvlayer_name); + mloopuv = CustomData_get_layer_named(&me->ldata, CD_MLOOPUV, ffs->uvlayer_name); - if (mfs->flags & FLUID_FLOW_INITVELOCITY) { + if (ffs->flags & FLUID_FLOW_INITVELOCITY) { vert_vel = MEM_callocN(sizeof(float) * numverts * 3, "manta_flow_velocity"); - if (mfs->numverts != numverts || !mfs->verts_old) { - if (mfs->verts_old) { - MEM_freeN(mfs->verts_old); + if (ffs->numverts != numverts || !ffs->verts_old) { + if (ffs->verts_old) { + MEM_freeN(ffs->verts_old); } - mfs->verts_old = MEM_callocN(sizeof(float) * numverts * 3, "manta_flow_verts_old"); - mfs->numverts = numverts; + ffs->verts_old = MEM_callocN(sizeof(float) * numverts * 3, "manta_flow_verts_old"); + ffs->numverts = numverts; } else { has_velocity = true; @@ -2127,37 +2127,37 @@ static void emit_from_mesh( /* Vertex position. */ mul_m4_v3(flow_ob->obmat, mvert[i].co); - manta_pos_to_cell(mds, mvert[i].co); + manta_pos_to_cell(fds, mvert[i].co); /* Vertex normal. */ normal_short_to_float_v3(n, mvert[i].no); mul_mat3_m4_v3(flow_ob->obmat, n); - mul_mat3_m4_v3(mds->imat, n); + mul_mat3_m4_v3(fds->imat, n); normalize_v3(n); normal_float_to_short_v3(mvert[i].no, n); /* Vertex velocity. */ - if (mfs->flags & FLUID_FLOW_INITVELOCITY) { + if (ffs->flags & FLUID_FLOW_INITVELOCITY) { float co[3]; - add_v3fl_v3fl_v3i(co, mvert[i].co, mds->shift); + add_v3fl_v3fl_v3i(co, mvert[i].co, fds->shift); if (has_velocity) { - sub_v3_v3v3(&vert_vel[i * 3], co, &mfs->verts_old[i * 3]); - mul_v3_fl(&vert_vel[i * 3], mds->dx / dt); + sub_v3_v3v3(&vert_vel[i * 3], co, &ffs->verts_old[i * 3]); + mul_v3_fl(&vert_vel[i * 3], fds->dx / dt); } - copy_v3_v3(&mfs->verts_old[i * 3], co); + copy_v3_v3(&ffs->verts_old[i * 3], co); } /* Calculate emission map bounds. */ bb_boundInsert(bb, mvert[i].co); } mul_m4_v3(flow_ob->obmat, flow_center); - manta_pos_to_cell(mds, flow_center); + manta_pos_to_cell(fds, flow_center); /* Set emission map. * Use 3 cell diagonals as margin (3 * 1.732 = 5.196). */ int bounds_margin = (int)ceil(5.196); - clamp_bounds_in_domain(mds, bb->min, bb->max, NULL, NULL, bounds_margin, dt); - bb_allocateData(bb, mfs->flags & FLUID_FLOW_INITVELOCITY, true); + clamp_bounds_in_domain(fds, bb->min, bb->max, NULL, NULL, bounds_margin, dt); + bb_allocateData(bb, ffs->flags & FLUID_FLOW_INITVELOCITY, true); /* Setup loop bounds. */ for (i = 0; i < 3; i++) { @@ -2169,8 +2169,8 @@ static void emit_from_mesh( if (BKE_bvhtree_from_mesh_get(&tree_data, me, BVHTREE_FROM_LOOPTRI, 4)) { EmitFromDMData data = { - .mds = mds, - .mfs = mfs, + .fds = fds, + .ffs = ffs, .mvert = mvert, .mloop = mloop, .mlooptri = mlooptri, @@ -2212,7 +2212,7 @@ static void emit_from_mesh( * \{ */ static void adaptive_domain_adjust( - FluidDomainSettings *mds, Object *ob, FluidObjectBB *bb_maps, uint numflowobj, float dt) + FluidDomainSettings *fds, Object *ob, FluidObjectBB *bb_maps, uint numflowobj, float dt) { /* calculate domain shift for current frame */ int new_shift[3] = {0}; @@ -2222,57 +2222,57 @@ static void adaptive_domain_adjust( mul_m4_v3(ob->obmat, ob_loc); - sub_v3_v3v3(frame_shift_f, ob_loc, mds->prev_loc); - copy_v3_v3(mds->prev_loc, ob_loc); + sub_v3_v3v3(frame_shift_f, ob_loc, fds->prev_loc); + copy_v3_v3(fds->prev_loc, ob_loc); /* convert global space shift to local "cell" space */ - mul_mat3_m4_v3(mds->imat, frame_shift_f); - frame_shift_f[0] = frame_shift_f[0] / mds->cell_size[0]; - frame_shift_f[1] = frame_shift_f[1] / mds->cell_size[1]; - frame_shift_f[2] = frame_shift_f[2] / mds->cell_size[2]; + mul_mat3_m4_v3(fds->imat, frame_shift_f); + frame_shift_f[0] = frame_shift_f[0] / fds->cell_size[0]; + frame_shift_f[1] = frame_shift_f[1] / fds->cell_size[1]; + frame_shift_f[2] = frame_shift_f[2] / fds->cell_size[2]; /* add to total shift */ - add_v3_v3(mds->shift_f, frame_shift_f); + add_v3_v3(fds->shift_f, frame_shift_f); /* convert to integer */ - total_shift[0] = (int)(floorf(mds->shift_f[0])); - total_shift[1] = (int)(floorf(mds->shift_f[1])); - total_shift[2] = (int)(floorf(mds->shift_f[2])); + total_shift[0] = (int)(floorf(fds->shift_f[0])); + total_shift[1] = (int)(floorf(fds->shift_f[1])); + total_shift[2] = (int)(floorf(fds->shift_f[2])); int temp_shift[3]; - copy_v3_v3_int(temp_shift, mds->shift); - sub_v3_v3v3_int(new_shift, total_shift, mds->shift); - copy_v3_v3_int(mds->shift, total_shift); + copy_v3_v3_int(temp_shift, fds->shift); + sub_v3_v3v3_int(new_shift, total_shift, fds->shift); + copy_v3_v3_int(fds->shift, total_shift); /* calculate new domain boundary points so that smoke doesn't slide on sub-cell movement */ - mds->p0[0] = mds->dp0[0] - mds->cell_size[0] * (mds->shift_f[0] - total_shift[0] - 0.5f); - mds->p0[1] = mds->dp0[1] - mds->cell_size[1] * (mds->shift_f[1] - total_shift[1] - 0.5f); - mds->p0[2] = mds->dp0[2] - mds->cell_size[2] * (mds->shift_f[2] - total_shift[2] - 0.5f); - mds->p1[0] = mds->p0[0] + mds->cell_size[0] * mds->base_res[0]; - mds->p1[1] = mds->p0[1] + mds->cell_size[1] * mds->base_res[1]; - mds->p1[2] = mds->p0[2] + mds->cell_size[2] * mds->base_res[2]; + fds->p0[0] = fds->dp0[0] - fds->cell_size[0] * (fds->shift_f[0] - total_shift[0] - 0.5f); + fds->p0[1] = fds->dp0[1] - fds->cell_size[1] * (fds->shift_f[1] - total_shift[1] - 0.5f); + fds->p0[2] = fds->dp0[2] - fds->cell_size[2] * (fds->shift_f[2] - total_shift[2] - 0.5f); + fds->p1[0] = fds->p0[0] + fds->cell_size[0] * fds->base_res[0]; + fds->p1[1] = fds->p0[1] + fds->cell_size[1] * fds->base_res[1]; + fds->p1[2] = fds->p0[2] + fds->cell_size[2] * fds->base_res[2]; /* adjust domain resolution */ - const int block_size = mds->noise_scale; + const int block_size = fds->noise_scale; int min[3] = {32767, 32767, 32767}, max[3] = {-32767, -32767, -32767}, res[3]; int total_cells = 1, res_changed = 0, shift_changed = 0; float min_vel[3], max_vel[3]; int x, y, z; - float *density = manta_smoke_get_density(mds->fluid); - float *fuel = manta_smoke_get_fuel(mds->fluid); - float *bigdensity = manta_smoke_turbulence_get_density(mds->fluid); - float *bigfuel = manta_smoke_turbulence_get_fuel(mds->fluid); - float *vx = manta_get_velocity_x(mds->fluid); - float *vy = manta_get_velocity_y(mds->fluid); - float *vz = manta_get_velocity_z(mds->fluid); + float *density = manta_smoke_get_density(fds->fluid); + float *fuel = manta_smoke_get_fuel(fds->fluid); + float *bigdensity = manta_smoke_turbulence_get_density(fds->fluid); + float *bigfuel = manta_smoke_turbulence_get_fuel(fds->fluid); + float *vx = manta_get_velocity_x(fds->fluid); + float *vy = manta_get_velocity_y(fds->fluid); + float *vz = manta_get_velocity_z(fds->fluid); int wt_res[3]; - if (mds->flags & FLUID_DOMAIN_USE_NOISE && mds->fluid) { - manta_smoke_turbulence_get_res(mds->fluid, wt_res); + if (fds->flags & FLUID_DOMAIN_USE_NOISE && fds->fluid) { + manta_smoke_turbulence_get_res(fds->fluid, wt_res); } INIT_MINMAX(min_vel, max_vel); /* Calculate bounds for current domain content */ - for (x = mds->res_min[0]; x < mds->res_max[0]; x++) { - for (y = mds->res_min[1]; y < mds->res_max[1]; y++) { - for (z = mds->res_min[2]; z < mds->res_max[2]; z++) { + for (x = fds->res_min[0]; x < fds->res_max[0]; x++) { + for (y = fds->res_min[1]; y < fds->res_max[1]; y++) { + for (z = fds->res_min[2]; z < fds->res_max[2]; z++) { int xn = x - new_shift[0]; int yn = y - new_shift[1]; int zn = z - new_shift[2]; @@ -2285,20 +2285,20 @@ static void adaptive_domain_adjust( continue; } - index = manta_get_index(x - mds->res_min[0], - mds->res[0], - y - mds->res_min[1], - mds->res[1], - z - mds->res_min[2]); + index = manta_get_index(x - fds->res_min[0], + fds->res[0], + y - fds->res_min[1], + fds->res[1], + z - fds->res_min[2]); max_den = (fuel) ? MAX2(density[index], fuel[index]) : density[index]; /* check high resolution bounds if max density isnt already high enough */ - if (max_den < mds->adapt_threshold && mds->flags & FLUID_DOMAIN_USE_NOISE && mds->fluid) { + if (max_den < fds->adapt_threshold && fds->flags & FLUID_DOMAIN_USE_NOISE && fds->fluid) { int i, j, k; /* high res grid index */ - int xx = (x - mds->res_min[0]) * block_size; - int yy = (y - mds->res_min[1]) * block_size; - int zz = (z - mds->res_min[2]) * block_size; + int xx = (x - fds->res_min[0]) * block_size; + int yy = (y - fds->res_min[1]) * block_size; + int zz = (z - fds->res_min[2]) * block_size; for (i = 0; i < block_size; i++) { for (j = 0; j < block_size; j++) { @@ -2315,7 +2315,7 @@ static void adaptive_domain_adjust( } /* content bounds (use shifted coordinates) */ - if (max_den >= mds->adapt_threshold) { + if (max_den >= fds->adapt_threshold) { if (min[0] > xn) { min[0] = xn; } @@ -2371,7 +2371,7 @@ static void adaptive_domain_adjust( float max_den = bb->influence[index]; /* density bounds */ - if (max_den >= mds->adapt_threshold) { + if (max_den >= fds->adapt_threshold) { if (min[0] > x) { min[0] = x; } @@ -2397,7 +2397,7 @@ static void adaptive_domain_adjust( } /* calculate new bounds based on these values */ - clamp_bounds_in_domain(mds, min, max, min_vel, max_vel, mds->adapt_margin + 1, dt); + clamp_bounds_in_domain(fds, min, max, min_vel, max_vel, fds->adapt_margin + 1, dt); for (int i = 0; i < 3; i++) { /* calculate new resolution */ @@ -2420,37 +2420,37 @@ static void adaptive_domain_adjust( total_cells = 1; break; } - if (min[i] != mds->res_min[i] || max[i] != mds->res_max[i]) { + if (min[i] != fds->res_min[i] || max[i] != fds->res_max[i]) { res_changed = 1; } } if (res_changed || shift_changed) { BKE_fluid_reallocate_copy_fluid( - mds, mds->res, res, mds->res_min, min, mds->res_max, temp_shift, total_shift); + fds, fds->res, res, fds->res_min, min, fds->res_max, temp_shift, total_shift); /* set new domain dimensions */ - copy_v3_v3_int(mds->res_min, min); - copy_v3_v3_int(mds->res_max, max); - copy_v3_v3_int(mds->res, res); - mds->total_cells = total_cells; + copy_v3_v3_int(fds->res_min, min); + copy_v3_v3_int(fds->res_max, max); + copy_v3_v3_int(fds->res, res); + fds->total_cells = total_cells; /* Redo adapt time step in manta to refresh solver state (ie time variables) */ - manta_adapt_timestep(mds->fluid); + manta_adapt_timestep(fds->fluid); } /* update global size field with new bbox size */ /* volume bounds */ float minf[3], maxf[3], size[3]; - madd_v3fl_v3fl_v3fl_v3i(minf, mds->p0, mds->cell_size, mds->res_min); - madd_v3fl_v3fl_v3fl_v3i(maxf, mds->p0, mds->cell_size, mds->res_max); + madd_v3fl_v3fl_v3fl_v3i(minf, fds->p0, fds->cell_size, fds->res_min); + madd_v3fl_v3fl_v3fl_v3i(maxf, fds->p0, fds->cell_size, fds->res_max); /* calculate domain dimensions */ sub_v3_v3v3(size, maxf, minf); /* apply object scale */ for (int i = 0; i < 3; i++) { size[i] = fabsf(size[i] * ob->scale[i]); } - copy_v3_v3(mds->global_size, size); + copy_v3_v3(fds->global_size, size); } BLI_INLINE void apply_outflow_fields(int index, @@ -2488,7 +2488,7 @@ BLI_INLINE void apply_outflow_fields(int index, } } -BLI_INLINE void apply_inflow_fields(FluidFlowSettings *mfs, +BLI_INLINE void apply_inflow_fields(FluidFlowSettings *ffs, float emission_value, float distance_value, int index, @@ -2522,28 +2522,28 @@ BLI_INLINE void apply_inflow_fields(FluidFlowSettings *mfs, } /* Set inflow for smoke from here on. */ - int absolute_flow = (mfs->flags & FLUID_FLOW_ABSOLUTE); + int absolute_flow = (ffs->flags & FLUID_FLOW_ABSOLUTE); float dens_old = (density) ? density[index] : 0.0; // float fuel_old = (fuel) ? fuel[index] : 0.0f; /* UNUSED */ - float dens_flow = (mfs->type == FLUID_FLOW_TYPE_FIRE) ? 0.0f : emission_value * mfs->density; - float fuel_flow = (fuel) ? emission_value * mfs->fuel_amount : 0.0f; + float dens_flow = (ffs->type == FLUID_FLOW_TYPE_FIRE) ? 0.0f : emission_value * ffs->density; + float fuel_flow = (fuel) ? emission_value * ffs->fuel_amount : 0.0f; /* Set heat inflow. */ if (heat && heat_in) { if (emission_value > 0.0f) { - heat_in[index] = ADD_IF_LOWER(heat[index], mfs->temperature); + heat_in[index] = ADD_IF_LOWER(heat[index], ffs->temperature); } } /* Set density and fuel - absolute mode. */ if (absolute_flow) { if (density && density_in) { - if (mfs->type != FLUID_FLOW_TYPE_FIRE && dens_flow > density[index]) { + if (ffs->type != FLUID_FLOW_TYPE_FIRE && dens_flow > density[index]) { /* Use MAX2 to preserve values from other emitters at this cell. */ density_in[index] = MAX2(dens_flow, density_in[index]); } } if (fuel && fuel_in) { - if (mfs->type != FLUID_FLOW_TYPE_SMOKE && fuel_flow && fuel_flow > fuel[index]) { + if (ffs->type != FLUID_FLOW_TYPE_SMOKE && fuel_flow && fuel_flow > fuel[index]) { /* Use MAX2 to preserve values from other emitters at this cell. */ fuel_in[index] = MAX2(fuel_flow, fuel_in[index]); } @@ -2552,13 +2552,13 @@ BLI_INLINE void apply_inflow_fields(FluidFlowSettings *mfs, /* Set density and fuel - additive mode. */ else { if (density && density_in) { - if (mfs->type != FLUID_FLOW_TYPE_FIRE) { + if (ffs->type != FLUID_FLOW_TYPE_FIRE) { density_in[index] += dens_flow; CLAMP(density_in[index], 0.0f, 1.0f); } } if (fuel && fuel_in) { - if (mfs->type != FLUID_FLOW_TYPE_SMOKE && mfs->fuel_amount) { + if (ffs->type != FLUID_FLOW_TYPE_SMOKE && ffs->fuel_amount) { fuel_in[index] += fuel_flow; CLAMP(fuel_in[index], 0.0f, 10.0f); } @@ -2569,9 +2569,9 @@ BLI_INLINE void apply_inflow_fields(FluidFlowSettings *mfs, if (color_r && color_r_in) { if (dens_flow) { float total_dens = density[index] / (dens_old + dens_flow); - color_r_in[index] = (color_r[index] + mfs->color[0] * dens_flow) * total_dens; - color_g_in[index] = (color_g[index] + mfs->color[1] * dens_flow) * total_dens; - color_b_in[index] = (color_b[index] + mfs->color[2] * dens_flow) * total_dens; + color_r_in[index] = (color_r[index] + ffs->color[0] * dens_flow) * total_dens; + color_g_in[index] = (color_g[index] + ffs->color[1] * dens_flow) * total_dens; + color_b_in[index] = (color_b[index] + ffs->color[2] * dens_flow) * total_dens; } } @@ -2588,35 +2588,35 @@ BLI_INLINE void apply_inflow_fields(FluidFlowSettings *mfs, } } -static void ensure_flowsfields(FluidDomainSettings *mds) +static void ensure_flowsfields(FluidDomainSettings *fds) { - if (mds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL) { - manta_ensure_invelocity(mds->fluid, mds->mmd); + if (fds->active_fields & FLUID_DOMAIN_ACTIVE_INVEL) { + manta_ensure_invelocity(fds->fluid, fds->fmd); } - if (mds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW) { - manta_ensure_outflow(mds->fluid, mds->mmd); + if (fds->active_fields & FLUID_DOMAIN_ACTIVE_OUTFLOW) { + manta_ensure_outflow(fds->fluid, fds->fmd); } - if (mds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT) { - manta_smoke_ensure_heat(mds->fluid, mds->mmd); + if (fds->active_fields & FLUID_DOMAIN_ACTIVE_HEAT) { + manta_smoke_ensure_heat(fds->fluid, fds->fmd); } - if (mds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE) { - manta_smoke_ensure_fire(mds->fluid, mds->mmd); + if (fds->active_fields & FLUID_DOMAIN_ACTIVE_FIRE) { + manta_smoke_ensure_fire(fds->fluid, fds->fmd); } - if (mds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) { + if (fds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) { /* initialize all smoke with "active_color" */ - manta_smoke_ensure_colors(mds->fluid, mds->mmd); + manta_smoke_ensure_colors(fds->fluid, fds->fmd); } - if (mds->type == FLUID_DOMAIN_TYPE_LIQUID && - (mds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY || - mds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM || - mds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER)) { - manta_liquid_ensure_sndparts(mds->fluid, mds->mmd); + if (fds->type == FLUID_DOMAIN_TYPE_LIQUID && + (fds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY || + fds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM || + fds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER)) { + manta_liquid_ensure_sndparts(fds->fluid, fds->fmd); } } -static void update_flowsflags(FluidDomainSettings *mds, Object **flowobjs, int numflowobj) +static void update_flowsflags(FluidDomainSettings *fds, Object **flowobjs, int numflowobj) { - int active_fields = mds->active_fields; + int active_fields = fds->active_fields; uint flow_index; /* First, remove all flags that we want to update. */ @@ -2627,95 +2627,95 @@ static void update_flowsflags(FluidDomainSettings *mds, Object **flowobjs, int n /* Monitor active fields based on flow settings */ for (flow_index = 0; flow_index < numflowobj; flow_index++) { Object *flow_ob = flowobjs[flow_index]; - FluidModifierData *mmd2 = (FluidModifierData *)BKE_modifiers_findby_type(flow_ob, + FluidModifierData *fmd2 = (FluidModifierData *)BKE_modifiers_findby_type(flow_ob, eModifierType_Fluid); /* Sanity check. */ - if (!mmd2) { + if (!fmd2) { continue; } - if ((mmd2->type & MOD_FLUID_TYPE_FLOW) && mmd2->flow) { - FluidFlowSettings *mfs = mmd2->flow; - if (!mfs) { + if ((fmd2->type & MOD_FLUID_TYPE_FLOW) && fmd2->flow) { + FluidFlowSettings *ffs = fmd2->flow; + if (!ffs) { break; } - if (mfs->flags & FLUID_FLOW_NEEDS_UPDATE) { - mfs->flags &= ~FLUID_FLOW_NEEDS_UPDATE; - mds->cache_flag |= FLUID_DOMAIN_OUTDATED_DATA; + if (ffs->flags & FLUID_FLOW_NEEDS_UPDATE) { + ffs->flags &= ~FLUID_FLOW_NEEDS_UPDATE; + fds->cache_flag |= FLUID_DOMAIN_OUTDATED_DATA; } - if (mfs->flags & FLUID_FLOW_INITVELOCITY) { + if (ffs->flags & FLUID_FLOW_INITVELOCITY) { active_fields |= FLUID_DOMAIN_ACTIVE_INVEL; } - if (mfs->behavior == FLUID_FLOW_BEHAVIOR_OUTFLOW) { + if (ffs->behavior == FLUID_FLOW_BEHAVIOR_OUTFLOW) { active_fields |= FLUID_DOMAIN_ACTIVE_OUTFLOW; } /* liquids done from here */ - if (mds->type == FLUID_DOMAIN_TYPE_LIQUID) { + if (fds->type == FLUID_DOMAIN_TYPE_LIQUID) { continue; } /* activate heat field if flow produces any heat */ - if (mfs->temperature) { + if (ffs->temperature) { active_fields |= FLUID_DOMAIN_ACTIVE_HEAT; } /* activate fuel field if flow adds any fuel */ - if (mfs->fuel_amount && - (mfs->type == FLUID_FLOW_TYPE_FIRE || mfs->type == FLUID_FLOW_TYPE_SMOKEFIRE)) { + if (ffs->fuel_amount && + (ffs->type == FLUID_FLOW_TYPE_FIRE || ffs->type == FLUID_FLOW_TYPE_SMOKEFIRE)) { active_fields |= FLUID_DOMAIN_ACTIVE_FIRE; } /* activate color field if flows add smoke with varying colors */ - if (mfs->density && - (mfs->type == FLUID_FLOW_TYPE_SMOKE || mfs->type == FLUID_FLOW_TYPE_SMOKEFIRE)) { + if (ffs->density && + (ffs->type == FLUID_FLOW_TYPE_SMOKE || ffs->type == FLUID_FLOW_TYPE_SMOKEFIRE)) { if (!(active_fields & FLUID_DOMAIN_ACTIVE_COLOR_SET)) { - copy_v3_v3(mds->active_color, mfs->color); + copy_v3_v3(fds->active_color, ffs->color); active_fields |= FLUID_DOMAIN_ACTIVE_COLOR_SET; } - else if (!equals_v3v3(mds->active_color, mfs->color)) { - copy_v3_v3(mds->active_color, mfs->color); + else if (!equals_v3v3(fds->active_color, ffs->color)) { + copy_v3_v3(fds->active_color, ffs->color); active_fields |= FLUID_DOMAIN_ACTIVE_COLORS; } } } } /* Monitor active fields based on domain settings */ - if (mds->type == FLUID_DOMAIN_TYPE_GAS && active_fields & FLUID_DOMAIN_ACTIVE_FIRE) { + if (fds->type == FLUID_DOMAIN_TYPE_GAS && active_fields & FLUID_DOMAIN_ACTIVE_FIRE) { /* heat is always needed for fire */ active_fields |= FLUID_DOMAIN_ACTIVE_HEAT; /* also activate colors if domain smoke color differs from active color */ if (!(active_fields & FLUID_DOMAIN_ACTIVE_COLOR_SET)) { - copy_v3_v3(mds->active_color, mds->flame_smoke_color); + copy_v3_v3(fds->active_color, fds->flame_smoke_color); active_fields |= FLUID_DOMAIN_ACTIVE_COLOR_SET; } - else if (!equals_v3v3(mds->active_color, mds->flame_smoke_color)) { - copy_v3_v3(mds->active_color, mds->flame_smoke_color); + else if (!equals_v3v3(fds->active_color, fds->flame_smoke_color)) { + copy_v3_v3(fds->active_color, fds->flame_smoke_color); active_fields |= FLUID_DOMAIN_ACTIVE_COLORS; } } - mds->active_fields = active_fields; + fds->active_fields = active_fields; } static bool escape_flowsobject(Object *flowobj, - FluidDomainSettings *mds, - FluidFlowSettings *mfs, + FluidDomainSettings *fds, + FluidFlowSettings *ffs, int frame) { - bool use_velocity = (mfs->flags & FLUID_FLOW_INITVELOCITY); + bool use_velocity = (ffs->flags & FLUID_FLOW_INITVELOCITY); bool is_static = is_static_object(flowobj); - bool liquid_flow = mfs->type == FLUID_FLOW_TYPE_LIQUID; - bool gas_flow = (mfs->type == FLUID_FLOW_TYPE_SMOKE || mfs->type == FLUID_FLOW_TYPE_FIRE || - mfs->type == FLUID_FLOW_TYPE_SMOKEFIRE); - bool is_geometry = (mfs->behavior == FLUID_FLOW_BEHAVIOR_GEOMETRY); - bool is_inflow = (mfs->behavior == FLUID_FLOW_BEHAVIOR_INFLOW); - bool is_outflow = (mfs->behavior == FLUID_FLOW_BEHAVIOR_OUTFLOW); - bool use_flow = (mfs->flags & FLUID_FLOW_USE_INFLOW); + bool liquid_flow = ffs->type == FLUID_FLOW_TYPE_LIQUID; + bool gas_flow = (ffs->type == FLUID_FLOW_TYPE_SMOKE || ffs->type == FLUID_FLOW_TYPE_FIRE || + ffs->type == FLUID_FLOW_TYPE_SMOKEFIRE); + bool is_geometry = (ffs->behavior == FLUID_FLOW_BEHAVIOR_GEOMETRY); + bool is_inflow = (ffs->behavior == FLUID_FLOW_BEHAVIOR_INFLOW); + bool is_outflow = (ffs->behavior == FLUID_FLOW_BEHAVIOR_OUTFLOW); + bool use_flow = (ffs->flags & FLUID_FLOW_USE_INFLOW); - bool liquid_domain = mds->type == FLUID_DOMAIN_TYPE_LIQUID; - bool gas_domain = mds->type == FLUID_DOMAIN_TYPE_GAS; - bool is_adaptive = (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN); - bool is_resume = (mds->cache_frame_pause_data == frame); - bool is_first_frame = (mds->cache_frame_start == frame); + bool liquid_domain = fds->type == FLUID_DOMAIN_TYPE_LIQUID; + bool gas_domain = fds->type == FLUID_DOMAIN_TYPE_GAS; + bool is_adaptive = (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN); + bool is_resume = (fds->cache_frame_pause_data == frame); + bool is_first_frame = (fds->cache_frame_start == frame); /* Cannot use static mode with adaptive domain. * The adaptive domain might expand and only later discover the static object. */ @@ -2749,31 +2749,31 @@ static void compute_flowsemission(Scene *scene, Object **flowobjs, int frame, float frame_length, - FluidDomainSettings *mds, + FluidDomainSettings *fds, uint numflowobjs, float time_per_frame) { - bool is_first_frame = (frame == mds->cache_frame_start); + bool is_first_frame = (frame == fds->cache_frame_start); /* Prepare flow emission maps. */ for (int flow_index = 0; flow_index < numflowobjs; flow_index++) { Object *flowobj = flowobjs[flow_index]; - FluidModifierData *mmd2 = (FluidModifierData *)BKE_modifiers_findby_type(flowobj, + FluidModifierData *fmd2 = (FluidModifierData *)BKE_modifiers_findby_type(flowobj, eModifierType_Fluid); /* Sanity check. */ - if (!mmd2) { + if (!fmd2) { continue; } /* Check for initialized flow object. */ - if ((mmd2->type & MOD_FLUID_TYPE_FLOW) && mmd2->flow) { - FluidFlowSettings *mfs = mmd2->flow; - int subframes = mfs->subframes; + if ((fmd2->type & MOD_FLUID_TYPE_FLOW) && fmd2->flow) { + FluidFlowSettings *ffs = fmd2->flow; + int subframes = ffs->subframes; FluidObjectBB *bb = &bb_maps[flow_index]; /* Optimization: Skip this object under certain conditions. */ - if (escape_flowsobject(flowobj, mds, mfs, frame)) { + if (escape_flowsobject(flowobj, fds, ffs, frame)) { continue; } @@ -2823,21 +2823,21 @@ static void compute_flowsemission(Scene *scene, depsgraph, scene, flowobj, true, 5, BKE_scene_frame_get(scene), eModifierType_Fluid); /* Emission from particles. */ - if (mfs->source == FLUID_FLOW_SOURCE_PARTICLES) { + if (ffs->source == FLUID_FLOW_SOURCE_PARTICLES) { if (subframes) { - emit_from_particles(flowobj, mds, mfs, &bb_temp, depsgraph, scene, subframe_dt); + emit_from_particles(flowobj, fds, ffs, &bb_temp, depsgraph, scene, subframe_dt); } else { - emit_from_particles(flowobj, mds, mfs, bb, depsgraph, scene, subframe_dt); + emit_from_particles(flowobj, fds, ffs, bb, depsgraph, scene, subframe_dt); } } /* Emission from mesh. */ - else if (mfs->source == FLUID_FLOW_SOURCE_MESH) { + else if (ffs->source == FLUID_FLOW_SOURCE_MESH) { if (subframes) { - emit_from_mesh(flowobj, mds, mfs, &bb_temp, subframe_dt); + emit_from_mesh(flowobj, fds, ffs, &bb_temp, subframe_dt); } else { - emit_from_mesh(flowobj, mds, mfs, bb, subframe_dt); + emit_from_mesh(flowobj, fds, ffs, bb, subframe_dt); } } else { @@ -2848,7 +2848,7 @@ static void compute_flowsemission(Scene *scene, * the temp map with the original emission map. */ if (subframes) { /* Combine emission maps. */ - bb_combineMaps(bb, &bb_temp, !(mfs->flags & FLUID_FLOW_ABSOLUTE), sample_size); + bb_combineMaps(bb, &bb_temp, !(ffs->flags & FLUID_FLOW_ABSOLUTE), sample_size); bb_freeData(&bb_temp); } } @@ -2867,7 +2867,7 @@ static void compute_flowsemission(Scene *scene, static void update_flowsfluids(struct Depsgraph *depsgraph, Scene *scene, Object *ob, - FluidDomainSettings *mds, + FluidDomainSettings *fds, float time_per_frame, float frame_length, int frame, @@ -2876,15 +2876,15 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, FluidObjectBB *bb_maps = NULL; Object **flowobjs = NULL; uint numflowobjs = 0; - bool is_resume = (mds->cache_frame_pause_data == frame); - bool is_first_frame = (mds->cache_frame_start == frame); + bool is_resume = (fds->cache_frame_pause_data == frame); + bool is_first_frame = (fds->cache_frame_start == frame); flowobjs = BKE_collision_objects_create( - depsgraph, ob, mds->fluid_group, &numflowobjs, eModifierType_Fluid); + depsgraph, ob, fds->fluid_group, &numflowobjs, eModifierType_Fluid); /* Update all flow related flags and ensure that corresponding grids get initialized. */ - update_flowsflags(mds, flowobjs, numflowobjs); - ensure_flowsfields(mds); + update_flowsflags(fds, flowobjs, numflowobjs); + ensure_flowsfields(fds); /* Allocate emission map for each flow object. */ bb_maps = MEM_callocN(sizeof(struct FluidObjectBB) * numflowobjs, "fluid_flow_bb_maps"); @@ -2897,44 +2897,44 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, flowobjs, frame, frame_length, - mds, + fds, numflowobjs, time_per_frame); /* Adjust domain size if needed. Only do this once for every frame. */ - if (mds->type == FLUID_DOMAIN_TYPE_GAS && mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { - adaptive_domain_adjust(mds, ob, bb_maps, numflowobjs, dt); - } - - float *phi_in = manta_get_phi_in(mds->fluid); - float *phistatic_in = manta_get_phistatic_in(mds->fluid); - float *phiout_in = manta_get_phiout_in(mds->fluid); - float *phioutstatic_in = manta_get_phioutstatic_in(mds->fluid); - - float *density = manta_smoke_get_density(mds->fluid); - float *color_r = manta_smoke_get_color_r(mds->fluid); - float *color_g = manta_smoke_get_color_g(mds->fluid); - float *color_b = manta_smoke_get_color_b(mds->fluid); - float *fuel = manta_smoke_get_fuel(mds->fluid); - float *heat = manta_smoke_get_heat(mds->fluid); - float *react = manta_smoke_get_react(mds->fluid); - - float *density_in = manta_smoke_get_density_in(mds->fluid); - float *heat_in = manta_smoke_get_heat_in(mds->fluid); - float *color_r_in = manta_smoke_get_color_r_in(mds->fluid); - float *color_g_in = manta_smoke_get_color_g_in(mds->fluid); - float *color_b_in = manta_smoke_get_color_b_in(mds->fluid); - float *fuel_in = manta_smoke_get_fuel_in(mds->fluid); - float *react_in = manta_smoke_get_react_in(mds->fluid); - float *emission_in = manta_smoke_get_emission_in(mds->fluid); - - float *velx_initial = manta_get_in_velocity_x(mds->fluid); - float *vely_initial = manta_get_in_velocity_y(mds->fluid); - float *velz_initial = manta_get_in_velocity_z(mds->fluid); + if (fds->type == FLUID_DOMAIN_TYPE_GAS && fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { + adaptive_domain_adjust(fds, ob, bb_maps, numflowobjs, dt); + } + + float *phi_in = manta_get_phi_in(fds->fluid); + float *phistatic_in = manta_get_phistatic_in(fds->fluid); + float *phiout_in = manta_get_phiout_in(fds->fluid); + float *phioutstatic_in = manta_get_phioutstatic_in(fds->fluid); + + float *density = manta_smoke_get_density(fds->fluid); + float *color_r = manta_smoke_get_color_r(fds->fluid); + float *color_g = manta_smoke_get_color_g(fds->fluid); + float *color_b = manta_smoke_get_color_b(fds->fluid); + float *fuel = manta_smoke_get_fuel(fds->fluid); + float *heat = manta_smoke_get_heat(fds->fluid); + float *react = manta_smoke_get_react(fds->fluid); + + float *density_in = manta_smoke_get_density_in(fds->fluid); + float *heat_in = manta_smoke_get_heat_in(fds->fluid); + float *color_r_in = manta_smoke_get_color_r_in(fds->fluid); + float *color_g_in = manta_smoke_get_color_g_in(fds->fluid); + float *color_b_in = manta_smoke_get_color_b_in(fds->fluid); + float *fuel_in = manta_smoke_get_fuel_in(fds->fluid); + float *react_in = manta_smoke_get_react_in(fds->fluid); + float *emission_in = manta_smoke_get_emission_in(fds->fluid); + + float *velx_initial = manta_get_in_velocity_x(fds->fluid); + float *vely_initial = manta_get_in_velocity_y(fds->fluid); + float *velz_initial = manta_get_in_velocity_z(fds->fluid); uint z; /* Grid reset before writing again. */ - for (z = 0; z < mds->res[0] * mds->res[1] * mds->res[2]; z++) { + for (z = 0; z < fds->res[0] * fds->res[1] * fds->res[2]; z++) { /* Only reset static phi on first frame, dynamic phi gets reset every time. */ if (phistatic_in && is_first_frame) { phistatic_in[z] = PHI_MAX; @@ -2978,23 +2978,23 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, /* Apply emission data for every flow object. */ for (int flow_index = 0; flow_index < numflowobjs; flow_index++) { Object *flowobj = flowobjs[flow_index]; - FluidModifierData *mmd2 = (FluidModifierData *)BKE_modifiers_findby_type(flowobj, + FluidModifierData *fmd2 = (FluidModifierData *)BKE_modifiers_findby_type(flowobj, eModifierType_Fluid); /* Sanity check. */ - if (!mmd2) { + if (!fmd2) { continue; } /* Check for initialized flow object. */ - if ((mmd2->type & MOD_FLUID_TYPE_FLOW) && mmd2->flow) { - FluidFlowSettings *mfs = mmd2->flow; + if ((fmd2->type & MOD_FLUID_TYPE_FLOW) && fmd2->flow) { + FluidFlowSettings *ffs = fmd2->flow; - bool is_inflow = (mfs->behavior == FLUID_FLOW_BEHAVIOR_INFLOW); - bool is_geometry = (mfs->behavior == FLUID_FLOW_BEHAVIOR_GEOMETRY); - bool is_outflow = (mfs->behavior == FLUID_FLOW_BEHAVIOR_OUTFLOW); + bool is_inflow = (ffs->behavior == FLUID_FLOW_BEHAVIOR_INFLOW); + bool is_geometry = (ffs->behavior == FLUID_FLOW_BEHAVIOR_GEOMETRY); + bool is_outflow = (ffs->behavior == FLUID_FLOW_BEHAVIOR_OUTFLOW); bool is_static = is_static_object(flowobj) && - ((mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) == 0); + ((fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) == 0); FluidObjectBB *bb = &bb_maps[flow_index]; float *velocity_map = bb->velocity; @@ -3015,13 +3015,13 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, e_index = manta_get_index(ex, bb->res[0], ey, bb->res[1], ez); /* Get domain index. */ - dx = gx - mds->res_min[0]; - dy = gy - mds->res_min[1]; - dz = gz - mds->res_min[2]; - d_index = manta_get_index(dx, mds->res[0], dy, mds->res[1], dz); + dx = gx - fds->res_min[0]; + dy = gy - fds->res_min[1]; + dz = gz - fds->res_min[2]; + d_index = manta_get_index(dx, fds->res[0], dy, fds->res[1], dz); /* Make sure emission cell is inside the new domain boundary. */ - if (dx < 0 || dy < 0 || dz < 0 || dx >= mds->res[0] || dy >= mds->res[1] || - dz >= mds->res[2]) { + if (dx < 0 || dy < 0 || dz < 0 || dx >= fds->res[0] || dy >= fds->res[1] || + dz >= fds->res[2]) { continue; } @@ -3042,7 +3042,7 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, } /* Do not apply inflow after the first frame when in geometry mode. */ else if (is_geometry && !is_first_frame) { - apply_inflow_fields(mfs, + apply_inflow_fields(ffs, 0.0f, PHI_MAX, d_index, @@ -3068,7 +3068,7 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, float *levelset = ((is_first_frame || is_resume) && is_static && !is_geometry) ? phistatic_in : phi_in; - apply_inflow_fields(mfs, + apply_inflow_fields(ffs, emission_map[e_index], distance_map[e_index], d_index, @@ -3088,7 +3088,7 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, color_b, levelset, emission_in); - if (mfs->flags & FLUID_FLOW_INITVELOCITY) { + if (ffs->flags & FLUID_FLOW_INITVELOCITY) { /* Use the initial velocity from the inflow object with the highest velocity for * now. */ float vel_initial[3]; @@ -3119,7 +3119,7 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, typedef struct UpdateEffectorsData { Scene *scene; - FluidDomainSettings *mds; + FluidDomainSettings *fds; ListBase *effectors; float *density; @@ -3139,14 +3139,14 @@ static void update_effectors_task_cb(void *__restrict userdata, const TaskParallelTLS *__restrict UNUSED(tls)) { UpdateEffectorsData *data = userdata; - FluidDomainSettings *mds = data->mds; + FluidDomainSettings *fds = data->fds; - for (int y = 0; y < mds->res[1]; y++) { - for (int z = 0; z < mds->res[2]; z++) { + for (int y = 0; y < fds->res[1]; y++) { + for (int z = 0; z < fds->res[2]; z++) { EffectedPoint epoint; float mag; float voxel_center[3] = {0, 0, 0}, vel[3] = {0, 0, 0}, retvel[3] = {0, 0, 0}; - const uint index = manta_get_index(x, mds->res[0], y, mds->res[1], z); + const uint index = manta_get_index(x, fds->res[0], y, fds->res[1], z); if ((data->fuel && MAX2(data->density[index], data->fuel[index]) < FLT_EPSILON) || (data->density && data->density[index] < FLT_EPSILON) || @@ -3160,27 +3160,27 @@ static void update_effectors_task_cb(void *__restrict userdata, vel[0] = data->velocity_x[index]; vel[1] = data->velocity_y[index]; vel[2] = data->velocity_z[index]; - mul_v3_fl(vel, mds->dx); + mul_v3_fl(vel, fds->dx); /* convert vel to global space */ mag = len_v3(vel); - mul_mat3_m4_v3(mds->obmat, vel); + mul_mat3_m4_v3(fds->obmat, vel); normalize_v3(vel); mul_v3_fl(vel, mag); - voxel_center[0] = mds->p0[0] + mds->cell_size[0] * ((float)(x + mds->res_min[0]) + 0.5f); - voxel_center[1] = mds->p0[1] + mds->cell_size[1] * ((float)(y + mds->res_min[1]) + 0.5f); - voxel_center[2] = mds->p0[2] + mds->cell_size[2] * ((float)(z + mds->res_min[2]) + 0.5f); - mul_m4_v3(mds->obmat, voxel_center); + voxel_center[0] = fds->p0[0] + fds->cell_size[0] * ((float)(x + fds->res_min[0]) + 0.5f); + voxel_center[1] = fds->p0[1] + fds->cell_size[1] * ((float)(y + fds->res_min[1]) + 0.5f); + voxel_center[2] = fds->p0[2] + fds->cell_size[2] * ((float)(z + fds->res_min[2]) + 0.5f); + mul_m4_v3(fds->obmat, voxel_center); /* do effectors */ pd_point_from_loc(data->scene, voxel_center, vel, index, &epoint); BKE_effectors_apply( - data->effectors, NULL, mds->effector_weights, &epoint, retvel, NULL, NULL); + data->effectors, NULL, fds->effector_weights, &epoint, retvel, NULL, NULL); /* convert retvel to local space */ mag = len_v3(retvel); - mul_mat3_m4_v3(mds->imat, retvel); + mul_mat3_m4_v3(fds->imat, retvel); normalize_v3(retvel); mul_v3_fl(retvel, mag); @@ -3193,40 +3193,40 @@ static void update_effectors_task_cb(void *__restrict userdata, } static void update_effectors( - Depsgraph *depsgraph, Scene *scene, Object *ob, FluidDomainSettings *mds, float UNUSED(dt)) + Depsgraph *depsgraph, Scene *scene, Object *ob, FluidDomainSettings *fds, float UNUSED(dt)) { ListBase *effectors; /* make sure smoke flow influence is 0.0f */ - mds->effector_weights->weight[PFIELD_FLUIDFLOW] = 0.0f; - effectors = BKE_effectors_create(depsgraph, ob, NULL, mds->effector_weights); + fds->effector_weights->weight[PFIELD_FLUIDFLOW] = 0.0f; + effectors = BKE_effectors_create(depsgraph, ob, NULL, fds->effector_weights); if (effectors) { // precalculate wind forces UpdateEffectorsData data; data.scene = scene; - data.mds = mds; + data.fds = fds; data.effectors = effectors; - data.density = manta_smoke_get_density(mds->fluid); - data.fuel = manta_smoke_get_fuel(mds->fluid); - data.force_x = manta_get_force_x(mds->fluid); - data.force_y = manta_get_force_y(mds->fluid); - data.force_z = manta_get_force_z(mds->fluid); - data.velocity_x = manta_get_velocity_x(mds->fluid); - data.velocity_y = manta_get_velocity_y(mds->fluid); - data.velocity_z = manta_get_velocity_z(mds->fluid); - data.flags = manta_smoke_get_flags(mds->fluid); - data.phi_obs_in = manta_get_phiobs_in(mds->fluid); + data.density = manta_smoke_get_density(fds->fluid); + data.fuel = manta_smoke_get_fuel(fds->fluid); + data.force_x = manta_get_force_x(fds->fluid); + data.force_y = manta_get_force_y(fds->fluid); + data.force_z = manta_get_force_z(fds->fluid); + data.velocity_x = manta_get_velocity_x(fds->fluid); + data.velocity_y = manta_get_velocity_y(fds->fluid); + data.velocity_z = manta_get_velocity_z(fds->fluid); + data.flags = manta_smoke_get_flags(fds->fluid); + data.phi_obs_in = manta_get_phiobs_in(fds->fluid); TaskParallelSettings settings; BLI_parallel_range_settings_defaults(&settings); settings.min_iter_per_thread = 2; - BLI_task_parallel_range(0, mds->res[0], &data, update_effectors_task_cb, &settings); + BLI_task_parallel_range(0, fds->res[0], &data, update_effectors_task_cb, &settings); } BKE_effectors_free(effectors); } -static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Object *ob) +static Mesh *create_liquid_geometry(FluidDomainSettings *fds, Mesh *orgmesh, Object *ob) { Mesh *me; MVert *mverts; @@ -3254,13 +3254,13 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj int i; int num_verts, num_normals, num_faces; - if (!mds->fluid) { + if (!fds->fluid) { return NULL; } - num_verts = manta_liquid_get_num_verts(mds->fluid); - num_normals = manta_liquid_get_num_normals(mds->fluid); - num_faces = manta_liquid_get_num_triangles(mds->fluid); + num_verts = manta_liquid_get_num_verts(fds->fluid); + num_normals = manta_liquid_get_num_normals(fds->fluid); + num_faces = manta_liquid_get_num_triangles(fds->fluid); # ifdef DEBUG_PRINT /* Debugging: Print number of vertices, normals, and faces. */ @@ -3274,19 +3274,19 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj BLI_assert(num_verts == num_normals); /* If needed, vertex velocities will be read too. */ - bool use_speedvectors = mds->flags & FLUID_DOMAIN_USE_SPEED_VECTORS; + bool use_speedvectors = fds->flags & FLUID_DOMAIN_USE_SPEED_VECTORS; FluidDomainVertexVelocity *velarray = NULL; float time_mult = 25.f * DT_DEFAULT; if (use_speedvectors) { - if (mds->mesh_velocities) { - MEM_freeN(mds->mesh_velocities); + if (fds->mesh_velocities) { + MEM_freeN(fds->mesh_velocities); } - mds->mesh_velocities = MEM_calloc_arrayN( + fds->mesh_velocities = MEM_calloc_arrayN( num_verts, sizeof(FluidDomainVertexVelocity), "fluid_mesh_vertvelocities"); - mds->totvert = num_verts; - velarray = mds->mesh_velocities; + fds->totvert = num_verts; + velarray = fds->mesh_velocities; } me = BKE_mesh_new_nomain(num_verts, 0, 0, num_faces * 3, num_faces); @@ -3298,10 +3298,10 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj mloops = me->mloop; /* Get size (dimension) but considering scaling scaling. */ - copy_v3_v3(cell_size_scaled, mds->cell_size); + copy_v3_v3(cell_size_scaled, fds->cell_size); mul_v3_v3(cell_size_scaled, ob->scale); - madd_v3fl_v3fl_v3fl_v3i(min, mds->p0, cell_size_scaled, mds->res_min); - madd_v3fl_v3fl_v3fl_v3i(max, mds->p0, cell_size_scaled, mds->res_max); + madd_v3fl_v3fl_v3fl_v3i(min, fds->p0, cell_size_scaled, fds->res_min); + madd_v3fl_v3fl_v3fl_v3i(max, fds->p0, cell_size_scaled, fds->res_max); sub_v3_v3v3(size, max, min); /* Biggest dimension will be used for upscaling. */ @@ -3313,9 +3313,9 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj co_scale[2] = max_size / ob->scale[2]; float co_offset[3]; - co_offset[0] = (mds->p0[0] + mds->p1[0]) / 2.0f; - co_offset[1] = (mds->p0[1] + mds->p1[1]) / 2.0f; - co_offset[2] = (mds->p0[2] + mds->p1[2]) / 2.0f; + co_offset[0] = (fds->p0[0] + fds->p1[0]) / 2.0f; + co_offset[1] = (fds->p0[1] + fds->p1[1]) / 2.0f; + co_offset[2] = (fds->p0[2] + fds->p1[2]) / 2.0f; /* Normals. */ normals = MEM_callocN(sizeof(short) * num_normals * 3, "Fluidmesh_tmp_normals"); @@ -3324,20 +3324,20 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj for (i = 0, no_s = normals; i < num_verts && i < num_normals; i++, mverts++, no_s += 3) { /* Vertices (data is normalized cube around domain origin). */ - mverts->co[0] = manta_liquid_get_vertex_x_at(mds->fluid, i); - mverts->co[1] = manta_liquid_get_vertex_y_at(mds->fluid, i); - mverts->co[2] = manta_liquid_get_vertex_z_at(mds->fluid, i); + mverts->co[0] = manta_liquid_get_vertex_x_at(fds->fluid, i); + mverts->co[1] = manta_liquid_get_vertex_y_at(fds->fluid, i); + mverts->co[2] = manta_liquid_get_vertex_z_at(fds->fluid, i); /* If reading raw data directly from manta, normalize now (e.g. during replay mode). * If reading data from files from disk, omit this normalization. */ - if (!manta_liquid_mesh_from_file(mds->fluid)) { + if (!manta_liquid_mesh_from_file(fds->fluid)) { // normalize to unit cube around 0 - mverts->co[0] -= ((float)mds->res[0] * mds->mesh_scale) * 0.5f; - mverts->co[1] -= ((float)mds->res[1] * mds->mesh_scale) * 0.5f; - mverts->co[2] -= ((float)mds->res[2] * mds->mesh_scale) * 0.5f; - mverts->co[0] *= mds->dx / mds->mesh_scale; - mverts->co[1] *= mds->dx / mds->mesh_scale; - mverts->co[2] *= mds->dx / mds->mesh_scale; + mverts->co[0] -= ((float)fds->res[0] * fds->mesh_scale) * 0.5f; + mverts->co[1] -= ((float)fds->res[1] * fds->mesh_scale) * 0.5f; + mverts->co[2] -= ((float)fds->res[2] * fds->mesh_scale) * 0.5f; + mverts->co[0] *= fds->dx / fds->mesh_scale; + mverts->co[1] *= fds->dx / fds->mesh_scale; + mverts->co[2] *= fds->dx / fds->mesh_scale; } mul_v3_v3(mverts->co, co_scale); @@ -3352,9 +3352,9 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj # endif /* Normals (data is normalized cube around domain origin). */ - no[0] = manta_liquid_get_normal_x_at(mds->fluid, i); - no[1] = manta_liquid_get_normal_y_at(mds->fluid, i); - no[2] = manta_liquid_get_normal_z_at(mds->fluid, i); + no[0] = manta_liquid_get_normal_x_at(fds->fluid, i); + no[1] = manta_liquid_get_normal_y_at(fds->fluid, i); + no[2] = manta_liquid_get_normal_z_at(fds->fluid, i); normal_float_to_short_v3(no_s, no); # ifdef DEBUG_PRINT @@ -3363,9 +3363,9 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj # endif if (use_speedvectors) { - velarray[i].vel[0] = manta_liquid_get_vertvel_x_at(mds->fluid, i) * (mds->dx / time_mult); - velarray[i].vel[1] = manta_liquid_get_vertvel_y_at(mds->fluid, i) * (mds->dx / time_mult); - velarray[i].vel[2] = manta_liquid_get_vertvel_z_at(mds->fluid, i) * (mds->dx / time_mult); + velarray[i].vel[0] = manta_liquid_get_vertvel_x_at(fds->fluid, i) * (fds->dx / time_mult); + velarray[i].vel[1] = manta_liquid_get_vertvel_y_at(fds->fluid, i) * (fds->dx / time_mult); + velarray[i].vel[2] = manta_liquid_get_vertvel_z_at(fds->fluid, i) * (fds->dx / time_mult); # ifdef DEBUG_PRINT /* Debugging: Print velocities of vertices. */ printf("velarray[%d].vel[0]: %f, velarray[%d].vel[1]: %f, velarray[%d].vel[2]: %f\n", @@ -3388,9 +3388,9 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj mpolys->loopstart = i * 3; mpolys->totloop = 3; - mloops[0].v = manta_liquid_get_triangle_x_at(mds->fluid, i); - mloops[1].v = manta_liquid_get_triangle_y_at(mds->fluid, i); - mloops[2].v = manta_liquid_get_triangle_z_at(mds->fluid, i); + mloops[0].v = manta_liquid_get_triangle_x_at(fds->fluid, i); + mloops[1].v = manta_liquid_get_triangle_y_at(fds->fluid, i); + mloops[2].v = manta_liquid_get_triangle_z_at(fds->fluid, i); # ifdef DEBUG_PRINT /* Debugging: Print mesh faces. */ printf("mloops[0].v: %d, mloops[1].v: %d, mloops[2].v: %d\n", @@ -3409,7 +3409,7 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj return me; } -static Mesh *create_smoke_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Object *ob) +static Mesh *create_smoke_geometry(FluidDomainSettings *fds, Mesh *orgmesh, Object *ob) { Mesh *result; MVert *mverts; @@ -3428,7 +3428,7 @@ static Mesh *create_smoke_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obje float ob_cache_loc[3] = {0}; /* Just copy existing mesh if there is no content or if the adaptive domain is not being used. */ - if (mds->total_cells <= 1 || (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) == 0) { + if (fds->total_cells <= 1 || (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) == 0) { return BKE_mesh_copy_for_eval(orgmesh, false); } @@ -3439,8 +3439,8 @@ static Mesh *create_smoke_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obje if (num_verts) { /* Volume bounds. */ - madd_v3fl_v3fl_v3fl_v3i(min, mds->p0, mds->cell_size, mds->res_min); - madd_v3fl_v3fl_v3fl_v3i(max, mds->p0, mds->cell_size, mds->res_max); + madd_v3fl_v3fl_v3fl_v3i(min, fds->p0, fds->cell_size, fds->res_min); + madd_v3fl_v3fl_v3fl_v3i(max, fds->p0, fds->cell_size, fds->res_max); /* Set vertices of smoke BB. Especially important, when BB changes (adaptive domain). */ /* Top slab */ @@ -3538,13 +3538,13 @@ static Mesh *create_smoke_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obje * it was originally simulated at (if object moves without manta step). */ invert_m4_m4(ob->imat, ob->obmat); mul_m4_v3(ob->obmat, ob_loc); - mul_m4_v3(mds->obmat, ob_cache_loc); - sub_v3_v3v3(mds->obj_shift_f, ob_cache_loc, ob_loc); + mul_m4_v3(fds->obmat, ob_cache_loc); + sub_v3_v3v3(fds->obj_shift_f, ob_cache_loc, ob_loc); /* Convert shift to local space and apply to vertices. */ - mul_mat3_m4_v3(ob->imat, mds->obj_shift_f); + mul_mat3_m4_v3(ob->imat, fds->obj_shift_f); /* Apply shift to vertices. */ for (i = 0; i < num_verts; i++) { - add_v3_v3(mverts[i].co, mds->obj_shift_f); + add_v3_v3(mverts[i].co, fds->obj_shift_f); } } @@ -3554,49 +3554,49 @@ static Mesh *create_smoke_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obje } static int manta_step( - Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me, FluidModifierData *mmd, int frame) + Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me, FluidModifierData *fmd, int frame) { - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; float dt, frame_length, time_total, time_total_old; float time_per_frame; bool init_resolution = true; /* Store baking success - bake might be aborted anytime by user. */ int result = 1; - int mode = mds->cache_type; + int mode = fds->cache_type; bool mode_replay = (mode == FLUID_DOMAIN_CACHE_REPLAY); /* Update object state. */ - invert_m4_m4(mds->imat, ob->obmat); - copy_m4_m4(mds->obmat, ob->obmat); + invert_m4_m4(fds->imat, ob->obmat); + copy_m4_m4(fds->obmat, ob->obmat); /* Gas domain might use adaptive domain. */ - if (mds->type == FLUID_DOMAIN_TYPE_GAS) { - init_resolution = (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) != 0; + if (fds->type == FLUID_DOMAIN_TYPE_GAS) { + init_resolution = (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) != 0; } - manta_set_domain_from_mesh(mds, ob, me, init_resolution); + manta_set_domain_from_mesh(fds, ob, me, init_resolution); /* Use local variables for adaptive loop, dt can change. */ - frame_length = mds->frame_length; - dt = mds->dt; + frame_length = fds->frame_length; + dt = fds->dt; time_per_frame = 0; - time_total = mds->time_total; + time_total = fds->time_total; /* Keep track of original total time to correct small errors at end of step. */ - time_total_old = mds->time_total; + time_total_old = fds->time_total; BLI_mutex_lock(&object_update_lock); /* Loop as long as time_per_frame (sum of sub dt's) does not exceed actual framelength. */ while (time_per_frame + FLT_EPSILON < frame_length) { - manta_adapt_timestep(mds->fluid); - dt = manta_get_timestep(mds->fluid); + manta_adapt_timestep(fds->fluid); + dt = manta_get_timestep(fds->fluid); /* Save adapted dt so that MANTA object can access it (important when adaptive domain creates * new MANTA object). */ - mds->dt = dt; + fds->dt = dt; /* Calculate inflow geometry. */ - update_flowsfluids(depsgraph, scene, ob, mds, time_per_frame, frame_length, frame, dt); + update_flowsfluids(depsgraph, scene, ob, fds, time_per_frame, frame_length, frame, dt); /* If user requested stop, quit baking */ if (G.is_break && !mode_replay) { @@ -3604,10 +3604,10 @@ static int manta_step( break; } - manta_update_variables(mds->fluid, mmd); + manta_update_variables(fds->fluid, fmd); /* Calculate obstacle geometry. */ - update_obstacles(depsgraph, scene, ob, mds, time_per_frame, frame_length, frame, dt); + update_obstacles(depsgraph, scene, ob, fds, time_per_frame, frame_length, frame, dt); /* If user requested stop, quit baking */ if (G.is_break && !mode_replay) { @@ -3616,23 +3616,23 @@ static int manta_step( } /* Only bake if the domain is bigger than one cell (important for adaptive domain). */ - if (mds->total_cells > 1) { - update_effectors(depsgraph, scene, ob, mds, dt); - manta_bake_data(mds->fluid, mmd, frame); + if (fds->total_cells > 1) { + update_effectors(depsgraph, scene, ob, fds, dt); + manta_bake_data(fds->fluid, fmd, frame); } /* Count for how long this while loop is running. */ time_per_frame += dt; time_total += dt; - mds->time_per_frame = time_per_frame; - mds->time_total = time_total; + fds->time_per_frame = time_per_frame; + fds->time_total = time_total; } /* Total time must not exceed framecount times framelength. Correct tiny errors here. */ - CLAMP(mds->time_total, mds->time_total, time_total_old + mds->frame_length); + CLAMP(fds->time_total, fds->time_total, time_total_old + fds->frame_length); - if (mds->type == FLUID_DOMAIN_TYPE_GAS && result) { - manta_smoke_calc_transparency(mds, DEG_get_evaluated_view_layer(depsgraph)); + if (fds->type == FLUID_DOMAIN_TYPE_GAS && result) { + manta_smoke_calc_transparency(fds, DEG_get_evaluated_view_layer(depsgraph)); } BLI_mutex_unlock(&object_update_lock); @@ -3640,136 +3640,136 @@ static int manta_step( } static void manta_guiding( - Depsgraph *depsgraph, Scene *scene, Object *ob, FluidModifierData *mmd, int frame) + Depsgraph *depsgraph, Scene *scene, Object *ob, FluidModifierData *fmd, int frame) { - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; float fps = scene->r.frs_sec / scene->r.frs_sec_base; - float dt = DT_DEFAULT * (25.0f / fps) * mds->time_scale; + float dt = DT_DEFAULT * (25.0f / fps) * fds->time_scale; BLI_mutex_lock(&object_update_lock); - update_obstacles(depsgraph, scene, ob, mds, dt, dt, frame, dt); - manta_bake_guiding(mds->fluid, mmd, frame); + update_obstacles(depsgraph, scene, ob, fds, dt, dt, frame, dt); + manta_bake_guiding(fds->fluid, fmd, frame); BLI_mutex_unlock(&object_update_lock); } -static void BKE_fluid_modifier_processFlow(FluidModifierData *mmd, +static void BKE_fluid_modifier_processFlow(FluidModifierData *fmd, Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me, const int scene_framenr) { - if (scene_framenr >= mmd->time) { - BKE_fluid_modifier_init(mmd, depsgraph, ob, scene, me); + if (scene_framenr >= fmd->time) { + BKE_fluid_modifier_init(fmd, depsgraph, ob, scene, me); } - if (mmd->flow) { - if (mmd->flow->mesh) { - BKE_id_free(NULL, mmd->flow->mesh); + if (fmd->flow) { + if (fmd->flow->mesh) { + BKE_id_free(NULL, fmd->flow->mesh); } - mmd->flow->mesh = BKE_mesh_copy_for_eval(me, false); + fmd->flow->mesh = BKE_mesh_copy_for_eval(me, false); } - if (scene_framenr > mmd->time) { - mmd->time = scene_framenr; + if (scene_framenr > fmd->time) { + fmd->time = scene_framenr; } - else if (scene_framenr < mmd->time) { - mmd->time = scene_framenr; - BKE_fluid_modifier_reset_ex(mmd, false); + else if (scene_framenr < fmd->time) { + fmd->time = scene_framenr; + BKE_fluid_modifier_reset_ex(fmd, false); } } -static void BKE_fluid_modifier_processEffector(FluidModifierData *mmd, +static void BKE_fluid_modifier_processEffector(FluidModifierData *fmd, Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me, const int scene_framenr) { - if (scene_framenr >= mmd->time) { - BKE_fluid_modifier_init(mmd, depsgraph, ob, scene, me); + if (scene_framenr >= fmd->time) { + BKE_fluid_modifier_init(fmd, depsgraph, ob, scene, me); } - if (mmd->effector) { - if (mmd->effector->mesh) { - BKE_id_free(NULL, mmd->effector->mesh); + if (fmd->effector) { + if (fmd->effector->mesh) { + BKE_id_free(NULL, fmd->effector->mesh); } - mmd->effector->mesh = BKE_mesh_copy_for_eval(me, false); + fmd->effector->mesh = BKE_mesh_copy_for_eval(me, false); } - if (scene_framenr > mmd->time) { - mmd->time = scene_framenr; + if (scene_framenr > fmd->time) { + fmd->time = scene_framenr; } - else if (scene_framenr < mmd->time) { - mmd->time = scene_framenr; - BKE_fluid_modifier_reset_ex(mmd, false); + else if (scene_framenr < fmd->time) { + fmd->time = scene_framenr; + BKE_fluid_modifier_reset_ex(fmd, false); } } -static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd, +static void BKE_fluid_modifier_processDomain(FluidModifierData *fmd, Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me, const int scene_framenr) { - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; Object *guide_parent = NULL; Object **objs = NULL; uint numobj = 0; - FluidModifierData *mmd_parent = NULL; + FluidModifierData *fmd_parent = NULL; bool is_startframe, has_advanced; - is_startframe = (scene_framenr == mds->cache_frame_start); - has_advanced = (scene_framenr == mmd->time + 1); - int mode = mds->cache_type; + is_startframe = (scene_framenr == fds->cache_frame_start); + has_advanced = (scene_framenr == fmd->time + 1); + int mode = fds->cache_type; /* Do not process modifier if current frame is out of cache range. */ switch (mode) { case FLUID_DOMAIN_CACHE_ALL: case FLUID_DOMAIN_CACHE_MODULAR: - if (mds->cache_frame_offset > 0) { - if (scene_framenr < mds->cache_frame_start || - scene_framenr > mds->cache_frame_end + mds->cache_frame_offset) { + if (fds->cache_frame_offset > 0) { + if (scene_framenr < fds->cache_frame_start || + scene_framenr > fds->cache_frame_end + fds->cache_frame_offset) { return; } } else { - if (scene_framenr < mds->cache_frame_start + mds->cache_frame_offset || - scene_framenr > mds->cache_frame_end) { + if (scene_framenr < fds->cache_frame_start + fds->cache_frame_offset || + scene_framenr > fds->cache_frame_end) { return; } } break; case FLUID_DOMAIN_CACHE_REPLAY: default: - if (scene_framenr < mds->cache_frame_start || scene_framenr > mds->cache_frame_end) { + if (scene_framenr < fds->cache_frame_start || scene_framenr > fds->cache_frame_end) { return; } break; } /* Reset fluid if no fluid present. Also resets active fields. */ - if (!mds->fluid) { - BKE_fluid_modifier_reset_ex(mmd, false); + if (!fds->fluid) { + BKE_fluid_modifier_reset_ex(fmd, false); } /* Ensure cache directory is not relative. */ const char *relbase = BKE_modifier_path_relbase_from_global(ob); - BLI_path_abs(mds->cache_directory, relbase); + BLI_path_abs(fds->cache_directory, relbase); /* Ensure that all flags are up to date before doing any baking and/or cache reading. */ objs = BKE_collision_objects_create( - depsgraph, ob, mds->fluid_group, &numobj, eModifierType_Fluid); - update_flowsflags(mds, objs, numobj); + depsgraph, ob, fds->fluid_group, &numobj, eModifierType_Fluid); + update_flowsflags(fds, objs, numobj); if (objs) { MEM_freeN(objs); } objs = BKE_collision_objects_create( - depsgraph, ob, mds->effector_group, &numobj, eModifierType_Fluid); - update_obstacleflags(mds, objs, numobj); + depsgraph, ob, fds->effector_group, &numobj, eModifierType_Fluid); + update_obstacleflags(fds, objs, numobj); if (objs) { MEM_freeN(objs); } @@ -3778,112 +3778,112 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd, # if 0 /* If the just updated flags now carry the 'outdated' flag, reset the cache here! * Plus sanity check: Do not clear cache on file load. */ - if (mds->cache_flag & FLUID_DOMAIN_OUTDATED_DATA && - ((mds->flags & FLUID_DOMAIN_FILE_LOAD) == 0)) { - BKE_fluid_cache_free_all(mds, ob); - BKE_fluid_modifier_reset_ex(mmd, false); + if (fds->cache_flag & FLUID_DOMAIN_OUTDATED_DATA && + ((fds->flags & FLUID_DOMAIN_FILE_LOAD) == 0)) { + BKE_fluid_cache_free_all(fds, ob); + BKE_fluid_modifier_reset_ex(fmd, false); } # endif /* Fluid domain init must not fail in order to continue modifier evaluation. */ - if (!mds->fluid && !BKE_fluid_modifier_init(mmd, depsgraph, ob, scene, me)) { + if (!fds->fluid && !BKE_fluid_modifier_init(fmd, depsgraph, ob, scene, me)) { CLOG_ERROR(&LOG, "Fluid initialization failed. Should not happen!"); return; } - BLI_assert(mds->fluid); + BLI_assert(fds->fluid); /* Guiding parent res pointer needs initialization. */ - guide_parent = mds->guide_parent; + guide_parent = fds->guide_parent; if (guide_parent) { - mmd_parent = (FluidModifierData *)BKE_modifiers_findby_type(guide_parent, eModifierType_Fluid); - if (mmd_parent && mmd_parent->domain) { - copy_v3_v3_int(mds->guide_res, mmd_parent->domain->res); + fmd_parent = (FluidModifierData *)BKE_modifiers_findby_type(guide_parent, eModifierType_Fluid); + if (fmd_parent && fmd_parent->domain) { + copy_v3_v3_int(fds->guide_res, fmd_parent->domain->res); } } /* Ensure that time parameters are initialized correctly before every step. */ float fps = scene->r.frs_sec / scene->r.frs_sec_base; - mds->frame_length = DT_DEFAULT * (25.0f / fps) * mds->time_scale; - mds->dt = mds->frame_length; - mds->time_per_frame = 0; + fds->frame_length = DT_DEFAULT * (25.0f / fps) * fds->time_scale; + fds->dt = fds->frame_length; + fds->time_per_frame = 0; /* Ensure that gravity is copied over every frame (could be keyframed). */ if (scene->physics_settings.flag & PHYS_GLOBAL_GRAVITY) { - copy_v3_v3(mds->gravity, scene->physics_settings.gravity); - mul_v3_fl(mds->gravity, mds->effector_weights->global_gravity); + copy_v3_v3(fds->gravity, scene->physics_settings.gravity); + mul_v3_fl(fds->gravity, fds->effector_weights->global_gravity); } int next_frame = scene_framenr + 1; int prev_frame = scene_framenr - 1; /* Ensure positive of previous frame. */ - CLAMP_MIN(prev_frame, mds->cache_frame_start); + CLAMP_MIN(prev_frame, fds->cache_frame_start); int data_frame = scene_framenr, noise_frame = scene_framenr; int mesh_frame = scene_framenr, particles_frame = scene_framenr, guide_frame = scene_framenr; bool with_smoke, with_liquid; - with_smoke = mds->type == FLUID_DOMAIN_TYPE_GAS; - with_liquid = mds->type == FLUID_DOMAIN_TYPE_LIQUID; + with_smoke = fds->type == FLUID_DOMAIN_TYPE_GAS; + with_liquid = fds->type == FLUID_DOMAIN_TYPE_LIQUID; bool drops, bubble, floater; - drops = mds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY; - bubble = mds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE; - floater = mds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM; + drops = fds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY; + bubble = fds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE; + floater = fds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM; - bool with_resumable_cache = mds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE; + bool with_resumable_cache = fds->flags & FLUID_DOMAIN_USE_RESUMABLE_CACHE; bool with_script, with_adaptive, with_noise, with_mesh, with_particles, with_guide; - with_script = mds->flags & FLUID_DOMAIN_EXPORT_MANTA_SCRIPT; - with_adaptive = mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN; - with_noise = mds->flags & FLUID_DOMAIN_USE_NOISE; - with_mesh = mds->flags & FLUID_DOMAIN_USE_MESH; - with_guide = mds->flags & FLUID_DOMAIN_USE_GUIDE; + with_script = fds->flags & FLUID_DOMAIN_EXPORT_MANTA_SCRIPT; + with_adaptive = fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN; + with_noise = fds->flags & FLUID_DOMAIN_USE_NOISE; + with_mesh = fds->flags & FLUID_DOMAIN_USE_MESH; + with_guide = fds->flags & FLUID_DOMAIN_USE_GUIDE; with_particles = drops || bubble || floater; bool has_data, has_noise, has_mesh, has_particles, has_guide, has_config; - has_data = manta_has_data(mds->fluid, mmd, scene_framenr); - has_noise = manta_has_noise(mds->fluid, mmd, scene_framenr); - has_mesh = manta_has_mesh(mds->fluid, mmd, scene_framenr); - has_particles = manta_has_particles(mds->fluid, mmd, scene_framenr); - has_guide = manta_has_guiding(mds->fluid, mmd, scene_framenr, guide_parent); + has_data = manta_has_data(fds->fluid, fmd, scene_framenr); + has_noise = manta_has_noise(fds->fluid, fmd, scene_framenr); + has_mesh = manta_has_mesh(fds->fluid, fmd, scene_framenr); + has_particles = manta_has_particles(fds->fluid, fmd, scene_framenr); + has_guide = manta_has_guiding(fds->fluid, fmd, scene_framenr, guide_parent); has_config = false; bool baking_data, baking_noise, baking_mesh, baking_particles, baking_guide; - baking_data = mds->cache_flag & FLUID_DOMAIN_BAKING_DATA; - baking_noise = mds->cache_flag & FLUID_DOMAIN_BAKING_NOISE; - baking_mesh = mds->cache_flag & FLUID_DOMAIN_BAKING_MESH; - baking_particles = mds->cache_flag & FLUID_DOMAIN_BAKING_PARTICLES; - baking_guide = mds->cache_flag & FLUID_DOMAIN_BAKING_GUIDE; + baking_data = fds->cache_flag & FLUID_DOMAIN_BAKING_DATA; + baking_noise = fds->cache_flag & FLUID_DOMAIN_BAKING_NOISE; + baking_mesh = fds->cache_flag & FLUID_DOMAIN_BAKING_MESH; + baking_particles = fds->cache_flag & FLUID_DOMAIN_BAKING_PARTICLES; + baking_guide = fds->cache_flag & FLUID_DOMAIN_BAKING_GUIDE; bool resume_data, resume_noise, resume_mesh, resume_particles, resume_guide; - resume_data = (!is_startframe) && (mds->cache_frame_pause_data == scene_framenr); - resume_noise = (!is_startframe) && (mds->cache_frame_pause_noise == scene_framenr); - resume_mesh = (!is_startframe) && (mds->cache_frame_pause_mesh == scene_framenr); - resume_particles = (!is_startframe) && (mds->cache_frame_pause_particles == scene_framenr); - resume_guide = (!is_startframe) && (mds->cache_frame_pause_guide == scene_framenr); + resume_data = (!is_startframe) && (fds->cache_frame_pause_data == scene_framenr); + resume_noise = (!is_startframe) && (fds->cache_frame_pause_noise == scene_framenr); + resume_mesh = (!is_startframe) && (fds->cache_frame_pause_mesh == scene_framenr); + resume_particles = (!is_startframe) && (fds->cache_frame_pause_particles == scene_framenr); + resume_guide = (!is_startframe) && (fds->cache_frame_pause_guide == scene_framenr); bool read_cache, bake_cache; read_cache = false; bake_cache = baking_data || baking_noise || baking_mesh || baking_particles || baking_guide; bool next_data, next_noise, next_mesh, next_particles, next_guide; - next_data = manta_has_data(mds->fluid, mmd, next_frame); - next_noise = manta_has_noise(mds->fluid, mmd, next_frame); - next_mesh = manta_has_mesh(mds->fluid, mmd, next_frame); - next_particles = manta_has_particles(mds->fluid, mmd, next_frame); - next_guide = manta_has_guiding(mds->fluid, mmd, next_frame, guide_parent); + next_data = manta_has_data(fds->fluid, fmd, next_frame); + next_noise = manta_has_noise(fds->fluid, fmd, next_frame); + next_mesh = manta_has_mesh(fds->fluid, fmd, next_frame); + next_particles = manta_has_particles(fds->fluid, fmd, next_frame); + next_guide = manta_has_guiding(fds->fluid, fmd, next_frame, guide_parent); bool prev_data, prev_noise, prev_mesh, prev_particles, prev_guide; - prev_data = manta_has_data(mds->fluid, mmd, prev_frame); - prev_noise = manta_has_noise(mds->fluid, mmd, prev_frame); - prev_mesh = manta_has_mesh(mds->fluid, mmd, prev_frame); - prev_particles = manta_has_particles(mds->fluid, mmd, prev_frame); - prev_guide = manta_has_guiding(mds->fluid, mmd, prev_frame, guide_parent); + prev_data = manta_has_data(fds->fluid, fmd, prev_frame); + prev_noise = manta_has_noise(fds->fluid, fmd, prev_frame); + prev_mesh = manta_has_mesh(fds->fluid, fmd, prev_frame); + prev_particles = manta_has_particles(fds->fluid, fmd, prev_frame); + prev_guide = manta_has_guiding(fds->fluid, fmd, prev_frame, guide_parent); /* Unused for now. */ UNUSED_VARS(has_guide, prev_guide, next_mesh, next_guide); bool with_gdomain; - with_gdomain = (mds->guide_source == FLUID_DOMAIN_GUIDE_SRC_DOMAIN); + with_gdomain = (fds->guide_source == FLUID_DOMAIN_GUIDE_SRC_DOMAIN); int o_res[3], o_min[3], o_max[3], o_shift[3]; @@ -3897,10 +3897,10 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd, bake_cache = false; /* Apply frame offset. */ - data_frame -= mmd->domain->cache_frame_offset; - noise_frame -= mmd->domain->cache_frame_offset; - mesh_frame -= mmd->domain->cache_frame_offset; - particles_frame -= mmd->domain->cache_frame_offset; + data_frame -= fmd->domain->cache_frame_offset; + noise_frame -= fmd->domain->cache_frame_offset; + mesh_frame -= fmd->domain->cache_frame_offset; + particles_frame -= fmd->domain->cache_frame_offset; break; } @@ -3926,7 +3926,7 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd, CLAMP_MAX(noise_frame, data_frame); CLAMP_MAX(mesh_frame, data_frame); CLAMP_MAX(particles_frame, data_frame); - CLAMP_MAX(guide_frame, mds->cache_frame_end); + CLAMP_MAX(guide_frame, fds->cache_frame_end); /* Force to read cache as we're resuming the bake */ read_cache = true; @@ -3956,72 +3956,72 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd, /* Read mesh cache. */ if (with_liquid && with_mesh) { - has_config = manta_read_config(mds->fluid, mmd, mesh_frame); + has_config = manta_read_config(fds->fluid, fmd, mesh_frame); /* Update mesh data from file is faster than via Python (manta_read_mesh()). */ - has_mesh = manta_read_mesh(mds->fluid, mmd, mesh_frame); + has_mesh = manta_read_mesh(fds->fluid, fmd, mesh_frame); } /* Read particles cache. */ if (with_liquid && with_particles) { - has_config = manta_read_config(mds->fluid, mmd, particles_frame); + has_config = manta_read_config(fds->fluid, fmd, particles_frame); read_partial = !baking_data && !baking_particles && next_particles; read_all = !read_partial && with_resumable_cache; - has_particles = manta_read_particles(mds->fluid, mmd, particles_frame, read_all); + has_particles = manta_read_particles(fds->fluid, fmd, particles_frame, read_all); } /* Read guide cache. */ if (with_guide) { - FluidModifierData *mmd2 = (with_gdomain) ? mmd_parent : mmd; - has_guide = manta_read_guiding(mds->fluid, mmd2, scene_framenr, with_gdomain); + FluidModifierData *fmd2 = (with_gdomain) ? fmd_parent : fmd; + has_guide = manta_read_guiding(fds->fluid, fmd2, scene_framenr, with_gdomain); } /* Read noise and data cache */ if (with_smoke && with_noise) { - has_config = manta_read_config(mds->fluid, mmd, noise_frame); + has_config = manta_read_config(fds->fluid, fmd, noise_frame); /* Only reallocate when just reading cache or when resuming during bake. */ if ((!baking_noise || (baking_noise && resume_noise)) && has_config && - manta_needs_realloc(mds->fluid, mmd)) { - BKE_fluid_reallocate_fluid(mds, mds->res, 1); + manta_needs_realloc(fds->fluid, fmd)) { + BKE_fluid_reallocate_fluid(fds, fds->res, 1); } read_partial = !baking_data && !baking_noise && next_noise; read_all = !read_partial && with_resumable_cache; - has_noise = manta_read_noise(mds->fluid, mmd, noise_frame, read_all); + has_noise = manta_read_noise(fds->fluid, fmd, noise_frame, read_all); /* When using the adaptive domain, copy all data that was read to a new fluid object. */ if (with_adaptive && baking_noise) { /* Adaptive domain needs to know about current state, so save it, then copy. */ - copy_v3_v3_int(o_res, mds->res); - copy_v3_v3_int(o_min, mds->res_min); - copy_v3_v3_int(o_max, mds->res_max); - copy_v3_v3_int(o_shift, mds->shift); - if (has_config && manta_needs_realloc(mds->fluid, mmd)) { + copy_v3_v3_int(o_res, fds->res); + copy_v3_v3_int(o_min, fds->res_min); + copy_v3_v3_int(o_max, fds->res_max); + copy_v3_v3_int(o_shift, fds->shift); + if (has_config && manta_needs_realloc(fds->fluid, fmd)) { BKE_fluid_reallocate_copy_fluid( - mds, o_res, mds->res, o_min, mds->res_min, o_max, o_shift, mds->shift); + fds, o_res, fds->res, o_min, fds->res_min, o_max, o_shift, fds->shift); } } read_partial = !baking_data && !baking_noise && next_data && next_noise; read_all = !read_partial && with_resumable_cache; - has_data = manta_read_data(mds->fluid, mmd, data_frame, read_all); + has_data = manta_read_data(fds->fluid, fmd, data_frame, read_all); } /* Read data cache only */ else { - has_config = manta_read_config(mds->fluid, mmd, data_frame); + has_config = manta_read_config(fds->fluid, fmd, data_frame); if (with_smoke) { /* Read config and realloc fluid object if needed. */ - if (has_config && manta_needs_realloc(mds->fluid, mmd)) { - BKE_fluid_reallocate_fluid(mds, mds->res, 1); + if (has_config && manta_needs_realloc(fds->fluid, fmd)) { + BKE_fluid_reallocate_fluid(fds, fds->res, 1); } } read_partial = !baking_data && !baking_particles && !baking_mesh && next_data; read_all = !read_partial && with_resumable_cache; - has_data = manta_read_data(mds->fluid, mmd, data_frame, read_all); + has_data = manta_read_data(fds->fluid, fmd, data_frame, read_all); } } @@ -4056,100 +4056,100 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd, /* Trigger bake calls individually */ if (bake_cache) { /* Ensure fresh variables at every animation step */ - manta_update_variables(mds->fluid, mmd); + manta_update_variables(fds->fluid, fmd); /* Export mantaflow python script on first frame (once only) and for any bake type */ if (with_script && is_startframe) { if (with_smoke) { - manta_smoke_export_script(mmd->domain->fluid, mmd); + manta_smoke_export_script(fmd->domain->fluid, fmd); } if (with_liquid) { - manta_liquid_export_script(mmd->domain->fluid, mmd); + manta_liquid_export_script(fmd->domain->fluid, fmd); } } if (baking_guide && with_guide) { - manta_guiding(depsgraph, scene, ob, mmd, scene_framenr); + manta_guiding(depsgraph, scene, ob, fmd, scene_framenr); } if (baking_data) { /* Only save baked data if all of it completed successfully. */ - if (manta_step(depsgraph, scene, ob, me, mmd, scene_framenr)) { - manta_write_config(mds->fluid, mmd, scene_framenr); - manta_write_data(mds->fluid, mmd, scene_framenr); + if (manta_step(depsgraph, scene, ob, me, fmd, scene_framenr)) { + manta_write_config(fds->fluid, fmd, scene_framenr); + manta_write_data(fds->fluid, fmd, scene_framenr); } } if (has_data || baking_data) { if (baking_noise && with_smoke && with_noise) { /* Ensure that no bake occurs if domain was minimized by adaptive domain. */ - if (mds->total_cells > 1) { - manta_bake_noise(mds->fluid, mmd, scene_framenr); + if (fds->total_cells > 1) { + manta_bake_noise(fds->fluid, fmd, scene_framenr); } - manta_write_noise(mds->fluid, mmd, scene_framenr); + manta_write_noise(fds->fluid, fmd, scene_framenr); } if (baking_mesh && with_liquid && with_mesh) { - manta_bake_mesh(mds->fluid, mmd, scene_framenr); + manta_bake_mesh(fds->fluid, fmd, scene_framenr); } if (baking_particles && with_liquid && with_particles) { - manta_bake_particles(mds->fluid, mmd, scene_framenr); + manta_bake_particles(fds->fluid, fmd, scene_framenr); } } } - mds->flags &= ~FLUID_DOMAIN_FILE_LOAD; - mmd->time = scene_framenr; + fds->flags &= ~FLUID_DOMAIN_FILE_LOAD; + fmd->time = scene_framenr; } static void BKE_fluid_modifier_process( - FluidModifierData *mmd, Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me) + FluidModifierData *fmd, Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me) { const int scene_framenr = (int)DEG_get_ctime(depsgraph); - if ((mmd->type & MOD_FLUID_TYPE_FLOW)) { - BKE_fluid_modifier_processFlow(mmd, depsgraph, scene, ob, me, scene_framenr); + if ((fmd->type & MOD_FLUID_TYPE_FLOW)) { + BKE_fluid_modifier_processFlow(fmd, depsgraph, scene, ob, me, scene_framenr); } - else if (mmd->type & MOD_FLUID_TYPE_EFFEC) { - BKE_fluid_modifier_processEffector(mmd, depsgraph, scene, ob, me, scene_framenr); + else if (fmd->type & MOD_FLUID_TYPE_EFFEC) { + BKE_fluid_modifier_processEffector(fmd, depsgraph, scene, ob, me, scene_framenr); } - else if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { - BKE_fluid_modifier_processDomain(mmd, depsgraph, scene, ob, me, scene_framenr); + else if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { + BKE_fluid_modifier_processDomain(fmd, depsgraph, scene, ob, me, scene_framenr); } } struct Mesh *BKE_fluid_modifier_do( - FluidModifierData *mmd, Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me) + FluidModifierData *fmd, Depsgraph *depsgraph, Scene *scene, Object *ob, Mesh *me) { /* Lock so preview render does not read smoke data while it gets modified. */ - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { - BLI_rw_mutex_lock(mmd->domain->fluid_mutex, THREAD_LOCK_WRITE); + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { + BLI_rw_mutex_lock(fmd->domain->fluid_mutex, THREAD_LOCK_WRITE); } - BKE_fluid_modifier_process(mmd, depsgraph, scene, ob, me); + BKE_fluid_modifier_process(fmd, depsgraph, scene, ob, me); - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { - BLI_rw_mutex_unlock(mmd->domain->fluid_mutex); + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { + BLI_rw_mutex_unlock(fmd->domain->fluid_mutex); } /* Optimization: Do not update viewport during bakes (except in replay mode) * Reason: UI is locked and updated liquid / smoke geometry is not visible anyways. */ bool needs_viewport_update = false; - if (mmd->domain) { - FluidDomainSettings *mds = mmd->domain; + if (fmd->domain) { + FluidDomainSettings *fds = fmd->domain; /* Always update viewport in cache replay mode. */ - if (mds->cache_type == FLUID_DOMAIN_CACHE_REPLAY || - mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { + if (fds->cache_type == FLUID_DOMAIN_CACHE_REPLAY || + fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { needs_viewport_update = true; } /* In other cache modes, only update the viewport when no bake is going on. */ else { bool with_mesh; - with_mesh = mds->flags & FLUID_DOMAIN_USE_MESH; + with_mesh = fds->flags & FLUID_DOMAIN_USE_MESH; bool baking_data, baking_noise, baking_mesh, baking_particles, baking_guide; - baking_data = mds->cache_flag & FLUID_DOMAIN_BAKING_DATA; - baking_noise = mds->cache_flag & FLUID_DOMAIN_BAKING_NOISE; - baking_mesh = mds->cache_flag & FLUID_DOMAIN_BAKING_MESH; - baking_particles = mds->cache_flag & FLUID_DOMAIN_BAKING_PARTICLES; - baking_guide = mds->cache_flag & FLUID_DOMAIN_BAKING_GUIDE; + baking_data = fds->cache_flag & FLUID_DOMAIN_BAKING_DATA; + baking_noise = fds->cache_flag & FLUID_DOMAIN_BAKING_NOISE; + baking_mesh = fds->cache_flag & FLUID_DOMAIN_BAKING_MESH; + baking_particles = fds->cache_flag & FLUID_DOMAIN_BAKING_PARTICLES; + baking_guide = fds->cache_flag & FLUID_DOMAIN_BAKING_GUIDE; if (with_mesh && !baking_data && !baking_noise && !baking_mesh && !baking_particles && !baking_guide) { @@ -4159,23 +4159,23 @@ struct Mesh *BKE_fluid_modifier_do( } Mesh *result = NULL; - if (mmd->type & MOD_FLUID_TYPE_DOMAIN && mmd->domain) { + if (fmd->type & MOD_FLUID_TYPE_DOMAIN && fmd->domain) { if (needs_viewport_update) { /* Return generated geometry depending on domain type. */ - if (mmd->domain->type == FLUID_DOMAIN_TYPE_LIQUID) { - result = create_liquid_geometry(mmd->domain, me, ob); + if (fmd->domain->type == FLUID_DOMAIN_TYPE_LIQUID) { + result = create_liquid_geometry(fmd->domain, me, ob); } - if (mmd->domain->type == FLUID_DOMAIN_TYPE_GAS) { - result = create_smoke_geometry(mmd->domain, me, ob); + if (fmd->domain->type == FLUID_DOMAIN_TYPE_GAS) { + result = create_smoke_geometry(fmd->domain, me, ob); } } /* Clear flag outside of locked block (above). */ - mmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_DATA; - mmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_NOISE; - mmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_MESH; - mmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_PARTICLES; - mmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_GUIDE; + fmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_DATA; + fmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_NOISE; + fmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_MESH; + fmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_PARTICLES; + fmd->domain->cache_flag &= ~FLUID_DOMAIN_OUTDATED_GUIDE; } if (!result) { @@ -4307,24 +4307,24 @@ static void bresenham_linie_3D(int x1, cb(result, input, res, pixel, t_ray, correct); } -static void manta_smoke_calc_transparency(FluidDomainSettings *mds, ViewLayer *view_layer) +static void manta_smoke_calc_transparency(FluidDomainSettings *fds, ViewLayer *view_layer) { float bv[6] = {0}; float light[3]; - int a, z, slabsize = mds->res[0] * mds->res[1], size = mds->res[0] * mds->res[1] * mds->res[2]; - float *density = manta_smoke_get_density(mds->fluid); - float *shadow = manta_smoke_get_shadow(mds->fluid); - float correct = -7.0f * mds->dx; + int a, z, slabsize = fds->res[0] * fds->res[1], size = fds->res[0] * fds->res[1] * fds->res[2]; + float *density = manta_smoke_get_density(fds->fluid); + float *shadow = manta_smoke_get_shadow(fds->fluid); + float correct = -7.0f * fds->dx; if (!get_light(view_layer, light)) { return; } /* convert light pos to sim cell space */ - mul_m4_v3(mds->imat, light); - light[0] = (light[0] - mds->p0[0]) / mds->cell_size[0] - 0.5f - (float)mds->res_min[0]; - light[1] = (light[1] - mds->p0[1]) / mds->cell_size[1] - 0.5f - (float)mds->res_min[1]; - light[2] = (light[2] - mds->p0[2]) / mds->cell_size[2] - 0.5f - (float)mds->res_min[2]; + mul_m4_v3(fds->imat, light); + light[0] = (light[0] - fds->p0[0]) / fds->cell_size[0] - 0.5f - (float)fds->res_min[0]; + light[1] = (light[1] - fds->p0[1]) / fds->cell_size[1] - 0.5f - (float)fds->res_min[1]; + light[2] = (light[2] - fds->p0[2]) / fds->cell_size[2] - 0.5f - (float)fds->res_min[2]; for (a = 0; a < size; a++) { shadow[a] = -1.0f; @@ -4332,16 +4332,16 @@ static void manta_smoke_calc_transparency(FluidDomainSettings *mds, ViewLayer *v /* calculate domain bounds in sim cell space */ // 0,2,4 = 0.0f - bv[1] = (float)mds->res[0]; // x - bv[3] = (float)mds->res[1]; // y - bv[5] = (float)mds->res[2]; // z + bv[1] = (float)fds->res[0]; // x + bv[3] = (float)fds->res[1]; // y + bv[5] = (float)fds->res[2]; // z - for (z = 0; z < mds->res[2]; z++) { + for (z = 0; z < fds->res[2]; z++) { size_t index = z * slabsize; int x, y; - for (y = 0; y < mds->res[1]; y++) { - for (x = 0; x < mds->res[0]; x++, index++) { + for (y = 0; y < fds->res[1]; y++) { + for (x = 0; x < fds->res[0]; x++, index++) { float voxel_center[3]; float pos[3]; int cell[3]; @@ -4368,9 +4368,9 @@ static void manta_smoke_calc_transparency(FluidDomainSettings *mds, ViewLayer *v cell[2] = (int)floor(light[2]); } /* clamp within grid bounds */ - CLAMP(cell[0], 0, mds->res[0] - 1); - CLAMP(cell[1], 0, mds->res[1] - 1); - CLAMP(cell[2], 0, mds->res[2] - 1); + CLAMP(cell[0], 0, fds->res[0] - 1); + CLAMP(cell[1], 0, fds->res[1] - 1); + CLAMP(cell[2], 0, fds->res[2] - 1); bresenham_linie_3D(cell[0], cell[1], @@ -4382,7 +4382,7 @@ static void manta_smoke_calc_transparency(FluidDomainSettings *mds, ViewLayer *v calc_voxel_transp, shadow, density, - mds->res, + fds->res, correct); // convention -> from a RGBA float array, use G value for t_ray @@ -4396,35 +4396,35 @@ static void manta_smoke_calc_transparency(FluidDomainSettings *mds, ViewLayer *v * Returns fluid density or -1.0f if outside domain. */ float BKE_fluid_get_velocity_at(struct Object *ob, float position[3], float velocity[3]) { - FluidModifierData *mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + FluidModifierData *fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); zero_v3(velocity); - if (mmd && (mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain && mmd->domain->fluid) { - FluidDomainSettings *mds = mmd->domain; + if (fmd && (fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain && fmd->domain->fluid) { + FluidDomainSettings *fds = fmd->domain; float time_mult = 25.f * DT_DEFAULT; - float size_mult = MAX3(mds->global_size[0], mds->global_size[1], mds->global_size[2]) / - mds->maxres; + float size_mult = MAX3(fds->global_size[0], fds->global_size[1], fds->global_size[2]) / + fds->maxres; float vel_mag; float density = 0.0f, fuel = 0.0f; float pos[3]; copy_v3_v3(pos, position); - manta_pos_to_cell(mds, pos); + manta_pos_to_cell(fds, pos); /* Check if position is outside domain max bounds. */ - if (pos[0] < mds->res_min[0] || pos[1] < mds->res_min[1] || pos[2] < mds->res_min[2]) { + if (pos[0] < fds->res_min[0] || pos[1] < fds->res_min[1] || pos[2] < fds->res_min[2]) { return -1.0f; } - if (pos[0] > mds->res_max[0] || pos[1] > mds->res_max[1] || pos[2] > mds->res_max[2]) { + if (pos[0] > fds->res_max[0] || pos[1] > fds->res_max[1] || pos[2] > fds->res_max[2]) { return -1.0f; } /* map pos between 0.0 - 1.0 */ - pos[0] = (pos[0] - mds->res_min[0]) / ((float)mds->res[0]); - pos[1] = (pos[1] - mds->res_min[1]) / ((float)mds->res[1]); - pos[2] = (pos[2] - mds->res_min[2]) / ((float)mds->res[2]); + pos[0] = (pos[0] - fds->res_min[0]) / ((float)fds->res[0]); + pos[1] = (pos[1] - fds->res_min[1]) / ((float)fds->res[1]); + pos[2] = (pos[2] - fds->res_min[2]) / ((float)fds->res[2]); /* Check if position is outside active area. */ - if (mds->type == FLUID_DOMAIN_TYPE_GAS && mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { + if (fds->type == FLUID_DOMAIN_TYPE_GAS && fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { if (pos[0] < 0.0f || pos[1] < 0.0f || pos[2] < 0.0f) { return 0.0f; } @@ -4434,9 +4434,9 @@ float BKE_fluid_get_velocity_at(struct Object *ob, float position[3], float velo } /* Get interpolated velocity at given position. */ - velocity[0] = BLI_voxel_sample_trilinear(manta_get_velocity_x(mds->fluid), mds->res, pos); - velocity[1] = BLI_voxel_sample_trilinear(manta_get_velocity_y(mds->fluid), mds->res, pos); - velocity[2] = BLI_voxel_sample_trilinear(manta_get_velocity_z(mds->fluid), mds->res, pos); + velocity[0] = BLI_voxel_sample_trilinear(manta_get_velocity_x(fds->fluid), fds->res, pos); + velocity[1] = BLI_voxel_sample_trilinear(manta_get_velocity_y(fds->fluid), fds->res, pos); + velocity[2] = BLI_voxel_sample_trilinear(manta_get_velocity_z(fds->fluid), fds->res, pos); /* Convert simulation units to Blender units. */ mul_v3_fl(velocity, size_mult); @@ -4444,32 +4444,32 @@ float BKE_fluid_get_velocity_at(struct Object *ob, float position[3], float velo /* Convert velocity direction to global space. */ vel_mag = len_v3(velocity); - mul_mat3_m4_v3(mds->obmat, velocity); + mul_mat3_m4_v3(fds->obmat, velocity); normalize_v3(velocity); mul_v3_fl(velocity, vel_mag); /* Use max value of fuel or smoke density. */ - density = BLI_voxel_sample_trilinear(manta_smoke_get_density(mds->fluid), mds->res, pos); - if (manta_smoke_has_fuel(mds->fluid)) { - fuel = BLI_voxel_sample_trilinear(manta_smoke_get_fuel(mds->fluid), mds->res, pos); + density = BLI_voxel_sample_trilinear(manta_smoke_get_density(fds->fluid), fds->res, pos); + if (manta_smoke_has_fuel(fds->fluid)) { + fuel = BLI_voxel_sample_trilinear(manta_smoke_get_fuel(fds->fluid), fds->res, pos); } return MAX2(density, fuel); } return -1.0f; } -int BKE_fluid_get_data_flags(FluidDomainSettings *mds) +int BKE_fluid_get_data_flags(FluidDomainSettings *fds) { int flags = 0; - if (mds->fluid) { - if (manta_smoke_has_heat(mds->fluid)) { + if (fds->fluid) { + if (manta_smoke_has_heat(fds->fluid)) { flags |= FLUID_DOMAIN_ACTIVE_HEAT; } - if (manta_smoke_has_fuel(mds->fluid)) { + if (manta_smoke_has_fuel(fds->fluid)) { flags |= FLUID_DOMAIN_ACTIVE_FIRE; } - if (manta_smoke_has_colors(mds->fluid)) { + if (manta_smoke_has_colors(fds->fluid)) { flags |= FLUID_DOMAIN_ACTIVE_COLORS; } } @@ -4486,7 +4486,7 @@ void BKE_fluid_particle_system_create(struct Main *bmain, { ParticleSystem *psys; ParticleSettings *part; - ParticleSystemModifierData *pmmd; + ParticleSystemModifierData *pfmd; /* add particle system */ part = BKE_particlesettings_add(bmain, pset_name); @@ -4502,25 +4502,25 @@ void BKE_fluid_particle_system_create(struct Main *bmain, BLI_addtail(&ob->particlesystem, psys); /* add modifier */ - pmmd = (ParticleSystemModifierData *)BKE_modifier_new(eModifierType_ParticleSystem); - BLI_strncpy(pmmd->modifier.name, psys_name, sizeof(pmmd->modifier.name)); - pmmd->psys = psys; - BLI_addtail(&ob->modifiers, pmmd); - BKE_modifier_unique_name(&ob->modifiers, (ModifierData *)pmmd); + pfmd = (ParticleSystemModifierData *)BKE_modifier_new(eModifierType_ParticleSystem); + BLI_strncpy(pfmd->modifier.name, psys_name, sizeof(pfmd->modifier.name)); + pfmd->psys = psys; + BLI_addtail(&ob->modifiers, pfmd); + BKE_modifier_unique_name(&ob->modifiers, (ModifierData *)pfmd); } void BKE_fluid_particle_system_destroy(struct Object *ob, const int particle_type) { - ParticleSystemModifierData *pmmd; + ParticleSystemModifierData *pfmd; ParticleSystem *psys, *next_psys; for (psys = ob->particlesystem.first; psys; psys = next_psys) { next_psys = psys->next; if (psys->part->type == particle_type) { /* clear modifier */ - pmmd = psys_get_modifier(ob, psys); - BLI_remlink(&ob->modifiers, pmmd); - BKE_modifier_free((ModifierData *)pmmd); + pfmd = psys_get_modifier(ob, psys); + BLI_remlink(&ob->modifiers, pfmd); + BKE_modifier_free((ModifierData *)pfmd); /* clear particle system */ BLI_remlink(&ob->particlesystem, psys); @@ -4667,618 +4667,618 @@ void BKE_fluid_effector_type_set(Object *UNUSED(object), FluidEffectorSettings * * Use for versioning, even when fluids are disabled. * \{ */ -static void BKE_fluid_modifier_freeDomain(FluidModifierData *mmd) +static void BKE_fluid_modifier_freeDomain(FluidModifierData *fmd) { - if (mmd->domain) { - if (mmd->domain->fluid) { + if (fmd->domain) { + if (fmd->domain->fluid) { #ifdef WITH_FLUID - manta_free(mmd->domain->fluid); + manta_free(fmd->domain->fluid); #endif } - if (mmd->domain->fluid_mutex) { - BLI_rw_mutex_free(mmd->domain->fluid_mutex); + if (fmd->domain->fluid_mutex) { + BLI_rw_mutex_free(fmd->domain->fluid_mutex); } - if (mmd->domain->effector_weights) { - MEM_freeN(mmd->domain->effector_weights); + if (fmd->domain->effector_weights) { + MEM_freeN(fmd->domain->effector_weights); } - mmd->domain->effector_weights = NULL; + fmd->domain->effector_weights = NULL; - if (!(mmd->modifier.flag & eModifierFlag_SharedCaches)) { - BKE_ptcache_free_list(&(mmd->domain->ptcaches[0])); - mmd->domain->point_cache[0] = NULL; + if (!(fmd->modifier.flag & eModifierFlag_SharedCaches)) { + BKE_ptcache_free_list(&(fmd->domain->ptcaches[0])); + fmd->domain->point_cache[0] = NULL; } - if (mmd->domain->mesh_velocities) { - MEM_freeN(mmd->domain->mesh_velocities); + if (fmd->domain->mesh_velocities) { + MEM_freeN(fmd->domain->mesh_velocities); } - mmd->domain->mesh_velocities = NULL; + fmd->domain->mesh_velocities = NULL; - if (mmd->domain->coba) { - MEM_freeN(mmd->domain->coba); + if (fmd->domain->coba) { + MEM_freeN(fmd->domain->coba); } - MEM_freeN(mmd->domain); - mmd->domain = NULL; + MEM_freeN(fmd->domain); + fmd->domain = NULL; } } -static void BKE_fluid_modifier_freeFlow(FluidModifierData *mmd) +static void BKE_fluid_modifier_freeFlow(FluidModifierData *fmd) { - if (mmd->flow) { - if (mmd->flow->mesh) { - BKE_id_free(NULL, mmd->flow->mesh); + if (fmd->flow) { + if (fmd->flow->mesh) { + BKE_id_free(NULL, fmd->flow->mesh); } - mmd->flow->mesh = NULL; + fmd->flow->mesh = NULL; - if (mmd->flow->verts_old) { - MEM_freeN(mmd->flow->verts_old); + if (fmd->flow->verts_old) { + MEM_freeN(fmd->flow->verts_old); } - mmd->flow->verts_old = NULL; - mmd->flow->numverts = 0; - mmd->flow->flags &= ~FLUID_FLOW_NEEDS_UPDATE; + fmd->flow->verts_old = NULL; + fmd->flow->numverts = 0; + fmd->flow->flags &= ~FLUID_FLOW_NEEDS_UPDATE; - MEM_freeN(mmd->flow); - mmd->flow = NULL; + MEM_freeN(fmd->flow); + fmd->flow = NULL; } } -static void BKE_fluid_modifier_freeEffector(FluidModifierData *mmd) +static void BKE_fluid_modifier_freeEffector(FluidModifierData *fmd) { - if (mmd->effector) { - if (mmd->effector->mesh) { - BKE_id_free(NULL, mmd->effector->mesh); + if (fmd->effector) { + if (fmd->effector->mesh) { + BKE_id_free(NULL, fmd->effector->mesh); } - mmd->effector->mesh = NULL; + fmd->effector->mesh = NULL; - if (mmd->effector->verts_old) { - MEM_freeN(mmd->effector->verts_old); + if (fmd->effector->verts_old) { + MEM_freeN(fmd->effector->verts_old); } - mmd->effector->verts_old = NULL; - mmd->effector->numverts = 0; - mmd->effector->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; + fmd->effector->verts_old = NULL; + fmd->effector->numverts = 0; + fmd->effector->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; - MEM_freeN(mmd->effector); - mmd->effector = NULL; + MEM_freeN(fmd->effector); + fmd->effector = NULL; } } -static void BKE_fluid_modifier_reset_ex(struct FluidModifierData *mmd, bool need_lock) +static void BKE_fluid_modifier_reset_ex(struct FluidModifierData *fmd, bool need_lock) { - if (!mmd) { + if (!fmd) { return; } - if (mmd->domain) { - if (mmd->domain->fluid) { + if (fmd->domain) { + if (fmd->domain->fluid) { if (need_lock) { - BLI_rw_mutex_lock(mmd->domain->fluid_mutex, THREAD_LOCK_WRITE); + BLI_rw_mutex_lock(fmd->domain->fluid_mutex, THREAD_LOCK_WRITE); } #ifdef WITH_FLUID - manta_free(mmd->domain->fluid); + manta_free(fmd->domain->fluid); #endif - mmd->domain->fluid = NULL; + fmd->domain->fluid = NULL; if (need_lock) { - BLI_rw_mutex_unlock(mmd->domain->fluid_mutex); + BLI_rw_mutex_unlock(fmd->domain->fluid_mutex); } } - mmd->time = -1; - mmd->domain->total_cells = 0; - mmd->domain->active_fields = 0; + fmd->time = -1; + fmd->domain->total_cells = 0; + fmd->domain->active_fields = 0; } - else if (mmd->flow) { - if (mmd->flow->verts_old) { - MEM_freeN(mmd->flow->verts_old); + else if (fmd->flow) { + if (fmd->flow->verts_old) { + MEM_freeN(fmd->flow->verts_old); } - mmd->flow->verts_old = NULL; - mmd->flow->numverts = 0; - mmd->flow->flags &= ~FLUID_FLOW_NEEDS_UPDATE; + fmd->flow->verts_old = NULL; + fmd->flow->numverts = 0; + fmd->flow->flags &= ~FLUID_FLOW_NEEDS_UPDATE; } - else if (mmd->effector) { - if (mmd->effector->verts_old) { - MEM_freeN(mmd->effector->verts_old); + else if (fmd->effector) { + if (fmd->effector->verts_old) { + MEM_freeN(fmd->effector->verts_old); } - mmd->effector->verts_old = NULL; - mmd->effector->numverts = 0; - mmd->effector->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; + fmd->effector->verts_old = NULL; + fmd->effector->numverts = 0; + fmd->effector->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; } } -void BKE_fluid_modifier_reset(struct FluidModifierData *mmd) +void BKE_fluid_modifier_reset(struct FluidModifierData *fmd) { - BKE_fluid_modifier_reset_ex(mmd, true); + BKE_fluid_modifier_reset_ex(fmd, true); } -void BKE_fluid_modifier_free(FluidModifierData *mmd) +void BKE_fluid_modifier_free(FluidModifierData *fmd) { - if (!mmd) { + if (!fmd) { return; } - BKE_fluid_modifier_freeDomain(mmd); - BKE_fluid_modifier_freeFlow(mmd); - BKE_fluid_modifier_freeEffector(mmd); + BKE_fluid_modifier_freeDomain(fmd); + BKE_fluid_modifier_freeFlow(fmd); + BKE_fluid_modifier_freeEffector(fmd); } -void BKE_fluid_modifier_create_type_data(struct FluidModifierData *mmd) +void BKE_fluid_modifier_create_type_data(struct FluidModifierData *fmd) { - if (!mmd) { + if (!fmd) { return; } - if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { - if (mmd->domain) { - BKE_fluid_modifier_freeDomain(mmd); + if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { + if (fmd->domain) { + BKE_fluid_modifier_freeDomain(fmd); } /* domain object data */ - mmd->domain = MEM_callocN(sizeof(FluidDomainSettings), "FluidDomain"); - mmd->domain->mmd = mmd; - mmd->domain->effector_weights = BKE_effector_add_weights(NULL); - mmd->domain->fluid = NULL; - mmd->domain->fluid_mutex = BLI_rw_mutex_alloc(); - mmd->domain->force_group = NULL; - mmd->domain->fluid_group = NULL; - mmd->domain->effector_group = NULL; + fmd->domain = MEM_callocN(sizeof(FluidDomainSettings), "FluidDomain"); + fmd->domain->fmd = fmd; + fmd->domain->effector_weights = BKE_effector_add_weights(NULL); + fmd->domain->fluid = NULL; + fmd->domain->fluid_mutex = BLI_rw_mutex_alloc(); + fmd->domain->force_group = NULL; + fmd->domain->fluid_group = NULL; + fmd->domain->effector_group = NULL; /* adaptive domain options */ - mmd->domain->adapt_margin = 4; - mmd->domain->adapt_res = 0; - mmd->domain->adapt_threshold = 0.02f; + fmd->domain->adapt_margin = 4; + fmd->domain->adapt_res = 0; + fmd->domain->adapt_threshold = 0.02f; /* fluid domain options */ - mmd->domain->maxres = 32; - mmd->domain->solver_res = 3; - mmd->domain->border_collisions = 0; // open domain - mmd->domain->flags = FLUID_DOMAIN_USE_DISSOLVE_LOG | FLUID_DOMAIN_USE_ADAPTIVE_TIME; - mmd->domain->gravity[0] = 0.0f; - mmd->domain->gravity[1] = 0.0f; - mmd->domain->gravity[2] = -9.81f; - mmd->domain->active_fields = 0; - mmd->domain->type = FLUID_DOMAIN_TYPE_GAS; - mmd->domain->boundary_width = 1; + fmd->domain->maxres = 32; + fmd->domain->solver_res = 3; + fmd->domain->border_collisions = 0; // open domain + fmd->domain->flags = FLUID_DOMAIN_USE_DISSOLVE_LOG | FLUID_DOMAIN_USE_ADAPTIVE_TIME; + fmd->domain->gravity[0] = 0.0f; + fmd->domain->gravity[1] = 0.0f; + fmd->domain->gravity[2] = -9.81f; + fmd->domain->active_fields = 0; + fmd->domain->type = FLUID_DOMAIN_TYPE_GAS; + fmd->domain->boundary_width = 1; /* smoke domain options */ - mmd->domain->alpha = 1.0f; - mmd->domain->beta = 1.0f; - mmd->domain->diss_speed = 5; - mmd->domain->vorticity = 0; - mmd->domain->active_color[0] = 0.0f; - mmd->domain->active_color[1] = 0.0f; - mmd->domain->active_color[2] = 0.0f; - mmd->domain->highres_sampling = SM_HRES_FULLSAMPLE; + fmd->domain->alpha = 1.0f; + fmd->domain->beta = 1.0f; + fmd->domain->diss_speed = 5; + fmd->domain->vorticity = 0; + fmd->domain->active_color[0] = 0.0f; + fmd->domain->active_color[1] = 0.0f; + fmd->domain->active_color[2] = 0.0f; + fmd->domain->highres_sampling = SM_HRES_FULLSAMPLE; /* flame options */ - mmd->domain->burning_rate = 0.75f; - mmd->domain->flame_smoke = 1.0f; - mmd->domain->flame_vorticity = 0.5f; - mmd->domain->flame_ignition = 1.5f; - mmd->domain->flame_max_temp = 3.0f; - mmd->domain->flame_smoke_color[0] = 0.7f; - mmd->domain->flame_smoke_color[1] = 0.7f; - mmd->domain->flame_smoke_color[2] = 0.7f; + fmd->domain->burning_rate = 0.75f; + fmd->domain->flame_smoke = 1.0f; + fmd->domain->flame_vorticity = 0.5f; + fmd->domain->flame_ignition = 1.5f; + fmd->domain->flame_max_temp = 3.0f; + fmd->domain->flame_smoke_color[0] = 0.7f; + fmd->domain->flame_smoke_color[1] = 0.7f; + fmd->domain->flame_smoke_color[2] = 0.7f; /* noise options */ - mmd->domain->noise_strength = 1.0; - mmd->domain->noise_pos_scale = 2.0f; - mmd->domain->noise_time_anim = 0.1f; - mmd->domain->noise_scale = 2; - mmd->domain->noise_type = FLUID_NOISE_TYPE_WAVELET; + fmd->domain->noise_strength = 1.0; + fmd->domain->noise_pos_scale = 2.0f; + fmd->domain->noise_time_anim = 0.1f; + fmd->domain->noise_scale = 2; + fmd->domain->noise_type = FLUID_NOISE_TYPE_WAVELET; /* liquid domain options */ - mmd->domain->simulation_method = FLUID_DOMAIN_METHOD_FLIP; - mmd->domain->flip_ratio = 0.97f; - mmd->domain->particle_randomness = 0.1f; - mmd->domain->particle_number = 2; - mmd->domain->particle_minimum = 8; - mmd->domain->particle_maximum = 16; - mmd->domain->particle_radius = 1.0f; - mmd->domain->particle_band_width = 3.0f; - mmd->domain->fractions_threshold = 0.05f; + fmd->domain->simulation_method = FLUID_DOMAIN_METHOD_FLIP; + fmd->domain->flip_ratio = 0.97f; + fmd->domain->particle_randomness = 0.1f; + fmd->domain->particle_number = 2; + fmd->domain->particle_minimum = 8; + fmd->domain->particle_maximum = 16; + fmd->domain->particle_radius = 1.0f; + fmd->domain->particle_band_width = 3.0f; + fmd->domain->fractions_threshold = 0.05f; /* diffusion options*/ - mmd->domain->surface_tension = 0.0f; - mmd->domain->viscosity_base = 1.0f; - mmd->domain->viscosity_exponent = 6.0f; + fmd->domain->surface_tension = 0.0f; + fmd->domain->viscosity_base = 1.0f; + fmd->domain->viscosity_exponent = 6.0f; /* mesh options */ - mmd->domain->mesh_velocities = NULL; - mmd->domain->mesh_concave_upper = 3.5f; - mmd->domain->mesh_concave_lower = 0.4f; - mmd->domain->mesh_particle_radius = 2.0; - mmd->domain->mesh_smoothen_pos = 1; - mmd->domain->mesh_smoothen_neg = 1; - mmd->domain->mesh_scale = 2; - mmd->domain->totvert = 0; - mmd->domain->mesh_generator = FLUID_DOMAIN_MESH_IMPROVED; + fmd->domain->mesh_velocities = NULL; + fmd->domain->mesh_concave_upper = 3.5f; + fmd->domain->mesh_concave_lower = 0.4f; + fmd->domain->mesh_particle_radius = 2.0; + fmd->domain->mesh_smoothen_pos = 1; + fmd->domain->mesh_smoothen_neg = 1; + fmd->domain->mesh_scale = 2; + fmd->domain->totvert = 0; + fmd->domain->mesh_generator = FLUID_DOMAIN_MESH_IMPROVED; /* secondary particle options */ - mmd->domain->sndparticle_tau_min_wc = 2.0; - mmd->domain->sndparticle_tau_max_wc = 8.0; - mmd->domain->sndparticle_tau_min_ta = 5.0; - mmd->domain->sndparticle_tau_max_ta = 20.0; - mmd->domain->sndparticle_tau_min_k = 1.0; - mmd->domain->sndparticle_tau_max_k = 5.0; - mmd->domain->sndparticle_k_wc = 200; - mmd->domain->sndparticle_k_ta = 40; - mmd->domain->sndparticle_k_b = 0.5; - mmd->domain->sndparticle_k_d = 0.6; - mmd->domain->sndparticle_l_min = 10.0; - mmd->domain->sndparticle_l_max = 25.0; - mmd->domain->sndparticle_boundary = SNDPARTICLE_BOUNDARY_DELETE; - mmd->domain->sndparticle_combined_export = SNDPARTICLE_COMBINED_EXPORT_OFF; - mmd->domain->sndparticle_potential_radius = 2; - mmd->domain->sndparticle_update_radius = 2; - mmd->domain->particle_type = 0; - mmd->domain->particle_scale = 1; + fmd->domain->sndparticle_tau_min_wc = 2.0; + fmd->domain->sndparticle_tau_max_wc = 8.0; + fmd->domain->sndparticle_tau_min_ta = 5.0; + fmd->domain->sndparticle_tau_max_ta = 20.0; + fmd->domain->sndparticle_tau_min_k = 1.0; + fmd->domain->sndparticle_tau_max_k = 5.0; + fmd->domain->sndparticle_k_wc = 200; + fmd->domain->sndparticle_k_ta = 40; + fmd->domain->sndparticle_k_b = 0.5; + fmd->domain->sndparticle_k_d = 0.6; + fmd->domain->sndparticle_l_min = 10.0; + fmd->domain->sndparticle_l_max = 25.0; + fmd->domain->sndparticle_boundary = SNDPARTICLE_BOUNDARY_DELETE; + fmd->domain->sndparticle_combined_export = SNDPARTICLE_COMBINED_EXPORT_OFF; + fmd->domain->sndparticle_potential_radius = 2; + fmd->domain->sndparticle_update_radius = 2; + fmd->domain->particle_type = 0; + fmd->domain->particle_scale = 1; /* fluid guide options */ - mmd->domain->guide_parent = NULL; - mmd->domain->guide_alpha = 2.0f; - mmd->domain->guide_beta = 5; - mmd->domain->guide_vel_factor = 2.0f; - mmd->domain->guide_source = FLUID_DOMAIN_GUIDE_SRC_DOMAIN; + fmd->domain->guide_parent = NULL; + fmd->domain->guide_alpha = 2.0f; + fmd->domain->guide_beta = 5; + fmd->domain->guide_vel_factor = 2.0f; + fmd->domain->guide_source = FLUID_DOMAIN_GUIDE_SRC_DOMAIN; /* cache options */ - mmd->domain->cache_frame_start = 1; - mmd->domain->cache_frame_end = 250; - mmd->domain->cache_frame_pause_data = 0; - mmd->domain->cache_frame_pause_noise = 0; - mmd->domain->cache_frame_pause_mesh = 0; - mmd->domain->cache_frame_pause_particles = 0; - mmd->domain->cache_frame_pause_guide = 0; - mmd->domain->cache_frame_offset = 0; - mmd->domain->cache_flag = 0; - mmd->domain->cache_type = FLUID_DOMAIN_CACHE_REPLAY; - mmd->domain->cache_mesh_format = FLUID_DOMAIN_FILE_BIN_OBJECT; + fmd->domain->cache_frame_start = 1; + fmd->domain->cache_frame_end = 250; + fmd->domain->cache_frame_pause_data = 0; + fmd->domain->cache_frame_pause_noise = 0; + fmd->domain->cache_frame_pause_mesh = 0; + fmd->domain->cache_frame_pause_particles = 0; + fmd->domain->cache_frame_pause_guide = 0; + fmd->domain->cache_frame_offset = 0; + fmd->domain->cache_flag = 0; + fmd->domain->cache_type = FLUID_DOMAIN_CACHE_REPLAY; + fmd->domain->cache_mesh_format = FLUID_DOMAIN_FILE_BIN_OBJECT; #ifdef WITH_OPENVDB - mmd->domain->cache_data_format = FLUID_DOMAIN_FILE_OPENVDB; - mmd->domain->cache_particle_format = FLUID_DOMAIN_FILE_OPENVDB; - mmd->domain->cache_noise_format = FLUID_DOMAIN_FILE_OPENVDB; + fmd->domain->cache_data_format = FLUID_DOMAIN_FILE_OPENVDB; + fmd->domain->cache_particle_format = FLUID_DOMAIN_FILE_OPENVDB; + fmd->domain->cache_noise_format = FLUID_DOMAIN_FILE_OPENVDB; #else - mmd->domain->cache_data_format = FLUID_DOMAIN_FILE_UNI; - mmd->domain->cache_particle_format = FLUID_DOMAIN_FILE_UNI; - mmd->domain->cache_noise_format = FLUID_DOMAIN_FILE_UNI; + fmd->domain->cache_data_format = FLUID_DOMAIN_FILE_UNI; + fmd->domain->cache_particle_format = FLUID_DOMAIN_FILE_UNI; + fmd->domain->cache_noise_format = FLUID_DOMAIN_FILE_UNI; #endif char cache_name[64]; BKE_fluid_cache_new_name_for_current_session(sizeof(cache_name), cache_name); BKE_modifier_path_init( - mmd->domain->cache_directory, sizeof(mmd->domain->cache_directory), cache_name); + fmd->domain->cache_directory, sizeof(fmd->domain->cache_directory), cache_name); /* time options */ - mmd->domain->time_scale = 1.0; - mmd->domain->cfl_condition = 4.0; - mmd->domain->timesteps_minimum = 1; - mmd->domain->timesteps_maximum = 4; + fmd->domain->time_scale = 1.0; + fmd->domain->cfl_condition = 4.0; + fmd->domain->timesteps_minimum = 1; + fmd->domain->timesteps_maximum = 4; /* display options */ - mmd->domain->slice_method = FLUID_DOMAIN_SLICE_VIEW_ALIGNED; - mmd->domain->axis_slice_method = AXIS_SLICE_FULL; - mmd->domain->slice_axis = 0; - mmd->domain->interp_method = 0; - mmd->domain->draw_velocity = false; - mmd->domain->slice_per_voxel = 5.0f; - mmd->domain->slice_depth = 0.5f; - mmd->domain->display_thickness = 1.0f; - mmd->domain->coba = NULL; - mmd->domain->vector_scale = 1.0f; - mmd->domain->vector_draw_type = VECTOR_DRAW_NEEDLE; - mmd->domain->use_coba = false; - mmd->domain->coba_field = FLUID_DOMAIN_FIELD_DENSITY; + fmd->domain->slice_method = FLUID_DOMAIN_SLICE_VIEW_ALIGNED; + fmd->domain->axis_slice_method = AXIS_SLICE_FULL; + fmd->domain->slice_axis = 0; + fmd->domain->interp_method = 0; + fmd->domain->draw_velocity = false; + fmd->domain->slice_per_voxel = 5.0f; + fmd->domain->slice_depth = 0.5f; + fmd->domain->display_thickness = 1.0f; + fmd->domain->coba = NULL; + fmd->domain->vector_scale = 1.0f; + fmd->domain->vector_draw_type = VECTOR_DRAW_NEEDLE; + fmd->domain->use_coba = false; + fmd->domain->coba_field = FLUID_DOMAIN_FIELD_DENSITY; /* -- Deprecated / unsed options (below)-- */ /* pointcache options */ - BLI_listbase_clear(&mmd->domain->ptcaches[1]); - mmd->domain->point_cache[0] = BKE_ptcache_add(&(mmd->domain->ptcaches[0])); - mmd->domain->point_cache[0]->flag |= PTCACHE_DISK_CACHE; - mmd->domain->point_cache[0]->step = 1; - mmd->domain->point_cache[1] = NULL; /* Deprecated */ - mmd->domain->cache_comp = SM_CACHE_LIGHT; - mmd->domain->cache_high_comp = SM_CACHE_LIGHT; + BLI_listbase_clear(&fmd->domain->ptcaches[1]); + fmd->domain->point_cache[0] = BKE_ptcache_add(&(fmd->domain->ptcaches[0])); + fmd->domain->point_cache[0]->flag |= PTCACHE_DISK_CACHE; + fmd->domain->point_cache[0]->step = 1; + fmd->domain->point_cache[1] = NULL; /* Deprecated */ + fmd->domain->cache_comp = SM_CACHE_LIGHT; + fmd->domain->cache_high_comp = SM_CACHE_LIGHT; /* OpenVDB cache options */ #ifdef WITH_OPENVDB_BLOSC - mmd->domain->openvdb_compression = VDB_COMPRESSION_BLOSC; + fmd->domain->openvdb_compression = VDB_COMPRESSION_BLOSC; #else - mmd->domain->openvdb_compression = VDB_COMPRESSION_ZIP; + fmd->domain->openvdb_compression = VDB_COMPRESSION_ZIP; #endif - mmd->domain->clipping = 1e-6f; - mmd->domain->openvdb_data_depth = 0; + fmd->domain->clipping = 1e-6f; + fmd->domain->openvdb_data_depth = 0; } - else if (mmd->type & MOD_FLUID_TYPE_FLOW) { - if (mmd->flow) { - BKE_fluid_modifier_freeFlow(mmd); + else if (fmd->type & MOD_FLUID_TYPE_FLOW) { + if (fmd->flow) { + BKE_fluid_modifier_freeFlow(fmd); } /* flow object data */ - mmd->flow = MEM_callocN(sizeof(FluidFlowSettings), "MantaFlow"); - mmd->flow->mmd = mmd; - mmd->flow->mesh = NULL; - mmd->flow->psys = NULL; - mmd->flow->noise_texture = NULL; + fmd->flow = MEM_callocN(sizeof(FluidFlowSettings), "MantaFlow"); + fmd->flow->fmd = fmd; + fmd->flow->mesh = NULL; + fmd->flow->psys = NULL; + fmd->flow->noise_texture = NULL; /* initial velocity */ - mmd->flow->verts_old = NULL; - mmd->flow->numverts = 0; - mmd->flow->vel_multi = 1.0f; - mmd->flow->vel_normal = 0.0f; - mmd->flow->vel_random = 0.0f; - mmd->flow->vel_coord[0] = 0.0f; - mmd->flow->vel_coord[1] = 0.0f; - mmd->flow->vel_coord[2] = 0.0f; + fmd->flow->verts_old = NULL; + fmd->flow->numverts = 0; + fmd->flow->vel_multi = 1.0f; + fmd->flow->vel_normal = 0.0f; + fmd->flow->vel_random = 0.0f; + fmd->flow->vel_coord[0] = 0.0f; + fmd->flow->vel_coord[1] = 0.0f; + fmd->flow->vel_coord[2] = 0.0f; /* emission */ - mmd->flow->density = 1.0f; - mmd->flow->color[0] = 0.7f; - mmd->flow->color[1] = 0.7f; - mmd->flow->color[2] = 0.7f; - mmd->flow->fuel_amount = 1.0f; - mmd->flow->temperature = 1.0f; - mmd->flow->volume_density = 0.0f; - mmd->flow->surface_distance = 1.5f; - mmd->flow->particle_size = 1.0f; - mmd->flow->subframes = 0; + fmd->flow->density = 1.0f; + fmd->flow->color[0] = 0.7f; + fmd->flow->color[1] = 0.7f; + fmd->flow->color[2] = 0.7f; + fmd->flow->fuel_amount = 1.0f; + fmd->flow->temperature = 1.0f; + fmd->flow->volume_density = 0.0f; + fmd->flow->surface_distance = 1.5f; + fmd->flow->particle_size = 1.0f; + fmd->flow->subframes = 0; /* texture control */ - mmd->flow->source = FLUID_FLOW_SOURCE_MESH; - mmd->flow->texture_size = 1.0f; + fmd->flow->source = FLUID_FLOW_SOURCE_MESH; + fmd->flow->texture_size = 1.0f; - mmd->flow->type = FLUID_FLOW_TYPE_SMOKE; - mmd->flow->behavior = FLUID_FLOW_BEHAVIOR_GEOMETRY; - mmd->flow->flags = FLUID_FLOW_ABSOLUTE | FLUID_FLOW_USE_PART_SIZE | FLUID_FLOW_USE_INFLOW; + fmd->flow->type = FLUID_FLOW_TYPE_SMOKE; + fmd->flow->behavior = FLUID_FLOW_BEHAVIOR_GEOMETRY; + fmd->flow->flags = FLUID_FLOW_ABSOLUTE | FLUID_FLOW_USE_PART_SIZE | FLUID_FLOW_USE_INFLOW; } - else if (mmd->type & MOD_FLUID_TYPE_EFFEC) { - if (mmd->effector) { - BKE_fluid_modifier_freeEffector(mmd); + else if (fmd->type & MOD_FLUID_TYPE_EFFEC) { + if (fmd->effector) { + BKE_fluid_modifier_freeEffector(fmd); } /* effector object data */ - mmd->effector = MEM_callocN(sizeof(FluidEffectorSettings), "MantaEffector"); - mmd->effector->mmd = mmd; - mmd->effector->mesh = NULL; - mmd->effector->verts_old = NULL; - mmd->effector->numverts = 0; - mmd->effector->surface_distance = 0.0f; - mmd->effector->type = FLUID_EFFECTOR_TYPE_COLLISION; - mmd->effector->flags = FLUID_EFFECTOR_USE_EFFEC; + fmd->effector = MEM_callocN(sizeof(FluidEffectorSettings), "MantaEffector"); + fmd->effector->fmd = fmd; + fmd->effector->mesh = NULL; + fmd->effector->verts_old = NULL; + fmd->effector->numverts = 0; + fmd->effector->surface_distance = 0.0f; + fmd->effector->type = FLUID_EFFECTOR_TYPE_COLLISION; + fmd->effector->flags = FLUID_EFFECTOR_USE_EFFEC; /* guide options */ - mmd->effector->guide_mode = FLUID_EFFECTOR_GUIDE_OVERRIDE; - mmd->effector->vel_multi = 1.0f; + fmd->effector->guide_mode = FLUID_EFFECTOR_GUIDE_OVERRIDE; + fmd->effector->vel_multi = 1.0f; } } -void BKE_fluid_modifier_copy(const struct FluidModifierData *mmd, - struct FluidModifierData *tmmd, +void BKE_fluid_modifier_copy(const struct FluidModifierData *fmd, + struct FluidModifierData *tfmd, const int flag) { - tmmd->type = mmd->type; - tmmd->time = mmd->time; + tfmd->type = fmd->type; + tfmd->time = fmd->time; - BKE_fluid_modifier_create_type_data(tmmd); + BKE_fluid_modifier_create_type_data(tfmd); - if (tmmd->domain) { - FluidDomainSettings *tmds = tmmd->domain; - FluidDomainSettings *mds = mmd->domain; + if (tfmd->domain) { + FluidDomainSettings *tfds = tfmd->domain; + FluidDomainSettings *fds = fmd->domain; /* domain object data */ - tmds->fluid_group = mds->fluid_group; - tmds->force_group = mds->force_group; - tmds->effector_group = mds->effector_group; - if (tmds->effector_weights) { - MEM_freeN(tmds->effector_weights); + tfds->fluid_group = fds->fluid_group; + tfds->force_group = fds->force_group; + tfds->effector_group = fds->effector_group; + if (tfds->effector_weights) { + MEM_freeN(tfds->effector_weights); } - tmds->effector_weights = MEM_dupallocN(mds->effector_weights); + tfds->effector_weights = MEM_dupallocN(fds->effector_weights); /* adaptive domain options */ - tmds->adapt_margin = mds->adapt_margin; - tmds->adapt_res = mds->adapt_res; - tmds->adapt_threshold = mds->adapt_threshold; + tfds->adapt_margin = fds->adapt_margin; + tfds->adapt_res = fds->adapt_res; + tfds->adapt_threshold = fds->adapt_threshold; /* fluid domain options */ - tmds->maxres = mds->maxres; - tmds->solver_res = mds->solver_res; - tmds->border_collisions = mds->border_collisions; - tmds->flags = mds->flags; - tmds->gravity[0] = mds->gravity[0]; - tmds->gravity[1] = mds->gravity[1]; - tmds->gravity[2] = mds->gravity[2]; - tmds->active_fields = mds->active_fields; - tmds->type = mds->type; - tmds->boundary_width = mds->boundary_width; + tfds->maxres = fds->maxres; + tfds->solver_res = fds->solver_res; + tfds->border_collisions = fds->border_collisions; + tfds->flags = fds->flags; + tfds->gravity[0] = fds->gravity[0]; + tfds->gravity[1] = fds->gravity[1]; + tfds->gravity[2] = fds->gravity[2]; + tfds->active_fields = fds->active_fields; + tfds->type = fds->type; + tfds->boundary_width = fds->boundary_width; /* smoke domain options */ - tmds->alpha = mds->alpha; - tmds->beta = mds->beta; - tmds->diss_speed = mds->diss_speed; - tmds->vorticity = mds->vorticity; - tmds->highres_sampling = mds->highres_sampling; + tfds->alpha = fds->alpha; + tfds->beta = fds->beta; + tfds->diss_speed = fds->diss_speed; + tfds->vorticity = fds->vorticity; + tfds->highres_sampling = fds->highres_sampling; /* flame options */ - tmds->burning_rate = mds->burning_rate; - tmds->flame_smoke = mds->flame_smoke; - tmds->flame_vorticity = mds->flame_vorticity; - tmds->flame_ignition = mds->flame_ignition; - tmds->flame_max_temp = mds->flame_max_temp; - copy_v3_v3(tmds->flame_smoke_color, mds->flame_smoke_color); + tfds->burning_rate = fds->burning_rate; + tfds->flame_smoke = fds->flame_smoke; + tfds->flame_vorticity = fds->flame_vorticity; + tfds->flame_ignition = fds->flame_ignition; + tfds->flame_max_temp = fds->flame_max_temp; + copy_v3_v3(tfds->flame_smoke_color, fds->flame_smoke_color); /* noise options */ - tmds->noise_strength = mds->noise_strength; - tmds->noise_pos_scale = mds->noise_pos_scale; - tmds->noise_time_anim = mds->noise_time_anim; - tmds->noise_scale = mds->noise_scale; - tmds->noise_type = mds->noise_type; + tfds->noise_strength = fds->noise_strength; + tfds->noise_pos_scale = fds->noise_pos_scale; + tfds->noise_time_anim = fds->noise_time_anim; + tfds->noise_scale = fds->noise_scale; + tfds->noise_type = fds->noise_type; /* liquid domain options */ - tmds->flip_ratio = mds->flip_ratio; - tmds->particle_randomness = mds->particle_randomness; - tmds->particle_number = mds->particle_number; - tmds->particle_minimum = mds->particle_minimum; - tmds->particle_maximum = mds->particle_maximum; - tmds->particle_radius = mds->particle_radius; - tmds->particle_band_width = mds->particle_band_width; - tmds->fractions_threshold = mds->fractions_threshold; + tfds->flip_ratio = fds->flip_ratio; + tfds->particle_randomness = fds->particle_randomness; + tfds->particle_number = fds->particle_number; + tfds->particle_minimum = fds->particle_minimum; + tfds->particle_maximum = fds->particle_maximum; + tfds->particle_radius = fds->particle_radius; + tfds->particle_band_width = fds->particle_band_width; + tfds->fractions_threshold = fds->fractions_threshold; /* diffusion options*/ - tmds->surface_tension = mds->surface_tension; - tmds->viscosity_base = mds->viscosity_base; - tmds->viscosity_exponent = mds->viscosity_exponent; + tfds->surface_tension = fds->surface_tension; + tfds->viscosity_base = fds->viscosity_base; + tfds->viscosity_exponent = fds->viscosity_exponent; /* mesh options */ - if (mds->mesh_velocities) { - tmds->mesh_velocities = MEM_dupallocN(mds->mesh_velocities); - } - tmds->mesh_concave_upper = mds->mesh_concave_upper; - tmds->mesh_concave_lower = mds->mesh_concave_lower; - tmds->mesh_particle_radius = mds->mesh_particle_radius; - tmds->mesh_smoothen_pos = mds->mesh_smoothen_pos; - tmds->mesh_smoothen_neg = mds->mesh_smoothen_neg; - tmds->mesh_scale = mds->mesh_scale; - tmds->totvert = mds->totvert; - tmds->mesh_generator = mds->mesh_generator; + if (fds->mesh_velocities) { + tfds->mesh_velocities = MEM_dupallocN(fds->mesh_velocities); + } + tfds->mesh_concave_upper = fds->mesh_concave_upper; + tfds->mesh_concave_lower = fds->mesh_concave_lower; + tfds->mesh_particle_radius = fds->mesh_particle_radius; + tfds->mesh_smoothen_pos = fds->mesh_smoothen_pos; + tfds->mesh_smoothen_neg = fds->mesh_smoothen_neg; + tfds->mesh_scale = fds->mesh_scale; + tfds->totvert = fds->totvert; + tfds->mesh_generator = fds->mesh_generator; /* secondary particle options */ - tmds->sndparticle_k_b = mds->sndparticle_k_b; - tmds->sndparticle_k_d = mds->sndparticle_k_d; - tmds->sndparticle_k_ta = mds->sndparticle_k_ta; - tmds->sndparticle_k_wc = mds->sndparticle_k_wc; - tmds->sndparticle_l_max = mds->sndparticle_l_max; - tmds->sndparticle_l_min = mds->sndparticle_l_min; - tmds->sndparticle_tau_max_k = mds->sndparticle_tau_max_k; - tmds->sndparticle_tau_max_ta = mds->sndparticle_tau_max_ta; - tmds->sndparticle_tau_max_wc = mds->sndparticle_tau_max_wc; - tmds->sndparticle_tau_min_k = mds->sndparticle_tau_min_k; - tmds->sndparticle_tau_min_ta = mds->sndparticle_tau_min_ta; - tmds->sndparticle_tau_min_wc = mds->sndparticle_tau_min_wc; - tmds->sndparticle_boundary = mds->sndparticle_boundary; - tmds->sndparticle_combined_export = mds->sndparticle_combined_export; - tmds->sndparticle_potential_radius = mds->sndparticle_potential_radius; - tmds->sndparticle_update_radius = mds->sndparticle_update_radius; - tmds->particle_type = mds->particle_type; - tmds->particle_scale = mds->particle_scale; + tfds->sndparticle_k_b = fds->sndparticle_k_b; + tfds->sndparticle_k_d = fds->sndparticle_k_d; + tfds->sndparticle_k_ta = fds->sndparticle_k_ta; + tfds->sndparticle_k_wc = fds->sndparticle_k_wc; + tfds->sndparticle_l_max = fds->sndparticle_l_max; + tfds->sndparticle_l_min = fds->sndparticle_l_min; + tfds->sndparticle_tau_max_k = fds->sndparticle_tau_max_k; + tfds->sndparticle_tau_max_ta = fds->sndparticle_tau_max_ta; + tfds->sndparticle_tau_max_wc = fds->sndparticle_tau_max_wc; + tfds->sndparticle_tau_min_k = fds->sndparticle_tau_min_k; + tfds->sndparticle_tau_min_ta = fds->sndparticle_tau_min_ta; + tfds->sndparticle_tau_min_wc = fds->sndparticle_tau_min_wc; + tfds->sndparticle_boundary = fds->sndparticle_boundary; + tfds->sndparticle_combined_export = fds->sndparticle_combined_export; + tfds->sndparticle_potential_radius = fds->sndparticle_potential_radius; + tfds->sndparticle_update_radius = fds->sndparticle_update_radius; + tfds->particle_type = fds->particle_type; + tfds->particle_scale = fds->particle_scale; /* fluid guide options */ - tmds->guide_parent = mds->guide_parent; - tmds->guide_alpha = mds->guide_alpha; - tmds->guide_beta = mds->guide_beta; - tmds->guide_vel_factor = mds->guide_vel_factor; - copy_v3_v3_int(tmds->guide_res, mds->guide_res); - tmds->guide_source = mds->guide_source; + tfds->guide_parent = fds->guide_parent; + tfds->guide_alpha = fds->guide_alpha; + tfds->guide_beta = fds->guide_beta; + tfds->guide_vel_factor = fds->guide_vel_factor; + copy_v3_v3_int(tfds->guide_res, fds->guide_res); + tfds->guide_source = fds->guide_source; /* cache options */ - tmds->cache_frame_start = mds->cache_frame_start; - tmds->cache_frame_end = mds->cache_frame_end; - tmds->cache_frame_pause_data = mds->cache_frame_pause_data; - tmds->cache_frame_pause_noise = mds->cache_frame_pause_noise; - tmds->cache_frame_pause_mesh = mds->cache_frame_pause_mesh; - tmds->cache_frame_pause_particles = mds->cache_frame_pause_particles; - tmds->cache_frame_pause_guide = mds->cache_frame_pause_guide; - tmds->cache_frame_offset = mds->cache_frame_offset; - tmds->cache_flag = mds->cache_flag; - tmds->cache_type = mds->cache_type; - tmds->cache_mesh_format = mds->cache_mesh_format; - tmds->cache_data_format = mds->cache_data_format; - tmds->cache_particle_format = mds->cache_particle_format; - tmds->cache_noise_format = mds->cache_noise_format; - BLI_strncpy(tmds->cache_directory, mds->cache_directory, sizeof(tmds->cache_directory)); + tfds->cache_frame_start = fds->cache_frame_start; + tfds->cache_frame_end = fds->cache_frame_end; + tfds->cache_frame_pause_data = fds->cache_frame_pause_data; + tfds->cache_frame_pause_noise = fds->cache_frame_pause_noise; + tfds->cache_frame_pause_mesh = fds->cache_frame_pause_mesh; + tfds->cache_frame_pause_particles = fds->cache_frame_pause_particles; + tfds->cache_frame_pause_guide = fds->cache_frame_pause_guide; + tfds->cache_frame_offset = fds->cache_frame_offset; + tfds->cache_flag = fds->cache_flag; + tfds->cache_type = fds->cache_type; + tfds->cache_mesh_format = fds->cache_mesh_format; + tfds->cache_data_format = fds->cache_data_format; + tfds->cache_particle_format = fds->cache_particle_format; + tfds->cache_noise_format = fds->cache_noise_format; + BLI_strncpy(tfds->cache_directory, fds->cache_directory, sizeof(tfds->cache_directory)); /* time options */ - tmds->time_scale = mds->time_scale; - tmds->cfl_condition = mds->cfl_condition; - tmds->timesteps_minimum = mds->timesteps_minimum; - tmds->timesteps_maximum = mds->timesteps_maximum; + tfds->time_scale = fds->time_scale; + tfds->cfl_condition = fds->cfl_condition; + tfds->timesteps_minimum = fds->timesteps_minimum; + tfds->timesteps_maximum = fds->timesteps_maximum; /* display options */ - tmds->slice_method = mds->slice_method; - tmds->axis_slice_method = mds->axis_slice_method; - tmds->slice_axis = mds->slice_axis; - tmds->interp_method = mds->interp_method; - tmds->draw_velocity = mds->draw_velocity; - tmds->slice_per_voxel = mds->slice_per_voxel; - tmds->slice_depth = mds->slice_depth; - tmds->display_thickness = mds->display_thickness; - if (mds->coba) { - tmds->coba = MEM_dupallocN(mds->coba); - } - tmds->vector_scale = mds->vector_scale; - tmds->vector_draw_type = mds->vector_draw_type; - tmds->use_coba = mds->use_coba; - tmds->coba_field = mds->coba_field; + tfds->slice_method = fds->slice_method; + tfds->axis_slice_method = fds->axis_slice_method; + tfds->slice_axis = fds->slice_axis; + tfds->interp_method = fds->interp_method; + tfds->draw_velocity = fds->draw_velocity; + tfds->slice_per_voxel = fds->slice_per_voxel; + tfds->slice_depth = fds->slice_depth; + tfds->display_thickness = fds->display_thickness; + if (fds->coba) { + tfds->coba = MEM_dupallocN(fds->coba); + } + tfds->vector_scale = fds->vector_scale; + tfds->vector_draw_type = fds->vector_draw_type; + tfds->use_coba = fds->use_coba; + tfds->coba_field = fds->coba_field; /* -- Deprecated / unsed options (below)-- */ /* pointcache options */ - BKE_ptcache_free_list(&(tmds->ptcaches[0])); + BKE_ptcache_free_list(&(tfds->ptcaches[0])); if (flag & LIB_ID_CREATE_NO_MAIN) { /* Share the cache with the original object's modifier. */ - tmmd->modifier.flag |= eModifierFlag_SharedCaches; - tmds->point_cache[0] = mds->point_cache[0]; - tmds->ptcaches[0] = mds->ptcaches[0]; + tfmd->modifier.flag |= eModifierFlag_SharedCaches; + tfds->point_cache[0] = fds->point_cache[0]; + tfds->ptcaches[0] = fds->ptcaches[0]; } else { - tmds->point_cache[0] = BKE_ptcache_copy_list( - &(tmds->ptcaches[0]), &(mds->ptcaches[0]), flag); + tfds->point_cache[0] = BKE_ptcache_copy_list( + &(tfds->ptcaches[0]), &(fds->ptcaches[0]), flag); } /* OpenVDB cache options */ - tmds->openvdb_compression = mds->openvdb_compression; - tmds->clipping = mds->clipping; - tmds->openvdb_data_depth = mds->openvdb_data_depth; + tfds->openvdb_compression = fds->openvdb_compression; + tfds->clipping = fds->clipping; + tfds->openvdb_data_depth = fds->openvdb_data_depth; } - else if (tmmd->flow) { - FluidFlowSettings *tmfs = tmmd->flow; - FluidFlowSettings *mfs = mmd->flow; + else if (tfmd->flow) { + FluidFlowSettings *tffs = tfmd->flow; + FluidFlowSettings *ffs = fmd->flow; - tmfs->psys = mfs->psys; - tmfs->noise_texture = mfs->noise_texture; + tffs->psys = ffs->psys; + tffs->noise_texture = ffs->noise_texture; /* initial velocity */ - tmfs->vel_multi = mfs->vel_multi; - tmfs->vel_normal = mfs->vel_normal; - tmfs->vel_random = mfs->vel_random; - tmfs->vel_coord[0] = mfs->vel_coord[0]; - tmfs->vel_coord[1] = mfs->vel_coord[1]; - tmfs->vel_coord[2] = mfs->vel_coord[2]; + tffs->vel_multi = ffs->vel_multi; + tffs->vel_normal = ffs->vel_normal; + tffs->vel_random = ffs->vel_random; + tffs->vel_coord[0] = ffs->vel_coord[0]; + tffs->vel_coord[1] = ffs->vel_coord[1]; + tffs->vel_coord[2] = ffs->vel_coord[2]; /* emission */ - tmfs->density = mfs->density; - copy_v3_v3(tmfs->color, mfs->color); - tmfs->fuel_amount = mfs->fuel_amount; - tmfs->temperature = mfs->temperature; - tmfs->volume_density = mfs->volume_density; - tmfs->surface_distance = mfs->surface_distance; - tmfs->particle_size = mfs->particle_size; - tmfs->subframes = mfs->subframes; + tffs->density = ffs->density; + copy_v3_v3(tffs->color, ffs->color); + tffs->fuel_amount = ffs->fuel_amount; + tffs->temperature = ffs->temperature; + tffs->volume_density = ffs->volume_density; + tffs->surface_distance = ffs->surface_distance; + tffs->particle_size = ffs->particle_size; + tffs->subframes = ffs->subframes; /* texture control */ - tmfs->texture_size = mfs->texture_size; - tmfs->texture_offset = mfs->texture_offset; - BLI_strncpy(tmfs->uvlayer_name, mfs->uvlayer_name, sizeof(tmfs->uvlayer_name)); - tmfs->vgroup_density = mfs->vgroup_density; - - tmfs->type = mfs->type; - tmfs->behavior = mfs->behavior; - tmfs->source = mfs->source; - tmfs->texture_type = mfs->texture_type; - tmfs->flags = mfs->flags; - } - else if (tmmd->effector) { - FluidEffectorSettings *tmes = tmmd->effector; - FluidEffectorSettings *mes = mmd->effector; - - tmes->surface_distance = mes->surface_distance; - tmes->type = mes->type; - tmes->flags = mes->flags; - tmes->subframes = mes->subframes; + tffs->texture_size = ffs->texture_size; + tffs->texture_offset = ffs->texture_offset; + BLI_strncpy(tffs->uvlayer_name, ffs->uvlayer_name, sizeof(tffs->uvlayer_name)); + tffs->vgroup_density = ffs->vgroup_density; + + tffs->type = ffs->type; + tffs->behavior = ffs->behavior; + tffs->source = ffs->source; + tffs->texture_type = ffs->texture_type; + tffs->flags = ffs->flags; + } + else if (tfmd->effector) { + FluidEffectorSettings *tfes = tfmd->effector; + FluidEffectorSettings *fes = fmd->effector; + + tfes->surface_distance = fes->surface_distance; + tfes->type = fes->type; + tfes->flags = fes->flags; + tfes->subframes = fes->subframes; /* guide options */ - tmes->guide_mode = mes->guide_mode; - tmes->vel_multi = mes->vel_multi; + tfes->guide_mode = fes->guide_mode; + tfes->vel_multi = fes->vel_multi; } } diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index 5dc7a06cd6b..6331f87f09f 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -1532,12 +1532,12 @@ void BKE_object_copy_particlesystems(Object *ob_dst, const Object *ob_src, const } } else if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - if (mmd->type == MOD_FLUID_TYPE_FLOW) { - if (mmd->flow) { - if (mmd->flow->psys == psys) { - mmd->flow->psys = npsys; + if (fmd->type == MOD_FLUID_TYPE_FLOW) { + if (fmd->flow) { + if (fmd->flow->psys == psys) { + fmd->flow->psys = npsys; } } } @@ -4592,9 +4592,9 @@ bool BKE_object_modifier_update_subframe(Depsgraph *depsgraph, } } else if (type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - if (mmd && (mmd->type & MOD_FLUID_TYPE_DOMAIN) != 0) { + if (fmd && (fmd->type & MOD_FLUID_TYPE_DOMAIN) != 0) { return true; } } diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index b589db33edb..942f3e0ca2b 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -3668,43 +3668,43 @@ void object_remove_particle_system(Main *bmain, Scene *UNUSED(scene), Object *ob /* Clear particle system in fluid modifier. */ if ((md = BKE_modifiers_findby_type(ob, eModifierType_Fluid))) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; /* Clear particle system pointer in flow settings. */ - if ((mmd->type == MOD_FLUID_TYPE_FLOW) && mmd->flow && mmd->flow->psys) { - if (mmd->flow->psys == psys) { - mmd->flow->psys = NULL; + if ((fmd->type == MOD_FLUID_TYPE_FLOW) && fmd->flow && fmd->flow->psys) { + if (fmd->flow->psys == psys) { + fmd->flow->psys = NULL; } } /* Clear particle flag in domain settings when removing particle system manually. */ - if (mmd->type == MOD_FLUID_TYPE_DOMAIN) { + if (fmd->type == MOD_FLUID_TYPE_DOMAIN) { if (psys->part->type == PART_FLUID_FLIP) { - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; } if (psys->part->type == PART_FLUID_SPRAY || psys->part->type == PART_FLUID_SPRAYFOAM || psys->part->type == PART_FLUID_SPRAYBUBBLE || psys->part->type == PART_FLUID_SPRAYFOAMBUBBLE) { - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_SPRAY; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_SPRAY; } if (psys->part->type == PART_FLUID_FOAM || psys->part->type == PART_FLUID_SPRAYFOAM || psys->part->type == PART_FLUID_FOAMBUBBLE || psys->part->type == PART_FLUID_SPRAYFOAMBUBBLE) { - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FOAM; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FOAM; } if (psys->part->type == PART_FLUID_BUBBLE || psys->part->type == PART_FLUID_FOAMBUBBLE || psys->part->type == PART_FLUID_SPRAYBUBBLE || psys->part->type == PART_FLUID_SPRAYFOAMBUBBLE) { - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_BUBBLE; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_BUBBLE; } if (psys->part->type == PART_FLUID_TRACER) { - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_TRACER; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_TRACER; } /* Disable combined export if combined particle system was deleted. */ if (psys->part->type == PART_FLUID_SPRAYFOAM || psys->part->type == PART_FLUID_SPRAYBUBBLE || psys->part->type == PART_FLUID_FOAMBUBBLE || psys->part->type == PART_FLUID_SPRAYFOAMBUBBLE) { - mmd->domain->sndparticle_combined_export = SNDPARTICLE_COMBINED_EXPORT_OFF; + fmd->domain->sndparticle_combined_export = SNDPARTICLE_COMBINED_EXPORT_OFF; } } } diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index d09f9a8eb09..4dc4aea04a7 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -4188,11 +4188,11 @@ static void particles_fluid_step(ParticleSimulationData *sim, #else { Object *ob = sim->ob; - FluidModifierData *mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, + FluidModifierData *fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); - if (mmd && mmd->domain && mmd->domain->fluid) { - FluidDomainSettings *mds = mmd->domain; + if (fmd && fmd->domain && fmd->domain->fluid) { + FluidDomainSettings *fds = fmd->domain; ParticleSettings *part = psys->part; ParticleData *pa = NULL; @@ -4210,15 +4210,15 @@ static void particles_fluid_step(ParticleSimulationData *sim, /* Sanity check: parts also enabled in fluid domain? */ if ((particles_has_flip(part->type) && - (mds->particle_type & FLUID_DOMAIN_PARTICLE_FLIP) == 0) || + (fds->particle_type & FLUID_DOMAIN_PARTICLE_FLIP) == 0) || (particles_has_spray(part->type) && - (mds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) == 0) || + (fds->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) == 0) || (particles_has_bubble(part->type) && - (mds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) == 0) || + (fds->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) == 0) || (particles_has_foam(part->type) && - (mds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) == 0) || + (fds->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) == 0) || (particles_has_tracer(part->type) && - (mds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER) == 0)) { + (fds->particle_type & FLUID_DOMAIN_PARTICLE_TRACER) == 0)) { BLI_snprintf(debugStrBuffer, sizeof(debugStrBuffer), "particles_fluid_step::error - found particle system that is not enabled in " @@ -4228,15 +4228,15 @@ static void particles_fluid_step(ParticleSimulationData *sim, /* Count particle amount. tottypepart is only important for snd particles. */ if (part->type == PART_FLUID_FLIP) { - tottypepart = totpart = manta_liquid_get_num_flip_particles(mds->fluid); + tottypepart = totpart = manta_liquid_get_num_flip_particles(fds->fluid); } if (particles_has_spray(part->type) || particles_has_bubble(part->type) || particles_has_foam(part->type) || particles_has_tracer(part->type)) { - totpart = manta_liquid_get_num_snd_particles(mds->fluid); + totpart = manta_liquid_get_num_snd_particles(fds->fluid); /* tottypepart is the amount of particles of a snd particle type. */ for (p = 0; p < totpart; p++) { - flagActivePart = manta_liquid_get_snd_particle_flag_at(mds->fluid, p); + flagActivePart = manta_liquid_get_snd_particle_flag_at(fds->fluid, p); if (particles_has_spray(part->type) && (flagActivePart & PARTICLE_TYPE_SPRAY)) { tottypepart++; } @@ -4281,39 +4281,39 @@ static void particles_fluid_step(ParticleSimulationData *sim, /* flag, res, upres, pos, vel for FLIP and snd particles have different getters. */ if (part->type == PART_FLUID_FLIP) { - flagActivePart = manta_liquid_get_flip_particle_flag_at(mds->fluid, p); + flagActivePart = manta_liquid_get_flip_particle_flag_at(fds->fluid, p); - resX = (float)manta_get_res_x(mds->fluid); - resY = (float)manta_get_res_y(mds->fluid); - resZ = (float)manta_get_res_z(mds->fluid); + resX = (float)manta_get_res_x(fds->fluid); + resY = (float)manta_get_res_y(fds->fluid); + resZ = (float)manta_get_res_z(fds->fluid); upres = 1; - posX = manta_liquid_get_flip_particle_position_x_at(mds->fluid, p); - posY = manta_liquid_get_flip_particle_position_y_at(mds->fluid, p); - posZ = manta_liquid_get_flip_particle_position_z_at(mds->fluid, p); + posX = manta_liquid_get_flip_particle_position_x_at(fds->fluid, p); + posY = manta_liquid_get_flip_particle_position_y_at(fds->fluid, p); + posZ = manta_liquid_get_flip_particle_position_z_at(fds->fluid, p); - velX = manta_liquid_get_flip_particle_velocity_x_at(mds->fluid, p); - velY = manta_liquid_get_flip_particle_velocity_y_at(mds->fluid, p); - velZ = manta_liquid_get_flip_particle_velocity_z_at(mds->fluid, p); + velX = manta_liquid_get_flip_particle_velocity_x_at(fds->fluid, p); + velY = manta_liquid_get_flip_particle_velocity_y_at(fds->fluid, p); + velZ = manta_liquid_get_flip_particle_velocity_z_at(fds->fluid, p); } else if (particles_has_spray(part->type) || particles_has_bubble(part->type) || particles_has_foam(part->type) || particles_has_tracer(part->type)) { - flagActivePart = manta_liquid_get_snd_particle_flag_at(mds->fluid, p); + flagActivePart = manta_liquid_get_snd_particle_flag_at(fds->fluid, p); - resX = (float)manta_liquid_get_particle_res_x(mds->fluid); - resY = (float)manta_liquid_get_particle_res_y(mds->fluid); - resZ = (float)manta_liquid_get_particle_res_z(mds->fluid); + resX = (float)manta_liquid_get_particle_res_x(fds->fluid); + resY = (float)manta_liquid_get_particle_res_y(fds->fluid); + resZ = (float)manta_liquid_get_particle_res_z(fds->fluid); - upres = manta_liquid_get_particle_upres(mds->fluid); + upres = manta_liquid_get_particle_upres(fds->fluid); - posX = manta_liquid_get_snd_particle_position_x_at(mds->fluid, p); - posY = manta_liquid_get_snd_particle_position_y_at(mds->fluid, p); - posZ = manta_liquid_get_snd_particle_position_z_at(mds->fluid, p); + posX = manta_liquid_get_snd_particle_position_x_at(fds->fluid, p); + posY = manta_liquid_get_snd_particle_position_y_at(fds->fluid, p); + posZ = manta_liquid_get_snd_particle_position_z_at(fds->fluid, p); - velX = manta_liquid_get_snd_particle_velocity_x_at(mds->fluid, p); - velY = manta_liquid_get_snd_particle_velocity_y_at(mds->fluid, p); - velZ = manta_liquid_get_snd_particle_velocity_z_at(mds->fluid, p); + velX = manta_liquid_get_snd_particle_velocity_x_at(fds->fluid, p); + velY = manta_liquid_get_snd_particle_velocity_y_at(fds->fluid, p); + velZ = manta_liquid_get_snd_particle_velocity_z_at(fds->fluid, p); } else { BLI_snprintf(debugStrBuffer, @@ -4362,10 +4362,10 @@ static void particles_fluid_step(ParticleSimulationData *sim, } /* Get size (dimension) but considering scaling */ - copy_v3_v3(cell_size_scaled, mds->cell_size); + copy_v3_v3(cell_size_scaled, fds->cell_size); mul_v3_v3(cell_size_scaled, ob->scale); - madd_v3fl_v3fl_v3fl_v3i(min, mds->p0, cell_size_scaled, mds->res_min); - madd_v3fl_v3fl_v3fl_v3i(max, mds->p0, cell_size_scaled, mds->res_max); + madd_v3fl_v3fl_v3fl_v3i(min, fds->p0, cell_size_scaled, fds->res_min); + madd_v3fl_v3fl_v3fl_v3i(max, fds->p0, cell_size_scaled, fds->res_max); sub_v3_v3v3(size, max, min); /* Biggest dimension will be used for up-scaling. */ @@ -4379,7 +4379,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, float resDomain[3] = {resX, resY, resZ}; mul_v3_fl(resDomain, 0.5f); sub_v3_v3(pa->state.co, resDomain); - mul_v3_fl(pa->state.co, mds->dx); + mul_v3_fl(pa->state.co, fds->dx); /* Match domain dimension / size. */ float scaleAbs[3] = { @@ -4393,9 +4393,9 @@ static void particles_fluid_step(ParticleSimulationData *sim, /* Add origin offset to particle position. */ zero_v3(tmp); zero_v3(tmp2); - sub_v3_v3v3(tmp2, mds->p1, mds->p0); + sub_v3_v3v3(tmp2, fds->p1, fds->p0); mul_v3_fl(tmp2, 0.5f); - add_v3_v3v3(tmp, tmp, mds->p1); + add_v3_v3v3(tmp, tmp, fds->p1); sub_v3_v3(tmp, tmp2); mul_v3_v3(tmp, ob->scale); add_v3_v3(pa->state.co, tmp); @@ -4407,7 +4407,7 @@ static void particles_fluid_step(ParticleSimulationData *sim, /* Set particle velocity. */ float velParticle[3] = {velX, velY, velZ}; copy_v3_v3(pa->state.vel, velParticle); - mul_v3_fl(pa->state.vel, mds->dx); + mul_v3_fl(pa->state.vel, fds->dx); # if 0 /* Debugging: Print particle velocity. */ printf("pa->state.vel[0]: %f, pa->state.vel[1]: %f, pa->state.vel[2]: %f\n", diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index ab392e50053..61308810191 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -627,11 +627,11 @@ static void ptcache_cloth_error(void *cloth_v, const char *message) /* Smoke functions */ static int ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra)) { - FluidModifierData *mmd = (FluidModifierData *)smoke_v; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)smoke_v; + FluidDomainSettings *fds = fmd->domain; - if (mds->fluid) { - return mds->base_res[0] * mds->base_res[1] * mds->base_res[2]; + if (fds->fluid) { + return fds->base_res[0] * fds->base_res[1] * fds->base_res[2]; } else { return 0; @@ -640,28 +640,28 @@ static int ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra)) static void ptcache_smoke_error(void *smoke_v, const char *message) { - FluidModifierData *mmd = (FluidModifierData *)smoke_v; - BKE_modifier_set_error(&mmd->modifier, "%s", message); + FluidModifierData *fmd = (FluidModifierData *)smoke_v; + BKE_modifier_set_error(&fmd->modifier, "%s", message); } # define SMOKE_CACHE_VERSION "1.04" static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) { - FluidModifierData *mmd = (FluidModifierData *)smoke_v; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)smoke_v; + FluidDomainSettings *fds = fmd->domain; int ret = 0; - int fluid_fields = BKE_fluid_get_data_flags(mds); + int fluid_fields = BKE_fluid_get_data_flags(fds); /* version header */ ptcache_file_write(pf, SMOKE_CACHE_VERSION, 4, sizeof(char)); ptcache_file_write(pf, &fluid_fields, 1, sizeof(int)); - ptcache_file_write(pf, &mds->active_fields, 1, sizeof(int)); - ptcache_file_write(pf, &mds->res, 3, sizeof(int)); - ptcache_file_write(pf, &mds->dx, 1, sizeof(float)); + ptcache_file_write(pf, &fds->active_fields, 1, sizeof(int)); + ptcache_file_write(pf, &fds->res, 3, sizeof(int)); + ptcache_file_write(pf, &fds->dx, 1, sizeof(float)); - if (mds->fluid) { - size_t res = mds->res[0] * mds->res[1] * mds->res[2]; + if (fds->fluid) { + size_t res = fds->res[0] * fds->res[1] * fds->res[2]; float dt, dx, *dens, *react, *fuel, *flame, *heat, *heatold, *vx, *vy, *vz, *r, *g, *b; unsigned char *obstacles; unsigned int in_len = sizeof(float) * (unsigned int)res; @@ -669,11 +669,11 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) "pointcache_lzo_buffer"); // int mode = res >= 1000000 ? 2 : 1; int mode = 1; // light - if (mds->cache_comp == SM_CACHE_HEAVY) { + if (fds->cache_comp == SM_CACHE_HEAVY) { mode = 2; // heavy } - smoke_export(mds->fluid, + smoke_export(fds->fluid, &dt, &dx, &dens, @@ -691,7 +691,7 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) &obstacles, NULL); - ptcache_file_compressed_write(pf, (unsigned char *)mds->shadow, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)fds->shadow, in_len, out, mode); ptcache_file_compressed_write(pf, (unsigned char *)dens, in_len, out, mode); if (fluid_fields & FLUID_DOMAIN_ACTIVE_HEAT) { ptcache_file_compressed_write(pf, (unsigned char *)heat, in_len, out, mode); @@ -713,43 +713,43 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) ptcache_file_compressed_write(pf, (unsigned char *)obstacles, (unsigned int)res, out, mode); ptcache_file_write(pf, &dt, 1, sizeof(float)); ptcache_file_write(pf, &dx, 1, sizeof(float)); - ptcache_file_write(pf, &mds->p0, 3, sizeof(float)); - ptcache_file_write(pf, &mds->p1, 3, sizeof(float)); - ptcache_file_write(pf, &mds->dp0, 3, sizeof(float)); - ptcache_file_write(pf, &mds->shift, 3, sizeof(int)); - ptcache_file_write(pf, &mds->obj_shift_f, 3, sizeof(float)); - ptcache_file_write(pf, &mds->obmat, 16, sizeof(float)); - ptcache_file_write(pf, &mds->base_res, 3, sizeof(int)); - ptcache_file_write(pf, &mds->res_min, 3, sizeof(int)); - ptcache_file_write(pf, &mds->res_max, 3, sizeof(int)); - ptcache_file_write(pf, &mds->active_color, 3, sizeof(float)); + ptcache_file_write(pf, &fds->p0, 3, sizeof(float)); + ptcache_file_write(pf, &fds->p1, 3, sizeof(float)); + ptcache_file_write(pf, &fds->dp0, 3, sizeof(float)); + ptcache_file_write(pf, &fds->shift, 3, sizeof(int)); + ptcache_file_write(pf, &fds->obj_shift_f, 3, sizeof(float)); + ptcache_file_write(pf, &fds->obmat, 16, sizeof(float)); + ptcache_file_write(pf, &fds->base_res, 3, sizeof(int)); + ptcache_file_write(pf, &fds->res_min, 3, sizeof(int)); + ptcache_file_write(pf, &fds->res_max, 3, sizeof(int)); + ptcache_file_write(pf, &fds->active_color, 3, sizeof(float)); MEM_freeN(out); ret = 1; } - if (mds->wt) { + if (fds->wt) { int res_big_array[3]; int res_big; - int res = mds->res[0] * mds->res[1] * mds->res[2]; + int res = fds->res[0] * fds->res[1] * fds->res[2]; float *dens, *react, *fuel, *flame, *tcu, *tcv, *tcw, *r, *g, *b; unsigned int in_len = sizeof(float) * (unsigned int)res; unsigned int in_len_big; unsigned char *out; int mode; - smoke_turbulence_get_res(mds->wt, res_big_array); + smoke_turbulence_get_res(fds->wt, res_big_array); res_big = res_big_array[0] * res_big_array[1] * res_big_array[2]; // mode = res_big >= 1000000 ? 2 : 1; mode = 1; // light - if (mds->cache_high_comp == SM_CACHE_HEAVY) { + if (fds->cache_high_comp == SM_CACHE_HEAVY) { mode = 2; // heavy } in_len_big = sizeof(float) * (unsigned int)res_big; - smoke_turbulence_export(mds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); + smoke_turbulence_export(fds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len_big), "pointcache_lzo_buffer"); ptcache_file_compressed_write(pf, (unsigned char *)dens, in_len_big, out, mode); @@ -780,24 +780,24 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) /* read old smoke cache from 2.64 */ static int ptcache_smoke_read_old(PTCacheFile *pf, void *smoke_v) { - FluidModifierData *mmd = (FluidModifierData *)smoke_v; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)smoke_v; + FluidDomainSettings *fds = fmd->domain; - if (mds->fluid) { - const size_t res = mds->res[0] * mds->res[1] * mds->res[2]; + if (fds->fluid) { + const size_t res = fds->res[0] * fds->res[1] * fds->res[2]; const unsigned int out_len = (unsigned int)res * sizeof(float); float dt, dx, *dens, *heat, *heatold, *vx, *vy, *vz; unsigned char *obstacles; float *tmp_array = MEM_callocN(out_len, "Smoke old cache tmp"); - int fluid_fields = BKE_fluid_get_data_flags(mds); + int fluid_fields = BKE_fluid_get_data_flags(fds); /* Part part of the new cache header */ - mds->active_color[0] = 0.7f; - mds->active_color[1] = 0.7f; - mds->active_color[2] = 0.7f; + fds->active_color[0] = 0.7f; + fds->active_color[1] = 0.7f; + fds->active_color[2] = 0.7f; - smoke_export(mds->fluid, + smoke_export(fds->fluid, &dt, &dx, &dens, @@ -815,7 +815,7 @@ static int ptcache_smoke_read_old(PTCacheFile *pf, void *smoke_v) &obstacles, NULL); - ptcache_file_compressed_read(pf, (unsigned char *)mds->shadow, out_len); + ptcache_file_compressed_read(pf, (unsigned char *)fds->shadow, out_len); ptcache_file_compressed_read(pf, (unsigned char *)dens, out_len); ptcache_file_compressed_read(pf, (unsigned char *)tmp_array, out_len); @@ -839,19 +839,19 @@ static int ptcache_smoke_read_old(PTCacheFile *pf, void *smoke_v) MEM_freeN(tmp_array); - if (pf->data_types & (1 << BPHYS_DATA_SMOKE_HIGH) && mds->wt) { + if (pf->data_types & (1 << BPHYS_DATA_SMOKE_HIGH) && fds->wt) { int res_big, res_big_array[3]; float *tcu, *tcv, *tcw; unsigned int out_len_big; unsigned char *tmp_array_big; - smoke_turbulence_get_res(mds->wt, res_big_array); + smoke_turbulence_get_res(fds->wt, res_big_array); res_big = res_big_array[0] * res_big_array[1] * res_big_array[2]; out_len_big = sizeof(float) * (unsigned int)res_big; tmp_array_big = MEM_callocN(out_len_big, "Smoke old cache tmp"); smoke_turbulence_export( - mds->wt, &dens, NULL, NULL, NULL, NULL, NULL, NULL, &tcu, &tcv, &tcw); + fds->wt, &dens, NULL, NULL, NULL, NULL, NULL, NULL, &tcu, &tcv, &tcw); ptcache_file_compressed_read(pf, (unsigned char *)dens, out_len_big); ptcache_file_compressed_read(pf, (unsigned char *)tmp_array_big, out_len_big); @@ -869,12 +869,12 @@ static int ptcache_smoke_read_old(PTCacheFile *pf, void *smoke_v) static int ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) { - FluidModifierData *mmd = (FluidModifierData *)smoke_v; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)smoke_v; + FluidDomainSettings *fds = fmd->domain; char version[4]; int ch_res[3]; float ch_dx; - int fluid_fields = BKE_fluid_get_data_flags(mds); + int fluid_fields = BKE_fluid_get_data_flags(fds); int cache_fields = 0; int active_fields = 0; int reallocate = 0; @@ -894,8 +894,8 @@ static int ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) ptcache_file_read(pf, &ch_dx, 1, sizeof(float)); /* check if resolution has changed */ - if (mds->res[0] != ch_res[0] || mds->res[1] != ch_res[1] || mds->res[2] != ch_res[2]) { - if (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { + if (fds->res[0] != ch_res[0] || fds->res[1] != ch_res[1] || fds->res[2] != ch_res[2]) { + if (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { reallocate = 1; } else { @@ -903,26 +903,26 @@ static int ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) } } /* check if active fields have changed */ - if (fluid_fields != cache_fields || active_fields != mds->active_fields) { + if (fluid_fields != cache_fields || active_fields != fds->active_fields) { reallocate = 1; } /* reallocate fluid if needed*/ if (reallocate) { - mds->active_fields = active_fields | cache_fields; - BKE_fluid_reallocate_fluid(mds, ch_res, 1); - mds->dx = ch_dx; - copy_v3_v3_int(mds->res, ch_res); - mds->total_cells = ch_res[0] * ch_res[1] * ch_res[2]; + fds->active_fields = active_fields | cache_fields; + BKE_fluid_reallocate_fluid(fds, ch_res, 1); + fds->dx = ch_dx; + copy_v3_v3_int(fds->res, ch_res); + fds->total_cells = ch_res[0] * ch_res[1] * ch_res[2]; } - if (mds->fluid) { - size_t res = mds->res[0] * mds->res[1] * mds->res[2]; + if (fds->fluid) { + size_t res = fds->res[0] * fds->res[1] * fds->res[2]; float dt, dx, *dens, *react, *fuel, *flame, *heat, *heatold, *vx, *vy, *vz, *r, *g, *b; unsigned char *obstacles; unsigned int out_len = (unsigned int)res * sizeof(float); - smoke_export(mds->fluid, + smoke_export(fds->fluid, &dt, &dx, &dens, @@ -940,7 +940,7 @@ static int ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) &obstacles, NULL); - ptcache_file_compressed_read(pf, (unsigned char *)mds->shadow, out_len); + ptcache_file_compressed_read(pf, (unsigned char *)fds->shadow, out_len); ptcache_file_compressed_read(pf, (unsigned char *)dens, out_len); if (cache_fields & FLUID_DOMAIN_ACTIVE_HEAT) { ptcache_file_compressed_read(pf, (unsigned char *)heat, out_len); @@ -962,30 +962,30 @@ static int ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) ptcache_file_compressed_read(pf, (unsigned char *)obstacles, (unsigned int)res); ptcache_file_read(pf, &dt, 1, sizeof(float)); ptcache_file_read(pf, &dx, 1, sizeof(float)); - ptcache_file_read(pf, &mds->p0, 3, sizeof(float)); - ptcache_file_read(pf, &mds->p1, 3, sizeof(float)); - ptcache_file_read(pf, &mds->dp0, 3, sizeof(float)); - ptcache_file_read(pf, &mds->shift, 3, sizeof(int)); - ptcache_file_read(pf, &mds->obj_shift_f, 3, sizeof(float)); - ptcache_file_read(pf, &mds->obmat, 16, sizeof(float)); - ptcache_file_read(pf, &mds->base_res, 3, sizeof(int)); - ptcache_file_read(pf, &mds->res_min, 3, sizeof(int)); - ptcache_file_read(pf, &mds->res_max, 3, sizeof(int)); - ptcache_file_read(pf, &mds->active_color, 3, sizeof(float)); - } - - if (pf->data_types & (1 << BPHYS_DATA_SMOKE_HIGH) && mds->wt) { - int res = mds->res[0] * mds->res[1] * mds->res[2]; + ptcache_file_read(pf, &fds->p0, 3, sizeof(float)); + ptcache_file_read(pf, &fds->p1, 3, sizeof(float)); + ptcache_file_read(pf, &fds->dp0, 3, sizeof(float)); + ptcache_file_read(pf, &fds->shift, 3, sizeof(int)); + ptcache_file_read(pf, &fds->obj_shift_f, 3, sizeof(float)); + ptcache_file_read(pf, &fds->obmat, 16, sizeof(float)); + ptcache_file_read(pf, &fds->base_res, 3, sizeof(int)); + ptcache_file_read(pf, &fds->res_min, 3, sizeof(int)); + ptcache_file_read(pf, &fds->res_max, 3, sizeof(int)); + ptcache_file_read(pf, &fds->active_color, 3, sizeof(float)); + } + + if (pf->data_types & (1 << BPHYS_DATA_SMOKE_HIGH) && fds->wt) { + int res = fds->res[0] * fds->res[1] * fds->res[2]; int res_big, res_big_array[3]; float *dens, *react, *fuel, *flame, *tcu, *tcv, *tcw, *r, *g, *b; unsigned int out_len = sizeof(float) * (unsigned int)res; unsigned int out_len_big; - smoke_turbulence_get_res(mds->wt, res_big_array); + smoke_turbulence_get_res(fds->wt, res_big_array); res_big = res_big_array[0] * res_big_array[1] * res_big_array[2]; out_len_big = sizeof(float) * (unsigned int)res_big; - smoke_turbulence_export(mds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); + smoke_turbulence_export(fds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); ptcache_file_compressed_read(pf, (unsigned char *)dens, out_len_big); if (cache_fields & FLUID_DOMAIN_ACTIVE_FIRE) { @@ -1020,88 +1020,88 @@ static int ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) * with `vs` = voxel size, and `px, py, pz`, * the min position of the domain's bounding box. */ -static void compute_fluid_matrices(FluidDomainSettings *mds) +static void compute_fluid_matrices(FluidDomainSettings *fds) { float bbox_min[3]; - copy_v3_v3(bbox_min, mds->p0); + copy_v3_v3(bbox_min, fds->p0); - if (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { - bbox_min[0] += (mds->cell_size[0] * (float)mds->res_min[0]); - bbox_min[1] += (mds->cell_size[1] * (float)mds->res_min[1]); - bbox_min[2] += (mds->cell_size[2] * (float)mds->res_min[2]); - add_v3_v3(bbox_min, mds->obj_shift_f); + if (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { + bbox_min[0] += (fds->cell_size[0] * (float)fds->res_min[0]); + bbox_min[1] += (fds->cell_size[1] * (float)fds->res_min[1]); + bbox_min[2] += (fds->cell_size[2] * (float)fds->res_min[2]); + add_v3_v3(bbox_min, fds->obj_shift_f); } /* construct low res matrix */ - size_to_mat4(mds->fluidmat, mds->cell_size); - copy_v3_v3(mds->fluidmat[3], bbox_min); + size_to_mat4(fds->fluidmat, fds->cell_size); + copy_v3_v3(fds->fluidmat[3], bbox_min); /* The smoke simulator stores voxels cell-centered, whilst VDB is node * centered, so we offset the matrix by half a voxel to compensate. */ - madd_v3_v3fl(mds->fluidmat[3], mds->cell_size, 0.5f); + madd_v3_v3fl(fds->fluidmat[3], fds->cell_size, 0.5f); - mul_m4_m4m4(mds->fluidmat, mds->obmat, mds->fluidmat); + mul_m4_m4m4(fds->fluidmat, fds->obmat, fds->fluidmat); - if (mds->wt) { + if (fds->wt) { float voxel_size_high[3]; /* construct high res matrix */ - mul_v3_v3fl(voxel_size_high, mds->cell_size, 1.0f / (float)(mds->amplify + 1)); - size_to_mat4(mds->fluidmat_wt, voxel_size_high); - copy_v3_v3(mds->fluidmat_wt[3], bbox_min); + mul_v3_v3fl(voxel_size_high, fds->cell_size, 1.0f / (float)(fds->amplify + 1)); + size_to_mat4(fds->fluidmat_wt, voxel_size_high); + copy_v3_v3(fds->fluidmat_wt[3], bbox_min); /* Same here, add half a voxel to adjust the position of the fluid. */ - madd_v3_v3fl(mds->fluidmat_wt[3], voxel_size_high, 0.5f); + madd_v3_v3fl(fds->fluidmat_wt[3], voxel_size_high, 0.5f); - mul_m4_m4m4(mds->fluidmat_wt, mds->obmat, mds->fluidmat_wt); + mul_m4_m4m4(fds->fluidmat_wt, fds->obmat, fds->fluidmat_wt); } } static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke_v) { - FluidModifierData *mmd = (FluidModifierData *)smoke_v; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)smoke_v; + FluidDomainSettings *fds = fmd->domain; - OpenVDBWriter_set_flags(writer, mds->openvdb_compression, (mds->openvdb_data_depth == 16)); + OpenVDBWriter_set_flags(writer, fds->openvdb_compression, (fds->openvdb_data_depth == 16)); - OpenVDBWriter_add_meta_int(writer, "blender/smoke/active_fields", mds->active_fields); - OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/resolution", mds->res); - OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/min_resolution", mds->res_min); - OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/max_resolution", mds->res_max); - OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/base_resolution", mds->base_res); - OpenVDBWriter_add_meta_v3(writer, "blender/smoke/min_bbox", mds->p0); - OpenVDBWriter_add_meta_v3(writer, "blender/smoke/max_bbox", mds->p1); - OpenVDBWriter_add_meta_v3(writer, "blender/smoke/dp0", mds->dp0); - OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/shift", mds->shift); - OpenVDBWriter_add_meta_v3(writer, "blender/smoke/obj_shift_f", mds->obj_shift_f); - OpenVDBWriter_add_meta_v3(writer, "blender/smoke/active_color", mds->active_color); - OpenVDBWriter_add_meta_mat4(writer, "blender/smoke/obmat", mds->obmat); + OpenVDBWriter_add_meta_int(writer, "blender/smoke/active_fields", fds->active_fields); + OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/resolution", fds->res); + OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/min_resolution", fds->res_min); + OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/max_resolution", fds->res_max); + OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/base_resolution", fds->base_res); + OpenVDBWriter_add_meta_v3(writer, "blender/smoke/min_bbox", fds->p0); + OpenVDBWriter_add_meta_v3(writer, "blender/smoke/max_bbox", fds->p1); + OpenVDBWriter_add_meta_v3(writer, "blender/smoke/dp0", fds->dp0); + OpenVDBWriter_add_meta_v3_int(writer, "blender/smoke/shift", fds->shift); + OpenVDBWriter_add_meta_v3(writer, "blender/smoke/obj_shift_f", fds->obj_shift_f); + OpenVDBWriter_add_meta_v3(writer, "blender/smoke/active_color", fds->active_color); + OpenVDBWriter_add_meta_mat4(writer, "blender/smoke/obmat", fds->obmat); - int fluid_fields = BKE_fluid_get_data_flags(mds); + int fluid_fields = BKE_fluid_get_data_flags(fds); struct OpenVDBFloatGrid *clip_grid = NULL; - compute_fluid_matrices(mds); + compute_fluid_matrices(fds); OpenVDBWriter_add_meta_int(writer, "blender/smoke/fluid_fields", fluid_fields); - if (mds->wt) { + if (fds->wt) { struct OpenVDBFloatGrid *wt_density_grid; float *dens, *react, *fuel, *flame, *tcu, *tcv, *tcw, *r, *g, *b; - smoke_turbulence_export(mds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); + smoke_turbulence_export(fds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); wt_density_grid = OpenVDB_export_grid_fl( - writer, "density", dens, mds->res_wt, mds->fluidmat_wt, mds->clipping, NULL); + writer, "density", dens, fds->res_wt, fds->fluidmat_wt, fds->clipping, NULL); clip_grid = wt_density_grid; if (fluid_fields & FLUID_DOMAIN_ACTIVE_FIRE) { OpenVDB_export_grid_fl( - writer, "flame", flame, mds->res_wt, mds->fluidmat_wt, mds->clipping, wt_density_grid); + writer, "flame", flame, fds->res_wt, fds->fluidmat_wt, fds->clipping, wt_density_grid); OpenVDB_export_grid_fl( - writer, "fuel", fuel, mds->res_wt, mds->fluidmat_wt, mds->clipping, wt_density_grid); + writer, "fuel", fuel, fds->res_wt, fds->fluidmat_wt, fds->clipping, wt_density_grid); OpenVDB_export_grid_fl( - writer, "react", react, mds->res_wt, mds->fluidmat_wt, mds->clipping, wt_density_grid); + writer, "react", react, fds->res_wt, fds->fluidmat_wt, fds->clipping, wt_density_grid); } if (fluid_fields & FLUID_DOMAIN_ACTIVE_COLORS) { @@ -1110,11 +1110,11 @@ static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke r, g, b, - mds->res_wt, - mds->fluidmat_wt, + fds->res_wt, + fds->fluidmat_wt, VEC_INVARIANT, true, - mds->clipping, + fds->clipping, wt_density_grid); } @@ -1123,20 +1123,20 @@ static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke tcu, tcv, tcw, - mds->res, - mds->fluidmat, + fds->res, + fds->fluidmat, VEC_INVARIANT, false, - mds->clipping, + fds->clipping, wt_density_grid); } - if (mds->fluid) { + if (fds->fluid) { struct OpenVDBFloatGrid *density_grid; float dt, dx, *dens, *react, *fuel, *flame, *heat, *heatold, *vx, *vy, *vz, *r, *g, *b; unsigned char *obstacles; - smoke_export(mds->fluid, + smoke_export(fds->fluid, &dt, &dx, &dens, @@ -1157,45 +1157,45 @@ static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke OpenVDBWriter_add_meta_fl(writer, "blender/smoke/dx", dx); OpenVDBWriter_add_meta_fl(writer, "blender/smoke/dt", dt); - const char *name = (!mds->wt) ? "density" : "density_low"; + const char *name = (!fds->wt) ? "density" : "density_low"; density_grid = OpenVDB_export_grid_fl( - writer, name, dens, mds->res, mds->fluidmat, mds->clipping, NULL); - clip_grid = mds->wt ? clip_grid : density_grid; + writer, name, dens, fds->res, fds->fluidmat, fds->clipping, NULL); + clip_grid = fds->wt ? clip_grid : density_grid; OpenVDB_export_grid_fl( - writer, "shadow", mds->shadow, mds->res, mds->fluidmat, mds->clipping, NULL); + writer, "shadow", fds->shadow, fds->res, fds->fluidmat, fds->clipping, NULL); if (fluid_fields & FLUID_DOMAIN_ACTIVE_HEAT) { OpenVDB_export_grid_fl( - writer, "heat", heat, mds->res, mds->fluidmat, mds->clipping, clip_grid); + writer, "heat", heat, fds->res, fds->fluidmat, fds->clipping, clip_grid); OpenVDB_export_grid_fl( - writer, "heat_old", heatold, mds->res, mds->fluidmat, mds->clipping, clip_grid); + writer, "heat_old", heatold, fds->res, fds->fluidmat, fds->clipping, clip_grid); } if (fluid_fields & FLUID_DOMAIN_ACTIVE_FIRE) { - name = (!mds->wt) ? "flame" : "flame_low"; + name = (!fds->wt) ? "flame" : "flame_low"; OpenVDB_export_grid_fl( - writer, name, flame, mds->res, mds->fluidmat, mds->clipping, density_grid); - name = (!mds->wt) ? "fuel" : "fuel_low"; + writer, name, flame, fds->res, fds->fluidmat, fds->clipping, density_grid); + name = (!fds->wt) ? "fuel" : "fuel_low"; OpenVDB_export_grid_fl( - writer, name, fuel, mds->res, mds->fluidmat, mds->clipping, density_grid); - name = (!mds->wt) ? "react" : "react_low"; + writer, name, fuel, fds->res, fds->fluidmat, fds->clipping, density_grid); + name = (!fds->wt) ? "react" : "react_low"; OpenVDB_export_grid_fl( - writer, name, react, mds->res, mds->fluidmat, mds->clipping, density_grid); + writer, name, react, fds->res, fds->fluidmat, fds->clipping, density_grid); } if (fluid_fields & FLUID_DOMAIN_ACTIVE_COLORS) { - name = (!mds->wt) ? "color" : "color_low"; + name = (!fds->wt) ? "color" : "color_low"; OpenVDB_export_grid_vec(writer, name, r, g, b, - mds->res, - mds->fluidmat, + fds->res, + fds->fluidmat, VEC_INVARIANT, true, - mds->clipping, + fds->clipping, density_grid); } @@ -1204,14 +1204,14 @@ static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke vx, vy, vz, - mds->res, - mds->fluidmat, + fds->res, + fds->fluidmat, VEC_CONTRAVARIANT_RELATIVE, false, - mds->clipping, + fds->clipping, clip_grid); OpenVDB_export_grid_ch( - writer, "obstacles", obstacles, mds->res, mds->fluidmat, mds->clipping, NULL); + writer, "obstacles", obstacles, fds->res, fds->fluidmat, fds->clipping, NULL); } return 1; @@ -1219,38 +1219,38 @@ static int ptcache_smoke_openvdb_write(struct OpenVDBWriter *writer, void *smoke static int ptcache_smoke_openvdb_read(struct OpenVDBReader *reader, void *smoke_v) { - FluidModifierData *mmd = (FluidModifierData *)smoke_v; + FluidModifierData *fmd = (FluidModifierData *)smoke_v; - if (!mmd) { + if (!fmd) { return 0; } - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; - int fluid_fields = BKE_fluid_get_data_flags(mds); + int fluid_fields = BKE_fluid_get_data_flags(fds); int active_fields, cache_fields = 0; int cache_res[3]; float cache_dx; bool reallocate = false; - OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/min_resolution", mds->res_min); - OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/max_resolution", mds->res_max); - OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/base_resolution", mds->base_res); - OpenVDBReader_get_meta_v3(reader, "blender/smoke/min_bbox", mds->p0); - OpenVDBReader_get_meta_v3(reader, "blender/smoke/max_bbox", mds->p1); - OpenVDBReader_get_meta_v3(reader, "blender/smoke/dp0", mds->dp0); - OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/shift", mds->shift); - OpenVDBReader_get_meta_v3(reader, "blender/smoke/obj_shift_f", mds->obj_shift_f); - OpenVDBReader_get_meta_v3(reader, "blender/smoke/active_color", mds->active_color); - OpenVDBReader_get_meta_mat4(reader, "blender/smoke/obmat", mds->obmat); + OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/min_resolution", fds->res_min); + OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/max_resolution", fds->res_max); + OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/base_resolution", fds->base_res); + OpenVDBReader_get_meta_v3(reader, "blender/smoke/min_bbox", fds->p0); + OpenVDBReader_get_meta_v3(reader, "blender/smoke/max_bbox", fds->p1); + OpenVDBReader_get_meta_v3(reader, "blender/smoke/dp0", fds->dp0); + OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/shift", fds->shift); + OpenVDBReader_get_meta_v3(reader, "blender/smoke/obj_shift_f", fds->obj_shift_f); + OpenVDBReader_get_meta_v3(reader, "blender/smoke/active_color", fds->active_color); + OpenVDBReader_get_meta_mat4(reader, "blender/smoke/obmat", fds->obmat); OpenVDBReader_get_meta_int(reader, "blender/smoke/fluid_fields", &cache_fields); OpenVDBReader_get_meta_int(reader, "blender/smoke/active_fields", &active_fields); OpenVDBReader_get_meta_fl(reader, "blender/smoke/dx", &cache_dx); OpenVDBReader_get_meta_v3_int(reader, "blender/smoke/resolution", cache_res); /* check if resolution has changed */ - if (mds->res[0] != cache_res[0] || mds->res[1] != cache_res[1] || mds->res[2] != cache_res[2]) { - if (mds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { + if (fds->res[0] != cache_res[0] || fds->res[1] != cache_res[1] || fds->res[2] != cache_res[2]) { + if (fds->flags & FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN) { reallocate = true; } else { @@ -1259,24 +1259,24 @@ static int ptcache_smoke_openvdb_read(struct OpenVDBReader *reader, void *smoke_ } /* check if active fields have changed */ - if ((fluid_fields != cache_fields) || (active_fields != mds->active_fields)) { + if ((fluid_fields != cache_fields) || (active_fields != fds->active_fields)) { reallocate = true; } /* reallocate fluid if needed*/ if (reallocate) { - mds->active_fields = active_fields | cache_fields; - BKE_fluid_reallocate_fluid(mds, cache_dx, cache_res, 1); - mds->dx = cache_dx; - copy_v3_v3_int(mds->res, cache_res); - mds->total_cells = cache_res[0] * cache_res[1] * cache_res[2]; + fds->active_fields = active_fields | cache_fields; + BKE_fluid_reallocate_fluid(fds, cache_dx, cache_res, 1); + fds->dx = cache_dx; + copy_v3_v3_int(fds->res, cache_res); + fds->total_cells = cache_res[0] * cache_res[1] * cache_res[2]; } - if (mds->fluid) { + if (fds->fluid) { float dt, dx, *dens, *react, *fuel, *flame, *heat, *heatold, *vx, *vy, *vz, *r, *g, *b; unsigned char *obstacles; - smoke_export(mds->fluid, + smoke_export(fds->fluid, &dt, &dx, &dens, @@ -1296,52 +1296,52 @@ static int ptcache_smoke_openvdb_read(struct OpenVDBReader *reader, void *smoke_ OpenVDBReader_get_meta_fl(reader, "blender/smoke/dt", &dt); - OpenVDB_import_grid_fl(reader, "shadow", &mds->shadow, mds->res); + OpenVDB_import_grid_fl(reader, "shadow", &fds->shadow, fds->res); - const char *name = (!mds->wt) ? "density" : "density_low"; - OpenVDB_import_grid_fl(reader, name, &dens, mds->res); + const char *name = (!fds->wt) ? "density" : "density_low"; + OpenVDB_import_grid_fl(reader, name, &dens, fds->res); if (cache_fields & FLUID_DOMAIN_ACTIVE_HEAT) { - OpenVDB_import_grid_fl(reader, "heat", &heat, mds->res); - OpenVDB_import_grid_fl(reader, "heat_old", &heatold, mds->res); + OpenVDB_import_grid_fl(reader, "heat", &heat, fds->res); + OpenVDB_import_grid_fl(reader, "heat_old", &heatold, fds->res); } if (cache_fields & FLUID_DOMAIN_ACTIVE_FIRE) { - name = (!mds->wt) ? "flame" : "flame_low"; - OpenVDB_import_grid_fl(reader, name, &flame, mds->res); - name = (!mds->wt) ? "fuel" : "fuel_low"; - OpenVDB_import_grid_fl(reader, name, &fuel, mds->res); - name = (!mds->wt) ? "react" : "react_low"; - OpenVDB_import_grid_fl(reader, name, &react, mds->res); + name = (!fds->wt) ? "flame" : "flame_low"; + OpenVDB_import_grid_fl(reader, name, &flame, fds->res); + name = (!fds->wt) ? "fuel" : "fuel_low"; + OpenVDB_import_grid_fl(reader, name, &fuel, fds->res); + name = (!fds->wt) ? "react" : "react_low"; + OpenVDB_import_grid_fl(reader, name, &react, fds->res); } if (cache_fields & FLUID_DOMAIN_ACTIVE_COLORS) { - name = (!mds->wt) ? "color" : "color_low"; - OpenVDB_import_grid_vec(reader, name, &r, &g, &b, mds->res); + name = (!fds->wt) ? "color" : "color_low"; + OpenVDB_import_grid_vec(reader, name, &r, &g, &b, fds->res); } - OpenVDB_import_grid_vec(reader, "velocity", &vx, &vy, &vz, mds->res); - OpenVDB_import_grid_ch(reader, "obstacles", &obstacles, mds->res); + OpenVDB_import_grid_vec(reader, "velocity", &vx, &vy, &vz, fds->res); + OpenVDB_import_grid_ch(reader, "obstacles", &obstacles, fds->res); } - if (mds->wt) { + if (fds->wt) { float *dens, *react, *fuel, *flame, *tcu, *tcv, *tcw, *r, *g, *b; - smoke_turbulence_export(mds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); + smoke_turbulence_export(fds->wt, &dens, &react, &flame, &fuel, &r, &g, &b, &tcu, &tcv, &tcw); - OpenVDB_import_grid_fl(reader, "density", &dens, mds->res_wt); + OpenVDB_import_grid_fl(reader, "density", &dens, fds->res_wt); if (cache_fields & FLUID_DOMAIN_ACTIVE_FIRE) { - OpenVDB_import_grid_fl(reader, "flame", &flame, mds->res_wt); - OpenVDB_import_grid_fl(reader, "fuel", &fuel, mds->res_wt); - OpenVDB_import_grid_fl(reader, "react", &react, mds->res_wt); + OpenVDB_import_grid_fl(reader, "flame", &flame, fds->res_wt); + OpenVDB_import_grid_fl(reader, "fuel", &fuel, fds->res_wt); + OpenVDB_import_grid_fl(reader, "react", &react, fds->res_wt); } if (cache_fields & FLUID_DOMAIN_ACTIVE_COLORS) { - OpenVDB_import_grid_vec(reader, "color", &r, &g, &b, mds->res_wt); + OpenVDB_import_grid_vec(reader, "color", &r, &g, &b, fds->res_wt); } - OpenVDB_import_grid_vec(reader, "texture coordinates", &tcu, &tcv, &tcw, mds->res); + OpenVDB_import_grid_vec(reader, "texture coordinates", &tcu, &tcv, &tcw, fds->res); } OpenVDBReader_free(reader); @@ -1732,21 +1732,21 @@ void BKE_ptcache_id_from_cloth(PTCacheID *pid, Object *ob, ClothModifierData *cl pid->max_step = 1; pid->file_type = PTCACHE_FILE_PTCACHE; } -void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct FluidModifierData *mmd) +void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct FluidModifierData *fmd) { - FluidDomainSettings *mds = mmd->domain; + FluidDomainSettings *fds = fmd->domain; memset(pid, 0, sizeof(PTCacheID)); pid->owner_id = &ob->id; - pid->calldata = mmd; + pid->calldata = fmd; pid->type = PTCACHE_TYPE_SMOKE_DOMAIN; - pid->stack_index = mds->point_cache[0]->index; + pid->stack_index = fds->point_cache[0]->index; - pid->cache = mds->point_cache[0]; - pid->cache_ptr = &(mds->point_cache[0]); - pid->ptcaches = &(mds->ptcaches[0]); + pid->cache = fds->point_cache[0]; + pid->cache_ptr = &(fds->point_cache[0]); + pid->ptcaches = &(fds->ptcaches[0]); pid->totpoint = pid->totwrite = ptcache_smoke_totpoint; pid->error = ptcache_smoke_error; @@ -1771,16 +1771,16 @@ void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct FluidMo pid->data_types = 0; pid->info_types = 0; - if (mds->fluid) { + if (fds->fluid) { pid->data_types |= (1 << BPHYS_DATA_SMOKE_LOW); - if (mds->flags & FLUID_DOMAIN_USE_NOISE) { + if (fds->flags & FLUID_DOMAIN_USE_NOISE) { pid->data_types |= (1 << BPHYS_DATA_SMOKE_HIGH); } } pid->default_step = 1; pid->max_step = 1; - pid->file_type = mmd->domain->cache_file_format; + pid->file_type = fmd->domain->cache_file_format; } void BKE_ptcache_id_from_dynamicpaint(PTCacheID *pid, Object *ob, DynamicPaintSurface *surface) @@ -2024,8 +2024,8 @@ static bool foreach_object_modifier_ptcache(Object *object, } } else if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { + FluidModifierData *fmd = (FluidModifierData *)md; + if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { BKE_ptcache_id_from_smoke(&pid, object, (FluidModifierData *)md); if (!callback(&pid, callback_user_data)) { return false; @@ -3873,8 +3873,8 @@ int BKE_ptcache_object_reset(Scene *scene, Object *ob, int mode) reset |= BKE_ptcache_id_reset(scene, &pid, mode); } if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { + FluidModifierData *fmd = (FluidModifierData *)md; + if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { BKE_ptcache_id_from_smoke(&pid, ob, (FluidModifierData *)md); reset |= BKE_ptcache_id_reset(scene, &pid, mode); } diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index e4822c4cb7f..1e855228875 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5285,18 +5285,18 @@ static void lib_link_object(BlendLibReader *reader, Object *ob) } { - FluidModifierData *mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, + FluidModifierData *fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); - if (mmd && (mmd->type == MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { + if (fmd && (fmd->type == MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { /* Flag for refreshing the simulation after loading */ - mmd->domain->flags |= FLUID_DOMAIN_FILE_LOAD; + fmd->domain->flags |= FLUID_DOMAIN_FILE_LOAD; } - else if (mmd && (mmd->type == MOD_FLUID_TYPE_FLOW) && mmd->flow) { - mmd->flow->flags &= ~FLUID_FLOW_NEEDS_UPDATE; + else if (fmd && (fmd->type == MOD_FLUID_TYPE_FLOW) && fmd->flow) { + fmd->flow->flags &= ~FLUID_FLOW_NEEDS_UPDATE; } - else if (mmd && (mmd->type == MOD_FLUID_TYPE_EFFEC) && mmd->effector) { - mmd->effector->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; + else if (fmd && (fmd->type == MOD_FLUID_TYPE_EFFEC) && fmd->effector) { + fmd->effector->flags &= ~FLUID_EFFECTOR_NEEDS_UPDATE; } } @@ -5589,42 +5589,42 @@ static void direct_link_modifiers(BlendDataReader *reader, ListBase *lb, Object } else if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - - if (mmd->type == MOD_FLUID_TYPE_DOMAIN) { - mmd->flow = NULL; - mmd->effector = NULL; - BLO_read_data_address(reader, &mmd->domain); - mmd->domain->mmd = mmd; - - mmd->domain->fluid = NULL; - mmd->domain->fluid_mutex = BLI_rw_mutex_alloc(); - mmd->domain->tex_density = NULL; - mmd->domain->tex_color = NULL; - mmd->domain->tex_shadow = NULL; - mmd->domain->tex_flame = NULL; - mmd->domain->tex_flame_coba = NULL; - mmd->domain->tex_coba = NULL; - mmd->domain->tex_field = NULL; - mmd->domain->tex_velocity_x = NULL; - mmd->domain->tex_velocity_y = NULL; - mmd->domain->tex_velocity_z = NULL; - mmd->domain->tex_wt = NULL; - mmd->domain->mesh_velocities = NULL; - BLO_read_data_address(reader, &mmd->domain->coba); - - BLO_read_data_address(reader, &mmd->domain->effector_weights); - if (!mmd->domain->effector_weights) { - mmd->domain->effector_weights = BKE_effector_add_weights(NULL); + FluidModifierData *fmd = (FluidModifierData *)md; + + if (fmd->type == MOD_FLUID_TYPE_DOMAIN) { + fmd->flow = NULL; + fmd->effector = NULL; + BLO_read_data_address(reader, &fmd->domain); + fmd->domain->fmd = fmd; + + fmd->domain->fluid = NULL; + fmd->domain->fluid_mutex = BLI_rw_mutex_alloc(); + fmd->domain->tex_density = NULL; + fmd->domain->tex_color = NULL; + fmd->domain->tex_shadow = NULL; + fmd->domain->tex_flame = NULL; + fmd->domain->tex_flame_coba = NULL; + fmd->domain->tex_coba = NULL; + fmd->domain->tex_field = NULL; + fmd->domain->tex_velocity_x = NULL; + fmd->domain->tex_velocity_y = NULL; + fmd->domain->tex_velocity_z = NULL; + fmd->domain->tex_wt = NULL; + fmd->domain->mesh_velocities = NULL; + BLO_read_data_address(reader, &fmd->domain->coba); + + BLO_read_data_address(reader, &fmd->domain->effector_weights); + if (!fmd->domain->effector_weights) { + fmd->domain->effector_weights = BKE_effector_add_weights(NULL); } direct_link_pointcache_list( - reader, &(mmd->domain->ptcaches[0]), &(mmd->domain->point_cache[0]), 1); + reader, &(fmd->domain->ptcaches[0]), &(fmd->domain->point_cache[0]), 1); /* Manta sim uses only one cache from now on, so store pointer convert */ - if (mmd->domain->ptcaches[1].first || mmd->domain->point_cache[1]) { - if (mmd->domain->point_cache[1]) { - PointCache *cache = BLO_read_get_new_data_address(reader, mmd->domain->point_cache[1]); + if (fmd->domain->ptcaches[1].first || fmd->domain->point_cache[1]) { + if (fmd->domain->point_cache[1]) { + PointCache *cache = BLO_read_get_new_data_address(reader, fmd->domain->point_cache[1]); if (cache->flag & PTCACHE_FAKE_SMOKE) { /* Manta-sim/smoke was already saved in "new format" and this cache is a fake one. */ } @@ -5635,35 +5635,35 @@ static void direct_link_modifiers(BlendDataReader *reader, ListBase *lb, Object } BKE_ptcache_free(cache); } - BLI_listbase_clear(&mmd->domain->ptcaches[1]); - mmd->domain->point_cache[1] = NULL; + BLI_listbase_clear(&fmd->domain->ptcaches[1]); + fmd->domain->point_cache[1] = NULL; } } - else if (mmd->type == MOD_FLUID_TYPE_FLOW) { - mmd->domain = NULL; - mmd->effector = NULL; - BLO_read_data_address(reader, &mmd->flow); - mmd->flow->mmd = mmd; - mmd->flow->mesh = NULL; - mmd->flow->verts_old = NULL; - mmd->flow->numverts = 0; - BLO_read_data_address(reader, &mmd->flow->psys); - } - else if (mmd->type == MOD_FLUID_TYPE_EFFEC) { - mmd->flow = NULL; - mmd->domain = NULL; - BLO_read_data_address(reader, &mmd->effector); - if (mmd->effector) { - mmd->effector->mmd = mmd; - mmd->effector->verts_old = NULL; - mmd->effector->numverts = 0; - mmd->effector->mesh = NULL; + else if (fmd->type == MOD_FLUID_TYPE_FLOW) { + fmd->domain = NULL; + fmd->effector = NULL; + BLO_read_data_address(reader, &fmd->flow); + fmd->flow->fmd = fmd; + fmd->flow->mesh = NULL; + fmd->flow->verts_old = NULL; + fmd->flow->numverts = 0; + BLO_read_data_address(reader, &fmd->flow->psys); + } + else if (fmd->type == MOD_FLUID_TYPE_EFFEC) { + fmd->flow = NULL; + fmd->domain = NULL; + BLO_read_data_address(reader, &fmd->effector); + if (fmd->effector) { + fmd->effector->fmd = fmd; + fmd->effector->verts_old = NULL; + fmd->effector->numverts = 0; + fmd->effector->mesh = NULL; } else { - mmd->type = 0; - mmd->flow = NULL; - mmd->domain = NULL; - mmd->effector = NULL; + fmd->type = 0; + fmd->flow = NULL; + fmd->domain = NULL; + fmd->effector = NULL; } } } diff --git a/source/blender/blenloader/intern/versioning_250.c b/source/blender/blenloader/intern/versioning_250.c index 2c3b047af46..3ed59a0baa1 100644 --- a/source/blender/blenloader/intern/versioning_250.c +++ b/source/blender/blenloader/intern/versioning_250.c @@ -1793,18 +1793,18 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain) for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { - mmd->domain->vorticity = 2.0f; - mmd->domain->time_scale = 1.0f; + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { + fmd->domain->vorticity = 2.0f; + fmd->domain->time_scale = 1.0f; - if (!(mmd->domain->flags & (1 << 4))) { + if (!(fmd->domain->flags & (1 << 4))) { continue; } /* delete old MOD_SMOKE_INITVELOCITY flag */ - mmd->domain->flags &= ~(1 << 4); + fmd->domain->flags &= ~(1 << 4); /* for now just add it to all flow objects in the scene */ { @@ -1813,18 +1813,18 @@ void blo_do_versions_250(FileData *fd, Library *lib, Main *bmain) ModifierData *md2; for (md2 = ob2->modifiers.first; md2; md2 = md2->next) { if (md2->type == eModifierType_Fluid) { - FluidModifierData *mmd2 = (FluidModifierData *)md2; + FluidModifierData *fmd2 = (FluidModifierData *)md2; - if ((mmd2->type & MOD_FLUID_TYPE_FLOW) && mmd2->flow) { - mmd2->flow->flags |= FLUID_FLOW_INITVELOCITY; + if ((fmd2->type & MOD_FLUID_TYPE_FLOW) && fmd2->flow) { + fmd2->flow->flags |= FLUID_FLOW_INITVELOCITY; } } } } } } - else if ((mmd->type & MOD_FLUID_TYPE_FLOW) && mmd->flow) { - mmd->flow->vel_multi = 1.0f; + else if ((fmd->type & MOD_FLUID_TYPE_FLOW) && fmd->flow) { + fmd->flow->vel_multi = 1.0f; } } } diff --git a/source/blender/blenloader/intern/versioning_260.c b/source/blender/blenloader/intern/versioning_260.c index 98e10bef470..b3bf8991c3e 100644 --- a/source/blender/blenloader/intern/versioning_260.c +++ b/source/blender/blenloader/intern/versioning_260.c @@ -1310,11 +1310,11 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *bmain) ModifierData *md; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { - int maxres = max_iii(mmd->domain->res[0], mmd->domain->res[1], mmd->domain->res[2]); - mmd->domain->scale = mmd->domain->dx * maxres; - mmd->domain->dx = 1.0f / mmd->domain->scale; + FluidModifierData *fmd = (FluidModifierData *)md; + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { + int maxres = max_iii(fmd->domain->res[0], fmd->domain->res[1], fmd->domain->res[2]); + fmd->domain->scale = fmd->domain->dx * maxres; + fmd->domain->dx = 1.0f / fmd->domain->scale; } } } @@ -1628,30 +1628,30 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *bmain) ModifierData *md; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { + FluidModifierData *fmd = (FluidModifierData *)md; + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { /* keep branch saves if possible */ - if (!mmd->domain->flame_max_temp) { - mmd->domain->burning_rate = 0.75f; - mmd->domain->flame_smoke = 1.0f; - mmd->domain->flame_vorticity = 0.5f; - mmd->domain->flame_ignition = 1.25f; - mmd->domain->flame_max_temp = 1.75f; - mmd->domain->adapt_threshold = 0.02f; - mmd->domain->adapt_margin = 4; - mmd->domain->flame_smoke_color[0] = 0.7f; - mmd->domain->flame_smoke_color[1] = 0.7f; - mmd->domain->flame_smoke_color[2] = 0.7f; + if (!fmd->domain->flame_max_temp) { + fmd->domain->burning_rate = 0.75f; + fmd->domain->flame_smoke = 1.0f; + fmd->domain->flame_vorticity = 0.5f; + fmd->domain->flame_ignition = 1.25f; + fmd->domain->flame_max_temp = 1.75f; + fmd->domain->adapt_threshold = 0.02f; + fmd->domain->adapt_margin = 4; + fmd->domain->flame_smoke_color[0] = 0.7f; + fmd->domain->flame_smoke_color[1] = 0.7f; + fmd->domain->flame_smoke_color[2] = 0.7f; } } - else if ((mmd->type & MOD_FLUID_TYPE_FLOW) && mmd->flow) { - if (!mmd->flow->texture_size) { - mmd->flow->fuel_amount = 1.0; - mmd->flow->surface_distance = 1.5; - mmd->flow->color[0] = 0.7f; - mmd->flow->color[1] = 0.7f; - mmd->flow->color[2] = 0.7f; - mmd->flow->texture_size = 1.0f; + else if ((fmd->type & MOD_FLUID_TYPE_FLOW) && fmd->flow) { + if (!fmd->flow->texture_size) { + fmd->flow->fuel_amount = 1.0; + fmd->flow->surface_distance = 1.5; + fmd->flow->color[0] = 0.7f; + fmd->flow->color[1] = 0.7f; + fmd->flow->color[2] = 0.7f; + fmd->flow->texture_size = 1.0f; } } } @@ -2158,13 +2158,13 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *bmain) ModifierData *md; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { - if (mmd->domain->flags & FLUID_DOMAIN_USE_HIGH_SMOOTH) { - mmd->domain->highres_sampling = SM_HRES_LINEAR; + FluidModifierData *fmd = (FluidModifierData *)md; + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { + if (fmd->domain->flags & FLUID_DOMAIN_USE_HIGH_SMOOTH) { + fmd->domain->highres_sampling = SM_HRES_LINEAR; } else { - mmd->domain->highres_sampling = SM_HRES_NEAREST; + fmd->domain->highres_sampling = SM_HRES_NEAREST; } } } @@ -2225,10 +2225,10 @@ void blo_do_versions_260(FileData *fd, Library *UNUSED(lib), Main *bmain) ModifierData *md; for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if ((mmd->type & MOD_FLUID_TYPE_FLOW) && mmd->flow) { - if (!mmd->flow->particle_size) { - mmd->flow->particle_size = 1.0f; + FluidModifierData *fmd = (FluidModifierData *)md; + if ((fmd->type & MOD_FLUID_TYPE_FLOW) && fmd->flow) { + if (!fmd->flow->particle_size) { + fmd->flow->particle_size = 1.0f; } } } diff --git a/source/blender/blenloader/intern/versioning_270.c b/source/blender/blenloader/intern/versioning_270.c index 496c8353f85..521fc4b9b82 100644 --- a/source/blender/blenloader/intern/versioning_270.c +++ b/source/blender/blenloader/intern/versioning_270.c @@ -1470,11 +1470,11 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *bmain) for (ob = bmain->objects.first; ob; ob = ob->id.next) { for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if (mmd->domain) { - mmd->domain->slice_per_voxel = 5.0f; - mmd->domain->slice_depth = 0.5f; - mmd->domain->display_thickness = 1.0f; + FluidModifierData *fmd = (FluidModifierData *)md; + if (fmd->domain) { + fmd->domain->slice_per_voxel = 5.0f; + fmd->domain->slice_depth = 0.5f; + fmd->domain->display_thickness = 1.0f; } } } @@ -1640,9 +1640,9 @@ void blo_do_versions_270(FileData *fd, Library *UNUSED(lib), Main *bmain) for (ob = bmain->objects.first; ob; ob = ob->id.next) { for (md = ob->modifiers.first; md; md = md->next) { if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; - if (mmd->domain) { - mmd->domain->clipping = 1e-3f; + FluidModifierData *fmd = (FluidModifierData *)md; + if (fmd->domain) { + fmd->domain->clipping = 1e-3f; } } } diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 4e0325e72fa..2ce8abff3c5 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -1670,37 +1670,37 @@ static void write_modifiers(BlendWriter *writer, ListBase *modbase) write_pointcaches(writer, &clmd->ptcaches); } else if (md->type == eModifierType_Fluid) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { - BLO_write_struct(writer, FluidDomainSettings, mmd->domain); + if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { + BLO_write_struct(writer, FluidDomainSettings, fmd->domain); - if (mmd->domain) { - write_pointcaches(writer, &(mmd->domain->ptcaches[0])); + if (fmd->domain) { + write_pointcaches(writer, &(fmd->domain->ptcaches[0])); /* create fake pointcache so that old blender versions can read it */ - mmd->domain->point_cache[1] = BKE_ptcache_add(&mmd->domain->ptcaches[1]); - mmd->domain->point_cache[1]->flag |= PTCACHE_DISK_CACHE | PTCACHE_FAKE_SMOKE; - mmd->domain->point_cache[1]->step = 1; + fmd->domain->point_cache[1] = BKE_ptcache_add(&fmd->domain->ptcaches[1]); + fmd->domain->point_cache[1]->flag |= PTCACHE_DISK_CACHE | PTCACHE_FAKE_SMOKE; + fmd->domain->point_cache[1]->step = 1; - write_pointcaches(writer, &(mmd->domain->ptcaches[1])); + write_pointcaches(writer, &(fmd->domain->ptcaches[1])); - if (mmd->domain->coba) { - BLO_write_struct(writer, ColorBand, mmd->domain->coba); + if (fmd->domain->coba) { + BLO_write_struct(writer, ColorBand, fmd->domain->coba); } /* cleanup the fake pointcache */ - BKE_ptcache_free_list(&mmd->domain->ptcaches[1]); - mmd->domain->point_cache[1] = NULL; + BKE_ptcache_free_list(&fmd->domain->ptcaches[1]); + fmd->domain->point_cache[1] = NULL; - BLO_write_struct(writer, EffectorWeights, mmd->domain->effector_weights); + BLO_write_struct(writer, EffectorWeights, fmd->domain->effector_weights); } } - else if (mmd->type & MOD_FLUID_TYPE_FLOW) { - BLO_write_struct(writer, FluidFlowSettings, mmd->flow); + else if (fmd->type & MOD_FLUID_TYPE_FLOW) { + BLO_write_struct(writer, FluidFlowSettings, fmd->flow); } - else if (mmd->type & MOD_FLUID_TYPE_EFFEC) { - BLO_write_struct(writer, FluidEffectorSettings, mmd->effector); + else if (fmd->type & MOD_FLUID_TYPE_EFFEC) { + BLO_write_struct(writer, FluidEffectorSettings, fmd->effector); } } else if (md->type == eModifierType_Fluidsim) { diff --git a/source/blender/draw/engines/eevee/eevee_volumes.c b/source/blender/draw/engines/eevee/eevee_volumes.c index 17f53113939..300022e97a9 100644 --- a/source/blender/draw/engines/eevee/eevee_volumes.c +++ b/source/blender/draw/engines/eevee/eevee_volumes.c @@ -487,11 +487,11 @@ static bool eevee_volume_object_mesh_init(Scene *scene, if ((md = BKE_modifiers_findby_type(ob, eModifierType_Fluid)) && (BKE_modifier_is_enabled(scene, md, eModifierMode_Realtime)) && ((FluidModifierData *)md)->domain != NULL) { - FluidModifierData *mmd = (FluidModifierData *)md; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)md; + FluidDomainSettings *fds = fmd->domain; /* Don't try to show liquid domains here. */ - if (!mds->fluid || !(mds->type == FLUID_DOMAIN_TYPE_GAS)) { + if (!fds->fluid || !(fds->type == FLUID_DOMAIN_TYPE_GAS)) { return false; } @@ -500,33 +500,33 @@ static bool eevee_volume_object_mesh_init(Scene *scene, #if 0 const DRWContextState *draw_ctx = DRW_context_state_get(); const bool show_smoke = ((int)DEG_get_ctime(draw_ctx->depsgraph) >= - *mds->point_cache[0]->startframe); + *fds->point_cache[0]->startframe); #endif - if (mds->fluid && (mds->type == FLUID_DOMAIN_TYPE_GAS) /* && show_smoke */) { - if (!(mds->flags & FLUID_DOMAIN_USE_NOISE)) { - GPU_create_smoke(mmd, 0); + if (fds->fluid && (fds->type == FLUID_DOMAIN_TYPE_GAS) /* && show_smoke */) { + if (!(fds->flags & FLUID_DOMAIN_USE_NOISE)) { + GPU_create_smoke(fmd, 0); } - else if (mds->flags & FLUID_DOMAIN_USE_NOISE) { - GPU_create_smoke(mmd, 1); + else if (fds->flags & FLUID_DOMAIN_USE_NOISE) { + GPU_create_smoke(fmd, 1); } - BLI_addtail(&e_data.smoke_domains, BLI_genericNodeN(mmd)); + BLI_addtail(&e_data.smoke_domains, BLI_genericNodeN(fmd)); } LISTBASE_FOREACH (GPUMaterialVolumeGrid *, gpu_grid, gpu_grids) { if (STREQ(gpu_grid->name, "density")) { DRW_shgroup_uniform_texture_ref(grp, gpu_grid->sampler_name, - mds->tex_density ? &mds->tex_density : + fds->tex_density ? &fds->tex_density : &e_data.dummy_density); } else if (STREQ(gpu_grid->name, "color")) { DRW_shgroup_uniform_texture_ref( - grp, gpu_grid->sampler_name, mds->tex_color ? &mds->tex_color : &e_data.dummy_density); + grp, gpu_grid->sampler_name, fds->tex_color ? &fds->tex_color : &e_data.dummy_density); } else if (STREQ(gpu_grid->name, "flame") || STREQ(gpu_grid->name, "temperature")) { DRW_shgroup_uniform_texture_ref( - grp, gpu_grid->sampler_name, mds->tex_flame ? &mds->tex_flame : &e_data.dummy_flame); + grp, gpu_grid->sampler_name, fds->tex_flame ? &fds->tex_flame : &e_data.dummy_flame); } else { DRW_shgroup_uniform_texture_ref(grp, gpu_grid->sampler_name, &e_data.dummy_density); @@ -534,14 +534,14 @@ static bool eevee_volume_object_mesh_init(Scene *scene, } /* Constant Volume color. */ - bool use_constant_color = ((mds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) == 0 && - (mds->active_fields & FLUID_DOMAIN_ACTIVE_COLOR_SET) != 0); + bool use_constant_color = ((fds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) == 0 && + (fds->active_fields & FLUID_DOMAIN_ACTIVE_COLOR_SET) != 0); DRW_shgroup_uniform_vec3( - grp, "volumeColor", (use_constant_color) ? mds->active_color : white, 1); + grp, "volumeColor", (use_constant_color) ? fds->active_color : white, 1); /* Output is such that 0..1 maps to 0..1000K */ - DRW_shgroup_uniform_vec2(grp, "volumeTemperature", &mds->flame_ignition, 1); + DRW_shgroup_uniform_vec2(grp, "volumeTemperature", &fds->flame_ignition, 1); } else { LISTBASE_FOREACH (GPUMaterialVolumeGrid *, gpu_grid, gpu_grids) { @@ -840,8 +840,8 @@ void EEVEE_volumes_free_smoke_textures(void) { /* Free Smoke Textures after rendering */ LISTBASE_FOREACH (LinkData *, link, &e_data.smoke_domains) { - FluidModifierData *mmd = (FluidModifierData *)link->data; - GPU_free_smoke(mmd); + FluidModifierData *fmd = (FluidModifierData *)link->data; + GPU_free_smoke(fmd); } BLI_freelistN(&e_data.smoke_domains); } diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c index e591f54c750..c0407345729 100644 --- a/source/blender/draw/engines/overlay/overlay_extra.c +++ b/source/blender/draw/engines/overlay/overlay_extra.c @@ -1358,22 +1358,22 @@ static void OVERLAY_volume_extra(OVERLAY_ExtraCallBuffers *cb, Scene *scene, float *color) { - FluidModifierData *mmd = (FluidModifierData *)md; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)md; + FluidDomainSettings *fds = fmd->domain; /* Don't show smoke before simulation starts, this could be made an option in the future. */ - const bool draw_velocity = (mds->draw_velocity && mds->fluid && - CFRA >= mds->point_cache[0]->startframe); + const bool draw_velocity = (fds->draw_velocity && fds->fluid && + CFRA >= fds->point_cache[0]->startframe); /* Small cube showing voxel size. */ { float min[3]; - madd_v3fl_v3fl_v3fl_v3i(min, mds->p0, mds->cell_size, mds->res_min); + madd_v3fl_v3fl_v3fl_v3i(min, fds->p0, fds->cell_size, fds->res_min); float voxel_cubemat[4][4] = {{0.0f}}; /* scale small cube to voxel size */ - voxel_cubemat[0][0] = mds->cell_size[0] / 2.0f; - voxel_cubemat[1][1] = mds->cell_size[1] / 2.0f; - voxel_cubemat[2][2] = mds->cell_size[2] / 2.0f; + voxel_cubemat[0][0] = fds->cell_size[0] / 2.0f; + voxel_cubemat[1][1] = fds->cell_size[1] / 2.0f; + voxel_cubemat[2][2] = fds->cell_size[2] / 2.0f; voxel_cubemat[3][3] = 1.0f; /* translate small cube to corner */ copy_v3_v3(voxel_cubemat[3], min); @@ -1385,38 +1385,38 @@ static void OVERLAY_volume_extra(OVERLAY_ExtraCallBuffers *cb, } if (draw_velocity) { - const bool use_needle = (mds->vector_draw_type == VECTOR_DRAW_NEEDLE); + const bool use_needle = (fds->vector_draw_type == VECTOR_DRAW_NEEDLE); int line_count = (use_needle) ? 6 : 1; int slice_axis = -1; - line_count *= mds->res[0] * mds->res[1] * mds->res[2]; + line_count *= fds->res[0] * fds->res[1] * fds->res[2]; - if (mds->slice_method == FLUID_DOMAIN_SLICE_AXIS_ALIGNED && - mds->axis_slice_method == AXIS_SLICE_SINGLE) { + if (fds->slice_method == FLUID_DOMAIN_SLICE_AXIS_ALIGNED && + fds->axis_slice_method == AXIS_SLICE_SINGLE) { float viewinv[4][4]; DRW_view_viewmat_get(NULL, viewinv, true); - const int axis = (mds->slice_axis == SLICE_AXIS_AUTO) ? axis_dominant_v3_single(viewinv[2]) : - mds->slice_axis - 1; + const int axis = (fds->slice_axis == SLICE_AXIS_AUTO) ? axis_dominant_v3_single(viewinv[2]) : + fds->slice_axis - 1; slice_axis = axis; - line_count /= mds->res[axis]; + line_count /= fds->res[axis]; } - GPU_create_smoke_velocity(mmd); + GPU_create_smoke_velocity(fmd); GPUShader *sh = OVERLAY_shader_volume_velocity(use_needle); DRWShadingGroup *grp = DRW_shgroup_create(sh, data->psl->extra_ps[0]); - DRW_shgroup_uniform_texture(grp, "velocityX", mds->tex_velocity_x); - DRW_shgroup_uniform_texture(grp, "velocityY", mds->tex_velocity_y); - DRW_shgroup_uniform_texture(grp, "velocityZ", mds->tex_velocity_z); - DRW_shgroup_uniform_float_copy(grp, "displaySize", mds->vector_scale); - DRW_shgroup_uniform_float_copy(grp, "slicePosition", mds->slice_depth); - DRW_shgroup_uniform_vec3_copy(grp, "cellSize", mds->cell_size); - DRW_shgroup_uniform_vec3_copy(grp, "domainOriginOffset", mds->p0); - DRW_shgroup_uniform_ivec3_copy(grp, "adaptiveCellOffset", mds->res_min); + DRW_shgroup_uniform_texture(grp, "velocityX", fds->tex_velocity_x); + DRW_shgroup_uniform_texture(grp, "velocityY", fds->tex_velocity_y); + DRW_shgroup_uniform_texture(grp, "velocityZ", fds->tex_velocity_z); + DRW_shgroup_uniform_float_copy(grp, "displaySize", fds->vector_scale); + DRW_shgroup_uniform_float_copy(grp, "slicePosition", fds->slice_depth); + DRW_shgroup_uniform_vec3_copy(grp, "cellSize", fds->cell_size); + DRW_shgroup_uniform_vec3_copy(grp, "domainOriginOffset", fds->p0); + DRW_shgroup_uniform_ivec3_copy(grp, "adaptiveCellOffset", fds->res_min); DRW_shgroup_uniform_int_copy(grp, "sliceAxis", slice_axis); DRW_shgroup_call_procedural_lines(grp, ob, line_count); - BLI_addtail(&data->stl->pd->smoke_domains, BLI_genericNodeN(mmd)); + BLI_addtail(&data->stl->pd->smoke_domains, BLI_genericNodeN(fmd)); } } @@ -1430,8 +1430,8 @@ static void OVERLAY_volume_free_smoke_textures(OVERLAY_Data *data) * all viewport in a redraw at least. */ LinkData *link; while ((link = BLI_pophead(&data->stl->pd->smoke_domains))) { - FluidModifierData *mmd = (FluidModifierData *)link->data; - GPU_free_smoke_velocity(mmd); + FluidModifierData *fmd = (FluidModifierData *)link->data; + GPU_free_smoke_velocity(fmd); MEM_freeN(link); } } diff --git a/source/blender/draw/engines/workbench/workbench_volume.c b/source/blender/draw/engines/workbench/workbench_volume.c index 21cb567aaae..8e345f8275b 100644 --- a/source/blender/draw/engines/workbench/workbench_volume.c +++ b/source/blender/draw/engines/workbench/workbench_volume.c @@ -65,53 +65,53 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata, Object *ob, ModifierData *md) { - FluidModifierData *mmd = (FluidModifierData *)md; - FluidDomainSettings *mds = mmd->domain; + FluidModifierData *fmd = (FluidModifierData *)md; + FluidDomainSettings *fds = fmd->domain; WORKBENCH_PrivateData *wpd = vedata->stl->wpd; WORKBENCH_TextureList *txl = vedata->txl; DefaultTextureList *dtxl = DRW_viewport_texture_list_get(); DRWShadingGroup *grp = NULL; /* Don't try to show liquid domains here */ - if (!mds->fluid || !(mds->type == FLUID_DOMAIN_TYPE_GAS)) { + if (!fds->fluid || !(fds->type == FLUID_DOMAIN_TYPE_GAS)) { return; } wpd->volumes_do = true; - if (mds->use_coba) { - GPU_create_smoke_coba_field(mmd); + if (fds->use_coba) { + GPU_create_smoke_coba_field(fmd); } - else if (!(mds->flags & FLUID_DOMAIN_USE_NOISE)) { - GPU_create_smoke(mmd, 0); + else if (!(fds->flags & FLUID_DOMAIN_USE_NOISE)) { + GPU_create_smoke(fmd, 0); } - else if (mds->flags & FLUID_DOMAIN_USE_NOISE) { - GPU_create_smoke(mmd, 1); + else if (fds->flags & FLUID_DOMAIN_USE_NOISE) { + GPU_create_smoke(fmd, 1); } - if ((!mds->use_coba && (mds->tex_density == NULL && mds->tex_color == NULL)) || - (mds->use_coba && mds->tex_field == NULL)) { + if ((!fds->use_coba && (fds->tex_density == NULL && fds->tex_color == NULL)) || + (fds->use_coba && fds->tex_field == NULL)) { return; } - const bool use_slice = (mds->slice_method == FLUID_DOMAIN_SLICE_AXIS_ALIGNED && - mds->axis_slice_method == AXIS_SLICE_SINGLE); - const bool cubic_interp = (mds->interp_method == VOLUME_INTERP_CUBIC); - GPUShader *sh = workbench_shader_volume_get(use_slice, mds->use_coba, cubic_interp, true); + const bool use_slice = (fds->slice_method == FLUID_DOMAIN_SLICE_AXIS_ALIGNED && + fds->axis_slice_method == AXIS_SLICE_SINGLE); + const bool cubic_interp = (fds->interp_method == VOLUME_INTERP_CUBIC); + GPUShader *sh = workbench_shader_volume_get(use_slice, fds->use_coba, cubic_interp, true); if (use_slice) { float invviewmat[4][4]; DRW_view_viewmat_get(NULL, invviewmat, true); - const int axis = (mds->slice_axis == SLICE_AXIS_AUTO) ? + const int axis = (fds->slice_axis == SLICE_AXIS_AUTO) ? axis_dominant_v3_single(invviewmat[2]) : - mds->slice_axis - 1; + fds->slice_axis - 1; float dim[3]; BKE_object_dimensions_get(ob, dim); /* 0.05f to achieve somewhat the same opacity as the full view. */ float step_length = max_ff(1e-16f, dim[axis] * 0.05f); grp = DRW_shgroup_create(sh, vedata->psl->volume_ps); - DRW_shgroup_uniform_float_copy(grp, "slicePosition", mds->slice_depth); + DRW_shgroup_uniform_float_copy(grp, "slicePosition", fds->slice_depth); DRW_shgroup_uniform_int_copy(grp, "sliceAxis", axis); DRW_shgroup_uniform_float_copy(grp, "stepLength", step_length); DRW_shgroup_state_disable(grp, DRW_STATE_CULL_FRONT); @@ -120,8 +120,8 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata, double noise_ofs; BLI_halton_1d(3, 0.0, wpd->taa_sample, &noise_ofs); float dim[3], step_length, max_slice; - float slice_ct[3] = {mds->res[0], mds->res[1], mds->res[2]}; - mul_v3_fl(slice_ct, max_ff(0.001f, mds->slice_per_voxel)); + float slice_ct[3] = {fds->res[0], fds->res[1], fds->res[2]}; + mul_v3_fl(slice_ct, max_ff(0.001f, fds->slice_per_voxel)); max_slice = max_fff(slice_ct[0], slice_ct[1], slice_ct[2]); BKE_object_dimensions_get(ob, dim); invert_v3(slice_ct); @@ -136,26 +136,26 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata, DRW_shgroup_state_enable(grp, DRW_STATE_CULL_FRONT); } - if (mds->use_coba) { - DRW_shgroup_uniform_texture(grp, "densityTexture", mds->tex_field); - DRW_shgroup_uniform_texture(grp, "transferTexture", mds->tex_coba); + if (fds->use_coba) { + DRW_shgroup_uniform_texture(grp, "densityTexture", fds->tex_field); + DRW_shgroup_uniform_texture(grp, "transferTexture", fds->tex_coba); } else { static float white[3] = {1.0f, 1.0f, 1.0f}; - bool use_constant_color = ((mds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) == 0 && - (mds->active_fields & FLUID_DOMAIN_ACTIVE_COLOR_SET) != 0); + bool use_constant_color = ((fds->active_fields & FLUID_DOMAIN_ACTIVE_COLORS) == 0 && + (fds->active_fields & FLUID_DOMAIN_ACTIVE_COLOR_SET) != 0); DRW_shgroup_uniform_texture( - grp, "densityTexture", (mds->tex_color) ? mds->tex_color : mds->tex_density); - DRW_shgroup_uniform_texture(grp, "shadowTexture", mds->tex_shadow); + grp, "densityTexture", (fds->tex_color) ? fds->tex_color : fds->tex_density); + DRW_shgroup_uniform_texture(grp, "shadowTexture", fds->tex_shadow); DRW_shgroup_uniform_texture( - grp, "flameTexture", (mds->tex_flame) ? mds->tex_flame : txl->dummy_volume_tx); + grp, "flameTexture", (fds->tex_flame) ? fds->tex_flame : txl->dummy_volume_tx); DRW_shgroup_uniform_texture( - grp, "flameColorTexture", (mds->tex_flame) ? mds->tex_flame_coba : txl->dummy_coba_tx); + grp, "flameColorTexture", (fds->tex_flame) ? fds->tex_flame_coba : txl->dummy_coba_tx); DRW_shgroup_uniform_vec3( - grp, "activeColor", (use_constant_color) ? mds->active_color : white, 1); + grp, "activeColor", (use_constant_color) ? fds->active_color : white, 1); } DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth); - DRW_shgroup_uniform_float_copy(grp, "densityScale", 10.0f * mds->display_thickness); + DRW_shgroup_uniform_float_copy(grp, "densityScale", 10.0f * fds->display_thickness); if (use_slice) { DRW_shgroup_call(grp, DRW_cache_quad_get(), ob); @@ -164,7 +164,7 @@ static void workbench_volume_modifier_cache_populate(WORKBENCH_Data *vedata, DRW_shgroup_call(grp, DRW_cache_cube_get(), ob); } - BLI_addtail(&wpd->smoke_domains, BLI_genericNodeN(mmd)); + BLI_addtail(&wpd->smoke_domains, BLI_genericNodeN(fmd)); } static void workbench_volume_material_color(WORKBENCH_PrivateData *wpd, @@ -292,8 +292,8 @@ void workbench_volume_draw_finish(WORKBENCH_Data *vedata) * modifier is not used for display. We should share them for * all viewport in a redraw at least. */ LISTBASE_FOREACH (LinkData *, link, &wpd->smoke_domains) { - FluidModifierData *mmd = (FluidModifierData *)link->data; - GPU_free_smoke(mmd); + FluidModifierData *fmd = (FluidModifierData *)link->data; + GPU_free_smoke(fmd); } BLI_freelistN(&wpd->smoke_domains); } diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c index 8f6b5aa8bc3..583c68cb284 100644 --- a/source/blender/editors/physics/physics_fluid.c +++ b/source/blender/editors/physics/physics_fluid.c @@ -93,7 +93,7 @@ typedef struct FluidJob { Depsgraph *depsgraph; Object *ob; - FluidModifierData *mmd; + FluidModifierData *fmd; int success; double start; @@ -153,17 +153,17 @@ static inline bool fluid_is_free_guiding(FluidJob *job) static bool fluid_initjob( bContext *C, FluidJob *job, wmOperator *op, char *error_msg, int error_size) { - FluidModifierData *mmd = NULL; - FluidDomainSettings *mds; + FluidModifierData *fmd = NULL; + FluidDomainSettings *fds; Object *ob = ED_object_active_context(C); - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); - if (!mmd) { + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + if (!fmd) { BLI_strncpy(error_msg, N_("Bake failed: no Fluid modifier found"), error_size); return false; } - mds = mmd->domain; - if (!mds) { + fds = fmd->domain; + if (!fds) { BLI_strncpy(error_msg, N_("Bake failed: invalid domain"), error_size); return false; } @@ -172,7 +172,7 @@ static bool fluid_initjob( job->scene = CTX_data_scene(C); job->depsgraph = CTX_data_depsgraph_pointer(C); job->ob = ob; - job->mmd = mmd; + job->fmd = fmd; job->type = op->type->idname; job->name = op->type->name; @@ -181,7 +181,7 @@ static bool fluid_initjob( static bool fluid_validatepaths(FluidJob *job, ReportList *reports) { - FluidDomainSettings *mds = job->mmd->domain; + FluidDomainSettings *fds = job->fmd->domain; char temp_dir[FILE_MAX]; temp_dir[0] = '\0'; bool is_relative = false; @@ -189,17 +189,17 @@ static bool fluid_validatepaths(FluidJob *job, ReportList *reports) const char *relbase = BKE_modifier_path_relbase(job->bmain, job->ob); /* We do not accept empty paths, they can end in random places silently, see T51176. */ - if (mds->cache_directory[0] == '\0') { + if (fds->cache_directory[0] == '\0') { char cache_name[64]; BKE_fluid_cache_new_name_for_current_session(sizeof(cache_name), cache_name); - BKE_modifier_path_init(mds->cache_directory, sizeof(mds->cache_directory), cache_name); + BKE_modifier_path_init(fds->cache_directory, sizeof(fds->cache_directory), cache_name); BKE_reportf(reports, RPT_WARNING, "Fluid: Empty cache path, reset to default '%s'", - mds->cache_directory); + fds->cache_directory); } - BLI_strncpy(temp_dir, mds->cache_directory, FILE_MAXDIR); + BLI_strncpy(temp_dir, fds->cache_directory, FILE_MAXDIR); is_relative = BLI_path_abs(temp_dir, relbase); /* Ensure whole path exists */ @@ -210,13 +210,13 @@ static bool fluid_validatepaths(FluidJob *job, ReportList *reports) if (!dir_exists) { char cache_name[64]; BKE_fluid_cache_new_name_for_current_session(sizeof(cache_name), cache_name); - BKE_modifier_path_init(mds->cache_directory, sizeof(mds->cache_directory), cache_name); + BKE_modifier_path_init(fds->cache_directory, sizeof(fds->cache_directory), cache_name); BKE_reportf(reports, RPT_ERROR, "Fluid: Could not create cache directory '%s', reset to default '%s'", temp_dir, - mds->cache_directory); + fds->cache_directory); /* Ensure whole path exists and is writable. */ if (!BLI_dir_create_recursive(temp_dir)) { @@ -228,7 +228,7 @@ static bool fluid_validatepaths(FluidJob *job, ReportList *reports) return false; } /* Copy final dir back into domain settings */ - BLI_strncpy(mds->cache_directory, temp_dir, FILE_MAXDIR); + BLI_strncpy(fds->cache_directory, temp_dir, FILE_MAXDIR); return false; } @@ -239,7 +239,7 @@ static bool fluid_validatepaths(FluidJob *job, ReportList *reports) } /* Copy final dir back into domain settings */ - BLI_strncpy(mds->cache_directory, temp_dir, FILE_MAXDIR); + BLI_strncpy(fds->cache_directory, temp_dir, FILE_MAXDIR); return true; } @@ -251,17 +251,17 @@ static void fluid_bake_free(void *customdata) static void fluid_bake_sequence(FluidJob *job) { - FluidDomainSettings *mds = job->mmd->domain; + FluidDomainSettings *fds = job->fmd->domain; Scene *scene = job->scene; int frame = 1, orig_frame; int frames; int *pause_frame = NULL; bool is_first_frame; - frames = mds->cache_frame_end - mds->cache_frame_start + 1; + frames = fds->cache_frame_end - fds->cache_frame_start + 1; if (frames <= 0) { - BLI_strncpy(mds->error, N_("No frames to bake"), sizeof(mds->error)); + BLI_strncpy(fds->error, N_("No frames to bake"), sizeof(fds->error)); return; } @@ -275,15 +275,15 @@ static void fluid_bake_sequence(FluidJob *job) /* Set frame to start point (depending on current pause frame value). */ is_first_frame = ((*pause_frame) == 0); - frame = is_first_frame ? mds->cache_frame_start : (*pause_frame); + frame = is_first_frame ? fds->cache_frame_start : (*pause_frame); /* Save orig frame and update scene frame. */ orig_frame = CFRA; CFRA = frame; /* Loop through selected frames. */ - for (; frame <= mds->cache_frame_end; frame++) { - const float progress = (frame - mds->cache_frame_start) / (float)frames; + for (; frame <= fds->cache_frame_end; frame++) { + const float progress = (frame - fds->cache_frame_start) / (float)frames; /* Keep track of pause frame - needed to init future loop. */ (*pause_frame) = frame; @@ -321,32 +321,32 @@ static void fluid_bake_sequence(FluidJob *job) static void fluid_bake_endjob(void *customdata) { FluidJob *job = customdata; - FluidDomainSettings *mds = job->mmd->domain; + FluidDomainSettings *fds = job->fmd->domain; if (fluid_is_bake_noise(job) || fluid_is_bake_all(job)) { - mds->cache_flag &= ~FLUID_DOMAIN_BAKING_NOISE; - mds->cache_flag |= FLUID_DOMAIN_BAKED_NOISE; - mds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_NOISE; + fds->cache_flag &= ~FLUID_DOMAIN_BAKING_NOISE; + fds->cache_flag |= FLUID_DOMAIN_BAKED_NOISE; + fds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_NOISE; } if (fluid_is_bake_mesh(job) || fluid_is_bake_all(job)) { - mds->cache_flag &= ~FLUID_DOMAIN_BAKING_MESH; - mds->cache_flag |= FLUID_DOMAIN_BAKED_MESH; - mds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_MESH; + fds->cache_flag &= ~FLUID_DOMAIN_BAKING_MESH; + fds->cache_flag |= FLUID_DOMAIN_BAKED_MESH; + fds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_MESH; } if (fluid_is_bake_particle(job) || fluid_is_bake_all(job)) { - mds->cache_flag &= ~FLUID_DOMAIN_BAKING_PARTICLES; - mds->cache_flag |= FLUID_DOMAIN_BAKED_PARTICLES; - mds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_PARTICLES; + fds->cache_flag &= ~FLUID_DOMAIN_BAKING_PARTICLES; + fds->cache_flag |= FLUID_DOMAIN_BAKED_PARTICLES; + fds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_PARTICLES; } if (fluid_is_bake_guiding(job) || fluid_is_bake_all(job)) { - mds->cache_flag &= ~FLUID_DOMAIN_BAKING_GUIDE; - mds->cache_flag |= FLUID_DOMAIN_BAKED_GUIDE; - mds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_GUIDE; + fds->cache_flag &= ~FLUID_DOMAIN_BAKING_GUIDE; + fds->cache_flag |= FLUID_DOMAIN_BAKED_GUIDE; + fds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_GUIDE; } if (fluid_is_bake_data(job) || fluid_is_bake_all(job)) { - mds->cache_flag &= ~FLUID_DOMAIN_BAKING_DATA; - mds->cache_flag |= FLUID_DOMAIN_BAKED_DATA; - mds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_DATA; + fds->cache_flag &= ~FLUID_DOMAIN_BAKING_DATA; + fds->cache_flag |= FLUID_DOMAIN_BAKED_DATA; + fds->cache_flag &= ~FLUID_DOMAIN_OUTDATED_DATA; } DEG_id_tag_update(&job->ob->id, ID_RECALC_GEOMETRY); @@ -362,8 +362,8 @@ static void fluid_bake_endjob(void *customdata) RPT_INFO, "Fluid: %s complete! (%.2f)", job->name, PIL_check_seconds_timer() - job->start); } else { - if (mds->error[0] != '\0') { - WM_reportf(RPT_ERROR, "Fluid: %s failed: %s", job->name, mds->error); + if (fds->error[0] != '\0') { + WM_reportf(RPT_ERROR, "Fluid: %s failed: %s", job->name, fds->error); } else { /* User canceled the bake. */ WM_reportf(RPT_WARNING, "Fluid: %s canceled!", job->name); @@ -374,7 +374,7 @@ static void fluid_bake_endjob(void *customdata) static void fluid_bake_startjob(void *customdata, short *stop, short *do_update, float *progress) { FluidJob *job = customdata; - FluidDomainSettings *mds = job->mmd->domain; + FluidDomainSettings *fds = job->fmd->domain; char temp_dir[FILE_MAX]; const char *relbase = BKE_modifier_path_relbase_from_global(job->ob); @@ -390,54 +390,54 @@ static void fluid_bake_startjob(void *customdata, short *stop, short *do_update, BKE_spacedata_draw_locks(true); if (fluid_is_bake_noise(job) || fluid_is_bake_all(job)) { - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_NOISE, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_NOISE, NULL); BLI_path_abs(temp_dir, relbase); BLI_dir_create_recursive(temp_dir); /* Create 'noise' subdir if it does not exist already */ - mds->cache_flag &= ~(FLUID_DOMAIN_BAKED_NOISE | FLUID_DOMAIN_OUTDATED_NOISE); - mds->cache_flag |= FLUID_DOMAIN_BAKING_NOISE; - job->pause_frame = &mds->cache_frame_pause_noise; + fds->cache_flag &= ~(FLUID_DOMAIN_BAKED_NOISE | FLUID_DOMAIN_OUTDATED_NOISE); + fds->cache_flag |= FLUID_DOMAIN_BAKING_NOISE; + job->pause_frame = &fds->cache_frame_pause_noise; } if (fluid_is_bake_mesh(job) || fluid_is_bake_all(job)) { - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_MESH, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_MESH, NULL); BLI_path_abs(temp_dir, relbase); BLI_dir_create_recursive(temp_dir); /* Create 'mesh' subdir if it does not exist already */ - mds->cache_flag &= ~(FLUID_DOMAIN_BAKED_MESH | FLUID_DOMAIN_OUTDATED_MESH); - mds->cache_flag |= FLUID_DOMAIN_BAKING_MESH; - job->pause_frame = &mds->cache_frame_pause_mesh; + fds->cache_flag &= ~(FLUID_DOMAIN_BAKED_MESH | FLUID_DOMAIN_OUTDATED_MESH); + fds->cache_flag |= FLUID_DOMAIN_BAKING_MESH; + job->pause_frame = &fds->cache_frame_pause_mesh; } if (fluid_is_bake_particle(job) || fluid_is_bake_all(job)) { BLI_path_join( - temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_PARTICLES, NULL); + temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_PARTICLES, NULL); BLI_path_abs(temp_dir, relbase); BLI_dir_create_recursive( temp_dir); /* Create 'particles' subdir if it does not exist already */ - mds->cache_flag &= ~(FLUID_DOMAIN_BAKED_PARTICLES | FLUID_DOMAIN_OUTDATED_PARTICLES); - mds->cache_flag |= FLUID_DOMAIN_BAKING_PARTICLES; - job->pause_frame = &mds->cache_frame_pause_particles; + fds->cache_flag &= ~(FLUID_DOMAIN_BAKED_PARTICLES | FLUID_DOMAIN_OUTDATED_PARTICLES); + fds->cache_flag |= FLUID_DOMAIN_BAKING_PARTICLES; + job->pause_frame = &fds->cache_frame_pause_particles; } if (fluid_is_bake_guiding(job) || fluid_is_bake_all(job)) { - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_GUIDE, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_GUIDE, NULL); BLI_path_abs(temp_dir, relbase); BLI_dir_create_recursive(temp_dir); /* Create 'guiding' subdir if it does not exist already */ - mds->cache_flag &= ~(FLUID_DOMAIN_BAKED_GUIDE | FLUID_DOMAIN_OUTDATED_GUIDE); - mds->cache_flag |= FLUID_DOMAIN_BAKING_GUIDE; - job->pause_frame = &mds->cache_frame_pause_guide; + fds->cache_flag &= ~(FLUID_DOMAIN_BAKED_GUIDE | FLUID_DOMAIN_OUTDATED_GUIDE); + fds->cache_flag |= FLUID_DOMAIN_BAKING_GUIDE; + job->pause_frame = &fds->cache_frame_pause_guide; } if (fluid_is_bake_data(job) || fluid_is_bake_all(job)) { - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_CONFIG, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_CONFIG, NULL); BLI_path_abs(temp_dir, relbase); BLI_dir_create_recursive(temp_dir); /* Create 'config' subdir if it does not exist already */ - BLI_path_join(temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_DATA, NULL); + BLI_path_join(temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_DATA, NULL); BLI_path_abs(temp_dir, relbase); BLI_dir_create_recursive(temp_dir); /* Create 'data' subdir if it does not exist already */ - mds->cache_flag &= ~(FLUID_DOMAIN_BAKED_DATA | FLUID_DOMAIN_OUTDATED_DATA); - mds->cache_flag |= FLUID_DOMAIN_BAKING_DATA; - job->pause_frame = &mds->cache_frame_pause_data; + fds->cache_flag &= ~(FLUID_DOMAIN_BAKED_DATA | FLUID_DOMAIN_OUTDATED_DATA); + fds->cache_flag |= FLUID_DOMAIN_BAKING_DATA; + job->pause_frame = &fds->cache_frame_pause_data; - if (mds->flags & FLUID_DOMAIN_EXPORT_MANTA_SCRIPT) { + if (fds->flags & FLUID_DOMAIN_EXPORT_MANTA_SCRIPT) { BLI_path_join( - temp_dir, sizeof(temp_dir), mds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, NULL); + temp_dir, sizeof(temp_dir), fds->cache_directory, FLUID_DOMAIN_DIR_SCRIPT, NULL); BLI_path_abs(temp_dir, relbase); BLI_dir_create_recursive(temp_dir); /* Create 'script' subdir if it does not exist already */ } @@ -457,7 +457,7 @@ static void fluid_bake_startjob(void *customdata, short *stop, short *do_update, static void fluid_free_endjob(void *customdata) { FluidJob *job = customdata; - FluidDomainSettings *mds = job->mmd->domain; + FluidDomainSettings *fds = job->fmd->domain; G.is_rendering = false; BKE_spacedata_draw_locks(false); @@ -474,8 +474,8 @@ static void fluid_free_endjob(void *customdata) RPT_INFO, "Fluid: %s complete! (%.2f)", job->name, PIL_check_seconds_timer() - job->start); } else { - if (mds->error[0] != '\0') { - WM_reportf(RPT_ERROR, "Fluid: %s failed: %s", job->name, mds->error); + if (fds->error[0] != '\0') { + WM_reportf(RPT_ERROR, "Fluid: %s failed: %s", job->name, fds->error); } else { /* User canceled the free job */ WM_reportf(RPT_WARNING, "Fluid: %s canceled!", job->name); @@ -486,7 +486,7 @@ static void fluid_free_endjob(void *customdata) static void fluid_free_startjob(void *customdata, short *stop, short *do_update, float *progress) { FluidJob *job = customdata; - FluidDomainSettings *mds = job->mmd->domain; + FluidDomainSettings *fds = job->fmd->domain; job->stop = stop; job->do_update = do_update; @@ -519,9 +519,9 @@ static void fluid_free_startjob(void *customdata, short *stop, short *do_update, FLUID_DOMAIN_OUTDATED_GUIDE); } #ifdef WITH_FLUID - BKE_fluid_cache_free(mds, job->ob, cache_map); + BKE_fluid_cache_free(fds, job->ob, cache_map); #else - UNUSED_VARS(mds); + UNUSED_VARS(fds); #endif *do_update = true; @@ -615,27 +615,27 @@ static int fluid_bake_modal(bContext *C, wmOperator *UNUSED(op), const wmEvent * static int fluid_free_exec(struct bContext *C, struct wmOperator *op) { - FluidModifierData *mmd = NULL; - FluidDomainSettings *mds; + FluidModifierData *fmd = NULL; + FluidDomainSettings *fds; Object *ob = ED_object_active_context(C); Scene *scene = CTX_data_scene(C); /* * Get modifier data */ - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); - if (!mmd) { + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + if (!fmd) { BKE_report(op->reports, RPT_ERROR, "Bake free failed: no Fluid modifier found"); return OPERATOR_CANCELLED; } - mds = mmd->domain; - if (!mds) { + fds = fmd->domain; + if (!fds) { BKE_report(op->reports, RPT_ERROR, "Bake free failed: invalid domain"); return OPERATOR_CANCELLED; } /* Cannot free data if other bakes currently working */ - if (mmd->domain->cache_flag & (FLUID_DOMAIN_BAKING_DATA | FLUID_DOMAIN_BAKING_NOISE | + if (fmd->domain->cache_flag & (FLUID_DOMAIN_BAKING_DATA | FLUID_DOMAIN_BAKING_NOISE | FLUID_DOMAIN_BAKING_MESH | FLUID_DOMAIN_BAKING_PARTICLES)) { BKE_report(op->reports, RPT_ERROR, "Bake free failed: pending bake jobs found"); return OPERATOR_CANCELLED; @@ -646,7 +646,7 @@ static int fluid_free_exec(struct bContext *C, struct wmOperator *op) job->scene = scene; job->depsgraph = CTX_data_depsgraph_pointer(C); job->ob = ob; - job->mmd = mmd; + job->fmd = fmd; job->type = op->type->idname; job->name = op->type->name; @@ -678,20 +678,20 @@ static int fluid_free_exec(struct bContext *C, struct wmOperator *op) static int fluid_pause_exec(struct bContext *C, struct wmOperator *op) { - FluidModifierData *mmd = NULL; - FluidDomainSettings *mds; + FluidModifierData *fmd = NULL; + FluidDomainSettings *fds; Object *ob = ED_object_active_context(C); /* * Get modifier data */ - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); - if (!mmd) { + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + if (!fmd) { BKE_report(op->reports, RPT_ERROR, "Bake free failed: no Fluid modifier found"); return OPERATOR_CANCELLED; } - mds = mmd->domain; - if (!mds) { + fds = fmd->domain; + if (!fds) { BKE_report(op->reports, RPT_ERROR, "Bake free failed: invalid domain"); return OPERATOR_CANCELLED; } diff --git a/source/blender/gpu/GPU_draw.h b/source/blender/gpu/GPU_draw.h index 1cd5c4d519e..b364bd0ef95 100644 --- a/source/blender/gpu/GPU_draw.h +++ b/source/blender/gpu/GPU_draw.h @@ -79,11 +79,11 @@ void GPU_free_images_anim(struct Main *bmain); void GPU_free_images_old(struct Main *bmain); /* gpu_draw_smoke.c */ -void GPU_free_smoke(struct FluidModifierData *mmd); -void GPU_free_smoke_velocity(struct FluidModifierData *mmd); -void GPU_create_smoke(struct FluidModifierData *mmd, int highres); -void GPU_create_smoke_coba_field(struct FluidModifierData *mmd); -void GPU_create_smoke_velocity(struct FluidModifierData *mmd); +void GPU_free_smoke(struct FluidModifierData *fmd); +void GPU_free_smoke_velocity(struct FluidModifierData *fmd); +void GPU_create_smoke(struct FluidModifierData *fmd, int highres); +void GPU_create_smoke_coba_field(struct FluidModifierData *fmd); +void GPU_create_smoke_velocity(struct FluidModifierData *fmd); /* Delayed free of OpenGL buffers by main thread */ void GPU_free_unused_buffers(void); diff --git a/source/blender/gpu/intern/gpu_draw_smoke.c b/source/blender/gpu/intern/gpu_draw_smoke.c index 67947df0ff7..79b3861d339 100644 --- a/source/blender/gpu/intern/gpu_draw_smoke.c +++ b/source/blender/gpu/intern/gpu_draw_smoke.c @@ -132,74 +132,74 @@ static void swizzle_texture_channel_single(GPUTexture *tex) GPU_texture_unbind(tex); } -static GPUTexture *create_field_texture(FluidDomainSettings *mds) +static GPUTexture *create_field_texture(FluidDomainSettings *fds) { float *field = NULL; - switch (mds->coba_field) { + switch (fds->coba_field) { case FLUID_DOMAIN_FIELD_DENSITY: - field = manta_smoke_get_density(mds->fluid); + field = manta_smoke_get_density(fds->fluid); break; case FLUID_DOMAIN_FIELD_HEAT: - field = manta_smoke_get_heat(mds->fluid); + field = manta_smoke_get_heat(fds->fluid); break; case FLUID_DOMAIN_FIELD_FUEL: - field = manta_smoke_get_fuel(mds->fluid); + field = manta_smoke_get_fuel(fds->fluid); break; case FLUID_DOMAIN_FIELD_REACT: - field = manta_smoke_get_react(mds->fluid); + field = manta_smoke_get_react(fds->fluid); break; case FLUID_DOMAIN_FIELD_FLAME: - field = manta_smoke_get_flame(mds->fluid); + field = manta_smoke_get_flame(fds->fluid); break; case FLUID_DOMAIN_FIELD_VELOCITY_X: - field = manta_get_velocity_x(mds->fluid); + field = manta_get_velocity_x(fds->fluid); break; case FLUID_DOMAIN_FIELD_VELOCITY_Y: - field = manta_get_velocity_y(mds->fluid); + field = manta_get_velocity_y(fds->fluid); break; case FLUID_DOMAIN_FIELD_VELOCITY_Z: - field = manta_get_velocity_z(mds->fluid); + field = manta_get_velocity_z(fds->fluid); break; case FLUID_DOMAIN_FIELD_COLOR_R: - field = manta_smoke_get_color_r(mds->fluid); + field = manta_smoke_get_color_r(fds->fluid); break; case FLUID_DOMAIN_FIELD_COLOR_G: - field = manta_smoke_get_color_g(mds->fluid); + field = manta_smoke_get_color_g(fds->fluid); break; case FLUID_DOMAIN_FIELD_COLOR_B: - field = manta_smoke_get_color_b(mds->fluid); + field = manta_smoke_get_color_b(fds->fluid); break; case FLUID_DOMAIN_FIELD_FORCE_X: - field = manta_get_force_x(mds->fluid); + field = manta_get_force_x(fds->fluid); break; case FLUID_DOMAIN_FIELD_FORCE_Y: - field = manta_get_force_y(mds->fluid); + field = manta_get_force_y(fds->fluid); break; case FLUID_DOMAIN_FIELD_FORCE_Z: - field = manta_get_force_z(mds->fluid); + field = manta_get_force_z(fds->fluid); break; default: return NULL; } GPUTexture *tex = GPU_texture_create_nD( - mds->res[0], mds->res[1], mds->res[2], 3, field, GPU_R8, GPU_DATA_FLOAT, 0, true, NULL); + fds->res[0], fds->res[1], fds->res[2], 3, field, GPU_R8, GPU_DATA_FLOAT, 0, true, NULL); swizzle_texture_channel_single(tex); return tex; } -static GPUTexture *create_density_texture(FluidDomainSettings *mds, int highres) +static GPUTexture *create_density_texture(FluidDomainSettings *fds, int highres) { - int *dim = (highres) ? mds->res_noise : mds->res; + int *dim = (highres) ? fds->res_noise : fds->res; float *data; if (highres) { - data = manta_smoke_turbulence_get_density(mds->fluid); + data = manta_smoke_turbulence_get_density(fds->fluid); } else { - data = manta_smoke_get_density(mds->fluid); + data = manta_smoke_get_density(fds->fluid); } GPUTexture *tex = GPU_texture_create_nD( @@ -210,17 +210,17 @@ static GPUTexture *create_density_texture(FluidDomainSettings *mds, int highres) return tex; } -static GPUTexture *create_color_texture(FluidDomainSettings *mds, int highres) +static GPUTexture *create_color_texture(FluidDomainSettings *fds, int highres) { - const bool has_color = (highres) ? manta_smoke_turbulence_has_colors(mds->fluid) : - manta_smoke_has_colors(mds->fluid); + const bool has_color = (highres) ? manta_smoke_turbulence_has_colors(fds->fluid) : + manta_smoke_has_colors(fds->fluid); if (!has_color) { return NULL; } - int cell_count = (highres) ? manta_smoke_turbulence_get_cells(mds->fluid) : mds->total_cells; - int *dim = (highres) ? mds->res_noise : mds->res; + int cell_count = (highres) ? manta_smoke_turbulence_get_cells(fds->fluid) : fds->total_cells; + int *dim = (highres) ? fds->res_noise : fds->res; float *data = MEM_callocN(sizeof(float) * cell_count * 4, "smokeColorTexture"); if (data == NULL) { @@ -228,10 +228,10 @@ static GPUTexture *create_color_texture(FluidDomainSettings *mds, int highres) } if (highres) { - manta_smoke_turbulence_get_rgba(mds->fluid, data, 0); + manta_smoke_turbulence_get_rgba(fds->fluid, data, 0); } else { - manta_smoke_get_rgba(mds->fluid, data, 0); + manta_smoke_get_rgba(fds->fluid, data, 0); } GPUTexture *tex = GPU_texture_create_nD( @@ -242,22 +242,22 @@ static GPUTexture *create_color_texture(FluidDomainSettings *mds, int highres) return tex; } -static GPUTexture *create_flame_texture(FluidDomainSettings *mds, int highres) +static GPUTexture *create_flame_texture(FluidDomainSettings *fds, int highres) { float *source = NULL; - const bool has_fuel = (highres) ? manta_smoke_turbulence_has_fuel(mds->fluid) : - manta_smoke_has_fuel(mds->fluid); - int *dim = (highres) ? mds->res_noise : mds->res; + const bool has_fuel = (highres) ? manta_smoke_turbulence_has_fuel(fds->fluid) : + manta_smoke_has_fuel(fds->fluid); + int *dim = (highres) ? fds->res_noise : fds->res; if (!has_fuel) { return NULL; } if (highres) { - source = manta_smoke_turbulence_get_flame(mds->fluid); + source = manta_smoke_turbulence_get_flame(fds->fluid); } else { - source = manta_smoke_get_flame(mds->fluid); + source = manta_smoke_get_flame(fds->fluid); } GPUTexture *tex = GPU_texture_create_nD( @@ -276,90 +276,90 @@ static GPUTexture *create_flame_texture(FluidDomainSettings *mds, int highres) /** \name Public API * \{ */ -void GPU_free_smoke(FluidModifierData *mmd) +void GPU_free_smoke(FluidModifierData *fmd) { - if (mmd->type & MOD_FLUID_TYPE_DOMAIN && mmd->domain) { - if (mmd->domain->tex_density) { - GPU_texture_free(mmd->domain->tex_density); - mmd->domain->tex_density = NULL; + if (fmd->type & MOD_FLUID_TYPE_DOMAIN && fmd->domain) { + if (fmd->domain->tex_density) { + GPU_texture_free(fmd->domain->tex_density); + fmd->domain->tex_density = NULL; } - if (mmd->domain->tex_color) { - GPU_texture_free(mmd->domain->tex_color); - mmd->domain->tex_color = NULL; + if (fmd->domain->tex_color) { + GPU_texture_free(fmd->domain->tex_color); + fmd->domain->tex_color = NULL; } - if (mmd->domain->tex_shadow) { - GPU_texture_free(mmd->domain->tex_shadow); - mmd->domain->tex_shadow = NULL; + if (fmd->domain->tex_shadow) { + GPU_texture_free(fmd->domain->tex_shadow); + fmd->domain->tex_shadow = NULL; } - if (mmd->domain->tex_flame) { - GPU_texture_free(mmd->domain->tex_flame); - mmd->domain->tex_flame = NULL; + if (fmd->domain->tex_flame) { + GPU_texture_free(fmd->domain->tex_flame); + fmd->domain->tex_flame = NULL; } - if (mmd->domain->tex_flame_coba) { - GPU_texture_free(mmd->domain->tex_flame_coba); - mmd->domain->tex_flame_coba = NULL; + if (fmd->domain->tex_flame_coba) { + GPU_texture_free(fmd->domain->tex_flame_coba); + fmd->domain->tex_flame_coba = NULL; } - if (mmd->domain->tex_coba) { - GPU_texture_free(mmd->domain->tex_coba); - mmd->domain->tex_coba = NULL; + if (fmd->domain->tex_coba) { + GPU_texture_free(fmd->domain->tex_coba); + fmd->domain->tex_coba = NULL; } - if (mmd->domain->tex_field) { - GPU_texture_free(mmd->domain->tex_field); - mmd->domain->tex_field = NULL; + if (fmd->domain->tex_field) { + GPU_texture_free(fmd->domain->tex_field); + fmd->domain->tex_field = NULL; } } } -void GPU_create_smoke_coba_field(FluidModifierData *mmd) +void GPU_create_smoke_coba_field(FluidModifierData *fmd) { #ifndef WITH_FLUID - UNUSED_VARS(mmd); + UNUSED_VARS(fmd); #else - if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { - FluidDomainSettings *mds = mmd->domain; + if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { + FluidDomainSettings *fds = fmd->domain; - if (!mds->tex_field) { - mds->tex_field = create_field_texture(mds); + if (!fds->tex_field) { + fds->tex_field = create_field_texture(fds); } - if (!mds->tex_coba) { - mds->tex_coba = create_transfer_function(TFUNC_COLOR_RAMP, mds->coba); + if (!fds->tex_coba) { + fds->tex_coba = create_transfer_function(TFUNC_COLOR_RAMP, fds->coba); } } #endif } -void GPU_create_smoke(FluidModifierData *mmd, int highres) +void GPU_create_smoke(FluidModifierData *fmd, int highres) { #ifndef WITH_FLUID - UNUSED_VARS(mmd, highres); + UNUSED_VARS(fmd, highres); #else - if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { - FluidDomainSettings *mds = mmd->domain; + if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { + FluidDomainSettings *fds = fmd->domain; - if (!mds->tex_density) { - mds->tex_density = create_density_texture(mds, highres); + if (!fds->tex_density) { + fds->tex_density = create_density_texture(fds, highres); } - if (!mds->tex_color) { - mds->tex_color = create_color_texture(mds, highres); + if (!fds->tex_color) { + fds->tex_color = create_color_texture(fds, highres); } - if (!mds->tex_flame) { - mds->tex_flame = create_flame_texture(mds, highres); + if (!fds->tex_flame) { + fds->tex_flame = create_flame_texture(fds, highres); } - if (!mds->tex_flame_coba && mds->tex_flame) { - mds->tex_flame_coba = create_transfer_function(TFUNC_FLAME_SPECTRUM, NULL); + if (!fds->tex_flame_coba && fds->tex_flame) { + fds->tex_flame_coba = create_transfer_function(TFUNC_FLAME_SPECTRUM, NULL); } - if (!mds->tex_shadow) { - mds->tex_shadow = GPU_texture_create_nD(mds->res[0], - mds->res[1], - mds->res[2], + if (!fds->tex_shadow) { + fds->tex_shadow = GPU_texture_create_nD(fds->res[0], + fds->res[1], + fds->res[2], 3, - manta_smoke_get_shadow(mds->fluid), + manta_smoke_get_shadow(fds->fluid), GPU_R8, GPU_DATA_FLOAT, 0, @@ -370,53 +370,53 @@ void GPU_create_smoke(FluidModifierData *mmd, int highres) #endif /* WITH_FLUID */ } -void GPU_create_smoke_velocity(FluidModifierData *mmd) +void GPU_create_smoke_velocity(FluidModifierData *fmd) { #ifndef WITH_FLUID - UNUSED_VARS(mmd); + UNUSED_VARS(fmd); #else - if (mmd->type & MOD_FLUID_TYPE_DOMAIN) { - FluidDomainSettings *mds = mmd->domain; + if (fmd->type & MOD_FLUID_TYPE_DOMAIN) { + FluidDomainSettings *fds = fmd->domain; - const float *vel_x = manta_get_velocity_x(mds->fluid); - const float *vel_y = manta_get_velocity_y(mds->fluid); - const float *vel_z = manta_get_velocity_z(mds->fluid); + const float *vel_x = manta_get_velocity_x(fds->fluid); + const float *vel_y = manta_get_velocity_y(fds->fluid); + const float *vel_z = manta_get_velocity_z(fds->fluid); if (ELEM(NULL, vel_x, vel_y, vel_z)) { return; } - if (!mds->tex_velocity_x) { - mds->tex_velocity_x = GPU_texture_create_3d( - mds->res[0], mds->res[1], mds->res[2], GPU_R16F, vel_x, NULL); - mds->tex_velocity_y = GPU_texture_create_3d( - mds->res[0], mds->res[1], mds->res[2], GPU_R16F, vel_y, NULL); - mds->tex_velocity_z = GPU_texture_create_3d( - mds->res[0], mds->res[1], mds->res[2], GPU_R16F, vel_z, NULL); + if (!fds->tex_velocity_x) { + fds->tex_velocity_x = GPU_texture_create_3d( + fds->res[0], fds->res[1], fds->res[2], GPU_R16F, vel_x, NULL); + fds->tex_velocity_y = GPU_texture_create_3d( + fds->res[0], fds->res[1], fds->res[2], GPU_R16F, vel_y, NULL); + fds->tex_velocity_z = GPU_texture_create_3d( + fds->res[0], fds->res[1], fds->res[2], GPU_R16F, vel_z, NULL); } } #endif /* WITH_FLUID */ } /* TODO Unify with the other GPU_free_smoke. */ -void GPU_free_smoke_velocity(FluidModifierData *mmd) +void GPU_free_smoke_velocity(FluidModifierData *fmd) { - if (mmd->type & MOD_FLUID_TYPE_DOMAIN && mmd->domain) { - if (mmd->domain->tex_velocity_x) { - GPU_texture_free(mmd->domain->tex_velocity_x); + if (fmd->type & MOD_FLUID_TYPE_DOMAIN && fmd->domain) { + if (fmd->domain->tex_velocity_x) { + GPU_texture_free(fmd->domain->tex_velocity_x); } - if (mmd->domain->tex_velocity_y) { - GPU_texture_free(mmd->domain->tex_velocity_y); + if (fmd->domain->tex_velocity_y) { + GPU_texture_free(fmd->domain->tex_velocity_y); } - if (mmd->domain->tex_velocity_z) { - GPU_texture_free(mmd->domain->tex_velocity_z); + if (fmd->domain->tex_velocity_z) { + GPU_texture_free(fmd->domain->tex_velocity_z); } - mmd->domain->tex_velocity_x = NULL; - mmd->domain->tex_velocity_y = NULL; - mmd->domain->tex_velocity_z = NULL; + fmd->domain->tex_velocity_x = NULL; + fmd->domain->tex_velocity_y = NULL; + fmd->domain->tex_velocity_z = NULL; } } diff --git a/source/blender/makesdna/DNA_fluid_types.h b/source/blender/makesdna/DNA_fluid_types.h index cb0b92c481c..b54ff7ccc17 100644 --- a/source/blender/makesdna/DNA_fluid_types.h +++ b/source/blender/makesdna/DNA_fluid_types.h @@ -427,7 +427,7 @@ typedef struct FluidDomainSettings { /* -- Runtime-only fields (from here on). -- */ - struct FluidModifierData *mmd; /* For fast RNA access. */ + struct FluidModifierData *fmd; /* For fast RNA access. */ struct MANTA *fluid; struct MANTA *fluid_old; /* Adaptive domain needs access to old fluid state. */ void *fluid_mutex; @@ -689,7 +689,7 @@ typedef struct FluidFlowSettings { /* -- Runtime-only fields (from here on). -- */ /* For fast RNA access. */ - struct FluidModifierData *mmd; + struct FluidModifierData *fmd; struct Mesh *mesh; struct ParticleSystem *psys; struct Tex *noise_texture; @@ -765,7 +765,7 @@ typedef struct FluidEffectorSettings { /* -- Runtime-only fields (from here on). -- */ /* For fast RNA access. */ - struct FluidModifierData *mmd; + struct FluidModifierData *fmd; struct Mesh *mesh; float *verts_old; int numverts; diff --git a/source/blender/makesrna/intern/rna_fluid.c b/source/blender/makesrna/intern/rna_fluid.c index 0a634cc8b7f..ab0cc6def6f 100644 --- a/source/blender/makesrna/intern/rna_fluid.c +++ b/source/blender/makesrna/intern/rna_fluid.c @@ -77,7 +77,7 @@ static void rna_Fluid_datacache_reset(Main *UNUSED(bmain), Scene *UNUSED(scene), { # ifdef WITH_FLUID FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - if (settings->mmd && settings->mmd->domain) { + if (settings->fmd && settings->fmd->domain) { Object *ob = (Object *)ptr->owner_id; int cache_map = (FLUID_DOMAIN_OUTDATED_DATA | FLUID_DOMAIN_OUTDATED_NOISE | FLUID_DOMAIN_OUTDATED_MESH | FLUID_DOMAIN_OUTDATED_PARTICLES); @@ -90,7 +90,7 @@ static void rna_Fluid_noisecache_reset(Main *UNUSED(bmain), Scene *UNUSED(scene) { # ifdef WITH_FLUID FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - if (settings->mmd && settings->mmd->domain) { + if (settings->fmd && settings->fmd->domain) { Object *ob = (Object *)ptr->owner_id; int cache_map = FLUID_DOMAIN_OUTDATED_NOISE; BKE_fluid_cache_free(settings, ob, cache_map); @@ -102,7 +102,7 @@ static void rna_Fluid_meshcache_reset(Main *UNUSED(bmain), Scene *UNUSED(scene), { # ifdef WITH_FLUID FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - if (settings->mmd && settings->mmd->domain) { + if (settings->fmd && settings->fmd->domain) { Object *ob = (Object *)ptr->owner_id; int cache_map = FLUID_DOMAIN_OUTDATED_MESH; BKE_fluid_cache_free(settings, ob, cache_map); @@ -116,7 +116,7 @@ static void rna_Fluid_particlescache_reset(Main *UNUSED(bmain), { # ifdef WITH_FLUID FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - if (settings->mmd && settings->mmd->domain) { + if (settings->fmd && settings->fmd->domain) { Object *ob = (Object *)ptr->owner_id; int cache_map = FLUID_DOMAIN_OUTDATED_PARTICLES; BKE_fluid_cache_free(settings, ob, cache_map); @@ -130,7 +130,7 @@ static void rna_Fluid_guidingcache_reset(Main *UNUSED(bmain), { # ifdef WITH_FLUID FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - if (settings->mmd && settings->mmd->domain) { + if (settings->fmd && settings->fmd->domain) { Object *ob = (Object *)ptr->owner_id; int cache_map = (FLUID_DOMAIN_OUTDATED_DATA | FLUID_DOMAIN_OUTDATED_NOISE | FLUID_DOMAIN_OUTDATED_MESH | FLUID_DOMAIN_OUTDATED_PARTICLES | @@ -165,7 +165,7 @@ static void rna_Fluid_domain_reset(Main *bmain, Scene *scene, PointerRNA *ptr) { # ifdef WITH_FLUID FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - BKE_fluid_modifier_reset(settings->mmd); + BKE_fluid_modifier_reset(settings->fmd); # endif rna_Fluid_datacache_reset(bmain, scene, ptr); @@ -176,7 +176,7 @@ static void rna_Fluid_reset_dependency(Main *bmain, Scene *scene, PointerRNA *pt { # ifdef WITH_FLUID FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - BKE_fluid_modifier_reset(settings->mmd); + BKE_fluid_modifier_reset(settings->fmd); # endif rna_Fluid_dependency_update(bmain, scene, ptr); @@ -223,15 +223,15 @@ static bool rna_Fluid_parts_exists(PointerRNA *ptr, int ptype) static void rna_Fluid_flip_parts_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob = (Object *)ptr->owner_id; - FluidModifierData *mmd; - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + FluidModifierData *fmd; + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); bool exists = rna_Fluid_parts_exists(ptr, PART_FLUID_FLIP); /* Only create a particle system in liquid domain mode. * Remove any remaining data from a liquid sim when switching to gas. */ - if (mmd->domain->type != FLUID_DOMAIN_TYPE_LIQUID) { + if (fmd->domain->type != FLUID_DOMAIN_TYPE_LIQUID) { rna_Fluid_parts_delete(ptr, PART_FLUID_FLIP); - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; rna_Fluid_domain_reset(bmain, scene, ptr); return; } @@ -239,11 +239,11 @@ static void rna_Fluid_flip_parts_update(Main *bmain, Scene *scene, PointerRNA *p if (ob->type == OB_MESH && !exists) { rna_Fluid_parts_create( bmain, ptr, "LiquidParticleSettings", "Liquid", "Liquid Particle System", PART_FLUID_FLIP); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FLIP; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FLIP; } else { rna_Fluid_parts_delete(ptr, PART_FLUID_FLIP); - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; } rna_Fluid_update(bmain, scene, ptr); } @@ -251,26 +251,26 @@ static void rna_Fluid_flip_parts_update(Main *bmain, Scene *scene, PointerRNA *p static void rna_Fluid_spray_parts_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { Object *ob = (Object *)ptr->owner_id; - FluidModifierData *mmd; - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + FluidModifierData *fmd; + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); bool exists = rna_Fluid_parts_exists(ptr, PART_FLUID_SPRAY); if (ob->type == OB_MESH && !exists) { rna_Fluid_parts_create( bmain, ptr, "SprayParticleSettings", "Spray", "Spray Particle System", PART_FLUID_SPRAY); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; } else { rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAY); - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_SPRAY; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_SPRAY; } } static void rna_Fluid_bubble_parts_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { Object *ob = (Object *)ptr->owner_id; - FluidModifierData *mmd; - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + FluidModifierData *fmd; + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); bool exists = rna_Fluid_parts_exists(ptr, PART_FLUID_BUBBLE); if (ob->type == OB_MESH && !exists) { @@ -280,37 +280,37 @@ static void rna_Fluid_bubble_parts_update(Main *bmain, Scene *UNUSED(scene), Poi "Bubbles", "Bubble Particle System", PART_FLUID_BUBBLE); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; } else { rna_Fluid_parts_delete(ptr, PART_FLUID_BUBBLE); - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_BUBBLE; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_BUBBLE; } } static void rna_Fluid_foam_parts_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { Object *ob = (Object *)ptr->owner_id; - FluidModifierData *mmd; - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + FluidModifierData *fmd; + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); bool exists = rna_Fluid_parts_exists(ptr, PART_FLUID_FOAM); if (ob->type == OB_MESH && !exists) { rna_Fluid_parts_create( bmain, ptr, "FoamParticleSettings", "Foam", "Foam Particle System", PART_FLUID_FOAM); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; } else { rna_Fluid_parts_delete(ptr, PART_FLUID_FOAM); - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FOAM; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FOAM; } } static void rna_Fluid_tracer_parts_update(Main *bmain, Scene *UNUSED(scene), PointerRNA *ptr) { Object *ob = (Object *)ptr->owner_id; - FluidModifierData *mmd; - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + FluidModifierData *fmd; + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); bool exists = rna_Fluid_parts_exists(ptr, PART_FLUID_TRACER); if (ob->type == OB_MESH && !exists) { @@ -320,21 +320,21 @@ static void rna_Fluid_tracer_parts_update(Main *bmain, Scene *UNUSED(scene), Poi "Tracers", "Tracer Particle System", PART_FLUID_TRACER); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_TRACER; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_TRACER; } else { rna_Fluid_parts_delete(ptr, PART_FLUID_TRACER); - mmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_TRACER; + fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_TRACER; } } static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerRNA *ptr) { Object *ob = (Object *)ptr->owner_id; - FluidModifierData *mmd; - mmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); + FluidModifierData *fmd; + fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); - if (mmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_OFF) { + if (fmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_OFF) { rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAM); rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYBUBBLE); rna_Fluid_parts_delete(ptr, PART_FLUID_FOAMBUBBLE); @@ -345,17 +345,17 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR bool exists_bubble = rna_Fluid_parts_exists(ptr, PART_FLUID_BUBBLE); /* Re-add each particle type if enabled and no particle system exists for them anymore. */ - if ((mmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) && !exists_spray) { + if ((fmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) && !exists_spray) { rna_Fluid_spray_parts_update(bmain, scene, ptr); } - if ((mmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) && !exists_foam) { + if ((fmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) && !exists_foam) { rna_Fluid_foam_parts_update(bmain, scene, ptr); } - if ((mmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) && !exists_bubble) { + if ((fmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) && !exists_bubble) { rna_Fluid_bubble_parts_update(bmain, scene, ptr); } } - else if (mmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_SPRAY_FOAM) { + else if (fmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_SPRAY_FOAM) { if (ob->type == OB_MESH && !rna_Fluid_parts_exists(ptr, PART_FLUID_SPRAYFOAM)) { rna_Fluid_parts_create(bmain, @@ -365,8 +365,8 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR "Spray + Foam Particle System", PART_FLUID_SPRAYFOAM); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAY); rna_Fluid_parts_delete(ptr, PART_FLUID_FOAM); @@ -376,12 +376,12 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR /* Re-add spray if enabled and no particle system exists for it anymore. */ bool exists_bubble = rna_Fluid_parts_exists(ptr, PART_FLUID_BUBBLE); - if ((mmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) && !exists_bubble) { + if ((fmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_BUBBLE) && !exists_bubble) { rna_Fluid_bubble_parts_update(bmain, scene, ptr); } } } - else if (mmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_SPRAY_BUBBLE) { + else if (fmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_SPRAY_BUBBLE) { if (ob->type == OB_MESH && !rna_Fluid_parts_exists(ptr, PART_FLUID_SPRAYBUBBLE)) { rna_Fluid_parts_create(bmain, @@ -391,8 +391,8 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR "Spray + Bubble Particle System", PART_FLUID_SPRAYBUBBLE); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAY); rna_Fluid_parts_delete(ptr, PART_FLUID_BUBBLE); @@ -402,12 +402,12 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR /* Re-add foam if enabled and no particle system exists for it anymore. */ bool exists_foam = rna_Fluid_parts_exists(ptr, PART_FLUID_FOAM); - if ((mmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) && !exists_foam) { + if ((fmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_FOAM) && !exists_foam) { rna_Fluid_foam_parts_update(bmain, scene, ptr); } } } - else if (mmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_FOAM_BUBBLE) { + else if (fmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_FOAM_BUBBLE) { if (ob->type == OB_MESH && !rna_Fluid_parts_exists(ptr, PART_FLUID_FOAMBUBBLE)) { rna_Fluid_parts_create(bmain, @@ -417,8 +417,8 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR "Foam + Bubble Particle System", PART_FLUID_FOAMBUBBLE); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; rna_Fluid_parts_delete(ptr, PART_FLUID_FOAM); rna_Fluid_parts_delete(ptr, PART_FLUID_BUBBLE); @@ -428,12 +428,12 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR /* Re-add foam if enabled and no particle system exists for it anymore. */ bool exists_spray = rna_Fluid_parts_exists(ptr, PART_FLUID_SPRAY); - if ((mmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) && !exists_spray) { + if ((fmd->domain->particle_type & FLUID_DOMAIN_PARTICLE_SPRAY) && !exists_spray) { rna_Fluid_spray_parts_update(bmain, scene, ptr); } } } - else if (mmd->domain->sndparticle_combined_export == + else if (fmd->domain->sndparticle_combined_export == SNDPARTICLE_COMBINED_EXPORT_SPRAY_FOAM_BUBBLE) { if (ob->type == OB_MESH && !rna_Fluid_parts_exists(ptr, PART_FLUID_SPRAYFOAMBUBBLE)) { @@ -444,9 +444,9 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR "Spray + Foam + Bubble Particle System", PART_FLUID_SPRAYFOAMBUBBLE); - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; - mmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; + fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAY); rna_Fluid_parts_delete(ptr, PART_FLUID_FOAM); @@ -512,20 +512,20 @@ static void rna_Fluid_guide_parent_set(struct PointerRNA *ptr, struct PointerRNA value, struct ReportList *UNUSED(reports)) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; Object *par = (Object *)value.data; - FluidModifierData *mmd_par = NULL; + FluidModifierData *fmd_par = NULL; if (par != NULL) { - mmd_par = (FluidModifierData *)BKE_modifiers_findby_type(par, eModifierType_Fluid); - if (mmd_par && mmd_par->domain) { - mds->guide_parent = value.data; - copy_v3_v3_int(mds->guide_res, mmd_par->domain->res); + fmd_par = (FluidModifierData *)BKE_modifiers_findby_type(par, eModifierType_Fluid); + if (fmd_par && fmd_par->domain) { + fds->guide_parent = value.data; + copy_v3_v3_int(fds->guide_res, fmd_par->domain->res); } } else { - mds->guide_parent = NULL; + fds->guide_parent = NULL; } } @@ -580,9 +580,9 @@ static const EnumPropertyItem *rna_Fluid_cachetype_volume_itemf(bContext *UNUSED # endif /* Support for deprecated .raw format. */ - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; - if (mds->cache_data_format == FLUID_DOMAIN_FILE_RAW || - mds->cache_noise_format == FLUID_DOMAIN_FILE_RAW) { + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; + if (fds->cache_data_format == FLUID_DOMAIN_FILE_RAW || + fds->cache_noise_format == FLUID_DOMAIN_FILE_RAW) { tmp.value = FLUID_DOMAIN_FILE_RAW; tmp.identifier = "RAW"; tmp.name = "Raw Cache"; @@ -642,7 +642,7 @@ static void rna_Fluid_domaintype_set(struct PointerRNA *ptr, int value) static char *rna_FluidDomainSettings_path(PointerRNA *ptr) { FluidDomainSettings *settings = (FluidDomainSettings *)ptr->data; - ModifierData *md = (ModifierData *)settings->mmd; + ModifierData *md = (ModifierData *)settings->fmd; char name_esc[sizeof(md->name) * 2]; BLI_strescape(name_esc, md->name, sizeof(name_esc)); @@ -652,7 +652,7 @@ static char *rna_FluidDomainSettings_path(PointerRNA *ptr) static char *rna_FluidFlowSettings_path(PointerRNA *ptr) { FluidFlowSettings *settings = (FluidFlowSettings *)ptr->data; - ModifierData *md = (ModifierData *)settings->mmd; + ModifierData *md = (ModifierData *)settings->fmd; char name_esc[sizeof(md->name) * 2]; BLI_strescape(name_esc, md->name, sizeof(name_esc)); @@ -662,7 +662,7 @@ static char *rna_FluidFlowSettings_path(PointerRNA *ptr) static char *rna_FluidEffectorSettings_path(PointerRNA *ptr) { FluidEffectorSettings *settings = (FluidEffectorSettings *)ptr->data; - ModifierData *md = (ModifierData *)settings->mmd; + ModifierData *md = (ModifierData *)settings->fmd; char name_esc[sizeof(md->name) * 2]; BLI_strescape(name_esc, md->name, sizeof(name_esc)); @@ -677,23 +677,23 @@ static char *rna_FluidEffectorSettings_path(PointerRNA *ptr) static int rna_FluidModifier_grid_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION]) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; float *density = NULL; int size = 0; - if (mds->flags & FLUID_DOMAIN_USE_NOISE && mds->fluid) { + if (fds->flags & FLUID_DOMAIN_USE_NOISE && fds->fluid) { /* high resolution smoke */ int res[3]; - manta_smoke_turbulence_get_res(mds->fluid, res); + manta_smoke_turbulence_get_res(fds->fluid, res); size = res[0] * res[1] * res[2]; - density = manta_smoke_turbulence_get_density(mds->fluid); + density = manta_smoke_turbulence_get_density(fds->fluid); } - else if (mds->fluid) { + else if (fds->fluid) { /* regular resolution */ - size = mds->res[0] * mds->res[1] * mds->res[2]; - density = manta_smoke_get_density(mds->fluid); + size = fds->res[0] * fds->res[1] * fds->res[2]; + density = manta_smoke_get_density(fds->fluid); } length[0] = (density) ? size : 0; @@ -712,18 +712,18 @@ static int rna_FluidModifier_color_grid_get_length(PointerRNA *ptr, static int rna_FluidModifier_velocity_grid_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION]) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; float *vx = NULL; float *vy = NULL; float *vz = NULL; int size = 0; /* Velocity data is always low-resolution. */ - if (mds->fluid) { - size = 3 * mds->res[0] * mds->res[1] * mds->res[2]; - vx = manta_get_velocity_x(mds->fluid); - vy = manta_get_velocity_y(mds->fluid); - vz = manta_get_velocity_z(mds->fluid); + if (fds->fluid) { + size = 3 * fds->res[0] * fds->res[1] * fds->res[2]; + vx = manta_get_velocity_x(fds->fluid); + vy = manta_get_velocity_y(fds->fluid); + vz = manta_get_velocity_z(fds->fluid); } length[0] = (vx && vy && vz) ? size : 0; @@ -733,14 +733,14 @@ static int rna_FluidModifier_velocity_grid_get_length(PointerRNA *ptr, static int rna_FluidModifier_heat_grid_get_length(PointerRNA *ptr, int length[RNA_MAX_ARRAY_DIMENSION]) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; float *heat = NULL; int size = 0; /* Heat data is always low-resolution. */ - if (mds->fluid) { - size = mds->res[0] * mds->res[1] * mds->res[2]; - heat = manta_smoke_get_heat(mds->fluid); + if (fds->fluid) { + size = fds->res[0] * fds->res[1] * fds->res[2]; + heat = manta_smoke_get_heat(fds->fluid); } length[0] = (heat) ? size : 0; @@ -749,38 +749,38 @@ static int rna_FluidModifier_heat_grid_get_length(PointerRNA *ptr, static void rna_FluidModifier_density_grid_get(PointerRNA *ptr, float *values) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; int length[RNA_MAX_ARRAY_DIMENSION]; int size = rna_FluidModifier_grid_get_length(ptr, length); float *density; - BLI_rw_mutex_lock(mds->fluid_mutex, THREAD_LOCK_READ); + BLI_rw_mutex_lock(fds->fluid_mutex, THREAD_LOCK_READ); - if (mds->flags & FLUID_DOMAIN_USE_NOISE && mds->fluid) { - density = manta_smoke_turbulence_get_density(mds->fluid); + if (fds->flags & FLUID_DOMAIN_USE_NOISE && fds->fluid) { + density = manta_smoke_turbulence_get_density(fds->fluid); } else { - density = manta_smoke_get_density(mds->fluid); + density = manta_smoke_get_density(fds->fluid); } memcpy(values, density, size * sizeof(float)); - BLI_rw_mutex_unlock(mds->fluid_mutex); + BLI_rw_mutex_unlock(fds->fluid_mutex); } static void rna_FluidModifier_velocity_grid_get(PointerRNA *ptr, float *values) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; int length[RNA_MAX_ARRAY_DIMENSION]; int size = rna_FluidModifier_velocity_grid_get_length(ptr, length); float *vx, *vy, *vz; int i; - BLI_rw_mutex_lock(mds->fluid_mutex, THREAD_LOCK_READ); + BLI_rw_mutex_lock(fds->fluid_mutex, THREAD_LOCK_READ); - vx = manta_get_velocity_x(mds->fluid); - vy = manta_get_velocity_y(mds->fluid); - vz = manta_get_velocity_z(mds->fluid); + vx = manta_get_velocity_x(fds->fluid); + vy = manta_get_velocity_y(fds->fluid); + vz = manta_get_velocity_z(fds->fluid); for (i = 0; i < size; i += 3) { *(values++) = *(vx++); @@ -788,56 +788,56 @@ static void rna_FluidModifier_velocity_grid_get(PointerRNA *ptr, float *values) *(values++) = *(vz++); } - BLI_rw_mutex_unlock(mds->fluid_mutex); + BLI_rw_mutex_unlock(fds->fluid_mutex); } static void rna_FluidModifier_color_grid_get(PointerRNA *ptr, float *values) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; int length[RNA_MAX_ARRAY_DIMENSION]; int size = rna_FluidModifier_grid_get_length(ptr, length); - BLI_rw_mutex_lock(mds->fluid_mutex, THREAD_LOCK_READ); + BLI_rw_mutex_lock(fds->fluid_mutex, THREAD_LOCK_READ); - if (!mds->fluid) { + if (!fds->fluid) { memset(values, 0, size * sizeof(float)); } else { - if (mds->flags & FLUID_DOMAIN_USE_NOISE) { - if (manta_smoke_turbulence_has_colors(mds->fluid)) { - manta_smoke_turbulence_get_rgba(mds->fluid, values, 0); + if (fds->flags & FLUID_DOMAIN_USE_NOISE) { + if (manta_smoke_turbulence_has_colors(fds->fluid)) { + manta_smoke_turbulence_get_rgba(fds->fluid, values, 0); } else { - manta_smoke_turbulence_get_rgba_fixed_color(mds->fluid, mds->active_color, values, 0); + manta_smoke_turbulence_get_rgba_fixed_color(fds->fluid, fds->active_color, values, 0); } } else { - if (manta_smoke_has_colors(mds->fluid)) { - manta_smoke_get_rgba(mds->fluid, values, 0); + if (manta_smoke_has_colors(fds->fluid)) { + manta_smoke_get_rgba(fds->fluid, values, 0); } else { - manta_smoke_get_rgba_fixed_color(mds->fluid, mds->active_color, values, 0); + manta_smoke_get_rgba_fixed_color(fds->fluid, fds->active_color, values, 0); } } } - BLI_rw_mutex_unlock(mds->fluid_mutex); + BLI_rw_mutex_unlock(fds->fluid_mutex); } static void rna_FluidModifier_flame_grid_get(PointerRNA *ptr, float *values) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; int length[RNA_MAX_ARRAY_DIMENSION]; int size = rna_FluidModifier_grid_get_length(ptr, length); float *flame; - BLI_rw_mutex_lock(mds->fluid_mutex, THREAD_LOCK_READ); + BLI_rw_mutex_lock(fds->fluid_mutex, THREAD_LOCK_READ); - if (mds->flags & FLUID_DOMAIN_USE_NOISE && mds->fluid) { - flame = manta_smoke_turbulence_get_flame(mds->fluid); + if (fds->flags & FLUID_DOMAIN_USE_NOISE && fds->fluid) { + flame = manta_smoke_turbulence_get_flame(fds->fluid); } else { - flame = manta_smoke_get_flame(mds->fluid); + flame = manta_smoke_get_flame(fds->fluid); } if (flame) { @@ -847,19 +847,19 @@ static void rna_FluidModifier_flame_grid_get(PointerRNA *ptr, float *values) memset(values, 0, size * sizeof(float)); } - BLI_rw_mutex_unlock(mds->fluid_mutex); + BLI_rw_mutex_unlock(fds->fluid_mutex); } static void rna_FluidModifier_heat_grid_get(PointerRNA *ptr, float *values) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; int length[RNA_MAX_ARRAY_DIMENSION]; int size = rna_FluidModifier_heat_grid_get_length(ptr, length); float *heat; - BLI_rw_mutex_lock(mds->fluid_mutex, THREAD_LOCK_READ); + BLI_rw_mutex_lock(fds->fluid_mutex, THREAD_LOCK_READ); - heat = manta_smoke_get_heat(mds->fluid); + heat = manta_smoke_get_heat(fds->fluid); if (heat != NULL) { /* scale heat values from -2.0-2.0 to -1.0-1.0. */ @@ -871,29 +871,29 @@ static void rna_FluidModifier_heat_grid_get(PointerRNA *ptr, float *values) memset(values, 0, size * sizeof(float)); } - BLI_rw_mutex_unlock(mds->fluid_mutex); + BLI_rw_mutex_unlock(fds->fluid_mutex); } static void rna_FluidModifier_temperature_grid_get(PointerRNA *ptr, float *values) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; int length[RNA_MAX_ARRAY_DIMENSION]; int size = rna_FluidModifier_grid_get_length(ptr, length); float *flame; - BLI_rw_mutex_lock(mds->fluid_mutex, THREAD_LOCK_READ); + BLI_rw_mutex_lock(fds->fluid_mutex, THREAD_LOCK_READ); - if (mds->flags & FLUID_DOMAIN_USE_NOISE && mds->fluid) { - flame = manta_smoke_turbulence_get_flame(mds->fluid); + if (fds->flags & FLUID_DOMAIN_USE_NOISE && fds->fluid) { + flame = manta_smoke_turbulence_get_flame(fds->fluid); } else { - flame = manta_smoke_get_flame(mds->fluid); + flame = manta_smoke_get_flame(fds->fluid); } if (flame) { /* Output is such that 0..1 maps to 0..1000K */ - float offset = mds->flame_ignition; - float scale = mds->flame_max_temp - mds->flame_ignition; + float offset = fds->flame_ignition; + float scale = fds->flame_max_temp - fds->flame_ignition; for (int i = 0; i < size; i++) { values[i] = (flame[i] > 0.01f) ? offset + flame[i] * scale : 0.0f; @@ -903,7 +903,7 @@ static void rna_FluidModifier_temperature_grid_get(PointerRNA *ptr, float *value memset(values, 0, size * sizeof(float)); } - BLI_rw_mutex_unlock(mds->fluid_mutex); + BLI_rw_mutex_unlock(fds->fluid_mutex); } # endif /* WITH_FLUID */ @@ -935,12 +935,12 @@ static void rna_FluidFlow_uvlayer_set(struct PointerRNA *ptr, const char *value) static void rna_Fluid_use_color_ramp_set(struct PointerRNA *ptr, bool value) { - FluidDomainSettings *mds = (FluidDomainSettings *)ptr->data; + FluidDomainSettings *fds = (FluidDomainSettings *)ptr->data; - mds->use_coba = value; + fds->use_coba = value; - if (value && mds->coba == NULL) { - mds->coba = BKE_colorband_add(false); + if (value && fds->coba == NULL) { + fds->coba = BKE_colorband_add(false); } } diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index fd7b6b3f0d6..c92fe5ee508 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -1040,20 +1040,20 @@ static void rna_UVProjector_object_set(PointerRNA *ptr, static void rna_fluid_set_type(Main *bmain, Scene *scene, PointerRNA *ptr) { - FluidModifierData *mmd = (FluidModifierData *)ptr->data; + FluidModifierData *fmd = (FluidModifierData *)ptr->data; Object *ob = (Object *)ptr->owner_id; /* nothing changed */ - if ((mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { + if ((fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { return; } # ifdef WITH_FLUID - BKE_fluid_modifier_free(mmd); /* XXX TODO: completely free all 3 pointers */ - BKE_fluid_modifier_create_type_data(mmd); /* create regarding of selected type */ + BKE_fluid_modifier_free(fmd); /* XXX TODO: completely free all 3 pointers */ + BKE_fluid_modifier_create_type_data(fmd); /* create regarding of selected type */ # endif - switch (mmd->type) { + switch (fmd->type) { case MOD_FLUID_TYPE_DOMAIN: ob->dt = OB_WIRE; break; diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 0a4e714c2ef..0b932f3236f 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -805,8 +805,8 @@ static char *rna_EffectorWeight_path(PointerRNA *ptr) /* check smoke modifier */ md = (ModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); if (md) { - FluidModifierData *mmd = (FluidModifierData *)md; - if (mmd->domain->effector_weights == ew) { + FluidModifierData *fmd = (FluidModifierData *)md; + if (fmd->domain->effector_weights == ew) { char name_esc[sizeof(md->name) * 2]; BLI_strescape(name_esc, md->name, sizeof(name_esc)); return BLI_sprintfN("modifiers[\"%s\"].settings.effector_weights", name_esc); diff --git a/source/blender/modifiers/intern/MOD_fluid.c b/source/blender/modifiers/intern/MOD_fluid.c index 3cc5280100a..e994b80ddea 100644 --- a/source/blender/modifiers/intern/MOD_fluid.c +++ b/source/blender/modifiers/intern/MOD_fluid.c @@ -59,13 +59,13 @@ static void initData(ModifierData *md) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - mmd->domain = NULL; - mmd->flow = NULL; - mmd->effector = NULL; - mmd->type = 0; - mmd->time = -1; + fmd->domain = NULL; + fmd->flow = NULL; + fmd->effector = NULL; + fmd->type = 0; + fmd->time = -1; } static void copyData(const ModifierData *md, ModifierData *target, const int flag) @@ -73,11 +73,11 @@ static void copyData(const ModifierData *md, ModifierData *target, const int fla #ifndef WITH_FLUID UNUSED_VARS(md, target, flag); #else - const FluidModifierData *mmd = (const FluidModifierData *)md; - FluidModifierData *tmmd = (FluidModifierData *)target; + const FluidModifierData *fmd = (const FluidModifierData *)md; + FluidModifierData *tfmd = (FluidModifierData *)target; - BKE_fluid_modifier_free(tmmd); - BKE_fluid_modifier_copy(mmd, tmmd, flag); + BKE_fluid_modifier_free(tfmd); + BKE_fluid_modifier_copy(fmd, tfmd, flag); #endif /* WITH_FLUID */ } @@ -86,9 +86,9 @@ static void freeData(ModifierData *md) #ifndef WITH_FLUID UNUSED_VARS(md); #else - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - BKE_fluid_modifier_free(mmd); + BKE_fluid_modifier_free(fmd); #endif /* WITH_FLUID */ } @@ -96,16 +96,16 @@ static void requiredDataMask(Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - if (mmd && (mmd->type & MOD_FLUID_TYPE_FLOW) && mmd->flow) { - if (mmd->flow->source == FLUID_FLOW_SOURCE_MESH) { + if (fmd && (fmd->type & MOD_FLUID_TYPE_FLOW) && fmd->flow) { + if (fmd->flow->source == FLUID_FLOW_SOURCE_MESH) { /* vertex groups */ - if (mmd->flow->vgroup_density) { + if (fmd->flow->vgroup_density) { r_cddata_masks->vmask |= CD_MASK_MDEFORMVERT; } /* uv layer */ - if (mmd->flow->texture_type == FLUID_FLOW_TEXTURE_MAP_UV) { + if (fmd->flow->texture_type == FLUID_FLOW_TEXTURE_MAP_UV) { r_cddata_masks->fmask |= CD_MASK_MTFACE; } } @@ -118,7 +118,7 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh * UNUSED_VARS(md, ctx); return me; #else - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; Mesh *result = NULL; if (ctx->flag & MOD_APPLY_ORCO) { @@ -127,7 +127,7 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh * Scene *scene = DEG_get_evaluated_scene(ctx->depsgraph); - result = BKE_fluid_modifier_do(mmd, ctx->depsgraph, scene, ctx->object, me); + result = BKE_fluid_modifier_do(fmd, ctx->depsgraph, scene, ctx->object, me); return result ? result : me; #endif /* WITH_FLUID */ } @@ -139,69 +139,69 @@ static bool dependsOnTime(ModifierData *UNUSED(md)) static bool is_flow_cb(Object *UNUSED(ob), ModifierData *md) { - FluidModifierData *mmd = (FluidModifierData *)md; - return (mmd->type & MOD_FLUID_TYPE_FLOW) && mmd->flow; + FluidModifierData *fmd = (FluidModifierData *)md; + return (fmd->type & MOD_FLUID_TYPE_FLOW) && fmd->flow; } static bool is_coll_cb(Object *UNUSED(ob), ModifierData *md) { - FluidModifierData *mmd = (FluidModifierData *)md; - return (mmd->type & MOD_FLUID_TYPE_EFFEC) && mmd->effector; + FluidModifierData *fmd = (FluidModifierData *)md; + return (fmd->type & MOD_FLUID_TYPE_EFFEC) && fmd->effector; } static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - if (mmd && (mmd->type & MOD_FLUID_TYPE_DOMAIN) && mmd->domain) { + if (fmd && (fmd->type & MOD_FLUID_TYPE_DOMAIN) && fmd->domain) { DEG_add_collision_relations(ctx->node, ctx->object, - mmd->domain->fluid_group, + fmd->domain->fluid_group, eModifierType_Fluid, is_flow_cb, "Fluid Flow"); DEG_add_collision_relations(ctx->node, ctx->object, - mmd->domain->effector_group, + fmd->domain->effector_group, eModifierType_Fluid, is_coll_cb, "Fluid Effector"); DEG_add_forcefield_relations(ctx->node, ctx->object, - mmd->domain->effector_weights, + fmd->domain->effector_weights, true, PFIELD_FLUIDFLOW, "Fluid Force Field"); - if (mmd->domain->guide_parent != NULL) { + if (fmd->domain->guide_parent != NULL) { DEG_add_object_relation( - ctx->node, mmd->domain->guide_parent, DEG_OB_COMP_TRANSFORM, "Fluid Guiding Object"); + ctx->node, fmd->domain->guide_parent, DEG_OB_COMP_TRANSFORM, "Fluid Guiding Object"); DEG_add_object_relation( - ctx->node, mmd->domain->guide_parent, DEG_OB_COMP_GEOMETRY, "Fluid Guiding Object"); + ctx->node, fmd->domain->guide_parent, DEG_OB_COMP_GEOMETRY, "Fluid Guiding Object"); } } } static void foreachIDLink(ModifierData *md, Object *ob, IDWalkFunc walk, void *userData) { - FluidModifierData *mmd = (FluidModifierData *)md; + FluidModifierData *fmd = (FluidModifierData *)md; - if (mmd->type == MOD_FLUID_TYPE_DOMAIN && mmd->domain) { - walk(userData, ob, (ID **)&mmd->domain->effector_group, IDWALK_CB_NOP); - walk(userData, ob, (ID **)&mmd->domain->fluid_group, IDWALK_CB_NOP); - walk(userData, ob, (ID **)&mmd->domain->force_group, IDWALK_CB_NOP); + if (fmd->type == MOD_FLUID_TYPE_DOMAIN && fmd->domain) { + walk(userData, ob, (ID **)&fmd->domain->effector_group, IDWALK_CB_NOP); + walk(userData, ob, (ID **)&fmd->domain->fluid_group, IDWALK_CB_NOP); + walk(userData, ob, (ID **)&fmd->domain->force_group, IDWALK_CB_NOP); - if (mmd->domain->guide_parent) { - walk(userData, ob, (ID **)&mmd->domain->guide_parent, IDWALK_CB_NOP); + if (fmd->domain->guide_parent) { + walk(userData, ob, (ID **)&fmd->domain->guide_parent, IDWALK_CB_NOP); } - if (mmd->domain->effector_weights) { - walk(userData, ob, (ID **)&mmd->domain->effector_weights->group, IDWALK_CB_NOP); + if (fmd->domain->effector_weights) { + walk(userData, ob, (ID **)&fmd->domain->effector_weights->group, IDWALK_CB_NOP); } } - if (mmd->type == MOD_FLUID_TYPE_FLOW && mmd->flow) { - walk(userData, ob, (ID **)&mmd->flow->noise_texture, IDWALK_CB_USER); + if (fmd->type == MOD_FLUID_TYPE_FLOW && fmd->flow) { + walk(userData, ob, (ID **)&fmd->flow->noise_texture, IDWALK_CB_USER); } } |