Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/makesdna/DNA_smoke_types.h')
-rw-r--r--source/blender/makesdna/DNA_smoke_types.h33
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 */