[Bf-blender-cvs] [77fcd6c] soc-2014-fluid: unnecessary calls to Mantaflow removed

Roman Pogribnyi noreply at git.blender.org
Wed Oct 22 20:47:57 CEST 2014


Commit: 77fcd6c4009432b36ae155166851e7a14f7420bd
Author: Roman Pogribnyi
Date:   Wed Oct 22 20:47:41 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rB77fcd6c4009432b36ae155166851e7a14f7420bd

unnecessary calls to Mantaflow removed

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

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

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

diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index d6cea74..c0cc2cd 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -942,7 +942,9 @@ static void update_obstacles(Scene *scene, Object *ob, SmokeDomainSettings *sds,
 //			}
 		}
 	}
-	manta_export_obstacles(manta_obs_sdf, sds->res[0], sds->res[1], sds->res[2]);
+	if(sds->flags & MOD_SMOKE_USE_MANTA){
+		manta_export_obstacles(manta_obs_sdf, sds->res[0], sds->res[1], sds->res[2]);
+	}
 	MEM_freeN(manta_obs_sdf);
 }
 
@@ -2239,7 +2241,9 @@ static void update_flowsfluids(Scene *scene, Object *ob, SmokeDomainSettings *sd
 				// we got nice flow object
 				SmokeFlowSettings *sfs = smd2->flow;
 				EmissionMap *em = &emaps[flowIndex];
-				manta_write_emitters(sfs,false,em->min[0],em->min[1],em->min[2],em->max[0],em->max[1],em->max[2],sds->res[0],sds->res[1],sds->res[2], em->influence, em->velocity);
+				if(sds->flags & MOD_SMOKE_USE_MANTA){
+					manta_write_emitters(sfs,false,em->min[0],em->min[1],em->min[2],em->max[0],em->max[1],em->max[2],sds->res[0],sds->res[1],sds->res[2], em->influence, em->velocity);
+				}
 				float *density = smoke_get_density(sds->fluid);
 				float *color_r = smoke_get_color_r(sds->fluid);
 				float *color_g = smoke_get_color_g(sds->fluid);
@@ -2380,12 +2384,16 @@ static void update_flowsfluids(Scene *scene, Object *ob, SmokeDomainSettings *sd
 											}
 											else { // inflow
 												apply_inflow_fields(sfs, interpolated_value, index_big, bigdensity, NULL, bigfuel, bigreact, bigcolor_r, bigcolor_g, bigcolor_b);
-												manta_big_inflow_sdf[index_big] = interpolated_value;
+												if(sds->flags & MOD_SMOKE_USE_MANTA){
+													manta_big_inflow_sdf[index_big] = interpolated_value;
+												}
 											}
 										} // hires loop
 							}  // bigdensity
 						} // low res loop
-				manta_write_emitters(sfs,true,0,0,0,bigres[0], bigres[1], bigres[2], bigres[0], bigres[1], bigres[2],manta_big_inflow_sdf, NULL);
+				if((sds->flags & MOD_SMOKE_USE_MANTA) && (bigdensity)){
+					manta_write_emitters(sfs,true,0,0,0,bigres[0], bigres[1], bigres[2], bigres[0], bigres[1], bigres[2],manta_big_inflow_sdf, NULL);
+				}
 				MEM_freeN(manta_big_inflow_sdf);
 
 				// free emission maps
@@ -2615,7 +2623,7 @@ static void step(Scene *scene, Object *ob, SmokeModifierData *smd, DerivedMesh *
 
 		if (sds->total_cells > 1) {
 			update_effectors(scene, ob, sds, dtSubdiv); // DG TODO? problem --> uses forces instead of velocity, need to check how they need to be changed with variable dt
-			if (sds->flags && MOD_SMOKE_USE_MANTA){
+			if (sds->flags & MOD_SMOKE_USE_MANTA){
 				smoke_mantaflow_sim_step(scene,smd);
 			}
 			else{




More information about the Bf-blender-cvs mailing list