118 static void rna_Fluid_particlescache_reset(
Main *
UNUSED(bmain),
132 static void rna_Fluid_guidingcache_reset(
Main *
UNUSED(bmain),
156 rna_Fluid_update(bmain,
scene,
ptr);
166 rna_Fluid_update(bmain,
scene,
ptr);
176 rna_Fluid_datacache_reset(bmain,
scene,
ptr);
177 rna_Fluid_update(bmain,
scene,
ptr);
187 rna_Fluid_noisecache_reset(bmain,
scene,
ptr);
188 rna_Fluid_update(bmain,
scene,
ptr);
198 rna_Fluid_meshcache_reset(bmain,
scene,
ptr);
199 rna_Fluid_update(bmain,
scene,
ptr);
209 rna_Fluid_particlescache_reset(bmain,
scene,
ptr);
210 rna_Fluid_update(bmain,
scene,
ptr);
220 rna_Fluid_dependency_update(bmain,
scene,
ptr);
223 static void rna_Fluid_parts_create(
Main *bmain,
225 const char *pset_name,
226 const char *parts_name,
227 const char *psys_name,
231 UNUSED_VARS(bmain,
ptr, pset_name, parts_name, psys_name, psys_type);
238 static void rna_Fluid_parts_delete(
PointerRNA *
ptr,
int ptype)
248 static bool rna_Fluid_parts_exists(
PointerRNA *
ptr,
int ptype)
254 if (psys->part->type == ptype) {
273 rna_Fluid_domain_data_reset(bmain,
scene,
ptr);
278 rna_Fluid_parts_create(
279 bmain,
ptr,
"LiquidParticleSettings",
"Liquid",
"Liquid Particle System",
PART_FLUID_FLIP);
286 rna_Fluid_update(bmain,
scene,
ptr);
297 rna_Fluid_parts_create(
315 rna_Fluid_parts_create(bmain,
317 "BubbleParticleSettings",
319 "Bubble Particle System",
337 rna_Fluid_parts_create(
355 rna_Fluid_parts_create(bmain,
357 "TracerParticleSettings",
359 "Tracer Particle System",
387 rna_Fluid_spray_parts_update(bmain,
scene,
ptr);
390 rna_Fluid_foam_parts_update(bmain,
scene,
ptr);
393 rna_Fluid_bubble_parts_update(bmain,
scene,
ptr);
399 rna_Fluid_parts_create(bmain,
401 "SprayFoamParticleSettings",
403 "Spray + Foam Particle System",
418 rna_Fluid_bubble_parts_update(bmain,
scene,
ptr);
425 rna_Fluid_parts_create(bmain,
427 "SprayBubbleParticleSettings",
429 "Spray + Bubble Particle System",
444 rna_Fluid_foam_parts_update(bmain,
scene,
ptr);
451 rna_Fluid_parts_create(bmain,
453 "FoamBubbleParticleSettings",
454 "Foam + Bubble Particles",
455 "Foam + Bubble Particle System",
470 rna_Fluid_spray_parts_update(bmain,
scene,
ptr);
474 else if (fmd->domain->sndparticle_combined_export ==
478 rna_Fluid_parts_create(bmain,
480 "SprayFoamBubbleParticleSettings",
481 "Spray + Foam + Bubbles",
482 "Spray + Foam + Bubble Particle System",
499 printf(
"ERROR: Unexpected combined export setting encountered!");
503 static void rna_Fluid_cache_startframe_set(
struct PointerRNA *
ptr,
int value)
509 static void rna_Fluid_cache_endframe_set(
struct PointerRNA *
ptr,
int value)
515 static void rna_Fluid_cachetype_mesh_set(
struct PointerRNA *
ptr,
int value)
521 static void rna_Fluid_cachetype_data_set(
struct PointerRNA *
ptr,
int value)
527 static void rna_Fluid_cachetype_particle_set(
struct PointerRNA *
ptr,
int value)
533 static void rna_Fluid_cachetype_noise_set(
struct PointerRNA *
ptr,
int value)
539 static void rna_Fluid_cachetype_set(
struct PointerRNA *
ptr,
int value)
549 static void rna_Fluid_guide_parent_set(
struct PointerRNA *
ptr,
560 if (fmd_par && fmd_par->
domain) {
581 tmp.
name =
"Binary Object";
582 tmp.
description =
"Binary object file format (.bobj.gz)";
608 tmp.
name =
"Uni Cache";
615 tmp.
name =
"OpenVDB";
626 tmp.
name =
"Raw Cache";
648 tmp.
name =
"Uni Cache";
658 static void rna_Fluid_cache_directory_set(
struct PointerRNA *
ptr,
const char *value)
694 tmp.
name =
"Pressure";
695 tmp.
description =
"Pressure field of the fluid domain";
701 tmp.
name =
"X Velocity";
702 tmp.
description =
"X component of the velocity field";
708 tmp.
name =
"Y Velocity";
709 tmp.
description =
"Y component of the velocity field";
715 tmp.
name =
"Z Velocity";
716 tmp.
description =
"Z component of the velocity field";
722 tmp.
name =
"X Force";
723 tmp.
description =
"X component of the force field";
729 tmp.
name =
"Y Force";
730 tmp.
description =
"Y component of the force field";
736 tmp.
name =
"Z Force";
737 tmp.
description =
"Z component of the force field";
745 tmp.
description =
"Red component of the color field";
752 tmp.
description =
"Green component of the color field";
759 tmp.
description =
"Blue component of the color field";
765 tmp.
name =
"Density";
794 tmp.
name =
"Fluid Levelset";
795 tmp.
description =
"Levelset representation of the fluid";
801 tmp.
name =
"Inflow Levelset";
802 tmp.
description =
"Levelset representation of the inflow";
808 tmp.
name =
"Outflow Levelset";
809 tmp.
description =
"Levelset representation of the outflow";
815 tmp.
name =
"Obstacle Levelset";
816 tmp.
description =
"Levelset representation of the obstacles";
841 tmp.
description =
"Full float (Use 32 bit for all data)";
848 tmp.
description =
"Half float (Use 16 bit for all data)";
856 tmp.
description =
"Mini float (Use 8 bit where possible, otherwise use 16 bit)";
866 static void rna_Fluid_domaintype_set(
struct PointerRNA *
ptr,
int value)
878 char name_esc[
sizeof(md->name) * 2];
881 return BLI_sprintfN(
"modifiers[\"%s\"].domain_settings", name_esc);
888 char name_esc[
sizeof(md->name) * 2];
891 return BLI_sprintfN(
"modifiers[\"%s\"].flow_settings", name_esc);
898 char name_esc[
sizeof(md->name) * 2];
901 return BLI_sprintfN(
"modifiers[\"%s\"].effector_settings", name_esc);
913 float *density =
NULL;
921 size = res[0] * res[1] * res[2];
925 else if (fds->
fluid) {
935 static int rna_FluidModifier_color_grid_get_length(
PointerRNA *
ptr,
938 rna_FluidModifier_grid_get_length(
ptr,
length);
944 static int rna_FluidModifier_velocity_grid_get_length(
PointerRNA *
ptr,
965 static int rna_FluidModifier_heat_grid_get_length(
PointerRNA *
ptr,
982 static void rna_FluidModifier_density_grid_get(
PointerRNA *
ptr,
float *values)
998 memcpy(values, density,
size *
sizeof(
float));
1003 static void rna_FluidModifier_velocity_grid_get(
PointerRNA *
ptr,
float *values)
1007 int size = rna_FluidModifier_velocity_grid_get_length(
ptr,
length);
1008 float *vx, *vy, *vz;
1017 for (i = 0; i <
size; i += 3) {
1018 *(values++) = *(vx++);
1019 *(values++) = *(vy++);
1020 *(values++) = *(vz++);
1026 static void rna_FluidModifier_color_grid_get(
PointerRNA *
ptr,
float *values)
1035 memset(values, 0,
size *
sizeof(
float));
1059 static void rna_FluidModifier_flame_grid_get(
PointerRNA *
ptr,
float *values)
1076 memcpy(values, flame,
size *
sizeof(
float));
1079 memset(values, 0,
size *
sizeof(
float));
1085 static void rna_FluidModifier_heat_grid_get(
PointerRNA *
ptr,
float *values)
1089 int size = rna_FluidModifier_heat_grid_get_length(
ptr,
length);
1098 for (
int i = 0; i <
size; i++) {
1099 values[i] = heat[i] * 0.5f;
1103 memset(values, 0,
size *
sizeof(
float));
1109 static void rna_FluidModifier_temperature_grid_get(
PointerRNA *
ptr,
float *values)
1130 for (
int i = 0; i <
size; i++) {
1131 values[i] = (flame[i] > 0.01f) ? offset + flame[i] * scale : 0.0f;
1135 memset(values, 0,
size *
sizeof(
float));
1144 static void rna_FluidFlow_density_vgroup_get(
PointerRNA *
ptr,
char *value)
1150 static int rna_FluidFlow_density_vgroup_length(
PointerRNA *
ptr)
1156 static void rna_FluidFlow_density_vgroup_set(
struct PointerRNA *
ptr,
const char *value)
1162 static void rna_FluidFlow_uvlayer_set(
struct PointerRNA *
ptr,
const char *value)
1168 static void rna_Fluid_use_color_ramp_set(
struct PointerRNA *
ptr,
bool value)
1179 static void rna_Fluid_flowsource_set(
struct PointerRNA *
ptr,
int value)
1184 settings->
source = value;
1201 tmp.
icon = ICON_META_CUBE;
1203 tmp.
description =
"Emit fluid from mesh surface or volume";
1209 tmp.
icon = ICON_PARTICLES;
1210 tmp.
name =
"Particle System";
1221 static void rna_Fluid_flowtype_set(
struct PointerRNA *
ptr,
int value)
1225 if (value != settings->
type) {
1226 short prev_value = settings->
type;
1227 settings->
type = value;
1278 # ifdef WITH_OPENVDB_BLOSC
1283 "Multithreaded compression, similar in size and quality as 'Zip'"},
1301 "Bake every stage of the simulation separately"},
1307 {0,
"NONE", 0,
"",
""},
1316 "Use improved particle level set (slower but more precise and with mesh smoothening "
1322 "Use union particle level set (faster but lower quality)"},
1331 "Use a fluid domain for guiding (domain needs to be baked already so that velocities can "
1332 "be extracted). Guiding domain can be of any type (i.e. gas or liquid)"},
1337 "Use guiding (effector) objects to create fluid guiding (guiding objects should be "
1338 "animated and baked once set up completely)"},
1344 {0,
"NONE", 0,
"",
""},
1354 "Smoothed high quality interpolation, but slower"},
1364 "Adjust slice direction according to the view direction"},
1374 {
VECTOR_DRAW_MAC,
"MAC", 0,
"MAC Grid",
"Display vector field as MAC grid"},
1383 "Velocity field of the fluid domain"},
1388 "Guide velocity field of the fluid domain"},
1394 {0,
"NONE", 0,
"None",
"None"},
1400 "Highlight the voxels with values of the color mapped field within the range"},
1411 "Highlight only the cells of type Obstacle"},
1418 "Highlight only the cells of type Outflow"},
1427 "Delete secondary particles that are inside obstacles or left the domain"},
1432 "Push secondary particles that left the domain back into the domain"},
1440 "Create a separate particle system for every secondary particle type"},
1445 "Spray and foam particles are saved in the same particle system"},
1450 "Spray and bubble particles are saved in the same particle system"},
1455 "Foam and bubbles particles are saved in the same particle system"},
1457 "SPRAY_FOAM_BUBBLES",
1459 "Spray + Foam + Bubbles",
1460 "Create one particle system that contains all three secondary particle types"},
1468 "Use FLIP as the simulation method (more splashy behavior)"},
1473 "Use APIC as the simulation method (more energetic and stable behavior)"},
1560 prop,
"Temperature Grid",
"Smoke temperature grid, range 0 to 1 represents 0 to 1000K");
1581 "domain_resolution",
1600 prop,
"Margin",
"Margin added around fluid to minimize boundary interference");
1609 "Minimum amount of fluid a cell can contain before it is considered empty");
1615 prop,
"Adaptive Domain",
"Adapt simulation resolution and size to fluid");
1627 "Maximum Resolution",
1628 "Resolution used for the fluid domain. Value corresponds to the longest domain side "
1629 "(resolution for other domain sides is calculated automatically)");
1692 "Buoyant force based on smoke density (higher value results in faster rising smoke)");
1702 "Buoyant force based on smoke heat (higher value results in faster rising smoke)");
1712 "Determine how quickly the smoke dissolves (lower value makes smoke disappear faster)");
1735 "Logarithmic Dissolve",
1736 "Dissolve smoke in a logarithmic fashion. Dissolves quickly at first, but lingers longer");
1745 prop,
"Speed",
"Speed of the burning reaction (higher value results in smaller flames)");
1766 "Minimum temperature of the flames (higher value results in faster rising flames)");
1775 "Maximum temperature of the flames (higher value results in faster rising flames)");
1796 prop,
"Scale",
"Scale of noise (higher value results in larger vortices)");
1811 "The noise simulation is scaled up by this factor (compared to the "
1812 "base resolution of the domain)");
1820 prop,
"Noise Method",
"Noise method which is used during the high-res simulation");
1844 "PIC/FLIP Ratio. A value of 1.0 will result in a completely FLIP based simulation. Use a "
1845 "lower value for simulations which should produce smaller splashes");
1856 prop,
"Number",
"Particle number factor (higher value results in more particles)");
1864 "Minimum number of particles per cell (ensures that each cell has at "
1865 "least this amount of particles)");
1873 "Maximum number of particles per cell (ensures that each cell has at "
1874 "most this amount of particles)");
1881 "Particle radius factor. Increase this value if the simulation appears "
1882 "to leak volume, decrease it if the simulation seems to gain volume");
1890 "Particle (narrow) band width (higher value results in thicker band and more particles)");
1903 "Fractional Obstacles",
1904 "Fractional obstacles improve and smoothen the fluid-obstacle boundary");
1912 "Obstacle Threshold",
1913 "Determines how much fluid is allowed in an obstacle cell "
1914 "(higher values will tag a boundary cell as an obstacle easier "
1915 "and reduce the boundary smoothening effect)");
1922 "Obstacle Distance",
1923 "Determines how far apart fluid and obstacle are (higher values will "
1924 "result in fluid being further away from obstacles, smaller values "
1925 "will let fluid move towards the inside of obstacles)");
1934 "Maximum number of fluid particles that are allowed in this simulation");
1949 "Viscosity of liquid (higher values result in more viscous fluids, a "
1950 "value of 0 will still apply some viscosity)");
1958 prop,
"Use Diffusion",
"Enable fluid diffusion settings (e.g. viscosity, surface tension)");
1967 "Surface tension of liquid (higher value results in greater hydrophobic behavior)");
1976 "Viscosity setting: value that is multiplied by 10 to the power of (exponent*-1)");
1984 "Viscosity Exponent",
1985 "Negative exponent for the viscosity value (to simplify entering small values "
1996 "Upper mesh concavity bound (high values tend to smoothen and fill out concave regions)");
2004 "Lower mesh concavity bound (high values tend to smoothen and fill out concave regions)");
2023 "The mesh simulation is scaled up by this factor (compared to the base "
2024 "resolution of the domain). For best meshing, it is recommended to "
2025 "adjust the mesh particle radius alongside this value");
2039 prop,
"Fluid Mesh Vertices",
"Vertices of the fluid mesh generated by simulation");
2053 "Caches velocities of mesh vertices. These will be used "
2054 "(automatically) when rendering with motion blur enabled");
2062 "Particle radius factor (higher value results in larger (meshed) "
2063 "particles). Needs to be adjusted after changing the mesh scale");
2073 "Minimum Wave Crest Potential",
2074 "Lower clamping threshold for marking fluid cells as wave crests "
2075 "(lower value results in more marked cells)");
2083 "Maximum Wave Crest Potential",
2084 "Upper clamping threshold for marking fluid cells as wave crests "
2085 "(higher value results in less marked cells)");
2093 "Minimum Trapped Air Potential",
2094 "Lower clamping threshold for marking fluid cells where air is trapped "
2095 "(lower value results in more marked cells)");
2103 "Maximum Trapped Air Potential",
2104 "Upper clamping threshold for marking fluid cells where air is trapped "
2105 "(higher value results in less marked cells)");
2114 "Minimum Kinetic Energy Potential",
2115 "Lower clamping threshold that indicates the fluid speed where cells start to emit "
2116 "particles (lower values result in generally more particles)");
2125 "Maximum Kinetic Energy Potential",
2126 "Upper clamping threshold that indicates the fluid speed where cells no longer emit more "
2127 "particles (higher value results in generally less particles)");
2135 "Wave Crest Sampling",
2136 "Maximum number of particles generated per wave crest cell per frame");
2144 "Trapped Air Sampling",
2145 "Maximum number of particles generated per trapped air cell per frame");
2154 "Amount of buoyancy force that rises bubbles (high value results in "
2155 "bubble movement mainly upwards)");
2164 "Amount of drag force that moves bubbles along with the fluid (high "
2165 "value results in bubble movement mainly along with the fluid)");
2186 prop,
"Particles in Boundary",
"How particles that left the domain are treated");
2195 "Determines which particle systems are created from secondary particles");
2204 "Radius to compute potential for each cell (higher values are slower "
2205 "but create smoother potential grids)");
2214 "Radius to compute position update for each particle (higher values "
2215 "are slower but particles move less chaotic)");
2224 "The particle simulation is scaled up by this factor (compared to the "
2225 "base resolution of the domain)");
2273 "Guiding velocity factor (higher value results in greater guiding velocities)");
2289 "Use velocities from this object for the guiding effect (object needs "
2290 "to have fluid modifier and be of type domain))");
2308 "Frame on which the simulation starts. This is the first frame that will be baked");
2318 "Frame on which the simulation stops. This is the last frame that will be baked");
2327 "Frame offset that is used when loading the simulation from the cache. It is not considered "
2328 "when baking the simulation, only when loading it");
2350 prop,
NULL,
"rna_Fluid_cachetype_mesh_set",
"rna_Fluid_cachetype_mesh_itemf");
2352 prop,
"File Format",
"Select the file format to be used for caching surface data");
2360 prop,
NULL,
"rna_Fluid_cachetype_data_set",
"rna_Fluid_cachetype_volume_itemf");
2362 prop,
"File Format",
"Select the file format to be used for caching volumetric data");
2370 prop,
NULL,
"rna_Fluid_cachetype_particle_set",
"rna_Fluid_cachetype_particle_itemf");
2372 prop,
"File Format",
"Select the file format to be used for caching particle data");
2380 prop,
NULL,
"rna_Fluid_cachetype_noise_set",
"rna_Fluid_cachetype_volume_itemf");
2382 prop,
"File Format",
"Select the file format to be used for caching noise data");
2399 "Additional data will be saved so that the bake jobs can be resumed after pausing. Because "
2400 "more data will be written to disk it is recommended to avoid enabling this option when "
2401 "baking at high resolutions");
2465 "Export Mantaflow Script",
2466 "Generate and export Mantaflow script from current domain settings during bake. This is "
2467 "only needed if you plan to analyze the cache (e.g. view grids, velocity vectors, "
2468 "particles) in Mantaflow directly (outside of Blender) after baking the simulation");
2485 "Bit depth for fluid particles and grids (lower bit values reduce file size)");
2500 prop,
"CFL",
"Maximal velocity per cell (higher value results in greater timesteps)");
2513 prop,
"Minimum",
"Minimum number of simulation steps to perform for one frame");
2521 prop,
"Maximum",
"Maximum number of simulation steps to perform for one frame");
2542 prop,
"Slice Per Voxel",
"How many slices per voxel should be generated");
2563 prop,
"Interpolation",
"Interpolation method to use for smoke/fire volumes in solid mode");
2622 "Render a simulation field while mapping its voxels values to the "
2623 "colors of a ramp or using a predefined color code");
2628 {0,
"NONE", 0,
"",
""},
2644 prop,
"Scale",
"Multiplier for scaling the selected field to color map");
2660 "Value under which voxels are considered empty space to optimize rendering");
2667 prop,
"Color Gridlines",
"Simulation field to color map onto gridlines");
2717 "Only use given geometry for fluid"},
2723 {0,
"NONE", 0,
"",
""},
2732 "Generated coordinates centered to flow object"},
2792 prop,
NULL,
"rna_Fluid_flowsource_set",
"rna_Fluid_flowsource_itemf");
2800 "Only allow given density value in emitter area and will not add up");
2806 prop,
"Initial Velocity",
"Fluid has some initial velocity when it is emitted");
2815 "Multiplier of source velocity passed to fluid (source velocity is "
2816 "non-zero only if object is moving)");
2840 "Additional initial velocity in X, Y and Z direction (added to source velocity)");
2848 "Controls fluid emission from within the mesh (higher value results in "
2849 "greater emissions from inside the mesh)");
2857 "Controls fluid emission from the mesh surface (higher value results "
2858 "in emission further away from the mesh surface");
2866 "Treat this object as a planar and unclosed mesh. Fluid will only be emitted from the mesh "
2867 "surface and based on the surface emission value");
2879 prop,
"Set Size",
"Set particle size in simulation cells or use nearest cell");
2892 "Number of additional samples to take between frames to improve "
2893 "quality of fast moving flows");
2898 "rna_FluidFlow_density_vgroup_get",
2899 "rna_FluidFlow_density_vgroup_length",
2900 "rna_FluidFlow_density_vgroup_set");
2902 prop,
"Vertex Group",
"Name of vertex group which determines surface emission rate");
2953 "Compare velocities from previous frame with new velocities from current frame and keep "
2959 "Compare velocities from previous frame with new velocities from current frame and keep "
2965 "Always write new guide velocities for every frame (each frame only contains current "
2966 "velocities from guiding objects)"},
2971 "Take average of velocities from previous frame and new velocities from current frame"},
2993 prop,
"Surface",
"Additional distance around mesh surface to consider as effector");
3023 "Number of additional samples to take between frames to improve "
3024 "quality of fast moving effector objects");
struct ColorBand * BKE_colorband_add(bool rangetype)
void BKE_fluid_modifier_reset(struct FluidModifierData *fmd)
void BKE_fluid_cache_endframe_set(struct FluidDomainSettings *settings, int value)
void BKE_fluid_domain_type_set(struct Object *object, struct FluidDomainSettings *settings, int type)
void BKE_fluid_particle_system_destroy(struct Object *ob, const int particle_type)
void BKE_fluid_cache_startframe_set(struct FluidDomainSettings *settings, int value)
void BKE_fluid_particle_system_create(struct Main *bmain, struct Object *ob, const char *pset_name, const char *parts_name, const char *psys_name, const int psys_type)
void BKE_fluid_cachetype_noise_set(struct FluidDomainSettings *settings, int cache_noise_format)
void BKE_fluid_cachetype_particle_set(struct FluidDomainSettings *settings, int cache_particle_format)
void BKE_fluid_fields_sanitize(struct FluidDomainSettings *settings)
void BKE_fluid_cachetype_mesh_set(struct FluidDomainSettings *settings, int cache_mesh_format)
void BKE_fluid_cachetype_data_set(struct FluidDomainSettings *settings, int cache_data_format)
void BKE_fluid_cache_free(struct FluidDomainSettings *fds, struct Object *ob, int cache_map)
struct ModifierData * BKE_modifiers_findby_type(const struct Object *ob, ModifierType type)
MINLINE void copy_v3_v3_int(int r[3], const int a[3])
size_t size_t char * BLI_sprintfN(const char *__restrict format,...) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_PRINTF_FORMAT(1
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, const size_t dst_maxncpy) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
void BLI_rw_mutex_lock(ThreadRWMutex *mutex, int mode)
void BLI_rw_mutex_unlock(ThreadRWMutex *mutex)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ FLUID_DOMAIN_BAKED_DATA
@ FLUID_DOMAIN_OUTDATED_GUIDE
@ FLUID_DOMAIN_OUTDATED_PARTICLES
@ FLUID_DOMAIN_BAKING_MESH
@ FLUID_DOMAIN_BAKING_NOISE
@ FLUID_DOMAIN_BAKING_GUIDE
@ FLUID_DOMAIN_OUTDATED_NOISE
@ FLUID_DOMAIN_BAKED_NOISE
@ FLUID_DOMAIN_BAKED_MESH
@ FLUID_DOMAIN_OUTDATED_MESH
@ FLUID_DOMAIN_BAKING_DATA
@ FLUID_DOMAIN_BAKED_GUIDE
@ FLUID_DOMAIN_BAKED_PARTICLES
@ FLUID_DOMAIN_OUTDATED_DATA
@ FLUID_DOMAIN_BAKING_PARTICLES
@ FLUID_FLOW_USE_PART_SIZE
@ FLUID_FLOW_NEEDS_UPDATE
@ FLUID_FLOW_USE_PLANE_INIT
@ FLUID_FLOW_INITVELOCITY
@ FLUID_NOISE_TYPE_WAVELET
@ SNDPARTICLE_BOUNDARY_DELETE
@ SNDPARTICLE_BOUNDARY_PUSHOUT
@ FLUID_FLOW_SOURCE_PARTICLES
@ FLUID_EFFECTOR_TYPE_GUIDE
@ FLUID_EFFECTOR_TYPE_COLLISION
@ FLUID_EFFECTOR_NEEDS_UPDATE
@ FLUID_EFFECTOR_USE_EFFEC
@ FLUID_EFFECTOR_USE_PLANE_INIT
@ FLUID_FLOW_BEHAVIOR_GEOMETRY
@ FLUID_FLOW_BEHAVIOR_OUTFLOW
@ FLUID_FLOW_BEHAVIOR_INFLOW
@ FLUID_CELL_TYPE_OUTFLOW
@ FLUID_CELL_TYPE_OBSTACLE
@ FLUID_DOMAIN_PARTICLE_SPRAY
@ FLUID_DOMAIN_PARTICLE_FOAM
@ FLUID_DOMAIN_PARTICLE_TRACER
@ FLUID_DOMAIN_PARTICLE_FLIP
@ FLUID_DOMAIN_PARTICLE_BUBBLE
@ FLUID_DOMAIN_FIELD_COLOR_B
@ FLUID_DOMAIN_FIELD_FLAME
@ FLUID_DOMAIN_FIELD_PHI_OUT
@ FLUID_DOMAIN_FIELD_FORCE_Z
@ FLUID_DOMAIN_FIELD_PHI_OBSTACLE
@ FLUID_DOMAIN_FIELD_FLAGS
@ FLUID_DOMAIN_FIELD_VELOCITY_Z
@ FLUID_DOMAIN_FIELD_FORCE_Y
@ FLUID_DOMAIN_FIELD_PRESSURE
@ FLUID_DOMAIN_FIELD_VELOCITY_X
@ FLUID_DOMAIN_FIELD_DENSITY
@ FLUID_DOMAIN_FIELD_VELOCITY_Y
@ FLUID_DOMAIN_FIELD_PHI_IN
@ FLUID_DOMAIN_FIELD_HEAT
@ FLUID_DOMAIN_FIELD_COLOR_G
@ FLUID_DOMAIN_FIELD_FORCE_X
@ FLUID_DOMAIN_FIELD_FUEL
@ FLUID_DOMAIN_FIELD_COLOR_R
@ FLUID_DISPLAY_INTERP_CLOSEST
@ FLUID_DISPLAY_INTERP_CUBIC
@ FLUID_DISPLAY_INTERP_LINEAR
@ FLUID_DOMAIN_CACHE_REPLAY
@ FLUID_DOMAIN_CACHE_MODULAR
@ FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN
@ FLUID_DOMAIN_DELETE_IN_OBSTACLE
@ FLUID_DOMAIN_USE_RESUMABLE_CACHE
@ FLUID_DOMAIN_USE_DISSOLVE_LOG
@ FLUID_DOMAIN_USE_DIFFUSION
@ FLUID_DOMAIN_USE_ADAPTIVE_TIME
@ FLUID_DOMAIN_EXPORT_MANTA_SCRIPT
@ FLUID_DOMAIN_USE_VISCOSITY
@ FLUID_DOMAIN_USE_SPEED_VECTORS
@ FLUID_DOMAIN_USE_FRACTIONS
@ FLUID_DOMAIN_USE_DISSOLVE
@ FLUID_DOMAIN_FILE_BIN_OBJECT
@ FLUID_DOMAIN_FILE_OBJECT
@ FLUID_DOMAIN_FILE_OPENVDB
@ SNDPARTICLE_COMBINED_EXPORT_OFF
@ SNDPARTICLE_COMBINED_EXPORT_SPRAY_FOAM
@ SNDPARTICLE_COMBINED_EXPORT_SPRAY_BUBBLE
@ SNDPARTICLE_COMBINED_EXPORT_SPRAY_FOAM_BUBBLE
@ SNDPARTICLE_COMBINED_EXPORT_FOAM_BUBBLE
@ VDB_PRECISION_MINI_FLOAT
@ VDB_PRECISION_FULL_FLOAT
@ VDB_PRECISION_HALF_FLOAT
@ FLUID_FLOW_TYPE_SMOKEFIRE
@ FLUID_DOMAIN_METHOD_FLIP
@ FLUID_DOMAIN_METHOD_APIC
@ FLUID_GRIDLINE_COLOR_TYPE_FLAGS
@ FLUID_GRIDLINE_COLOR_TYPE_RANGE
@ FLUID_DOMAIN_BORDER_BOTTOM
@ FLUID_DOMAIN_BORDER_LEFT
@ FLUID_DOMAIN_BORDER_RIGHT
@ FLUID_DOMAIN_BORDER_FRONT
@ FLUID_DOMAIN_BORDER_TOP
@ FLUID_DOMAIN_BORDER_BACK
@ FLUID_DOMAIN_GUIDE_SRC_EFFECTOR
@ FLUID_DOMAIN_GUIDE_SRC_DOMAIN
@ FLUID_FLOW_TEXTURE_MAP_UV
@ FLUID_FLOW_TEXTURE_MAP_AUTO
@ FLUID_EFFECTOR_GUIDE_MAX
@ FLUID_EFFECTOR_GUIDE_OVERRIDE
@ FLUID_EFFECTOR_GUIDE_AVERAGED
@ FLUID_EFFECTOR_GUIDE_MIN
@ FLUID_DOMAIN_MESH_UNION
@ FLUID_DOMAIN_MESH_IMPROVED
@ FLUID_DOMAIN_VECTOR_FIELD_FORCE
@ FLUID_DOMAIN_VECTOR_FIELD_VELOCITY
@ FLUID_DOMAIN_VECTOR_FIELD_GUIDE_VELOCITY
#define FLUID_DOMAIN_BAKED_ALL
@ FLUID_DOMAIN_TYPE_LIQUID
#define FLUID_DOMAIN_BAKING_ALL
Object is a sort of wrapper for general info.
@ PART_FLUID_SPRAYFOAMBUBBLE
#define RNA_MAX_ARRAY_DIMENSION
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE btScalar length(const btQuaternion &q)
Return the length of a quaternion.
float * manta_smoke_get_heat(struct MANTA *smoke)
bool manta_noise_has_colors(struct MANTA *smoke)
float * manta_smoke_get_density(struct MANTA *smoke)
float * manta_get_velocity_x(struct MANTA *fluid)
float * manta_smoke_get_flame(struct MANTA *smoke)
float * manta_get_velocity_y(struct MANTA *fluid)
void manta_noise_get_rgba(struct MANTA *smoke, float *data, int sequential)
void manta_noise_get_res(struct MANTA *smoke, int *res)
float * manta_noise_get_density(struct MANTA *smoke)
float * manta_noise_get_flame(struct MANTA *smoke)
bool manta_smoke_has_colors(struct MANTA *smoke)
float * manta_get_velocity_z(struct MANTA *fluid)
void manta_noise_get_rgba_fixed_color(struct MANTA *smoke, float color[3], float *data, int sequential)
void manta_smoke_get_rgba(struct MANTA *smoke, float *data, int sequential)
void manta_smoke_get_rgba_fixed_color(struct MANTA *smoke, float color[3], float *data, int sequential)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_dynamic_array_funcs(PropertyRNA *prop, const char *getlength)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_enum_item_end(EnumPropertyItem **items, int *totitem)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_enum_item_add(EnumPropertyItem **items, int *totitem, const EnumPropertyItem *item)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
static void rna_def_fluid_domain_settings(BlenderRNA *brna)
static void rna_def_fluid_mesh_vertices(BlenderRNA *brna)
void RNA_def_fluid(BlenderRNA *brna)
static void rna_def_fluid_flow_settings(BlenderRNA *brna)
static void rna_def_fluid_effector_settings(BlenderRNA *brna)
void rna_object_vgroup_name_index_set(struct PointerRNA *ptr, const char *value, short *index)
void rna_object_vgroup_name_index_get(struct PointerRNA *ptr, char *value, int index)
void rna_object_uvlayer_name_set(struct PointerRNA *ptr, const char *value, char *result, int maxlen)
int rna_object_vgroup_name_index_length(struct PointerRNA *ptr, int index)
struct FluidModifierData * fmd
char cache_directory[1024]
struct Object * guide_parent
struct FluidModifierData * fmd
struct FluidModifierData * fmd
struct FluidDomainSettings * domain
void WM_main_add_notifier(unsigned int type, void *reference)