[Bf-blender-cvs] [6a28855] fluid-mantaflow: implemented getters for mesh fields and also added them to the c api
Sebastián Barschkis
noreply at git.blender.org
Sat Jun 18 13:06:08 CEST 2016
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);
+}
+
More information about the Bf-blender-cvs
mailing list