Commit: e43b82166496d0358863615504ceb6b6f69449a3
Author: Sebastián Barschkis
Date:   Tue Sep 13 02:32:14 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBe43b82166496d0358863615504ceb6b6f69449a3

added liquid obstacle grids and access functions

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

M       intern/mantaflow/extern/manta_fluid_API.h
M       intern/mantaflow/intern/FLUID.cpp
M       intern/mantaflow/intern/FLUID.h
M       intern/mantaflow/intern/manta_fluid_API.cpp
M       intern/mantaflow/intern/strings/liquid_script.h

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

diff --git a/intern/mantaflow/extern/manta_fluid_API.h 
b/intern/mantaflow/extern/manta_fluid_API.h
index 668b4f2..bd30929 100644
--- a/intern/mantaflow/extern/manta_fluid_API.h
+++ b/intern/mantaflow/extern/manta_fluid_API.h
@@ -90,6 +90,7 @@ unsigned char *smoke_turbulence_get_obstacle(struct FLUID 
*smoke);
 
 float *liquid_get_phi(struct FLUID *liquid);
 float *liquid_get_phiinit(struct FLUID *liquid);
+float *liquid_get_phiobsinit(struct FLUID *liquid);
 float *liquid_turbulence_get_phi(struct FLUID *liquid);
 void liquid_ensure_init(struct FLUID *liquid, struct SmokeModifierData *smd);
 void liquid_save_mesh(struct FLUID *liquid, char *filename);
diff --git a/intern/mantaflow/intern/FLUID.cpp 
b/intern/mantaflow/intern/FLUID.cpp
index acec131..f94b970 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -114,7 +114,8 @@ FLUID::FLUID(int *res, SmokeModifierData *smd)
        // Liquid low res grids
        mPhi            = NULL;
        mPhiInit        = NULL;
-       
+       mPhiObsInit     = NULL;
+
        // Liquid high res grids
        mPhiHigh        = NULL;
        
@@ -441,9 +442,10 @@ FLUID::~FLUID()
        mTextureW2      = NULL;
        
        // Liquid
-       mPhi     = NULL;
-       mPhiInit = NULL;
-       mPhiHigh = NULL;
+       mPhi        = NULL;
+       mPhiInit    = NULL;
+       mPhiObsInit = NULL;
+       mPhiHigh    = NULL;
        
        // Reset flags
        mUsingHeat    = false;
@@ -913,8 +915,9 @@ void FLUID::updatePointers(SmokeModifierData *smd)
        
        // Liquid
        if (mUsingLiquid) {
-               mPhi        = (float*) getGridPointer("phi",     "s");
-               mPhiInit    = (float*) getGridPointer("phiInit", "s");
+               mPhi        = (float*) getGridPointer("phi",        "s");
+               mPhiInit    = (float*) getGridPointer("phiInit",    "s");
+               mPhiObsInit = (float*) getGridPointer("phiObsInit", "s");
        }
        
        // Smoke
diff --git a/intern/mantaflow/intern/FLUID.h b/intern/mantaflow/intern/FLUID.h
index 607bee0..59f315b 100644
--- a/intern/mantaflow/intern/FLUID.h
+++ b/intern/mantaflow/intern/FLUID.h
@@ -123,9 +123,10 @@ public:
        inline float* getTextureW2() { return mTextureW2; }
        inline unsigned char* getObstacleHigh() { return mObstacleHigh; }
        
-       inline float* getPhi()     { return mPhi; }
-       inline float* getPhiInit() { return mPhiInit; }
-       inline float* getPhiHigh() { return NULL; } // Not yet implemented
+       inline float* getPhi()        { return mPhi; }
+       inline float* getPhiInit()    { return mPhiInit; }
+       inline float* getPhiObsInit() { return mPhiObsInit; }
+       inline float* getPhiHigh()    { return NULL; } // Not yet implemented
 
        static bool mantaInitialized;
        
@@ -215,6 +216,7 @@ private:
        // Liquids
        float* mPhi;
        float* mPhiInit;
+       float* mPhiObsInit;
        float* mPhiHigh;
        
        // Mesh fields for liquid surface
diff --git a/intern/mantaflow/intern/manta_fluid_API.cpp 
b/intern/mantaflow/intern/manta_fluid_API.cpp
index 2aa457b..90d729b 100644
--- a/intern/mantaflow/intern/manta_fluid_API.cpp
+++ b/intern/mantaflow/intern/manta_fluid_API.cpp
@@ -503,6 +503,11 @@ extern "C" float *liquid_get_phiinit(FLUID *liquid)
        return liquid->getPhiInit();
 }
 
+extern "C" float *liquid_get_phiobsinit(FLUID *liquid)
+{
+       return liquid->getPhiObsInit();
+}
+
 extern "C" void liquid_save_mesh(FLUID *liquid, char *filename)
 {
        if (liquid) {
diff --git a/intern/mantaflow/intern/strings/liquid_script.h 
b/intern/mantaflow/intern/strings/liquid_script.h
index e4f5b54..d307663 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -83,6 +83,10 @@ phi        = s.create(LevelsetGrid)\n\
 phiInit    = s.create(LevelsetGrid)\n\
 pressure   = s.create(RealGrid)\n\
 \n\
+phiObs     = s.create(LevelsetGrid)\n\
+phiObsInit = s.create(LevelsetGrid)\n\
+fractions  = s.create(MACGrid)\n\
+\n\
 vel        = s.create(MACGrid)\n\
 x_vel      = s.create(RealGrid)\n\
 y_vel      = s.create(RealGrid)\n\
@@ -276,6 +280,9 @@ def load_liquid_data_low(path):\n\
     phiParts.load(path + str('phiParts.uni'))\n\
     phi.load(path + str('phi.uni'))\n\
     phiInit.load(path + str('phiInit.uni'))\n\
+    phiObs.load(path + str('phiObs.uni'))\n\
+    phiObsInit.load(path + str('phiObsInit.uni'))\n\
+    fractions.load(path + str('fractions.uni'))\n\
     pressure.load(path + str('pressure.uni'))\n\
     \n\
     vel.load(path + str('vel.uni'))\n\
@@ -304,6 +311,9 @@ def save_liquid_data_low(path):\n\
     phiParts.save(path + str('phiParts.uni'))\n\
     phi.save(path + str('phi.uni'))\n\
     phiInit.save(path + str('phiInit.uni'))\n\
+    phiObs.save(path + str('phiObs.uni'))\n\
+    phiObsInit.save(path + str('phiObsInit.uni'))\n\
+    fractions.save(path + str('fractions.uni'))\n\
     pressure.save(path + str('pressure.uni'))\n\
     \n\
     vel.save(path + str('vel.uni'))\n\
@@ -355,7 +365,10 @@ if 'gpi'        in globals() : del gpi\n\
 if 'forces'     in globals() : del forces\n\
 if 'x_force'    in globals() : del x_force\n\
 if 'y_force'    in globals() : del y_force\n\
-if 'z_force'    in globals() : del z_force\n";
+if 'z_force'    in globals() : del z_force\n\
+if 'phiObs'     in globals() : del phiObs\n\
+if 'phiObsInit' in globals() : del phiObsInit\n\
+if 'fractions'  in globals() : del fractions\n";
 
 const std::string liquid_delete_grids_high = "\n\
 mantaMsg('Deleting highres grids, mesh, particlesystem')\n\

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

Reply via email to