[Bf-blender-cvs] [f4cf8193cbd] sculpt-mode-features: Changes to intern/openvdb

Pablo Dobarro noreply at git.blender.org
Wed Jul 31 16:05:07 CEST 2019


Commit: f4cf8193cbdb43312e8d229ca9aa0f871f765ee1
Author: Pablo Dobarro
Date:   Wed Jul 31 16:06:15 2019 +0200
Branches: sculpt-mode-features
https://developer.blender.org/rBf4cf8193cbdb43312e8d229ca9aa0f871f765ee1

Changes to intern/openvdb

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

M	intern/openvdb/intern/openvdb_level_set.cc
M	intern/openvdb/intern/openvdb_level_set.h
M	intern/openvdb/intern/openvdb_transform.cc
M	intern/openvdb/intern/openvdb_transform.h
M	intern/openvdb/openvdb_capi.cc
M	intern/openvdb/openvdb_capi.h
M	release/scripts/startup/bl_ui/properties_data_modifier.py
M	source/blender/makesdna/DNA_modifier_types.h
M	source/blender/makesrna/intern/rna_modifier.c
M	source/blender/modifiers/intern/MOD_remesh.c

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

diff --git a/intern/openvdb/intern/openvdb_level_set.cc b/intern/openvdb/intern/openvdb_level_set.cc
index ac4a041c193..fbfb0bf2280 100644
--- a/intern/openvdb/intern/openvdb_level_set.cc
+++ b/intern/openvdb/intern/openvdb_level_set.cc
@@ -32,34 +32,32 @@ OpenVDBLevelSet::~OpenVDBLevelSet()
 {
 }
 
-void OpenVDBLevelSet::OpenVDB_mesh_to_level_set(const float *vertices,
-                                                const unsigned int *faces,
-                                                const unsigned int totvertices,
-                                                const unsigned int totfaces,
-                                                openvdb::math::Transform::Ptr xform)
+void OpenVDBLevelSet::mesh_to_level_set(const float *vertices,
+                                        const unsigned int *faces,
+                                        const unsigned int totvertices,
+                                        const unsigned int totfaces,
+                                        openvdb::math::Transform::Ptr &xform)
 {
-  std::vector<openvdb::Vec3s> points;
-  std::vector<openvdb::Vec3I> triangles;
+  std::vector<openvdb::Vec3s> points(totvertices);
+  std::vector<openvdb::Vec3I> triangles(totfaces);
   std::vector<openvdb::Vec4I> quads;
 
   for (unsigned int i = 0; i < totvertices; i++) {
-    openvdb::Vec3s v(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2]);
-    points.push_back(v);
+    points[i] = openvdb::Vec3s(vertices[i * 3], vertices[i * 3 + 1], vertices[i * 3 + 2]);
   }
 
   for (unsigned int i = 0; i < totfaces; i++) {
-    openvdb::Vec3I f(faces[i * 3], faces[i * 3 + 1], faces[i * 3 + 2]);
-    triangles.push_back(f);
+    triangles[i] = openvdb::Vec3I(faces[i * 3], faces[i * 3 + 1], faces[i * 3 + 2]);
   }
 
   this->grid = openvdb::tools::meshToLevelSet<openvdb::FloatGrid>(
       *xform, points, triangles, quads, 1);
 }
 
-void OpenVDBLevelSet::OpenVDB_volume_to_mesh(OpenVDBVolumeToMeshData *mesh,
-                                             const double isovalue,
-                                             const double adaptivity,
-                                             const bool relax_disoriented_triangles)
+void OpenVDBLevelSet::volume_to_mesh(OpenVDBVolumeToMeshData *mesh,
+                                     const double isovalue,
+                                     const double adaptivity,
+                                     const bool relax_disoriented_triangles)
 {
   std::vector<openvdb::Vec3s> out_points;
   std::vector<openvdb::Vec4I> out_quads;
@@ -85,37 +83,37 @@ void OpenVDBLevelSet::OpenVDB_volume_to_mesh(OpenVDBVolumeToMeshData *mesh,
   mesh->tottriangles = out_tris.size();
   mesh->totquads = out_quads.size();
 
-  for (unsigned int i = 0; i < out_points.size(); i++) {
+  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 (unsigned int i = 0; i < out_quads.size(); i++) {
+  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 (unsigned int i = 0; i < out_tris.size(); i++) {
+  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::OpenVDB_level_set_filter(OpenVDBLevelSet_FilterType filter_type,
-                                               int width,
-                                               int iterations,
-                                               int filter_bias)
+void OpenVDBLevelSet::filter(OpenVDBLevelSet_FilterType filter_type,
+                             int width,
+                             float distance,
+                             OpenVDBLevelSet_FilterBias filter_bias)
 {
 
   if (!this->grid) {
     return;
   }
 
-  if (this->grid && this->grid->getGridClass() != openvdb::GRID_LEVEL_SET) {
+  if (this->grid->getGridClass() != openvdb::GRID_LEVEL_SET) {
     return;
   }
 
@@ -138,42 +136,39 @@ void OpenVDBLevelSet::OpenVDB_level_set_filter(OpenVDBLevelSet_FilterType filter
       filter.laplacian();
       break;
     case OPENVDB_LEVELSET_FILTER_DILATE:
-      filter.offset(-iterations / 100.0);
+      filter.offset(-distance);
       break;
     case OPENVDB_LEVELSET_FILTER_ERODE:
-      filter.offset(iterations / 100.0);
+      filter.offset(distance);
       break;
   }
 }
-openvdb::FloatGrid::Ptr OpenVDBLevelSet::OpenVDB_CSG_operation(
-    openvdb::FloatGrid::Ptr gridA,
-    openvdb::FloatGrid::Ptr gridB,
+openvdb::FloatGrid::Ptr OpenVDBLevelSet::CSG_operation_apply(
+    openvdb::FloatGrid::Ptr &gridA,
+    openvdb::FloatGrid::Ptr &gridB,
     OpenVDBLevelSet_CSGOperation operation)
 {
-  openvdb::FloatGrid::Ptr gridA_copy = gridA;  //->deepCopy();
-  openvdb::FloatGrid::Ptr gridB_copy = gridB;  //->deepCopy();
-
   switch (operation) {
     case OPENVDB_LEVELSET_CSG_UNION:
-      openvdb::tools::csgUnion(*gridA_copy, *gridB_copy);
+      openvdb::tools::csgUnion(*gridA, *gridB);
       break;
     case OPENVDB_LEVELSET_CSG_DIFFERENCE:
-      openvdb::tools::csgDifference(*gridA_copy, *gridB_copy);
+      openvdb::tools::csgDifference(*gridA, *gridB);
       break;
     case OPENVDB_LEVELSET_CSG_INTERSECTION:
-      openvdb::tools::csgIntersection(*gridA_copy, *gridB_copy);
+      openvdb::tools::csgIntersection(*gridA, *gridB);
       break;
   }
 
-  return gridA_copy;
+  return gridA;
 }
 
-openvdb::FloatGrid::Ptr OpenVDBLevelSet::OpenVDB_level_set_get_grid()
+openvdb::FloatGrid::Ptr &OpenVDBLevelSet::get_grid()
 {
   return this->grid;
 }
 
-void OpenVDBLevelSet::OpenVDB_level_set_set_grid(openvdb::FloatGrid::Ptr grid)
+void OpenVDBLevelSet::set_grid(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
index 01d1b8e538a..279f1665e55 100644
--- a/intern/openvdb/intern/openvdb_level_set.h
+++ b/intern/openvdb/intern/openvdb_level_set.h
@@ -35,40 +35,26 @@ struct OpenVDBLevelSet {
  public:
   OpenVDBLevelSet();
   ~OpenVDBLevelSet();
-  openvdb::FloatGrid::Ptr OpenVDB_level_set_get_grid();
-  void OpenVDB_level_set_set_grid(openvdb::FloatGrid::Ptr);
-  void OpenVDB_mesh_to_level_set(const float *vertices,
-                                 const unsigned int *faces,
-                                 const unsigned int totvertices,
-                                 const unsigned int totfaces,
-                                 const double voxel_size);
+  openvdb::FloatGrid::Ptr &get_grid();
+  void set_grid(openvdb::FloatGrid::Ptr);
 
-  void OpenVDB_mesh_to_level_set(const float *vertices,
-                                 const unsigned int *faces,
-                                 const unsigned int totvertices,
-                                 const unsigned int totfaces,
-                                 openvdb::math::Transform::Ptr transform);
+  void mesh_to_level_set(const float *vertices,
+                         const unsigned int *faces,
+                         const unsigned int totvertices,
+                         const unsigned int totfaces,
+                         openvdb::math::Transform::Ptr &transform);
 
-  void OpenVDB_volume_to_mesh(float *vertices,
-                              unsigned int *quads,
-                              unsigned int *triangles,
-                              unsigned int *totvertices,
-                              unsigned int *totfaces,
-                              unsigned int *tottriangles,
-                              const double isovalue,
-                              const double adaptivity,
-                              const bool relax_disoriented_triangles);
-  void OpenVDB_volume_to_mesh(struct OpenVDBVolumeToMeshData *mesh,
-                              const double isovalue,
-                              const double adaptivity,
-                              const bool relax_disoriented_triangles);
-  void OpenVDB_level_set_filter(OpenVDBLevelSet_FilterType filter_type,
-                                int width,
-                                int iterations,
-                                int filter_bias);
-  openvdb::FloatGrid::Ptr OpenVDB_CSG_operation(openvdb::FloatGrid::Ptr gridA,
-                                                openvdb::FloatGrid::Ptr gridB,
-                                                OpenVDBLevelSet_CSGOperation operation);
+  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(openvdb::FloatGrid::Ptr &gridA,
+                                              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
index 5fbd2c298b1..70bb280d417 100644
--- a/intern/openvdb/intern/openvdb_transform.cc
+++ b/intern/openvdb/intern/openvdb_transform.cc
@@ -27,17 +27,17 @@ OpenVDBTransform::~OpenVDBTransform()
 {
 }
 
-void OpenVDBTransform::OpenVDB_transform_create_linear_transform(double voxel_size)
+void OpenVDBTransform::create_linear_transform(double voxel_size)
 {
   this->transform = openvdb::math::Transform::createLinearTransform(voxel_size);
 }
 
-openvdb::math::Transform::Ptr OpenVDBTransform::OpenVDB_transform_get_transform()
+openvdb::math::Transform::Ptr &OpenVDBTransform::get_transform()
 {
   return this->transform;
 }
 
-void OpenVDBTransform::OpenVDB_transform_set_transform(openvdb::math::Transform::Ptr tr

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list