[Bf-blender-cvs] [35c99918f4b] fluid-mantaflow: added api to read fluid domain dimension from particle file
Sebastián Barschkis
noreply at git.blender.org
Fri Jun 9 00:58:53 CEST 2017
Commit: 35c99918f4b10f549c42c6a73b16f7e8b51cdce9
Author: Sebastián Barschkis
Date: Wed Jun 7 02:40:18 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB35c99918f4b10f549c42c6a73b16f7e8b51cdce9
added api to read fluid domain dimension from particle file
===================================================================
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
===================================================================
diff --git a/intern/mantaflow/extern/manta_fluid_API.h b/intern/mantaflow/extern/manta_fluid_API.h
index 7095fddf533..542db9c18e5 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);
int liquid_get_num_particles(struct FLUID *liquid);
+int liquid_get_particle_dim_x(struct FLUID *liquid);
+int liquid_get_particle_dim_y(struct FLUID *liquid);
+int liquid_get_particle_dim_z(struct FLUID *liquid);
int liquid_get_particle_flag_at(struct FLUID *liquid, int i);
float liquid_get_particle_position_x_at(struct FLUID *liquid, int i);
float liquid_get_particle_position_y_at(struct FLUID *liquid, int i);
diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp
index 86ad1d778db..4e818b2cc43 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -966,9 +966,9 @@ void FLUID::updateParticleData(const char* filename)
// read particle header
gzread(gzf, &mNumParticles, sizeof(int));
- gzread(gzf, &ibuffer, sizeof(int)); // Skipping dimX
- gzread(gzf, &ibuffer, sizeof(int)); // Skipping dimY
- gzread(gzf, &ibuffer, sizeof(int)); // Skipping dimZ
+ gzread(gzf, &mParticleDimX, sizeof(int));
+ gzread(gzf, &mParticleDimY, sizeof(int));
+ gzread(gzf, &mParticleDimZ, sizeof(int));
gzread(gzf, &elementType, sizeof(int));
gzread(gzf, &bytesPerElement, sizeof(int));
gzread(gzf, &info, sizeof(info));
diff --git a/intern/mantaflow/intern/FLUID.h b/intern/mantaflow/intern/FLUID.h
index 4a5cb4c7e27..4d17a608d33 100644
--- a/intern/mantaflow/intern/FLUID.h
+++ b/intern/mantaflow/intern/FLUID.h
@@ -149,8 +149,14 @@ public:
inline int getTriangleZAt(int i) { return mTrianglesZ[i]; }
// Particle getters
- inline int getNumParticles() { return mNumParticles; }
- inline int getParticleFlagAt(int i) { return mParticleFlags[i]; }
+ inline int getNumParticles() { return mNumParticles; }
+
+ inline int getParticleDimX() { return mParticleDimX; }
+ inline int getParticleDimY() { return mParticleDimY; }
+ inline int getParticleDimZ() { return mParticleDimZ; }
+
+ inline int getParticleFlagAt(int i) { return mParticleFlags[i]; }
+
inline float getParticlePositionXAt(int i) { return mParticlePositionsX[i]; }
inline float getParticlePositionYAt(int i) { return mParticlePositionsY[i]; }
inline float getParticlePositionZAt(int i) { return mParticlePositionsZ[i]; }
@@ -241,6 +247,9 @@ private:
// Particle fields
int mNumParticles;
+ int mParticleDimX;
+ int mParticleDimY;
+ int mParticleDimZ;
std::vector<int> mParticleFlags;
std::vector<float> mParticlePositionsX;
std::vector<float> mParticlePositionsY;
diff --git a/intern/mantaflow/intern/manta_fluid_API.cpp b/intern/mantaflow/intern/manta_fluid_API.cpp
index e9fdb86c5be..e8ea0f0dc5c 100644
--- a/intern/mantaflow/intern/manta_fluid_API.cpp
+++ b/intern/mantaflow/intern/manta_fluid_API.cpp
@@ -607,6 +607,21 @@ extern "C" int liquid_get_num_particles(FLUID *liquid)
return liquid->getNumParticles();
}
+extern "C" int liquid_get_particle_dim_x(FLUID *liquid)
+{
+ return liquid->getParticleDimX();
+}
+
+extern "C" int liquid_get_particle_dim_y(FLUID *liquid)
+{
+ return liquid->getParticleDimY();
+}
+
+extern "C" int liquid_get_particle_dim_z(FLUID *liquid)
+{
+ return liquid->getParticleDimZ();
+}
+
extern "C" int liquid_get_particle_flag_at(FLUID *liquid, int i)
{
return liquid->getParticleFlagAt(i);
More information about the Bf-blender-cvs
mailing list