104 static void rna_Fluid_particlescache_reset(
Main *
UNUSED(bmain),
118 static void rna_Fluid_guidingcache_reset(
Main *
UNUSED(bmain),
142 rna_Fluid_update(bmain,
scene,
ptr);
152 rna_Fluid_update(bmain,
scene,
ptr);
162 rna_Fluid_datacache_reset(bmain,
scene,
ptr);
163 rna_Fluid_update(bmain,
scene,
ptr);
173 rna_Fluid_noisecache_reset(bmain,
scene,
ptr);
174 rna_Fluid_update(bmain,
scene,
ptr);
184 rna_Fluid_meshcache_reset(bmain,
scene,
ptr);
185 rna_Fluid_update(bmain,
scene,
ptr);
195 rna_Fluid_particlescache_reset(bmain,
scene,
ptr);
196 rna_Fluid_update(bmain,
scene,
ptr);
206 rna_Fluid_dependency_update(bmain,
scene,
ptr);
209 static void rna_Fluid_parts_create(
Main *bmain,
211 const char *pset_name,
212 const char *parts_name,
213 const char *psys_name,
217 UNUSED_VARS(bmain,
ptr, pset_name, parts_name, psys_name, psys_type);
224 static void rna_Fluid_parts_delete(
PointerRNA *
ptr,
int ptype)
234 static bool rna_Fluid_parts_exists(
PointerRNA *
ptr,
int ptype)
240 if (psys->part->type == ptype) {
259 rna_Fluid_domain_data_reset(bmain,
scene,
ptr);
264 rna_Fluid_parts_create(
265 bmain,
ptr,
"LiquidParticleSettings",
"Liquid",
"Liquid Particle System",
PART_FLUID_FLIP);
272 rna_Fluid_update(bmain,
scene,
ptr);
283 rna_Fluid_parts_create(
301 rna_Fluid_parts_create(bmain,
303 "BubbleParticleSettings",
305 "Bubble Particle System",
323 rna_Fluid_parts_create(
341 rna_Fluid_parts_create(bmain,
343 "TracerParticleSettings",
345 "Tracer Particle System",
373 rna_Fluid_spray_parts_update(bmain,
scene,
ptr);
376 rna_Fluid_foam_parts_update(bmain,
scene,
ptr);
379 rna_Fluid_bubble_parts_update(bmain,
scene,
ptr);
385 rna_Fluid_parts_create(bmain,
387 "SprayFoamParticleSettings",
389 "Spray + Foam Particle System",
404 rna_Fluid_bubble_parts_update(bmain,
scene,
ptr);
411 rna_Fluid_parts_create(bmain,
413 "SprayBubbleParticleSettings",
415 "Spray + Bubble Particle System",
430 rna_Fluid_foam_parts_update(bmain,
scene,
ptr);
437 rna_Fluid_parts_create(bmain,
439 "FoamBubbleParticleSettings",
440 "Foam + Bubble Particles",
441 "Foam + Bubble Particle System",
456 rna_Fluid_spray_parts_update(bmain,
scene,
ptr);
460 else if (fmd->domain->sndparticle_combined_export ==
464 rna_Fluid_parts_create(bmain,
466 "SprayFoamBubbleParticleSettings",
467 "Spray + Foam + Bubbles",
468 "Spray + Foam + Bubble Particle System",
485 printf(
"ERROR: Unexpected combined export setting encountered!");
489 static void rna_Fluid_cache_startframe_set(
struct PointerRNA *
ptr,
int value)
495 static void rna_Fluid_cache_endframe_set(
struct PointerRNA *
ptr,
int value)
501 static void rna_Fluid_cachetype_mesh_set(
struct PointerRNA *
ptr,
int value)
507 static void rna_Fluid_cachetype_data_set(
struct PointerRNA *
ptr,
int value)
513 static void rna_Fluid_cachetype_particle_set(
struct PointerRNA *
ptr,
int value)
519 static void rna_Fluid_cachetype_noise_set(
struct PointerRNA *
ptr,
int value)
525 static void rna_Fluid_cachetype_set(
struct PointerRNA *
ptr,
int value)
535 static void rna_Fluid_guide_parent_set(
struct PointerRNA *
ptr,
546 if (fmd_par && fmd_par->
domain) {
567 tmp.
name =
"Binary Object";
568 tmp.
description =
"Binary object file format (.bobj.gz)";
594 tmp.
name =
"Uni Cache";
601 tmp.
name =
"OpenVDB";
612 tmp.
name =
"Raw Cache";
634 tmp.
name =
"Uni Cache";
644 static void rna_Fluid_cache_directory_set(
struct PointerRNA *
ptr,
const char *value)
680 tmp.
name =
"Pressure";
681 tmp.
description =
"Pressure field of the fluid domain";
687 tmp.
name =
"X Velocity";
688 tmp.
description =
"X component of the velocity field";
694 tmp.
name =
"Y Velocity";
695 tmp.
description =
"Y component of the velocity field";
701 tmp.
name =
"Z Velocity";
702 tmp.
description =
"Z component of the velocity field";
708 tmp.
name =
"X Force";
709 tmp.
description =
"X component of the force field";
715 tmp.
name =
"Y Force";
716 tmp.
description =
"Y component of the force field";
722 tmp.
name =
"Z Force";
723 tmp.
description =
"Z component of the force field";
731 tmp.
description =
"Red component of the color field";
738 tmp.
description =
"Green component of the color field";
745 tmp.
description =
"Blue component of the color field";
751 tmp.
name =
"Density";
780 tmp.
name =
"Fluid Levelset";
781 tmp.
description =
"Levelset representation of the fluid";
787 tmp.
name =
"Inflow Levelset";
788 tmp.
description =
"Levelset representation of the inflow";
794 tmp.
name =
"Outflow Levelset";
795 tmp.
description =
"Levelset representation of the outflow";
801 tmp.
name =
"Obstacle Levelset";
802 tmp.
description =
"Levelset representation of the obstacles";
827 tmp.
description =
"Full float (Use 32 bit for all data)";
834 tmp.
description =
"Half float (Use 16 bit for all data)";
842 tmp.
description =
"Mini float (Use 8 bit where possible, otherwise use 16 bit)";
852 static void rna_Fluid_domaintype_set(
struct PointerRNA *
ptr,
int value)
860 static char *rna_FluidDomainSettings_path(
const PointerRNA *
ptr)
864 char name_esc[
sizeof(md->name) * 2];
867 return BLI_sprintfN(
"modifiers[\"%s\"].domain_settings", name_esc);
870 static char *rna_FluidFlowSettings_path(
const PointerRNA *
ptr)
874 char name_esc[
sizeof(md->name) * 2];
877 return BLI_sprintfN(
"modifiers[\"%s\"].flow_settings", name_esc);
880 static char *rna_FluidEffectorSettings_path(
const PointerRNA *
ptr)
884 char name_esc[
sizeof(md->name) * 2];
887 return BLI_sprintfN(
"modifiers[\"%s\"].effector_settings", name_esc);
896 static int rna_FluidModifier_grid_get_length(
const PointerRNA *
ptr,
908 size = res[0] * res[1] * res[2];
912 else if (fds->
fluid) {
922 static int rna_FluidModifier_color_grid_get_length(
const PointerRNA *
ptr,
925 rna_FluidModifier_grid_get_length(
ptr,
length);
931 static int rna_FluidModifier_velocity_grid_get_length(
const PointerRNA *
ptr,
952 static int rna_FluidModifier_heat_grid_get_length(
const PointerRNA *
ptr,
969 static void rna_FluidModifier_density_grid_get(
PointerRNA *
ptr,
float *values)
990 static void rna_FluidModifier_velocity_grid_get(
PointerRNA *
ptr,
float *values)
994 int size = rna_FluidModifier_velocity_grid_get_length(
ptr,
length);
1004 for (i = 0; i <
size; i += 3) {
1005 *(values++) = *(vx++);
1006 *(values++) = *(vy++);
1007 *(values++) = *(vz++);
1013 static void rna_FluidModifier_color_grid_get(
PointerRNA *
ptr,
float *values)
1022 memset(values, 0,
size *
sizeof(
float));
1046 static void rna_FluidModifier_flame_grid_get(
PointerRNA *
ptr,
float *values)
1063 memcpy(values, flame,
size *
sizeof(
float));
1066 memset(values, 0,
size *
sizeof(
float));
1072 static void rna_FluidModifier_heat_grid_get(
PointerRNA *
ptr,
float *values)
1076 int size = rna_FluidModifier_heat_grid_get_length(
ptr,
length);
1085 for (
int i = 0; i <
size; i++) {
1086 values[i] = heat[i] * 0.5f;
1090 memset(values, 0,
size *
sizeof(
float));
1096 static void rna_FluidModifier_temperature_grid_get(
PointerRNA *
ptr,
float *values)
1117 for (
int i = 0; i <
size; i++) {
1118 values[i] = (flame[i] > 0.01f) ?
offset + flame[i] * scale : 0.0f;
1122 memset(values, 0,
size *
sizeof(
float));
1131 static void rna_FluidFlow_density_vgroup_get(
PointerRNA *
ptr,
char *value)
1137 static int rna_FluidFlow_density_vgroup_length(
PointerRNA *
ptr)
1143 static void rna_FluidFlow_density_vgroup_set(
struct PointerRNA *
ptr,
const char *value)
1149 static void rna_FluidFlow_uvlayer_set(
struct PointerRNA *
ptr,
const char *value)
1155 static void rna_Fluid_use_color_ramp_set(
struct PointerRNA *
ptr,
bool value)
1166 static void rna_Fluid_flowsource_set(
struct PointerRNA *
ptr,
int value)
1171 settings->
source = value;
1188 tmp.
icon = ICON_META_CUBE;
1190 tmp.
description =
"Emit fluid from mesh surface or volume";
1196 tmp.
icon = ICON_PARTICLES;
1197 tmp.
name =
"Particle System";
1208 static void rna_Fluid_flowtype_set(
struct PointerRNA *
ptr,
int value)
1212 if (value != settings->
type) {
1213 short prev_value = settings->
type;
1214 settings->
type = value;
1244 # ifdef WITH_OPENVDB_BLOSC
1249 "Multithreaded compression, similar in size and quality as 'Zip'"},
1267 "Bake every stage of the simulation separately"},
1273 {0,
"NONE", 0,
"",
""},
1282 "Use improved particle level set (slower but more precise and with mesh smoothening "
1288 "Use union particle level set (faster but lower quality)"},
1297 "Use a fluid domain for guiding (domain needs to be baked already so that velocities can "
1298 "be extracted). Guiding domain can be of any type (i.e. gas or liquid)"},
1303 "Use guiding (effector) objects to create fluid guiding (guiding objects should be "
1304 "animated and baked once set up completely)"},
1310 {0,
"NONE", 0,
"",
""},
1320 "Smoothed high quality interpolation, but slower"},
1330 "Adjust slice direction according to the view direction"},
1340 {
VECTOR_DRAW_MAC,
"MAC", 0,
"MAC Grid",
"Display vector field as MAC grid"},
1349 "Velocity field of the fluid domain"},
1354 "Guide velocity field of the fluid domain"},
1360 {0,
"NONE", 0,
"None",
"None"},
1366 "Highlight the voxels with values of the color mapped field within the range"},
1377 "Highlight only the cells of type Obstacle"},
1384 "Highlight only the cells of type Outflow"},
1393 "Delete secondary particles that are inside obstacles or left the domain"},
1398 "Push secondary particles that left the domain back into the domain"},
1406 "Create a separate particle system for every secondary particle type"},
1411 "Spray and foam particles are saved in the same particle system"},
1416 "Spray and bubble particles are saved in the same particle system"},
1421 "Foam and bubbles particles are saved in the same particle system"},
1423 "SPRAY_FOAM_BUBBLES",
1425 "Spray + Foam + Bubbles",
1426 "Create one particle system that contains all three secondary particle types"},
1434 "Use FLIP as the simulation method (more splashy behavior)"},
1439 "Use APIC as the simulation method (more energetic and stable behavior)"},
1527 prop,
"Temperature Grid",
"Smoke temperature grid, range 0 to 1 represents 0 to 1000K");
1548 "domain_resolution",
1567 prop,
"Margin",
"Margin added around fluid to minimize boundary interference");
1576 "Minimum amount of fluid a cell can contain before it is considered empty");
1582 prop,
"Adaptive Domain",
"Adapt simulation resolution and size to fluid");
1594 "Maximum Resolution",
1595 "Resolution used for the fluid domain. Value corresponds to the longest domain side "
1596 "(resolution for other domain sides is calculated automatically)");
1659 "Buoyant force based on smoke density (higher value results in faster rising smoke)");
1669 "Buoyant force based on smoke heat (higher value results in faster rising smoke)");
1679 "Determine how quickly the smoke dissolves (lower value makes smoke disappear faster)");
1702 "Logarithmic Dissolve",
1703 "Dissolve smoke in a logarithmic fashion. Dissolves quickly at first, but lingers longer");
1712 prop,
"Speed",
"Speed of the burning reaction (higher value results in smaller flames)");
1733 "Minimum temperature of the flames (higher value results in faster rising flames)");
1742 "Maximum temperature of the flames (higher value results in faster rising flames)");
1763 prop,
"Scale",
"Scale of noise (higher value results in larger vortices)");
1778 "The noise simulation is scaled up by this factor (compared to the "
1779 "base resolution of the domain)");
1803 "PIC/FLIP Ratio. A value of 1.0 will result in a completely FLIP based simulation. Use a "
1804 "lower value for simulations which should produce smaller splashes");
1815 prop,
"Number",
"Particle number factor (higher value results in more particles)");
1823 "Minimum number of particles per cell (ensures that each cell has at "
1824 "least this amount of particles)");
1832 "Maximum number of particles per cell (ensures that each cell has at "
1833 "most this amount of particles)");
1840 "Particle radius factor. Increase this value if the simulation appears "
1841 "to leak volume, decrease it if the simulation seems to gain volume");
1849 "Particle (narrow) band width (higher value results in thicker band and more particles)");
1862 "Fractional Obstacles",
1863 "Fractional obstacles improve and smoothen the fluid-obstacle boundary");
1871 "Obstacle Threshold",
1872 "Determines how much fluid is allowed in an obstacle cell "
1873 "(higher values will tag a boundary cell as an obstacle easier "
1874 "and reduce the boundary smoothening effect)");
1881 "Obstacle Distance",
1882 "Determines how far apart fluid and obstacle are (higher values will "
1883 "result in fluid being further away from obstacles, smaller values "
1884 "will let fluid move towards the inside of obstacles)");
1893 "Maximum number of fluid particles that are allowed in this simulation");
1908 "Viscosity of liquid (higher values result in more viscous fluids, a "
1909 "value of 0 will still apply some viscosity)");
1917 prop,
"Use Diffusion",
"Enable fluid diffusion settings (e.g. viscosity, surface tension)");
1926 "Surface tension of liquid (higher value results in greater hydrophobic behavior)");
1935 "Viscosity setting: value that is multiplied by 10 to the power of (exponent*-1)");
1943 "Viscosity Exponent",
1944 "Negative exponent for the viscosity value (to simplify entering small values "
1955 "Upper mesh concavity bound (high values tend to smoothen and fill out concave regions)");
1963 "Lower mesh concavity bound (high values tend to smoothen and fill out concave regions)");
1982 "The mesh simulation is scaled up by this factor (compared to the base "
1983 "resolution of the domain). For best meshing, it is recommended to "
1984 "adjust the mesh particle radius alongside this value");
2004 "Caches velocities of mesh vertices. These will be used "
2005 "(automatically) when rendering with motion blur enabled");
2013 "Particle radius factor (higher value results in larger (meshed) "
2014 "particles). Needs to be adjusted after changing the mesh scale");
2024 "Minimum Wave Crest Potential",
2025 "Lower clamping threshold for marking fluid cells as wave crests "
2026 "(lower value results in more marked cells)");
2034 "Maximum Wave Crest Potential",
2035 "Upper clamping threshold for marking fluid cells as wave crests "
2036 "(higher value results in less marked cells)");
2044 "Minimum Trapped Air Potential",
2045 "Lower clamping threshold for marking fluid cells where air is trapped "
2046 "(lower value results in more marked cells)");
2054 "Maximum Trapped Air Potential",
2055 "Upper clamping threshold for marking fluid cells where air is trapped "
2056 "(higher value results in less marked cells)");
2065 "Minimum Kinetic Energy Potential",
2066 "Lower clamping threshold that indicates the fluid speed where cells start to emit "
2067 "particles (lower values result in generally more particles)");
2076 "Maximum Kinetic Energy Potential",
2077 "Upper clamping threshold that indicates the fluid speed where cells no longer emit more "
2078 "particles (higher value results in generally less particles)");
2086 "Wave Crest Sampling",
2087 "Maximum number of particles generated per wave crest cell per frame");
2095 "Trapped Air Sampling",
2096 "Maximum number of particles generated per trapped air cell per frame");
2105 "Amount of buoyancy force that rises bubbles (high value results in "
2106 "bubble movement mainly upwards)");
2115 "Amount of drag force that moves bubbles along with the fluid (high "
2116 "value results in bubble movement mainly along with the fluid)");
2137 prop,
"Particles in Boundary",
"How particles that left the domain are treated");
2146 "Determines which particle systems are created from secondary particles");
2155 "Radius to compute potential for each cell (higher values are slower "
2156 "but create smoother potential grids)");
2165 "Radius to compute position update for each particle (higher values "
2166 "are slower but particles move less chaotic)");
2175 "The particle simulation is scaled up by this factor (compared to the "
2176 "base resolution of the domain)");
2224 "Guiding velocity factor (higher value results in greater guiding velocities)");
2240 "Use velocities from this object for the guiding effect (object needs "
2241 "to have fluid modifier and be of type domain))");
2259 "Frame on which the simulation starts. This is the first frame that will be baked");
2269 "Frame on which the simulation stops. This is the last frame that will be baked");
2278 "Frame offset that is used when loading the simulation from the cache. It is not considered "
2279 "when baking the simulation, only when loading it");
2301 prop,
NULL,
"rna_Fluid_cachetype_mesh_set",
"rna_Fluid_cachetype_mesh_itemf");
2303 prop,
"File Format",
"Select the file format to be used for caching surface data");
2311 prop,
NULL,
"rna_Fluid_cachetype_data_set",
"rna_Fluid_cachetype_volume_itemf");
2313 prop,
"File Format",
"Select the file format to be used for caching volumetric data");
2321 prop,
NULL,
"rna_Fluid_cachetype_particle_set",
"rna_Fluid_cachetype_particle_itemf");
2323 prop,
"File Format",
"Select the file format to be used for caching particle data");
2331 prop,
NULL,
"rna_Fluid_cachetype_noise_set",
"rna_Fluid_cachetype_volume_itemf");
2333 prop,
"File Format",
"Select the file format to be used for caching noise data");
2350 "Additional data will be saved so that the bake jobs can be resumed after pausing. Because "
2351 "more data will be written to disk it is recommended to avoid enabling this option when "
2352 "baking at high resolutions");
2416 "Export Mantaflow Script",
2417 "Generate and export Mantaflow script from current domain settings during bake. This is "
2418 "only needed if you plan to analyze the cache (e.g. view grids, velocity vectors, "
2419 "particles) in Mantaflow directly (outside of Blender) after baking the simulation");
2436 "Bit depth for fluid particles and grids (lower bit values reduce file size)");
2452 "Maximal velocity per cell (greater CFL numbers will minimize the "
2453 "number of simulation steps and the computation time.)");
2466 prop,
"Minimum",
"Minimum number of simulation steps to perform for one frame");
2474 prop,
"Maximum",
"Maximum number of simulation steps to perform for one frame");
2495 prop,
"Slice Per Voxel",
"How many slices per voxel should be generated");
2516 prop,
"Interpolation",
"Interpolation method to use for smoke/fire volumes in solid mode");
2575 "Render a simulation field while mapping its voxels values to the "
2576 "colors of a ramp or using a predefined color code");
2581 {0,
"NONE", 0,
"",
""},
2597 prop,
"Scale",
"Multiplier for scaling the selected field to color map");
2613 "Value under which voxels are considered empty space to optimize rendering");
2620 prop,
"Color Gridlines",
"Simulation field to color map onto gridlines");
2676 "Only use given geometry for fluid"},
2682 {0,
"NONE", 0,
"",
""},
2691 "Generated coordinates centered to flow object"},
2751 prop,
NULL,
"rna_Fluid_flowsource_set",
"rna_Fluid_flowsource_itemf");
2759 "Only allow given density value in emitter area and will not add up");
2765 prop,
"Initial Velocity",
"Fluid has some initial velocity when it is emitted");
2774 "Multiplier of source velocity passed to fluid (source velocity is "
2775 "non-zero only if object is moving)");
2799 "Additional initial velocity in X, Y and Z direction (added to source velocity)");
2807 "Controls fluid emission from within the mesh (higher value results in "
2808 "greater emissions from inside the mesh)");
2816 "Controls fluid emission from the mesh surface (higher value results "
2817 "in emission further away from the mesh surface");
2825 "Treat this object as a planar and unclosed mesh. Fluid will only be emitted from the mesh "
2826 "surface and based on the surface emission value");
2838 prop,
"Set Size",
"Set particle size in simulation cells or use nearest cell");
2851 "Number of additional samples to take between frames to improve "
2852 "quality of fast moving flows");
2857 "rna_FluidFlow_density_vgroup_get",
2858 "rna_FluidFlow_density_vgroup_length",
2859 "rna_FluidFlow_density_vgroup_set");
2861 prop,
"Vertex Group",
"Name of vertex group which determines surface emission rate");
2912 "Compare velocities from previous frame with new velocities from current frame and keep "
2918 "Compare velocities from previous frame with new velocities from current frame and keep "
2924 "Always write new guide velocities for every frame (each frame only contains current "
2925 "velocities from guiding objects)"},
2930 "Take average of velocities from previous frame and new velocities from current frame"},
2952 prop,
"Surface",
"Additional distance around mesh surface to consider as effector");
2982 "Number of additional samples to take between frames to improve "
2983 "quality of fast moving effector objects");
struct ColorBand * BKE_colorband_add(bool rangetype)
void BKE_fluid_modifier_reset(struct FluidModifierData *fmd)
void BKE_fluid_particle_system_destroy(struct Object *ob, int particle_type)
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_cache_startframe_set(struct FluidDomainSettings *settings, int value)
void BKE_fluid_cachetype_noise_set(struct FluidDomainSettings *settings, int cache_noise_format)
void BKE_fluid_particle_system_create(struct Main *bmain, struct Object *ob, const char *pset_name, const char *parts_name, const char *psys_name, int psys_type)
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
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t size_t char size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_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_FLOW_USE_PART_SIZE
@ FLUID_FLOW_NEEDS_UPDATE
@ FLUID_FLOW_USE_PLANE_INIT
@ FLUID_FLOW_INITVELOCITY
@ FLUID_EFFECTOR_GUIDE_MAX
@ FLUID_EFFECTOR_GUIDE_OVERRIDE
@ FLUID_EFFECTOR_GUIDE_AVERAGED
@ FLUID_EFFECTOR_GUIDE_MIN
@ FLUID_DOMAIN_TYPE_LIQUID
@ FLUID_DOMAIN_MESH_UNION
@ FLUID_DOMAIN_MESH_IMPROVED
@ FLUID_FLOW_SOURCE_PARTICLES
@ FLUID_GRIDLINE_COLOR_TYPE_FLAGS
@ FLUID_GRIDLINE_COLOR_TYPE_RANGE
@ FLUID_DOMAIN_PARTICLE_SPRAY
@ FLUID_DOMAIN_PARTICLE_FOAM
@ FLUID_DOMAIN_PARTICLE_TRACER
@ FLUID_DOMAIN_PARTICLE_FLIP
@ FLUID_DOMAIN_PARTICLE_BUBBLE
@ FLUID_DOMAIN_CACHE_REPLAY
@ FLUID_DOMAIN_CACHE_MODULAR
@ FLUID_DISPLAY_INTERP_CLOSEST
@ FLUID_DISPLAY_INTERP_CUBIC
@ FLUID_DISPLAY_INTERP_LINEAR
@ FLUID_DOMAIN_METHOD_FLIP
@ FLUID_DOMAIN_METHOD_APIC
@ 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
@ VDB_PRECISION_MINI_FLOAT
@ VDB_PRECISION_FULL_FLOAT
@ VDB_PRECISION_HALF_FLOAT
@ 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
@ SNDPARTICLE_BOUNDARY_DELETE
@ SNDPARTICLE_BOUNDARY_PUSHOUT
@ 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_TYPE_SMOKEFIRE
@ 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_FILE_BIN_OBJECT
@ FLUID_DOMAIN_FILE_OBJECT
@ FLUID_DOMAIN_FILE_OPENVDB
@ FLUID_DOMAIN_GUIDE_SRC_EFFECTOR
@ FLUID_DOMAIN_GUIDE_SRC_DOMAIN
@ FLUID_FLOW_TEXTURE_MAP_UV
@ FLUID_FLOW_TEXTURE_MAP_AUTO
@ FLUID_EFFECTOR_NEEDS_UPDATE
@ FLUID_EFFECTOR_USE_EFFEC
@ FLUID_EFFECTOR_USE_PLANE_INIT
@ 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
@ FLUID_DOMAIN_VECTOR_FIELD_FORCE
@ FLUID_DOMAIN_VECTOR_FIELD_VELOCITY
@ FLUID_DOMAIN_VECTOR_FIELD_GUIDE_VELOCITY
#define FLUID_DOMAIN_BAKED_ALL
@ FLUID_FLOW_BEHAVIOR_GEOMETRY
@ FLUID_FLOW_BEHAVIOR_OUTFLOW
@ FLUID_FLOW_BEHAVIOR_INFLOW
@ FLUID_EFFECTOR_TYPE_GUIDE
@ FLUID_EFFECTOR_TYPE_COLLISION
#define FLUID_DOMAIN_BAKING_ALL
@ FLUID_CELL_TYPE_OUTFLOW
@ FLUID_CELL_TYPE_OBSTACLE
Object is a sort of wrapper for general info.
@ PART_FLUID_SPRAYFOAMBUBBLE
#define RNA_MAX_ARRAY_DIMENSION
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
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)
T length(const vec_base< T, Size > &a)
static const pxr::TfToken density("density", pxr::TfToken::Immortal)
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_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_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)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
static void rna_def_fluid_domain_settings(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)