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);

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

Reply via email to