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;

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

Reply via email to