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/blenkernel/intern/fluid.c')
-rw-r--r--source/blender/blenkernel/intern/fluid.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index 9919a0d7385..366137b5fa6 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -705,8 +705,7 @@ static void bb_allocateData(FluidObjectBB *bb, bool use_velocity, bool use_influ
}
bb->distances = MEM_malloc_arrayN(bb->total_cells, sizeof(float), "fluid_bb_distances");
- /* Initialize to infinity. */
- memset(bb->distances, 0x7f7f7f7f, sizeof(float) * bb->total_cells);
+ copy_vn_fl(bb->distances, bb->total_cells, FLT_MAX);
bb->valid = true;
}
@@ -3272,12 +3271,12 @@ static Mesh *create_liquid_geometry(FluidDomainSettings *mds, Mesh *orgmesh, Obj
}
me = BKE_mesh_new_nomain(num_verts, 0, 0, num_faces * 3, num_faces);
- mverts = me->mvert;
- mpolys = me->mpoly;
- mloops = me->mloop;
if (!me) {
return NULL;
}
+ mverts = me->mvert;
+ mpolys = me->mpoly;
+ mloops = me->mloop;
/* Get size (dimension) but considering scaling scaling. */
copy_v3_v3(cell_size_scaled, mds->cell_size);
@@ -3674,8 +3673,9 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd,
/* Reset fluid if no fluid present (obviously)
* or if timeline gets reset to startframe */
- if (!mds->fluid || is_startframe) {
+ if (!mds->fluid) {
BKE_fluid_modifier_reset_ex(mmd, false);
+ BKE_fluid_modifier_init(mmd, depsgraph, ob, scene, me);
}
/* Guiding parent res pointer needs initialization */
@@ -3687,8 +3687,6 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd,
}
}
- BKE_fluid_modifier_init(mmd, depsgraph, ob, scene, me);
-
/* 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;
@@ -3743,10 +3741,9 @@ static void BKE_fluid_modifier_processDomain(FluidModifierData *mmd,
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;
- bake_outdated = mds->cache_flag &
- (FLUID_DOMAIN_OUTDATED_DATA | FLUID_DOMAIN_OUTDATED_NOISE |
- FLUID_DOMAIN_OUTDATED_NOISE | FLUID_DOMAIN_OUTDATED_MESH |
- FLUID_DOMAIN_OUTDATED_PARTICLES | FLUID_DOMAIN_OUTDATED_GUIDE);
+ bake_outdated = mds->cache_flag & (FLUID_DOMAIN_OUTDATED_DATA | FLUID_DOMAIN_OUTDATED_NOISE |
+ FLUID_DOMAIN_OUTDATED_MESH | FLUID_DOMAIN_OUTDATED_PARTICLES |
+ FLUID_DOMAIN_OUTDATED_GUIDE);
bool resume_data, resume_noise, resume_mesh, resume_particles, resume_guide;
resume_data = (!is_startframe) && (mds->cache_frame_pause_data == scene_framenr);
@@ -4897,7 +4894,6 @@ void BKE_fluid_modifier_create_type_data(struct FluidModifierData *mmd)
mmd->flow->type = FLUID_FLOW_TYPE_SMOKE;
mmd->flow->behavior = FLUID_FLOW_BEHAVIOR_GEOMETRY;
- mmd->flow->type = FLUID_FLOW_TYPE_SMOKE;
mmd->flow->flags = FLUID_FLOW_ABSOLUTE | FLUID_FLOW_USE_PART_SIZE | FLUID_FLOW_USE_INFLOW;
}
else if (mmd->type & MOD_FLUID_TYPE_EFFEC) {