[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