diff options
Diffstat (limited to 'source/blender/makesrna/intern/rna_fluid.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_fluid.c | 194 |
1 files changed, 101 insertions, 93 deletions
diff --git a/source/blender/makesrna/intern/rna_fluid.c b/source/blender/makesrna/intern/rna_fluid.c index 3b22ae9d40f..bd601d0a736 100644 --- a/source/blender/makesrna/intern/rna_fluid.c +++ b/source/blender/makesrna/intern/rna_fluid.c @@ -20,6 +20,8 @@ #include "BKE_modifier.h" #include "BKE_pointcache.h" +#include "BLT_translation.h" + #include "DNA_fluid_types.h" #include "DNA_modifier_types.h" #include "DNA_object_force_types.h" @@ -218,16 +220,22 @@ static void rna_Fluid_parts_create(Main *bmain, # else Object *ob = (Object *)ptr->owner_id; BKE_fluid_particle_system_create(bmain, ob, pset_name, parts_name, psys_name, psys_type); + + DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY); + DEG_relations_tag_update(bmain); # endif } -static void rna_Fluid_parts_delete(PointerRNA *ptr, int ptype) +static void rna_Fluid_parts_delete(Main *bmain, PointerRNA *ptr, int ptype) { # ifndef WITH_FLUID - UNUSED_VARS(ptr, ptype); + UNUSED_VARS(bmain, ptr, ptype); # else Object *ob = (Object *)ptr->owner_id; BKE_fluid_particle_system_destroy(ob, ptype); + + DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY); + DEG_relations_tag_update(bmain); # endif } @@ -254,7 +262,7 @@ static void rna_Fluid_flip_parts_update(Main *bmain, Scene *scene, PointerRNA *p /* Only create a particle system in liquid domain mode. * Remove any remaining data from a liquid sim when switching to gas. */ if (fmd->domain->type != FLUID_DOMAIN_TYPE_LIQUID) { - rna_Fluid_parts_delete(ptr, PART_FLUID_FLIP); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FLIP); fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; rna_Fluid_domain_data_reset(bmain, scene, ptr); return; @@ -266,7 +274,7 @@ static void rna_Fluid_flip_parts_update(Main *bmain, Scene *scene, PointerRNA *p fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FLIP; } else { - rna_Fluid_parts_delete(ptr, PART_FLUID_FLIP); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FLIP); fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FLIP; } rna_Fluid_update(bmain, scene, ptr); @@ -285,7 +293,7 @@ static void rna_Fluid_spray_parts_update(Main *bmain, Scene *UNUSED(scene), Poin fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_SPRAY; } else { - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAY); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAY); fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_SPRAY; } } @@ -307,7 +315,7 @@ static void rna_Fluid_bubble_parts_update(Main *bmain, Scene *UNUSED(scene), Poi fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_BUBBLE; } else { - rna_Fluid_parts_delete(ptr, PART_FLUID_BUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_BUBBLE); fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_BUBBLE; } } @@ -325,7 +333,7 @@ static void rna_Fluid_foam_parts_update(Main *bmain, Scene *UNUSED(scene), Point fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_FOAM; } else { - rna_Fluid_parts_delete(ptr, PART_FLUID_FOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAM); fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_FOAM; } } @@ -347,7 +355,7 @@ static void rna_Fluid_tracer_parts_update(Main *bmain, Scene *UNUSED(scene), Poi fmd->domain->particle_type |= FLUID_DOMAIN_PARTICLE_TRACER; } else { - rna_Fluid_parts_delete(ptr, PART_FLUID_TRACER); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_TRACER); fmd->domain->particle_type &= ~FLUID_DOMAIN_PARTICLE_TRACER; } } @@ -359,10 +367,10 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR fmd = (FluidModifierData *)BKE_modifiers_findby_type(ob, eModifierType_Fluid); 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); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAMBUBBLE); bool exists_spray = rna_Fluid_parts_exists(ptr, PART_FLUID_SPRAY); bool exists_foam = rna_Fluid_parts_exists(ptr, PART_FLUID_FOAM); @@ -392,11 +400,11 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR 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); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYBUBBLE); - rna_Fluid_parts_delete(ptr, PART_FLUID_FOAMBUBBLE); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAY); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAMBUBBLE); /* Re-add spray if enabled and no particle system exists for it anymore. */ bool exists_bubble = rna_Fluid_parts_exists(ptr, PART_FLUID_BUBBLE); @@ -418,11 +426,11 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR 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); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAM); - rna_Fluid_parts_delete(ptr, PART_FLUID_FOAMBUBBLE); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAY); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_BUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAMBUBBLE); /* Re-add foam if enabled and no particle system exists for it anymore. */ bool exists_foam = rna_Fluid_parts_exists(ptr, PART_FLUID_FOAM); @@ -444,11 +452,11 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR 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); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAM); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYBUBBLE); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_BUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAMBUBBLE); /* Re-add foam if enabled and no particle system exists for it anymore. */ bool exists_spray = rna_Fluid_parts_exists(ptr, PART_FLUID_SPRAY); @@ -472,12 +480,12 @@ static void rna_Fluid_combined_export_update(Main *bmain, Scene *scene, PointerR 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); - rna_Fluid_parts_delete(ptr, PART_FLUID_BUBBLE); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYFOAM); - rna_Fluid_parts_delete(ptr, PART_FLUID_SPRAYBUBBLE); - rna_Fluid_parts_delete(ptr, PART_FLUID_FOAMBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAY); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_BUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYFOAM); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_SPRAYBUBBLE); + rna_Fluid_parts_delete(bmain, ptr, PART_FLUID_FOAMBUBBLE); } } else { @@ -564,14 +572,14 @@ static const EnumPropertyItem *rna_Fluid_cachetype_mesh_itemf(bContext *UNUSED(C tmp.value = FLUID_DOMAIN_FILE_BIN_OBJECT; tmp.identifier = "BOBJECT"; - tmp.name = "Binary Object"; - tmp.description = "Binary object file format (.bobj.gz)"; + tmp.name = N_("Binary Object"); + tmp.description = N_("Binary object file format (.bobj.gz)"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FILE_OBJECT; tmp.identifier = "OBJECT"; - tmp.name = "Object"; - tmp.description = "Object file format (.obj)"; + tmp.name = N_("Object"); + tmp.description = N_("Object file format (.obj)"); RNA_enum_item_add(&item, &totitem, &tmp); RNA_enum_item_end(&item, &totitem); @@ -591,15 +599,15 @@ static const EnumPropertyItem *rna_Fluid_cachetype_volume_itemf(bContext *UNUSED tmp.value = FLUID_DOMAIN_FILE_UNI; tmp.identifier = "UNI"; - tmp.name = "Uni Cache"; - tmp.description = "Uni file format (.uni)"; + tmp.name = N_("Uni Cache"); + tmp.description = N_("Uni file format (.uni)"); RNA_enum_item_add(&item, &totitem, &tmp); # ifdef WITH_OPENVDB tmp.value = FLUID_DOMAIN_FILE_OPENVDB; tmp.identifier = "OPENVDB"; - tmp.name = "OpenVDB"; - tmp.description = "OpenVDB file format (.vdb)"; + tmp.name = N_("OpenVDB"); + tmp.description = N_("OpenVDB file format (.vdb)"); RNA_enum_item_add(&item, &totitem, &tmp); # endif @@ -609,8 +617,8 @@ static const EnumPropertyItem *rna_Fluid_cachetype_volume_itemf(bContext *UNUSED fds->cache_noise_format == FLUID_DOMAIN_FILE_RAW) { tmp.value = FLUID_DOMAIN_FILE_RAW; tmp.identifier = "RAW"; - tmp.name = "Raw Cache"; - tmp.description = "Raw file format (.raw)"; + tmp.name = N_("Raw Cache"); + tmp.description = N_("Raw file format (.raw)"); RNA_enum_item_add(&item, &totitem, &tmp); } @@ -631,8 +639,8 @@ static const EnumPropertyItem *rna_Fluid_cachetype_particle_itemf(bContext *UNUS tmp.value = FLUID_DOMAIN_FILE_UNI; tmp.identifier = "UNI"; - tmp.name = "Uni Cache"; - tmp.description = "Uni file format"; + tmp.name = N_("Uni Cache"); + tmp.description = N_("Uni file format"); RNA_enum_item_add(&item, &totitem, &tmp); RNA_enum_item_end(&item, &totitem); @@ -670,136 +678,136 @@ static const EnumPropertyItem *rna_Fluid_cobafield_itemf(bContext *UNUSED(C), tmp.value = FLUID_DOMAIN_FIELD_FLAGS; tmp.identifier = "FLAGS"; tmp.icon = 0; - tmp.name = "Flags"; - tmp.description = "Flag grid of the fluid domain"; + tmp.name = N_("Flags"); + tmp.description = N_("Flag grid of the fluid domain"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_PRESSURE; tmp.identifier = "PRESSURE"; tmp.icon = 0; - tmp.name = "Pressure"; - tmp.description = "Pressure field of the fluid domain"; + tmp.name = N_("Pressure"); + tmp.description = N_("Pressure field of the fluid domain"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_VELOCITY_X; tmp.identifier = "VELOCITY_X"; tmp.icon = 0; - tmp.name = "X Velocity"; - tmp.description = "X component of the velocity field"; + tmp.name = N_("X Velocity"); + tmp.description = N_("X component of the velocity field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_VELOCITY_Y; tmp.identifier = "VELOCITY_Y"; tmp.icon = 0; - tmp.name = "Y Velocity"; - tmp.description = "Y component of the velocity field"; + tmp.name = N_("Y Velocity"); + tmp.description = N_("Y component of the velocity field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_VELOCITY_Z; tmp.identifier = "VELOCITY_Z"; tmp.icon = 0; - tmp.name = "Z Velocity"; - tmp.description = "Z component of the velocity field"; + tmp.name = N_("Z Velocity"); + tmp.description = N_("Z component of the velocity field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_FORCE_X; tmp.identifier = "FORCE_X"; tmp.icon = 0; - tmp.name = "X Force"; - tmp.description = "X component of the force field"; + tmp.name = N_("X Force"); + tmp.description = N_("X component of the force field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_FORCE_Y; tmp.identifier = "FORCE_Y"; tmp.icon = 0; - tmp.name = "Y Force"; - tmp.description = "Y component of the force field"; + tmp.name = N_("Y Force"); + tmp.description = N_("Y component of the force field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_FORCE_Z; tmp.identifier = "FORCE_Z"; tmp.icon = 0; - tmp.name = "Z Force"; - tmp.description = "Z component of the force field"; + tmp.name = N_("Z Force"); + tmp.description = N_("Z component of the force field"); RNA_enum_item_add(&item, &totitem, &tmp); if (settings->type == FLUID_DOMAIN_TYPE_GAS) { tmp.value = FLUID_DOMAIN_FIELD_COLOR_R; tmp.identifier = "COLOR_R"; tmp.icon = 0; - tmp.name = "Red"; - tmp.description = "Red component of the color field"; + tmp.name = N_("Red"); + tmp.description = N_("Red component of the color field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_COLOR_G; tmp.identifier = "COLOR_G"; tmp.icon = 0; - tmp.name = "Green"; - tmp.description = "Green component of the color field"; + tmp.name = N_("Green"); + tmp.description = N_("Green component of the color field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_COLOR_B; tmp.identifier = "COLOR_B"; tmp.icon = 0; - tmp.name = "Blue"; - tmp.description = "Blue component of the color field"; + tmp.name = N_("Blue"); + tmp.description = N_("Blue component of the color field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_DENSITY; tmp.identifier = "DENSITY"; tmp.icon = 0; - tmp.name = "Density"; - tmp.description = "Quantity of soot in the fluid"; + tmp.name = N_("Density"); + tmp.description = N_("Quantity of soot in the fluid"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_FLAME; tmp.identifier = "FLAME"; tmp.icon = 0; - tmp.name = "Flame"; - tmp.description = "Flame field"; + tmp.name = N_("Flame"); + tmp.description = N_("Flame field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_FUEL; tmp.identifier = "FUEL"; tmp.icon = 0; - tmp.name = "Fuel"; - tmp.description = "Fuel field"; + tmp.name = N_("Fuel"); + tmp.description = N_("Fuel field"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_HEAT; tmp.identifier = "HEAT"; tmp.icon = 0; - tmp.name = "Heat"; - tmp.description = "Temperature of the fluid"; + tmp.name = N_("Heat"); + tmp.description = N_("Temperature of the fluid"); RNA_enum_item_add(&item, &totitem, &tmp); } else if (settings->type == FLUID_DOMAIN_TYPE_LIQUID) { tmp.value = FLUID_DOMAIN_FIELD_PHI; tmp.identifier = "PHI"; tmp.icon = 0; - tmp.name = "Fluid Levelset"; - tmp.description = "Levelset representation of the fluid"; + tmp.name = N_("Fluid Level Set"); + tmp.description = N_("Level set representation of the fluid"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_PHI_IN; tmp.identifier = "PHI_IN"; tmp.icon = 0; - tmp.name = "Inflow Levelset"; - tmp.description = "Levelset representation of the inflow"; + tmp.name = N_("Inflow Level Set"); + tmp.description = N_("Level set representation of the inflow"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_PHI_OUT; tmp.identifier = "PHI_OUT"; tmp.icon = 0; - tmp.name = "Outflow Levelset"; - tmp.description = "Levelset representation of the outflow"; + tmp.name = N_("Outflow Level Set"); + tmp.description = N_("Level set representation of the outflow"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = FLUID_DOMAIN_FIELD_PHI_OBSTACLE; tmp.identifier = "PHI_OBSTACLE"; tmp.icon = 0; - tmp.name = "Obstacle Levelset"; - tmp.description = "Levelset representation of the obstacles"; + tmp.name = N_("Obstacle Level Set"); + tmp.description = N_("Level set representation of the obstacles"); RNA_enum_item_add(&item, &totitem, &tmp); } @@ -823,23 +831,23 @@ static const EnumPropertyItem *rna_Fluid_data_depth_itemf(bContext *UNUSED(C), tmp.value = VDB_PRECISION_FULL_FLOAT; tmp.identifier = "32"; tmp.icon = 0; - tmp.name = "Full"; - tmp.description = "Full float (Use 32 bit for all data)"; + tmp.name = N_("Full"); + tmp.description = N_("Full float (Use 32 bit for all data)"); RNA_enum_item_add(&item, &totitem, &tmp); tmp.value = VDB_PRECISION_HALF_FLOAT; tmp.identifier = "16"; tmp.icon = 0; - tmp.name = "Half"; - tmp.description = "Half float (Use 16 bit for all data)"; + tmp.name = N_("Half"); + tmp.description = N_("Half float (Use 16 bit for all data)"); RNA_enum_item_add(&item, &totitem, &tmp); if (settings->type == FLUID_DOMAIN_TYPE_LIQUID) { tmp.value = VDB_PRECISION_MINI_FLOAT; tmp.identifier = "8"; tmp.icon = 0; - tmp.name = "Mini"; - tmp.description = "Mini float (Use 8 bit where possible, otherwise use 16 bit)"; + tmp.name = N_("Mini"); + tmp.description = N_("Mini float (Use 8 bit where possible, otherwise use 16 bit)"); RNA_enum_item_add(&item, &totitem, &tmp); } @@ -1186,16 +1194,16 @@ static const EnumPropertyItem *rna_Fluid_flowsource_itemf(bContext *UNUSED(C), tmp.value = FLUID_FLOW_SOURCE_MESH; tmp.identifier = "MESH"; tmp.icon = ICON_META_CUBE; - tmp.name = "Mesh"; - tmp.description = "Emit fluid from mesh surface or volume"; + tmp.name = N_("Mesh"); + tmp.description = N_("Emit fluid from mesh surface or volume"); RNA_enum_item_add(&item, &totitem, &tmp); if (settings->type != FLUID_FLOW_TYPE_LIQUID) { tmp.value = FLUID_FLOW_SOURCE_PARTICLES; tmp.identifier = "PARTICLES"; tmp.icon = ICON_PARTICLES; - tmp.name = "Particle System"; - tmp.description = "Emit smoke from particles"; + tmp.name = N_("Particle System"); + tmp.description = N_("Emit smoke from particles"); RNA_enum_item_add(&item, &totitem, &tmp); } |