Smoke:
[blender.git] / intern / smoke / intern / smoke_API.cpp
index 2e95a576eaf7d8862894f3ecc3c531740fd7744e..5a016b51bbeb846ffa78da9aa49977fadc0e1335 100644 (file)
@@ -20,7 +20,7 @@
  * The Original Code is Copyright (C) 2009 by Daniel Genrich
  * All rights reserved.
  *
- * Contributor(s): None
+ * Contributor(s): Daniel Genrich
  *
  * ***** END GPL LICENSE BLOCK *****
  */
@@ -137,7 +137,7 @@ extern "C" void smoke_dissolve(FLUID_3D *fluid, int speed, int log)
        }
 }
 
-extern "C" void smoke_dissolve_wavelet(WTURBULENCE *wt, int speed, int log)
+extern "C" void smoke_turbulence_dissolve(WTURBULENCE *wt, int speed, int log)
 {
        float *density = wt->getDensityBig();
        Vec3Int r = wt->getResBig();
@@ -172,7 +172,7 @@ extern "C" void smoke_dissolve_wavelet(WTURBULENCE *wt, int speed, int log)
        }
 }
 
-extern "C" void smoke_initWaveletBlenderRNA(WTURBULENCE *wt, float *strength)
+extern "C" void smoke_turbulence_initBlenderRNA(WTURBULENCE *wt, float *strength)
 {
        wt->initBlenderRNA(strength);
 }
@@ -181,6 +181,36 @@ template < class T > inline T ABS( T a ) {
        return (0 < a) ? a : -a ;
 }
 
+extern "C" void smoke_export(FLUID_3D *fluid, float *dt, float *dx, float **dens, float **densold, float **heat, float **heatold, float **vx, float **vy, float **vz, float **vxold, float **vyold, float **vzold, unsigned char **obstacles)
+{
+       *dens = fluid->_density;
+       *densold = fluid->_densityOld;
+       *heat = fluid->_heat;
+       *heatold = fluid->_heatOld;
+       *vx = fluid->_xVelocity;
+       *vy = fluid->_yVelocity;
+       *vz = fluid->_zVelocity;
+       *vxold = fluid->_xVelocityOld;
+       *vyold = fluid->_yVelocityOld;
+       *vzold = fluid->_zVelocityOld;
+       *obstacles = fluid->_obstacles;
+       dt = &(fluid->_dt);
+       dx = &(fluid->_dx);
+
+}
+
+extern "C" void smoke_turbulence_export(WTURBULENCE *wt, float **dens, float **densold, float **tcu, float **tcv, float **tcw)
+{
+       if(!wt)
+               return;
+
+       *dens = wt->_densityBig;
+       *densold = wt->_densityBigOld;
+       *tcu = wt->_tcU;
+       *tcv = wt->_tcV;
+       *tcw = wt->_tcW;
+}
+
 extern "C" float *smoke_get_density(FLUID_3D *fluid)
 {
        return fluid->_density;
@@ -193,17 +223,17 @@ extern "C" float *smoke_get_heat(FLUID_3D *fluid)
 
 extern "C" float *smoke_get_velocity_x(FLUID_3D *fluid)
 {
-       return fluid->_xVorticity;
+       return fluid->_xVelocity;
 }
 
 extern "C" float *smoke_get_velocity_y(FLUID_3D *fluid)
 {
-       return fluid->_yVorticity;
+       return fluid->_yVelocity;
 }
 
 extern "C" float *smoke_get_velocity_z(FLUID_3D *fluid)
 {
-       return fluid->_zVorticity;
+       return fluid->_zVelocity;
 }
 
 extern "C" float *smoke_turbulence_get_density(WTURBULENCE *wt)
@@ -211,14 +241,13 @@ extern "C" float *smoke_turbulence_get_density(WTURBULENCE *wt)
        return wt ? wt->getDensityBig() : NULL;
 }
 
-extern "C" void smoke_turbulence_get_res(WTURBULENCE *wt, int *res)
+extern "C" void smoke_turbulence_get_res(WTURBULENCE *wt, unsigned int *res)
 {
        if(wt)
        {
-               Vec3Int r = wt->getResBig();
-               res[0] = r[0];
-               res[1] = r[1];
-               res[2] = r[2];
+               res[0] = wt->_resBig[0];
+               res[1] = wt->_resBig[1];
+               res[2] = wt->_resBig[2];
        }
 }