Commit: 6a288555ebf0eb0c39bc922de1ea1b5b84836eec
Author: Sebastián Barschkis
Date:   Wed Jun 15 01:07:56 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB6a288555ebf0eb0c39bc922de1ea1b5b84836eec

implemented getters for mesh fields and also added them to the c api

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

M       intern/mantaflow/extern/manta_smoke_API.h
M       intern/mantaflow/intern/SMOKE.h
M       intern/mantaflow/intern/manta_smoke_API.cpp

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

diff --git a/intern/mantaflow/extern/manta_smoke_API.h 
b/intern/mantaflow/extern/manta_smoke_API.h
index 4392e51..0a84e40 100644
--- a/intern/mantaflow/extern/manta_smoke_API.h
+++ b/intern/mantaflow/extern/manta_smoke_API.h
@@ -90,8 +90,21 @@ float *smoke_get_fuel_inflow(struct SMOKE *smoke);
 
 float *liquid_get_phi(struct SMOKE *liquid);
 float *liquid_turbulence_get_phi(struct SMOKE *liquid);
-void liquid_ensure_init(struct SMOKE *smoke, struct SmokeModifierData *smd);
-void liquid_save_mesh(struct SMOKE *smoke, char *filename);
+void liquid_ensure_init(struct SMOKE *liquid, struct SmokeModifierData *smd);
+void liquid_save_mesh(struct SMOKE *liquid, char *filename);
+void liquid_load_mesh(struct SMOKE *liquid, char *filename);
+int liquid_get_num_verts(struct SMOKE *liquid);
+int liquid_get_num_normals(struct SMOKE *liquid);
+int liquid_get_num_triangles(struct SMOKE *liquid);
+float liquid_get_vertice_x_at(struct SMOKE *liquid, int i);
+float liquid_get_vertice_y_at(struct SMOKE *liquid, int i);
+float liquid_get_vertice_z_at(struct SMOKE *liquid, int i);
+float liquid_get_normal_x_at(struct SMOKE *liquid, int i);
+float liquid_get_normal_y_at(struct SMOKE *liquid, int i);
+float liquid_get_normal_z_at(struct SMOKE *liquid, int i);
+float liquid_get_triangle_x_at(struct SMOKE *liquid, int i);
+float liquid_get_triangle_y_at(struct SMOKE *liquid, int i);
+float liquid_get_triangle_z_at(struct SMOKE *liquid, int i);
 
 #ifdef __cplusplus
 }
diff --git a/intern/mantaflow/intern/SMOKE.h b/intern/mantaflow/intern/SMOKE.h
index 0895dab..c2c5e39 100644
--- a/intern/mantaflow/intern/SMOKE.h
+++ b/intern/mantaflow/intern/SMOKE.h
@@ -63,7 +63,7 @@ public:
        // Write files for liquids
        void saveMesh(char *filename);
        
-       // Getters
+       // Smoke getters
        inline size_t getTotalCells() { return mTotalCells; }
        inline size_t getTotalCellsHigh() { return mTotalCellsHigh; }
        inline bool usingHighRes() { return mUsingHighRes; }
@@ -115,6 +115,23 @@ public:
        inline float* getPhiHigh() { return NULL; } // Not yet implemented
 
        static bool mantaInitialized;
+       
+       // Liquid getters
+       inline int getNumVertices()  { return mNumVertices; }
+       inline int getNumNormals()   { return mNumNormals; }
+       inline int getNumTriangles() { return mNumTriangles; }
+       
+       inline int getVerticeXAt(int i)  { return mVerticesX[i]; }
+       inline int getVerticeYAt(int i)  { return mVerticesY[i]; }
+       inline int getVerticeZAt(int i)  { return mVerticesZ[i]; }
+
+       inline int getNormalXAt(int i)   { return mNormalsX[i]; }
+       inline int getNormalYAt(int i)   { return mNormalsY[i]; }
+       inline int getNormalZAt(int i)   { return mNormalsZ[i]; }
+
+       inline int getTriangleXAt(int i) { return mTrianglesX[i]; }
+       inline int getTriangleYAt(int i) { return mTrianglesY[i]; }
+       inline int getTriangleZAt(int i) { return mTrianglesZ[i]; }
 
 private:
        // simulation constants
diff --git a/intern/mantaflow/intern/manta_smoke_API.cpp 
b/intern/mantaflow/intern/manta_smoke_API.cpp
index df22a7b..d96c390 100644
--- a/intern/mantaflow/intern/manta_smoke_API.cpp
+++ b/intern/mantaflow/intern/manta_smoke_API.cpp
@@ -503,3 +503,64 @@ extern "C" void liquid_save_mesh(SMOKE *liquid, char 
*filename)
                liquid->saveMesh(filename);
        }
 }
+
+extern "C" int liquid_get_num_verts(SMOKE *liquid)
+{
+       return liquid->getNumVertices();
+}
+
+extern "C" int liquid_get_num_normals(SMOKE *liquid)
+{
+       return liquid->getNumNormals();
+}
+
+extern "C" int liquid_get_num_triangles(SMOKE *liquid)
+{
+       return liquid->getNumTriangles();
+}
+
+extern "C" float liquid_get_vertice_x_at(SMOKE *liquid, int i)
+{
+       return liquid->getVerticeXAt(i);
+}
+
+extern "C" float liquid_get_vertice_y_at(SMOKE *liquid, int i)
+{
+       return liquid->getVerticeYAt(i);
+}
+
+extern "C" float liquid_get_vertice_z_at(SMOKE *liquid, int i)
+{
+       return liquid->getVerticeZAt(i);
+}
+
+extern "C" float liquid_get_normal_x_at(SMOKE *liquid, int i)
+{
+       return liquid->getNormalXAt(i);
+}
+
+extern "C" float liquid_get_normal_y_at(SMOKE *liquid, int i)
+{
+       return liquid->getNormalYAt(i);
+}
+
+extern "C" float liquid_get_normal_z_at(SMOKE *liquid, int i)
+{
+       return liquid->getNormalZAt(i);
+}
+
+extern "C" float liquid_get_triangle_x_at(SMOKE *liquid, int i)
+{
+       return liquid->getTriangleXAt(i);
+}
+
+extern "C" float liquid_get_triangle_y_at(SMOKE *liquid, int i)
+{
+       return liquid->getTriangleYAt(i);
+}
+
+extern "C" float liquid_get_triangle_z_at(SMOKE *liquid, int i)
+{
+       return liquid->getTriangleZAt(i);
+}
+

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

Reply via email to