[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