[Bf-blender-cvs] [6a0854e] openvdb: Get rid of FluidDomainDescription struct.

Kévin Dietrich noreply at git.blender.org
Fri Jun 5 14:07:57 CEST 2015


Commit: 6a0854e04a1d4d20963fceba33ef81d620f45153
Author: Kévin Dietrich
Date:   Sat May 23 12:02:26 2015 +0200
Branches: openvdb
https://developer.blender.org/rB6a0854e04a1d4d20963fceba33ef81d620f45153

Get rid of FluidDomainDescription struct.

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

M	intern/openvdb/intern/openvdb_dense_convert.cpp
M	intern/openvdb/intern/openvdb_dense_convert.h
M	intern/openvdb/openvdb_capi.cpp
M	intern/openvdb/openvdb_capi.h
M	source/blender/blenkernel/intern/smoke.c

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

diff --git a/intern/openvdb/intern/openvdb_dense_convert.cpp b/intern/openvdb/intern/openvdb_dense_convert.cpp
index a40c1d8..d38b4b5 100644
--- a/intern/openvdb/intern/openvdb_dense_convert.cpp
+++ b/intern/openvdb/intern/openvdb_dense_convert.cpp
@@ -189,22 +189,22 @@ void OpenVDB_import_grid_vector(OpenVDBReader *reader,
 	*data_z = dense_grid_z.data();
 }
 
-void OpenVDB_update_fluid_transform(const char *filename, FluidDomainDescr descr)
+void OpenVDB_update_fluid_transform(const char *filename, float matrix[4][4], float matrix_high[4][4])
 {
 	/* TODO(kevin): deduplicate this call */
 	initialize();
 
 	Mat4R fluid_mat = Mat4R(
-	        descr.fluidmat[0][0], descr.fluidmat[0][1], descr.fluidmat[0][2], descr.fluidmat[0][3],
-	        descr.fluidmat[1][0], descr.fluidmat[1][1], descr.fluidmat[1][2], descr.fluidmat[1][3],
-	        descr.fluidmat[2][0], descr.fluidmat[2][1], descr.fluidmat[2][2], descr.fluidmat[2][3],
-	        descr.fluidmat[3][0], descr.fluidmat[3][1], descr.fluidmat[3][2], descr.fluidmat[3][3]);
+	        matrix[0][0], matrix[0][1], matrix[0][2], matrix[0][3],
+	        matrix[1][0], matrix[1][1], matrix[1][2], matrix[1][3],
+	        matrix[2][0], matrix[2][1], matrix[2][2], matrix[2][3],
+	        matrix[3][0], matrix[3][1], matrix[3][2], matrix[3][3]);
 
 	Mat4R fluid_matBig = Mat4R(
-	        descr.fluidmathigh[0][0], descr.fluidmathigh[0][1], descr.fluidmathigh[0][2], descr.fluidmathigh[0][3],
-	        descr.fluidmathigh[1][0], descr.fluidmathigh[1][1], descr.fluidmathigh[1][2], descr.fluidmathigh[1][3],
-	        descr.fluidmathigh[2][0], descr.fluidmathigh[2][1], descr.fluidmathigh[2][2], descr.fluidmathigh[2][3],
-	        descr.fluidmathigh[3][0], descr.fluidmathigh[3][1], descr.fluidmathigh[3][2], descr.fluidmathigh[3][3]);
+	        matrix_high[0][0], matrix_high[0][1], matrix_high[0][2], matrix_high[0][3],
+	        matrix_high[1][0], matrix_high[1][1], matrix_high[1][2], matrix_high[1][3],
+	        matrix_high[2][0], matrix_high[2][1], matrix_high[2][2], matrix_high[2][3],
+	        matrix_high[3][0], matrix_high[3][1], matrix_high[3][2], matrix_high[3][3]);
 
 	math::Transform::Ptr transform = math::Transform::createLinearTransform(fluid_mat);
 	math::Transform::Ptr transformBig = math::Transform::createLinearTransform(fluid_matBig);
diff --git a/intern/openvdb/intern/openvdb_dense_convert.h b/intern/openvdb/intern/openvdb_dense_convert.h
index 092e9d9..d7747c8 100644
--- a/intern/openvdb/intern/openvdb_dense_convert.h
+++ b/intern/openvdb/intern/openvdb_dense_convert.h
@@ -110,7 +110,9 @@ void OpenVDB_import_grid_vector(OpenVDBReader *reader,
                                 float **data_x, float **data_y, float **data_z,
                                 const int res[3]);
 
-void OpenVDB_update_fluid_transform(const char *filename, FluidDomainDescr descr);
+void OpenVDB_update_fluid_transform(const char *filename,
+                                    float matrix[4][4],
+                                    float matrix_high[4][4]);
 
 }
 
diff --git a/intern/openvdb/openvdb_capi.cpp b/intern/openvdb/openvdb_capi.cpp
index c0a9071..b3d9aa8 100644
--- a/intern/openvdb/openvdb_capi.cpp
+++ b/intern/openvdb/openvdb_capi.cpp
@@ -79,12 +79,14 @@ void OpenVDB_getNodeSockets(const char *filename, bNodeTree *ntree, bNode *node)
 	}
 }
 
-void OpenVDB_update_fluid_transform(const char *filename, FluidDomainDescr descr)
+void OpenVDB_update_fluid_transform(const char *filename,
+                                    float matrix[4][4],
+                                    float matrix_high[4][4])
 {
 	int ret = OPENVDB_NO_ERROR;
 
 	try {
-		internal::OpenVDB_update_fluid_transform(filename, descr);
+		internal::OpenVDB_update_fluid_transform(filename, matrix, matrix_high);
 	}
 	catch (...) {
 		catch_exception(ret);
diff --git a/intern/openvdb/openvdb_capi.h b/intern/openvdb/openvdb_capi.h
index 7b275d2..be2d49d 100644
--- a/intern/openvdb/openvdb_capi.h
+++ b/intern/openvdb/openvdb_capi.h
@@ -39,22 +39,6 @@ int OpenVDB_getVersionHex(void);
 
 void OpenVDB_getNodeSockets(const char *filename, struct bNodeTree *ntree, struct bNode *node);
 
-
-/* This duplicates a few properties from SmokeDomainSettings,
- * but it's more convenient/readable to pass a struct than having a huge set of
- * parameters to a function
- */
-typedef struct FluidDomainDescr {
-	float obmat[4][4];
-	float fluidmat[4][4];
-	float fluidmathigh[4][4];
-	int shift[3];
-	float obj_shift_f[3];
-	int fluid_fields;
-	float active_color[3];
-	int active_fields;
-} FluidDomainDescr;
-
 enum {
 	OPENVDB_NO_ERROR      = 0,
 	OPENVDB_ARITHM_ERROR  = 1,
@@ -70,7 +54,9 @@ enum {
 	OPENVDB_UNKNOWN_ERROR = 11,
 };
 
-void OpenVDB_update_fluid_transform(const char *filename, FluidDomainDescr descr);
+void OpenVDB_update_fluid_transform(const char *filename,
+                                    float matrix[4][4],
+                                    float matrix_high[4][4]);
 
 void OpenVDB_export_grid_fl(struct OpenVDBWriter *writer,
                             const char *name, float *data,
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 6a2c1e3..b424807 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -2724,7 +2724,6 @@ static void smokeModifier_process(SmokeModifierData *smd, Scene *scene, Object *
 		if (BKE_ptcache_read(&pid, (float)framenr) == PTCACHE_READ_EXACT) {
 			BKE_ptcache_validate(cache, framenr);
 			smd->time = framenr;
-
 			return;
 		}
 
@@ -3383,8 +3382,8 @@ void smokeModifier_OpenVDB_update_transform(SmokeModifierData *smd,
 		scene->r.cfra = fr;
 
 		cache_filename(filename, cache->path, cache->name, relbase, fr);
-
-//		OpenVDB_update_fluid_transform(filename, descr);
+		compute_fluid_matrices(sds);
+		OpenVDB_update_fluid_transform(filename, sds->fluidmat, sds->fluidmat_wt);
 
 		progress = (fr - cache->startframe) / (float)cache->endframe;




More information about the Bf-blender-cvs mailing list