[Bf-blender-cvs] [506cf70] fluid-mantaflow: distinguishing between phi and phi_init grid

Sebastián Barschkis noreply at git.blender.org
Fri Jul 22 21:05:45 CEST 2016


Commit: 506cf7051f26685ad44ce643ca57a6101a775d66
Author: Sebastián Barschkis
Date:   Sun Jul 17 17:51:56 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB506cf7051f26685ad44ce643ca57a6101a775d66

distinguishing between phi and phi_init grid

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

M	intern/mantaflow/extern/manta_smoke_API.h
M	intern/mantaflow/intern/SMOKE.cpp
M	intern/mantaflow/intern/SMOKE.h
M	intern/mantaflow/intern/manta_smoke_API.cpp
M	source/blender/blenkernel/intern/smoke.c

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

diff --git a/intern/mantaflow/extern/manta_smoke_API.h b/intern/mantaflow/extern/manta_smoke_API.h
index d07cc81..1efab25 100644
--- a/intern/mantaflow/extern/manta_smoke_API.h
+++ b/intern/mantaflow/extern/manta_smoke_API.h
@@ -89,6 +89,7 @@ float *smoke_get_inflow_grid(struct SMOKE *smoke);
 float *smoke_get_fuel_inflow(struct SMOKE *smoke);
 
 float *liquid_get_phi(struct SMOKE *liquid);
+float *liquid_get_phiinit(struct SMOKE *liquid);
 float *liquid_turbulence_get_phi(struct SMOKE *liquid);
 void liquid_ensure_init(struct SMOKE *liquid, struct SmokeModifierData *smd);
 void liquid_save_mesh(struct SMOKE *liquid, char *filename);
diff --git a/intern/mantaflow/intern/SMOKE.cpp b/intern/mantaflow/intern/SMOKE.cpp
index 058532e..bf524cf 100644
--- a/intern/mantaflow/intern/SMOKE.cpp
+++ b/intern/mantaflow/intern/SMOKE.cpp
@@ -787,7 +787,8 @@ void SMOKE::updatePointers(SmokeModifierData *smd)
 
 	// Liquid
 	if (mUsingLiquid) {
-		mPhi        = (float*)         getGridPointer("phiInit",         "s");
+		mPhi        = (float*)         getGridPointer("phi",         "s");
+		mPhiInit    = (float*)         getGridPointer("phiInit",         "s");
 		mDensity    = (float*)         getGridPointer("density",         "s");
 	}
 	
diff --git a/intern/mantaflow/intern/SMOKE.h b/intern/mantaflow/intern/SMOKE.h
index 1f1f461..c2b5d0c 100644
--- a/intern/mantaflow/intern/SMOKE.h
+++ b/intern/mantaflow/intern/SMOKE.h
@@ -112,6 +112,7 @@ public:
 	inline float* getTextureW2() { return mTextureW2; }
 	
 	inline float* getPhi()     { return mPhi; }
+	inline float* getPhiInit() { return mPhiInit; }
 	inline float* getPhiHigh() { return NULL; } // Not yet implemented
 
 	static bool mantaInitialized;
@@ -201,7 +202,9 @@ private:
 	
 	// Liquids
 	float* mPhi;
+	float* mPhiInit;
 	float* mPhiHigh;
+	
 	// Mesh fields for liquid surface
 	int mNumVertices;
 	int mNumNormals;
diff --git a/intern/mantaflow/intern/manta_smoke_API.cpp b/intern/mantaflow/intern/manta_smoke_API.cpp
index 8b94842..e3fc8da 100644
--- a/intern/mantaflow/intern/manta_smoke_API.cpp
+++ b/intern/mantaflow/intern/manta_smoke_API.cpp
@@ -497,6 +497,11 @@ extern "C" float *liquid_get_phi(SMOKE *liquid)
 	return liquid->getPhi();
 }
 
+extern "C" float *liquid_get_phiinit(SMOKE *liquid)
+{
+	return liquid->getPhiInit();
+}
+
 extern "C" void liquid_save_mesh(SMOKE *liquid, char *filename)
 {
 	if (liquid) {
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index a26be8d..3f9befa 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -2501,7 +2501,7 @@ static void update_flowsfluids(Scene *scene, Object *ob, SmokeDomainSettings *sd
 				float *velocity_x = smoke_get_velocity_x(sds->fluid);
 				float *velocity_y = smoke_get_velocity_y(sds->fluid);
 				float *velocity_z = smoke_get_velocity_z(sds->fluid);
-				float *phi = liquid_get_phi(sds->fluid);
+				float *phi = liquid_get_phiinit(sds->fluid);
 				//unsigned char *obstacle = smoke_get_obstacle(sds->fluid);
 				// DG TODO UNUSED unsigned char *obstacleAnim = smoke_get_obstacle_anim(sds->fluid);
 				int bigres[3];




More information about the Bf-blender-cvs mailing list