Commit: a3e364757db450c69a618713c6b18e53cbaab6c3
Author: Sebastián Barschkis
Date:   Mon Sep 5 20:29:11 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBa3e364757db450c69a618713c6b18e53cbaab6c3

added liquid high res api 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 69a2c68..7cca7b5 100644
--- a/intern/mantaflow/extern/manta_fluid_API.h
+++ b/intern/mantaflow/extern/manta_fluid_API.h
@@ -108,6 +108,9 @@ float liquid_get_triangle_x_at(struct FLUID *liquid, int i);
 float liquid_get_triangle_y_at(struct FLUID *liquid, int i);
 float liquid_get_triangle_z_at(struct FLUID *liquid, int i);
 void liquid_update_mesh_data(struct FLUID *liquid, char *filename);
+void liquid_save_mesh_high(struct FLUID *liquid, char *filename);
+void liquid_save_data_high(struct FLUID *liquid, char *pathname);
+void liquid_load_data_high(struct FLUID *liquid, char *pathname);
 
 #ifdef __cplusplus
 }
diff --git a/intern/mantaflow/intern/FLUID.cpp 
b/intern/mantaflow/intern/FLUID.cpp
index 1b7ba67..216e09c 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -313,7 +313,7 @@ void FLUID::initLiquid(SmokeModifierData *smd)
                        + liquid_variables_low
                        + liquid_bounds_low
                        + liquid_init_phi
-                       + liquid_save_mesh
+                       + liquid_save_mesh_low
                        + liquid_export_low
                        + liquid_import_low
                        + liquid_adaptive_step
@@ -332,6 +332,9 @@ void FLUID::initLiquidHigh(SmokeModifierData *smd)
        std::string tmpString = liquid_alloc_high
                + liquid_variables_high
                + liquid_bounds_high
+               + liquid_save_mesh_high
+               + liquid_export_high
+               + liquid_import_high
                + liquid_step_high;
        std::string finalString = parseScript(tmpString, smd);
        mCommands.clear();
@@ -919,9 +922,23 @@ void FLUID::saveMesh(char *filename)
        std::string path(filename);
        
        mCommands.clear();
-       std::ostringstream save_mesh;
-       save_mesh <<  "save_mesh('" << path << "')";
-       mCommands.push_back(save_mesh.str());
+       std::ostringstream save_mesh_low;
+       
+       save_mesh_low <<  "save_mesh_low('" << path << "')";
+       mCommands.push_back(save_mesh_low.str());
+       
+       runPythonString(mCommands);
+}
+
+void FLUID::saveMeshHigh(char *filename)
+{
+       std::string path(filename);
+       
+       mCommands.clear();
+       std::ostringstream save_mesh_high;
+       
+       save_mesh_high <<  "save_mesh_high('" << path << "')";
+       mCommands.push_back(save_mesh_high.str());
        
        runPythonString(mCommands);
 }
@@ -931,9 +948,21 @@ void FLUID::saveLiquidData(char *pathname)
        std::string path(pathname);
        
        mCommands.clear();
-       std::ostringstream save_liquid_data;
-       save_liquid_data <<  "save_liquid_data('" << path << "')";
-       mCommands.push_back(save_liquid_data.str());
+       std::ostringstream save_liquid_data_low;
+       save_liquid_data_low <<  "save_liquid_data_low('" << path << "')";
+       mCommands.push_back(save_liquid_data_low.str());
+       
+       runPythonString(mCommands);
+}
+
+void FLUID::saveLiquidDataHigh(char *pathname)
+{
+       std::string path(pathname);
+       
+       mCommands.clear();
+       std::ostringstream save_liquid_data_high;
+       save_liquid_data_high <<  "save_liquid_data_high('" << path << "')";
+       mCommands.push_back(save_liquid_data_high.str());
        
        runPythonString(mCommands);
 }
@@ -943,11 +972,22 @@ void FLUID::loadLiquidData(char *pathname)
        std::string path(pathname);
        
        mCommands.clear();
-       std::ostringstream load_liquid_data;
-       load_liquid_data <<  "load_liquid_data('" <<  path << "')";
-       mCommands.push_back(load_liquid_data.str());
+       std::ostringstream load_liquid_data_low;
+       load_liquid_data_low <<  "load_liquid_data_low('" <<  path << "')";
+       mCommands.push_back(load_liquid_data_low.str());
        
        runPythonString(mCommands);
 }
 
+void FLUID::loadLiquidDataHigh(char *pathname)
+{
+       std::string path(pathname);
+       
+       mCommands.clear();
+       std::ostringstream load_liquid_data_high;
+       load_liquid_data_high <<  "load_liquid_data_high('" <<  path << "')";
+       mCommands.push_back(load_liquid_data_high.str());
+       
+       runPythonString(mCommands);
+}
 
diff --git a/intern/mantaflow/intern/FLUID.h b/intern/mantaflow/intern/FLUID.h
index e99937b..c6690f5 100644
--- a/intern/mantaflow/intern/FLUID.h
+++ b/intern/mantaflow/intern/FLUID.h
@@ -63,11 +63,14 @@ public:
        
        // Write files for liquids
        void saveMesh(char *filename);
+       void saveMeshHigh(char *filename);
        void saveLiquidData(char *pathname);
-       
+       void saveLiquidDataHigh(char *pathname);
+
        // Load files for liquids
-       void loadLiquidData(char * pathname);
-       
+       void loadLiquidData(char *pathname);
+       void loadLiquidDataHigh(char *pathname);
+
        // Smoke getters
        inline size_t getTotalCells() { return mTotalCells; }
        inline size_t getTotalCellsHigh() { return mTotalCellsHigh; }
diff --git a/intern/mantaflow/intern/manta_fluid_API.cpp 
b/intern/mantaflow/intern/manta_fluid_API.cpp
index a5f2b6d..3b3d097 100644
--- a/intern/mantaflow/intern/manta_fluid_API.cpp
+++ b/intern/mantaflow/intern/manta_fluid_API.cpp
@@ -510,6 +510,13 @@ extern "C" void liquid_save_mesh(FLUID *liquid, char 
*filename)
        }
 }
 
+extern "C" void liquid_save_mesh_high(FLUID *liquid, char *filename)
+{
+       if (liquid) {
+               liquid->saveMeshHigh(filename);
+       }
+}
+
 extern "C" void liquid_save_data(FLUID *liquid, char *pathname)
 {
        if (liquid) {
@@ -517,6 +524,13 @@ extern "C" void liquid_save_data(FLUID *liquid, char 
*pathname)
        }
 }
 
+extern "C" void liquid_save_data_high(FLUID *liquid, char *pathname)
+{
+       if (liquid) {
+               liquid->saveLiquidDataHigh(pathname);
+       }
+}
+
 extern "C" void liquid_load_data(FLUID *liquid, char *pathname)
 {
        if (liquid) {
@@ -524,6 +538,13 @@ extern "C" void liquid_load_data(FLUID *liquid, char 
*pathname)
        }
 }
 
+extern "C" void liquid_load_data_high(FLUID *liquid, char *pathname)
+{
+       if (liquid) {
+               liquid->loadLiquidDataHigh(pathname);
+       }
+}
+
 extern "C" int liquid_get_num_verts(FLUID *liquid)
 {
        return liquid->getNumVertices();
diff --git a/intern/mantaflow/intern/strings/liquid_script.h 
b/intern/mantaflow/intern/strings/liquid_script.h
index b70f730..ddcd2ab 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -265,15 +265,16 @@ def liquid_step_high():\n\
 // IMPORT / EXPORT
 //////////////////////////////////////////////////////////////////////
 
-const std::string liquid_save_mesh = "\n\
-def save_mesh(path):\n\
-    mesh.save(path)\n\
-    # TODO (sebbas)\n\
-       #if using_highres:\n\
-        #xl_mesh.save(path)\n";
+const std::string liquid_save_mesh_low = "\n\
+def save_mesh_low(path):\n\
+    mesh.save(path)\n";
+
+const std::string liquid_save_mesh_high = "\n\
+def save_mesh_high(path):\n\
+    xl_mesh.save(path)\n";
 
 const std::string liquid_import_low = "\n\
-def load_liquid_data(path):\n\
+def load_liquid_data_low(path):\n\
     flags.load(path + str('flags.uni'))\n\
     \n\
     phiParts.load(path + str('phiParts.uni'))\n\
@@ -291,8 +292,16 @@ def load_liquid_data(path):\n\
     \n\
     gpi.load(path + str('gpi.uni'))\n";
 
+const std::string liquid_import_high = "\n\
+def load_liquid_data_high(path):\n\
+    xl_flags.load(path + str('xl_flags.uni'))\n\
+    \n\
+    xl_phi.load(path + str('xl_phi.uni'))\n\
+    \n\
+    xl_pp.load(path + str('xl_pp.uni'))\n";
+
 const std::string liquid_export_low = "\n\
-def save_liquid_data(path):\n\
+def save_liquid_data_low(path):\n\
     flags.save(path + str('flags.uni'))\n\
     \n\
     phiParts.save(path + str('phiParts.uni'))\n\
@@ -310,6 +319,14 @@ def save_liquid_data(path):\n\
     \n\
     gpi.save(path + str('gpi.uni'))\n";
 
+const std::string liquid_export_high = "\n\
+def save_liquid_data_high(path):\n\
+    xl_flags.save(path + str('xl_flags.uni'))\n\
+    \n\
+    xl_phi.save(path + str('xl_phi.uni'))\n\
+    \n\
+    xl_pp.save(path + str('xl_pp.uni'))\n";
+
 //////////////////////////////////////////////////////////////////////
 // DESTRUCTION
 //////////////////////////////////////////////////////////////////////

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

Reply via email to