[Bf-blender-cvs] [802f40c] openvdb: Remove anything which deals with transforming a grid.

Kévin Dietrich noreply at git.blender.org
Sun Jul 5 09:45:37 CEST 2015


Commit: 802f40c4990dc1f7145ba18d53512aa04edce89a
Author: Kévin Dietrich
Date:   Thu Jul 2 12:59:28 2015 +0200
Branches: openvdb
https://developer.blender.org/rB802f40c4990dc1f7145ba18d53512aa04edce89a

Remove anything which deals with transforming a grid.

This needs to be done in a more sensible way.

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

M	intern/openvdb/intern/openvdb_dense_convert.cpp
M	intern/openvdb/intern/openvdb_dense_convert.h
M	intern/openvdb/intern/openvdb_primitive.cpp
M	intern/openvdb/openvdb_capi.cpp
M	intern/openvdb/openvdb_capi.h
M	release/scripts/startup/bl_ui/properties_physics_smoke.py
M	source/blender/blenkernel/BKE_smoke.h
M	source/blender/blenkernel/intern/smoke.c
M	source/blender/editors/object/object_intern.h
M	source/blender/editors/object/object_modifier.c
M	source/blender/editors/object/object_ops.c

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

diff --git a/intern/openvdb/intern/openvdb_dense_convert.cpp b/intern/openvdb/intern/openvdb_dense_convert.cpp
index 97a8602..5b015c3 100644
--- a/intern/openvdb/intern/openvdb_dense_convert.cpp
+++ b/intern/openvdb/intern/openvdb_dense_convert.cpp
@@ -35,6 +35,16 @@ using namespace openvdb;
 
 namespace internal {
 
+openvdb::Mat4R convertMatrix(const float mat[4][4])
+{
+    return openvdb::Mat4R(
+                mat[0][0], mat[0][1], mat[0][2], mat[0][3],
+                mat[1][0], mat[1][1], mat[1][2], mat[1][3],
+                mat[2][0], mat[2][1], mat[2][2], mat[2][3],
+                mat[3][0], mat[3][1], mat[3][2], mat[3][3]);
+}
+
+
 class MergeScalarGrids {
 	tree::ValueAccessor<const FloatTree> m_acc_x, m_acc_y, m_acc_z;
 
@@ -73,13 +83,7 @@ GridBase *OpenVDB_export_vector_grid(OpenVDBWriter *writer,
 {
 
 	math::CoordBBox bbox(Coord(0), Coord(res[0] - 1, res[1] - 1, res[2] - 1));
-
-	Mat4R mat = Mat4R(
-	    fluid_mat[0][0], fluid_mat[0][1], fluid_mat[0][2], fluid_mat[0][3],
-	    fluid_mat[1][0], fluid_mat[1][1], fluid_mat[1][2], fluid_mat[1][3],
-	    fluid_mat[2][0], fluid_mat[2][1], fluid_mat[2][2], fluid_mat[2][3],
-	    fluid_mat[3][0], fluid_mat[3][1], fluid_mat[3][2], fluid_mat[3][3]);
-
+	Mat4R mat = convertMatrix(fluid_mat);
 	math::Transform::Ptr transform = math::Transform::createLinearTransform(mat);
 
 	FloatGrid::Ptr grid[3];
@@ -147,46 +151,4 @@ void OpenVDB_import_grid_vector(OpenVDBReader *reader,
 	}
 }
 
-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(
-	        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(
-	        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);
-
-	io::File file(filename);
-	file.open();
-	GridPtrVecPtr grids = file.getGrids();
-	GridBase::Ptr grid;
-
-	for (size_t i = 0; i < grids->size(); ++i) {
-		grid = (*grids)[i];
-
-		const std::string name = grid->getName();
-		size_t found = name.find("High");
-
-		if (found != std::string::npos) {
-			grid->setTransform(transformBig);
-		}
-		else {
-			grid->setTransform(transform);
-		}
-	}
-
-	file.close();
-}
-
 } // namespace internal
diff --git a/intern/openvdb/intern/openvdb_dense_convert.h b/intern/openvdb/intern/openvdb_dense_convert.h
index 077d49f..3269d42 100644
--- a/intern/openvdb/intern/openvdb_dense_convert.h
+++ b/intern/openvdb/intern/openvdb_dense_convert.h
@@ -40,6 +40,8 @@
 
 namespace internal {
 
+openvdb::Mat4R convertMatrix(const float mat[4][4]);
+
 template <typename GridType, typename T>
 GridType *OpenVDB_export_grid(OpenVDBWriter *writer,
                               const std::string &name,
@@ -51,13 +53,7 @@ GridType *OpenVDB_export_grid(OpenVDBWriter *writer,
 	using namespace openvdb;
 
 	math::CoordBBox bbox(Coord(0), Coord(res[0] - 1, res[1] - 1, res[2] - 1));
-
-	Mat4R mat = Mat4R(
-		  fluid_mat[0][0], fluid_mat[0][1], fluid_mat[0][2], fluid_mat[0][3],
-          fluid_mat[1][0], fluid_mat[1][1], fluid_mat[1][2], fluid_mat[1][3],
-          fluid_mat[2][0], fluid_mat[2][1], fluid_mat[2][2], fluid_mat[2][3],
-          fluid_mat[3][0], fluid_mat[3][1], fluid_mat[3][2], fluid_mat[3][3]);
-
+	Mat4R mat = convertMatrix(fluid_mat);
 	math::Transform::Ptr transform = math::Transform::createLinearTransform(mat);
 
 	typename GridType::Ptr grid = GridType::create(T(0));
@@ -124,10 +120,6 @@ 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,
-                                    float matrix[4][4],
-                                    float matrix_high[4][4]);
-
 }
 
 #endif /* __OPENVDB_DENSE_CONVERT_H__ */
diff --git a/intern/openvdb/intern/openvdb_primitive.cpp b/intern/openvdb/intern/openvdb_primitive.cpp
index 301a1a5..995a7e8 100644
--- a/intern/openvdb/intern/openvdb_primitive.cpp
+++ b/intern/openvdb/intern/openvdb_primitive.cpp
@@ -55,38 +55,3 @@ void OpenVDBPrimitive::setGrid(openvdb::GridBase::Ptr grid)
 {
     m_grid = grid->copyGrid();
 }
-
-static openvdb::Mat4R convertMatrix(const float mat[4][4])
-{
-    return openvdb::Mat4R(
-                mat[0][0], mat[0][1], mat[0][2], mat[0][3],
-                mat[1][0], mat[1][1], mat[1][2], mat[1][3],
-                mat[2][0], mat[2][1], mat[2][2], mat[2][3],
-                mat[3][0], mat[3][1], mat[3][2], mat[3][3]);
-}
-
-/* A simple protection to avoid crashes for cases when something goes wrong for
- * some reason in the matrix creation. */
-static openvdb::math::MapBase::Ptr createAffineMap(const float mat[4][4])
-{
-    using namespace openvdb::math;
-    MapBase::Ptr transform;
-
-    try {
-        transform.reset(new AffineMap(convertMatrix(mat)));
-    }
-    catch (const openvdb::ArithmeticError &e) {
-        std::cerr << e.what() << "\n";
-        transform.reset(new AffineMap());
-    }
-
-    return transform;
-}
-
-void OpenVDBPrimitive::setTransform(const float mat[4][4])
-{
-    using namespace openvdb::math;
-
-    Transform::Ptr transform = Transform::Ptr(new Transform(createAffineMap(mat)));
-    m_grid->setTransform(transform);
-}
diff --git a/intern/openvdb/openvdb_capi.cpp b/intern/openvdb/openvdb_capi.cpp
index 83ac2ef..d6d0acc 100644
--- a/intern/openvdb/openvdb_capi.cpp
+++ b/intern/openvdb/openvdb_capi.cpp
@@ -69,20 +69,6 @@ void OpenVDB_get_grid_info(const char *filename, OpenVDBGridInfoCallback cb, voi
 	}
 }
 
-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, matrix, matrix_high);
-	}
-	catch (...) {
-		catch_exception(ret);
-	}
-}
-
 OpenVDBFloatGrid *OpenVDB_export_grid_fl(OpenVDBWriter *writer,
                                          const char *name, float *data,
                                          const int res[3], float matrix[4][4],
diff --git a/intern/openvdb/openvdb_capi.h b/intern/openvdb/openvdb_capi.h
index 0b97bfd..7ef8e5d 100644
--- a/intern/openvdb/openvdb_capi.h
+++ b/intern/openvdb/openvdb_capi.h
@@ -65,10 +65,6 @@ enum {
 	VEC_CONTRAVARIANT_ABSOLUTE = 4,
 };
 
-void OpenVDB_update_fluid_transform(const char *filename,
-                                    float matrix[4][4],
-                                    float matrix_high[4][4]);
-
 struct OpenVDBFloatGrid *OpenVDB_export_grid_fl(struct OpenVDBWriter *writer,
                                                 const char *name, float *data,
                                                 const int res[3], float matrix[4][4],
diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py
index 2c3d434..d69c60d 100644
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@ -372,7 +372,6 @@ class PHYSICS_PT_smoke_openvdb(PhysicButtonsPanel, Panel):
             row.prop(cache, "save_as_half")
 
         layout.operator("object.smoke_vdb_export")
-        layout.operator("object.smoke_vdb_transform_update")
 
         layout.label(text="Draw OpenVDB Data:")
         draw_data = domain.vdb_draw_data
diff --git a/source/blender/blenkernel/BKE_smoke.h b/source/blender/blenkernel/BKE_smoke.h
index ddd59bb..d5b31ad 100644
--- a/source/blender/blenkernel/BKE_smoke.h
+++ b/source/blender/blenkernel/BKE_smoke.h
@@ -60,12 +60,6 @@ void smokeModifier_OpenVDB_export(struct SmokeModifierData *smd, struct Scene *s
                                   update_cb update,
                                   void *update_cb_data);
 
-void smokeModifier_OpenVDB_update_transform(struct SmokeModifierData *smd,
-                                            struct Scene *scene,
-                                            struct Object *ob,
-                                            update_cb update,
-                                            void *update_cb_data);
-
 void smokeModifier_OpenVDB_import(struct SmokeModifierData *smd, struct Scene *scene, struct Object *ob, struct OpenVDBCache *cache);
 
 struct OpenVDBCache *BKE_openvdb_get_current_cache(struct SmokeDomainSettings *sds);
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 9a55013..f145066 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -3444,45 +3444,6 @@ void smokeModifier_OpenVDB_import(SmokeModifierData *smd, Scene *scene, Object *
 	}
 }
 
-void smokeModifier_OpenVDB_update_transform(SmokeModifierData *smd,
-                                            Scene *scene,
-                                            Object *ob,
-                                            update_cb update,
-                                            void *update_cb_data)
-{
-	SmokeDomainSettings *sds = smd->domain;
-	OpenVDBCache *cache;
-	int orig_frame, fr, cancel = 0;
-	float progress;
-	const char *relbase = modifier_path_relbase(ob);
-	char filename[FILE_MAX];
-
-	orig_frame = scene->r.cfra;
-
-	cache = BKE_openvdb_get_current_cache(sds);
-
-	for (fr = cache->startframe; fr <= cache->endframe; fr++) {
-		/* smd->time is overwritten with scene->r.cfra in smokeModifier_process,
-		 * so we can't use it here... */
-		scene

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list