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)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to