[Bf-blender-cvs] [e3adec6] soc-2014-fluid: Error with force_grid_size fixed. Direction still incorrect

Roman Pogribnyi noreply at git.blender.org
Fri Aug 8 14:17:31 CEST 2014


Commit: e3adec65f70a9b8b4868f2854b1bbda2e7f9c3bf
Author: Roman Pogribnyi
Date:   Fri Aug 8 14:16:10 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rBe3adec65f70a9b8b4868f2854b1bbda2e7f9c3bf

Error with force_grid_size fixed. Direction still incorrect

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

M	intern/smoke/intern/MANTA.cpp
M	intern/smoke/intern/smoke_API.cpp
M	source/blender/python/manta_pp/pwrapper/pymain.cpp

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

diff --git a/intern/smoke/intern/MANTA.cpp b/intern/smoke/intern/MANTA.cpp
index 5a3ff9a..863a529 100644
--- a/intern/smoke/intern/MANTA.cpp
+++ b/intern/smoke/intern/MANTA.cpp
@@ -231,6 +231,7 @@ void *run_manta_sim_thread(void *arguments)
 	for (int fr=0; fr< num_sim_steps; ++fr) {
 		if(smd->domain->manta_sim_frame == -1)
 			break;
+		printf("Simulation Step");
 		manta_write_effectors(s, smd);
 		smd->domain->manta_sim_frame = fr;
 		std::string frame_str = static_cast<ostringstream*>( &(ostringstream() << fr) )->str();
diff --git a/intern/smoke/intern/smoke_API.cpp b/intern/smoke/intern/smoke_API.cpp
index 6670472..9e0e057 100644
--- a/intern/smoke/intern/smoke_API.cpp
+++ b/intern/smoke/intern/smoke_API.cpp
@@ -530,12 +530,14 @@ extern "C" void manta_write_effectors(struct Scene *s, struct SmokeModifierData
 	assert(smd->domain->manta_obj != NULL);
 	manta_update_effectors(s, smd->domain->manta_obj, smd->domain, 0.1f);
 	FLUID_3D *fluid = smd->domain->fluid;
+	/*'Y' and 'Z' axes are mixed in mantaflow and Blender*/
 	int size_x = fluid->xRes();
-	int size_y = fluid->yRes();
-	int size_z = fluid->zRes();
+	int size_y = fluid->zRes();
+	int size_z = fluid->yRes();
+	
 	float *force_x = smoke_get_force_x(fluid);
-	float *force_y = smoke_get_force_y(fluid);
-	float *force_z = smoke_get_force_z(fluid);
+	float *force_y = smoke_get_force_z(fluid);
+	float *force_z = smoke_get_force_y(fluid);
 	export_force_fields(size_x, size_y, size_z, force_x, force_y, force_z);
 }
 
diff --git a/source/blender/python/manta_pp/pwrapper/pymain.cpp b/source/blender/python/manta_pp/pwrapper/pymain.cpp
index 1527cd0..87ddd0d 100644
--- a/source/blender/python/manta_pp/pwrapper/pymain.cpp
+++ b/source/blender/python/manta_pp/pwrapper/pymain.cpp
@@ -69,6 +69,9 @@ const static string clean_code2 = "del s; del noise;";
 void export_force_fields(int size_x, int size_y, int size_z, float *f_x, float*f_y, float*f_z)
 {
 	assert(size_x>0 && size_y>0 && size_z>0);
+	assert(f_x != NULL);
+	assert(f_y != NULL);
+	assert(f_z != NULL);
 	FluidSolver dummy(Vec3i(size_x,size_y,size_z));
 	Grid<Vec3 > force_fields(&dummy, false);
 	for (int x=0; x < size_x; ++x)




More information about the Bf-blender-cvs mailing list