diff options
Diffstat (limited to 'source/blender/makesdna/DNA_smoke_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_smoke_types.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_smoke_types.h b/source/blender/makesdna/DNA_smoke_types.h index 25c98b4f07e..6ca52f3288f 100644 --- a/source/blender/makesdna/DNA_smoke_types.h +++ b/source/blender/makesdna/DNA_smoke_types.h @@ -105,6 +105,8 @@ typedef struct SmokeDomainSettings { float obj_shift_f[3]; /* how much object has shifted since previous smoke frame (used to "lock" domain while drawing) */ float imat[4][4]; /* domain object imat */ float obmat[4][4]; /* domain obmat */ + float fluidmat[4][4]; /* low res fluid matrix */ + float fluidmat_wt[4][4]; /* high res fluid matrix */ int base_res[3]; /* initial "non-adapted" resolution */ int res_min[3]; /* cell min */ @@ -137,6 +139,8 @@ typedef struct SmokeDomainSettings { /* Smoke uses only one cache from now on (index [0]), but keeping the array for now for reading old files. */ struct PointCache *point_cache[2]; /* definition is in DNA_object_force.h */ struct ListBase ptcaches[2]; + int point_cache_offset; + int pad; struct EffectorWeights *effector_weights; int border_collisions; /* How domain border collisions are handled */ float time_scale; @@ -149,8 +153,36 @@ typedef struct SmokeDomainSettings { float burning_rate, flame_smoke, flame_vorticity; float flame_ignition, flame_max_temp; float flame_smoke_color[3]; + + /* display */ + float display_thickness; + int pad2; + + struct ListBase vdb_caches; + short use_openvdb, pad3[3]; + struct OpenVDBPrimitive *density, *density_high; } SmokeDomainSettings; +typedef struct OpenVDBCache { + struct OpenVDBCache *next, *prev; + struct OpenVDBReader *reader; + struct OpenVDBWriter *writer; + char path[1024]; + char name[64]; + int startframe, endframe; + short flags, compression, pad[2]; +} OpenVDBCache; + +enum { + VDB_CACHE_CURRENT = (1 << 0), + VDB_CACHE_SMOKE_EXPORTED = (1 << 1), +}; + +enum { + VDB_COMPRESSION_ZIP = 0, + VDB_COMPRESSION_BLOSC = 1, + VDB_COMPRESSION_NONE = 2, +}; /* inflow / outflow */ @@ -173,6 +205,7 @@ typedef struct SmokeDomainSettings { #define MOD_SMOKE_FLOW_INITVELOCITY (1<<2) /* passes particles speed to the smoke */ #define MOD_SMOKE_FLOW_TEXTUREEMIT (1<<3) /* use texture to control emission speed */ #define MOD_SMOKE_FLOW_USE_PART_SIZE (1<<4) /* use specific size for particles instead of closest cell */ +#define MOD_SMOKE_FLOW_USE_PART_TEXCOLOR (1<<5) /* passes particles texture color to the smoke */ typedef struct SmokeFlowSettings { struct SmokeModifierData *smd; /* for fast RNA access */ |