[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