Blender  V2.93
DNA_fluid_types.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2006 by NaN Holding BV.
17  * All rights reserved.
18  */
19 
24 #pragma once
25 
26 #include "DNA_listBase.h"
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
36 enum {
37  FLUID_DOMAIN_USE_NOISE = (1 << 1), /* Use noise. */
38  FLUID_DOMAIN_USE_DISSOLVE = (1 << 2), /* Let smoke dissolve. */
39  FLUID_DOMAIN_USE_DISSOLVE_LOG = (1 << 3), /* Using 1/x for dissolve. */
40 
42  FLUID_DOMAIN_USE_HIGH_SMOOTH = (1 << 5), /* -- Deprecated -- */
43 #endif
44  FLUID_DOMAIN_FILE_LOAD = (1 << 6), /* Flag for file load. */
46  FLUID_DOMAIN_USE_ADAPTIVE_TIME = (1 << 8), /* Adaptive time stepping in domain. */
47  FLUID_DOMAIN_USE_MESH = (1 << 9), /* Use mesh. */
48  FLUID_DOMAIN_USE_GUIDE = (1 << 10), /* Use guiding. */
49  FLUID_DOMAIN_USE_SPEED_VECTORS = (1 << 11), /* Generate mesh speed vectors. */
50  FLUID_DOMAIN_EXPORT_MANTA_SCRIPT = (1 << 12), /* Export mantaflow script during bake. */
51  FLUID_DOMAIN_USE_FRACTIONS = (1 << 13), /* Use second order obstacles. */
52  FLUID_DOMAIN_DELETE_IN_OBSTACLE = (1 << 14), /* Delete fluid inside obstacles. */
53  FLUID_DOMAIN_USE_DIFFUSION = (1 << 15), /* Use diffusion (e.g. viscosity, surface tension). */
54  FLUID_DOMAIN_USE_RESUMABLE_CACHE = (1 << 16), /* Determine if cache should be resumable. */
55  FLUID_DOMAIN_USE_VISCOSITY = (1 << 17), /* Use viscosity. */
56 };
57 
62 enum {
69 };
70 
71 /* Cache file formats. */
72 enum {
78 };
79 
84 enum {
87 };
88 
93 enum {
98 };
99 
109 
111 enum {
115 };
116 
118 enum {
119  VECTOR_DRAW_MAC_X = (1 << 0),
120  VECTOR_DRAW_MAC_Y = (1 << 1),
121  VECTOR_DRAW_MAC_Z = (1 << 2),
122 };
123 
133 
135 enum {
138 };
139 
141 enum {
147 };
148 
150 enum {
171 };
172 
177 enum {
180 };
181 
186 enum {
193 };
194 
195 /* Fluid domain types. */
196 enum {
199 };
200 
201 /* Smoke noise types. */
202 enum {
204 };
205 
206 /* Mesh levelset generator types. */
207 enum {
210 };
211 
212 /* Guiding velocity source. */
213 enum {
216 };
217 
218 /* Fluid data fields (active_fields). */
219 enum {
228 };
229 
230 /* Particle types. */
231 enum {
237 };
238 
239 /* Liquid simulation methods. */
240 enum {
243 };
244 
245 /* Cache options. */
246 enum {
262 };
263 
264 #define FLUID_DOMAIN_BAKING_ALL \
265  (FLUID_DOMAIN_BAKING_DATA | FLUID_DOMAIN_BAKING_NOISE | FLUID_DOMAIN_BAKING_MESH | \
266  FLUID_DOMAIN_BAKING_PARTICLES | FLUID_DOMAIN_BAKING_GUIDE)
267 
268 #define FLUID_DOMAIN_BAKED_ALL \
269  (FLUID_DOMAIN_BAKED_DATA | FLUID_DOMAIN_BAKED_NOISE | FLUID_DOMAIN_BAKED_MESH | \
270  FLUID_DOMAIN_BAKED_PARTICLES | FLUID_DOMAIN_BAKED_GUIDE)
271 
272 #define FLUID_DOMAIN_DIR_DEFAULT "cache_fluid"
273 #define FLUID_DOMAIN_DIR_CONFIG "config"
274 #define FLUID_DOMAIN_DIR_DATA "data"
275 #define FLUID_DOMAIN_DIR_NOISE "noise"
276 #define FLUID_DOMAIN_DIR_MESH "mesh"
277 #define FLUID_DOMAIN_DIR_PARTICLES "particles"
278 #define FLUID_DOMAIN_DIR_GUIDE "guiding"
279 #define FLUID_DOMAIN_DIR_SCRIPT "script"
280 #define FLUID_DOMAIN_SMOKE_SCRIPT "smoke_script.py"
281 #define FLUID_DOMAIN_LIQUID_SCRIPT "liquid_script.py"
282 #define FLUID_CACHE_VERSION "C01"
283 
284 /* Cache file names. */
285 #define FLUID_NAME_CONFIG "config"
286 #define FLUID_NAME_DATA "fluid_data"
287 #define FLUID_NAME_NOISE "fluid_noise"
288 #define FLUID_NAME_MESH "fluid_mesh"
289 #define FLUID_NAME_PARTICLES "fluid_particles"
290 #define FLUID_NAME_GUIDING "fluid_guiding"
291 
292 /* Fluid object names.*/
293 #define FLUID_NAME_FLAGS "flags" /* == OpenVDB grid attribute name. */
294 #define FLUID_NAME_VELOCITY "velocity" /* == OpenVDB grid attribute name. */
295 #define FLUID_NAME_VEL "vel"
296 #define FLUID_NAME_VELOCITYTMP "velocity_previous" /* == OpenVDB grid attribute name. */
297 #define FLUID_NAME_VELOCITYX "x_vel"
298 #define FLUID_NAME_VELOCITYY "y_vel"
299 #define FLUID_NAME_VELOCITYZ "z_vel"
300 #define FLUID_NAME_PRESSURE "pressure"
301 #define FLUID_NAME_PHIOBS "phi_obstacle" /* == OpenVDB grid attribute name. */
302 #define FLUID_NAME_PHISIN "phiSIn"
303 #define FLUID_NAME_PHIIN "phi_inflow" /* == OpenVDB grid attribute name. */
304 #define FLUID_NAME_PHIOUT "phi_out" /* == OpenVDB grid attribute name. */
305 #define FLUID_NAME_FORCES "forces"
306 #define FLUID_NAME_FORCE_X "x_force"
307 #define FLUID_NAME_FORCE_Y "y_force"
308 #define FLUID_NAME_FORCE_Z "z_force"
309 #define FLUID_NAME_NUMOBS "numObs"
310 #define FLUID_NAME_PHIOBSSIN "phiObsSIn"
311 #define FLUID_NAME_PHIOBSIN "phi_obstacle_inflow"
312 #define FLUID_NAME_OBVEL "obvel"
313 #define FLUID_NAME_OBVELC "obvelC"
314 #define FLUID_NAME_OBVEL_X "x_obvel"
315 #define FLUID_NAME_OBVEL_Y "y_obvel"
316 #define FLUID_NAME_OBVEL_Z "z_obvel"
317 #define FLUID_NAME_FRACTIONS "fractions"
318 #define FLUID_NAME_INVELC "invelC"
319 #define FLUID_NAME_INVEL_X "x_invel"
320 #define FLUID_NAME_INVEL_Y "y_invel"
321 #define FLUID_NAME_INVEL_Z "z_invel"
322 #define FLUID_NAME_PHIOUTSIN "phiOutSIn"
323 #define FLUID_NAME_PHIOUTIN "phi_out_inflow"
324 
325 /* Smoke object names. */
326 #define FLUID_NAME_SHADOW "shadow" /* == OpenVDB grid attribute name. */
327 #define FLUID_NAME_EMISSION "emission" /* == OpenVDB grid attribute name. */
328 #define FLUID_NAME_EMISSIONIN "emissionIn"
329 #define FLUID_NAME_DENSITY "density" /* == OpenVDB grid attribute name. */
330 #define FLUID_NAME_DENSITYIN "density_inflow" /* == OpenVDB grid attribute name. */
331 #define FLUID_NAME_HEAT "heat"
332 #define FLUID_NAME_HEATIN "heatIn"
333 #define FLUID_NAME_TEMPERATURE "temperature" /* == OpenVDB grid attribute name. */
334 #define FLUID_NAME_TEMPERATUREIN "temperature_inflow" /* == OpenVDB grid attribute name. */
335 #define FLUID_NAME_COLORR "color_r" /* == OpenVDB grid attribute name. */
336 #define FLUID_NAME_COLORG "color_g" /* == OpenVDB grid attribute name. */
337 #define FLUID_NAME_COLORB "color_b" /* == OpenVDB grid attribute name. */
338 #define FLUID_NAME_COLORRIN "color_r_inflow" /* == OpenVDB grid attribute name. */
339 #define FLUID_NAME_COLORGIN "color_g_inflow" /* == OpenVDB grid attribute name. */
340 #define FLUID_NAME_COLORBIN "color_b_inflow" /* == OpenVDB grid attribute name. */
341 #define FLUID_NAME_FLAME "flame" /* == OpenVDB grid attribute name. */
342 #define FLUID_NAME_FUEL "fuel" /* == OpenVDB grid attribute name. */
343 #define FLUID_NAME_REACT "react" /* == OpenVDB grid attribute name. */
344 #define FLUID_NAME_FUELIN "fuel_inflow" /* == OpenVDB grid attribute name. */
345 #define FLUID_NAME_REACTIN "react_inflow" /* == OpenVDB grid attribute name. */
346 
347 /* Liquid object names. */
348 #define FLUID_NAME_PHIPARTS "phi_particles" /* == OpenVDB grid attribute name. */
349 #define FLUID_NAME_PHI "phi" /* == OpenVDB grid attribute name. */
350 #define FLUID_NAME_PHITMP "phi_previous" /* == OpenVDB grid attribute name. */
351 #define FLUID_NAME_VELOCITYOLD "velOld"
352 #define FLUID_NAME_VELOCITYPARTS "velParts"
353 #define FLUID_NAME_MAPWEIGHTS "mapWeights"
354 #define FLUID_NAME_PP "pp"
355 #define FLUID_NAME_PVEL "pVel"
356 #define FLUID_NAME_PARTS "particles" /* == OpenVDB grid attribute name. */
357 #define FLUID_NAME_PARTSVELOCITY "particles_velocity" /* == OpenVDB grid attribute name. */
358 #define FLUID_NAME_PINDEX "pindex"
359 #define FLUID_NAME_GPI "gpi"
360 #define FLUID_NAME_CURVATURE "gpi"
361 
362 /* Noise object names. */
363 #define FLUID_NAME_VELOCITY_NOISE "velocity_noise"
364 #define FLUID_NAME_DENSITY_NOISE "density_noise" /* == OpenVDB grid attribute name. */
365 #define FLUID_NAME_PHIIN_NOISE "phiIn_noise"
366 #define FLUID_NAME_PHIOUT_NOISE "phiOut_noise"
367 #define FLUID_NAME_PHIOBS_NOISE "phiObs_noise"
368 #define FLUID_NAME_FLAGS_NOISE "flags_noise"
369 #define FLUID_NAME_TMPIN_NOISE "tmpIn_noise"
370 #define FLUID_NAME_EMISSIONIN_NOISE "emissionIn_noise"
371 #define FLUID_NAME_ENERGY "energy"
372 #define FLUID_NAME_TMPFLAGS "tmpFlags"
373 #define FLUID_NAME_TEXTURE_U "textureU"
374 #define FLUID_NAME_TEXTURE_V "textureV"
375 #define FLUID_NAME_TEXTURE_W "textureW"
376 #define FLUID_NAME_TEXTURE_U2 "textureU2"
377 #define FLUID_NAME_TEXTURE_V2 "textureV2"
378 #define FLUID_NAME_TEXTURE_W2 "textureW2"
379 #define FLUID_NAME_UV0 "uv_grid_0" /* == OpenVDB grid attribute name. */
380 #define FLUID_NAME_UV1 "uv_grid_1" /* == OpenVDB grid attribute name. */
381 #define FLUID_NAME_COLORR_NOISE "color_r_noise" /* == OpenVDB grid attribute name. */
382 #define FLUID_NAME_COLORG_NOISE "color_g_noise" /* == OpenVDB grid attribute name. */
383 #define FLUID_NAME_COLORB_NOISE "color_b_noise" /* == OpenVDB grid attribute name. */
384 #define FLUID_NAME_FLAME_NOISE "flame_noise"
385 #define FLUID_NAME_FUEL_NOISE "fuel_noise"
386 #define FLUID_NAME_REACT_NOISE "react_noise"
387 
388 /* Mesh object names. */
389 #define FLUID_NAME_PHIPARTS_MESH "phiParts_mesh"
390 #define FLUID_NAME_PHI_MESH "phi_mesh"
391 #define FLUID_NAME_PP_MESH "pp_mesh"
392 #define FLUID_NAME_FLAGS_MESH "flags_mesh"
393 #define FLUID_NAME_LMESH "lMesh"
394 /* == OpenVDB grid attribute name. */
395 #define FLUID_NAME_VELOCITYVEC_MESH "vertex_velocities_mesh"
396 #define FLUID_NAME_VELOCITY_MESH "velocity_mesh"
397 #define FLUID_NAME_PINDEX_MESH "pindex_mesh"
398 #define FLUID_NAME_GPI_MESH "gpi_mesh"
399 
400 /* Particles object names. */
401 #define FLUID_NAME_PP_PARTICLES "ppSnd"
402 #define FLUID_NAME_PVEL_PARTICLES "pVelSnd"
403 #define FLUID_NAME_PLIFE_PARTICLES "pLifeSnd"
404 #define FLUID_NAME_PFORCE_PARTICLES "pForceSnd"
405 /* == OpenVDB grid attribute name. */
406 #define FLUID_NAME_PARTS_PARTICLES "particles_secondary"
407 /* == OpenVDB grid attribute name. */
408 #define FLUID_NAME_PARTSVEL_PARTICLES "particles_velocity_secondary"
409 /* == OpenVDB grid attribute name. */
410 #define FLUID_NAME_PARTSLIFE_PARTICLES "particles_life_secondary"
411 #define FLUID_NAME_PARTSFORCE_PARTICLES "particles_force_secondary"
412 #define FLUID_NAME_VELOCITY_PARTICLES "velocity_secondary"
413 #define FLUID_NAME_FLAGS_PARTICLES "flags_secondary"
414 #define FLUID_NAME_PHI_PARTICLES "phi_secondary"
415 #define FLUID_NAME_PHIOBS_PARTICLES "phiObs_secondary"
416 #define FLUID_NAME_PHIOUT_PARTICLES "phiOut_secondary"
417 #define FLUID_NAME_NORMAL_PARTICLES "normal_secondary"
418 #define FLUID_NAME_NEIGHBORRATIO_PARTICLES "neighbor_ratio_secondary"
419 /* == OpenVDB grid attribute name. */
420 #define FLUID_NAME_TRAPPEDAIR_PARTICLES "trapped_air_secondary"
421 /* == OpenVDB grid attribute name. */
422 #define FLUID_NAME_WAVECREST_PARTICLES "wave_crest_secondary"
423 /* == OpenVDB grid attribute name. */
424 #define FLUID_NAME_KINETICENERGY_PARTICLES "kinetic_energy_secondary"
425 
426 /* Guiding object names. */
427 #define FLUID_NAME_VELT "velT"
428 #define FLUID_NAME_WEIGHTGUIDE "weightGuide"
429 #define FLUID_NAME_NUMGUIDES "numGuides"
430 #define FLUID_NAME_PHIGUIDEIN "phiGuideIn"
431 #define FLUID_NAME_GUIDEVELC "guidevelC"
432 #define FLUID_NAME_GUIDEVEL_X "x_guidevel"
433 #define FLUID_NAME_GUIDEVEL_Y "y_guidevel"
434 #define FLUID_NAME_GUIDEVEL_Z "z_guidevel"
435 #define FLUID_NAME_GUIDEVEL "guidevel"
436 #define FLUID_NAME_VELOCITY_GUIDE "velocity_guide"
437 
438 /* Cache file extensions. */
439 #define FLUID_DOMAIN_EXTENSION_UNI ".uni"
440 #define FLUID_DOMAIN_EXTENSION_OPENVDB ".vdb"
441 #define FLUID_DOMAIN_EXTENSION_RAW ".raw"
442 #define FLUID_DOMAIN_EXTENSION_OBJ ".obj"
443 #define FLUID_DOMAIN_EXTENSION_BINOBJ ".bobj.gz"
444 
445 enum {
449 };
450 
451 enum {
454 };
455 
456 enum {
460 };
461 
462 enum {
466 };
467 
468 enum {
472 };
473 
474 /* Deprecated values (i.e. all defines and enums below this line up until typedefs). */
475 /* Cache compression. */
476 enum {
479 };
480 
481 /* High resolution sampling types. */
482 enum {
486 };
487 
489  float vel[3];
491 
492 typedef struct FluidDomainSettings {
493 
494  /* -- Runtime-only fields (from here on). -- */
495 
496  struct FluidModifierData *fmd; /* For fast RNA access. */
497  struct MANTA *fluid;
498  struct MANTA *fluid_old; /* Adaptive domain needs access to old fluid state. */
499  void *fluid_mutex;
501  struct Collection *force_group; /* UNUSED */
502  struct Collection *effector_group; /* Effector objects group. */
520 
521  /* Domain object data. */
522  float p0[3]; /* Start point of BB in local space
523  * (includes sub-cell shift for adaptive domain). */
524  float p1[3]; /* End point of BB in local space. */
525  float dp0[3]; /* Difference from object center to grid start point. */
526  float cell_size[3]; /* Size of simulation cell in local space. */
527  float global_size[3]; /* Global size of domain axises. */
528  float prev_loc[3];
529  int shift[3]; /* Current domain shift in simulation cells. */
530  float shift_f[3]; /* Exact domain shift. */
531  float obj_shift_f[3]; /* How much object has shifted since previous smoke frame (used to "lock"
532  * domain while drawing). */
533  float imat[4][4]; /* Domain object imat. */
534  float obmat[4][4]; /* Domain obmat. */
535  float fluidmat[4][4]; /* Low res fluid matrix. */
536  float fluidmat_wt[4][4]; /* High res fluid matrix. */
537  int base_res[3]; /* Initial "non-adapted" resolution. */
538  int res_min[3]; /* Cell min. */
539  int res_max[3]; /* Cell max. */
540  int res[3]; /* Data resolution (res_max-res_min). */
542  float dx; /* 1.0f / res. */
543  float scale; /* Largest domain size. */
544  int boundary_width; /* Usually this is just 1. */
545  float gravity_final[3]; /* Scene or domain gravity multiplied with gravity weight. */
546 
547  /* -- User-accesible fields (from here on). -- */
548 
549  /* Adaptive domain options. */
553 
554  /* Fluid domain options */
555  int maxres; /* Longest axis on the BB gets this resolution assigned. */
556  int solver_res; /* Dimension of manta solver, 2d or 3d. */
557  int border_collisions; /* How domain border collisions are handled. */
558  int flags; /* Use-mesh, use-noise, etc. */
559  float gravity[3];
561  short type; /* Gas, liquid. */
562  char _pad2[6]; /* Unused. */
563 
564  /* Smoke domain options. */
565  float alpha;
566  float beta;
567  int diss_speed; /* In frames. */
568  float vorticity;
569  float active_color[3]; /* Monitor smoke color. */
571 
572  /* Flame options. */
576 
577  /* Noise options. */
581  int res_noise[3];
583  short noise_type; /* Noise type: wave, curl, anisotropic. */
584  char _pad3[2]; /* Unused. */
585 
586  /* Liquid domain options. */
595  float flip_ratio;
598  char _pad4[6];
599 
600  /* Viscosity options. */
602  char _pad5[4];
603 
604  /* Diffusion options. */
608 
609  /* Mesh options. */
616  int totvert;
618  char _pad6[6]; /* Unused. */
619 
620  /* Secondary particle options. */
639  char _pad7[6]; /* Unused. */
640 
641  /* Fluid guiding options. */
642  float guide_alpha; /* Guiding weight scalar (determines strength). */
643  int guide_beta; /* Guiding blur radius (affects size of vortices). */
644  float guide_vel_factor; /* Multiply guiding velocity by this factor. */
645  int guide_res[3]; /* Res for velocity guide grids - independent from base res. */
647  char _pad8[2]; /* Unused. */
648 
649  /* Cache options. */
663  char cache_directory[1024];
664  char error[64]; /* Bake error description. */
665  short cache_type;
666  char cache_id[4]; /* Run-time only */
667  char _pad9[2]; /* Unused. */
668 
669  /* Time options. */
670  float dt;
671  float time_total;
674  float time_scale;
678 
679  /* Display options. */
681  float slice_depth;
683  float grid_scale;
684  struct ColorBand *coba;
694  char vector_field; /* Simulation field used for vector display. */
697  char use_coba;
698  char coba_field; /* Simulation field used for the color mapping. */
700  char gridlines_color_field; /* Simulation field used to color map onto gridlines. */
702  char _pad10[7]; /* Unused. */
703 
704  /* OpenVDB cache options. */
706  float clipping;
708  char _pad11[7]; /* Unused. */
709 
710  /* -- Deprecated / unsed options (below). -- */
711 
712  /* View options. */
714  char _pad12[4]; /* Unused. */
715 
716  /* Pointcache options. */
717  /* Smoke uses only one cache from now on (index [0]), but keeping the array for now for reading
718  * old files. */
719  struct PointCache *point_cache[2]; /* Definition is in DNA_object_force_types.h. */
720  struct ListBase ptcaches[2];
724  char _pad13[7]; /* Unused. */
725 
727 
728 /* Flow types. */
729 enum {
734 };
735 
736 /* Flow behavior types. */
737 enum {
741 };
742 
743 /* Flow source types. */
744 enum {
747 };
748 
749 /* Flow texture types. */
750 enum {
753 };
754 
755 /* Flow flags. */
756 enum {
757  /* Old style emission. */
759  /* Passes particles speed to the smoke. */
761  /* Use texture to control emission speed. */
763  /* Use specific size for particles instead of closest cell. */
765  /* Control when to apply inflow. */
767  /* Control how to initialize flow objects. */
769  /* Notify domain objects about state change (invalidate cache). */
771 };
772 
773 typedef struct FluidFlowSettings {
774 
775  /* -- Runtime-only fields (from here on). -- */
776 
777  /* For fast RNA access. */
779  struct Mesh *mesh;
782 
783  /* Initial velocity. */
784  /* Previous vertex positions in domain space. */
785  float *verts_old;
786  int numverts;
787  float vel_multi; /* Multiplier for inherited velocity. */
788  float vel_normal;
789  float vel_random;
790  float vel_coord[3];
791  char _pad1[4];
792 
793  /* -- User-accesible fields (from here on). -- */
794 
795  /* Emission. */
796  float density;
797  float color[3];
798  float fuel_amount;
799  /* Delta temperature (temp - ambient temp). */
800  float temperature;
801  /* Density emitted within mesh volume. */
803  /* Maximum emission distance from mesh surface. */
807 
808  /* Texture control. */
811  char _pad2[4];
812  /* MAX_CUSTOMDATA_LAYER_NAME. */
813  char uvlayer_name[64];
815 
816  short type; /* Smoke, flames, both, outflow, liquid. */
817  short behavior; /* Inflow, outflow, static. */
818  short source;
820  short _pad3[3];
821  int flags; /* Absolute emission etc. */
823 
824 /* Effector types. */
825 enum {
828 };
829 
830 /* Guiding velocity modes. */
831 enum {
836 };
837 
838 /* Effector flags. */
839 enum {
840  /* Control when to apply inflow. */
842  /* Control how to initialize flow objects. */
844  /* Notify domain objects about state change (invalidate cache). */
846 };
847 
848 /* Collision objects (filled with smoke). */
849 typedef struct FluidEffectorSettings {
850 
851  /* -- Runtime-only fields (from here on). -- */
852 
853  /* For fast RNA access. */
855  struct Mesh *mesh;
856  float *verts_old;
857  int numverts;
858 
859  /* -- User-accesible fields (from here on). -- */
860 
861  float surface_distance; /* Thickness of mesh surface, used in obstacle sdf. */
862  int flags;
864  short type;
865  char _pad1[6];
866 
867  /* Guiding options. */
868  float vel_multi; /* Multiplier for object velocity. */
869  short guide_mode;
870  char _pad2[2];
872 
873 #ifdef __cplusplus
874 }
875 #endif
@ AXIS_SLICE_SINGLE
@ AXIS_SLICE_FULL
@ VECTOR_DRAW_NEEDLE
@ VECTOR_DRAW_STREAMLINE
@ VECTOR_DRAW_MAC
@ 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_ABSOLUTE
@ FLUID_FLOW_TEXTUREEMIT
@ FLUID_FLOW_USE_PART_SIZE
@ FLUID_FLOW_NEEDS_UPDATE
@ FLUID_FLOW_USE_PLANE_INIT
@ FLUID_FLOW_INITVELOCITY
@ FLUID_FLOW_USE_INFLOW
@ VDB_COMPRESSION_NONE
@ VDB_COMPRESSION_ZIP
@ VDB_COMPRESSION_BLOSC
@ FLUID_NOISE_TYPE_WAVELET
@ SNDPARTICLE_BOUNDARY_DELETE
@ SNDPARTICLE_BOUNDARY_PUSHOUT
struct FluidFlowSettings FluidFlowSettings
@ FLUID_FLOW_SOURCE_PARTICLES
@ FLUID_FLOW_SOURCE_MESH
@ FLUID_EFFECTOR_TYPE_GUIDE
@ FLUID_EFFECTOR_TYPE_COLLISION
@ SM_HRES_NEAREST
@ SM_HRES_LINEAR
@ SM_HRES_FULLSAMPLE
@ FLUID_EFFECTOR_NEEDS_UPDATE
@ FLUID_EFFECTOR_USE_EFFEC
@ FLUID_EFFECTOR_USE_PLANE_INIT
@ SLICE_AXIS_X
@ SLICE_AXIS_AUTO
@ SLICE_AXIS_Z
@ SLICE_AXIS_Y
@ FLUID_FLOW_BEHAVIOR_GEOMETRY
@ FLUID_FLOW_BEHAVIOR_OUTFLOW
@ FLUID_FLOW_BEHAVIOR_INFLOW
@ FLUID_CELL_TYPE_OUTFLOW
@ FLUID_CELL_TYPE_FLUID
@ FLUID_CELL_TYPE_EMPTY
@ FLUID_CELL_TYPE_NONE
@ FLUID_CELL_TYPE_OBSTACLE
@ FLUID_CELL_TYPE_INFLOW
@ 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_REACT
@ 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_PHI
@ 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_DisplayInterpolationMethod
@ FLUID_DISPLAY_INTERP_CLOSEST
@ FLUID_DISPLAY_INTERP_CUBIC
@ FLUID_DISPLAY_INTERP_LINEAR
@ FLUID_DOMAIN_CACHE_ALL
@ FLUID_DOMAIN_CACHE_REPLAY
@ FLUID_DOMAIN_CACHE_MODULAR
@ FLUID_DOMAIN_USE_ADAPTIVE_DOMAIN
@ FLUID_DOMAIN_USE_MESH
@ 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_USE_GUIDE
@ FLUID_DOMAIN_EXPORT_MANTA_SCRIPT
@ FLUID_DOMAIN_USE_VISCOSITY
@ FLUID_DOMAIN_USE_SPEED_VECTORS
@ FLUID_DOMAIN_USE_NOISE
@ FLUID_DOMAIN_USE_FRACTIONS
@ FLUID_DOMAIN_USE_DISSOLVE
@ FLUID_DOMAIN_FILE_LOAD
@ FLUID_DOMAIN_ACTIVE_COLORS
@ FLUID_DOMAIN_ACTIVE_FIRE
@ FLUID_DOMAIN_ACTIVE_INVEL
@ FLUID_DOMAIN_ACTIVE_GUIDE
@ FLUID_DOMAIN_ACTIVE_OUTFLOW
@ FLUID_DOMAIN_ACTIVE_COLOR_SET
@ FLUID_DOMAIN_ACTIVE_HEAT
@ FLUID_DOMAIN_ACTIVE_OBSTACLE
@ FLUID_DOMAIN_FILE_BIN_OBJECT
@ FLUID_DOMAIN_FILE_RAW
@ FLUID_DOMAIN_FILE_OBJECT
@ FLUID_DOMAIN_FILE_UNI
@ FLUID_DOMAIN_FILE_OPENVDB
struct FluidEffectorSettings FluidEffectorSettings
@ 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
@ VECTOR_DRAW_MAC_X
@ VECTOR_DRAW_MAC_Y
@ VECTOR_DRAW_MAC_Z
@ VDB_PRECISION_MINI_FLOAT
@ VDB_PRECISION_FULL_FLOAT
@ VDB_PRECISION_HALF_FLOAT
@ FLUID_DOMAIN_GRID_INT
@ FLUID_DOMAIN_GRID_VEC3F
@ FLUID_DOMAIN_GRID_FLOAT
@ FLUID_FLOW_TYPE_FIRE
@ FLUID_FLOW_TYPE_SMOKEFIRE
@ FLUID_FLOW_TYPE_LIQUID
@ FLUID_FLOW_TYPE_SMOKE
@ FLUID_DOMAIN_METHOD_FLIP
@ FLUID_DOMAIN_METHOD_APIC
struct FluidDomainVertexVelocity FluidDomainVertexVelocity
@ SM_CACHE_LIGHT
@ SM_CACHE_HEAVY
@ 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
struct FluidDomainSettings FluidDomainSettings
@ 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_CACHE_FILES_COMBINED
@ FLUID_DOMAIN_CACHE_FILES_SINGLE
@ FLUID_DOMAIN_MESH_UNION
@ FLUID_DOMAIN_MESH_IMPROVED
FLUID_DisplayVectorField
@ FLUID_DOMAIN_VECTOR_FIELD_FORCE
@ FLUID_DOMAIN_VECTOR_FIELD_VELOCITY
@ FLUID_DOMAIN_VECTOR_FIELD_GUIDE_VELOCITY
@ FLUID_DOMAIN_TYPE_GAS
@ FLUID_DOMAIN_TYPE_LIQUID
These structs are the foundation for all linked lists in the library system.
struct GPUTexture GPUTexture
Definition: GPU_texture.h:33
#define DNA_DEPRECATED_ALLOW
Definition: action.c:32
struct ListBase ptcaches[2]
struct FluidModifierData * fmd
struct GPUTexture * tex_density
struct GPUTexture * tex_range_field
struct Collection * force_group
struct GPUTexture * tex_velocity_x
struct GPUTexture * tex_color
struct GPUTexture * tex_wt
struct FluidDomainVertexVelocity * mesh_velocities
struct GPUTexture * tex_velocity_y
struct GPUTexture * tex_field
struct Collection * effector_group
struct MANTA * fluid
struct GPUTexture * tex_velocity_z
struct PointCache * point_cache[2]
struct GPUTexture * tex_shadow
char cache_directory[1024]
struct ColorBand * coba
struct GPUTexture * tex_flags
float gridlines_range_color[4]
struct GPUTexture * tex_coba
struct GPUTexture * tex_flame
struct Object * guide_parent
struct MANTA * fluid_old
struct Collection * fluid_group
struct EffectorWeights * effector_weights
struct GPUTexture * tex_flame_coba
struct FluidModifierData * fmd
struct FluidModifierData * fmd
struct ParticleSystem * psys
struct Mesh * mesh
struct Tex * noise_texture