Commit: f6d5c3465a649157a7e3da97189697fa5dcfb0e6
Author: Sebastián Barschkis
Date:   Fri Sep 18 23:48:49 2015 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBf6d5c3465a649157a7e3da97189697fa5dcfb0e6

fixed setup when with_manta flag is disabled

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

M       intern/smoke/extern/smoke_API.h
M       intern/smoke/intern/FLUID_3D.h
M       intern/smoke/intern/WTURBULENCE.h
M       intern/smoke/intern/smoke_API.cpp
M       source/blender/blenkernel/intern/smoke.c

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

diff --git a/intern/smoke/extern/smoke_API.h b/intern/smoke/extern/smoke_API.h
index 11bb26e..3e9be15 100644
--- a/intern/smoke/extern/smoke_API.h
+++ b/intern/smoke/extern/smoke_API.h
@@ -39,7 +39,11 @@ extern "C" {
 struct FLUID_3D;
 
 // low res
+#ifndef WITH_MANTA
+struct FLUID_3D *smoke_init(int *res, float dx, float dtdef, int use_heat, int 
use_fire, int use_colors);
+#else
 struct FLUID_3D *smoke_init(int *res, float dx, float dtdef, int use_heat, int 
use_fire, int use_colors, struct SmokeModifierData *smd);
+#endif
 void smoke_free(struct FLUID_3D *fluid);
 
 void smoke_initBlenderRNA(struct FLUID_3D *fluid, float *alpha, float *beta, 
float *dt_factor, float *vorticity, int *border_colli, float *burning_rate,
@@ -77,7 +81,12 @@ size_t smoke_get_index(int x, int max_x, int y, int max_y, 
int z);
 size_t smoke_get_index2d(int x, int max_x, int y);
 void smoke_dissolve(struct FLUID_3D *fluid, int speed, int log);
 // wavelet turbulence functions
-struct WTURBULENCE *smoke_turbulence_init(int *res, int amplify, int 
noisetype, const char *noisefile_path, int use_fire, int use_colors,struct 
SmokeDomainSettings *sds);
+#ifndef WITH_MANTA
+struct WTURBULENCE *smoke_turbulence_init(int *res, int amplify, int 
noisetype, const char *noisefile_path, int use_fire, int use_colors);
+#else
+struct WTURBULENCE *smoke_turbulence_init(int *res, int amplify, int 
noisetype, const char *noisefile_path, int use_fire, int use_colors, struct 
SmokeDomainSettings *sds);
+#endif
+
 void smoke_turbulence_free(struct WTURBULENCE *wt);
 void smoke_turbulence_step(struct WTURBULENCE *wt, struct FLUID_3D *fluid);
 float *smoke_turbulence_get_density(struct WTURBULENCE *wt);
diff --git a/intern/smoke/intern/FLUID_3D.h b/intern/smoke/intern/FLUID_3D.h
index fc60818..127f0bb 100644
--- a/intern/smoke/intern/FLUID_3D.h
+++ b/intern/smoke/intern/FLUID_3D.h
@@ -46,7 +46,12 @@ struct WTURBULENCE;
 struct FLUID_3D  
 {
        public:
+               #ifndef WITH_MANTA
+               FLUID_3D(int *res, float dx, float dtdef, int init_heat, int 
init_fire, int init_colors);
+               #else
                FLUID_3D(int *res, float dx, float dtdef, int init_heat, int 
init_fire, int init_colors, struct SmokeModifierData *smd);
+               #endif
+
                FLUID_3D() {};
                virtual ~FLUID_3D();
 
diff --git a/intern/smoke/intern/WTURBULENCE.h 
b/intern/smoke/intern/WTURBULENCE.h
index ca9a54e..54959be 100644
--- a/intern/smoke/intern/WTURBULENCE.h
+++ b/intern/smoke/intern/WTURBULENCE.h
@@ -36,7 +36,11 @@ struct WTURBULENCE
 {
        public:
                // both config files can be NULL, altCfg might override values 
from noiseCfg
-               WTURBULENCE(int xResSm, int yResSm, int zResSm, int amplify, 
int noisetype, const char *noisefile_path, int init_fire, int 
init_colors,struct SmokeDomainSettings *sds);
+               #ifndef WITH_MANTA
+               WTURBULENCE(int xResSm, int yResSm, int zResSm, int amplify, 
int noisetype, const char *noisefile_path, int init_fire, int init_colors);
+               #else
+               WTURBULENCE(int xResSm, int yResSm, int zResSm, int amplify, 
int noisetype, const char *noisefile_path, int init_fire, int init_colors, 
struct SmokeDomainSettings *sds);
+               #endif
 
                /// destructor
                virtual ~WTURBULENCE();
diff --git a/intern/smoke/intern/smoke_API.cpp 
b/intern/smoke/intern/smoke_API.cpp
index 8ecc06d..09830ba 100644
--- a/intern/smoke/intern/smoke_API.cpp
+++ b/intern/smoke/intern/smoke_API.cpp
@@ -43,6 +43,23 @@ extern "C" int *smoke_get_manta_flags(struct FLUID_3D 
*fluid){
        return fluid->_manta_flags;
 }
 
+#ifndef WITH_MANTA
+extern "C" FLUID_3D *smoke_init(int *res, float dx, float dtdef, int use_heat, 
int use_fire, int use_colors )
+{
+       FLUID_3D *fluid = new FLUID_3D(res, dx, dtdef, use_heat, use_fire, 
use_colors);
+       return fluid;
+}
+
+extern "C" WTURBULENCE *smoke_turbulence_init(int *res, int amplify, int 
noisetype, const char *noisefile_path, int use_fire, int use_colors)
+{
+       if (amplify)
+               return new WTURBULENCE(res[0],res[1],res[2], amplify, 
noisetype, noisefile_path, use_fire, use_colors);
+       else 
+               return NULL;
+}
+//////////////////////////////////////////////////////////////////////
+#else /*USING MANTAFLOW STRUCTURES*/
+//////////////////////////////////////////////////////////////////////
 extern "C" FLUID_3D *smoke_init(int *res, float dx, float dtdef, int use_heat, 
int use_fire, int use_colors, struct SmokeModifierData *smd )
 {
        FLUID_3D *fluid = new FLUID_3D(res, dx, dtdef, use_heat, use_fire, 
use_colors, smd);
@@ -56,6 +73,7 @@ extern "C" WTURBULENCE *smoke_turbulence_init(int *res, int 
amplify, int noisety
        else 
                return NULL;
 }
+#endif /* WITH_MANTA */
 
 extern "C" void smoke_free(FLUID_3D *fluid)
 {
diff --git a/source/blender/blenkernel/intern/smoke.c 
b/source/blender/blenkernel/intern/smoke.c
index 012f825..ec08589 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -183,7 +183,13 @@ void smoke_reallocate_fluid(SmokeDomainSettings *sds, 
float dx, int res[3], int
                sds->fluid = NULL;
                return;
        }
-       sds->fluid = smoke_init(res, dx, DT_DEFAULT, use_heat, use_fire, 
use_colors, sds->smd);
+       
+       #ifndef WITH_MANTA
+               sds->fluid = smoke_init(res, dx, DT_DEFAULT, use_heat, 
use_fire, use_colors);
+       #else
+               sds->fluid = smoke_init(res, dx, DT_DEFAULT, use_heat, 
use_fire, use_colors, sds->smd);
+       #endif
+
        smoke_initBlenderRNA(sds->fluid, &(sds->alpha), &(sds->beta), 
&(sds->time_scale), &(sds->vorticity), &(sds->border_collisions),
                             &(sds->burning_rate), &(sds->flame_smoke), 
sds->flame_smoke_color, &(sds->flame_vorticity), &(sds->flame_ignition), 
&(sds->flame_max_temp));
 
@@ -211,7 +217,11 @@ void smoke_reallocate_highres_fluid(SmokeDomainSettings 
*sds, float dx, int res[
        /* smoke_turbulence_init uses non-threadsafe functions from fftw3 lib 
(like fftw_plan & co). */
        BLI_lock_thread(LOCK_FFTW);
 
-       sds->wt = smoke_turbulence_init(res, sds->amplify + 1, sds->noise, 
BKE_tempdir_session(), use_fire, use_colors, sds);
+       #ifndef WITH_MANTA
+               sds->wt = smoke_turbulence_init(res, sds->amplify + 1, 
sds->noise, BKE_tempdir_session(), use_fire, use_colors);
+       #else
+               sds->wt = smoke_turbulence_init(res, sds->amplify + 1, 
sds->noise, BKE_tempdir_session(), use_fire, use_colors, sds);
+       #endif
 
        BLI_unlock_thread(LOCK_FFTW);
 
@@ -2330,7 +2340,7 @@ static void update_flowsfluids(Scene *scene, Object *ob, 
SmokeDomainSettings *sd
                                                        }
                                                        else { // inflow
                                                                
apply_inflow_fields(sfs, emission_map[e_index], d_index, density, heat, fuel, 
react, color_r, color_g, color_b);
-                                                               
if(sds->manta_solver_res == 3){
+                                                               if((sds->flags 
& MOD_SMOKE_USE_MANTA) && (sds->manta_solver_res == 3)) {
                                                                        
apply_inflow_fields(sfs, emission_map[e_index], d_index, inflow_grid, heat, 
fuel, react, color_r, color_g, color_b);
                                                                }
                                                                                
                                                /* initial velocity */
@@ -2428,7 +2438,7 @@ static void update_flowsfluids(Scene *scene, Object *ob, 
SmokeDomainSettings *sd
                                                        }  // bigdensity
                                                } // low res loop
 
-                               { /*2D solver*/
+                               if((sds->flags & MOD_SMOKE_USE_MANTA)) { /*2D 
solver*/
                                        int cnty;
                                        int cntz;
                                        int step;

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

Reply via email to