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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_fluid.h22
-rw-r--r--source/blender/blenkernel/BKE_pointcache.h2
-rw-r--r--source/blender/blenkernel/intern/bpath.c6
-rw-r--r--source/blender/blenkernel/intern/fluid.c2450
-rw-r--r--source/blender/blenkernel/intern/object.c14
-rw-r--r--source/blender/blenkernel/intern/particle.c22
-rw-r--r--source/blender/blenkernel/intern/particle_system.c78
-rw-r--r--source/blender/blenkernel/intern/pointcache.c410
-rw-r--r--source/blender/blenloader/intern/readfile.c126
-rw-r--r--source/blender/blenloader/intern/versioning_250.c22
-rw-r--r--source/blender/blenloader/intern/versioning_260.c70
-rw-r--r--source/blender/blenloader/intern/versioning_270.c16
-rw-r--r--source/blender/blenloader/intern/writefile.c36
-rw-r--r--source/blender/draw/engines/eevee/eevee_volumes.c38
-rw-r--r--source/blender/draw/engines/overlay/overlay_extra.c54
-rw-r--r--source/blender/draw/engines/workbench/workbench_volume.c68
-rw-r--r--source/blender/editors/physics/physics_fluid.c170
-rw-r--r--source/blender/gpu/GPU_draw.h10
-rw-r--r--source/blender/gpu/intern/gpu_draw_smoke.c214
-rw-r--r--source/blender/makesdna/DNA_fluid_types.h6
-rw-r--r--source/blender/makesrna/intern/rna_fluid.c252
-rw-r--r--source/blender/makesrna/intern/rna_modifier.c10
-rw-r--r--source/blender/makesrna/intern/rna_object_force.c4
-rw-r--r--source/blender/modifiers/intern/MOD_fluid.c84
24 files changed, 2092 insertions, 2092 deletions
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);
}
}