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')
-rw-r--r--source/blender/blenkernel/BKE_fluid.h1
-rw-r--r--source/blender/blenkernel/intern/fluid.c52
2 files changed, 50 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_fluid.h b/source/blender/blenkernel/BKE_fluid.h
index 88a5492d85b..87e1c7a57ed 100644
--- a/source/blender/blenkernel/BKE_fluid.h
+++ b/source/blender/blenkernel/BKE_fluid.h
@@ -93,6 +93,7 @@ void BKE_fluid_flow_type_set(struct Object *object, struct FluidFlowSettings *se
void BKE_fluid_effector_type_set(struct Object *object,
struct FluidEffectorSettings *settings,
int type);
+void BKE_fluid_coba_field_sanitize(struct FluidDomainSettings *settings);
void BKE_fluid_flow_behavior_set(struct Object *object,
struct FluidFlowSettings *settings,
int behavior);
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c
index df7d308a87c..98488bb46d8 100644
--- a/source/blender/blenkernel/intern/fluid.c
+++ b/source/blender/blenkernel/intern/fluid.c
@@ -4682,6 +4682,30 @@ void BKE_fluid_effector_type_set(Object *UNUSED(object), FluidEffectorSettings *
settings->type = type;
}
+void BKE_fluid_coba_field_sanitize(FluidDomainSettings *settings)
+{
+ /* Based on the domain type, the coba field is defaulted accordingly if the selected field
+ * is unsupported. */
+ const char field = settings->coba_field;
+
+ if (settings->type == FLUID_DOMAIN_TYPE_GAS) {
+ if (field == FLUID_DOMAIN_FIELD_PHI || field == FLUID_DOMAIN_FIELD_PHI_IN ||
+ field == FLUID_DOMAIN_FIELD_PHI_OUT || field == FLUID_DOMAIN_FIELD_PHI_OBSTACLE) {
+ /* Defaulted to density for gas domain. */
+ settings->coba_field = FLUID_DOMAIN_FIELD_DENSITY;
+ }
+ }
+ else if (settings->type == FLUID_DOMAIN_TYPE_LIQUID) {
+ if (field == FLUID_DOMAIN_FIELD_COLOR_R || field == FLUID_DOMAIN_FIELD_COLOR_G ||
+ field == FLUID_DOMAIN_FIELD_COLOR_B || field == FLUID_DOMAIN_FIELD_DENSITY ||
+ field == FLUID_DOMAIN_FIELD_FLAME || field == FLUID_DOMAIN_FIELD_FUEL ||
+ field == FLUID_DOMAIN_FIELD_HEAT) {
+ /* Defaulted to phi for liquid domain. */
+ settings->coba_field = FLUID_DOMAIN_FIELD_PHI;
+ }
+ }
+}
+
/** \} */
/* -------------------------------------------------------------------- */
@@ -4980,19 +5004,32 @@ void BKE_fluid_modifier_create_type_data(struct FluidModifierData *fmd)
fmd->domain->timesteps_maximum = 4;
/* display options */
- 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->interp_method = FLUID_DISPLAY_INTERP_LINEAR;
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->show_gridlines = false;
fmd->domain->coba = NULL;
+ fmd->domain->grid_scale = 1.0f;
fmd->domain->vector_scale = 1.0f;
fmd->domain->vector_draw_type = VECTOR_DRAW_NEEDLE;
+ fmd->domain->vector_field = FLUID_DOMAIN_VECTOR_FIELD_VELOCITY;
+ fmd->domain->vector_scale_with_magnitude = true;
+ fmd->domain->vector_draw_mac_components = VECTOR_DRAW_MAC_X | VECTOR_DRAW_MAC_Y |
+ VECTOR_DRAW_MAC_Z;
fmd->domain->use_coba = false;
fmd->domain->coba_field = FLUID_DOMAIN_FIELD_DENSITY;
+ fmd->domain->gridlines_color_field = 0;
+ fmd->domain->gridlines_lower_bound = 0.0f;
+ fmd->domain->gridlines_upper_bound = 1.0f;
+ fmd->domain->gridlines_range_color[0] = 1.0f;
+ fmd->domain->gridlines_range_color[1] = 0.0f;
+ fmd->domain->gridlines_range_color[2] = 0.0f;
+ fmd->domain->gridlines_range_color[3] = 1.0f;
+ fmd->domain->gridlines_cell_filter = FLUID_CELL_TYPE_NONE;
/* -- Deprecated / unsed options (below)-- */
@@ -5219,7 +5256,6 @@ void BKE_fluid_modifier_copy(const struct FluidModifierData *fmd,
tfds->timesteps_maximum = fds->timesteps_maximum;
/* display options */
- 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;
@@ -5227,13 +5263,23 @@ void BKE_fluid_modifier_copy(const struct FluidModifierData *fmd,
tfds->slice_per_voxel = fds->slice_per_voxel;
tfds->slice_depth = fds->slice_depth;
tfds->display_thickness = fds->display_thickness;
+ tfds->show_gridlines = fds->show_gridlines;
if (fds->coba) {
tfds->coba = MEM_dupallocN(fds->coba);
}
tfds->vector_scale = fds->vector_scale;
tfds->vector_draw_type = fds->vector_draw_type;
+ tfds->vector_field = fds->vector_field;
+ tfds->vector_scale_with_magnitude = fds->vector_scale_with_magnitude;
+ tfds->vector_draw_mac_components = fds->vector_draw_mac_components;
tfds->use_coba = fds->use_coba;
tfds->coba_field = fds->coba_field;
+ tfds->grid_scale = fds->grid_scale;
+ tfds->gridlines_color_field = fds->gridlines_color_field;
+ tfds->gridlines_lower_bound = fds->gridlines_lower_bound;
+ tfds->gridlines_upper_bound = fds->gridlines_upper_bound;
+ copy_v4_v4(tfds->gridlines_range_color, fds->gridlines_range_color);
+ tfds->gridlines_cell_filter = fds->gridlines_cell_filter;
/* -- Deprecated / unsed options (below)-- */