[Bf-blender-cvs] [b20f9b3ff5a] fluid-mantaflow: automated some UI selections

Sebastián Barschkis noreply at git.blender.org
Thu Jun 15 13:54:06 CEST 2017


Commit: b20f9b3ff5a5d5d25d021424f507bb747c7b9579
Author: Sebastián Barschkis
Date:   Thu Jun 15 13:50:31 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBb20f9b3ff5a5d5d25d021424f507bb747c7b9579

automated some UI selections

now smoke domains set volume cache automatically, liquid domains set surface cache automatically

===================================================================

M	source/blender/blenkernel/intern/smoke.c
M	source/blender/makesrna/intern/rna_smoke.c

===================================================================

diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index dc645b80f43..ade5e36bc87 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -561,7 +561,7 @@ void smokeModifier_createType(struct SmokeModifierData *smd)
 			smd->domain->cfl_condition = 4.0;
 			smd->domain->vorticity = 0.2;
 			smd->domain->border_collisions = 0; // open domain
-			smd->domain->flags = MOD_SMOKE_DISSOLVE_LOG;
+			smd->domain->flags = MOD_SMOKE_DISSOLVE_LOG | MOD_SMOKE_USE_VOLUME_CACHE;
 			smd->domain->highres_sampling = SM_HRES_FULLSAMPLE;
 			smd->domain->strength = 1.0;
 			smd->domain->noise = MOD_SMOKE_NOISEWAVE;
diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c
index 2abd009799c..0936c6c80d6 100644
--- a/source/blender/makesrna/intern/rna_smoke.c
+++ b/source/blender/makesrna/intern/rna_smoke.c
@@ -172,6 +172,30 @@ static void rna_Smoke_update_volume_format(Main *bmain, Scene *scene, PointerRNA
 	rna_Smoke_resetCache(bmain, scene, ptr);
 }
 
+static void rna_Smoke_use_surface_format_set(struct PointerRNA *ptr, int value)
+{
+	SmokeDomainSettings *settings = (SmokeDomainSettings *)ptr->data;
+
+	if (value == 1) {
+		settings->flags |= MOD_SMOKE_USE_SURFACE_CACHE;
+	}
+	else {
+		settings->flags &= ~MOD_SMOKE_USE_SURFACE_CACHE;
+	}
+}
+
+static void rna_Smoke_use_volume_format_set(struct PointerRNA *ptr, int value)
+{
+	SmokeDomainSettings *settings = (SmokeDomainSettings *)ptr->data;
+
+	if (value == 1) {
+		settings->flags |= MOD_SMOKE_USE_VOLUME_CACHE;
+	}
+	else {
+		settings->flags &= ~MOD_SMOKE_USE_VOLUME_CACHE;
+	}
+}
+
 static void rna_Smoke_cachetype_surface_set(struct PointerRNA *ptr, int value)
 {
 	SmokeDomainSettings *settings = (SmokeDomainSettings *)ptr->data;
@@ -294,6 +318,8 @@ static void rna_Smoke_domaintype_set(struct PointerRNA *ptr, int value)
 		/* Set common values for liquid/smoke domain: cache type, border collision and viewport drawtype. */
 		if (value == MOD_SMOKE_DOMAIN_TYPE_GAS)
 		{
+			rna_Smoke_use_surface_format_set(ptr, 0);
+			rna_Smoke_use_volume_format_set(ptr, 1);
 			rna_Smoke_cachetype_surface_set(ptr, PTCACHE_FILE_OBJECT);
 			rna_Smoke_cachetype_volume_set(ptr, PTCACHE_FILE_PTCACHE);
 			rna_Smoke_collisionextents_set(ptr, MOD_SMOKE_BORDER_FRONT, 1);
@@ -306,6 +332,8 @@ static void rna_Smoke_domaintype_set(struct PointerRNA *ptr, int value)
 		}
 		else if (value == MOD_SMOKE_DOMAIN_TYPE_LIQUID)
 		{
+			rna_Smoke_use_surface_format_set(ptr, 1);
+			rna_Smoke_use_volume_format_set(ptr, 0);
 			rna_Smoke_cachetype_surface_set(ptr, PTCACHE_FILE_OBJECT);
 			rna_Smoke_cachetype_volume_set(ptr, PTCACHE_FILE_UNI);
 			rna_Smoke_collisionextents_set(ptr, MOD_SMOKE_BORDER_FRONT, 0);
@@ -1067,11 +1095,13 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna)
 
 	prop = RNA_def_property(srna, "use_surface_cache", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_SMOKE_USE_SURFACE_CACHE);
+	RNA_def_property_boolean_funcs(prop, NULL, "rna_Smoke_use_surface_format_set");
 	RNA_def_property_ui_text(prop, "Surface cache", "Enable surface cache");
 	RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_reset");
 
 	prop = RNA_def_property(srna, "use_volume_cache", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_SMOKE_USE_VOLUME_CACHE);
+	RNA_def_property_boolean_funcs(prop, NULL, "rna_Smoke_use_volume_format_set");
 	RNA_def_property_ui_text(prop, "Volumetric cache", "Enable volume cache");
 	RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_update_volume_format");




More information about the Bf-blender-cvs mailing list