From 67d56eb71ef1b8da62d296290a87e7129f4c5ac6 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Mon, 2 Aug 2021 12:26:28 -0400 Subject: Cleanup: Remove unused/unecessary OpenVDB C API This commit uses OpenVDB more directly for the voxel remesher, without the extra indirection of copying to a Blender API. This makes the code simpler, shorter, and easier to understand (though I didn't observe any performance improvement). This also removes the rest of the unused and undocumented OpenVDB C API, which was written when Blender's code didn't really use C++, and doesn't serve a purpose anymore. Those features will be implemented as nodes in the future anyway (see D12100). Differential Revision: https://developer.blender.org/D12097 --- intern/openvdb/CMakeLists.txt | 8 -- intern/openvdb/intern/openvdb_level_set.cc | 173 ----------------------------- intern/openvdb/intern/openvdb_level_set.h | 60 ---------- intern/openvdb/intern/openvdb_transform.cc | 43 ------- intern/openvdb/intern/openvdb_transform.h | 37 ------ intern/openvdb/openvdb_capi.cc | 144 +----------------------- intern/openvdb/openvdb_capi.h | 116 ------------------- intern/openvdb/openvdb_util.cc | 36 ------ intern/openvdb/openvdb_util.h | 51 --------- 9 files changed, 1 insertion(+), 667 deletions(-) delete mode 100644 intern/openvdb/intern/openvdb_level_set.cc delete mode 100644 intern/openvdb/intern/openvdb_level_set.h delete mode 100644 intern/openvdb/intern/openvdb_transform.cc delete mode 100644 intern/openvdb/intern/openvdb_transform.h delete mode 100644 intern/openvdb/openvdb_util.cc delete mode 100644 intern/openvdb/openvdb_util.h (limited to 'intern/openvdb') diff --git a/intern/openvdb/CMakeLists.txt b/intern/openvdb/CMakeLists.txt index d695e5533c0..9d37c6cd24c 100644 --- a/intern/openvdb/CMakeLists.txt +++ b/intern/openvdb/CMakeLists.txt @@ -20,7 +20,6 @@ set(INC . - intern ../guardedalloc ) @@ -42,14 +41,7 @@ if(WITH_OPENVDB) ) list(APPEND SRC - intern/openvdb_level_set.cc - intern/openvdb_transform.cc openvdb_capi.cc - openvdb_util.cc - - intern/openvdb_level_set.h - intern/openvdb_transform.h - openvdb_util.h ) list(APPEND LIB diff --git a/intern/openvdb/intern/openvdb_level_set.cc b/intern/openvdb/intern/openvdb_level_set.cc deleted file mode 100644 index 5b01c3b0cb7..00000000000 --- a/intern/openvdb/intern/openvdb_level_set.cc +++ /dev/null @@ -1,173 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2015 Blender Foundation. - * All rights reserved. - */ - -#include "openvdb_level_set.h" -#include "MEM_guardedalloc.h" -#include "openvdb/tools/Composite.h" -#include "openvdb_capi.h" -#include "openvdb_util.h" - -OpenVDBLevelSet::OpenVDBLevelSet() -{ - openvdb::initialize(); -} - -OpenVDBLevelSet::~OpenVDBLevelSet() -{ -} - -void OpenVDBLevelSet::mesh_to_level_set(const float *vertices, - const int *faces, - const int totvertices, - const int totfaces, - const openvdb::math::Transform::Ptr &xform) -{ - std::vector points(totvertices); - std::vector triangles(totfaces); - std::vector quads; - - for (int i = 0; i < totvertices; i++) { - points[i] = openvdb::Vec3s(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2]); - } - - for (int i = 0; i < totfaces; i++) { - triangles[i] = openvdb::Vec3I(faces[i * 3], faces[i * 3 + 1], faces[i * 3 + 2]); - } - - this->grid = openvdb::tools::meshToLevelSet( - *xform, points, triangles, quads, 1); -} - -void OpenVDBLevelSet::volume_to_mesh(OpenVDBVolumeToMeshData *mesh, - const double isovalue, - const double adaptivity, - const bool relax_disoriented_triangles) -{ - std::vector out_points; - std::vector out_quads; - std::vector out_tris; - openvdb::tools::volumeToMesh(*this->grid, - out_points, - out_tris, - out_quads, - isovalue, - adaptivity, - relax_disoriented_triangles); - mesh->vertices = (float *)MEM_malloc_arrayN(out_points.size(), sizeof(float[3]), __func__); - mesh->quads = (int *)MEM_malloc_arrayN(out_quads.size(), sizeof(int[4]), __func__); - mesh->triangles = NULL; - if (out_tris.size() > 0) { - mesh->triangles = (int *)MEM_malloc_arrayN(out_tris.size(), sizeof(int[3]), __func__); - } - - mesh->totvertices = out_points.size(); - mesh->tottriangles = out_tris.size(); - mesh->totquads = out_quads.size(); - - for (size_t i = 0; i < out_points.size(); i++) { - mesh->vertices[i * 3] = out_points[i].x(); - mesh->vertices[i * 3 + 1] = out_points[i].y(); - mesh->vertices[i * 3 + 2] = out_points[i].z(); - } - - for (size_t i = 0; i < out_quads.size(); i++) { - mesh->quads[i * 4] = out_quads[i].x(); - mesh->quads[i * 4 + 1] = out_quads[i].y(); - mesh->quads[i * 4 + 2] = out_quads[i].z(); - mesh->quads[i * 4 + 3] = out_quads[i].w(); - } - - for (size_t i = 0; i < out_tris.size(); i++) { - mesh->triangles[i * 3] = out_tris[i].x(); - mesh->triangles[i * 3 + 1] = out_tris[i].y(); - mesh->triangles[i * 3 + 2] = out_tris[i].z(); - } -} - -void OpenVDBLevelSet::filter(OpenVDBLevelSet_FilterType filter_type, - int width, - float distance, - OpenVDBLevelSet_FilterBias filter_bias) -{ - - if (!this->grid) { - return; - } - - if (this->grid->getGridClass() != openvdb::GRID_LEVEL_SET) { - return; - } - - openvdb::tools::LevelSetFilter filter(*this->grid); - filter.setSpatialScheme((openvdb::math::BiasedGradientScheme)filter_bias); - switch (filter_type) { - case OPENVDB_LEVELSET_FILTER_GAUSSIAN: - filter.gaussian(width); - break; - case OPENVDB_LEVELSET_FILTER_MEDIAN: - filter.median(width); - break; - case OPENVDB_LEVELSET_FILTER_MEAN: - filter.mean(width); - break; - case OPENVDB_LEVELSET_FILTER_MEAN_CURVATURE: - filter.meanCurvature(); - break; - case OPENVDB_LEVELSET_FILTER_LAPLACIAN: - filter.laplacian(); - break; - case OPENVDB_LEVELSET_FILTER_DILATE: - filter.offset(distance); - break; - case OPENVDB_LEVELSET_FILTER_ERODE: - filter.offset(distance); - break; - case OPENVDB_LEVELSET_FILTER_NONE: - break; - } -} -openvdb::FloatGrid::Ptr OpenVDBLevelSet::CSG_operation_apply( - const openvdb::FloatGrid::Ptr &gridA, - const openvdb::FloatGrid::Ptr &gridB, - OpenVDBLevelSet_CSGOperation operation) -{ - switch (operation) { - case OPENVDB_LEVELSET_CSG_UNION: - openvdb::tools::csgUnion(*gridA, *gridB); - break; - case OPENVDB_LEVELSET_CSG_DIFFERENCE: - openvdb::tools::csgDifference(*gridA, *gridB); - break; - case OPENVDB_LEVELSET_CSG_INTERSECTION: - openvdb::tools::csgIntersection(*gridA, *gridB); - break; - } - - return gridA; -} - -const openvdb::FloatGrid::Ptr &OpenVDBLevelSet::get_grid() -{ - return this->grid; -} - -void OpenVDBLevelSet::set_grid(const openvdb::FloatGrid::Ptr &grid) -{ - this->grid = grid; -} diff --git a/intern/openvdb/intern/openvdb_level_set.h b/intern/openvdb/intern/openvdb_level_set.h deleted file mode 100644 index 2c8f140c012..00000000000 --- a/intern/openvdb/intern/openvdb_level_set.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2015 Blender Foundation. - * All rights reserved. - */ - -#ifndef __OPENVDB_LEVEL_SET_H__ -#define __OPENVDB_LEVEL_SET_H__ - -#include "openvdb_capi.h" -#include -#include -#include -#include -#include -#include - -struct OpenVDBLevelSet { - private: - openvdb::FloatGrid::Ptr grid; - - public: - OpenVDBLevelSet(); - ~OpenVDBLevelSet(); - const openvdb::FloatGrid::Ptr &get_grid(); - void set_grid(const openvdb::FloatGrid::Ptr &grid); - - void mesh_to_level_set(const float *vertices, - const int *faces, - const int totvertices, - const int totfaces, - const openvdb::math::Transform::Ptr &transform); - - void volume_to_mesh(struct OpenVDBVolumeToMeshData *mesh, - const double isovalue, - const double adaptivity, - const bool relax_disoriented_triangles); - void filter(OpenVDBLevelSet_FilterType filter_type, - int width, - float distance, - OpenVDBLevelSet_FilterBias filter_bias); - openvdb::FloatGrid::Ptr CSG_operation_apply(const openvdb::FloatGrid::Ptr &gridA, - const openvdb::FloatGrid::Ptr &gridB, - OpenVDBLevelSet_CSGOperation operation); -}; - -#endif /* __OPENVDB_LEVEL_SET_H__ */ diff --git a/intern/openvdb/intern/openvdb_transform.cc b/intern/openvdb/intern/openvdb_transform.cc deleted file mode 100644 index 4bfcf43f81a..00000000000 --- a/intern/openvdb/intern/openvdb_transform.cc +++ /dev/null @@ -1,43 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2015 Blender Foundation. - * All rights reserved. - */ - -#include "openvdb_transform.h" - -OpenVDBTransform::OpenVDBTransform() -{ -} - -OpenVDBTransform::~OpenVDBTransform() -{ -} - -void OpenVDBTransform::create_linear_transform(double voxel_size) -{ - this->transform = openvdb::math::Transform::createLinearTransform(voxel_size); -} - -const openvdb::math::Transform::Ptr &OpenVDBTransform::get_transform() -{ - return this->transform; -} - -void OpenVDBTransform::set_transform(const openvdb::math::Transform::Ptr &transform) -{ - this->transform = transform; -} diff --git a/intern/openvdb/intern/openvdb_transform.h b/intern/openvdb/intern/openvdb_transform.h deleted file mode 100644 index e2528cd0192..00000000000 --- a/intern/openvdb/intern/openvdb_transform.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2015 Blender Foundation. - * All rights reserved. - */ - -#ifndef OPENVDB_TRANSFORM_H -#define OPENVDB_TRANSFORM_H - -#include - -struct OpenVDBTransform { - private: - openvdb::math::Transform::Ptr transform; - - public: - OpenVDBTransform(); - ~OpenVDBTransform(); - void create_linear_transform(double voxel_size); - const openvdb::math::Transform::Ptr &get_transform(); - void set_transform(const openvdb::math::Transform::Ptr &transform); -}; - -#endif // OPENVDB_TRANSFORM_H diff --git a/intern/openvdb/openvdb_capi.cc b/intern/openvdb/openvdb_capi.cc index 674b394fa46..9c676e33ecc 100644 --- a/intern/openvdb/openvdb_capi.cc +++ b/intern/openvdb/openvdb_capi.cc @@ -18,151 +18,9 @@ */ #include "openvdb_capi.h" -#include "openvdb_level_set.h" -#include "openvdb_transform.h" -#include "openvdb_util.h" +#include int OpenVDB_getVersionHex() { return openvdb::OPENVDB_LIBRARY_VERSION; } - -OpenVDBLevelSet *OpenVDBLevelSet_create(bool initGrid, OpenVDBTransform *xform) -{ - OpenVDBLevelSet *level_set = new OpenVDBLevelSet(); - if (initGrid) { - openvdb::FloatGrid::Ptr grid = openvdb::FloatGrid::create(); - grid->setGridClass(openvdb::GRID_LEVEL_SET); - if (xform) { - grid->setTransform(xform->get_transform()); - } - level_set->set_grid(grid); - } - return level_set; -} - -OpenVDBTransform *OpenVDBTransform_create() -{ - return new OpenVDBTransform(); -} - -void OpenVDBTransform_free(OpenVDBTransform *transform) -{ - delete transform; -} - -void OpenVDBTransform_create_linear_transform(OpenVDBTransform *transform, double voxel_size) -{ - transform->create_linear_transform(voxel_size); -} - -void OpenVDBLevelSet_free(OpenVDBLevelSet *level_set) -{ - delete level_set; -} - -void OpenVDBLevelSet_mesh_to_level_set(struct OpenVDBLevelSet *level_set, - const float *vertices, - const int *faces, - const int totvertices, - const int totfaces, - OpenVDBTransform *xform) -{ - level_set->mesh_to_level_set(vertices, faces, totvertices, totfaces, xform->get_transform()); -} - -void OpenVDBLevelSet_mesh_to_level_set_transform(struct OpenVDBLevelSet *level_set, - const float *vertices, - const int *faces, - const int totvertices, - const int totfaces, - OpenVDBTransform *transform) -{ - level_set->mesh_to_level_set(vertices, faces, totvertices, totfaces, transform->get_transform()); -} - -void OpenVDBLevelSet_volume_to_mesh(struct OpenVDBLevelSet *level_set, - struct OpenVDBVolumeToMeshData *mesh, - const double isovalue, - const double adaptivity, - const bool relax_disoriented_triangles) -{ - level_set->volume_to_mesh(mesh, isovalue, adaptivity, relax_disoriented_triangles); -} - -void OpenVDBLevelSet_filter(struct OpenVDBLevelSet *level_set, - OpenVDBLevelSet_FilterType filter_type, - int width, - float distance, - OpenVDBLevelSet_FilterBias bias) -{ - level_set->filter(filter_type, width, distance, bias); -} - -void OpenVDBLevelSet_CSG_operation(struct OpenVDBLevelSet *out, - struct OpenVDBLevelSet *gridA, - struct OpenVDBLevelSet *gridB, - OpenVDBLevelSet_CSGOperation operation) -{ - openvdb::FloatGrid::Ptr grid = out->CSG_operation_apply( - gridA->get_grid(), gridB->get_grid(), operation); - out->set_grid(grid); -} - -OpenVDBLevelSet *OpenVDBLevelSet_transform_and_resample(struct OpenVDBLevelSet *level_setA, - struct OpenVDBLevelSet *level_setB, - char sampler, - float isolevel) -{ - openvdb::FloatGrid::Ptr sourceGrid = level_setA->get_grid(); - openvdb::FloatGrid::Ptr targetGrid = level_setB->get_grid()->deepCopy(); - - const openvdb::math::Transform &sourceXform = sourceGrid->transform(), - &targetXform = targetGrid->transform(); - - // Compute a source grid to target grid transform. - // (For this example, we assume that both grids' transforms are linear, - // so that they can be represented as 4 x 4 matrices.) - openvdb::Mat4R xform = sourceXform.baseMap()->getAffineMap()->getMat4() * - targetXform.baseMap()->getAffineMap()->getMat4().inverse(); - - // Create the transformer. - openvdb::tools::GridTransformer transformer(xform); - - switch (sampler) { - case OPENVDB_LEVELSET_GRIDSAMPLER_POINT: - // Resample using nearest-neighbor interpolation. - transformer.transformGrid(*sourceGrid, - *targetGrid); - // Prune the target tree for optimal sparsity. - targetGrid->tree().prune(); - break; - - case OPENVDB_LEVELSET_GRIDSAMPLER_BOX: - // Resample using trilinear interpolation. - transformer.transformGrid(*sourceGrid, - *targetGrid); - // Prune the target tree for optimal sparsity. - targetGrid->tree().prune(); - break; - - case OPENVDB_LEVELSET_GRIDSAMPLER_QUADRATIC: - // Resample using triquadratic interpolation. - transformer.transformGrid(*sourceGrid, - *targetGrid); - // Prune the target tree for optimal sparsity. - targetGrid->tree().prune(); - break; - - case OPENVDB_LEVELSET_GRIDSAMPLER_NONE: - break; - } - - targetGrid = openvdb::tools::levelSetRebuild(*targetGrid, isolevel, 1.0f); - openvdb::tools::pruneLevelSet(targetGrid->tree()); - - OpenVDBLevelSet *level_set = OpenVDBLevelSet_create(false, NULL); - level_set->set_grid(targetGrid); - - return level_set; -} diff --git a/intern/openvdb/openvdb_capi.h b/intern/openvdb/openvdb_capi.h index 9333413c2fe..3db1ef9484b 100644 --- a/intern/openvdb/openvdb_capi.h +++ b/intern/openvdb/openvdb_capi.h @@ -24,124 +24,8 @@ extern "C" { #endif -/* Level Set Filters */ -typedef enum OpenVDBLevelSet_FilterType { - OPENVDB_LEVELSET_FILTER_NONE = 0, - OPENVDB_LEVELSET_FILTER_GAUSSIAN = 1, - OPENVDB_LEVELSET_FILTER_MEAN = 2, - OPENVDB_LEVELSET_FILTER_MEDIAN = 3, - OPENVDB_LEVELSET_FILTER_MEAN_CURVATURE = 4, - OPENVDB_LEVELSET_FILTER_LAPLACIAN = 5, - OPENVDB_LEVELSET_FILTER_DILATE = 6, - OPENVDB_LEVELSET_FILTER_ERODE = 7, -} OpenVDBLevelSet_FilterType; - -typedef enum OpenVDBLevelSet_FilterBias { - OPENVDB_LEVELSET_FIRST_BIAS = 0, - OPENVDB_LEVELSET_SECOND_BIAS, - OPENVDB_LEVELSET_THIRD_BIAS, - OPENVDB_LEVELSET_WENO5_BIAS, - OPENVDB_LEVELSET_HJWENO5_BIAS, -} OpenVDBLevelSet_FilterBias; - -/* Level Set CSG Operations */ -typedef enum OpenVDBLevelSet_CSGOperation { - OPENVDB_LEVELSET_CSG_UNION = 0, - OPENVDB_LEVELSET_CSG_DIFFERENCE = 1, - OPENVDB_LEVELSET_CSG_INTERSECTION = 2, -} OpenVDBLevelSet_CSGOperation; - -typedef enum OpenVDBLevelSet_GridSampler { - OPENVDB_LEVELSET_GRIDSAMPLER_NONE = 0, - OPENVDB_LEVELSET_GRIDSAMPLER_POINT = 1, - OPENVDB_LEVELSET_GRIDSAMPLER_BOX = 2, - OPENVDB_LEVELSET_GRIDSAMPLER_QUADRATIC = 3, -} OpenVDBLevelSet_Gridsampler; - -struct OpenVDBTransform; -struct OpenVDBLevelSet; - -struct OpenVDBVolumeToMeshData { - int tottriangles; - int totquads; - int totvertices; - - float *vertices; - int *quads; - int *triangles; -}; - -struct OpenVDBRemeshData { - float *verts; - int *faces; - int totfaces; - int totverts; - - float *out_verts; - int *out_faces; - int *out_tris; - int out_totverts; - int out_totfaces; - int out_tottris; - int filter_type; - enum OpenVDBLevelSet_FilterType filter_bias; - enum OpenVDBLevelSet_FilterBias filter_width; /* Parameter for gaussian, median, mean. */ - - float voxel_size; - float isovalue; - float adaptivity; - int relax_disoriented_triangles; -}; - int OpenVDB_getVersionHex(void); -enum { - VEC_INVARIANT = 0, - VEC_COVARIANT = 1, - VEC_COVARIANT_NORMALIZE = 2, - VEC_CONTRAVARIANT_RELATIVE = 3, - VEC_CONTRAVARIANT_ABSOLUTE = 4, -}; - -struct OpenVDBTransform *OpenVDBTransform_create(void); -void OpenVDBTransform_free(struct OpenVDBTransform *transform); -void OpenVDBTransform_create_linear_transform(struct OpenVDBTransform *transform, - double voxel_size); - -struct OpenVDBLevelSet *OpenVDBLevelSet_create(bool initGrid, struct OpenVDBTransform *xform); -void OpenVDBLevelSet_free(struct OpenVDBLevelSet *level_set); -void OpenVDBLevelSet_mesh_to_level_set(struct OpenVDBLevelSet *level_set, - const float *vertices, - const int *faces, - const int totvertices, - const int totfaces, - struct OpenVDBTransform *xform); -void OpenVDBLevelSet_mesh_to_level_set_transform(struct OpenVDBLevelSet *level_set, - const float *vertices, - const int *faces, - const int totvertices, - const int totfaces, - struct OpenVDBTransform *transform); -void OpenVDBLevelSet_volume_to_mesh(struct OpenVDBLevelSet *level_set, - struct OpenVDBVolumeToMeshData *mesh, - const double isovalue, - const double adaptivity, - const bool relax_disoriented_triangles); -void OpenVDBLevelSet_filter(struct OpenVDBLevelSet *level_set, - OpenVDBLevelSet_FilterType filter_type, - int width, - float distance, - OpenVDBLevelSet_FilterBias bias); -void OpenVDBLevelSet_CSG_operation(struct OpenVDBLevelSet *out, - struct OpenVDBLevelSet *gridA, - struct OpenVDBLevelSet *gridB, - OpenVDBLevelSet_CSGOperation operation); - -struct OpenVDBLevelSet *OpenVDBLevelSet_transform_and_resample(struct OpenVDBLevelSet *level_setA, - struct OpenVDBLevelSet *level_setB, - char sampler, - float isolevel); - #ifdef __cplusplus } #endif diff --git a/intern/openvdb/openvdb_util.cc b/intern/openvdb/openvdb_util.cc deleted file mode 100644 index 899b41ff09b..00000000000 --- a/intern/openvdb/openvdb_util.cc +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2015 Blender Foundation. - * All rights reserved. - */ - -#include "openvdb_util.h" - -#include - -ScopeTimer::ScopeTimer(const std::string &message) : m_message(message), m_timer() -{ -} - -ScopeTimer::~ScopeTimer() -{ -#if OPENVDB_LIBRARY_MAJOR_VERSION_NUMBER >= 7 - double delta = m_timer.milliseconds(); -#else - double delta = m_timer.delta(); /* Deprecated in OpenVDB 7. */ -#endif - std::printf("%s: %fms\n", m_message.c_str(), delta); -} diff --git a/intern/openvdb/openvdb_util.h b/intern/openvdb/openvdb_util.h deleted file mode 100644 index 7a19d588068..00000000000 --- a/intern/openvdb/openvdb_util.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2015 Blender Foundation. - * All rights reserved. - */ - -#ifndef __OPENVDB_UTIL_H__ -#define __OPENVDB_UTIL_H__ - -#include -#include - -#define CATCH_KEYERROR \ - catch (const openvdb::KeyError &e) \ - { \ - std::cerr << e.what() << '\n'; \ - } - -//#define DEBUG_TIME - -/* A utility class which prints the time elapsed during its lifetime, useful for - * e.g. timing the overall execution time of a function */ -class ScopeTimer { - std::string m_message; - openvdb::util::CpuTimer m_timer; - - public: - ScopeTimer(const std::string &message); - ~ScopeTimer(); -}; - -#ifdef DEBUG_TIME -# define Timer(x) ScopeTimer prof(x); -#else -# define Timer(x) -#endif - -#endif /* __OPENVDB_UTIL_H__ */ -- cgit v1.2.3